Janeiro de 2002 - web.fe.up.ptmac/ensino/docs/MAD20012002/MHeAplicacoes.pdf · Estrutura de...

187
Meta-heurísticas e Aplicações Metodologias de Apoio à Decisão José Fernando Oliveira e Maria Antónia Carravilla Universidade do Porto Faculdade de Engenharia Mestrado em Engenharia Electrotécnica e de Computadores Janeiro de 2002

Transcript of Janeiro de 2002 - web.fe.up.ptmac/ensino/docs/MAD20012002/MHeAplicacoes.pdf · Estrutura de...

Meta-heurísticas e AplicaçõesMetodologias de Apoio à Decisão

José Fernando Oliveira e Maria Antónia Carravilla

Universidade do PortoFaculdade de Engenharia

Mestrado em Engenharia Electrotécnica e de ComputadoresJaneiro de 2002

Pesquisa por Arrefecimento Simulado

(Simulated Annealing)

PAS - como é ?

Fortes semelhanças com pesquisa local (aleatória)mas há permissão de perturbações que levem a piores soluções

Não se procura a melhor solução na V(xk) escolher uma aleatoriamente

A solução vizinha, mesmo se pior, poderá ser aceite– depende da temperatura, e de quanto f.o. piora (∆C)

C(x)X2

Ilustração de PAS

X1 X3

M2 M1

M

x

... e como se procede ?

Solução actual xk

Gerar ao acaso nova solução x ∈ V(xk)Se x é melhor então xk = x

pk , xk = xSenão, com probabilidade

(1-pk) , manter xk

p(∆C)

Probabilidade de aceitação de alterações

∆C

T elevada

T baixa

Referência histórica

Início dos anos 80. Impôs-se, naturalmente ...– pela simplicidade de implementação– pela ampla aplicabilidade

Ideias básicas [Metropolis et al, 1953] têm ligação à termodinâmica e à metalurgiaKirkpatrik et al e Cerny ilustram essas ideias, 30 anos depois, em optimização (VLSI e PCV)

Referências (iniciais):– Metropolis et al (1953), Eq. State Calculation by Fast Comp. Mach., J.Chem. Phys.– Kirkpatrik et al (1982), Optimization by Sim. An., Res. Rep. 9355, IBM– Kirkpatrik et al (1983), Optimization by Sim. An., Science, 220– Cerny (1985), A thermodinamycal Approach to the TSP, J. Opt. Theory and Appl.

Analogia FísicaAlguns materiais têm f. energia que, em arrefecimento lento apósum banho de calor, poderão incluir estados de baixa energia Importante é obter o estado ideal de energia mínima, e não ficarem sub-óptimos, a que corresponderá um material com defeito

Organização aleatória atemperatura elevada

Formação de cristais atemperatura baixa

Cristais de silíciomuito organizados, e sem defeitos, para semicondutores

Configuração perfeita dum cristal - energia mínima

Temperatura baixa não garante por si só um estado de energia mínima - daí a técnica de annealing

Na estatística termodinâmica p(∆E) = exp(-∆E/kT) (k, const. Boltzmann)

Simulação Termodinâmica Optimização CombinatóriaEstados do sistema Soluções admissíveisEnergia Função objectivo (Custo)Mudança de estado Solução vizinhaTemperatura Parâmetro de controloEstado 'congelado' Solução (heurística)

exp (-∆C /T) (T, a temperatura)F. de aceitação(a mais corrente)

PAS - algoritmoAlgoritmo PAS

seleccionar (xk, solução inicial)seleccionar (Tk, Lk)x* := xkC* := C(xk)repetir

para i:=1 até Lkgerar nova solução x ∈ V(xk)calcular ∆C = C(x) - C(xk)se ∆C ≤ 0 então

xk := xse C(x) < C* então

x* := xC* := C(x)

senãose rand [0,1] < exp(- ∆C/Tk ) então

xk := xactualizar (Lk)actualizar (Tk)até stop

Versão homogénea

a temperatura T decresce após um certo número L

de movimentos

Implementação - decisões tácticas

Genéricas(esquema de arrefecimento)

Tk (função temperatura)T0 (temperatura inicial)Lk (nº de iterações)Critério de paragem

Específicas(do problema)

X0 (solução inicial)Estrutura de vizinhançaCálculo de ∆C

Decisões genéricas

Arrefecimento geométrico, o mais popular

Lk = L , a cada temperatura Tk ?T0 deve ser alta Regras de paragem

Ex: C* não melhora y1%, após N1 temperaturas consecutivas (1≤ y1 ≤5)

T0

T1

T

T3

L 3L k0

Esquema de temperatura mais comum

Tk+1 = α Tk , com 0 < α < 1(Tipicamente, 0.8 ≤ α ≤ 0.99) Outro esquema (Lundy e Mees)

Tk+1 = Tk / (1 + βTk) , (β pequeno)

Decisões específicas

Boa estrutura de vizinhança (impõe uma topologia suave ...)– só que não há regras gerais!

Escolha da solução inicial– uma boa solução inicial, em vez duma aleatória?

Outros aspectos– Acessibilidade entre as soluções– ‘Validade’ do algoritmo– Utilização do tempo de computação– Analogia física– Animação e visualização gráfica

Considerações finais

simplicidade e robustezlongos tempos de computaçãocom outros métodosparalelismoteoria - convergência; entropia

melhoria pela incorporação de procedimentos humanos

MIC'99 - III Metaheuristics International ConferenceAngra dos Reis, July 19-23, 1999

Nesting Irregular Shapes with Simulated Annealinga Real Domain Approach

A. Miguel Gomes, José F. [email protected] [email protected]

FEUPFaculdade de Engenharia da Universidade do Porto

Presentation Outline

• Nesting Problem

• Simulated Annealing

• Geometric Data Processing

• Previous Work

• SANesting - a Real Domain Approach

• Computational Experiments

• Final Comments and Future Work

Nesting Problem

• Nesting Problem ∈ {Cutting and Packing Problems}

• “small items” have to be assigned to “big” items– combinatorial problem

under some geometric constraints (no overlap ...)– geometric problem

originating CUTTING PATTERNSCUTTING PATTERNS or LAYOUTSLAYOUTS

Nesting Problem - Characterisation• 2 Dimensions• One Stock Plate

– defects– shape: rectangle, rectangle, infinite length rectangle, infinite length rectangle, irregular shapeirregular shape

• Pieces with Irregular Shapes– small number of different types (less than 10)– large number of total pieces (up to 100)

• Restrictions:– pieces placed inside de stock plate– no overlapping between the pieces– orientations: [ [ 00oo, 360, 360oo [,[, { 90{ 90oo, 180, 180oo, … }, , … }, symmetries,symmetries, fixedfixed

• Objective:– placed pieces maximisation: quantity, value, area, ...– cutting pattern length minimisation

Industrial Applications: Garment, Garment, Furniture,Furniture, Metal,Metal, Footwear,Footwear, ......

Nesting Problem - Solution Techniques

• Interactive CAD systems– operated by specialised workers

• Heuristics– adapted to a particular problem type

• Search Algorithms– Simulated Annealing, Taboo Search, Genetic Algorithms, Tree Search

• exchanging pieces order or moving pieces in the plate

• Integer Linear Programming– small problems (up to 20 pieces), sub-problems (compaction problem)

Geometric ProblemGeometric Problem

Simulated Annealing

• Search algorithms– solution space (S)– neighbourhood structure (••)– moves to neighbour solutions ( )

LOCAL SEARCH• Local search (“simple”)

– to a better neighbour

• Simulated annealing– to a better neighbour– to a worse neighbour, with probability p = f(∆,T)

- Neighbourhood structure definition- Solutions evaluation- Search control parameter tuning

S

T

iter

•••• ••

•• •

• • ••• •

••• ••

• •

• •• •••••

• •

• •

••••

• ••

Geometric Data Processing

nnmmd• What is the distance (d) between piecem and piecen?

• Do piecem and piecen overlap?What is the maximum extent of the overlap?

• How far must piecen move in order to eliminate its overlap with piecem?

• Is piecen totally placed inside piecem?

• Is piecen in contact with piecem?Where is(are) the contact point(s)?

mmnn

mmnn

nnnn

m

No-Fit Polygon• Is the locus of points, traced by the reference point of the orbital polygon, as it slides,

with fixed orientation, along the contour of stationery polygon stationery polygon by the outside

RB

•A B

NFPAB

RB in the interior of NFPAB ⇒ overlapRB in the boundary of NFPAB ⇒ touchRB in the exterior of NFPAB ⇒ no overlap

RB in the interior of NFPAB ⇒ overlapRB in the boundary of NFPAB ⇒ touchRB in the exterior of NFPAB ⇒ no overlap

NFPAB and NFPBA are symmetrical

represented by a polygonalways existsNFPAB {

Test Instances

Different Total Nº Vertices Admissible PlateInstance Pieces of Pieces by Piece Orientations Width

Shapes0 4 43 8.75 0o 40

Shapes1 4 43 8.75 0o, 180o 40

Shapes2 7 28 6.29 0o, 180o 15

Shirts 8 99 6.63 0o, 180o 40

Trousers 17 64 5.06 0o, 180o 79

Previous workOliveira & Ferreira - Simulated Annealing (I)

• Pieces movement (with overlap)

overlap minimization and length minimization

• Initial solutionObtained by randomly locating the pieces over the plate• The neighbour solutions generationBy moving a randomly selected piece, one grid unit, up, down, left or right, with equal probability.Translations are the only movements allowed, however, the algorithm can be easily extended to tackle problems where rotations are allowed.f(sol) = overlap estimate (sol) + β ∑ pieces x coordinates

To avoid that, while minimizing the overlap, the pieces spread over the plate.The layout is kept as compact as possible.

Previous workOliveira & Ferreira - Simulated Annealing (II)

• Neighbourhood structure– a neighbour is generated by:

• changing the relative position of 2 pieces in the pieces order

• applying an 180º degrees rotation

Heuristicalgorithm

(i)

(ii)

(iii)

– initial position of each piece (i,ii,iii);– pieces movement over a grid;– and if it ends in an overlapping position?

Given a pieces order the correspondent layout generation is a time consuming operation - one grid unit movement

Pieces order Cutting Pattern

•••

SANesting - a Real Domain Approach

• Initial Solution:– pieces are laid out randomly – grid (maximum width, maximum height)

– plate (fixed width, ∞ length)

MaximumHeight

Maximum Width

length

Objective Function - minimising:cutting pattern length

only sensitive to movements of rightmost piece∑ (pieces x coordinates)

∑ (pieces x coordinates (1 + piece_width / width_max))

SANesting - Neighbourhood Structure (I)

• piece chosen randomly

• direction chosen randomly

• maximum distance limited– plate border

– no-fit polygons

– DELTA_MAX

• random displacement

SANesting - Neighbourhood Structure (II)

• piece chosen randomly

• direction chosen randomly

• maximum distance limited– plate border

– DELTA_MAX

• random displacement– accepted

(without overlap)

– not accepted(overlapping)

Maximum

65,000

70,000

75,000

80,000

85,000

0 1 2 3 5 10b e t a

o . f .

NS ( I )

NS ( II )

NS ( I + II )

75,239

Average

65,000

70,000

75,000

80,000

85,000

0 1 2 3 5 10b e t a

o . f .

NS ( I )

NS ( II )

NS ( I + II )72,862

Minimum

65,000

70,000

75,000

80,000

85,000

0 1 2 3 5 10b e t a

o . f .

NS ( I )

NS ( II )

NS ( I + II )

68,002

Computational Experiments

Shapes0

SANestingShapes1

Shapes2

SANesting

Shirts

Trousers

Final Comments and Future Work

• SANesting:

– good solutions quality

– fair computing times (10~15 minutes), considering the complexity of the

geometric computations

• but:

– solution rapidly freezes

(improve the second neighbourhood structure, allow overlap,

push pieces when overlap occurs, ...)

– very dependent of the initial solution

SANest

iterationsBest Current Candidate Temperature

2nd European Workshop on

“CUTTING AND PACKING”

June 1997

Packing Circles and 3D Packing

Maria Helena CorreiaINESC - Porto

The problem consists in finding efficient arrangements of identical objects (usually, rectangular or cylindrical objects) on a rectangular base, where objects vertical orientation is determined by practical

constraints

THE PALLET LOADING PROBLEM

The Pallet Loading Problem

THE ASMinS ALGORITHM

Specific decisions adopted:

• Grid defined on the rectangle;(integer dimensions)

• Objective Function:min F(sol) = Overlap (sol)

• Initial Solution: random placement of a set of circles inside the rectangle;

• Neighbourhood Structure:

THE ASMaxP ALGORITHM

Specific decisions adopted:• Grid defined on the rectangle;

(integer dimensions)• Objective Function:

min F(sol) = OverlapP (sol) - β x circle_area (sol)• Initial Solution: random positioning of LS circles inside the

rectangle;• Neighbourhood Structure:

PROBLEM GENERIC DECISIONS

– 3 test instances– 10 runs / test instance

Trade-off between algorithms efficacy and algorithms efficiency

0

0,5

1

1,5

2

2,5

3

3,5

Alfa.91 Alfa.93 Alfa.95 Alfa.97 Alfa.99

Tem

po

1

1,02

1,04

1,06

1,08

1,1

1,12

Sobr

epos

ição Tempo

Sobreposição

PARAMETER TUNING

00.5

11.5

22.5

33.5

44.5

5

F(x) Iterations Comp. T ime

Initial Parameters

New Parameters

ASMinS

0

0.5

1

1.5

2

2.5

3

F(x) Iterations Comp. T ime

Initial ParametersNew Parameters

ASMaxP

COMPUTATIONAL TESTS (T0)

• F(x) evolution for different values of the initial temperature

0100020003000400050006000700080009000

10000

Ite ra tio ns

p0 = 0.01p0 = 0.05p0 = 0.1p0 = 0.5

COMPUTATIONAL TESTS (T0)

• ASMaxP acceptance ratio of worse solutions

% worse sol. accepted

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.01 0.05 0.1

Ove

rlap Problem 1

Problem 2

Problem 3

PAS1 AND PAS2 ALGORITHMS

• PAS1:– repeats the application of the

ASMinS algorithm to instances with an increasing number of circles;

– initial number of circles : LB;

algorithm PAS1;number_circles = lower_bound();repeatsol = ASMinS (number_circles);if overlap(sol) == 0 then

final_sol = sol;number_circles = number_circles + 1;

until OVERLAP (sol) !=0;

• PAS2:– uses ASMaxP algorithm;

– does not guarantee the absence of overlap in the final solution;

– post-optimisation required;

COMPUTATIONAL RESULTS

• Purposes:– Algorithms evaluation;– Algorithms comparative analysis;– Identification of typical behaviours.

• Methodology :– 10 test instances;– 10 runs / test instance.

(80486DX2 a 66MHz)

• Computational Tests:– ASMinS performance; (overlap; computing time)– ASMinS vs Local Search Algorithms; (overlap; computing time)– PAS1 performance; (number of circles packed; computing time)– PAS2 performance; (overlap; computing time)– PAS2 vs Local Search Algorithms; (o. f. value; computing time)– PAS1 vs PAS2. (n. of circles placed; computing time; reliability)

GENERAL CONCLUSIONS

♦ General conclusions from computational results:

• increasing efficiency as the ratio pallet_area / circle_area decreases;

• more efficacious and less efficient than local search algorithms;

• high reliability of PAS1;

• PAS2 is more reliable in situations in which the ratiopallete_area / circle_area is bigger;

• PAS2 parameter β needs to be tuned, depending on the ratiopallete_area / circle_area;

• PAS2 more efficient than PAS1;

PAS1 vs PAS2

• ... in what concerns efficiency

• …in what concerns efficacyPAS1 PAS2

Problem N. Circles Occuring Ratio N. Circles Occuring Ratiodata11 15 1 15 1data12 15 1 15 1data13 13 1 - -data21 8 1 7 1data22 7 1 7 0.1data23 6 1 - -data31 3 1 - -data32 4 1 4 0.1data33 4 1 4 1

1

0

20

40

60

80

100

120

140

160

180

200

DAT

A11

DAT

A12

DAT

A13

DAT

A21

DAT

A22

DAT

A23

DAT

A31

DAT

A32

DAT

A38

Tim

e (s

ec.)

PAS2

PAS1

A COMPARISON WITH PUBLISHED RESULTS

Problem Pallet Dimentions Radius NumPubl NumPASIser1 120 x 80 204 22 22

Iser2 120 x 80 202 23 22

MultiP 120 x 80 125 14 14

Iser1 Iser2 MultiP

Pesquisa Tabu

Pesquisa Tabu

M-h, no sentido da condução de método subordinado– orientação suportada por estruturas de memória flexíveis– alternativas de pesquisa podem ser excluídas - serão tabu– equipada com memória - a distinção básica duma pesquisa local

Pesquisa ‘inteligente’, pode imitar o comportamento humano e aplicar algumas regras de aprendizagem

Glover [1986], com raízes no início dos anos 70, e Hansen [1986]Glover, F. (1986), Future paths for integer prog. and links to artificialintelligence, Comp. & Ops. Res., 5, 533-549Hansen, P. (1986), The steepest ascent mildest descent heuristic for comb.prog., Cong. Num. Methods in Comb. Optim., Italy

PT - como é?

Conceber uma estrutura de vizinhança V(xk)– e, possivelmente, uma subestrutura V'(xk) ⊂ V(xk)

Criar e Gerir uma Lista Tabu (critério de aspiração?)Lista de soluções visitadas / movimentos recentes, ou atributos desses movimentos

Uma lista tabu (T) limita movimentos e altera V'(xk)Registando em T as T soluções visitadas (recentemente), pode-se definir nova vizinhança

V'(xk, k) = V'(xk) - T

°

°

°

°°

°

°

°

°°

°° °°

°

° °°

°

°

°

°

°

°

°°

°

°

°°°

°

°

°

°

°

°

°

°

°

°

°

°

°°

°

°

° °°

°

° °

°

°°

°°

°

°°

° °

°°°

°

°

°

°xk

x

V(x )k V’(xk, k)

* *°°° °

°°°

°

°

°

°

°

°°

°

°

°

°

°° °

°°°

°°

°°

°°

°

°°

°°

°

°

°

°

°

°

°°

SPT, método de vizinhança variável

Solução actual xk

Procurar a melhor solução x ∈ V'(xk, k) ( mesmo se pior que xk )

Risco de entrada em ciclo, ao aceitar uma solução que pode ser pior do que a existente!Lista tabu visa, em particular, impedir os ciclos

Implementação - decisões a tomar

Especificação duma estrutura de vizinhançaV(xk)(ou V'(xk))

Lista Tabu– soluções recentes– tamanho da lista

Critério de aspiração (define sol. suficientemente

boa, permitindo o movimento, mesmo sendo tabu)

Regra de paragem

um esquecimento estratégico !

Outras considerações

Intervenção a outro nível

IntensificaçãoDiversificaçãoMemórias de prazos longo e médio

Oscilação estratégicaProcessamento paralelo

Registar atributos de movimentos … e nãoúltimas soluções

– pode evitar um esforço excessivo, mas não impede ... os ciclos

Interditar sol. com dado atributo pode ser restritivo

– impedir o acesso a soluções que não foram visitadas

Pesquisa Tabu— consideracoes adicionais —

Pesquisa Tabu

• Nao existem quaisquer garantias de convergencia, mesmo que teoricas

(ao contrario da pesquisa por arrefecimento simulado).

• “Limita-se” a explorar algumas regras simples de aprendizagem,

procurando imitar o comportamento humano.

• Apesar da falta de fundamentacao teorica, tem sido aplicada com

sucesso na resolucao de numerosos problemas de optimizacao

combinatoria.

• Caracterıstica mais importante: uso de memoria (distingue-a de uma

pesquisa local simples).

O passado, recente ou mais afastado, vai influir determinantemente no

processo de pesquisa, guiando-a em funcao das solucoes ja visitadas.

Princıpio de funcionamento

A pesquisa tabu tenta “escapar” aos mınimos locais:

• escolhendo para solucao seguinte a melhor solucao x pertencente a

V (xn) (xn e a solucao corrente)

ou a uma subvizinhanca V ′(xn) ⊆ V (xn), se V (xn) for demasiado grande para

ser totalmente explorada,

mesmo que seja pior que a solucao corrente, isto e, mesmo que

F (x) > F (xn).

Possibilidade de a pesquisa entrar em ciclo, isto e, ao fim de i iteracoes

xn tornar a ser a solucao corrente. A partir daqui o algoritmo seria

incapaz de evoluir noutro sentido que nao fosse repetir indefinidamente

o percurso que o traz de volta a xn.

Lista tabu de solucoes

• Para impedir a ocorrencia de ciclos pode-se guardar numa “lista tabu” as

solucoes ja visitadas.

• Estrategia muito redutora uma vez que pode haver interesse em voltar a

solucoes ja visitadas e explorar novas direccoes de pesquisa.

Limita-se o tamanho da lista tabu as ultimas k solucoes visitadas,

eventualmente com k variavel ao longo da pesquisa.

Consegue-se evitar ciclos de tamanho nao superior a k e permite-se voltar a

solucoes ja visitadas ao fim de k iteracoes: sempre que uma nova solucao e

visitada, entra para a lista tabu, saindo a mais antiga.

• Ainda assim podem ocorrer ciclos ⇒ necessidade de um criterio de paragem

baseado na melhoria da funcao objectivo nas ultimas N iteracoes ou num

numero total, pre-determinado, de iteracoes para garantir que o algoritmo

termina.

Lista tabu de pares de solucoes

E possıvel tornar a lista tabu menos restritiva, mantendo a sua funcao de

evitar ciclos na pesquisa.

• O que se pretende evitar nao e o tornar a visitar uma solucao ja

visitada, mas sim nao tornar a efectuar o movimento da passagem da

solucao xn para a solucao x.

• Alternativa: a lista tabu conter, nao as solucoes ja visitadas (xn), mas

sim os pares de solucoes (xn, x) que estao relacionados com os

movimentos ja efectuados.

Desta forma, a pesquisa tabu pode ser vista como um metodo de pesquisa

com vizinhancas de tamanho variavel: em cada iteracao a vizinhanca e

redefinida de modo a excluir as solucoes que obrigariam a movimentos tabu.

Lista tabu de movimentos

Lista tabu de pares de solucoes ⇒ problemas de ordem pratica aquando da

sua implementacao.

Normalmente nao e computacionalmente viavel:

• manter uma descricao completa dos pares de solucoes correspondentes a

movimentos tabu;

• verificar se um par de solucoes pertence a lista tabu (demorado...).

Alternativa: atribuir um estado tabu, nao aos pares de solucoes (xn, x), mas

sim a algum atributo ou caracterıstica da transformacao da solucao xn na

solucao x (variaveis que mudam de valor, elementos que trocam de posicao,

elementos que mudam de um conjunto para outro, etc.), isto e, as

modificacoes m que transformam a solucao xn na solucao x:

xn ⊕m = x (1)

Nıvel de aspiracao

A atribuicao do estado tabu as modificacoes, em vez das solucoes, e

demasiado restritivo. a

Utilizacao de um mecanismo que permite passar por cima do estado tabu de

uma certa modificacao, atraves do que se designa por “nıvel de aspiracao”:

• se a solucao gerada, a partir de uma modificacao tabu, e suficientemente

boa, entao ela e aceite.

Um nıvel de aspiracao evidente, e que devera sempre fazer parte de qualquer

implementacao de algoritmos de pesquisa tabu, e que a solucao gerada seja

melhor que a melhor solucao encontrada ate ao momento.aExemplo: se o movimento de uma solucao (uma sequencia de valores) para outra e

gerado trocando os elementos das posicoes 2 e 7, sera inserida na lista tabu a modificacao

que consiste em trocar de posicao os elementos 2 e 7, independentemente da sequencia

(solucao) de partida ou de chegada. Ou seja, estao-se a proibir muitos mais movimentos do

que aquele que foi de facto efectuado e que nao se quer repetir tao cedo, excluindo muito

mais solucoes do que aquela que foi de facto visitada.

Algoritmo de pesquisa tabu

algoritmo pesquisa tabu;xn = gera solucao inicial();x∗ = xn;F ∗ = F (xn);repete

V ′(xn) = subvizinhanca(xn);

F =∞;para todo x′ ∈ V ′(xn)

se F (x′) < F entao

m′ = modificacao(xn, x′);se m′ 6∈ lista tabu ou (m′ ∈ lista tabu e F (x′) < F ∗) entao

x = x′;m = m′;

F = F (x′);xn = x;insere lista tabu(m);

se F < F ∗ entao

x∗ = x;

F ∗ = F ;enquanto criterio paragem == falso;

Algoritmo 1: Algoritmo de pesquisa tabu.

Decisoes na implementacao

• O conjunto de decisoes a tomar para implementar um algoritmo de

pesquisa tabu e maior do que o equivalente num algoritmo de pesquisa

por arrefecimento simulado.

• Estas decisoes sao menos normalizadas e menos suportadas por

resultados teoricos.

• De uma forma geral, numa aplicacao de pesquisa tabu a resolucao de

um problema de optimizacao combinatoria, ha ainda mais lugar para a

imaginacao e a criatividade, por um lado, e para a experimentacao por

outro.

Estrutura de vizinhanca

• Tudo o que se afirmou relativamente as estruturas de vizinhanca na

pesquisa por arrefecimento simulado se mantem valido.

• Acresce aqui a necessidade frequente de considerar, e definir, uma

subvizinhanca de xn em vez da vizinhanca completa.

• E frequente construir a subvizinhanca por amostragem aleatoria de

V (xn).

Lista tabu

• Importante escolher cuidadosamente os atributos a que se vai aplicar o

estado tabu.

Para alem da desejavel relacao unıvoca entre a proibicao de um atributo

e a proibicao de uma solucao, ja discutida anteriormente, atender a

questoes como:

– o espaco de memoria necessario para armazenar os atributos tabu;

– a eficiencia nas operacoes de insercao e retirada de atributos da lista

tabu;

– a verificacao rapida se um atributo pertence a lista tabu.

Tamanho da lista tabu

Tamanho da lista tabu ⇔ numero maximo de valores diferentes dos atributos a

que simultaneamente se vai aplicar o estado tabu.

• Nao existe qualquer tipo de regra, nem

mesmo empırica, apropriada a todos os

problemas de optimizacao combinatoria

para a definicao do tamnho da lista tabu.

• Experimentacao – unica forma de determi-

nar o tamanho melhor para a lista tabu, ou

seja, aquele tamanho que conduz a melho-

res resultados durante a pesquisa.

• Uma lista demasiado

– pequena→ ciclos frequentes e eventual

paragem prematura do algoritmo;

– grande → degradacao da solucao final,

devido a demasiadas solucoes nao se-

rem atingıveis.

• Listas tabu dinamicas (de tamanho

variavel), foram exploradas por al-

guns investigadores de forma a obter

algoritmos que auto-afinassem este

tao importante parametro – resulta-

dos muito variaveis.

• Numero “magico”: 7 – em mui-

tas aplicacoes de pesquisa tabu o

numero 7, ou um numero bastante

proximo, surge como o valor mais

adequado para o tamanho da lista

tabu.

Intensificacao

O algoritmo de pesquisa tabu apresentado ate este momento usa apenas

memoria recente, evitando retroceder sobre os seus proprios passos ate

uma solucao ja visitada anteriormente.

Utilizacao da memoria num processo semelhante ao da aprendizagem –

memoria a um prazo mais longo:

• Apos visitar varias solucoes, tentar descobrir se as melhores solucoes

visitadas possuem alguma caracterıstica ou propriedade comum.

• Se tal for verdade pode-se dar inıcio a uma fase de intensificacao na

pesquisa, favorecendo as solucoes que apresentam essas caracterısticas,

ou mesmo restringindo a vizinhanca a esse tipo de solucoes.

Este tipo de estrategia tem pontes obvias com os algoritmos geneticos e a

preservacao das subcadeias de cromossomas “boas”.

Diversificacao

A partir de certo ponto nao e possıvel melhorar mais a funcao objectivo

visitando as solucoes das regioes mais promissoras (intensificacao).

A fase complementar a intensificacao e a diversificacao, isto e, o incentivo

a pesquisa em regioes ainda nao exploradas:

• penalizando as caracterısticas comuns das solucoes visitadas

ultimamente.

Fundamentalmente a intensificacao estara ligada a uma analise da

frequencia com que as solucoes surgem, enquanto a diversificacao esta

relacionada com uma analise do perıodo de tempo em que elas surgiram.

Modelos e Algoritmos para oPlaneamento Hierarquico da Producao

– Aplicacoes a um caso de estudo

Maria Antonia Carravilla

FEUP, Setembro 1996

Caso de Estudo - Tipo de Industria

• Sazonal

• Moda

• Producao por Encomenda

• Producao distribuıda por diversas unidades fabris

FEUP, Setembro 1996

Caso de Estudo - Nıveis de Decisao

• Problemas de decisao

– Difıcil estruturacao

– Grande complexidade

• Separabilidade, hierarquia, feedback entre os nıveis

• Informacao incompleta e/ou pouco fiavel

• Multi-criterio

• Caracter combinatorio dos problemas implica instabilidade dos planos

FEUP, Setembro 1996

Administrator
Hierarquização do problema: Planeamento Agregado da Produção (PAP) Planeamento Director da Produção (PDP) Escalonamento nas linhas de costura
Administrator
Hierarquização do problema:

Caso de Estudo - Processo de fabrico

Armazém ( em-cursos )

Armazém ( em-cursos )

Armazém ( em-cursos )

Corte

Distribuidora

Pré-costura

Costura

Distribuidora Distribuidora

Costura

Distribuidora Distribuidora

Montagem

Acabamentos e Embalagem

FEUP, Setembro 1996

Administrator
Estrangulamento do processo produtivo: objecto do presente estudo
Administrator
Administrator
Estrangulamento do processo produtivo:

PDP - Informacao Disponıvel

• encomendas

– tipo de produto

– data possıvel para entrada em producao

– data de entrega proposta

– quantidade encomendada

• capacidades de cada linha de producao

• ındices de preferencia de cada linha de producao para cada tipo de

produto

• limite para a producao de cada tipo de produto em cada perıodo

FEUP, Setembro 1996

PDP - Funcionalidades

• Negociar datas de entrega

• Alocar as encomendas as linhas de producao de uma unica fabrica

– o mais perto possıvel da data de entrega proposta

– nas linhas de maior preferencia

– no menor numero possıvel de perıodos

FEUP, Setembro 1996

Administrator
JIT
Administrator
PREF
Administrator
ESP
Administrator
JIT
Administrator
PREF
Administrator
ESP

PDP - Modelo - Funcoes objectivo

JIT min∑

e,l,t≤de

xelt(de − t) +∑

e,l,t=de+1

6xelt +∑

e,l,t≥de+2

xelt(t− de)a(1)

de

PREF min∑

e,l,t

xelt ∗ Pjlt:τe=j (2)

ESP min∑

e,l,t

γelt (3)

FEUP, Setembro 1996

Administrator
JIT
Administrator
PREF
Administrator
ESP
Administrator
(espalhamento)

PDP - Modelo - Restricoes

∀e∑

l,t xelt = qe (4)

∀j,t∑

e:τe=j

l xelt ≤ Ujt (5)

∀l,t∑

e:τe=j

j:Cjlt>0xelt

Cjlt≤ 1 (6)

∀e∑

f δef ≤ 1 (7)

∀e,f∑

t

l:l∈f xelt − qeδef ≤ 0 (8)

∀e,l,t xelt − lbγelt ≥ 0 (9)

∀e,l,t xelt − qeγelt ≤ 0 (10)

∀e,f δef ∈ {0, 1} (11)

∀e,l,t γelt ∈ {0, 1} (12)

∀e,l,t≥rese Pjlt:τe=j > 0 e Cjlt:τe=j > 0⇒ xelt ∈ {0, 1} (13)

FEUP, Setembro 1996

PDP - Modelo - Dimensao

Valores “tıpicos”

• numero de encomendas E = 1000

• numero de tipos de produtos J = 10

• numero de linhas L = 10

• numero de fabricas F = 3

• numero de perıodos T = 25

• numero de variaveis contınuas ELT = 250000

• numero de variaveis binarias EF = 3000

• numero de restricoes sera igual a 2E + JT + LT + EF = 5500

Com funcao objectivo ESP

• numero de variaveis contınuas ELT = 250000

• numero de variaveis binarias EF + ELT = 253000

• numero de restricoes sera igual a 2E + JT + LT + EF + 2ELT = 505500

FEUP, Setembro 1996

PDP - Abordagens Ensaiadas

• Estruturar e resolver o problema com Programacao Matematica

Inconvenientes:

– dimensao e complexidade elevadas

– caracter multicriterio

• Criar uma heurıstica construtiva

(planeamento encomenda a encomenda com solucoes proximas das manuais)

• Aplicar Meta-heurısticas

FEUP, Setembro 1996

PDP - Heurıstica

• Calcular limites para o planeamento de cada encomenda

• Tentar colocar a encomenda

– nas linhas de maior preferencia

– o mais perto possıvel da data de entrega proposta (se possıvel antes)

– tendo em conta as capacidades ainda disponıveis para o tipo de produto ao qual

pertence a encomenda

• Se necessario

– relaxar progressivamente os limites calculados

– planear para depois da data de entrega proposta

– planear uma menor quantidade

FEUP, Setembro 1996

PAP - Um problema simplificado de PlaneamentoAgregado da Producao

• horizonte de tempo discretizado

• capacidade disponıvel no perıodo t - Ct

• encomendas e

– tres tamanhos: pequenas (qe = 1), medias (qe = 2) e grandes (qe = 3)

– data de entrega de

FEUP, Setembro 1996

PAP - Modelo

Funcao objectivo

min∑

e,t≤deqe ∗ xet(de − t) +

e,t=de+1 2 ∗ qe ∗ xet +∑

e,t≥de+2 qe ∗ xet(t− de)2

(14)

Restricoes

∀e∑

t xet = 1 (15)

∀t∑

e qe ∗ xet ≤ Ct (16)

∀e,t:Ct>0 xet ∈ {0, 1} (17)

FEUP, Setembro 1996

PAP - Modelo

Propriedade 1

Existe sempre uma solucao optima para cada instancia do problema PAP,

na qual as encomendas de cada tipo sao colocadas por data de entrega.

e 1 2 3 4 5 6 7 8

qe 1 1 2 2 2 3 3 3

de 2 1 3 1 2 5 1 3

4

1

2

3

4

5

1

1 2 3 5 6

2

7

8

4 5

6

13

t

Ct

FEUP, Setembro 1996

Meta-heurısticas

• Pesquisa Local

• Pesquisa Tabu

• “Simulated Annealing”

FEUP, Setembro 1996

Meta-heurısticas - Notacao (1)

X conjunto de todas as solucoes admissıveis x de uma determinada

instancia de um problema;

x0 solucao inicial;

x solucao actual;

xn solucao obtida no passo n;

x∗ melhor solucao obtida ate ao momento;

FEUP, Setembro 1996

Meta-heurısticas - Notacao (2)

f(xn) valor da funcao objectivo para a solucao xn;

N (xn) vizinhanca da solucao xn

N (xn) ⊂ X

∀xn∈X xn /∈ N (xn);

SN i(xn) subvizinhanca da solucao xn, de dimensao i

SN i(xn) ⊆ N (xn) ∧ |SN i(xn)| = i

FEUP, Setembro 1996

Algoritmo de Pesquisa Local

FEUP, Setembro 1996

gerar x0 ∈ Xx∗ = x0n = 0stop = falso

repetir

gerar aleatoriamente SN i(xn)encontrar o melhor x ∈ SN i(xn)

(tal que f(x) ≤ f(xi) ∀xi ∈ SN i(xn))se f(x) ≥ f(xn)

stop = verdadeiro

se f(x) < f(x∗)x∗ = x

n = n+ 1xn = x

ate stop

FEUP, Setembro 1996

PAP - MH - Geracao de solucoes iniciais

FEUP, Setembro 1996

Heurıstica Basica

ordenar encomendas por ordem decrescente de tamanhopara cada encomenda

encontrar perıodo com capacidade disponıvel e menor custocolocar encomenda nesse perıodo

FEUP, Setembro 1996

PAP - MH - Geracao de solucoes iniciais

FEUP, Setembro 1996

Heurıstica Aleatoria

ordenar encomendas por ordem decrescente de tamanhopara cada encomenda

colocou = falso

enquanto (colocou = falso)gerar numero aleatorio tese (CapDispte ≥ qe)

colocar e em tecolocou = verdadeiro

FEUP, Setembro 1996

PAP - MH - Melhoramento de solucoes

FEUP, Setembro 1996

Existe sempre uma solucao optima para cada instancia do problema PAP,na qual as encomendas de cada tipo sao colocadas por data de entrega.

In e o conjunto de todas as encomendas com qe = n;

Pn e o conjunto de todos os perıodos onde se encontram colocadas as en-comendas do conjunto In na solucao que se pretende melhorar

para(n = 1;n ≤ 3;n = n+ 1)ordenar as encomendas de In por ordem crescente de data de entregaordenar os perıodos em Pn por ordem crescenteafectar ordenadamente as encomendas de In aos perıodos de Pn

FEUP, Setembro 1996

PAP - MH - Vizinhancas

Vizinhanca NDesloca(dist)(xn)

todas as solucoes admissıveis que se podem atingir a partir de xn deslocando

cada encomenda de, no maximo dist perıodos

Vizinhanca NTroca(dist)(xn))

todas as solucoes admissıveis que se podem atingir a partir de xn trocando

cada par de encomendas que se encontrem distanciadas de, no maximo, dist

perıodos

Vizinhanca NMista(dist,p)(xn)

vizinhanca de caracter aleatorio correspondente a uma “mistura” das duas

vizinhancas anteriormente descritas

FEUP, Setembro 1996

PAP - MH - Vizinhanca NDesloca(dist)(xn)

FEUP, Setembro 1996

f(xn) =∑

e JIT (e, te) (18)

JIT (e, te) =

(de − t)qe se te ≤ de2qe se te = de + 1(de − t)2qe se te > de + 1

(19)

gerar aleatoriamente numero de encomenda egerar aleatoriamente perıodo t (te − dist ≤ t ≤ te + dist)se (CapDispt ≥ qe)

te = t

f(x) = f(xn)− JIT (e, te) + JIT (e, t)

FEUP, Setembro 1996

PAP - MH - Vizinhanca NTroca(dist)(xn)

FEUP, Setembro 1996

f(xn) =∑

e JIT (e, te) (20)

JIT (e, te) =

(de − t)qe se te ≤ de2qe se te = de + 1(de − t)2qe se te > de + 1

(21)

gerar aleatoriamente no encomenda e1gerar aleatoriamente no encomenda e2 (t1 − dist ≤ t2 ≤ t1 + dist)se houver capacidade

trocarf(x) = f(xn)− JIT (e1, t1)− JIT (e2, t2) + JIT (e1, t2) + JIT (e2, t1)

FEUP, Setembro 1996

PAP - MH - Vizinhanca Mista(dist, p)

FEUP, Setembro 1996

para cada solucao xn

gerar aleatoriamente p1 (0 ≤ p1 ≤ 1)se p1 ≤ p

NDesloca(dist)(xn)se p1 > p

NTroca(dist)(xn)

FEUP, Setembro 1996

PAP - MH - Pesquisa Tabu

Pesquisa Tabu 6= Pesquisa Local tradicional

memoria

orientando a trajectoria das solucoes em funcao das solucoes anteriores

A Pesquisa Tabu “foge” de um mınimo local onde tenha caıdo, escolhendo

para solucao xn+1, a melhor solucao pertencente a N (xn) (ou a SN i(xn) se

N (xn) for demasiado grande para ser totalmente explorada), mesmo que

f(xn+1) > f(xn).

FEUP, Setembro 1996

PAP - MH - Pesquisa Tabu

Listas Tabu

1. encomendas cuja posicao foi alterada no ultimo movimento

2. perıodos nos quais foi colocada/retirada uma encomenda no ultimo

movimento

3. pares (encomenda,perıodo)

que correspondem a cada encomenda cuja posicao foi alterada, e ao seu

novo perıodo de colocacao;

4. pares (encomenda/sentido oposto ao do movimento)

se o perıodo de colocacao de uma encomenda foi alterado de t1 para t2,

com t2 > t1, entao o movimento foi realizado no sentido positivo, e e

armazenado na lista tabu o par (encomenda/sentido negativo), para

evitar um movimento de t2 para t3 (com t3 < t2).

FEUP, Setembro 1996

PAP - MH - Pesquisa Tabu - Algoritmo

FEUP, Setembro 1996

gerar x0 ∈ Xx∗ = x0n = 0stop = falso

repetir

gerar aleatoriamente SN i(xn)encontrar o melhor x ∈ SN i(xn)

(tal que x corresponde a minif(xi) e movimento nao pertence a lista tabu,oumovimento pertence a lista tabu e nova solucao ultrapassa nıvel de aspiracao)

se condicao de paragemstop = verdadeiro

se f(x) < f(x∗)x∗ = x

n = n+ 1xn = x

ate stop

FEUP, Setembro 1996

PAP - MH - “Simulated Annealing”

“Simulated Annealing” 6= Pesquisa Local tradicional

aceitar solucoes piores com uma determinada probabilidade que vai

diminuindo ao longo do tempo, “arrefecendo” a pesquisa.

Descrita da fase de arrefecimento do processo de “annealing”:

∆E = diferenca de nıvel de energia entre o estado actual e o estado com uma pequena

perturbacao

• ∆E < 0 a perturbacao corresponde a um estado com menor energia e o

processo prossegue com o novo estado

• ∆E > 0 a probabilidade de aceitacao do estado perturbado e dada por

e−∆EkbT

FEUP, Setembro 1996

PAP - MH - “Simulated Annealing” - Analogia

• uma solucao no problema de Optimizacao Combinatoria, corresponde a

um estado do solido;

• a funcao objectivo f(x) corresponde a energia E do estado do solido;

• o parametro de controlo T , a que chamaremos temperatura, corresponde

a temperatura no processo fısico.

FEUP, Setembro 1996

PAP - MH - “Simulated Annealing” - Algoritmo

FEUP, Setembro 1996

FEUP, Setembro 1996

gerar x0 ∈ XT0 - temperatura inicialx∗ = x0n = 0stop = falso

repetir

gerar aleatoriamente SN i(xn)encontrar o melhor x ∈ SN i(xn)

(tal que f(x) ≤ f(xi) ∀xi ∈ SN i(xn))se f(x) ≤ f(xn)

n = n+ 1xn = x

se f(x) > f(xn)

se p ∈ [0, 1[≤ e−

f(xn)−f(x)Tn

n = n+ 1xn = x

se p ∈ [0, 1[> e−

f(xn)−f(x)Tn

xn+1 = xn

n = n+ 1se condicao de paragem

stop = verdadeiro

se f(x) < f(x∗)x∗ = x

actualiza Tn

ate stop FEUP, Setembro 1996

PAP - MH - “Simulated Annealing” - Parametros (1)

esquema de arrefecimento;

T0

a T0

a T02

L 2L 3L 4L

Temperatura

Número de iterações

T0 temperatura inicial;

α factor de arrefecimento;

L numero de iteracoes a mesma temperatura. FEUP, Setembro 1996

PAP - MH - “Simulated Annealing” - Parametros (2)

condicao de paragem

• quando nao houver alteracao no valor da funcao objectivo apos um

numero pre-determinado de iteracoes (multiplo do numero de

iteracoes a mesma temperatura)

• quando nao se encontrar nenhum vizinho apos um numero

pre-determinado de tentativas:

MaxTentativa = int(30000/TamSubV iz)

• se o numero de iteracoes exceder o limite de 40000/TamSubV iz.

FEUP, Setembro 1996

PAP - MH - Determinacao de parametros - Algoritmo

FEUP, Setembro 1996

lerSemente

NumSolIni

T ipSolIni

NumIter

T ipV iz, dist, pTamSubV iz

T ipPesquisa

Usar Semente, para gerar vector semente(j) comnumero de elementos igual a NumSolInipara (j = 1; j ≤ NumSolIni; j = j + 1)

semente(j)x0 do tipo T ipSolInirepetir

iteracoes de T ipPesquisa com:T ipV iz, dist, pTamSubV iz

ate verificar condicao de paragemou ate NumItermelhora solucao

FEUP, Setembro 1996

PAP - MH - Determinacao de Parametros (1)

Tipo de solucao inicial

TipSolIni = 1 heurıstica aleatoria;

TipSolIni = 2 heurıstica basica;

TipSolIni = 3 heurıstica aleatoria, com melhoramento de solucao;

TipSolIni = 4 heurıstica basica, com melhoramento de solucao.

Tipo de vizinhanca

TipViz = 1 NDesloca(dist) (determinar dist);

TipViz = 2 NTroca(dist) (determinar dist);

TipViz = 3 NMista(dist,p) (determinar dist e p);

TamSubViz dimensao i da subvizinhanca SN i().

FEUP, Setembro 1996

PAP - MH - Determinacao de Parametros (2)

Pesquisa Tabu (TS)

Lista tabu 1 encomendas;

Lista tabu 2 perıodos;

Lista tabu 3 (encomenda/perıodo);

Lista tabu 4 (encomenda/sentido oposto ao do movimento);

TamLista tamanho da lista tabu.

FEUP, Setembro 1996

PAP - MH - Determinacao de Parametros (3)

“Simulated Annealing” (SA)

condicao de paragem;

T0 temperatura inicial;

α parametro de arrefecimento;

L numero de iteracoes sem alteracao de temperatura.

FEUP, Setembro 1996

PAP - Problemas teste

PAP1 PAP2 PAP3 PAP4 PAP5

T - numero de perıodos 31 20 34 31 38

E - numero de encomendas 36 42 58 63 46

P - numero de encomendas pequenas 16 19 26 28 21

M - numero de encomendas medias 8 9 13 14 10

G - numero de encomendas grandes 12 14 19 21 15

Dados do modelo (com xet = 0 se Ct < qe)

no de variaveis binarias xet 764 766 1464 1568 1194

no de restricoes 60 62 85 91 75

FEUP, Setembro 1996

PAP - MH - Determinacao de Parametros (4)

1o conjunto de testes

Instancias PAP1 a PAP5

Pesquisa Tabu sem lista, 40 solucoes iniciais

TipSolIni = 1 heurıstica aleatoria

TipSolIni = 2 heurıstica basica

TipSolIni = 3 heurıstica aleatoria, com melhoramento de solucao

TipSolIni = 4 heurıstica basica, com melhoramento de solucao

TipViz = 1 NDesloca(dist)

TipViz = 2 NTroca(dist)

dist 4, 8, 12

TamSubViz 1, 10, 50, 90 FEUP, Setembro 1996

PAP - MH - Determinacao de Parametros (5)

2o conjunto de testes

Instancias PAP1 a PAP5

Pesquisa Tabu sem lista, 40 solucoes iniciais

TipSolIni = 3 heurıstica aleatoria, com melhoramento de solucao

TipViz = 3 NMista(8,p)

p 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1

p=0 estrategia pura de troca

p=1 estrategia pura de deslocamento

TamSubViz 50

FEUP, Setembro 1996

PAP - MH - Determinacao de Parametros (6)

3o conjunto de testes (1)

Instancias PAP1 a PAP5

“Simulated Annealing”, 40 solucoes iniciais

TipSolIni = 1 heurıstica aleatoria

TipViz = 3 NMista(8,0.2)

TamSubViz 1

condicao de paragem 5000

T0 50, 100, 150, 200, 250, 300

α 0.99

L 500

FEUP, Setembro 1996

PAP - MH - Determinacao de Parametros (7)

3o conjunto de testes (2)

Instancias PAP1 a PAP5

“Simulated Annealing”, 40 solucoes iniciais

TipSolIni = 1 heurıstica aleatoria

TipViz = 3 NMista(8,0.2)

TamSubViz 1

condicao de paragem 500, 2500, 5000

T0 50

α 0.99

L 500

FEUP, Setembro 1996

PAP - MH - Determinacao de Parametros (8)

3o conjunto de testes (3)

Instancias PAP1 a PAP5

“Simulated Annealing”, 40 solucoes iniciais

TipSolIni = 1 heurıstica aleatoria

TipViz = 3 NMista(8,0.2)

TamSubViz 1

condicao de paragem 500

T0 50

α 0.75, 0.85, 0.95, 0.99

L 100, 300, 500

FEUP, Setembro 1996

PAP - MH - Parametros determinados

Pesquisa Tabu “Simulated Annealing”

T ipSolIni 3 ?

T ipV iz NMista(8,0.2) NMista(8,0.2)

TamSubV iz 50 ?

T ipListaTabu ? -

TamLista ? -

T0 - 50

Condicao de paragem - 500

L - 100

α - 0.99

FEUP, Setembro 1996

PAP - MH - Testes Comparativos - Parametros PesquisaTabu

TipListaTabu TamListaTabu NumIter TipSolIni TamSubViz

TS-0 - 0 400 3 50

TS11 1 1 400 3 50

TS13 1 3 400 3 50

TS15 1 5 400 3 50

TS17 1 7 400 3 50

TS21 2 1 400 3 50

TS23 2 3 400 3 50

TS25 2 5 400 3 50

TS27 2 7 400 3 50

TS31 3 1 400 3 50

TS33 3 3 400 3 50

TS35 3 5 400 3 50

TS37 3 7 400 3 50

TS41 4 1 400 3 50

TS43 4 3 400 3 50

TS45 4 5 400 3 50

TS47 4 7 400 3 50

FEUP, Setembro 1996

PAP - MH - Testes Comparativos - Parametros“Simulated Annealing”

T0 α L TipSolIni TamSubViz

SA11 100 50 0.99 100 1 1

SA13 100 50 0.99 100 1 3

SA15 100 50 0.99 100 1 5

SA31 100 50 0.99 100 3 1

SA33 100 50 0.99 100 3 3

SA35 100 50 0.99 100 3 5

FEUP, Setembro 1996

PAP - MH - Testes Comparativos - PAP1

� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �� � � �����

��������

��������

��������

��������

��������

��������

��������

�����

������

��� � ��

��� �� ������

������

������ ������

������

������

������ ������ ������

������

������ ������ ������

������

������ ������

�������� ����

�����

���! �����

�������!

���������

���� �����

���"���!

�����

���"���!

�����

�# �

� � # �

� � �� # �

$ � �

%& ' ( � ( �) %& ) ' � � � � ) %& ) ' � # � # ) %& ) ' �� %& * � �+, - .0/ 102 , 34

FEUP, Setembro 1996

PAP - MH - Testes Comparativos - PAP2

5 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55 5 5 55�5�

5�5�5�5�

5�5�5�5�

5�5�5�5�

5�5�5�5�

5�5�5�5�

5�5�5�5�

5

67867

967:67

;67< 6 67

=�>�?�@ =�>�A�A

=�>�A�B

=�>�A�C =�>�A�D

=�>�E�A

=�>�E�B

=�>�E�C =�>�E�D =�>�B�A

=�>�B�B

=�>�B�C =�>�B�D =�>�F�A

=�>�F�B

=�>�F�C =�>�F�D

>�G�A�A�? A�@�

@>�G�

A�B!? A�@�@

>�G�A�C!?

A�@�@>�G�

B�A�? A�@�@

>�G"B�B!

? A�@�@

>�G"B�C!

? A�@�@

6H 6

< 6 6< H 6

86 68H 6

I 6 6

JK L M H M H N JK N L ;6 ;6 N JK N L O 6 O 6 N JK N L < 6 6 JK P < 6 6QRS T0U V0W R XY

FEUP, Setembro 1996

PAP - MH - Testes Comparativos - PAP3

Z Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ Z Z ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ Z

[\][\

^[\_[\

`[\a [ [\

b�c�d�e b�c�f�f

b�c�f�g

b�c�f�h b�c�f�i

b�c�j�f

b�c�j�g

b�c�j�h b�c�j�i b�c�g�f

b�c�g�g

b�c�g�h b�c�g�i b�c�k�f

b�c�k�g

b�c�k�h b�c�k�i

c�l�f�f�d f�e�

ec�l�

f�g!d f�e�e

c�l�f�h!d

f�e�ec�l�

g�f�d f�e�e

c�l"g�g!

d f�e�e

c�l"g�h!

d f�e�e

[m [

a [ [a m [

][ []m [

n [ [

op q n ar n ar s op s q n ^[ n ^[ s op s q n `[ n `[ s op s q ^ ][ op t ^ ][uv w x0y z0{ v |}

FEUP, Setembro 1996

PAP - MH - Testes Comparativos - PAP4

~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~ ~ ~ ~~�~�

~�~�~�~�

~�~�~�~�

~�~�~�~�

~�~�~�~�

~�~�~�~�

~�~�~�~�

~�~�~�~�

~

�����

������

���� � ��

������� �������

�������

������� �������

�������

�������

������� ������� �������

�������

������� ������� �������

�������

������� �������

��������� ����

�����

���!� �����

�������!�

���������

����� �����

���"���!

� �����

���"���!

� �����

�� � �

� � �� � �

� � �� � �

� � �

�� �� �� � �� � � �� �� �� � �� � � �� �� � � � � � � � �� �� �� � �� � �� ��� � �0� �0� � � 

FEUP, Setembro 1996

PAP - MH - Testes Comparativos - PAP5

¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡ ¡ ¡ ¡¡�¡�

¡�¡�¡�¡�

¡�¡�¡�¡�

¡�¡�¡�¡�

¡�¡�¡�¡�

¡�¡�¡�¡�

¡�¡�¡�¡�

¡�¡�¡�¡�

¡�¡�¡

¢£¤¢£

¥¢£¦¢£

§¢£¨ ¢ ¢£

©�ª¬«®­ ©�ª�¯�¯

©�ª�¯�°

©�ª�¯�± ©�ª�¯�²

©�ª�³�¯

©�ª�³�°

©�ª�³�±

©�ª�³�² ©�ª�°�¯

©�ª�°�°

©�ª�°�±

©�ª�°�² ©�ª�´�¯

©�ª�´�°

©�ª�´�±

©�ª�´�²

ª�µ�¯�¯�« ¯�­�

­ª�µ"

¯¶°!« ¯�­�­

ª�µ"¯¶±!«

¯�­�­ª�µ"

°�¯�« ¯�­�­

ª�µ"°�°!

« ¯�­�­

ª�µ"°�±!

« ¯�­�­

¢· ¢

¨ ¢ ¢¨ · ¢

¤ ¢ ¢¤ · ¢

¸ ¢ ¢¸ · ¢

¥ ¢ ¢

¹º »¼ ¨ ¤ · ¨ ¤ · » ¹º »¼ ¨ · ¢ ¨ · ¢ » ¹º »¼ ¤ ¢ ¢ ¤ ¢ ¢ » ¹º »¼ ¤· ¢ ¹º ½ ¤ · ¢¾¿ À Á0 Ã0Ä ¿ ÅÆ

FEUP, Setembro 1996

PAP - MH - Testes Comparativos - Conclusoes

PAP1 PAP2 PAP3 PAP4 PAP5

valor IP 98 75 319 205 118

mınimo obtido com MH 98 75 319 207 118

FEUP, Setembro 1996

EURO XV EURO XV -- INFORMS XXXIVINFORMS XXXIVBarcelona, July 14-17, 1997

Solving Nesting Problems withSolving Nesting Problems with MetaMeta--HeuristicsHeuristics::aa comparative evaluationcomparative evaluation

José Soeiro FerreiraJosé Fernando Oliveira

FEUP - Faculty of Engineering of the University of PortoINESC - Manufacturing Systems Engineering Unit

The nesting problem - I

• Nesting Problem ∈ {Cutting and Packing Problems}

• “small items” have to be assigned to “big” items– combinatorial problem

under some geometric constraints (no overlap ...)– geometric problem

originating CUTTING PATTERNSCUTTING PATTERNS or LAYOUTSLAYOUTS

The nesting problem - II

•• Nesting ProblemNesting Problem::– 2D– One infinite-length rectangular “big” item (plate)– IRREGULAR (non-rectangular) “small” items (pieces)– Objective:

• minimize the length of the cutting pattern– Constraints:

• no overlap between pieces• pieces inside the plate• feasible orientations• number of pieces of each type

•• IndustrialIndustrial applicationsapplications: textile, wood, steel, leather, footwear, etc.

Neighbourhood structure - I• Pieces movement (with overlap)

overlap minimization and length minimization

• Initial solutionInitial solutionObtained by randomly locating the pieces over the plate• The neighbour solutions The neighbour solutions generationgenerationBy moving a randomly selected piece, one grid unit,up, down, left or right, with equal probability.Translations are the only movements allowed, however, the algorithm can be easily extended to tackle problems where rotations are allowed.f(f(sol)) = overlap estimate (sol) + ββ ∑ pieces xx coordinates

To avoid that, while minimizing the overlap, the pieces spread over the plate.The layout is kept as compact as possible.

Meta-heuristics parametersNeighbourhood structure I - Overlap

•• Simulated annealingSimulated annealing– Geometric cooling schedule:

• Ti+1 = α × Ti

– T0: 100– α: 0.95– Li: 500– Stop criterion: 2 x Li without

improvement– β: 0.1

•• TabuTabu searchsearch– Sub-neighbourhood generation:

random generation– Sub-neighbourhood size: 200– Tabu list size: 10– Tabu status applied to:

pair (piece, movement)– Aspiration level:

solution value > best value– Stop criterion:

20 sub-neighbourhoods without improvement

– β: 0.1

Neighbourhood structure - II

•• Neighbourhood structureNeighbourhood structure– a neighbour is generated by:

• changing the relative position of 2pieces in the pieces order

Heuristic algorithm(bottom/up left)

Given a pieces order, the correspondent layout generation is a time consuming operation

– different initial position for each piece (i,ii,iii);

– pieces alternated movement;

(i)

(ii)

(iii)

Pieces orderPieces order Cutting Pattern

•••

swap

Meta-heuristics parametersNeighbourhood structure II - Pieces order

•• TabuTabu searchsearch– Sub-neighbourhood generation:

one piece is randomly chosen and the neighbours generated by changing positions with all the other pieces (in the pieces order)

– Sub-neighbourhood size:the number of pieces

– Tabu list size: 7– Tabu status applied to:

the piece or pair the pieces– Aspiration level:

solution value > best value– Stop criterion:

20 sub-neighbourhoods without improvement

•• Simulated annealingSimulated annealing– Geometric cooling schedule:

• Ti+1 = α × Ti

– T0: 50– α: 0.95– Li: 250– Stop criterion: 2 x Li without

improvement

Computational results (i)• 20 runs of the algorithms (20 different random initial solutions)• PC with a PENTIUM processor at 166MHz (16 bits code)

Algorithm Neighbourhood structure Computational ResultsPieces Layout Length

SA TS Movement Order Average Minimum Time75.5 73 4' 38"79.8 77 11'15"73.5 71 2h 31' 50"71.3 69 31' 30"

Layout length

Computational results (ii)

• SA performed better than TS, both in average and best values achieved, in the “pieces movement” neighbourhood structure; TS outperformed SA in the “swap pieces order” neighbourhood structure.

• Both meta-heuristics performed better with the second neighbourhood structure.

• It is more important where to search (neighbourhood structure)than how to search (meta-heuristic).

• The “swap pieces order” neighbourhood is too heavy for meta-heuristics (running times between 1/2 hour and 2 and 1/2 hours).

Development of simpler heuristics over this neighbourhood structure.

Extensions

• Different orientations for the pieces (e.g. 180º rotation).

• Finite length irregular plates with defects.

••••••

(i)

(ii)

(iii)

Examples(Tabu search algorithm - neighbourhood based in pieces order)

180º rotations allowedlength = 65

Objective: maximize the number of pieces

Algoritmos Geneticos— uma introducao —

Algoritmos Geneticos

Algoritmos geneticos (AG) — mecanismo que mimetiza a evolucao

genetica das especies.

• AG lidam com populacoes em vez de solucao individuais: as solucoes

interactuam, misturam-se e produzem “filhos” que se espera que

retenham as boas caracterısticas dos seus pais.

• AG — pesquisa local onde e a vizinhanca de uma populacao inteira que

e explorada.

Princıpio de funcionamento

Os AG nao operam directamente sobre o espaco das solucoes: estas tem que

ser codificados como strings de tamanho finito sobre um alfabeto finito.

• Nem sempre a codificacao mais evidente e a que conduz a melhores

resultados.

Oa AG comecam com uma populacao inicial com N solucoes e evoluem

gerando populacoes do mesmo tamanho N em cada iteracao.

Operadores usados para a geracao, exploracao da vizinhanca de uma

populacao e seleccao de uma nova geracao:

• seleccao;

• crossover ;

• mutacao.

Codificacao

• Descricao de um indivıduo (solucao) da populacao: cromossoma.

• Cada posicao da string que constitui o cromossoma e designada por

gene.

• Cada gene pode tomar um valor de entre um alfabeto finito

pre-determinado pela codificacao utilizada.

Originalmente apenas se consideravam codificacoes binarias (cada gene

apenas pode tomar os valores 0 ou 1).

Em problemas de optimizacao combinatoria esta codificacao apenas e

natural para problemas em que as solucoes sejam descritas por um conjunto

de variaveis binarias (segundo uma ordem pre-definida).

Geracao das geracoes de indivıduos (populacoes)

Descricao generica da obtencao da geracao (n+ 1) a partir da geracao n

(X(n)):

• os melhores indivıduos (solucoes) de X (n) sao seleccionados;

• sao efectuadas operacoes de crossover sobre pares desses indivıduos,

gerando-se descendentes dessas solucoes;

• este descendentes irao substituir os maus indivıduos da populacao

corrente;

• a uma pequena parte dos “filhos” e feita uma mutacao.

Avaliacao dos indivıduos/solucoes

Cada solucao da populacao corrente tem que ser avaliada pela sua

adaptacao ao meio envolvente (fitness). Esta pode ser simplesmente o valor

da funcao objectivo do problema (assumiremos daqui em diante que e de

maximizacao).

A seleccao dos indivıduos de uma populacao e baseada na sua “adaptacao”

mas nao de uma forma determinıstica: as solucoes xi sao retiradas

aleatoriamente, com reposicao, da populacao corrente com uma

probabilidade pi que aumenta com a sua “adaptacao”.

Exemplo de uma forma simples de determinar pi:

f(xi)− fmin∑N

j=1(f(xj)− fmin)

onde:

fmin = min{f(xj), j = . . . , N}

Crossover

Pares formados pelos indivıduos seleccionados sao submetidos a crossover

(com probabilidade χ).

• Existem varias possibilidades para definir o operador crossover.

• Operador de crossover mais comum: crossover de 2 pontos.

Funcionamento do crossover de 2 pontos

Suponha-se que as solucoes estao codificadas em strings binarias de 8 bits e

que o par de indivıduos seleccionado e o seguinte:

0 1 0 1 1 0 0 1

1 1 0 0 0 1 1 0

Sao escolhidas aleatoriamente duas posicoes do cromossoma, digamos a 2a e

a 5a. Os conteudos dos genes entre essas posicoes sao trocados entre

cromossomas, originando duas solucoes “filhas”. No nosso exemplo:

Pais

0 1 0 1 1 0 0 1

1 1 0 0 0 1 1 0

Filhos

0 1 0 0 0 0 0 1

1 1 0 1 1 1 1 0

Mutacao

Cada um dos filhos e submetido a uma operacao de mutacao, com

probabilidade µ.

O operador mutacao mais simples consiste em escolher aleatoriamente um

gene do cromossoma e trocar o caracter que la se encontra por outro

caracter do alfabeto. Retomando o nosso exemplo, e fazendo uma mutacao

na posicao 6:

String original

0 1 0 1 1 0 0 1

String mutada

0 1 0 1 1 1 0 1

Substituicao

O passo final na geracao da nova populacao e a substituicao dos “maus”

indivıduos da populacao corrente pelas novas (eventualmente mutadas)

criancas.

Os “maus” indivıduos sao tambem aleatoriamente seleccionados de acordo

com a sua “adaptacao”, masi correctamente, com a sua “desadaptacao”, de

uma forma semelhante a da de seleccao dos “bons” indivıduos mas com uma

probabilidade decrescente com o aumento da sua “adaptacao”.

O algoritmo normalmente para ao fim de um numero pre-definido de novas

populacoes.

Algoritmo (max f)

a) Inicializacao:

(i) selecciona uma populacao inicial X(1) = {x(1)1 , . . . , x

(1)N} ⊆ X;

(ii) inicializa o melhor valor de f , f∗, e correspondente solucao x∗:

f∗ ←− max{f(x(1)i ), i = 1, . . . , N}

x∗ ←− arg max{f(x(1)i ), i = 1, . . . , N}

b) Passo n = 1, 2, . . . , N (X(n) representa a populacao de solucoes corrente):

(i) Seleccao dos “bons” indivıduos de X(n):

Sejam {yj , j = 1, . . . , 2M} 2M indivıduos retirados aleatoriamente, com

reposicao, de X(n), com uma probabilidade de x(n)i ser escolhido que e uma

funcao crescente de f(xi(n)).

(ii) Crossover:

Para k = 1, . . . ,M , o operador de crossover e aplicado aos pares (y2k, y2k+1)

com probabilidade χ. Geram-se assim M pares de filhos (z2k, z2k+1) (que sao

identicos aos seus pais com probabilidade (1− χ)).

(iii) Mutacao:

Para k = 1, . . . , 2M , o operador mutacao e aplicado a zj com probabilidade µ.

Isto origina 2M filhos wj , possivelmente mutantes, com j = 1, . . . , 2M (e que sao

identicos a zj com probabilidade (1− µ)).

(iv) Substituicao dos “maus” indivıduos:

Retirem-se 2M indivıduos aleatoriamente, sem reposicao, de X(n), em que a

probabilidade de x(n)i ser escolhido e uma funcao decrescente de f(x

(n)i ).

X(n+1) e obtido por substituicao destes 2M indivıduos maus pelos descendentes

{wj , j = 1, . . . , 2M}.

Para todo j = 1, . . . , N , se f(x(n+1)j ) > f∗, entao:

F ∗ ←− f(x(n+1)j )

x∗ ←− x(n+1)j

c) Fim:

Se (n+ 1) ≥ numero pre-determinado de iteracoes, entao STOP.

Exemplo

Maximizar f(x) = x2 sobre o conjunto dos inteiros {0, 1, . . . , 31}.

Codificacao das solucoes: strings de bits de comprimento 5.

Populacao inicial (geracao aleatoria):

j Indivıduos Solucao f(x)

1 01101 13 169

2 11000 24 576

3 01000 8 64

4 10011 19 361

Geracao da nova populacao: em cada iteracao todos os indivıduos sao

substituıdos (2M = N = 4).

Probabilidade de crossover (χ): 1

Operador de crossover : string partida num ponto e todos os caracteres

situados apos esse ponto sao trocados.

Probabilidade de mutacao (µ): 10−3

Primeira iteracao (note-se que x(1)2 e usado duas vezes):

j Indivıduos Ponto de Filhos Solucao f(zj)

{yj , j = 1, . . . , 2M} crossover zj = wj

1 0110|1 4 01100 12 144

2 1100|0 4 11001 25 625

3 11|000 2 11011 27 729

4 10|011 2 10000 16 256

Note-se que, logo apos a primeira iteracao, ja temos uma solucao muito boa:

27.

Codificacoes baseadas em permutacoes

Em muitos problemas de Optimizacao Combinatoria e natural codificar as

solucoes como uma sequencia de elementos.

O conjunto das solucoes admissıveis sera sempre um sub-conjunto das

permutacoes que e possıvel construir com esses elementos.

Exemplo: No problema do caixeiro viajante uma solucao pode ser representada

como uma lista ordenada de cidades (ordem pela qual sao visitadas). No entanto o

operador de crossover de 2 pontos usual deixa de funcionar:

Pais

3 5 7 1 2 4 8 6 9

1 9 2 3 4 6 8 7 5

Filhos

3 5 2 3 4 6 8 6 9

1 9 7 1 2 4 8 7 5

Em cada solucao existem cidades repetidas e outras cidades nao existem.

Operador de crossover especial: OX – order crossover

a) Seleccionar 2 pontos para fazer o crossover (e.g. o 3 e o 6).

A: 3 5 7 1 2 4 8 6 9

B: 1 9 2 3 4 6 8 7 5

b) Preparar os cromossomas pais A e B para tornar possıvel a transferencia dos genes 3

a 6 de A para B e vice-versa:

• Preparacao de B

– Criar buracos (H) nos sıtos onde estao localizados os valores dos genes que

serao transferidos de A: os genes com os valores 7, 1, 2 e 4.

B: H 9 H 3 H 6 8 H 5

– Preencher os buracos movendo os “nao-buracos” circularmente da direita para

a esquerda, comecando pela posicao do segundo ponto de crossover (gene 7).

B: 3 6 H H H H 8 5 9

– Como agora os buracos estao todos na seccao para onde se vao importar os

genes de A basta fazer a transferencia, obtendo-se o gene A′.

B′: 3 6 7 1 2 4 8 5 9

• Fazendo o mesmo para o cromossoma A obtem-se:

A′: 7 1 2 3 4 6 8 9 5

Operador de mutacao especial: inversao

A criacao de solucao sem significado por aplicacao dos operadores classicos a

permutacoes tambem acontece com a mutacao.

Operador inversao

Seleccionar dois pontos aleatoriamente e inverter a ordem entre esses pontos:

A: 3 5 7 1 2 4 8 6 9

A′′: 3 5 4 2 1 7 8 6 9

Resumo e Conclusao

Parametros do algoritmo:

• tamanho da populacao

• taxa de substituicao de solucoes (dos pais pelos filhos)

• probabilidade de crossover

• probabilidade de mutacao

Escolhas estruturais:

• codificacao das solucoes

• operador de crossover

• operador de mutacao

Cuidado importante: manter a diversidade da populacao ⇐⇒ explorar as

vizinhancas de diversos maximo locais e nao apenas de um deles =⇒ escolha

criteriosa da codificacao e operadores e posterior afinacao cuidadosa dos

parametros do algoritmo.

3rd European Workshop on Cutting and PackingPorto, 23-26 Jun 1999

Applying metaheuristics to the resolution of the undirected rural postman problem

José F. Oliveira 1,3

Ana Viana 2,3

(1) FEUP - Faculdade de Engenharia da Universidade do Porto(2) ISEP - Instituto Superior de Engenharia do Porto

(3) INESC - Unidade de Engenharia de Sistemas de Produção

Arc Routing Problems

• Problems defined on a graph G=(V,A), where V is the vertex set and A is the arc set, with a non-negative cost matrix C=(cij) associated with A.

• The arcs can be directed, undirected or both.

• Objective: to find a minimum cost walk on a subset of the graph edges, with additional constraints.

• The most famous example: The Chinese Postman Problem– minimum cost closed walk on all arcs/edges of A.

The Rural Postman Problem (RPP)

• Identical to the Chinese postman problem.

• It is required to traverse only a subset of all arcs of A.– R is the set of arcs required to be traversed (required arcs)– A\R is the set of arcs that may be traversed (facultative arcs)

• The undirected version of the problem deals with edges (undirected arcs).

• Applications– any context where streets or roads have to be traversed for

maintenance, garbage collection, mail delivery, school bus transportation, parking meter collection, electric meter reading, electrical lines and gas mains inspections, etc.

– many others where it is not necessary to service all arcs of a network.

Example

1

2

3

4

5

6

7 8

9

10

11

12

13

14required

facultative

Connected components of graph G, induced by set R:• G1 - 1,2• G2 - 3,4,5,6• G3 - 7,8,9,10• G4 - 11,12,13,14

Graph transformation for the undirected RPP

2

3

4 5

23 2 3 53

7

5

21

1 23

3

2

4 5

G = (V,A) G = (V’,A’)

• V’ = {vi∈V: (vi ,vj) ∈ R, for some vj ∈ V }• A’ is obtained by:

– first adding to A an edge (vi ,vj) for each pair vi ,vj ∈V’with cost equal to the shortest path (in G) between vi and vj

– then deleting • all edges (vi ,vj) ∈ A\R for which cij = cik + ckj , for some k• one of two parallel edges with the same cost

An integer linear programming formulation for the RPP

R - ramos a percorrerA - ramos do grafoxij - se ( vi, vj) ∈ R - nº de vezes que o ramo ( vi, vj) é

replicado - se ( vi, vj) ∈ A\R - nº de vezes que o ramo ( vi, vj) é

replicadocij - custo de percorrer o ramo ( vi, vj)

min c x c xij ij ij ijv vj A Rvi v R ij

*( ) *( , ) \( , )

1+ +∈∈∑∑

Suj. a : ( ) mod

( , ) \( , )1 0 2+ + =

∈∈∑∑ x xij ij

v vj A Rvi v R ij

{ }x S V S V S P pij

vi S vj S

kK P K

PK

∈ ∈

∈ =−∑ ≥ = =

,

, \ , ,...,1 11

∪ ∪

x xiij j≥ 0, inteiro

Vk - vertex set of connected component kR - required edgesA - all edgesxij - if (vi,vj) ∈ R : number of times that edge (vi,vj) is replicated

- if (vi,vj) ∈ A\R : number of times that edge (vi,vj) is traversed

(the degree of every vertex is even)

(all connected components will be linked together)

integer

Christofides et al (1981)

Standard algorithmic strategy

• Determine an augmentation of the graph to make it eulerian(even-degree vertices)

– NP-hard problem ⇒ heuristic approaches

e.g. Frederickson (1979), inspired in Christofides heuristic for

symmetrical TSPs:

• Shortest spanning tree connecting the connected components of G

• Minimum cost matching for all odd-degree vertices of the graph

• Obtain an Eulerian cycle on the augmented graph

– Polynomial time

Simulated annealingGenetic algorithms

Generation of an initial solution1. Consider a graph with only the

required arcs.3. Simplification of the graph.

Drop the facultative arcs that do not affect :

– the graph connectivity – the nodes degree

1

2

3

4

5

6

7 8

9

10

11

12

13

14

1

2

3

4

5

6

7 8

9

10

11

12

13

142. For each pair of odd-degree vertices, find a random path.

1

2

3

4

5

6

7 8

9

10

11

12

13

14

Simulated annealingneighbourhood structure

1. Choose randomly an edge and drop it.

1

2

3

4

5

6

7 8

9

10

11

12

13

14

2. Connect one of the vertices of this removed edge to a vertex next to it.

3. Connect the other vertex of the removed edge to the same vertex considered in 2, by a random path.

Test instances

Instance Number of Required edges Facultative edgesname connected (number / cost) (number)

components

n18_31 1 40 / 2554 17

n21 1 26 / 10854 11

n31 4 40 / 2421 15

n49 7 48 / 13587 29

Generic annealing decisions

• Geometric cooling schedule: T i+1= α T i

• Initial temperature: at least 50% of probability of a worse solution being accepted

• Stop criterion: number of iterations without improvement

Simulated annealingParameter tuning

Plateau vs Obj. F. variation

0%

20%

40%

60%

80%

100%

250

500

800

1000

1500

2000

Plateau0% / 20% 20% / 40% 40% / 60% 60% / 80% 80% / 100%

Plateau vs Obj. F. / Total time

2940295029602970298029903000301030203030

100

250

500

800

1000

1500

2000

Plateau

Obj

. F.

0

50

100

150

200

250

Obj. F Total time

Tot

al ti

me

α vs Obj. F. / Total time

29502955296029652970297529802985

0,9950,990,970,950,930,9

α

Obj

. F.

0

50

100

150

200

Obj. F. Total time

α vs Obj. F. variation

0%

20%

40%

60%

80%

100%

0% / 20% 20% / 40% 40% / 60% 60% / 80% 80% / 100%

0,9950,990,970,950,930,9

α

Tot

al ti

me

Genetic algorithmsCrossover

For each pair of graphs selected for crossover:

1. Find a random path between two random vertices.

1

2

3

4

5

6 9

7 8

10

11

12

13

14

1

2

3

4

5

6

7 8 11

9 12 14

10 13

Graph 1 Graph 2

Genetic algorithmsCrossover

2. Add the path of graph 2 to graph 1 and the path of graph 1 to graph 2.

1

2

3

4

5

6 9

7 8

10

11

12

13

14

1

2

4 6

8

9

3 7 11

12 14

5 10 13

Graph 1 Graph 2

Genetic algorithmsCrossover

3. Find a random path between the two initial vertices, in both graphs, so that those vertices become even-degree.

1

2

3

4 6 9

5

7 8

10

11

12

13

14

1

2

4 6

8

9

3 7 11

5 10

12 14

13

Graph 1 Graph 2

4. Simplify the graphs (as in the initial solutions generation).

Genetic algorithmsParameter tuning

Population vs Obj. F. / Total time

2998 2985

186

131

2900

2950

3000

3050

3100

3150

40/20 30/30 30/20 20/20 30/14 26/26Population/Crossover

Obj

. F.

0

50

100

150

200

Obj. F. Total Time

Population vs Obj. F. variation

0%20%40%60%80%

100%

40/2

0

30/3

0

30/2

0

20/2

0

30/1

4

26/2

6

Population/Crossover

Obj

. F. v

aria

tion

0% / 20% 20% / 40% 40% / 60% 60% / 80% 80% / 100%

Tot

al ti

me

Number of generations vs Obj. F. / Time

296029702980299030003010302030303040

20 40 60

Number of generations

Obj

. F.

020406080100120140

Obj.F. Total time

Crossover probability vs Obj. F. / Time

2970

2980

2990

3000

3010

3020

.7 .6 .5 .4Crossover probability

Obj

. F.

020406080100120140

Tot

al ti

me

Obj. F. Total time

No mutation

Tot

al ti

me

Results comparison

Best result Worst Time/ Frequency result

n49 SA 19563 / 12 20033 997.3GA 19908 / 0 21578 121.5

n31 SA 2962 / 15 2962 167.0GA 2962 / 1 3018 120.0

n21 SA 12624 / 15 12624 15.8GA 12624 / 3 13137 56.5

n18_31 SA 2606 / 12 2680 75.4GA 2606 / 5 2665 8.9

Comparing SA with GA

0%20%40%60%80%

100%

n18_

31g

n18_

31a

n21g

n21a

n31g

n31a

n49g

n49a

0% / 20% 20% / 40% 40% / 60% 60% / 80% 80% / 100%

15 executionsPentium, 75 MHz

Optimal Solutions?Optimal Solutions?

Comparing with optimal solutionsParameters Best result Worst Time Optimal

/ Frequency result solutionn11_eas SA To=750 5597 / 11 5617 0.92 5597

L=50, α=0.9GA pop=30/10 5597 / 13 5617 13.4

gen=50, p=0.5n13_eas SA To=1400 8142 / 13 8352 1.07 8142

L=50, α=0.9GA pop=20/8 8142 / 15 8142 2.72

gen=10, p=0.5n14_eas SA To=800 6302 / 14 6477 0.50 6302

L=25, α=0.95GA pop=20/6 6302 / 15 6302 3.59

gen=20, p=0.315 executionsPentium, 75 MHz

n18_31

1

2

4

3 6

5

87

9

10

12

11

13

14

16

15

17

18

n21

15

16

17

0

18

19 20

1314

12

11

9

10

7

8

3

6

1

2

4

5

n31

11

1

2

3

6

10

8

54

7

9 13

1214

15

20

16

17

19

21

182422

23

27

26

30

25

28

31

29

n49

21

3

4

6

5

7

8

21

22

23

15 16

17

9 10

11

12

1314

25

24

18

19

20

26

49

42 4443

27

28

30

29 31

32

3433

3736

35

3839

41

40

46 4845 47

Conclusions and future developments

• Simulated annealing seems to perform better than genetic algorithms

– but GAs were not thoroughly explored (no mutation...)

• For the problems in which has been possible to obtain optimal solutions, both metaheuristics performed very well

– but those were the easy problems

• In the future– implement the Frederickson heuristic and compare with these

implementations– explore the GA approach– try tabu search– ...

Ana VianaAntónio Miguel Gomes José A. Soeiro FerreiraJosé Fernando Oliveira

Maria Antónia CarravillaMaria Helena Correia

Estes apontamentos foram coligidos a partir de trabalhos de: