2019 Metaheuristics Metaheuristics and Software Open Research - - PowerPoint PPT Presentation

2019
SMART_READER_LITE
LIVE PREVIEW

2019 Metaheuristics Metaheuristics and Software Open Research - - PowerPoint PPT Presentation

Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion How Can Metaheuristics Help Software Engineers Enrique Alba eat@lcc.uma.es http://www.lcc.uma.es/~eat Universidad de


slide-1
SLIDE 1

Enrique Alba

How Can Metaheuristics Help Software Engineers 1 of 30

http://neo.lcc.uma.es

2019

How Can Metaheuristics Help Software Engineers

Enrique Alba

eat@lcc.uma.es http://www.lcc.uma.es/~eat

Universidad de Málaga, ESPAÑA

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-2
SLIDE 2

Enrique Alba

How Can Metaheuristics Help Software Engineers 2 of 30

http://neo.lcc.uma.es

2019

What’s a metaheuristic?

A metaheuristic is a structured computer algorithm composed of different

  • perators that is used to iteratively solve complex problems

METAHEURISTIC

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, …

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-3
SLIDE 3

Enrique Alba

How Can Metaheuristics Help Software Engineers 3 of 30

http://neo.lcc.uma.es

2019

Need for 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 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

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-4
SLIDE 4

Enrique Alba

How Can Metaheuristics Help Software Engineers 4 of 30

http://neo.lcc.uma.es

2019

When are they useful for?

  • Vectors can map to other data structures
  • Objective of a global optimization problem:
  • Minimizing is also possible

max x f → ) ( : find a vector * x  such that * : *) ( ) ( : f x f x f M x =      

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

  • ptimization

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-5
SLIDE 5

Enrique Alba

How Can Metaheuristics Help Software Engineers 5 of 30

http://neo.lcc.uma.es

2019

Metaheuristic versus the rest of algorithms (I)

Exhaustive Heuristics Metaheuristics Others cannot… MetaH CAN!

How they work  What this means 

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-6
SLIDE 6

Enrique Alba

How Can Metaheuristics Help Software Engineers 6 of 30

http://neo.lcc.uma.es

2019

Metaheuristic versus the rest of algorithms (II)

Metaheuristic Heuristic Traditional

Effort

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

THE N-QUEEN OPTIMIZATION PROBLEM

1 2 3 4 1 2 3 4

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-7
SLIDE 7

Enrique Alba

How Can Metaheuristics Help Software Engineers 7 of 30

http://neo.lcc.uma.es

2019

Types of metaheuristics

Optimization Algorithms Calculus Trajectory Enumerative Direct Indirect SA Exact Metaheuristic Population VNS EA ACO Newton Greedy DP B&B TS PSO

  • nature inspired in red

Ad-hoc Heuristic

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

Trajectory Population

Metaheuristic Algorithms

slide-8
SLIDE 8

Enrique Alba

How Can Metaheuristics Help Software Engineers 8 of 30

http://neo.lcc.uma.es

2019

Efficient, accurate, and even nature-Inspired!

Selection Recombination Insertion Mutation

Tentative Sol. Population

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-9
SLIDE 9

Enrique Alba

How Can Metaheuristics Help Software Engineers 9 of 30

http://neo.lcc.uma.es

2019

Present Solution New Solution

(1,0; 10,3; 7,2) (0,2; -1,4; 3,5) (1,7; 0,3; 2,1) → Solution Vector → Search Angles → Standard Deviation Convex Combination Metric Space

Global best Best known New position

…but all of them run in a computer as programs

Inspiration

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-10
SLIDE 10

Enrique Alba

How Can Metaheuristics Help Software Engineers 10 of 30

http://neo.lcc.uma.es

2019

Metaheuristics at work

Generation=0 Generation=50 Generation=100 Generation=150

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-11
SLIDE 11

Enrique Alba

How Can Metaheuristics Help Software Engineers 11 of 30

http://neo.lcc.uma.es

2019

Complex problems are everywhere!

metaheuristics the world

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-12
SLIDE 12

Enrique Alba

How Can Metaheuristics Help Software Engineers 12 of 30

http://neo.lcc.uma.es

2019

Metaheuristics and software

s0 s4 s7 s6 s2 s1 s8 s9 s5 s3

Memory

Expected Makespan Makespan Variance

Pareto front

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-13
SLIDE 13

Enrique Alba

How Can Metaheuristics Help Software Engineers 13 of 30

http://neo.lcc.uma.es

2019

Potential research lines

❑Testing and Debugging ❑Distribution, Maintenance, Enhancement ❑Management ❑Design Tools and Techniques ❑Software Verification ❑Concurrent Systems ❑Networks and Critical Systems ❑Requirement Analysis and Design ❑Coding Tools and Techniques ❑Human Decision Making ❑Others evolution learning search

  • ptimization

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-14
SLIDE 14

Enrique Alba

How Can Metaheuristics Help Software Engineers 14 of 30

http://neo.lcc.uma.es

2019

Let’s talk on SBSE and the World

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-15
SLIDE 15

Enrique Alba

How Can Metaheuristics Help Software Engineers 15 of 30

http://neo.lcc.uma.es

2019

SBSE versus Software Engineering uuhmmmmm not a high impact in Software Engineering!

SBSE Software Engineering

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-16
SLIDE 16

Enrique Alba

How Can Metaheuristics Help Software Engineers 16 of 30

http://neo.lcc.uma.es

2019

Question: leading S should be “SOL” and not “Search”? Search…seems not to encapsule all the potential! Focus on Optimization… in many cases Machine Learning…so important and used in our domain

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-17
SLIDE 17

Enrique Alba

How Can Metaheuristics Help Software Engineers 17 of 30

http://neo.lcc.uma.es

2019

Software Aware Algorithms: SAAL A world of research is still to come… What is an algorithm? Not (only) an abstract artifact ! A programming artifact is…

Algorithms are correctly implemented? What are the best data structures? Compiler directives? Toolboxes are efficient? Battery consumption?

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-18
SLIDE 18

Enrique Alba

How Can Metaheuristics Help Software Engineers 18 of 30

http://neo.lcc.uma.es

2019

…not so much work in deadlock, starvation, …

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

Product Büchi automaton

s s 4 s 7 s 6 s 2 s 1 s 8 s 9 s 5 s 3 s s 1 s 2 s 3 s 4 s 5

Model M

s1 s0 s2 q p q !p q

LTL formula  f

×

Using Nested-DFS Safety Properties Deadlocks Invariants Assertions …

…using SOTA techniques:

  • state compression
  • bitstate hashing
  • partial order reduction
  • symmetry reduction
  • symbolic model checking

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-19
SLIDE 19

Enrique Alba

How Can Metaheuristics Help Software Engineers 19 of 30

http://neo.lcc.uma.es

2019

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
  • Automatic generation of input data for the tests

1.0, 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

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-20
SLIDE 20

Enrique Alba

How Can Metaheuristics Help Software Engineers 20 of 30

http://neo.lcc.uma.es

2019

Software testing (II)

  • Object Orientation
  • Inheritance, Polymorphism, …
  • Embedded Systems
  • Real time systems in cars (breaks), nuclear plants, …
  • SAP
  • Assessing programmers in ABAP IV, automatic test case generation

Program Generators Program Instrumentation

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-21
SLIDE 21

Enrique Alba

How Can Metaheuristics Help Software Engineers 21 of 30

http://neo.lcc.uma.es

2019

Software project management

 Uncertainty in task durations and staff performance

Task duration T1 T3 T2

Task duration Probability density function

Project Scheduling Project makespan

Density function

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

 Objective 1: quality  Objective 2: robustness

Expected Makespan Makespan Variance

Pareto front

Project costs Staff skills Project tasks Restrictions Company Policies

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-22
SLIDE 22

Enrique Alba

How Can Metaheuristics Help Software Engineers 22 of 30

http://neo.lcc.uma.es

2019

… a growing field!

[EVOLUTION OF INTERFACES] [EVOLUTION OF ARQUITECTURES] [WEB SERVICES] [WEB ONTOLOGIES]

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-23
SLIDE 23

Enrique Alba

How Can Metaheuristics Help Software Engineers 23 of 30

http://neo.lcc.uma.es

2019

Several guidelines

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

Non-traditional representations Fitness function research (e.g. SURROGATES!) Specialized operators

Suggestions for selecting your algorithm:

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

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-24
SLIDE 24

Enrique Alba

How Can Metaheuristics Help Software Engineers 24 of 30

http://neo.lcc.uma.es

2019

Maybe important…security by design, and quality

http://iso25000.com/index.php/en/iso-25000-standards/iso-25010?limit=3&limitstart=0

Why only security? Quality in general (ISO 25010) Objective: develop intelligent automatic tools to reinforce security… smart cities, industry 4.0, …

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-25
SLIDE 25

Enrique Alba

How Can Metaheuristics Help Software Engineers 25 of 30

http://neo.lcc.uma.es

2019

Challenges

 Stopping Criteria

  • 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

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-26
SLIDE 26

Enrique Alba

How Can Metaheuristics Help Software Engineers 26 of 30

http://neo.lcc.uma.es

2019

Potential benefits from using metaheuristics in SE

 Scalability

  • Parallelism, grid computing… but also numerically efficient techniques

 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!

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-27
SLIDE 27

Enrique Alba

How Can Metaheuristics Help Software Engineers 27 of 30

http://neo.lcc.uma.es

2019

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)

 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…

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-28
SLIDE 28

Enrique Alba

How Can Metaheuristics Help Software Engineers 28 of 30

http://neo.lcc.uma.es

2019

 Software Libraries

  • MALLBA: UML design, architecture…

 Data Structures

  • 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…

Open research lines (II)

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-29
SLIDE 29

Enrique Alba

How Can Metaheuristics Help Software Engineers 29 of 30

http://neo.lcc.uma.es

2019

Summary

✓ 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 from other domains ✓ 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. ✓ SOL: Learning and optimization demand a role in software engineering ✓ SAAL: what on using software engineering for designing metaheuristics?! ✓ Let’s reuse the existing knowledge…so we need to read a lot!!!

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion

slide-30
SLIDE 30

Enrique Alba

How Can Metaheuristics Help Software Engineers 30 of 30

http://neo.lcc.uma.es

2019

¡Muchas Gracias por su Atención!

Málaga (España) http://neo.lcc.uma.es http://mstar.lcc.uma.es

Introduction Metaheuristics Metaheuristics and Software Open Research Lines Conclusion