Transcript Procedure 4

Optimization of order-picking
using a revised minimum spanning
table method
盧坤勇
國立聯合大學電子工程系
Minimum spanning tree : MST
Problem statement:
Given a connected graph
G = (V, E) ,
where V={v0, v1, …, vn-1} is the set of
vertices and E V × V is the set of edges.
MST is a connected sub-graph of G of
minimum cost with no cycles.
Traditional MST solution
Linear programming method
Integer programming
Min
C
i j
S.T:

i j
ij
xij
xij   x ji ,  j  G
i j
xij  1 ,  (i, j )  E
xij  x ji  1 ,  (i, j )  E
xij  0 , 1 , i  j , i , j  G
Some well-known heuristic
algorithms
Kruskal, 1956
Prim, 1959
Sollin, 1965
Revised MST algorithm(cont.)
Step 1: listing the cost relationships of vertices by two
dimensional matrices( n × n matrices)
Step 2: choosing the minimum cost for each row and
marking the minimum one from choose cost (e.g. Cij)
Step 3: connecting the vertices of xi and xj and deleting the
ith row and jth column from the matrices
Step 4: repeating step 2 and 3, until deleting all rows and
columns, or all vertices are selected
Revised MST algorithm(cont.)
Step 5: detecting and marking the results by isolated node,
tree, and cycle
5-1 : if single tree only exists, stop
5-2 : if a cycle tree exists, then de-cycling in a tree with
minimum cost
Step 6: connecting all isolated nodes and trees by some
heuristic rules: e.g. Branch and Bound, GA, etc.
Example
Step 1
X1
X2
X3
X4
X5
X6
X7
X1 X2 X3 X4 X5 X6 X7
*
9
8
4
5
9
4
9
*
4
6
4
9
9
3
4
*
2
3
5
4
4
8
5
*
1
7
8
5
9
8
8
*
1
4
3
4
2
7
3
*
6
3
4
8
5
9
4
*
Example
Step 2
X1
X2
X3
X4
X5
X6
X7
Minimum cost / row
X1 X2 X3 X4 X5 X6 X7
*
9
8
4
5
9
4
9
*
4
6
4
9
9
3
4
*
2
3
5
4
4
8
5
*
1
7
8
5
9
8
8
*
1
4
3
4
2
7
3
*
6
3
4
8
5
9
4
*
4
4
2
1
1
2
3
Example (cont.)
Step 3
X1
X2
X3
X4
X5
X6
X7
X1 X2 X3 X4 X5 X6 X7
*
9
8
4
5
9
4
9
*
4
6
4
9
9
3
4
*
2
3
5
4
4
8
5
* 11 7
8
5
9
8
8
*
1
4
3
4
2
7
3
*
6
3
4
8
5
9
4
*
4
4
2
1
1
2
3
x4→x5
Example (cont.)
Step 4
X1
X2
X3
X4
X5
X6
X7
X1 X2 X3 X4 X5 X6 X7
*
9
8
4
5
9
4
9
*
4
6
4
9
9
3
4
*
2
3
5
4
4
8
5
* 11 7
8
5
9
8
8
* 12 4
3
4
2
7
3
*
6
3
4
8
5
9
4
*
4
4
2
1
1
2
3
x4→x5
x5→x6
Example (cont.)
Step 4
X1
X2
X3
X4
X5
X6
X7
X1 X2 X3 X4 X5 X6 X7
*
9
8
4
5
9 46
9
*
4
6
4
9
9
3
4
* 23 3
5
4
4
8
5
* 11 7
8
5
9
8
8
* 12 4
3
4 24 7
3
*
6
35 4
8
5
9
4
*
4
4
2
1
1
2
3
x1→x7
Isolated
vertex
x3→x4
x4→x5
x5→x6
x6→x3
x7→x1
Example (cont.)
Step 5
Vertex
x1 x2
index
Sequence
6 7
Destination x7 x2
Cycle index 2 3
x3
x4
x5
x6 x7
3
x4
1
1
x5
1
2
x6
1
4 5
x3 x1
1 2
Results:
Two cycles: x4-x5-x6-x3, x7-x1
One isolated vertex
Example (cont.)
Step 6
6-1 de-cycling
x4 → x5 →x6 →x3 →
x4 → x5 →x6 →x3
x1
x7
x7→x1
Example (cont.)
Step 6
6-2 connecting
1. choosing isolated vertex firstly
x4
x2
x3
6
8
4
4
x2
x1
x7
9
9
9
4
Alternative solutions: x2→x3, x3→x2, x7→x2
Example (cont.)
Step 6
2. Connecting results
x2 → x3 → x4 → x5 → x6
x4 → x5 → x6 → x3 → x2
x1 → x7 → x2
Example (cont.)
Step 6
3. Connecting other trees
{x1,x7,x2} , {x4,x5,x6,x3}
x2
x3
x4
6
*
x1
*
3
Minimum cost
Alternative solutions: x3→x1
Example (cont.)
Step 6
4. Connecting results
x4 → x5 → x6 → x3 →x1 → x7 → x2
Total cost : 15
5. Optimizing the results by using Branch and
Bound or GA algorithms
Application of GA to optimize
the generalized results
Procedure 1 :Initialize the population
Procedure 2 :Evaluate the fitness
Procedure 3 :Parents selection
Procedure 4 :Genetic operation
Application of GA to optimize
the generalized results(cont.)
Procedure 1 :Initialize the population
Step1. Collect the groups against the results of
MST and give a sequence number, ex :
G1={2},
G2={1,7},
G3={4,5,6,3}
Step2. Initialize parameters : index q=1, a
population size s and population P = {Ø }.
Step3. Randomly produce a integer number Pq to
represent the group , ex : a number 1
represents the group G1.
Application of GA to optimize
the generalized results (cont.)
Procedure 1 :Initialize the population
Step4. If Pq is feasible, go to step 5, or else go to
step 3.
Step5. If Pq is different from any previous
individuals, then P = P + {Pq} , q=q+1, or
else go to step 3.
Step6. If q > s, then P = {p1, p2, …, Ps} is the initial
population and stop; or else go to step3.
Application of GA to optimize
the generalized results (cont.)
Procedure 2 : Evaluate the fitness
Step 1. Initialize a constant c, decrement rate d and
evaluation value E.
Step 2. Order the chromosomes in the decreasing
order of evaluation value.
Step 3. Based on E, calculate the fitness value Fi,
which starts at c, ane reduces linearly with
decrement rate r, Fi = c+ (i-1) r, i = (1,2,…,s)
where s is the size of the population.
Application of GA to optimize
the generalized results (cont.)
Procedure 3 : Parents selection
s the
Step 1. Compute the fitness value of all
population members, Fsum =  f i ,s is the
i 1
population size.
Step 2. Initialize, index i = 0 and a counter F = 0.
Step 3. Randomly generate a real number f [0, Fsum].
Step 4. i = i + 1, F = F + fi .
Application of GA to optimize
the generalized results (cont.)
Procedure 3 : Parents selection
Step 5. If F > f, then return selected position i and
stop; or else go to step 4.
Step6 . Select the first chromosome if n is smaller
than or equal to the sum of cumulative
probability of proceeding chromosomes.
Application of GA to optimize
the generalized results (cont.)
Procedure 4 : Genetic operation
Step 1. Generate a bit string.
Step 2. Check those numbers of parent1 against the
ordered list of the bit string.
Step 3. If those numbers against digit 1 from parent1,
move those numbers from parent1 to offspring
at the same position..
Application of GA to optimize
the generalized results (cont.)
Procedure 4 : Genetic operation
Step 4. Check those numbers against digit 0 from
parent1 and then find those numbers occurring
on parent2.
Step5 . Move those numbers to unfilled positions of
the offspring in the same sequence of parent2.
Application of GA to optimize
the generalized results (cont.)
Example : crossover operation
Bit string 1 0 0 1 0 1 0 0 1 1
Parent1
7 4 8 1 3 6 9 10 2 5
Offspring 7 3 8 1 10 6 4 9 2 5
Parent2
3 5 2 8 7 10 4 1 6 9
Application of GA to optimize
the generalized results (cont.)
Example : mutate operation
Parent1
5 4 8 | 1 7 2 3 | 10 2 5
Offspring 5 4 8 | 3 7 2 1 | 10 2 5