How Can Metaheuristics Help Software Engineers



Similar documents
Finding Liveness Errors with ACO

Ant Colony Optimization and Constraint Programming

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Static Program Transformations for Efficient Software Model Checking

Projects - Neural and Evolutionary Computing

CHAPTER 6 MAJOR RESULTS AND CONCLUSIONS

Overview. Swarms in nature. Fish, birds, ants, termites, Introduction to swarm intelligence principles Particle Swarm Optimization (PSO)

A Multi-Objective Performance Evaluation in Grid Task Scheduling using Evolutionary Algorithms

Model-based Parameter Optimization of an Engine Control Unit using Genetic Algorithms

Multi-Objective Optimization using Evolutionary Algorithms

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Biogeography Based Optimization (BBO) Approach for Sensor Selection in Aircraft Engine

What is a life cycle model?

Practical Applications of Evolutionary Computation to Financial Engineering

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS)

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

The ACO Encoding. Alberto Moraglio, Fernando E. B. Otero, and Colin G. Johnson

WORKFLOW ENGINE FOR CLOUDS

HYBRID GENETIC ALGORITHM PARAMETER EFFECTS FOR OPTIMIZATION OF CONSTRUCTION RESOURCE ALLOCATION PROBLEM. Jin-Lee KIM 1, M. ASCE

Search Algorithm in Software Testing and Debugging

An ACO/VNS Hybrid Approach for a Large-Scale Energy Management Problem

MEng, BSc Computer Science with Artificial Intelligence

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Fast Matching of Binary Features

A Binary Model on the Basis of Imperialist Competitive Algorithm in Order to Solve the Problem of Knapsack 1-0

CHAPTER 1 INTRODUCTION

SYSTEMS, CONTROL AND MECHATRONICS

The Model Checker SPIN

DataCenter optimization for Cloud Computing

Development Process Automation Experiences in Japan

REGULATIONS FOR THE DEGREE OF MASTER OF SCIENCE IN COMPUTER SCIENCE (MSc[CompSc])

An Efficient Approach for Task Scheduling Based on Multi-Objective Genetic Algorithm in Cloud Computing Environment

MEng, BSc Applied Computer Science

2. MOTIVATING SCENARIOS 1. INTRODUCTION

HYBRID ACO-IWD OPTIMIZATION ALGORITHM FOR MINIMIZING WEIGHTED FLOWTIME IN CLOUD-BASED PARAMETER SWEEP EXPERIMENTS

An optimisation framework for determination of capacity in railway networks

Bachelorclass

Social Influence Analysis in Social Networking Big Data: Opportunities and Challenges. Presenter: Sancheng Peng Zhaoqing University

Management of Software Projects with GAs

Knowledge Discovery from patents using KMX Text Analytics

Introduction To Genetic Algorithms

Analysis of the Specifics for a Business Rules Engine Based Projects

How To Develop A Telelogic Harmony/Esw Project

Estimation of the COCOMO Model Parameters Using Genetic Algorithms for NASA Software Projects

Model Checking of Software

Bachelor Degree in Informatics Engineering Master courses

Data, Measurements, Features

BOOLEAN CONSENSUS FOR SOCIETIES OF ROBOTS

A genetic algorithm for resource allocation in construction projects

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Optimal Allocation of renewable Energy Parks: A Two Stage Optimization Model. Mohammad Atef, Carmen Gervet German University in Cairo, EGYPT

Total Exploration & Production: Field Monitoring Case Study

Solving Method for a Class of Bilevel Linear Programming based on Genetic Algorithms

Surveying and evaluating tools for managing processes for software intensive systems

vii TABLE OF CONTENTS CHAPTER TITLE PAGE DECLARATION DEDICATION ACKNOWLEDGEMENT ABSTRACT ABSTRAK

GUJARAT TECHNOLOGICAL UNIVERSITY Computer Engineering (07) BE 1st To 8th Semester Exam Scheme & Subject Code

Information and Communications Technology Courses at a Glance

WHITE PAPER. Harnessing the Power of Advanced Analytics How an appliance approach simplifies the use of advanced analytics

Measurement Information Model

Current Standard: Mathematical Concepts and Applications Shape, Space, and Measurement- Primary

CLOUD DATABASE ROUTE SCHEDULING USING COMBANATION OF PARTICLE SWARM OPTIMIZATION AND GENETIC ALGORITHM

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Clustering & Visualization

Prentice Hall Algebra Correlated to: Colorado P-12 Academic Standards for High School Mathematics, Adopted 12/2009

MAGS An Approach Using Multi-Objective Evolutionary Algorithms for Grid Task Scheduling

Increasing Development Knowledge with EPFC

School of Computer Science

Doctor of Philosophy in Computer Science

The University of Jordan

Clustering and scheduling maintenance tasks over time

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Why is SAS/OR important? For whom is SAS/OR designed?

Subgraph Patterns: Network Motifs and Graphlets. Pedro Ribeiro

Instructional Design Framework CSE: Unit 1 Lesson 1

EL Program: Smart Manufacturing Systems Design and Analysis

Bogdan Vesovic Siemens Smart Grid Solutions, Minneapolis, USA

3D Interactive Information Visualization: Guidelines from experience and analysis of applications

Fundamentals of Business Process Management

Formal Verification of Software

CS Master Level Courses and Areas COURSE DESCRIPTIONS. CSCI 521 Real-Time Systems. CSCI 522 High Performance Computing

Keywords revenue management, yield management, genetic algorithm, airline reservation

CREDENTIALS & CERTIFICATIONS 2015

Product Synthesis. CATIA - Product Engineering Optimizer 2 (PEO) CATIA V5R18

SHARED HASH TABLES IN PARALLEL MODEL CHECKING

Draft Martin Doerr ICS-FORTH, Heraklion, Crete Oct 4, 2001

Software Engineering from an Engineering Perspective: SWEBOK as a Study Object

Measuring the Performance of an Agent

A Reactive Tabu Search for Service Restoration in Electric Power Distribution Systems

APPLYING CASE BASED REASONING IN AGILE SOFTWARE DEVELOPMENT

Transcription:

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