Genetic Algorithms in Combinatorial Optimization - Computer ...

roomycankerblossomAI and Robotics

Oct 23, 2013 (4 years and 16 days ago)

87 views

C
ECS 570

Genetic Algorithms in Combinatorial
Optimization

Parallel Programming

by
Barry Wilkinson and Michael Allen
, Chapter 13




1


Combinatorial search and optimization techniques are characterized
by looking for a
solution to a problem among many potential solutions. The traveling salesman problem
is one of many classical computer science problems tackled by combinatorial search an
d
optimization techniques. Other problems include the 0/1 knapsack problem, the n
-
queens
problem, the 8
-

or 15
-
puzzles problem
,
the subset
-
sum problem, etc. Plenty of
applications in commerce and industry (e.g., financial forecasting, airline fleet and c
rew
assignment,
manufacturing
job
-
shop
scheduling,

VLSI chip layout)
have applied the
search and optimization techniques for their solution. Relevant techniques include:
branch
-
and
-
bound search, dynamic programming, hill climbing, simulated annealing, and

genetic algorithms.


Genetic Algorithms


Genetic algorithms

have their theoretical roots in biology and are an attempt to mimic the
process of natural evolution in a population of individuals. Evolution is a process that
works at the chromosome level thr
ough the reproductive process. That is,
in reproduction,
the offspring inherits some portion of the genetic
-
makeup information from each parent
(a process referred to as
crossover
) and hence carries a blend of its parents’ genetic
characteristics. Occasio
nally, random change may occur in the chromosome pattern of a
particular individual (
an effect termed
mutation
) that may lead to significantly different
chromosome pattern from its parents. Mutation is generally believed to play a significant,
although in
frequent, role in natural evolution.

Over time, changes in chromosomes
produce variants that may differ significantly from the members of the original organism
strains. In general, changes that enhance the viability of the strain in some way tend to
pred
ominate over time, a trait more commonly known as “survival of the
fitness
”.
Genetic algorithms are computational approaches to problem solving that are modeled
after this biological process of evolution as follows:


Step0: Define a genetic representation

(a vector
) of the problem.

Step1: Create an initial population

=
, and set

for generation 0
.

Step2: Define a fitness function
.

Step3: Compute the average fitness
. Assign each individual the
normalized fitness value
.

Step4: Assign each
a probability

proportiona
l to its normalized fitness. Using
this distribution, select a subset of vectors and populate the subset to size
. This
gives the set
.

Step5: Pair vectors in

randomly form
ing

pairs. Apply crossover with
probability

to each pair and other genetic operators such as mutation. The
offsprings form a new
generation of the
population
.

Step6:
Eval
uate population
. If termination condition not met, s
et
, return to
Step3.

C
ECS 570

Genetic Algorithms in Combinatorial
Optimization

Parallel Programming

by
Barry Wilkinson and Michael Allen
, Chapter 13




2

Parallel Genetic Algorithms


Adapting genetic algorithms to multiple processors is straight
-
forward.
One adaptation is
the “i
solated subpopulations” approach, where each processor independently generates its
own initial subpopulation of individuals, carries out
a number of

generations of
individuals, and
then
share
s its best individual with other processors.


In addition,
indiv
iduals in a generation may
go through some self improvement (a process referred to
as local
hill
-
climbing
) before mating for reproduction.
The algorithm for each processor
is described as below:


Step0: Define a genetic representation (a vector
) of the problem.

Step1: Create an initial population

=
, and set
.

Step2:
Define

the

fitness

function

, which should be the same
for all processors
.

Step3
: Each individual selects a partner in its neighborhood for mating. An offspring is
created with genetic crossover of the parents, with or without mutation.

Step4
: The offspring does local hill
-
climbing. It replaces the parent, if

it is better
according to some criterion (e.g., based on the fitness function).

Step5
:
When the entire subpopulation is reproduced, terminate if termination condition is
met. Otherwise, determine if it is time to share the best individual with other
proc
essors. Return to Step3 afterward
.


Crossover procedure for

TSP

Procedure

crossover (receiver, donor, offspring)

Choose position
, where

is the vector size of the selected
genetic representation, and
length

within a predefined range
randomly.

Extract the vector of edges from position

to position

from the mate (donor). This is the crossover string,
copy it to the corres
ponding section of the offspring vector.

Add successively further edges until the offspring represents a
valid tour, which can be performed as follows:

If an edge from the receiver parent starting at the last city in
the offspring is possible (i.e., does n
ot violate a valid tour)

Then

add this edge from the receiver

Else

If an edge from the donor parent starting at the last city in the
offspring is possible

Then

add this edge from the donor parent

Else

add that city from the receiver which comes next in

the
receiver vector. This adds a new edge, which we will mark as
an implicit mutation.