how can metaheuristics help how can metaheuristics help
play

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


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

  2. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion What’s a Metaheuristic? What’s a Metaheuristic? A metaheuristic is a structured computer algorithm composed of different operators that is used to iteratively solve complex problems ������������� ������������� 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 28

  3. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion 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 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 28

  4. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion When are they Useful? When are they Useful? • Objective of a global optimization problem: � �� � � → � � � ��� ���� ��������������� � � � � � ∀ ∈ ≤ = ����������� � � � � � � � � � � �� � � � � uncertain data 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 28

  5. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Metaheuristic versus the rest of Algorithms (I) Metaheuristic versus the rest of Algorithms (I) ������������� Metaheuristics Exhaustive Heuristics � � � � ��� ��������������� MetaH CAN! Others cannot… � � � � Enrique Alba How Can Metaheuristics Help Software Engineers 5 of 28

  6. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Metaheuristic versus the rest of Algorithms (II) Metaheuristic versus the rest of Algorithms (II) � � � � � � THE N�QUEEN � ����������� ������������� OPTIMIZATION � PROBLEM � � ��������� Effort 1,E+12 1,E+12 1,E+10 ANN # evaluations 1,E+08 GA 1,E+06 BACKT 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 28

  7. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Types of Metaheuristics Types of Metaheuristics Metaheuristic Algorithms ����������������������� ��� � �"#�� ���!����� ������!����� Trajectory Population ��� !�!� ��!������%� ���$� ����� '��!������ &��� � ��"��� � &' �� �� ()� +,+ ��� )����� '�� �� *���"� -����!����������"������" Enrique Alba How Can Metaheuristics Help Software Engineers 7 of 28

  8. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Efficient, Accurate, and even Nature-Inspired! Efficient, Accurate, and even Nature-Inspired! �� ��.������� ���� ���� �������%�����/�'��!������ �!������ ��������� Enrique Alba How Can Metaheuristics Help Software Engineers 8 of 28

  9. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion …but all of them Run in a Computer as Programs …but all of them Run in a Computer as Programs ������������������� *��.���.��� ������������ ������������ +��������� → ��������������� ���������������� ���������������� → ����!��!�"�#������ → ��������� ��� ��������������� $��%������� ���������������� ������������ Enrique Alba How Can Metaheuristics Help Software Engineers 9 of 28

  10. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Metaheuristics at Work Metaheuristics at Work *���������01 *���������021 *���������0311 *���������0321 Enrique Alba How Can Metaheuristics Help Software Engineers 10 of 28

  11. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Complex Problems are Everywhere! Complex Problems are Everywhere! &������������� ��������! Enrique Alba How Can Metaheuristics Help Software Engineers 11 of 28

  12. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Scientific Success Reported in Journals (Science) Scientific Success Reported in Journals (Science) Enrique Alba How Can Metaheuristics Help Software Engineers 12 of 28

  13. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Scientific Success Reported in Companies (Industry) Scientific Success Reported in Companies (Industry) ����������������������������������������� ��������������������� � Enrique Alba How Can Metaheuristics Help Software Engineers 13 of 28

  14. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Metaheuristics and Software Metaheuristics and Software �� �� �� Memory �� �� �� �� �� �� �� � ���%'((���)���)�&�)��(&��� ���������(����� � '������4���� ���� ��"��������� Enrique Alba How Can Metaheuristics Help Software Engineers 14 of 28

  15. Introduction 2 Metaheuristics 0 Metaheuristics and Software 1 Open Research Lines http://neo.lcc.uma.es 1 Conclusion Potential Research Lines Potential Research Lines � Testing and Debugging � Distribution, Maintenance, Enhancement � Management search � Design Tools and Techniques � Software Verification 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 15 of 28

Recommend


More recommend