http:// ferland

56
http://www.researchandpractise.com/vrp/ http:// www.iro.umontreal.ca/ ~ferland/ [email protected] e-m ailaddress: W eb site: N ew w eb site on vehiclerouting problem annonced on M arch 7, 2010:

Upload: tianna-shipps

Post on 16-Dec-2015

231 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Http:// ferland

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:

Page 2: Http:// ferland

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

Page 3: Http:// ferland
Page 4: Http:// ferland

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

Page 5: Http:// ferland

Maximal pit slope constraintsto identify the set Bi of predecessor blocks that have to be removed before block i

Page 6: Http:// ferland

Maximal pit slope constraintsto identify the set Bi of predecessor blocks that have to be removed before block i

Page 7: Http:// ferland

Maximal pit slope constraintsto identify the set Bi of predecessor blocks that have to be removed before block i

Page 8: Http:// ferland
Page 9: Http:// ferland

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

Page 10: Http:// ferland

• (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})

Page 11: Http:// ferland
Page 12: Http:// ferland

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

Page 13: Http:// ferland

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})

Page 14: Http:// ferland

Scheduling block extraction ↔ RCPSP

• Open pit extraction ↔ project

• Each block extraction ↔ activity

• Precedence relationship derived from the open pit graph

Page 15: Http:// ferland

Scheduling block extraction ↔ RCPSP

NiBjjiA i ,:) ,(

Page 16: Http:// ferland

Scheduling block extraction ↔ RCPSP

NiBjjiA i ,:) ,(

AjiNjiPi ),(:rspredecesso block *

Page 17: Http:// ferland

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

Page 18: Http:// ferland

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

Page 19: Http:// ferland

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

Page 20: Http:// ferland

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

Page 21: Http:// ferland

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.

Page 22: Http:// ferland

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

Page 23: Http:// ferland

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

Page 24: Http:// ferland

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

Page 25: Http:// ferland

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

Page 26: Http:// ferland

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

Page 27: Http:// ferland

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

Page 28: Http:// ferland

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

Page 29: Http:// ferland

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

Page 30: Http:// ferland

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

Page 31: Http:// ferland

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

Page 32: Http:// ferland

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

Page 33: Http:// ferland

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

Page 34: Http:// ferland

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

Page 35: Http:// ferland

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

Page 36: Http:// ferland

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

Page 37: Http:// ferland

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

Page 38: Http:// ferland

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

Page 39: Http:// ferland

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

Page 40: Http:// ferland

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

Page 41: Http:// ferland

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

Page 42: Http:// ferland

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

Page 43: Http:// ferland

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

Page 44: Http:// ferland

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

Page 45: Http:// ferland

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

Page 46: Http:// ferland

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

Page 47: Http:// ferland

Second encoding of the solutionand

Particle Swarm Solution Approach

Page 48: Http:// ferland

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

Page 49: Http:// ferland

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.

Page 50: Http:// ferland

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

Page 51: Http:// ferland

iSCj

ji bb

.:* ijiNjSCi before extracted bemust

Page 52: Http:// ferland

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

Page 53: Http:// ferland

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

Page 54: Http:// ferland

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

Page 55: Http:// ferland

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

Page 56: Http:// ferland

Numerical experimentation

Preliminary experimentation indicates that this approach does

not give results as good as those obtained with the first

approach introduced before.