Swarm Computing Applications in Software Engineering

finickyontarioΤεχνίτη Νοημοσύνη και Ρομποτική

29 Οκτ 2013 (πριν από 3 χρόνια και 9 μήνες)

141 εμφανίσεις

Swarm Computing Applications
in Software Engineering

By

Chaitanya

Contents


Introduction


Swarm Computing


Ant colony optimization algorithms


Applications in Software Engineering

2

Introduction


Software 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 Computing


Swarm 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 Computing


The 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

Features


Inherent parallelism


Stochastic nature


Adaptivity


Use of positive feedback


Autocatalytic in nature


7

Ant Colony Optimization (ACO)
Algorithms


ACOAs 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 Ants


Real 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 Ants


These 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 ACO


The 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 ACO


ACO 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 software
testing

Three main activities normally associated with
software testing
are:


T
est
data generation,


T
est execution involving
the use of test data and
the software under
test and


E
valuation
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
generation


Transformation 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

T
he
generated
test suite
has to satisfy
three criteria:


All
state coverage


Feasibility


Optimality

18

Coffee and Cocoa
v
ending machine
e
xample

19

Converted graph

20

Individual Agent properties

An ant
k
at a
vertex
of the graph is
associated with a
four tuple:


Vertex Track
Set


Target
Set


Connection
Set


Pheromone Trace Set

21

Algorithm for
agent


Evaluation at
vertex


-
Update the track


-
Evaluate connections


Move
to next
vertex


-
Select
Destination


-
Move


-
Update Pheromone

22

Stopping criteria


A
ll
states have been visited at least
once


S
earch 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

Conclusions


Current 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

References


Automated 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 YOU


27