Janeiro de 2002 - web.fe.up.ptmac/ensino/docs/MAD20012002/MHeAplicacoes.pdf · Estrutura de...
-
Upload
phamkhuong -
Category
Documents
-
view
214 -
download
0
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
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)
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
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
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
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
• 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 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
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
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
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
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 - 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
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
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
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
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
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
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
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
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
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
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
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
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
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– ...