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
ij j
i
ij x
C Min
S.T:
G j
i j i x
E j
i x
x
E j
i x
G j
x x
ij
ji ij
ij
ji j i j
i
ij
, , ,
1 , 0
) , ( , 1
) , ( , 1
,
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 * 9 8 4 5 9 4
X2 9 * 4 6 4 9 9
X3 3 4 * 2 3 5 4
X4 4 8 5 * 1 7 8
X5 5 9 8 8 * 1 4
X6 3 4 2 7 3 * 6
X7 3 4 8 5 9 4 *
Example
X1 X2 X3 X4 X5 X6 X7
X1 * 9 8 4 5 9 4 4
X2 9 * 4 6 4 9 9 4
X3 3 4 * 2 3 5 4 2
X4 4 8 5 * 1 7 8 1
X5 5 9 8 8 * 1 4 1
X6 3 4 2 7 3 * 6 2
X7 3 4 8 5 9 4 * 3
Step 2 Minimum cost / row
X1 X2 X3 X4 X5 X6 X7
X1 * 9 8 4 5 9 4 4
X2 9 * 4 6 4 9 9 4
X3 3 4 * 2 3 5 4 2
X4 4 8 5 * 11 7 8 1 x4→x5
X5 5 9 8 8 * 1 4 1
X6 3 4 2 7 3 * 6 2
X7 3 4 8 5 9 4 * 3
Step 3
Example (cont.)
X1 X2 X3 X4 X5 X6 X7
X1 * 9 8 4 5 9 4 4
X2 9 * 4 6 4 9 9 4
X3 3 4 * 2 3 5 4 2
X4 4 8 5 * 11 7 8 1 x4→x5
X5 5 9 8 8 * 12 4 1 x5→x6
X6 3 4 2 7 3 * 6 2
X7 3 4 8 5 9 4 * 3
Step 4
Example (cont.)
X1 X2 X3 X4 X5 X6 X7
X1 * 9 8 4 5 9 46 4 x1→x7
X2 9 * 4 6 4 9 9 4 Isolated vertex
X3 3 4 * 23 3 5 4 2 x3→x4
X4 4 8 5 * 11 7 8 1 x4→x5
X5 5 9 8 8 * 12 4 1 x5→x6
X6 3 4 24 7 3 * 6 2 x6→x3
X7 35 4 8 5 9 4 * 3 x7→x1
Step 4
Example (cont.)
Step 5
Example (cont.)
Vertex index
x1 x2 x3 x4 x5 x6 x7
Sequence 6 7 3 1 2 4 5
Destination x7 x2 x4 x5 x6 x3 x1 Cycle index 2 3 1 1 1 1 2
Results:
Two cycles: x4-x5-x6-x3, x7-x1 One isolated vertex
Step 6
Example (cont.)
6-1 de-cycling
x4 → x5 →x6 →x3 →
x4 → x5 →x6 →x3
x1 x7 x7→x1
Step 6
Example (cont.)
6-2 connecting
1. choosing isolated vertex firstly
x4 x3 x1 x7
x2 6 4 9 9
8 4 9 4
x2
Alternative solutions: x2→x3, x3→x2, x7→x2
Step 6
Example (cont.)
2. Connecting results
x2 → x3 → x4 → x5 → x6 x4 → x5 → x6 → x3 → x2 x1 → x7 → x2
Step 6
Example (cont.)
3. Connecting other trees
{x1,x7,x2} , {x4,x5,x6,x3}
Alternative solutions: x3→x1
x4 x1
x2 6 *
x3 * 3
Minimum cost
Step 6
Example (cont.)
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
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
Procedure 1 : Initialize the population
Application of GA to optimize the generalized results (cont. )
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
Procedure 1 : Initialize the population
Application of GA to optimize the generalized results (cont. )
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.
Procedure 2 : Evaluate the fitness
Application of GA to optimize the generalized results (cont. )
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.
Procedure 3 : Parents selection
Application of GA to optimize the generalized results (cont. )
Step 1. Compute the fitness value of all the population members, Fsum = ,s is the 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 .
s i
fi 1
Procedure 3 : Parents selection
Application of GA to optimize the generalized results (cont. )
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.
Procedure 4 : Genetic operation
Application of GA to optimize the generalized results (cont. )
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..
Procedure 4 : Genetic operation
Application of GA to optimize the generalized results (cont. )
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.
Example : crossover operation
Application of GA to optimize the generalized results (cont. )
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
Example : mutate operation
Application of GA to optimize the generalized results (cont. )
Parent1 5 4 8 | 1 7 2 3 | 10 2 5
Offspring 5 4 8 | 3 7 2 1 | 10 2 5