Problema do Caixeiro Viajante

Documentos relacionados
PROBLEMA DE ROTEAMENTO DE VEÍCULO UNIVERSIDADE PRESIDENTE ANTONIO CARLOS

Problemas de otimização

Aula 12: Programação Inteira

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira

Aula 17: Planos de Corte

Algoritmos de aproximação - Problema do caixeiro viajante

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Ciclos hamiltonianos e o problema do caixeiro viajante

Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7.

Pesquisa Operacional Aplicada à Mineração

Problema do Caixeiro Viajante (The Travelling Salesman Problem-TSP) (Problema Del viajante)

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

Teoria da Computação. Clique de um Grafo. Alexandre Renato Rodrigues de Souza 1

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Problema do Caixeiro Viajante (The Travelling Salesman Problem-TSP) (Problema Del viajante)

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

Problema do Caminho Mínimo

Teoria da Complexidade Computacional

Minicurso Inteligência Artificial Aplicada a Sistemas Elétricos. Niterói, 12 de Maio de 2018

Aula 13: Branch-and-bound

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Departamento de Engenharia de Produção UFPR 22

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Aula 19: Lifting e matrizes ideais

1-1 PESQUISA OPERACIONAL INTRODUÇÃO

Teoria da Complexidade Computacional

Algoritmos de Aproximação para o Problema do Caixeiro Viajante

Algoritmos Combinatórios: Introdução

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Percursos em um grafo

3 Extensões dos modelos matemáticos

Aula nº / Outubro/ 07. Problema do carteiro chinês

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

Árvore Binária de Busca Ótima

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3

CI065 CI755 Algoritmos e Teoria dos Grafos

Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

Grafos Parte 1. Aleardo Manacero Jr.

Programação Linear Binária. Prof. Fabrício Maciel Gomes Departamento de Engenharia Química Escola de Engenharia de Lorena EEL

15 - Coloração Considere cada um dos grafos abaixo:

Pesquisa Operacional / Programação Matemática

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

AULA 13 PROJETO E ANÁLISE DE ALGORITMOS. Problema do caminho mais curto de uma única origem em grafos Karina Valdivia Delgado

Teoria dos Grafos Aula 14

Resolução de Problemas. Hugo Barros

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

Otimização Combinatória - Parte 3

Teoria dos Grafos. Edson Prestes

TECNOLOGIA DE GRUPO. Introdução Aplicação da razão associação de objetos similares Biólogos; Bibliotecários classificação Manufatura

Otimização discreta Modelagem com variáveis binárias: problemas clássicos

Teoria da Computação. Complexidade computacional classes de problemas

Resolução de Problemas. Resolução de Problemas. Primeiros problemas por computador: prova automática de teoremas e jogos.

Análise e Síntese de Algoritmos

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS

CONCEITOS BÁSICOS EM GRAFOS

IA: Inteligência Artificial

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Circuitos Hamiltorianos

Transcrição:

Problema do Caixeiro Viajante 1 Introdução Minimizar o custo de um ciclo hamiltoniano em um grafo completo (William R. Hamilton,1857,Around The World); Solução por enumeração: R( n ) = ( n - 1 )! Um computador capaz de fazer um bilhão de adições por segundo, para n=20, vai precisar de 21.645.100.408.832.000/(10 9 /19=53 milhões) = 2,3 x 10 9 segundos. Assim: N Rotas/ s (n - 1)! Cálculo total 5 250 milhões 24 insignificante 10 110 milhões 362 880 0.003 seg 15 71 milhões 87 bilhões 20 min 20 53 milhões 1.2 x 10 17 73 anos 25 42 milhões 6.2 x 10 23 470 milhões de anos N Rotas/s n 5 Cálculo total 5 250 milhões 3 125 insignificante 10 110 milhões 100 000 insignificante 15 71 milhões 759 375 0.01 seg 20 53 milhões 3 200 000 0.06 seg 25 42 milhões 9 765 625 0.23 seg

2 Definições Problema TSP(G, c) : Dado um grafo G e um custo c e Q para cada aresta e, determinar um circuito hamiltoniano C que minimize c(c). Simétrico: se a dist(a,b) = dist(b,a) Completo: se existe um caminho direto entre todas as cidades (par de vértices). Suponha que o grafo G, ponderado, é completo. Diz-se que os pesos de suas arestas satisfazem a desigualdade triangular se o C ij C ik + C kj para quaisquer três vértices i,j,k. 3 Aplicações Programação de transporte entre células de manufatura Programação de operação em máquinas de manufatura Otimização de movimento de ferramentas de corte Fabricação de Chips VLSI Otimização de furos em placas de circuitos impressos Problemas de sequenciamento de tarefas e navios Problema de sequenciamento genético Roteamento de entrega postal Cortes de chapas de aço e vidro

4 Formulações o Dantzig-Fulkerson-Johnson: n(n-1) variáveis e O(2 n ) restrições o Miller-Tucker-Zemlin: n 2-1 variáveis e O(n 2 ) restrições min i j c ij x ij, De todas as cidades chega apenas um: i x ij = 1 for all j. Escolhe apenas uma cidade para partir: j x ij = 1 for all i. Subtour inviável: u i u j + 1 + n(1 x ij ), for i = 2,, n, i j, j = 2,,n, x ij {0, 1} for all i, j; u i 0 for all i, onde u i é ordem em que a cidade i é visitada. Assim, se existir uma aresta x ij (=1), então a ordem em que a cidade i é visitada, u i, é uma unidade a menos que a ordem em que a cidade j é visitada, u j. Caso contrário essa diferença é no máximo n. o Claus: (n 3 +n 2 +3n) variáveis e n 3 restrições

5 Formulação MTZ no LINDO min 500 x1,1 + 70.9 x1,2 + 41.6 x1,3 + 29.1 x1,4 + 17.1 x1,5 + 56.1 x1,6 + 55.6 x1,7 + 7.3 x1,8... + 104 x12,10 + 39.4 x12,11 + 500 x12,12 subject to 3] x2,1 + x3,1 + x4,1 + x5,1 + x6,1 + x7,1 + x8,1 + x9,1 + x10,1 + x11,1 + x12,1 = 1 4] x1,2 + x1,3 + x1,4 + x1,5 + x1,6 + x1,7 + x1,8 + x1,9 + x1,10 + x1,11 + x1,12 = 1... 25] x1,12 + x2,12 + x3,12 + x4,12 + x5,12 + x6,12 + x7,12 + x8,12 + x9,12 + x10,12 + x11,12 = 1 26] x12,1 + x12,2 + x12,3 + x12,4 + x12,5 + x12,6 + x12,7 + x12,8 + x12,9 + x12,10 + x12,11 = 1 27] 12 x2,2 <= 11 28] 12 x2,3 + u2 - u3 <= 11 29] 12 x2,4 + u2 - u4 <= 11 30] 12 x2,5 + u2 - u5 <= 11... 143] 12 x12,8 - u8 + u12 <= 11 144] 12 x12,9 - u9 + u12 <= 11 145] 12 x12,10 - u10 + u12 <= 11 146] 12 x12,11 - u11 + u12 <= 11 147] 12 x12,12 <= 11 end inte x1,1 inte x1,2...

6 Heurísticas Heurística do Vizinho Mais Próximo Dado um grafo G(V, E) completo e simétrico o Algoritmo do Vizinho Mais Próximo para construir um circuito hamiltoniano T(G): Escolha aleatoriamente um vértice v V(G) Inclua v em T Seja u o vizinho mais próximo de v que ainda não foi incluído em T Inclua u e a aresta (v,u) em T Faça v=u Se V(T) < V(G) então vá para o passo 3 Inclua a aresta entre o primeiro e o último vértices incluídos O tempo de computação O(n 2 ) para instâncias que satisfazem a desigualdade triangular Guloso em relação ao próximo vértice que será incluído na solução,

Heurística Gulosa Dado um grafo G(V, E) completo e simétrico e os custos c e de cada e E(G), o Algoritmo Guloso para construir um circuito hamiltoniano T de G é o seguinte: Faça V(T) = V(G) Seja e E(G) E(T) tal que c e é mínimo e que sua inclusão não implique na formação de um ciclo em T (minimal spanning tree) ou deixe algum vértice de T com grau maior que 2 Inclua e em E(T) Se E(T) < V(G) então vá para o passo 2 É guloso em relação à próxima aresta. O tempo de computação envolvido ao algoritmo guloso é de e(n 2 log(n), Solução encontrada geralmente é melhor que NN. As heurísticas de construção podem ser usadas para gerar pontos de partida usados por heurísticas de busca local.

Heurística de Busca Local Os algoritmos de busca local são baseados em modificaçãoes simples no circuito. Dado um circuito hamiltoniano, esses algoritmos tentam fazer trocas para que seu comprimento seja reduzido, até que seja impossível reduzi-lo mais (localmente ótimo). o 2-Opt: O movimento básico apaga duas arestas, quebrando o circuito em dois caminhos, e então reconectando esses caminhos da outra maneira possível se somente se a outra maneira possível reduzir o custo. o 3-Opt: O movimento básico apaga onde três arestas, quebrando o circuito em três caminhos, e reconectandoas, dentre as duas formas possíveis, naquela que reduzir mais o custo. As heurísticas k-opt (k>3) possuem custo computacional que não compensa os resultados obtidos.

7 Exemplos

8 Algoritmos genéticos Fuzzy Genetic Algorithm, 1998