Swarm Computing Swarm Computing Applications in Applications in Software Engineering Software Engineering By Chaitanya
Dec 30, 2015
Swarm Computing Swarm Computing Applications in Software Applications in Software
EngineeringEngineering
ByChaitanya
ContentsContentsIntroductionSwarm ComputingAnt colony optimization
algorithmsApplications in Software
Engineering
2
IntroductionIntroductionSoftware testing is an important
and valuable part of the software development life cycle.
Due to the time and cost constraints, it is not possible to test the software manually and fix the defects. Thus the use of test automation plays a very important role in the software testing process.
3
Swarm ComputingSwarm ComputingSwarm Computing/ Swarm Intelligence
is defined as the collective behavior of decentralized, self-organized systems, natural or artificial. The concept is employed in work on artificial intelligence.
The inspiration often comes from nature, especially biological systems.
4
Swarm ComputingSwarm ComputingThe agents follow very simple rules, and
although there is no centralized control structure dictating how individual agents should behave, local, and to a certain degree random, interactions between such agents lead to the emergence of "intelligent" global behavior.
Natural examples of Swarm Intelligence include ant colonies, bird flocking, animal herding, bacterial growth, and fish schooling.
5
6
FeaturesFeaturesInherent parallelismStochastic natureAdaptivity Use of positive feedbackAutocatalytic in nature
7
Ant Colony Optimization Ant Colony Optimization (ACO) Algorithms(ACO) AlgorithmsACOAs have been introduced as powerful
tools to solve order-based problems, such as the traveling salesman problem (TSP) and the quadratic assignment problems.
The main characteristics of ACSA are positive feedback, distributed computation, and the use of a constructive greedy heuristic.
ACOAs, to some extent, mimic the behavior of real ants.
8
Natural AntsNatural AntsReal ants are capable of finding the
shortest path from food sources to the nest without using visual cues.
They are also capable of adapting to changes in the environment.
9
10
Food
11
12
Natural AntsNatural AntsThese capabilities ants have are
essentially due to what is called “pheromone trails” that ants use to communicate information among individuals regarding path and to decide where to go.
Ants deposit a certain amount of pheromone while walking, and each ant probabilistically prefers to follow a direction rich in pheromone rather than a poorer one.
13
Agents in ACOAgents in ACOThe ant colony optimization algorithm
(ACO) is a probabilistic technique for solving computational problems which can be reduced to finding good paths through graphs.
The individual agents are rather simple. However, when the entire colony foraging towards the bait site complicated dynamics are exhibited, achieving a super–nonlinear increase in performance.
14
Applications of ACOApplications of ACOACO algorithm techniques can be used in a
number of applications like controlling unmanned vehicles, control nanobots within the body for the purpose of killing cancer tumors. Swarm intelligence has also been applied for data mining.
Meta-Heuristic algorithms have been applied to three areas of software engineering: test data generation, module construction and cost/effort prediction.
But these algorithms can be applied to many other operations in software engineering and much research should be done in this field.
15
Application of ACO to Application of ACO to software testingsoftware testingThree main activities normally associated with software testing are: Test data generation, Test execution involving the use of test data and the software under test and Evaluation of test results.The process of test data generation involves activities for producing a set of test data that satisfied a chosen testing criterion.
16
Requirements for test case Requirements for test case generationgenerationTransformation of the testing
problem into a graph.A heuristic measure for measuring
the “goodness” of paths through the graph.
A mechanism for creating possible solutions efficiently and a suitable criterion to stop solution generation.
A suitable method for updating the pheromone.
17
The generated test suite has to satisfy three criteria:All state coverageFeasibility Optimality
18
Coffee and Cocoa vending Coffee and Cocoa vending machine examplemachine example
19
Converted graphConverted graph
20
Individual Agent Individual Agent propertiespropertiesAn ant k at a vertex of the graph is associated with a four tuple:Vertex Track SetTarget SetConnection SetPheromone Trace Set
21
Algorithm for agentAlgorithm for agentEvaluation at vertex -Update the track
-Evaluate connectionsMove to next vertex
-Select Destination-Move-Update Pheromone
22
Stopping criteriaStopping criteriaAll states have been visited at least onceSearch upper bound has been reached.
The final optimal solution can be obtained by examining all of the solution candidates created by ant exploration.
23
24
ConclusionsConclusionsCurrent research into the ASOA is still
at a nascent age.More potentially beneficial work
remains to be done, particularly in the areas of improvement of its computation efficiency.
25
ReferencesReferencesAutomated Software Testing Using Meta-
heuristic Technique Based on An Ant Colony Optimization [Praveen Ranjan Srivastava, Km Baby] 2010
Reformulating Software Engineering as a search problem [John Clarke, Bryan jones]
An Ant Colony Optimization Approach to Test Sequence Generation for State-Based Software Testing [Huaizhong Li, Chiou Peng] 2005
26
THANK YOUTHANK YOU
27