16.01.2015 Views

Scatter Search Methodology and Applications.pdf

Scatter Search Methodology and Applications.pdf

Scatter Search Methodology and Applications.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Scatter</strong> <strong>Search</strong>:<br />

<strong>Methodology</strong> <strong>and</strong><br />

<strong>Applications</strong><br />

Manuel Laguna<br />

University of Colorado<br />

Rafael Martí<br />

University of Valencia


Based on …<br />

<strong>Scatter</strong> <strong>Search</strong>: <strong>Methodology</strong> <strong>and</strong><br />

Implementations in C<br />

Laguna, M. <strong>and</strong> R. Martí<br />

Kluwer Academic Publishers, Boston, 2003.<br />

2


<strong>Scatter</strong> <strong>Search</strong><br />

<strong>Methodology</strong>


Metaheuristic<br />

A metaheuristic refers to a master strategy<br />

that guides <strong>and</strong> modifies other heuristics<br />

to produce solutions beyond those that are<br />

normally generated in a quest for local<br />

optimality.<br />

A metaheuristic is a procedure that has<br />

the ability to escape local optimality<br />

4


Typical <strong>Search</strong> Trajectory<br />

100<br />

90<br />

80<br />

Objective Function<br />

70<br />

60<br />

50<br />

40<br />

30<br />

20<br />

10<br />

Value<br />

Best Value<br />

0<br />

1 4 7 10 13 16 19 22 25 28 31 34 37 40<br />

Iteration<br />

5


Metaheuristic Classification<br />

x/y/z Classification<br />

• x = A (adaptive memory) or M (memoryless(<br />

memoryless)<br />

• y = N (systematic neighborhood search) or S (r<strong>and</strong>om<br />

sampling)<br />

• z = 1 (one current solution) or P (population of<br />

solutions)<br />

Some Classifications<br />

• Tabu search (A/N/1)<br />

• Genetic Algorithms (M/S/P)<br />

• <strong>Scatter</strong> <strong>Search</strong> (M/N/P)<br />

6


<strong>Scatter</strong> <strong>Search</strong><br />

Diversification Generation<br />

Method<br />

Repeat until |P| = PSize<br />

P<br />

Improvement<br />

Method<br />

Improvement<br />

Method<br />

Reference Set<br />

Update Method<br />

Solution Combination<br />

Method<br />

Subset Generation<br />

Method<br />

Stop if no more<br />

new solutions<br />

RefSet<br />

7


<strong>Scatter</strong> <strong>Search</strong> with Rebuilding<br />

Diversification Generation<br />

Method<br />

Repeat until |P| = PSize<br />

P<br />

Improvement<br />

Method<br />

Improvement<br />

Method<br />

Reference Set<br />

Update Method<br />

Solution Combination<br />

Method<br />

Stop if MaxIter<br />

reached<br />

Subset Generation<br />

Method<br />

Improvement<br />

Method<br />

No more new<br />

solutions<br />

RefSet<br />

Diversification Generation<br />

Method<br />

8


Tutorial<br />

Unconstrained Nonlinear Optimization<br />

Problem<br />

Minimize<br />

100<br />

10.1<br />

(<br />

2<br />

)<br />

2<br />

2<br />

( ) (<br />

2<br />

1 90 )<br />

2<br />

x − x + − x + x − x + ( 1 − x )<br />

2<br />

( ) ( ) )<br />

2<br />

2<br />

x −1<br />

+ x −1<br />

+ 19.8( x −1)( x −1)<br />

2<br />

1<br />

4<br />

1<br />

4<br />

2<br />

3<br />

4<br />

3<br />

2<br />

+<br />

Subject<br />

to<br />

−10<br />

≤<br />

x<br />

i<br />

≤10<br />

for<br />

i<br />

= 1, K,4<br />

9


Diversification Generation<br />

Method<br />

Subrange 1 Subrange 2 Subrange 3 Subrange 4<br />

-10 -5 0 +5 +10<br />

Probability of selecting a subrange is proportional to a frequency count<br />

10


11<br />

11<br />

Diverse Solutions<br />

Diverse Solutions<br />

x 1<br />

1.11<br />

-9.58<br />

7.42<br />

8.83<br />

-6.23<br />

1.64<br />

0.2<br />

-3.09<br />

-6.08<br />

-1.97<br />

x 2<br />

0.85<br />

-6.57<br />

-1.71<br />

-8.45<br />

7.48<br />

3.34<br />

-3.64<br />

6.62<br />

0.67<br />

8.13<br />

x 3<br />

9.48<br />

-8.81<br />

9.28<br />

4.52<br />

6<br />

-8.32<br />

-5.3<br />

-2.33<br />

-6.48<br />

-5.63<br />

x 2<br />

-6.35<br />

-2.27<br />

5.92<br />

3.18<br />

7.8<br />

-8.66<br />

-7.03<br />

-3.12<br />

1.48<br />

8.02<br />

f(x)<br />

835546.2<br />

1542078.9<br />

901878.0<br />

775470.7<br />

171450.5<br />

546349.8<br />

114023.8<br />

7469.1<br />

279099.9<br />

54537.2<br />

Solution<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10


Improvement Method<br />

Solution x 1 x 2 x 3 x 2 f(x)<br />

1 2.5 5.4 2.59 5.67 1002.7<br />

2 -0.52 -0.5 0.35 -0.14 138.5<br />

3 -2.6 5.9 4.23 10 7653.7<br />

4 0.49 0.53 2.47 5.89 213.7<br />

5 -3.04 9.45 1.14 0.41 720.1<br />

6 -1.4 2.46 0.37 -3.94 1646.7<br />

7 -0.36 -0.31 0.8 1.14 57.1<br />

8 -1.63 2.51 0.73 0.56 21.5<br />

9 -0.8 0.69 -1.16 1.5 11.2<br />

10 -2.47 5.32 -2.92 8.15 1416.7<br />

Nelder <strong>and</strong> Mead (1965)<br />

12


Reference Set Update Method<br />

(Initial RefSet)<br />

b 1<br />

high-quality<br />

solutions<br />

Objective function<br />

value to measure<br />

quality<br />

b 2<br />

diverse<br />

solutions<br />

Max-min criterion <strong>and</strong><br />

Euclidean distances to<br />

measure diversity<br />

RefSet of size b<br />

13


Initial RefSet<br />

High-Quality Solutions<br />

Solution<br />

number in P x 1 x 2 x 3 x 4 f(x)<br />

35 -0.0444 0.0424 1.3577 1.8047 2.1<br />

46 1.133 1.2739 -0.6999 0.5087 3.5<br />

34 -0.0075 0.0438 1.4783 2.2693 3.5<br />

49 1.1803 1.4606 -0.344 0.2669 5.2<br />

38 1.0323 0.9719 -0.8251 0.695 5.3<br />

Diverse Solutions<br />

Solution x 1 x 2 x 3 x 4 f(x)<br />

37 -3.4331 10 1.0756 0.3657 1104.1<br />

30 3.8599 10 -4.0468 10 9332.4<br />

45 -4.4942 10 3.0653 10 13706.1<br />

83 -0.2414 -6.5307 -0.9449 -9.4168 17134.8<br />

16 6.1626 10 0.1003 0.1103 78973.2<br />

14


Subset Generation Method<br />

All pairs of reference solutions that include<br />

at least one new solution<br />

The method generates (b2-b)/2 b)/2 pairs from<br />

the initial RefSet<br />

15


Combination Method<br />

y<br />

10<br />

9<br />

x 3 = (9,7)<br />

r = 2/3<br />

x 3 = x 1 - r(x 2 - x 1 )<br />

x 4 = x 1 + r(x 2 - x 1 )<br />

x 5 = x 2 + r(x 2 - x 1 )<br />

8<br />

x 1 = (5,7)<br />

7<br />

6<br />

5<br />

4<br />

x 4 = (6.5,5.5)<br />

r = 1/2<br />

x 2 = (8,4)<br />

3<br />

2<br />

x 5 = (11,1)<br />

r = 1<br />

1<br />

1 2 3 4 5 6 7 8 9 10 11 12 13<br />

x<br />

16


Alternative Combination Method<br />

y<br />

10<br />

9<br />

8<br />

x 3<br />

x 1 = (5,7)<br />

x 3 = x 1 - r(x 2 - x 1 )<br />

x 4 = x 1 + r(x 2 - x 1 )<br />

x 5 = x 2 + r(x 2 - x 1 )<br />

7<br />

6<br />

x 4 x 5<br />

5<br />

4<br />

x 2 = (8,4)<br />

3<br />

2<br />

1<br />

1 2 3 4 5 6 7 8 9 10 11 12 13<br />

x<br />

17


Reference Set Update Method<br />

Quality 1<br />

2<br />

.<br />

.<br />

.<br />

Best<br />

1<br />

2<br />

.<br />

.<br />

.<br />

Best<br />

New trial<br />

solution<br />

b<br />

Worst<br />

b<br />

Worst<br />

RefSet of size b<br />

Updated RefSet<br />

18


Static Update<br />

Pool of new trial solutions<br />

Quality 1<br />

2<br />

.<br />

.<br />

.<br />

Best<br />

b<br />

Worst<br />

RefSet of size b<br />

Updated RefSet = Best b from RefSet ∪ Pool<br />

19


RefSet after Update<br />

x 1<br />

x 2<br />

x 3<br />

x 4<br />

f(x)<br />

1.1383 1.2965 0.8306 0.715 0.14<br />

0.7016 0.5297 1.2078 1.4633 0.36<br />

0.5269 0.287 1.2645 1.6077 0.59<br />

1.1963 1.3968 0.6801 0.446 0.62<br />

0.3326 0.1031 1.3632 1.8311 0.99<br />

0.3368 0.1099 1.3818 1.9389 1.02<br />

0.3127 0.0949 1.3512 1.8589 1.03<br />

0.7592 0.523 1.3139 1.7195 1.18<br />

0.2004 0.0344 1.4037 1.9438 1.24<br />

1.3892 1.9305 0.1252 -0.0152<br />

1.45<br />

20


Tutorial<br />

0-11 Knapsack Problem<br />

Maximize 10x 1 + 14x 2 + 9x 3 + 8x 4 + 7x 5 + 5x 6 + 9x 7 + 3x 8<br />

S.t. 7x 1 + 12x 2 + 8x 3 + 9x 4 + 8x 5 + 6x 6 + 11x 7 + 5x 8 < 100<br />

x i = { 0, 1} for i = 1, …, 8<br />

21


Additional Strategies<br />

Reference Set<br />

• Rebuilding<br />

• Multi-tier<br />

tier<br />

Subset Generation<br />

• Subsets of size > 2<br />

Combination Method<br />

• Variable number of solutions<br />

22


Rebuilding<br />

RefSet<br />

Rebuilt RefSet<br />

b 1<br />

b 2<br />

Diversification<br />

Generation Method<br />

Reference Set<br />

Update Method<br />

23


2-Tier<br />

RefSet<br />

Solution Combination<br />

Method<br />

Improvement<br />

Method<br />

Try here first<br />

RefSet<br />

b 1<br />

If it fails, then<br />

try here<br />

b 2<br />

24


3-Tier<br />

RefSet<br />

Solution Combination<br />

Method<br />

Improvement<br />

Method<br />

RefSet<br />

Try here first<br />

b 1<br />

If it fails, then<br />

try here<br />

b 2<br />

Try departing<br />

solution here<br />

b 3<br />

25


Subset Generation<br />

Subset Type 1: all 2-element 2<br />

subsets.<br />

Subset Type 2: 3-element subsets derived<br />

from the 2-element 2<br />

subsets by augmenting<br />

each 2-element 2<br />

subset to include the best<br />

solution not in this subset.<br />

Subset Type 3: 4-element subsets derived<br />

from the 3-element 3<br />

subsets by augmenting<br />

each 3-element 3<br />

subset to include the best<br />

solutions not in this subset.<br />

Subset Type 4: the subsets consisting of the<br />

best i elements, for i = 5 to b.<br />

26


Subsets of Size > 2<br />

90%<br />

80%<br />

70%<br />

60%<br />

50%<br />

40%<br />

30%<br />

20%<br />

10%<br />

0%<br />

R<strong>and</strong>om<br />

Type 1<br />

Type 2<br />

Type 3<br />

Type 4<br />

LOLIB<br />

27


Variable Number of Solutions<br />

Quality<br />

1<br />

2<br />

.<br />

.<br />

.<br />

Best<br />

Generate 5 solutions<br />

Generate 3 solutions<br />

Generate 1 solution<br />

b<br />

Worst<br />

RefSet of size b<br />

28


Hybrid Approaches<br />

Use of Memory<br />

• Tabu <strong>Search</strong> mechanisms for intensification<br />

<strong>and</strong> diversification<br />

GRASP Constructions<br />

Combination Methods<br />

• GA Operators<br />

• Path Relinking<br />

29


Multiobjective <strong>Scatter</strong> <strong>Search</strong><br />

This is a fruitful research area<br />

Many multiobjective evolutionary<br />

approaches exist (Coello(<br />

Coello, , et al. 2002)<br />

SS can use similar techniques developed<br />

for MOEA (multiobjective(<br />

evolutionary<br />

approches)<br />

30


Multiobjective EA Techniques<br />

Independent Sampling<br />

• <strong>Search</strong> on f(x) = ∑w i f i (x)<br />

• Change weights <strong>and</strong> rerun<br />

Criterion Selection<br />

• Divide reference set into k subsets<br />

• Admission to i th subset is according to f i (x)<br />

31


<strong>Scatter</strong> <strong>Search</strong><br />

<strong>Applications</strong> <strong>and</strong> Implementations


<strong>Scatter</strong> <strong>Search</strong> Elements<br />

Diversification Generator Method<br />

Improvement Method<br />

Reference Set<br />

• Initialization<br />

• Update<br />

• Rebuild<br />

Subset Generation Method<br />

Solution Combination Method<br />

Problem Independent<br />

33


C Code Objective<br />

Illustrate the methods <strong>and</strong> strategies<br />

Use it in different applications<br />

Extend the previous version:<br />

• http://www.uv.es/~rmarti/sscode.html<br />

• Modularity<br />

• Versatility<br />

Non experts (use as it is with small changes)<br />

Experts (can easily introduce important modifications)<br />

• Ansi C (different platforms <strong>and</strong> systems)<br />

34


Basic Design<br />

Diversification Generation<br />

Method<br />

Repeat until |P| = PSize<br />

P<br />

Improvement<br />

Method<br />

Improvement<br />

Method<br />

Reference Set<br />

Update Method<br />

Solution Combination<br />

Method<br />

Subset Generation<br />

Method<br />

Stop if no more<br />

new solutions<br />

RefSet<br />

35


RefSet Data Structure<br />

typedef struct REFSET<br />

{ int b; /* Size */<br />

double **sol;<br />

double *ObjVal;<br />

/* Solutions */<br />

/** Objective value of solutions */<br />

int *order; /* Order of solutions */<br />

int *iter; /* Entering iteration */<br />

int NewSolutions; /* =1 if new element has been added */<br />

} REFSET;<br />

RefSet<br />

b<br />

sol<br />

ObjVal<br />

order<br />

iter<br />

NewSolutions<br />

nvar<br />

36


Main Function<br />

int main(void)<br />

{<br />

SS *pb*<br />

pb;<br />

/* Pointer to problem data */<br />

int nvar = 10; /* Number of variables */<br />

int b = 10;<br />

/* Size of reference set */<br />

int PSize = 100; /* Size of P */<br />

pb = SSProblem_Definition(nvar,b,PSize<br />

(nvar,b,PSize);<br />

/* Insert here the <strong>Scatter</strong> <strong>Search</strong> code */<br />

SSFree_DataStructures(pb<br />

(pb);<br />

return 0;<br />

}<br />

37


Basic Design<br />

pb = SSProblem_Definition(nvar,b,PSize);<br />

SSCreate_P(pb<br />

(pb);<br />

SSCreate_RefSet(pb<br />

(pb);<br />

While(pb<br />

pb->rs->NewSolutions)<br />

SSUpdate_RefSet(pb<br />

(pb);<br />

SSBestSol(pb,sol,&value);<br />

SSFree_DataStructures(pb);<br />

38


Advanced Design<br />

pb = SSProblem_Definition(nvar,b,PSize);<br />

SSCreate_P(pb<br />

(pb);<br />

SSCreate_RefSet(pb<br />

(pb);<br />

for(Iter=1;<br />

Iterrs<br />

rs->NewSolutions)<br />

SSUpdate_RefSet(pb<br />

(pb);<br />

else<br />

SSRebuild_RefSet(pb<br />

(pb);<br />

}<br />

SSBestSol(pb,sol,&value);<br />

SSFree_DataStructures(pb);<br />

39


SSCreate_P<br />

while(currentPSize p<br />

>p->PSize)<br />

{<br />

SSGenerate_Sol(pb,sol);<br />

obj_val = sol_value(sol);<br />

SSImprove_solution(pb,sol,&obj_val<br />

(pb,sol,&obj_val);<br />

/* Check whether sol is a new solution */<br />

j=1;equal=0;<br />

while(jp->sol[j++],pb->nvar);<br />

/* Add improved solution to P */<br />

if(!equal){<br />

for(j=1;jnvar;j++)<br />

pb->p<br />

>p->sol[currentPSize][j]=sol[j];<br />

]=sol[j];<br />

pb->p<br />

>p->ObjVal[currentPSize++] = obj_val;<br />

}<br />

}<br />

40


SSCreate_RefSet<br />

/* Order solutions in P */<br />

p_order = SSOrder(pb<br />

(pb->p->ObjVal, pb->p<br />

>p->PSize, pb->Opt);<br />

b1 = pb->rs<br />

rs->b / 2;<br />

/* Add the first (best)) b1 solutions in P to RefSet */<br />

/* Compute minimum distances from P to RefSet */<br />

for(i=1;ip->PSize;i++)<br />

min_dist[i]= SSDist_RefSet(pb,b1,pb<br />

(pb,b1,pb->p->sol[i]);<br />

>sol[i]);<br />

/* Add b-b1 b b1 diverse solutions to RefSet */<br />

for(i=b1+1;irs->b;i++)<br />

{<br />

a=SSMax_dist_index(pb,min_dist<br />

SSMax_dist_index(pb,min_dist);<br />

/* Copy sol a from P to Refset */<br />

SSUpdate_distances(pb,min_dist,i<br />

(pb,min_dist,i);<br />

}<br />

/* Compute the order in RefSet: order */<br />

pb->rs<br />

rs->NewSolutions<br />

= 1; pb->CurrentIter<br />

= 1;<br />

41


SSUpdate_RefSet<br />

pb->rs<br />

rs->NewSolutions=0;<br />

SSCombine_RefSet(pb);<br />

pb->CurrentIter<br />

CurrentIter++;<br />

for(a=1;apool_size;a++)<br />

{<br />

value=sol_value(pb<br />

sol_value(pb->pool[a]);<br />

SSImprove_solution(pb,pb->pool[a],&value);<br />

SSTryAdd_RefSet(pb,pb->pool[a],value);<br />

}<br />

pb->pool_size<br />

pool_size=0;<br />

42


Advanced Designs<br />

Reference Set Update<br />

• Dynamic / Static<br />

• 2 Tier / 3 Tier<br />

Subset Generation<br />

Use of Memory<br />

• Explicit Memory<br />

• Attributive Memory<br />

Path Relinking<br />

43


An Example<br />

The Linear Ordering Problem<br />

Given a matrix of weights E = {e ij } mxm , the LOP consists of<br />

finding a permutation p of the columns (<strong>and</strong> rows) in<br />

order to maximize the sum of the weights in the upper<br />

triangle<br />

• <strong>Applications</strong><br />

Maximize<br />

• Triangulation for Input-Output Economic Tables.<br />

• Aggregation of individual preferences<br />

• Classifications in Sports<br />

C ( p)=<br />

e<br />

E<br />

m−1<br />

i=<br />

1<br />

m<br />

∑ ∑<br />

j=+<br />

i 1<br />

p p<br />

i<br />

j


An Instance<br />

1 2 3 4<br />

3 4 1 2<br />

1<br />

2<br />

3<br />

4<br />

⎡ 0 12 5 3⎤<br />

⎢<br />

4 0 2 6<br />

⎥<br />

⎢<br />

⎥<br />

⎢ 8 3 0 9⎥<br />

⎢<br />

⎥<br />

⎣11 4 2 0⎦<br />

3<br />

4<br />

1<br />

2<br />

⎡0 9 8 3⎤<br />

⎢<br />

2 0 11 4<br />

⎥<br />

⎢<br />

⎥<br />

⎢5 3 0 12⎥<br />

⎢<br />

⎥<br />

⎣2 3 4 0⎦<br />

p=(1,2,3,4)<br />

c E (p)=12+5+3+2+6+9=37<br />

p*=(3,4,1,2)<br />

c E (p*)=9+8+3+11+4+12=47


SS for the LOP<br />

Complete the “generic” code<br />

Design specific methods for the “problem-<br />

dependent” elements<br />

• Diversification Generator Method<br />

• Improvement Method<br />

• Combination Method<br />

46


Diversification Generator<br />

Use of problem structure to create methods in order to<br />

achieve a good balance between quality <strong>and</strong> diversity.<br />

Quality<br />

• Deterministic constructive method<br />

Diversity<br />

• R<strong>and</strong>om Generator<br />

• Systematic Generators (Glover, 1998)<br />

GRASP constructions.<br />

• The method r<strong>and</strong>omly selects from a short list of the most<br />

attractive sectors.<br />

Use of Memory<br />

• Modifying<br />

a measure of attractiveness proposed by Becker with<br />

a frequency-based memory measure that discourages sectors<br />

from occupying positions that they have frequently occupied<br />

47


Diversity vs. Quality<br />

Compare several diversification generators<br />

Create a set of 100 solutions with each one<br />

1.6<br />

1.4<br />

1.2<br />

1.0<br />

0.8<br />

∆d = St<strong>and</strong>ardized Diversity<br />

∆C = St<strong>and</strong>ardized Quality<br />

∆C+∆d<br />

∆<br />

0.6<br />

0.4<br />

∆d<br />

0.2<br />

∆C<br />

0.0<br />

DG05 DG04 DG02 DG01 DG09 DG08 DG06 DG03 DG07 DG10<br />

Procedure<br />

48


Improvement Method<br />

INSERT_MOVE (pj(<br />

pj, , i) consist of deleting pj from<br />

its current position j to be inserted in position i<br />

Apply a first strategy<br />

• scans the list of sectors in search for the first sector<br />

whose movement results in an improvement<br />

⎛ 0 12 5 3 1 8 3⎞<br />

⎜<br />

⎟<br />

⎜ 6 0 3 6 4 4 2⎟<br />

⎜ 8 5 0 5 7 0 3⎟<br />

⎜<br />

⎟<br />

Ep ( )= ⎜−2 7 2 0 −3 6 0⎟<br />

⎜ 8 0 3 −1 0 4 1⎟<br />

⎜<br />

⎟<br />

⎜ 9 1 6 2 13 0 4⎟<br />

⎜<br />

⎟<br />

⎝ 2 9 4 −5 8 1 0⎠<br />

MoveValue = C E (p’) - C E (p)<br />

CE (p’) = 78 + (1 - 4) + (6 - 0) + (2 - 6) +<br />

(13 - 4) = 78 + 8 = 86<br />

49


Solution Combination Method<br />

The method scans (from left to right) each reference<br />

permutation.<br />

• Each reference permutation votes for its first element that is still s<br />

not included in the combined permutation (“incipient element”).<br />

• The voting determines the next element to enter the first still<br />

unassigned position of the combined permutation.<br />

• The vote of a given reference solution is weighted according to<br />

the incipient element’s position.<br />

Incipient element<br />

(3,1,4,2,5) votes for 4 Solution under construction:<br />

(1,4,3,5,2) votes for 4 (3,1,2,4,_ )<br />

(2,1,3,5,4) votes for 5<br />

50


Experiments with LOLIB<br />

49 Input-Output Economic Tables<br />

GD<br />

CK<br />

CK10<br />

TS<br />

SS<br />

Optima<br />

deviation<br />

Number of<br />

optima<br />

Run time<br />

(seconds<br />

onds)<br />

0.15% 0.15% 0.02% 0.04% 0.01%<br />

11 11 27 33 42<br />

0.01 0.10 1.06 0.49 2.35<br />

51


Another Example<br />

A commercial SS implementation<br />

• OptQuest Callable Library (by OptTek)<br />

• As other context-independent methods<br />

separates the method <strong>and</strong> the evaluation.<br />

Output<br />

Optimization<br />

Procedure<br />

Input<br />

System<br />

Evaluator<br />

52


OptQuest based <strong>Applications</strong><br />

Solution Generator<br />

OptQuest<br />

Callable Library<br />

User-written<br />

Application<br />

Solution Evaluator<br />

System<br />

Evaluator<br />

53


Feasibility <strong>and</strong> Evaluation<br />

User Implementation<br />

x x * F(x * )<br />

Constraint<br />

Mapping<br />

Complex System<br />

Evaluator<br />

G(x * )<br />

Penalty<br />

Function<br />

P(x * )<br />

The OptQuest engine<br />

generates a new solution<br />

Returns to<br />

OptQuest<br />

54


Comparison with Genocop<br />

Test on 28 hard nonlinear instances<br />

1.0E+13<br />

Average objective function value<br />

(Logarithmic scale)<br />

1.0E+12<br />

1.0E+11<br />

1.0E+10<br />

1.0E+09<br />

1.0E+08<br />

1.0E+07<br />

1.0E+06<br />

1.0E+05<br />

Genocop<br />

OCL<br />

1.0E+04<br />

1.0E+03<br />

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000<br />

Evaluations<br />

55


Conclusions<br />

The development of metaheuristics usually<br />

entails a fair amount of experimentation<br />

(“skill comes from practice”).<br />

Code objectives:<br />

• Quick Start<br />

• Benchmark<br />

• Advanced Designs<br />

<strong>Scatter</strong> <strong>Search</strong> provides a flexible<br />

“framework” to develop solving methods.<br />

56


Call for Papers<br />

European Journal of Operational Research<br />

Feature Issue on<br />

SCATTER SEARCH METHODS<br />

FOR OPTIMIZATION<br />

Deadline for submissions: June 30, 2003<br />

http://www.uv.es/~rmarti/ejor.html<br />

57


Questions<br />

58

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!