How Can Metaheuristics Help How Can Metaheuristics Help Software - - PowerPoint PPT Presentation

how can metaheuristics help how can metaheuristics help
SMART_READER_LITE
LIVE PREVIEW

How Can Metaheuristics Help How Can Metaheuristics Help Software - - PowerPoint PPT Presentation

Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion How Can Metaheuristics Help How Can Metaheuristics Help Software Engineers Software Engineers Enrique Alba Enrique


slide-1
SLIDE 1

http://neo.lcc.uma.es

2 1 1

How Can Metaheuristics Help Software Engineers

Enrique Alba

How Can Metaheuristics Help Software Engineers

Enrique Alba

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 1 of 28

Enrique Alba

  • Universidad de Málaga, ESPAÑA

Enrique Alba

  • Universidad de Málaga, ESPAÑA
slide-2
SLIDE 2

http://neo.lcc.uma.es

2 1 1

What’s a Metaheuristic? What’s a Metaheuristic?

A metaheuristic is a structured computer algorithm composed of different

  • perators that is used to iteratively solve complex problems
  • Introduction

Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 2 of 28

  • Heuristic: information or procedure used to guide the search of algorithms

Meta: high level structure containing operators later tailored to problems Many scientific fields involved: computer science, and also mathematics,

  • perations research, industrial engineering, physics, …
slide-3
SLIDE 3

http://neo.lcc.uma.es

2 1 1

Need of Metaheuristics Need of Metaheuristics

Science is a way of creating and accumulating knowledge by different means, especially by transferring knowledge between domains Metaheuristics allow knowledge transference between domains Some metaheuristics have a Nature-inspired origin, while others are pure abstract artifacts

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 3 of 28

abstract artifacts Science has provided in the past exhaustive mechanisms for search,

  • ptimization and learning in an exact manner (branch and “X”, dynamic

programming, etc.) However, exact methods cannot deal with complex instances of real problems: high dimension, constrains, epistasis, uncertain data, … Traditional methods put so many constrains and simplifications to the problem (in order to solve it) that the found solution is no longer valid

slide-4
SLIDE 4

http://neo.lcc.uma.es

2 1 1

When are they Useful? When are they Useful?

  • Objective of a global optimization problem:
  • =

≤ ∈ ∀

  • uncertain data

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 4 of 28

  • Vectors can map to other data structures
  • Minimizing is also possible

high dimensionality mixed variables computational demanding high/unknown parameter correlation uncertain data evolution learning ill problem definition search

  • ptimization
slide-5
SLIDE 5

http://neo.lcc.uma.es

2 1 1

Metaheuristic versus the rest of Algorithms (I) Metaheuristic versus the rest of Algorithms (I)

Exhaustive Heuristics Metaheuristics

  • Introduction

Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 5 of 28

Others cannot… MetaH CAN!

slide-6
SLIDE 6

http://neo.lcc.uma.es

2 1 1

Metaheuristic versus the rest of Algorithms (II) Metaheuristic versus the rest of Algorithms (II)

  • Effort

1,E+12

THE NQUEEN OPTIMIZATION PROBLEM

  • Introduction

Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 6 of 28

1,E+00 1,E+02 1,E+04 1,E+06 1,E+08 1,E+10 1,E+12 4 8 16 32 64 128 256 512 1024 problem size # evaluations ANN GA BACKT LV SA

slide-7
SLIDE 7

http://neo.lcc.uma.es

2 1 1

Types of Metaheuristics Types of Metaheuristics

  • !

"# !

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Trajectory Population

Metaheuristic Algorithms

Enrique Alba

How Can Metaheuristics Help Software Engineers 7 of 28

!! $ !% & "

  • '!

()

  • )

*" &' +,+

  • '
  • !""
slide-8
SLIDE 8

http://neo.lcc.uma.es

2 1 1

Efficient, Accurate, and even Nature-Inspired! Efficient, Accurate, and even Nature-Inspired!

. !

%/'!

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 8 of 28

slide-9
SLIDE 9

http://neo.lcc.uma.es

2 1 1

  • *..

+

  • …but all of them Run in a Computer as Programs

…but all of them Run in a Computer as Programs

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 9 of 28

→ → !!"# $%

slide-10
SLIDE 10

http://neo.lcc.uma.es

2 1 1

Metaheuristics at Work Metaheuristics at Work

*01 *021

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 10 of 28

*0311 *0321

slide-11
SLIDE 11

http://neo.lcc.uma.es

2 1 1

Complex Problems are Everywhere! Complex Problems are Everywhere!

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 11 of 28

& !

slide-12
SLIDE 12

http://neo.lcc.uma.es

2 1 1

Scientific Success Reported in Journals (Science) Scientific Success Reported in Journals (Science)

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 12 of 28

slide-13
SLIDE 13

http://neo.lcc.uma.es

2 1 1

Scientific Success Reported in Companies (Industry) Scientific Success Reported in Companies (Industry)

  • Introduction

Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 13 of 28

slide-14
SLIDE 14

http://neo.lcc.uma.es

2 1 1

Metaheuristics and Software Metaheuristics and Software

  • Memory

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 14 of 28

  • "

(

'4

%'(())&)(&

slide-15
SLIDE 15

http://neo.lcc.uma.es

2 1 1

Potential Research Lines Potential Research Lines

Testing and Debugging Distribution, Maintenance, Enhancement Management Design Tools and Techniques Software Verification search

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 15 of 28

Software Verification Concurrent Systems Networks and Critical Systems Requirement Analysis and Design Coding Tools and Techniques Human Decision Making Others evolution learning

  • ptimization
slide-16
SLIDE 16

http://neo.lcc.uma.es

2 1 1

Finding Software Errors Finding Software Errors

  • Objective: Prove that model M satisfies the property :
  • SPIN, JavaPathfinder, …
  • Model
  • !∨

"

LTL formula ¬ ¬ ¬ ¬

×

Safety Properties Deadlocks

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 16 of 28

Product Büchi automaton

  • "

∧! "

×

Using Nested-DFS Deadlocks Invariants Assertions …

…using SOTA techniques:

  • state compression
  • bitstate hashing
  • partial order reduction
  • symmetry reduction
  • symbolic model checking
slide-17
SLIDE 17

http://neo.lcc.uma.es

2 1 1

Software Testing (I) Software Testing (I)

  • After codification, the software products require a test phase
  • The objective is to find errors and assess software correctness
  • Software companies dedicate 50% of resources to this task

1.0, 2.3 1.0, 2.3

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 17 of 28

  • Automatic generation of input data for the tests

2.3 1.0, 2.3 10.5 OK! 2.7, 5.4 2.7, 5.4 15.0 Wrong!

Important issues:

  • Object Orientation
  • Embedded Systems
  • SAP
slide-18
SLIDE 18

http://neo.lcc.uma.es

2 1 1

Software Testing (II) Software Testing (II)

  • Object Orientation
  • Inheritance, Polymorphism, …
  • Embedded Systems
  • Real time systems in cars (breaks), nuclear plants, …
  • SAP

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 18 of 28

  • SAP
  • Assessing programmers in ABAP IV, automatic test case generation

& * & $&

slide-19
SLIDE 19

http://neo.lcc.uma.es

2 1 1

Software Project Management Software Project Management

Uncertainty in task durations and staff performance

ask duration

Probability density function

Project Scheduling

Density function

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 19 of 28

Task T1 T3 T2

Task duration

Project makespan

Mean or median: a measure of quality Variance or iqr: a measure of robustness MO approach

Objective 1: quality Objective 2: robustness

" Makespan Variance

Pareto front

+ ,,- +- . /&%0

slide-20
SLIDE 20

http://neo.lcc.uma.es

2 1 1

Next Release Problem in Software Systems Next Release Problem in Software Systems

Context

  • Customers with varying requirements are

targeted for a next software release

  • Each requirement entails spending a certain amount of

resources and provides some benefit

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 20 of 28

Definition

  • Basic definition, with two objectives, requires:
  • Minimizing the required cost for developing the requirements
  • Maximizing the value the developed requirements provide to the company
  • Complex definitions include preferences over clients and dependences between requirements

State-of-the-art

  • Most of previous work has considered only a single objective formulation
  • Works dealing with multiobjective formulation are still superficia: opportunities here in MO!
slide-21
SLIDE 21

http://neo.lcc.uma.es

2 1 1

… a Growing Field! … a Growing Field!

#$%&'()*&+&,*+)$-,.$/ #0$1$-%*$/

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 21 of 28

#$%&'()*&+&,.-2(*)$)(-$/ #0$1&+)&'&3*$/

slide-22
SLIDE 22

http://neo.lcc.uma.es

2 1 1

Several Guidelines Several Guidelines

The key factor in a good design is the inclusion of problem knowledge:

Non-traditional representations Fitness function Specialized operators

Suggestions for selecting your algorithm:

According to the representation:

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 22 of 28

According to the representation:

  • Binary: CHC, EDA, ILS, ...
  • Tree: GP
  • Float: ES, PSO, DE, ...
  • Permutation: GA, VNS, ...
  • Graphs: ACO

Very expensive fitness functions: Parallel Metaheuristics Need fast solutions or the environment is dynamic: PSO, ES, ACO Multimodal search spaces: cEAs or dEAs (structured methods) Managing constrains: Hybrids and specific operators

slide-23
SLIDE 23

http://neo.lcc.uma.es

2 1 1

Challenges Challenges

Stopping Criteria

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 23 of 28

  • Predefined effort, solution quality, convergence (ph/gen)… and self-tuning!

Landscape Visualization

  • Not much to say in metaheuristics… apart from using existing tools and techniques

Landscape Characterization

  • Lots of results: multimodality, epistasis, discontinuity…maybe using F-D correlation

Human Competitive Results

  • I think this is not that difficult for any realistic program
slide-24
SLIDE 24

http://neo.lcc.uma.es

2 1 1

Potential Benefits from Using Metaheuristics in SE Potential Benefits from Using Metaheuristics in SE

Scalability

  • Parallelism, grid computing… but also numerically efficient techniques

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 24 of 28

Robustness

  • Appropriate selection of the technique, operators, and fitness function

Feedback and Insight

  • Self-explanatory results, maybe using GP and probably ACO, improved decision making!
slide-25
SLIDE 25

http://neo.lcc.uma.es

2 1 1

Open Research Lines (I) Open Research Lines (I)

Multiobjective Optimization

  • Rich set of information metaheuristics: goals, algorithms, metrics, statistics

Interactive Optimization

  • Relation to GUIs, and avoid the fatigue by evolving rules (not eval. details in a program)

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 25 of 28

  • Relation to GUIs, and avoid the fatigue by evolving rules (not eval. details in a program)

Hybrid Optimization Algorithms

  • Sure, that’s clear: strong (between algorithms, metaH and exact also) and weak (repres.)

On Line (Dynamic) Optimization

  • Lots of results in metaheuristics (!): adding memory, hypermutation, self-adaptation…

Applying New Models of Search

  • ACO and PSO already in use, also ES… what’s on VNS, SS, EDAs, DE…
slide-26
SLIDE 26

http://neo.lcc.uma.es

2 1 1

Software Libraries

  • MALLBA: UML design, architecture…

Data Structures

  • How a population or an individual should be better implemented in a GA?

Open Research Lines (II) Open Research Lines (II)

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 26 of 28

  • How a population or an individual should be better implemented in a GA?

Profiling

  • Gather information on executions and propose better implementations

Program Complexity

  • Characterize program complexity of well known techniques… automatically???

New Frontiers

  • Especialized knowledge on how to implement parallel, multiobjective, web services, P2P…
slide-27
SLIDE 27

http://neo.lcc.uma.es

2 1 1

Some Conclusions Some Conclusions

Metaheuristics are efficient and effective modern problem solvers Working in metaheuristics means also using traditional algorithms Wide set of applications is possible, existing results show this Knowledge transfer is possible, so potential impact is almost infinite Merging metaheuristics and software engineering is relatively recent

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 27 of 28

Merging metaheuristics and software engineering is relatively recent Multiobjective approaches are very important in this field A big deal of crossfertillization is needed between SEARCH and S.E. Learning and evolution also could play a main role in software engineering What on using software engineering for designing metaheuristics?! Let’s reuse the existing knowledge

slide-28
SLIDE 28

http://neo.lcc.uma.es

2 1 1

¡Muchas Gracias por su Atención! ¡Muchas Gracias por su Atención!

12 3%4

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Enrique Alba

How Can Metaheuristics Help Software Engineers 28 of 28

%'(())&)(& %'((&))&)