and Software How Can 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 Help Software Engineers of 8
and Software What s a Metaheuristic? A metaheuristicis 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 fieldsinvolved: computer science, and also mathematics, operations research, industrial engineering, physics, Enrique Alba How Can Help Software Engineers of 8
Need of Introduction and Software Scienceis a way of creating and accumulating knowledge by different means, especially by transferring knowledge between domains allow knowledge transference between domains Some metaheuristics have a Nature-inspiredorigin, while others are pure abstract artifacts Science has provided in the past exhaustive mechanismsfor 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 constrainsand simplificationsto the problem (in order to solve it) that the found solution is no longer valid Enrique Alba How Can Help Software Engineers 3 of 8
When are they Useful? Introduction and Software Objective of a global optimization problem: f ( x r ) max : find a vector x r * r r r such that x M : f ( x) f ( x*) : = f * search optimization evolution learning ill problem definition high/unknown parameter correlation mixed variables uncertain data high dimensionality Minimizing is also possible Vectors can map to other data structures computational demanding Enrique Alba How Can Help Software Engineers 4 of 8
and Software Metaheuristic versus the rest of Algorithms (I) How they work Exhaustive Heuristics What this means Others cannot MetaH CAN! Enrique Alba How Can Help Software Engineers 5 of 8
Metaheuristic versus the rest of Algorithms (II),E+ THE N-QUEEN OPTIMIZATION PROBLEM Introduction and Software 3 4 Effort 3 4 Traditional Heuristic Metaheuristic # evaluations,e+,e+8,e+6,e+4,e+,e+ ANN GA BACKT LV SA 4 8 6 3 64 8 56 5 4 problem size Enrique Alba How Can Help Software Engineers 6 of 8
Types of Introduction and Software Metaheuristic Algorithms Optimization Algorithms Trajectory Exact Ad-hoc Heuristic Population Metaheuristic Calculus Enumerative Trajectory Population Direct Indirect DP SA B&B VNS Newton TS Greedy EA ACO PSO nature inspired in red Enrique Alba How Can Help Software Engineers 7 of 8
and Software Efficient, Accurate, and even Nature-Inspired! Tentative Sol. Population Selection Recombination Mutation Insertion Enrique Alba How Can Help Software Engineers 8 of 8
and Software but all of them Run in a Computer as Programs Global best Convex Combination Metric Space New position Best known Inspiration (,; -,4; 3,5) (,;,3; 7,) (,7;,3;,) Solution Vector Standard Deviation Search Angles Present Solution New Solution Enrique Alba How Can Help Software Engineers 9 of 8
at Work Introduction and Software Generation= Generation=5 Generation= Generation=5 Enrique Alba How Can Help Software Engineers of 8
and Software Complex Problems are Everywhere! the world metaheuristics Enrique Alba How Can Help Software Engineers of 8
and Software Scientific Success Reported in Journals (Science) Enrique Alba How Can Help Software Engineers of 8
and Software Scientific Success Reported in Companies (Industry) National & European Projects, Companies, University & Industry * Enrique Alba How Can Help Software Engineers 3 of 8
and Software and Software s s s s3 s5 Memory s7 s6 s4 s8 s9 /mase Makespan Variance Pareto front Expected Makespan Enrique Alba How Can Help Software Engineers 4 of 8
and Software 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 search optimization evolution learning Enrique Alba How Can Help Software Engineers 5 of 8
Finding Software Errors Introduction and Software Objective:Prove that model M satisfies the property : SPIN, JavaPathfinder, s 5 Model M s s s s 4 Using Nested-DFS s s 7 s 3 s s s 6 s 8 s 9 LTL formula f s 3 s s 4!p q s Product Büchi automaton s 5 q s p! q Safety Properties Deadlocks Invariants Assertions using SOTA techniques: - state compression - bitstate hashing - partial order reduction - symmetry reduction - symbolic model checking Enrique Alba How Can Help Software Engineers 6 of 8
Software Testing (I) Introduction and Software After codification, the software products require a test phase The objective is to find errors and assess software correctness Software companies dedicate 5% of resources to this task.,.3.,.3 OK!.5 Automatic generation of input data for the tests.7, 5.4 Wrong!.7, 5.4 5. Important issues: - Object Orientation - Embedded Systems -SAP Enrique Alba How Can Help Software Engineers 7 of 8
Software Testing (II) Introduction and Software Object Orientation - Inheritance, Polymorphism, Embedded Systems SAP - Real time systems in cars (breaks), nuclear plants, - Assessing programmers in ABAP IV, automatic test case generation Program Instrumentation Program Generators Enrique Alba How Can Help Software Engineers 8 of 8
and Software Software Project Management Uncertainty in task durations and staff performance Project Scheduling Probability density function Density function Project makespan Task duration Task duration T T T3 Mean or median: a measure of quality Variance or iqr: a measure of robustness MO approach Objective : quality Objective : robustness Makespan Variance Pareto front Expected Makespan Project costs Staff skills Project tasks Restrictions Company Policies Enrique Alba How Can Help Software Engineers 9 of 8
and Software 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 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! Enrique Alba How Can Help Software Engineers of 8
a Growing Field! Introduction and Software [EVOLUTION OF INTERFACES] [WEB SERVICES] [EVOLUTION OF ARQUITECTURES] [WEB ONTOLOGIES] Enrique Alba How Can Help Software Engineers of 8
Several Guidelines Introduction and Software 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: Binary: CHC, EDA, ILS,... Tree: GP Float: ES, PSO, DE,... Permutation: GA, VNS,... Graphs: ACO Very expensive fitness functions: Parallel 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 Enrique Alba How Can Help Software Engineers of 8
Challenges Introduction and Software 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 Enrique Alba How Can Help Software Engineers 3 of 8
and Software Potential Benefits from Using 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! Enrique Alba How Can Help Software Engineers 4 of 8
(I) Introduction and Software 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 Enrique Alba How Can Help Software Engineers 5 of 8
and Software (II) 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, PP Enrique Alba How Can Help Software Engineers 6 of 8
Some s Introduction and Software 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 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 Enrique Alba How Can Help Software Engineers 7 of 8
and Software Muchas Gracias por su Atención! Málaga (España) /mase http://mstar.lcc.uma.es Enrique Alba How Can Help Software Engineers 8 of 8