http:// ferland
TRANSCRIPT
http://www.researchandpractise.com/vrp/
http://www.iro.umontreal.ca/~ferland/
[email protected] address:
Web site:
New web site on vehicle routing problem annonced on March 7, 2010:
Capacitated Open Pit Mining Problem
Semya Elaoud, Sfax University (Tunesia) Jacques A. Ferland, University of Montreal Jonathan Bellemare, University of Montreal Jorge Amaya, University of Chile
Faculty of Information Technology
University of Science
Vietnam National University of Ho Chi Minh City
March 2010
RIOT Mining Problem web site:http://riot.ieor.berkeley.edu/riot/Applications/OPM/OPMInteractive.html
Maximal Open Pit problem: to determine the maximal gain expected from the extraction
the net value of extracting block i
ib
otherwise. 0
extracted is block if 1 ixi
objective function .iNi
i xb
Notation: : if 0 (including ore)
waste bloore blo
c k: if ck
0 i
i
bb
Maximal pit slope constraintsto identify the set Bi of predecessor blocks that have to be removed before block i
Maximal pit slope constraintsto identify the set Bi of predecessor blocks that have to be removed before block i
Maximal pit slope constraintsto identify the set Bi of predecessor blocks that have to be removed before block i
iiNiV block toscorrespond node:
Use the open pit graph G = (V, A) to specify the maximal pit slope constraints
NiBjjiA i ,:) ,(
The maximal pit slope constraints:
),( 0 Ajixx ij
(2) . or (1) Subject to
Max (MOP)
NixAjixx
xb
i
ij
iNi
i
10),(0
• (MOP) equivalent to determine the maximal closure of G = (V, A)
• Equivalent to determine the minimum cut of the associated
Picard’s graph
where
(2) . or (1) Subject to
Max (MOP)
NixAjixx
xb
i
ij
iNi
i
10),(0
AVG ,
tsVV , AAAA
0,:),( ibViisA 0,:),(
ibVitiA
.),(
),(),
Atitjb
AjssibAji
d
i
jij
and if
and if ( if
SS ,
The maximal open pit is equal to N* = (S – {s})
Scheduling block extraction
Account for operational constraints:
Ct the maximal weight that can be extracted during period t
and for the discount factor during the extracting horizon:
discount rate per period 1
1
Reach for the best ore blocks ( 0) as early as possiblebecause the discount factor induces a reduction of the value over time
ib
1Current value of block extracted at period :
(1 )i
t
bi t
the net value of extracting block i
ib
pi weight of block i
otherwise. period during extracted is block if
01 tix t
i
(7) . or
(6)
(5)
4 1 Subject to
(3) Max (SBE)
ti
i
1
TtNix
TtCxp
TtAjixx
Nix
xb
tti
Ni
ti
t
l
lj
T
t
ti
ti
Nit
iT
t
,,1,10
,,1
,,1,),(0
)1(
1
1
1
N can be replaced by the maximal open pit N* = (S – {s})
Scheduling block extraction ↔ RCPSP
• Open pit extraction ↔ project
• Each block extraction ↔ activity
• Precedence relationship derived from the open pit graph
Scheduling block extraction ↔ RCPSP
NiBjjiA i ,:) ,(
Scheduling block extraction ↔ RCPSP
NiBjjiA i ,:) ,(
AjiNjiPi ),(:rspredecesso block *
Scheduling block extraction ↔ RCPSP
• Open pit extraction ↔ project
• Each block extraction ↔ activity
• Precedence relationship derived from the open pit graph
• Reward associated with activity (block) i depends of the extraction period t
AjiNjiPi ),(:rspredecesso block *
1)1( t
ib
Solution encoding and decoding
:
A solution is encoded as a block list indicating their order of extraction and where theprecedence re
Encoding (Representation)
lationship is satisfied
:Use a decoding procedure to generate a solution corresponding to a blo
Deco
c l
ding
ist
Decoding a block list into a schedule
Serial decoding
• Initiate the first extraction period t = 1
• During any period t:
- The next block to be extracted is the first block in the rest of the block list (including the blocks not extracted yet) having all their predecessors already extracted such that the capacity Ct is not exceeded by its extraction.
Include this block in the newsol block list.
- If no such block exists, then a new extraction period (t + 1) is initiated.
: : , : : 0sol newsol val sol val newsol
If
then : , and :
val newsol val sol
sol newsol val sol val newsol
When all blocs are extracted, the corresponding solution
is having a value of .sol val sol
Metaheuristic solution approach
Generate an initial block 1. list
At each iteration, apply a local search procedure to generate a new block list in the neighborhood of the current block list.
Two different neighborhoods are used in order to intensify
2.
or to diversify the search. moving one ore block
moving several ore blocks
Notation: : if 0 (including ore)
waste bloore blo
c k: if ck
0 i
i
bb
Outline of the solution approach
Now we introduce
the procedure to generate the initial solution
the two neighborhoods
before summarizing the details of the procedure.
Initial solution
Notation:
: if 0 (including ore) waste blo
ore bloc k: if ck
0 i
i
bb
Reach for the best ore blocks ( 0) as early as possiblebecause the discount factor induces a reduction of the value over time
ib
Basic process: include the ore blocks in the list after including waste blocks whenever necessary to satisfy precedence
Associate with each ore block a depth value number of blocks still to be included in the
list before ore block is scheduledi
idepth
i
0 1 2 3 4 5 6 7 8 90 4 4 4 41 4 8 4 16 4 4 42 4 4 4 4 4 4 16 4 43 4 4 4 4
4 4 4 6 44 6 6
10
6
4 4 4 4 4 4
l
h
Associate with each ore block a depth value number of blocks still to be included in the
list before ore block is scheduledi
idepth
i
6
22
0Examples: 1
9
depth
depth
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value
i
i
i depthdepth
b
Include in the list the waste blocks preceding the ore block sela) ected
Include the ore block selected in thb) e list
Update the of the ore blocks not schedul dc yet) edepth
At each iteration of the procedure
Hence to complete the iteration
0 1 2 3 4 5 6 7 8 90 4 4 4 6 4 4 6 4 4 41 4 4 6 6 8 4 16 4 4 42 4 4 10 4 4 4 4 16 4 43 4 4 4 4 4 4 4 4 4 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 6 4 4 6 4 4 41 4 4 6 6 8 4 16 4 4 42 4 4 10 4 4 4 4 16 4 43 4 4 4 4 4 4 4 4 4 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 6 4 4 6 4 4 41 4 6 6 8 4 16 4 42 10 4 4 4 4
4 44 4 416
3 4 44
4 4 44 4 44 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 6 4 4 6 4 4 41 4 4 6 6 8 4 16 4 4 42 4 4 10 4 4 4 4 16 4 43 4 4 4 4 4 4 4 4 4 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 6 4 4 6 4 4 41 4 6 6 8 16 4 44 4 42 4 4 4 4 4 4 410 4 163 4 4 4 4 4 4 4 4 4 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 6 4 4 6 4 4 41 4 6 6 8 16 4 44 4 42 4 4 4 4 4 4 410 4 163 4 4 4 4 4 4 4 4 4 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 4 4 41 4 44 4 4
4 4 4 4 4 4 44 4 4 4 4
1 14 4 4 4 49
4 4 43 492 9
4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 6 4 4 4 4 41 4 6 6 8 16 4 42
4 4 44 4 4 4 4 4 410 4 16
3 4 4 4 4 4 4 4
6
4 4 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 4 4 41 4 44 4 4
4 4 4 4 4 4 44 4 4 4 4
1 14 4 4 4 49
4 4 43 492 9
4
l
h
106
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value Include in the list the waste blocks pr
i
i
i depthdepth
beceding the ore block selected
Include the ore block selected in the listUpdate the of the ore blocks not scheduled yetdepth
0 1 2 3 4 5 6 7 8 90 4 4 4 6 4 4 4 4 41 4 6 6 8 16 4 42
4 4 44 4 4 4 4 4 410 4 16
3 4 4 4 4 4 4 4
6
4 4 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 4 4 41 4 44 4 4
4 4 4 4 4 4 44 4 4 4 4
1 04 4 4 3 39
4 4 43 482 9
4
l
h
106
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value Include in the list the waste blocks pr
i
i
i depthdepth
beceding the ore block selected
Include the ore block selected in the listUpdate the of the ore blocks not scheduled yetdepth
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 4 4 41 4 6 6 8 16 4 44 4 4
4 4 4 42 10 4 16
6
4 4 44 4 4 4 4 4 4
6
4 43 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 4 4 41 4 44 4 4
4 4 4 4 4 4 44 4 4 4 4
1 04 4 4 3 39
4 4 43 482 9
4
l
h
02
06
1
3
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value Include in the list the waste blocks pr
i
i
i depthdepth
beceding the ore block selected
Include the ore block selected in the listUpdate the of the ore blocks not scheduled yetdepth
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 4 4 41 4 6 6 8 16 4 44 4 4
4 4 4 42 10 4 16
6
4 4 44 4 4 4 4 4 4
6
4 43 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 4 4 41 4 44 4 4
4 4 4 4 4 4 44 4 4 4 4
0 03 3 3 3 38
4 4 43 482 8
4
l
h
02
06
1
3
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value Include in the list the waste blocks pr
i
i
i depthdepth
beceding the ore block selected
Include the ore block selected in the listUpdate the of the ore blocks not scheduled yetdepth
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 41 4 6 6 8 4 44 4 4
4 4 4
6 6
2
4
4 4 4 410 4 163
164
4 4 4 4 4 4 4 4 4 4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 41 4 4
0 03 3 2 04 4 4
4 4 4 4 4 423
44 4 4 4 4 4 4 4 4
4
54
42
8 7
l
h
1 2 3 4 50 07
0 0 16 3 5 6
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value Include in the list the waste blocks pr
i
i
i depthdepth
beceding the ore block selected
Include the ore block selected in the listUpdate the of the ore blocks not scheduled yetdepth
0 1 2 3 4 5 6 7 8 90 4 4 4 4 41 4 6 6 4 44 4 4
4 4 4 4 4 4 44 4
46
4 4 4 4 4 42 10 4
68 1
63 4
4
16
4
4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 4 4 41 4 4
0 03 3 2 04 4 4
4 4 4 4 4 423
44 4 4 4 4 4 4 4 4
4
54
42
8 7
l
h
1 2 3 4 5 6 70 00 0 1 1
6 3 6 40
7 5 4
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value Include in the list the waste blocks pr
i
i
i depthdepth
beceding the ore block selected
Include the ore block selected in the listUpdate the of the ore blocks not scheduled yetdepth
0 1 2 3 4 5 6 7 8 90 4 4 4 4 41 4 6 6 4 44 4 4
4 4 4 4 4 4 44 4
46
4 4 4 4 4 42 10 4
68 1
63 4
4
16
4
4
l
h
0 1 2 3 4 5 6 7 8 90 4 4 4 4 41 4 4
0 03 2 0 0 27 5
4 4 44 4 4 4 4 4 44 4 4 4 4 4
4
23 4 4 4
4 4
54
l
h
1 2 3 4 5 6 70 00 0 1 1
6 3 6 40
7 5 4
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value Include in the list the waste blocks pr
i
i
i depthdepth
beceding the ore block selected
Include the ore block selected in the listUpdate the of the ore blocks not scheduled yetdepth
4 4 4 4 4 4 4 44 44 4 4
4 4
6 66 6 8 16 4
1 4 4 4 4 44 4 4 4
0 1 2 3 4 5 6 7 8 9012 0 4
4 4 4 4 41
46
3
l
h
4 4 4 4 4 4 4 44 44 4 4
4 4
0 00 0
4 4 4 4 44 4 4
0 1 2 3 4
4 4 4 4 4
5 6 7 8 90123
0 0 00
40 0
4
l
h
0 0 1 1 1 1 2 1 2 26 3 6 4 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 0 1 0 17 5 4 2 1 8 9 83 7 07 21
Determine the ore block having the smallest If more than one ore blocks have the smallest value,then select one of those having the largest value Include in the list the waste bloc prec
i
i
i depthdepth
beding the ore block selected
Include the ore block selected in the listUpdate the of the ore blocks not scheduled yetdepth
First neighborhood moving one ore block
ore block with its cluster o fwaste bl
Move the selected to preceding
Backw
positions
ar
in
d m
thoc e
ove
ks list
Process can be repeated to generate different neighboor solutions until reaching the nearestpredecessor of the ore block
0 0 1 1 1 1 2 1 2 26 3 6 4 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 0 1 0 17 5 4 2 1 8 9 83 7 07 21
0 1 0 1 1 1 2 1 2 26 6 3 4 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 0 1 0 17 5 4 2 1 8 9 83 7 7 20 1
Forward mov
e
Move the selected ore block with its cluster ofwaste blocks to succeding positions in the list
Process can be repeated to generate different neighboor solutions until reaching the nearestsuccessor of the ore block
0 0 1 1 1 1 2 1 2 26 3 6 4 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 0 1 0 17 5 4 2 1 8 9 83 7 07 21
0 0 1 1 11 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
0 0 0 0 0 0 0 1 0 14 7 5
1 2 1 2 26 3 6 4 2 1 8 93 2 3 7 78 0 1 2
Purged forward move
Move the selected ore block with its cluster ofwaste blocks to succeding positions in the listProcess can be repeated to generate different neighboor solutions until reaching the nearestsuccessor of the ore blockPurge some negative blocs of the cluster:waste block cannot be moved any further becauseit is also the predecessor of another ore block now positioned before the selected moving cluster
Purged forward move
Move the selected ore block with its cluster ofwaste blocks to succeding positions in the listPurge some negative blocs of the cluster:waste block cannot be moved any further becauseit is also the predecessor of another ore block now positioned before the selected moving cluster
0 0 1 1 1 1 2 1 2 26 3 4 6 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 0 1 0 14 5 7 2 1 8 9 83 7 07 21
0 0 1 1 11 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
0 0 0 0 0 0 0 1 0 14 7 5
1 2 1 2 26 3 6 4 2 1 8 93 2 3 7 78 0 1 2
Unique ore block process on cluster i
Generate all the elements of the unique ore block neighborhood
by moving (forwardly and backwardly) the cluster associated
with the ore bloc .i
Determine the best valued decoded solution
( ) having value ( )solone i val solone i
Backward process where several ore blocks ar e moved Move the selected ore block with its cluster ofwaste blocks to preceding positions in the list.
Furthermore, whenever a preceding ore block is reached, the backward process continues, but thecluster of this ore block is also moved backwardto preserve precedence constraints.
0 0 1 1 1 1 2 1 2 26 3 6 4 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 0 1 0 17 5 4 2 1 8 9 83 7 07 21
0 0 1 1 1 1 1 2 2 26 3 6 4 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 0 1 0 17 7 75 4 2 1 8 9 8 0 13 2
Second neighborhood moving multiple ore blocks
Backward process where several ore blocks can
move Move the selected ore block with its cluster of
waste blocks to preceding positions in the list
Furthermore, whenever a preceding ore block is reached, the backward process continues, but thecluster of this ore block is also moved backwardto preserve precedence constraints.
0 0 1 1 1 1 1 2 2 26 3 6 4 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 0 1 0 17 7 75 4 2 1 8 9 8 0 13 2
0 0 1 1 1 1 2 1 2 26 3 6 4 3 7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 0 0 0 1 0 0 17 7 25 4 2 8 9 8 1 0 13 2
Multiple ore block process on cluster i
Generate all the elements of the multiple ore block neighborhood
by using the backward process of the cluster associated
with the ore bloc .i
Determine the best valued decoded solution
( ) having value ( )solmul i val solmul i
Implementation of a metaheuristic procedure
Determine an initial solutionSet : 1iter while doiter Nbiter
for to 1 do Apply the Multiple ore blocks process on a randomly selected cluster Apply the Unique ore block process on cluster
i NbCl
i
:1 1iter iter if the evaluation improvement is < do
for 1 to do Apply the Multiple ore blocks process on cluster
i NbCli
if there is no evaluation improvement STOPotherwise go to 1
number of ore blocsNbCl
Numerical experimentation
Preliminary experimentation with this implementation
is very encouraging.
Further tests need to be completed.
Other implementations can be obtained by combining
the unique ore bloc process and the multiple ore bloc process
with genetic algorithms used to solved the RCPSP
Second encoding of the solutionand
Particle Swarm Solution Approach
Genotype representation of solution
Similar to Hartman’s priority value encoding for RCPSP
priority of scheduling block i extraction
],,[ 1 NprprPR
]1,0[ipr
11
N
iipr
Decoding of a representation PR into a solution x
• Serial decoding to schedule blocks sequentially one by one to be extracted
• To initiate the first extraction period t = 1:
remove the block among those having no predecessor (i.e., in the top layer) having the highest priority.
• During any period t, at any stage of the decoding scheme:
the next block to be removed is one of those with the highest priority among those having all their predecessors already extracted such that the capacity Ct is not exceeded by its extraction.
If no such block exists, then a new extraction period (t + 1) is initiated.
Priority of a block
• Consider its
net value bi and
impact on the extraction of other blocks in future periods
• Block lookahead value (Tolwinski and Underwood) determined by referring to the spanning cone SCi of block i
ib
iSCj
ji bb
.:* ijiNjSCi before extracted bemust
Genotype priority vector generation
• Several different genotype priority vectors can be randomly generated with a GRASP procedure biased to give higher priorities to blocks i having larger lookahead values
• Several feasible solutions can be obtained by decoding different genotype vectors generated with the GRASP procedure.
ib
Particle Swarm Procedure
• Evolutionary process evolving in the set of genotype vectors to converge to an improved feasible solution
• Initial population P of M genotype vectors (individuals) generated using GRASP
• Denote
the best achievement of the individual k up to the current iteration
the best overall genotype vector achieved up to the current iteration
.,,1 MPRPRP
k
PR
PRb
Particle Swarm Procedure
• Denote
the best achievement of the individual k up to the current iteration
the best overall genotype vector achieved up to the current iteration
Modification of the individual vector k at each iteration
k
PR
PRb
k
i
k
i
k
i
k
ii
k
i
k
i
k
ik
i
k
i
k
i
prvcppr
prprbrcprprrcwvcvc
:
)()(: 2211
define weand
populationnext in sol.current
sol.current
velocitycurrent new
locitycurrent vesol.best
of achiev.best sol.current
k
k
kk
Particle Swarm Procedure
• Denote
the best achievement of the individual k up to the current iteration
the best overall genotype vector achieved up to the current iteration
Modification of the individual vector k at each iteration
k
PR
PRb
k
i
k
i
k
i
k
ii
k
i
k
i
k
ik
i
k
i
k
i
prvcppr
prprbrcprprrcwvcvc
:
)()(: 2211
define weand
.1
*,,10
1
N*
i
k
i
k
i
kk
pr
NiprPPRPR
have tognormalisinby and
thatso tingby transla obtained is
Numerical experimentation
Preliminary experimentation indicates that this approach does
not give results as good as those obtained with the first
approach introduced before.