2019
play

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


  1. 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 Málaga, ESPAÑA Enrique Alba How Can Metaheuristics Help Software Engineers 1 of 30

  2. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion What’s a metaheuristic? A metaheuristic is a structured computer algorithm composed of different operators 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, operations research, industrial engineering, physics, … Enrique Alba How Can Metaheuristics Help Software Engineers 2 of 30

  3. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion 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, optimization 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 Enrique Alba How Can Metaheuristics Help Software Engineers 3 of 30

  4. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion When are they useful for? • Objective of a global optimization problem: (   → f x ) max : find a vector x *       = such that x M : f ( x ) f ( x *) : f * uncertain data search ill problem definition optimization high/unknown parameter correlation evolution high dimensionality learning mixed variables • Minimizing is also possible computational demanding • Vectors can map to other data structures Enrique Alba How Can Metaheuristics Help Software Engineers 4 of 30

  5. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Metaheuristic versus the rest of algorithms (I) How they work Metaheuristics Exhaustive Heuristics  What this means MetaH CAN! Others cannot…  Enrique Alba How Can Metaheuristics Help Software Engineers 5 of 30

  6. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Metaheuristic versus the rest of algorithms (II) 0 1 2 3 4 0 THE N-QUEEN 1 Traditional Metaheuristic OPTIMIZATION 2 PROBLEM 3 4 Heuristic Effort 1,E+12 1,E+10 ANN # evaluations 1,E+08 GA BACKT 1,E+06 LV 1,E+04 SA 1,E+02 1,E+00 4 8 16 32 64 128 256 512 1024 problem size Enrique Alba How Can Metaheuristics Help Software Engineers 6 of 30

  7. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Types of metaheuristics Metaheuristic Algorithms Optimization Algorithms Trajectory Population Exact Ad-hoc Heuristic Metaheuristic Calculus Enumerative Trajectory Population Direct Indirect DP SA EA VNS B&B ACO Newton TS PSO Greedy • nature inspired in red Enrique Alba How Can Metaheuristics Help Software Engineers 7 of 30

  8. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Efficient, accurate, and even nature-Inspired! Recombination Selection Tentative Sol. Population Mutation Insertion Enrique Alba How Can Metaheuristics Help Software Engineers 8 of 30

  9. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion … but all of them run in a computer as programs Convex Combination Global best Metric Space New position Best known → Solution Vector (0,2; -1,4; 3,5) → Standard Deviation (1,0; 10,3; 7,2) → Search Angles (1,7; 0,3; 2,1) Inspiration Present Solution New Solution Enrique Alba How Can Metaheuristics Help Software Engineers 9 of 30

  10. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Metaheuristics at work Generation=0 Generation=50 Generation=100 Generation=150 Enrique Alba How Can Metaheuristics Help Software Engineers 10 of 30

  11. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Complex problems are everywhere! metaheuristics the world Enrique Alba How Can Metaheuristics Help Software Engineers 11 of 30

  12. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Metaheuristics and software s0 s1 s3 Memory s2 s5 s7 s4 s6 s8 s9 Makespan Variance Pareto front Expected Makespan Enrique Alba How Can Metaheuristics Help Software Engineers 12 of 30

  13. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Potential research lines ❑ Testing and Debugging ❑ Distribution, Maintenance, Enhancement ❑ Management search ❑ Design Tools and Techniques ❑ Software Verification optimization ❑ Concurrent Systems evolution ❑ Networks and Critical Systems learning ❑ Requirement Analysis and Design ❑ Coding Tools and Techniques ❑ Human Decision Making ❑ Others Enrique Alba How Can Metaheuristics Help Software Engineers 13 of 30

  14. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Let’s talk on SBSE and the World Enrique Alba How Can Metaheuristics Help Software Engineers 14 of 30

  15. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion SBSE versus Software Engineering Software Engineering SBSE uuhmmmmm not a high impact in Software Engineering! Enrique Alba How Can Metaheuristics Help Software Engineers 15 of 30

  16. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Question: leading S should be “SOL” and not “Search”? S earch… seems not to encapsule all the potential! Focus on O ptimization… in many cases Machine L earning… so important and used in our domain Enrique Alba How Can Metaheuristics Help Software Engineers 16 of 30

  17. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion Software Aware Algorithms: SAAL What is an algorithm? Not (only) an abstract artifact ! A programming artifact is… A world of research is still to come… Compiler directives? Toolboxes are efficient? Algorithms are correctly implemented? Battery consumption? What are the best data structures? Enrique Alba How Can Metaheuristics Help Software Engineers 17 of 30

  18. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion … not so much work in deadlock, starvation , … • Objective: Prove that model M satisfies the property : • SPIN, JavaPathfinder, … Model M LTL formula  f Safety Properties s !p  0 q Deadlocks s2 s0 × p  s Invariants s 3 q s q 5 1 s s1 Assertions 2 … s 4 s Product Büchi automaton 0 …using SOTA techniques: s s - state compression 1 3 s - bitstate hashing s 2 5 - partial order reduction s 7 s - symmetry reduction 4 s - symbolic model checking 6 Using Nested-DFS s s 8 9 Enrique Alba How Can Metaheuristics Help Software Engineers 18 of 30

  19. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion 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 10.5 OK! • Automatic generation of input data for the tests 2.7, 5.4 Important issues: Wrong! 2.7, 5.4 - Object Orientation - Embedded Systems 15.0 - SAP Enrique Alba How Can Metaheuristics Help Software Engineers 19 of 30

  20. Introduction 2019 Metaheuristics Metaheuristics and Software Open Research Lines http://neo.lcc.uma.es Conclusion 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 Instrumentation Program Generators Enrique Alba How Can Metaheuristics Help Software Engineers 20 of 30

Recommend


More recommend