http:// ferland

Post on 16-Dec-2015

231 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

http://www.researchandpractise.com/vrp/

http://www.iro.umontreal.ca/~ferland/

ferland@iro.umontreal.cae-mail 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.

top related