Scatter Search Methodology and Applications.pdf
Scatter Search Methodology and Applications.pdf
Scatter Search Methodology and Applications.pdf
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