Caixeiro Viajante - Professor Morais da Silva

Propaganda
Grafos - Problema do caixeiro-viajante
V. Problema do caixeiro-viajante
Considere-se um grafo em que os vértices representam cidades e as arestas (ou arcos) representam as estradas de
uma dada região (a cada aresta está associada a distância entre cidades).
O problema é calcular o ciclo de menor distância total que, tendo início e fim na cidade “X”, passe em todas
as cidades uma única vez.
Este problema, designado por problema do caixeiro-viajante (travelling salesman problem), implica calcular no
grafo um ciclo (ou circuito) de Hamilton de encargo total mínimo.
O tempo necessário à resolução deste problema cresce exponencialmente com o número de vértices do grafo.
Só o método de enumeração (identificação de todos os ciclos possíveis) garante o cálculo da solução óptima do
problema mas tal método é impraticável. Veja-se que se um computador for capaz de tratar cerca de 10000
ciclos por segundo, necessitará aproximadamente de 18 segundos para calcular o óptimo num grafo com 10
vértices, 50 dias para um grafo com 15 vértices, 2 anos para um grafo com 16 vértices e 193000 anos para um
grafo com 20 vértices! É a enormidade destes tempos que tornou este problema um dos mais famosos e “não
resolvidos” problemas matemáticos.
Neste texto, apresentam-se, para cálculo, três métodos heurísticos e um método exacto do tipo ”branch and
bound”.
1. Método do vértice adjacente mais próximo
É um método aproximado que é aplicado do seguinte modo:
• Selecciona-se arbitrariamente um vértice “vi ” para início do ciclo
• Selecciona-se dos vértices ainda não seleccionados o vértice “vk” que está à menor distância de “vi”,
ficando a cadeia vi , vk . Repete-se este procedimento para o último vértice agregado até esgotar todos os
vértices do grafo
Veja-se a sua aplicação no grafo orientado com a seguinte matriz de distâncias (km):
A
A
B
C
D
E
10
18
14
8
B
16
20
18
12
C
12
18
10
12
D
18
20
18
E
16
20
16
8
12
Vértice inicial : A
Vértice, não seleccionado, mais próximo de A : C (12 km)
Vértice, não seleccionado, mais próximo de C : E (16 km)
Vértice, não seleccionado, mais próximo de E : B (12 km)
Vértice, não seleccionado, mais próximo de B : D (20 km)
Vértice, não seleccionado, mais próximo de D : A (14 km)
Circuito “quase óptimo” : A ; C ; E ; B ; D ; A ; distância total = 74 km
Nota: Diz-se quase óptimo por não resultar de um método exacto.
O circuito óptimo tem distância total de 66 km.
INVESTIGAÇÃO OPERACIONAL (MS)
V-1
Grafos - Problema do caixeiro viajante
2. Método da inserção com menor encargo
É um método aproximado que é aplicado do seguinte modo:
• Selecciona-se o sub ciclo (sub circuito) “i, j, i” associado a Min {cij + cji } (escolha arbitrária se houver
empate)
• No sub ciclo (sub circuito) corrente, calcular para cada ligação do tipo (u,v) a inserção do vértice “k”
(não seleccionado) a que corresponda o aumento mínimo de distância dado por Min {cuk + ckv – cuv}.
Repetir este procedimento até ter seleccionado todos os vértices do grafo.
Veja-se a sua aplicação no grafo orientado com a seguinte matriz de distâncias (km):
A
A
B
C
D
E
B
16
10
18
14
8
C
12
18
20
18
12
10
12
D
18
20
18
E
16
20
16
8
12
Escolha do sub circuito inicial
A
B
C
D
ABA=26
ACA=30
BCB=38
ADA=32
BDB=38
CDC=38
AEA=24
BEB=32
CEC=28
DED=20*
Sub circuito a estudar : DED com a distância total de 20 km
D
8
E
12
D
Inserções possíveis : No par D,E ou no par E,D
D
8
14
A
18
E
16
20
10
8
12
A
16
C
Vértice a
inserir
A
B
C
B
C
Aumento de
distância
de D para E
14+16-8 = 22
18+20-8 = 30
10+16-8 = 18*
D
18
20
12
B
V-2
12
Aumento de
distância
de E para D
8+18-12 = 14*
12+20-12 = 20
12+28-12 = 28
28
Grafos - Problema do caixeiro-viajante
O menor encargo de inserção resulta da escolha do vértice “A” para inserir no par E, D ficando o sub circuito
DEAD com distância total de 34 km (sub circuito anterior de 20 km, aumentado com 14 km).
Sub circuito a estudar : DEAD com distância total de 34 km
D
8
E
8
A
18
D
18
D
Inserções possíveis : No par D,E ou no par E,A ou no par A,D
D
8
E
18
10
B
8
20
12
16
12
C
B
A
10
16
18
12
C
B
20
28
C
Estudo da inserção
Vértice a
inserir
B
C
Aumento de
distância de
D para E
18+20-8 = 30
10+16-8 = 18*
Aumento de
distância de
E para A
12+10-8 = 14*
12+18-8 = 22
Aumento de
distância de
A para D
16+20-18 = 18*
12+28-18 = 22
O menor encargo de inserção resulta da escolha do vértice “B” para inserir no par E,A ficando o sub circuito
DEBAD com distância total de 48 km (sub circuito anterior de 34 km, aumentado com 14 km).
A inserção do último vértice no sub circuito corrente conduz aos seguintes circuitos:
DCEBAD com distância total de 66 km ; DECBAD com distância total de 68 km ; DEBCAD com
distância total de 74 km ; DEBACD com distância total de 70 km ; Circuito “quase óptimo” : DCEBAD;
distância total = 66 km
INVESTIGAÇÃO OPERACIONAL (MS)
V-3
Grafos - Problema do caixeiro viajante
3. Método da inserção com maior afastamento
É um método aproximado que é aplicado do seguinte modo:
• Selecciona-se o sub ciclo (sub circuito) “i, j, i” associado a Max {cij + cji } (escolha arbitrária se houver
empate)
• Selecciona-se um vértice “k” dos não inseridos face à regra seguinte:
-
regista-se a menor distância de cada um dos vértices, já pertencentes ao sub ciclo (sub
circuito) corrente, aos vértices “k” a inserir;
-
escolhe-se, para inserção, o vértice “k” onde seja maior a distância registada (máximo dos
mínimos);
• No sub ciclo (sub circuito) corrente, calcular para cada ligação do tipo (u,v) a inserção do vértice “k”
(agora seleccionado) a que corresponda o aumento mínimo de distância dado por Min {cuk + ckv – cuv}.
Regressar à selecção de novo vértice para inserir até ter seleccionado todos os vértices do grafo.
Veja-se a sua aplicação no grafo orientado com a seguinte matriz de distâncias (km):
A
A
B
C
D
E
B
16
10
18
14
8
C
12
18
20
18
12
10
12
D
18
20
18
E
16
20
16
8
12
Escolha do sub circuito inicial
A
B
C
D
ABA=26
ACA=30
BCB=38*
ADA=32
BDB=38*
CDC=28
AEA=24
BEB=32
CEC=28
DED=20
Sub circuito a estudar : BCB com a maior distância total (38 km; escolha arbitrária pois há empate)
B
18
C
20
B
Escolha do vértice para inserção
B
C
Min
V-4
Distância para vértices inseríveis
A
D
E
10
20
20
18
18
16
10
18*
16
Obs.
Máximo dos mínimos = 18. Inserir D
Grafos - Problema do caixeiro-viajante
Inserções possíveis : No par B,C ou no par C,B
B
18
C
20
18
D
Aumento de
distância
de D para E
20+10-18 = 12*
D
B
18
10
D
Vértice a
inserir
20
Aumento de
distância
de E para D
28+18-20 = 16
O menor encargo de inserção é no par B, C ficando o sub circuito BDCB com distância total de 50 km (sub
circuito anterior de 38 km, aumentado com 12 km).
Sub circuito a estudar : BDCB com distância total de 50 km
Escolha do vértice para inserção
Vértices inseríveis
A
E
10
20
18
16
14
8
B
C
D
Min
10
Obs.
8
Máximo dos mínimos = 10. Inserir A
Inserções possíveis : No par B,D ou no par D,C ou no par C,B
B
20
D
10
18
A
10
14
C
12
20
18
A
Vértice a
inserir
A
B
16
A
Aumento de
distância
de B para D
10+18-20 = 8*
Aumento de
distância
de D para C
14+12-10 = 16
Aumento de
distância
de C para B
18+16-20 = 14
O menor encargo de inserção é no par B,D ficando o sub circuito BADCB com distância total de 58 km (sub
circuito anterior de 50 km, aumentado com 8 km).
A inserção do último vértice no sub circuito corrente conduz aos seguintes circuitos:
BEADCB com distância total de 76 km ; BAEDCBcom distância total de 68 km ; BADECBcom distância
total de 60 km ; BADCEB com distância total de 66 km ; Circuito “quase óptimo” : BADCEB; distância
total = 66 km
INVESTIGAÇÃO OPERACIONAL (MS)
V-5
Grafos - Problema do caixeiro viajante
4. Método de Little 1
a. Generalidades
O grafo da figura representa uma rede rodoviária tendo
B
associada a cada uma das arestas a distância (km) entre os
vértices extremos.
Uma viatura de uma empresa situada em "A" necessita
14
A
9
entregar encomendas em B, C, D, E (clientes) e regressar
à empresa.
9
C
9
13
12
15
6
14
Se pretender passar uma e só uma vez em cada vértice e
percorrer a menor distância total qual o(s) itinerário(s) a
E
7
D
utilizar?
Considere-se por exemplo o ciclo hamiltoniano "A - B - C - D - E" de distância total 51 km. Se associarmos
ao grafo um problema de afectação podemos dizer que "A" é afectado a "B", "B" a "C", …, "E" a "A".
Se calcularmos a afectação óptima no quadro da matriz do grafo obtêm-se os
A
pares assinalados sendo o valor de Min f(X) = 45 km.
A
B
C
D
E
A afectação óptima é A - B - E - D - C - A que sendo um ciclo de Hamilton
de valor óptimo 45 km é o itinerário de menor distância a escolher para a
viatura da empresa.
Se a afectação óptima constituir um ciclo de Hamilton este pode ser calculado
B
14
14
9
13
15
C
9
9
9
12
9
D
13
12
6
6
14
7
por esta via. Infelizmente uma situação deste tipo é rara não sendo útil na vida prática onde problemas deste
tipo são comuns na distribuição de bens, processamento de dados em computador, horários escalonados etc.
b. Matriz reduzida
Na aplicação deste algoritmo considera-se que uma matriz está reduzida quando em cada fila (linha/coluna)
há pelo menos um elemento nulo.
Para reduzir uma matriz, subtrai-se a cada linha o menor dos seus elementos e na matriz resultante subtrai-se
a cada coluna o menor dos seus elementos. Se na matriz reduzida for possível uma afectação óptima (solução
de valor nulo) o seu valor é igual à soma dos elementos subtraídos.
c. Penalidade do Regresso
O cálculo de um ciclo envolve a agregação de arestas.
Admita-se que nesta matriz reduzida se coloca o problema de escolher ou
não escolher a aresta BC (peso 0) para construir um ciclo de Hamilton de
valor mínimo.
A
A
B
C
D
8
4
0
B
2
0
0
C
2
0
D
0
5
2
6
Quais as consequências de não escolher BC?
Para construir o ciclo será necessário:
• ligar "B" a outro vértice; o mais favorável é "D" pois a aresta BD tem peso 5;
• ligar um vértice a "C"; o mais favorável é "A" pois a aresta AC tem peso 2;
A aresta BC tem peso nulo. Se não é escolhida, o Regresso a "C" conduz, pelo menos, ao agravamento
de 7 no valor total do ciclo. Este agravamento denomina-se Penalidade do Regresso a "C".
1
Little J.D.C., Murty K.G., Sweeny D., Karel C., An algorithm for the TSP (Traveling Salesman Problem)
V-6
E
15
9
14
7
Grafos - Problema do caixeiro-viajante
Numa matriz reduzida as Penalidades do Regresso são calculadas para todas as arestas de valor nulo
somando os menores valores das linha e coluna daquelas arestas.
Na matriz anterior as Penalidades do Regresso são:
• em AD, 2 +2 = 4 ; em BC, 5 + 2 =7 ; em CB, 2 +0 = 2 ; em DA, 0 +4 = 4 ; em DB, 0 +0 = 0
Na aplicação do algoritmo será necessário calcular as Penalidades do Regresso em matrizes reduzidas que
podem ser registadas como mostra a figura seguinte ( 0k ):
A
A
B
B
2
8
C
4
D
04
C
4
0
0
2
0
0
7
D
04
5
(notar que a matriz está reduzida)
2
2
Considerando nesta matriz as Penalidades do Regresso, a aresta BC seria escolhida para o ciclo de
Hamilton por estar associada à maior penalidade.
INVESTIGAÇÃO OPERACIONAL (MS)
V-7
Grafos - Problema do caixeiro viajante
d. Algoritmo de Little
É um algoritmo exacto que utiliza a técnica de “branch and bound”.
Considere-se o grafo da figura e respectiva matriz de distâncias (km):
B
A
82
A
167
114
8
A
B
C
D
E
240
29
C
151
63
253
E
146
82
167
114
8
B
82
240
151
29
C
167
240
D
114
151
63
63
253
146
D
O primeiro passo é reduzir a matriz do grafo obtendo-se a matriz
A
R0.
O total dos valores subtraídos em linha e coluna é
192 km pelo
que o valor de qualquer ciclo hamiltoniano é pelo menos igual a
R0 =
(192)
esta soma.
B
53
A
B
C
53
104
156
D
E
51
0
67
0
C
159
211
0
245
D
106
122
0*
138
Na matriz R0 (matriz reduzida associada a S0) calculando as Penalidades do Regresso tem-se:
A
B
53
A
B
53
R0 =
C
104
156
(192)
D
51
67
E
051
053
C
159
D
106
211
122
0210
0210
245
E
053
053
190
83
138
A maior Penalidade do Regresso é 210 km que ocorre em CD e DC. Como há empate a escolha da aresta
para o ciclo é arbitrária. Considere-se a escolha de CD.
A primeira separação dos ciclos de Hamilton é feita considerando ou não a inclusão da aresta CD:
S0
Foram criados dois sucessores de S0 :
192
S1: conjunto dos ciclos hamiltonianos com a aresta CD
sem CD
S1
S2
S2 : conjunto dos ciclos hamiltonianos sem a aresta CD
Os ciclos hamiltonianos pertencentes a S2 têm pelo menos o valor de S0 aumentado da penalidade associada
à não inclusão de CD, ou seja, 192 + 210 = 402 km.
No que respeita às soluções pertencentes a S1 é necessário organizar a matriz reduzida R1 (a partir de R0
porque S1 é sucessora de S0).
V-8
E
0
0
190
83
Considere-se S0 =192 km a raiz da arborescência das soluções a calcular.
com CD
E
8
29
253
146
Grafos - Problema do caixeiro-viajante
Os aspectos a considerar para organizar R1 são os seguintes:
• eliminar em R0 a linha "C" e a coluna "D" porque S1 inclui a aresta CD.
• impedir a formação de ciclo "parasita" considerando DC=
C
∞
D
Deste modo obtém-se a seguinte matriz:
A
B
53
A
B
D
53
51
67
E
0
0
C
159
211
∞
245
E
0
0
83
Necessita ser reduzida
Para obter R1 é necessário reduzir a matriz subtraindo 51 na linha D e posteriormente 159 na coluna C sendo
de 210 a soma dos valores subtraídos.
A matriz reduzida R1 é então:
A
B
53
C
0
52
E
0
0
∞
86
32
R1 =
A
B
53
(210)
D
0
16
E
0
0
pelo que as soluções pertencentes a S1 têm pelo menos o valor de:
S0 + Encargo de redução de R1 = 192+210 = 402 km
Nota: a igualdade de S1 e S2 é mera coincidência.
Temos agora as soluções da figura sendo
S0
necessário decidir nova separação para
192
prosseguir o cálculo do ciclo.
com CD
Esta separação deve ser feita na solução
com menor valor (estamos calculando um
mínimo)
decidindo-se
arbitrariamente
sem CD
S1
S2
402
402
quando há empate (como está a suceder).
Seleccionando S2 é necessária a matriz reduzida R2 (associada a S2) para calcular Penalidades do Regresso e
fazer escolha de nova aresta. Na organização de R2 a partir de R0 (porque S2 é sucessora de S0) tem-se em
atenção que:
• S2 é solução sem CD pelo que em R2 deve figurar CD = ∞ ;
• em S2 já foi considerada a Penalidade do Regresso a "D" pelo que em R0 devem ser subtraídos nas
linha "C" e coluna "D" o menor dos valores da respectiva fila (a penalidade 210 já foi considerada
para o cálculo do valor de S2).
INVESTIGAÇÃO OPERACIONAL (MS)
V-9
Grafos - Problema do caixeiro viajante
Vejamos, passo a passo, a reconstituição de R2 partindo de R0:
A
R0 =
A
B
C
53
104
B
53
C
159
211
156
D
106
122
0*
E
0
0
190
(192)
D
51
67
0
83
E
0
0
245
138
Subtraindo 104 na linha "C", 106 na coluna "D" e considerando CD = ∞ tem-se a matriz reduzida R2:
A
R2 =
A
B
C
B
53
53
0
C
159
211
D
0
16
∞
52
E
0
0
86
83
D
51
67
0
E
0
0
245
32
Nota: se nesta matriz for feita afectação tem-se AD, BE, CA, DC, EB. Somando o valor associado a estas
(0)
arestas, 114 + 29 + 167 + 63 + 29 = 402, tem-se o valor de S2 já disponível do antecedente.
Para efectuar a separação em S2 há que calcular as Penalidades do Regresso em R2 :
A
A
B
53
B
53
R2 =
C
052
52
(0)
D
51
67
E
00
052
C
159
211
D
E
016
16
00
∞
0210
245
016
86
Maior penalidade é 210 km
Separação em DC
83
32
Em S2 a separação dos ciclos de Hamilton é feita considerando ou não a inclusão da aresta DC:
S2
402
com DC
sem DC
S3
S4
Foram criados dois sucessores de S2 :
• S3 : conjunto dos ciclos hamiltonianos com a aresta DC
• S4 : conjunto dos ciclos hamiltonianos sem a aresta DC
Os ciclos hamiltonianos pertencentes a S4 têm pelo menos o valor de S2 + Penalidade do Regresso a C, ou
seja, 402 +210 = 612 km.
Para avaliar as soluções pertencentes a S3 é necessário organizar a matriz reduzida R3 (a partir de R2 porque
S3 é sucessora de S2)
Para organizar R3 é necessário:
• eliminar em R2 a linha "D" e a coluna "C" porque se escolheu a aresta DC.
V-10
Grafos - Problema do caixeiro-viajante
D
• impedir a formação de ciclo "parasita" considerando
C
CD= ∞ (já considerado em R2)
Deste modo obtém-se a matriz seguinte:
A
B
53
A
R3 =
B
53
(0)
C
052
52
E
00
052
D
E
016
16
00
∞
32
016
Maior penalidade é 52 km
86
Separação em CA ou EB
A matriz obtida é R3 porque já está reduzida (encargo de redução nulo).
Tem-se o valor de S3 = S2 + 0 = 402 km. Em R3 foram já calculadas as Penalidades do Regresso, para
decidir a separação das soluções.
Temos agora as soluções:
S2
402
com DC
sem DC
S3
S4
402
612
A nova separação é feita em S3 ou S1 (ambas com valor 402 km).
Admita-se a decisão de continuar escolhendo S3 para separação dos ciclos de Hamilton considerando ou não
a inclusão da aresta CA (podia ser EB porque tem igual Penalidade do Regresso).
Foram criados dois sucessores de S3 :
• S5 : conjunto dos ciclos hamiltonianos com a aresta CA
• S6 : conjunto dos ciclos hamiltonianos sem a aresta CA
Os ciclos hamiltonianos pertencentes a S6 têm pelo menos o valor de S3 + Penalidade do Regresso a "A", ou
seja, 402 +52 = 454 km.
Para avaliar as soluções pertencentes a S5 é necessário organizar a matriz reduzida R5 a partir de R3 (porque
S5 é sucessora de S3).
Para organizar R5 é necessário:
• eliminar em R3 a linha "C" e a coluna "A" porque se
escolheu a aresta CA.
D
C
• impedir a formação de ciclo "parasita" considerando
AD= ∞
A
INVESTIGAÇÃO OPERACIONAL (MS)
V-11
Grafos - Problema do caixeiro viajante
Deste modo obtém-se a matriz seguinte:
A
B
53
B
E
0
D
∞
16
32
E
0
0
Necessita ser reduzida
O encargo da redução desta matriz é de 16 (subtracção na 2ª coluna) e a matriz reduzida R5 é a seguinte:
A
R5=
B
(16)
E
B
53
069
D
E
∞
0
053
Maior penalidade é 69 km
00
Separação em EB
16
Tem-se o valor de S5 = S3 + 16 = 402 + 16 =418. Em R5 foram já calculadas as Penalidades do Regresso,
para decidir a separação das soluções.
Temos agora as soluções:
S3
402
com CA
sem CA
S5
S6
418
454
A nova separação é feita em S5 (como a matriz dos sucessores será de ordem 2 há condições para atingir já
uma solução admissível ou concluir pela inexistência de ciclo pelo que não se passa para S1 ).
Escolhendo S5 para separação dos ciclos de Hamilton considerando ou não a inclusão da aresta EB criam-se
dois sucessores de S5 :
• S7 : conjunto dos ciclos hamiltonianos com a aresta EB
• S8 : conjunto dos ciclos hamiltonianos sem a aresta EB
Os ciclos hamiltonianos pertencentes a S8 têm pelo menos o valor de S5 + Penalidade do Regresso a "B", ou
seja, 418 +69 = 487 km.
Para avaliar as soluções pertencentes a S7 é necessário organizar a matriz reduzida R7 a partir de R5 (porque
S7 é sucessora de S5).
Para organizar R7 é necessário:
• eliminar em R5 a linha "E" e a coluna "B" porque se escolheu a aresta EB.
C
D
• impedir a formação de ciclo "parasita"
A
considerando BE= ∞
E
V-12
B
Grafos - Problema do caixeiro-viajante
Deste modo obtém-se a matriz seguinte:
D
R7 =
A
∞
E
0
(0)
B
0
∞
Já está reduzida
Tem-se o valor de S7 = S5 + 0 = 418 + 0 = 418 km. As Penalidades do Regresso são nulas pelo que se
acrescentam ao ciclo as arestas AE e BD obtendo-se a
primeira solução admissível com valor 418 km que
B
passa a constituir limite para eliminar de análise as
soluções correntes S4 =612 km ; S6 = 454 km ; S8 =
82
240
A
167
487 km porque têm valor superior.
A solução S7 é um ciclo de Hamilton com valor 418 km.
114
8
E
29
C
151
63
253
146
D
É necessário explorar a solução S1=402 km pois pode
gerar um ciclo de valor inferior ao já calculado.
A matriz R1 com Penalidades do Regresso é a seguinte:
A
A
B
53
R1 =
B
53
(210)
D
016
16
E
00
016
C
E
052
52
00
Maior penalidade é 52 km
052
Separação em AC ou BE
∞
86
32
Em S1 a separação dos ciclos de Hamilton é feita considerando ou não a inclusão da aresta AC (podia ser
BE), criando dois sucessores:
• S9 : conjunto dos ciclos hamiltonianos com a aresta AC
• S10 : conjunto dos ciclos hamiltonianos sem a aresta AC
Os ciclos hamiltonianos pertencentes a S10 têm pelo menos o valor de S1 + Penalidade do Regresso a "C", ou
seja, 402 +52 = 454 km (superior a 418 km; eliminar de análise posterior).
Para avaliar as soluções pertencentes a S9 é necessário organizar a matriz reduzida R9 a partir de R1 (porque
S9 é sucessora de S1).
Para organizar R9 é necessário:
• eliminar em R1 a linha "A" e a coluna "C" porque se escolheu a aresta AC.
A
C
• impedir a formação de ciclo "parasita"
considerando DA= ∞
D
INVESTIGAÇÃO OPERACIONAL (MS)
V-13
Grafos - Problema do caixeiro viajante
Deste modo obtém-se a matriz seguinte:
B
D
E
A
53
B
∞
0
16
E
0
32
Necessita ser reduzida
0
O encargo da redução desta matriz é de 16 (subtracção na 2ª linha) e a matriz reduzida R9 é a seguinte:
R9 =
(16)
B
E
B
A
53
D
∞
016
069
16
E
053
00
Maior penalidade é 69 km
Separação em BE
Tem-se o valor de S9 = S1 + 16 = 402 + 16 = 418 km. Em R9 foram já calculadas as Penalidades do
Regresso, para decidir a separação das soluções.
Temos agora as soluções:
S1
402
com AC
sem AC
S9
S10
418
454
A separação em S9 é feita considerando ou não a inclusão da aresta BE criando dois sucessores:
• S11 : conjunto dos ciclos hamiltonianos com a aresta BE
• S12 : conjunto dos ciclos hamiltonianos sem a aresta BE
Os ciclos hamiltonianos pertencentes a S12 têm pelo menos o valor de S9 + Penalidade do Regresso a "E", ou
seja, 418 + 69 = 487 km (superior a 418 km; eliminar de análise posterior).
Para avaliar as soluções pertencentes a S11 é necessário organizar a matriz reduzida R11 a partir de R9
(porque S11 é sucessora de S9).
Para organizar R11 é necessário:
• eliminar em R9 a linha "B" e a coluna "E" porque se escolheu a aresta BE.
C
A
• impedir a formação de ciclo "parasita" considerando EB = ∞
D
B
Deste modo obtém-se a matriz reduzida R11:
A
V-14
R11 =
D
∞
B
0
(0)
E
0
∞
Não necessita redução
E
Grafos - Problema do caixeiro-viajante
Tem-se o valor de S11 = S9 + 0 = 418 + 0 = 418 km. As Penalidades do Regresso são nulas pelo que se
acrescentam ao ciclo as arestas DB e EA obtendo-se outra solução admissível com valor 418 km.
B
A solução S11 é um ciclo de Hamilton com valor
418 km.
82
Trata-se do mesmo ciclo de S7 pelo que o ciclo
240
A
167
óptimo é único com valor 418 km.
114
8
29
C
151
63
253
Nota: o grafo é não orientado.
E
146
D
Na figura seguinte encontra-se a arborescência
S0
192
com CD
S1
S2
402
402
com AC
com BE
S11
(ADMISSIVEL)
418
sem CD
sem AC
com DC
sem DC
S9
S10
S3
S4
418
454
402
612
sem BE
com CA
sem CA
S12
S5
S6
487
418
454
com EB
sem EB
S7 (ADMISSIVEL)
S8
418
487
construída durante o cálculo do(s) ciclo(s).
INVESTIGAÇÃO OPERACIONAL (MS)
V-15
Grafos - Problema do caixeiro viajante
5. Auto Teste
a. Um agente de fiscalização de parquímetros de uma autarquia é responsável por 5 zonas de parqueamento
(A,B,C,D,E).
A movimentação eficaz do agente supõe que este após fiscalizar uma zona não volte à mesma antes de ter
fiscalizado as restantes. Por outro lado importa que cada uma das zonas seja fiscalizada com a maior
frequência possível.
O departamento de tráfego da autarquia, após visita de estudo à área dispõe agora dos tempos (minutos) que
o agente necessitará para fiscalizar uma zona e atingir a zona seguinte (ver matriz):
A
B
C
D
E
Tempo entre zonas (min.)
A
B
C
D
E
16
12
18
16
10
18
20
20
18
20
28
16
14
18
10
8
8
12
12
12
Que tipo de problema clássico lhe sugere esta situação?
Que instruções daria ao fiscal ?
b. Numa empresa de metalomecânica é necessário executar 6 tipos de tarefas diferentes na mesma máquina.
Para iniciar qualquer das tarefas é necessário preparar a máquina (montagem de acessórios e afinações) o que
consome tempo (custo). Estes custos de preparação para dada tarefa variam consoante a natureza da tarefa
terminada, ou seja, para iniciar a tarefa "A" o custo de preparação pode ou não ser o mesmo consoante a
tarefa terminada seja "B", "C" …, de "n" tarefas.
No grafo da figura os vértices representam as tarefas e os valores associados às arestas representam custos de
preparação associados aos vértices adjacentes. Assim se a tarefa "A" for imediatamente anterior à tarefa "B",
o custo de preparação é de 6 u.m.
B
6
5
A
4
8
2
E
C
6
8
9
4
7
D
Qual a sequência de execução das tarefas de modo a minimizar os custos totais de preparação (setup) ?
c. Admita que no exercício da alínea a. o agente pretende fiscalizar todas as zonas iniciando o percurso em A e
terminando em E. Que instruções daria ao fiscal para que o percurso fosse o mais rápido possível?
V-16
Grafos - Problema do caixeiro-viajante
6. Solução do Auto Teste
a. Trata-se do problema do caixeiro-viajante sendo necessário calcular um circuito de Hamilton (o grafo é
orientado) num grafo fortemente conexo em que os vértices são as zonas de parqueamento e aos arcos estão
associados os tempos de fiscalização e deslocação entre as mesmas.
Pode aplicar-se o algoritmo de Little para o que se reduz a matriz obtendo R0 e uma solução S0 raiz da
arborescência a construir.
A matriz R0 , com encargo de redução e Penalidades do Regresso é a seguinte:
A
A
R0 =
B
06
(62)
C
2
D
6
E
B
C
00
02
D
2
E
4
8
6
10
Maior Penalidade é 6
8
00
Separação em BA
00
6
00
00
S0 = 62 min.
02
2
4
02
Em S0 : separação em BA ; S1 com BA ; S2 sem BA.
S2 = S0 + 6 = 62 + 6 = 68 min.
S1 : necessária matriz reduzida R1
R1 : construir a partir de R0 eliminando linha B e coluna A ; AB= ∞ ; reduzida
B
C
A
∞
04
R1 =
C
00
(0)
D
6
*
D
2
E
4
Maior Penalidade é 4
8
00
Separação em AC
02
2
4
E
02
00
S1 = S0 + 0 = 62 min.
Em S1 : separação em AC ; S3 com AC ; S4 sem AC
S4 = S1 + 4 = 62 + 4 = 66 min.
S3 : necessária matriz reduzida R3
R3 : construir a partir de R1 eliminando linha A e coluna C ; CB = ∞ ; reduzida
B
R3 =
C
∞
(0)
D
6
D
8
E
08
Maior Penalidade é 8
06
Separação em CE
E
08
06
S3 = S1 + 0 = 62 min.
Em S3 : separação em CE ; S5 com CE ; S6 sem CE
S6 = S3 + 8 = 62 + 8 = 70 min.
S5 : necessária matriz reduzida R5
INVESTIGAÇÃO OPERACIONAL (MS)
V-17
Grafos - Problema do caixeiro viajante
R5 : construir a partir de R3 eliminando linha C e coluna E ; EB = ∞ ; reduzida
R5 =
(6)
B
6
D
D
E
∞
02
D
D
B
0
reduzir
E
0
∞
S5 = S3 + 6 = 68 min.
1ª solução admissível : B ⇒ A ⇒ C ⇒ E ⇒ D ⇒ B (valor do circuito é S5 = 68 min.)
Dispondo deste limite superior, as soluções S2 = 68 min.e S6 = 70 min. não são sujeitas a separação dado não
poderem gerar soluções com valor inferior ao limite superior S5 = 68 min.
É necessário examinar as soluções de S4 = 66 min para o que se reconstitui a matriz R4 a partir de R1:
• considerando o valor de (A,C) = ∞
• atendendo a que a Penalidade do Regresso pela não inclusão do arco (A,C) já está considerada no valor
de S4
Sendo R1 :
R1 =
B
C
A
∞
04
C
00
D
6
2
E
00
4
02
B
C
D
A
∞
∞
02
E
2
Está reduzida; é R4
C
00
8
00
Maior Penalidade é 2
02
Separação em AD ou DC
*
D
2
E
4
8
00
02
tem-se a matriz :
R4 =
D
6
02
00
00
2
E
Em S4 : separação em AD ; S7 com AD ; S8 sem AD
S8 = S4 + 2 = 66 + 4 = 70 min. (não explorar por que excede limite superior 68 min.)
S7 : necessária matriz reduzida R7
R7 : construir a partir de R4 eliminando linha A e coluna D ; DB = ∞ ; reduzida
B
R7 =
C
(0)
D
00
C
E
00
∞
00
02
2
E
S7 = S4 + 0 = 66 min.
02
Em S7 : separação em DC ; S9 com DC ; S10 sem DC
S10 = S7 + 2 = 66 + 2 = 68 min.
S9 : necessária matriz reduzida R9
V-18
Maior Penalidade é 2
Separação em DC ou EB
Grafos - Problema do caixeiro-viajante
R9 : construir a partir de R7 eliminando linha D e coluna C ; CB = ∞ ; reduzida
B
R9 =
C
E
0
∞
(0)
E
0
S9 = S7 + 0 = 66 min.
Seleccionar os arcos CE e EB.
2ª solução admissível : B ⇒ A ⇒ D ⇒ C ⇒ E ⇒ B (valor do circuito é S9 = 66 min.)
A solução óptima é S9 = 66 min., tempo mínimo entre inícios de fiscalização da área.
b. Trata-se de um problema típico de ciclo de Hamilton.
O ciclo óptimo é ACBDEA com custo mínimo de 26 u.m.
Notar que o trabalho na máquina pode iniciar-se com qualquer das tarefas desde que se obedeça à sequência
calculada.
c. É necessário calcular um caminho elementar, com todos os vértices do grafo e comprimento igual a "n-1"
(caminho de Hamilton). Para detectar o caminho hamiltoniano de A a E, calcula-se o ciclo de Hamilton
de "A" a "A" mas modifica-se a matriz inicial do seguinte modo:
• No vértice inicial do caminho (vértice A)
Impedir a ligação ao vértice final do caminho (vértice E)
Impedir a ligação dos vértices intermédios do caminho (B, C e D) ao vértice inicial (A)
• No vértice final do caminho (vértice E)
Ligação ao vértice inicial do caminho (vértice A) com valor nulo
Impedir a ligação aos vértices intermédios do caminho (B, C e D)
A matriz para cálculo do ciclo é então:
A
A
B
C
D
E
∞
∞
∞
0
B
16
C
12
D
18
∞
18
20
20
28
16
Caminho óptimo
8
A-C-B-D-E
20
18
10
∞
∞
E
Nota: Pode eliminar-se a coluna de "A"
(partida) e a linha de "E" (chegada)
∞
INVESTIGAÇÃO OPERACIONAL (MS)
Tempo óptimo = 60 minutos
V-19
Download