Um melhor limite inferior para o problema do caixeiro viajante assimétrico baseado no problema

Documentos relacionados
Um melhor limite inferior para o problema do caixeiro viajante assimétrico baseado no problema

Um melhor limite inferior para o problema do caixeiro viajante sssimétrico baseado no problema da afectação

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

CAP. I ERROS EM CÁLCULO NUMÉRICO

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

Exercícios Teóricos Resolvidos

Além de minimizar o número de objetos processados, problema de corte unidimensional

Uma Heurística para o Problema de Redução de Padrões de Corte

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Programação Inteira. Advertência

a 1 x a n x n = b,

CAPÍTULO 2. Grafos e Redes

Utilização do SOLVER do EXCEL

MINIMIZANDO O NÚMERO DE DIFERENTES PADRÕES DE CORTE - UMA ABORDAGEM DE CAMINHO MÍNIMO

aproximada e exacta do problema do caixeiro viajante assimétrico

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

2 Problema das p-medianas

Investigação Operacional- 2009/10 - Programas Lineares 3 PROGRAMAS LINEARES

Trabalho Prático 0. Raul H. C. Lopes. 23 de Junho de Estudar variações de binary trees e suas aplicações como estruturas de indexação e heap.

O Método Simplex para

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

Somatórias e produtórias

Notas de aula número 1: Otimização *

Modelo Cascata ou Clássico

PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO

PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR. Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 *

Lista de Exercícios 4: Soluções Sequências e Indução Matemática

Pesquisa Operacional Programação em Redes

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Problema de Cobertura

Online Survivable Network Design

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

Modelos Matemáticos para Tratamento de Grooming em Redes de Fibra Óptica

Um Modelo Matemático de Gestão de Recursos Humanos

Arquitetura de Rede de Computadores

OTIMIZAÇÃO DE FLUXO EM GRAFOS

Universidade Estadual de Santa Cruz. Departamento de Ciências Exatas e Tecnológicas. Especialização em Matemática. Disciplina: Estruturas Algébricas

Teoria dos Grafos. Edson Prestes

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

Disciplina: Introdução à Álgebra Linear

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Departamento de Matemática - UEL Ulysses Sodré. Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Fórmula versus Algoritmo

Teoria dos Grafos. Edson Prestes

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 6. O trabalho feito pela força para deslocar o corpo de a para b é dado por: = =

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Princípio das casas de pombo

ActivALEA. active e actualize a sua literacia

Árvores Binárias de Busca

Resíduos Quadráticos e Fatoração: uma aplicação à criptoanálise do RSA

Princípio da Casa dos Pombos I

UM TEOREMA QUE PODE SER USADO NA

Faculdade Alagoana de Administração FAA Ciência da Computação. (Resolução de Problemas em) Espaço de Estados

Espaços não reversíveis

Capítulo 1. x > y ou x < y ou x = y

PROJECTOS DE INVESTIGAÇÃO CIENTÍFICA E DESENVOLVIMENTO TECNOLÓGICO

Aplicações de Combinatória e Geometria na Teoria dos Números

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Dadas a base e a altura de um triangulo, determinar sua área.

The Stable Matching Problem

Investigação Operacional e Gestão de Projectos

Equações do primeiro grau

Grafo: Algoritmos e Aplicações

Um algoritmo espectral para redução do envelope de matrizes esparsas

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

I - Introdução à Contabilidade de Gestão 1.5 REVISÃO DE ALGUNS CONCEITOS FUNDAMENTAIS RECLASSIFICAÇÃO DE CUSTOS

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

Análise e Complexidade de Algoritmos

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

ActivALEA. active e actualize a sua literacia

BCC202 - Estrutura de Dados I

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Introdução a IO V 1.1, V.Lobo, EN/ISEGI, 2007

BCC204 - Teoria dos Grafos

Orientação a Objetos

Só Matemática O seu portal matemático FUNÇÕES

Investigação Operacional

ficha 3 espaços lineares

PROVA MODELO Duração da prova: 120 minutos

PROJECTO DE RESOLUÇÃO N.º 255/IX RECOMENDA AO GOVERNO A TOMADA DE MEDIDAS COM VISTA AO DESENVOLVIMENTO DO SOFTWARE LIVRE EM PORTUGAL

1 Descrição do Trabalho

Aula 8 Circuitos Integrados

Disciplina de Projetos e Análise de Algoritmos. Aula 1 - Apresentação aos Algoritmos Computacionais

Algoritmos e Estrutura de Dados III. Árvores

Investigação Operacional

PESQUISA SOBRE O PERFIL DE ALUNOS NA UTILIZAÇÃO DE UM SITE DOCENTE DO ENSINO SUPERIOR

Investigação Operacional e Gestão de Projectos

Manejo Florestal Sustentável: Dificuldade Computacional e Otimização de Processos

Qual é Mesmo a Definição de Polígono Convexo?

Capítulo 2 - Problemas de Valores Fronteira para Equações Diferenciais Ordinárias

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

Quinta-feira, 14 de março. Introdução aos Fluxos de Rede Handouts: Notas de Aula

Transcrição:

A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 63 Um melhor limite inferior para o problema do caixeiro viajante assimétrico baseado no problema da afectação Ana Ramires João Soares Departamento de Matemática Universidade Portucalense 4200 Porto, Portugal. amr@uportu.pt Departamento de Matemática Universidade de Coimbra 3000 Coimbra, Portugal. and Centro de Matemática da Universidade de Coimbra. jsoares@mat.uc.pt Abstract In this article we decribe how to compute a lower bound for the asymmetric traveling salesman problem that dominates the bound that comes from the assignment relaxation, through the solving of a sequence of assignment problems. The algorithm that we propose is a first-order method based on the exponential penalty function. Directions of movement are derived from a disjunctive relaxation that we proposed as being one of two possible classes, one based on cycles, the other based on cliques. Resumo Neste artigo explicamos como obter um limite inferior para o valor óptimo do problema do caixeiro viajante assimétrico melhor do que o que advém do problema de afectação através da resolução sucessiva de problemas de afectação. O algoritmo que propomos é um método de primeira ordem baseado na função de penalidade exponencial cujas direcções de deslocamento são definidas com base numa relaxação disjuntiva que propomos ser de dois tipos, uma baseada em ciclos e a outra baseada em cliques. Keywords: Optimization, Combinatorial Optimization, Lower Bounds, Asymmetric Traveling Salesman, Disjunctive Programming João Soares acknowledges partial finantial support from Fundação para a Ciência e Tecnologia (Projecto POCTI/MAT/14243/1998). c 2005 Associação Portuguesa de Investigação Operacional

64 A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 Title: An improved lower bound for the asymmetric traveling salesman problem based on the assignment problem 1 O Problema do Caixeiro Viajante Assimétrico Seja G[c] = (V, E) um grafo dirigido simples (i.e., sem laços e arcos múltiplos) com n vértices e m arcos, tal que a cada arco (i, j) E está associado um escalar real c ij designado por custo do arco (i, j). O problema do caixeiro viajante assimétrico consiste em determinar em G[c] um ciclo Hamiltoniano de custo mínimo. Num grafo dirigido, um ciclo Hamiltoniano é um ciclo com todos os arcos orientados na mesma direcção e que passa por todos os vértices uma única vez. Este problema (que em inglês é chamado Asymmetric Traveling Salesman Problem, e por isso denotado ATSP) tem vindo a servir de plataforma de teste para diversas metodologias de resolução em optimização combinatória e, por isso, também foi a classe de problemas escolhida para testar a nossa metodologia. O livro [27] sumaria a investigação no ATSP em todos os seus aspectos até 1985, enquanto que o livro [19] é uma referência mais actual. Em língua portuguesa e do nosso conhecimento, os trabalhos de síntese sobre o ATSP incluem os artigos de Coelho e Cerdeira [25, 26], a dissertação de Pires [30] e o artigo didáctico de Constantino [10]. De acordo com [12], os códigos mais eficazes para a resolução do ATSP são: o código CDT [7, 6] - método branch-and-bound onde todas as relaxações lineares são problemas da afectação; o código FT-add - coincide com CDT mas após a resolução de cada problema da afectação o limite inferior é melhorado através da resolução de arborescências de custo mínimo, tal como é explicado em [13]; o código FT-b&c [14] - um método branch-and-cut que usa diversas desigualdades válidas para o ATSP e onde todas as relaxações lineares são problemas lineares gerais; o código Concorde, disponível em http://www.tsp.gatech.edu// um método branch-and-cut pensado para o STSP, a versão simétrica do ATSP, do mesmo modo que FTb&c foi pensado para o ATSP. Como qualquer ATSP pode ser reformulado como um STSP, o código Concorde também permite resolver o ATSP. Portanto, as implementações FT-b&c e Concorde usam relaxações lineares muito mais apertadas do que CDT e FT-add. Consequentemente, os limites inferiores gerados são muito mais eficazes na eliminação de nós na árvore do branch-and-bound. Contudo, esses códigos dependem do interface com um código eficiente para programação linear. Hoje em dia, um tal código é sinónimo de um código altamente sofisticado como é o Cplex. A questão específica de obter bons limites inferiores para o ATSP resolvendo uma sucessão de problemas com resolução muito eficiente é abordada em [3], em [13] e em [24]. Bons limites inferiores podem vir a tornar um código como o CDT (e FT-add) mais competitivo. A primeira referência procura generalizar o limite Held-Karp (proposto para o caso simétrico em [23, 22]) para o ATSP enquanto que a segunda referência explora as diversas subestruturas particulares na formulação tradicional do ATSP (afectação, arborescência) e que possuem métodos de resolução específicos muito eficientes. A terceira referência usa a reformulação do ATSP como um STSP, aplica a abordagem Lagrangeana de Held e Karp, e depois retoma o ATSP original.

A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 65 Limites inferiores servem também para avaliar o desempenho de heurísticas em problemas que não possuem o valor óptimo conhecido ou é moroso obtê-lo. Foi aliás, para esse contexto que foi pensado o limite inferior sugerido em [24]. Motivados pela importância de descobrir bons limites inferiores para o ATSP apresentamos, neste trabalho, uma estratégia de obter um limite inferior para o valor óptimo do ATSP melhor do que o que advém do problema de afectação. O algoritmo que propomos é do tipo Lagrangeano mas, ao contrário da abordagem clássica, não requer a actualização de variáveis duais e obriga apenas à resolução sucessiva de problemas de afectação como subproblemas. No entanto, o algoritmo que propomos neste trabalho requer um estudo computacional mais aprofundado pois as experiências computacionais preliminares que efectuámos permitiram identificar diversas limitações. As limitações são estruturais e não parecem ser simples ajustamentos na implementação. Por isso, não pretendemos neste trabalho demonstrar a viabilidade numérica do nosso algoritmo nem mesmo compará-lo com as abordagens clássicas de relaxação Lagrangeana. Pretendemos tão simplesmente demonstrar que o nosso algoritmo conceptualmente tira grande partido da estrutura específica do ATSP embora ainda não o seja verificado experimentalmente. Na próxima secção, recordamos a formulação clássica para o Problema do Caixeiro Viajante Assimétrico. Na Secções 3 e 4 explicamos como se pode fortalecer uma relaxação linear através relaxações lineares disjuntivas, que usam o facto de que um dado ponto extremo não satisfaz uma restrição de ciclo ou de clique. Explicaremos como optimizar adequadamente uma função linear nessas relaxações lineares disjuntivas. Na Secção 5, propomos um algoritmo que permite obter um limite inferior melhorado para o valor óptimo do ATSP e ilustramos algumas iterações desse algoritmo com um exemplo. Na Secção 6, referimos as conclusões possíveis do trabalho e identificamos novas questões científicas. 2 A formulação clássica A formulação clássica do ATSP utiliza uma variável x ij {0, 1} por cada arco (i, j) E, que indica se o arco (i, j) pertence ou não ao ciclo Hamiltoniano procurado, e é a seguinte: z = min s.a (i,j) E (i,j) δ + (i) c ij x ij (i,j) δ (j) x ij = 1 (i V ), (1) x ij = 1 (j V ), (2) x ij 0 ((i, j) E), (3) x ij S 1 (S V, S, V ), (4) (i,j) E(S) x ij Z ((i, j) E), (5) onde δ + (i) denota o conjunto dos arcos de G que saem do vértice i, e δ (i) denota o conjunto dos arcos de G que entram no vértice i.

66 A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 As restrições (1)-(3) definem um poliedro que denotaremos por P ASS (ASS de Assignment ). Os pontos extremos de P ASS satisfazem as restrições (5) e são os vectores característicos de ciclos Hamiltonianos e subpercursos de G. O valor de min{cx: x P ASS } é um limite inferior para z, que pode ser obtido em O(n 3 ) operações aritméticas e comparações através do método Húngaro ([27], por exemplo) mesmo que a função objectivo seja definida por números reais. Os vectores característicos de ciclos Hamiltonianos em G são os pontos extremos de P ASS que satisfazem as restrições (4) - normalmente designadas por restrições de eliminação de subpercursos - no caso particular apresentado, esta classe de restrições também é designada por restrições de clique. Denotaremos por P ATSP o invólucro convexo das soluções admissíveis de (1)-(5). O problema min{cx: x P ATSP } é N P-difícil ([27], por exemplo). No entanto, a sua relaxação linear pode ser resolvida em tempo polinomial através do método elipsóide [20], conforme explicado em [18] - aqui já se torna necessário que c seja racional. Essencialmente, isso deve-se ao facto de que dado x satisfazendo as restrições (1)-(3), averiguar se x satisfaz as restrições (4) consiste na resolução de um problema de corte mínimo global em G[ x] porque, para todo o x que satisfaça as restrições (1), tem-se x ij = S x ij (6) (i,j) E(S) x ij = i S (i,j) δ + (i) (i,j) E : j / S x ij (i,j) δ + (S) e, portanto, cada uma das restrições (4) pode ser substituída por x ij 1 (S V, S ) (7) (i,j) δ + (S) sem que a relaxação linear de (1)-(5) fique diferente. As restrições (7) são normalmente designadas por restrições de corte. Uma formulação alternativa a (1)-(5) consiste em substituir as restrições (4) por x ij E(C) 1 (C ciclo não Hamiltoniano de G). (8) (i,j) E(C) Não é difícil mostrar que a relaxação linear deste novo problema é de qualidade inferior à relaxação linear de (1)-(5). A sua resolução é também polinomial porque cada uma das restrições (8) pode ser reescrita como (1 x ij ) 1 (C ciclo não Hamiltoniano de G) (i,j) E(C) que são normalmente designadas por restrições de ciclo. Por isso, averiguar se um vector x, que satisfaça (1)-(3), também satisfaz as restrições (8) consiste em determinar em G[1 x] o ciclo não Hamiltoniano de custo mínimo. Este problema pode ser resolvido em O(n 4 ) operações aritméticas e comparações através de uma adaptação do algoritmo de Floyd-Warshall [15, 33]. 3 Uma relaxação linear disjuntiva baseada em ciclos Seja C um ciclo não Hamiltoniano de G tal que E(C) = {(i 1, i 2 ), (i 2, i 3 ),..., (i K, i 1 )} E e seja P um conjunto poliédrico satisfazendo P ATSP P P ASS. Defina-se a seguinte relaxação

A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 67 linear disjuntiva de P ATSP, inspirada em [31] e também usada em [8], ( K ) P C,i1 conv P k, (9) k=1 onde P 1 P {x: x i1 i 2 P 2 P {x: x i1 i 2 = 1, x i2 i 3 P 3 P {x: x i1 i 2 = x i2 i 3 = 1, x i3 i 4 P K P {x: x i1 i 2 = x i2 i 3 =... = x ik 1 i K = 1, x ik i 1 = 0}. Não é difícil verificar que P C,i1 é um poliedro que satisfaz P ATSP P C,i1 P x: (i,j) E(C) x ij E(C) 1 P P ASS. (10) Mais, os poliedros P 1, P 2,..., P K são faces de P (e de P ATSP ). Basta reparar que, para cada k {1, 2,..., K}, P k = P {x: α k x = β k }, com β k = (k 1) e α k R m um vector linha definido componente a componente por 1 se (i, j) = (i k, i k+1 ), αij k = 1 se (i, j) {(i 1, i 2 ), (i 2, i 3 ),..., (i k 1, i k )},, (i, j) E. 0 noutros casos, e que α k x β k para todo o x P ASS P. Não é verdade que, em geral, P C,i1 de P. seja uma face Lema 1 Seja C um ciclo não Hamiltoniano de G e P um conjunto poliédrico satisfazendo P ATSP P P ASS. Se os pontos extremos de P são pontos extremos de P ASS, então P C,v P C é independente de v V (C), e os pontos extremos de P C são os pontos extremos de P que satisfazem x ij E(C) 1. (11) (i,j) E(C) Demonstração. Suponhamos que E(C) = {(i 1, i 2 ), (i 2, i 3 ),..., (i K, i 1 )}. Basta provar que P C,i1 conv( K k=1 P k), definido em (9), coincide com P C,i2 conv( K k=1 P k ), definido por P k P {x: x i 2 i 3 = x i3 i 4 =... = x ik i k+1 = 1, x ik+1 i k+2 admitindo que i K+1 i 1 e i K+2 i 2. Seja x um ponto extremo de P C,i1 ; então x P k para algum k {1, 2,..., K}. Se k 2, então x P k 1. Se k = 1, então existe l {1, 2,..., K} tal que x i2 i 3 = x i3 i 4 =... = x il i l+1 = 1, x il+1 i l+2 = 0, e, neste caso, x P l. Em qualquer dos casos, x P C,i 2. Reciprocamente, seja x um ponto extremo de P C,i2 tal que x P k. Se x i 1 i 2 = 1, então k K 1 e x P k+1 ; caso contrário, x P 1. Em qualquer dos casos, x P C,i1.

68 A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 Os pontos extremos de P C são os pontos extremos de cada um dos conjuntos P k, k = 1, 2,..., K que, como é fácil verificar, satisfazem (11). Reciprocamente, para o todo o ponto extremo x de P que satisfaça (11) existe um conjunto P k tal que x P k. Então, x terá que ser ponto extremo de P C porque P k P. Em geral, P C,v P {x: (i,j) E(C) x ij E(C) 1}, para todo v V (C). No caso particular do lema acima, P C = conv P x: x ij E(C) 1 Zm. (i,j) E(C) Uma consequência imediata do Lema 1 é a seguinte generalização do procedimento de convexificação sequencial de Balas. Proposição 1 Seja C = {C 1, C 2,..., C l } o conjunto de todos os ciclos não Hamiltonianos do grafo G = (V, E). Então, ( ( (P ) ) P ATSP ASS =... C 1 C 2. (12) )... C l Demonstração. Pelo Lema 1, os pontos extremos do conjunto do lado direito de (12) são os pontos extremos de P ASS que satisfazem as desigualdades (8). Abordamos agora a questão da existência de um hiperplano separador entre P C,i1, para algum ciclo não Hamiltoniano C, e um ponto extremo de P. Lema 2 Seja x um ponto extremo de um poliedro P tal que P ATSP P P ASS. Então, 1. se existe um ciclo não Hamiltoniano C tal que (i,j) E(C) (1 x ij) < 1, então x P C,v para todo v V (C); 2. se x ij (0, 1) para algum (i, j) E, então x P C,i para todo o ciclo não Hamiltoniano C que contenha o arco (i, j). Demonstração. Para a primeira parte, por hipótese, (i,j) E(C) x ij > E(C) 1, mas para todo v V (C) e para todo x P C,v, (i,j) E(C) x ij E(C) 1. Concluímos que x P C,v. Para a segunda parte, se x pertencesse a P C,i, então também seria um ponto extremo de P C,i, o que é absurdo pois todos os pontos extremos de P C,i possuem zero ou um na componente da posição (i, j). Pelo Lema 2, qualquer ciclo não Hamiltoniano que contenha o arco (i, j) associado a uma componente fraccionária de x serve o propósito de identificar um hiperplano separador. Poderemos, por exemplo, escolher o caminho mais curto de j para i no conjunto dos grafos G[1 x] {k} (k V \ {i, j}) que conjuntamente com o arco (i, j) define um ciclo pretendido. Em alternativa, podemos resolver o problema do ciclo não Hamiltoniano mais curto em G[1 x] da maneira que explicamos a seguir. Seja G[d] = (V, E) um grafo dirigido, tal que a cada arco (i, j) E está associado um escalar d ij 0 que designamos por distância do arco (i, j). O mais curto ciclo não Hamiltoniano em

A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 69 G[d] possui distância total igual { min min k V { }} πji k + d ij : (i, j) E, i, j V \ {k}, (13) onde πji k denota o comprimento do caminho mais curto em G[d] do vértice j para o vértice i sem passar pelo vértice k. Para cada k K fixo, todos aqueles valores podem ser calculados através do algoritmo de Floyd-Warshall [15, 33], que pode funcionar em tempo proporcional a O(n 3 ) [1, Secção 5.6], aplicado ao grafo G[d] {k}. Portanto, o mais curto ciclo não Hamiltoniano em G[d] pode ser identificado em O(n 4 ) operações (este número pode ser reduzido para O(n 3 )). Se (13) for inferior a um, então a respectiva solução óptima C é tal que x P C,v para todo v V (C). Se (13) for superior ou igual a um e x ij (0, 1), então o ciclo não Hamiltoniano C de comprimento { } min πji k + d ij : k V \ {i, j}, (14) é tal que x P C,i. Em ambos os casos, é possível identificar um hiperplano separador que é óptimo nalgum aspecto. Quando P = P ASS, o problema de optimização linear sobre P C pode ser resolvido em O(n 3 ) operações aritméticas e comparações, portanto, comparável ao tempo de resolução de apenas um problema de afectação. De facto, a resolução do problema ( ) min cx min cx = min (15) s.a x P C k=1,2,...,k s.a x P k pode fazer-se parametricamente através de uma optimização (envolvendo O(n 3 ) operações) e K 1 reoptimizações (cada uma envolvendo O(n) operações) da maneira que explicamos a seguir. Suponhamos que se pretende obter um par de soluções primal-dual óptimas para z k+1 = min{cx: x P k+1 }, sendo conhecida essa informação para z k = min{cx: x P k }. Seja x {0, 1} m uma solução primal óptima de min s.a z k = cx x P x ij = 1 ( (i, j) E(C k ) {(i 1, i 2 ), (i 2, i 3 ),..., (i k 1, i k )} ), x ij = 0 ((i, j) = (i k, i k+1 )), que é vector característico de um emparelhamento perfeito M do grafo bipartido G = (V V, E), e seja (ū, v) R 2n uma solução óptima para o correspondente problema dual z k = (i,j) E(C k ) max u i + v j c ij + i {i 1,i 2,...,i k 1 } j {i 2,i 3,...,i k } s.a u i + v j c ij, ((i, j) E \ E(C k+1 )). Relativamente a (16), o novo problema z k+1 = min{cx: x P k+1 } possui a restrição x ik i k+1 = 1 no lugar da restrição x ik i k+1 = 0 e uma nova restrição x ik+1 i k+2 = 0. Consequentemente, no novo problema dual aparece mais uma parcela constante c ik i k+1 e desaparecem as variáveis u ik e v ik+1 da função objectivo, e desaparece a restrição u ik+1 + v ik+2 c ik+1 i k+2. Por isso, o vector x já não é primal admissível, mas o vector (ū, v) permanece dual admissível no novo (16)

70 A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 problema, e z k + c ik i k+1 ū ik v ik+1 surge como primeiro limite inferior ao valor de z k+1. Podemos iniciar o método Húngaro com a solução dual admissível (ū, v) e o vector característico do emparelhamento M M \ {(i, i k+1 ), (i k+1, j), (i k+1, i k+2 )} {(i k, i k+1 )} para algum i / {i 1, i 2,..., i k 1, i k } e j {i 1, i 2,..., i k 1, i k }. O novo emparelhamento M possui menos dois arcos se (i k+1, i k+2 ) pertencia ao emparelhamento anterior M ou menos um arco se não pertencia. A solução óptima do novo problema pode ser então obtida em O(n) operações aritméticas e comparações. Como existem, no máximo, K 1 re-optimizações a fazer e K < n, concluímos que o esforço computacional global na resolução do problema (15) é O(n 3 ). 4 Uma relaxação linear disjuntiva baseada em cliques Nesta secção, vamos construir uma relaxação disjuntiva de P ATSP que usa cliques do mesmo modo que a relaxação anterior usava ciclos. A nova relaxação requer um número muito mais elevado de disjunções mas, tal como no caso anterior, a optimização nesse poliedro pode ser feita de modo paramétrico. Seja S V um conjunto de cardinalidade K < n. O número de caminhos simples em G[S], o subgrafo de G induzido por S, a partir de um determinado vértice de S é, no máximo, igual a p K = K k=1 (K 1)! (K k)! ( = 1 + (K 1)pK 1 ). (17) Por exemplo, se S = {i 1, i 2, i 3 } e i 1 é o vértice designado, cada um desses caminhos corresponde a um arco da subárvore da esquerda da árvore enumerativa ilustrada na Figura 1. Por exemplo, o arco 1 está associado ao caminho constituído pelo vértice i 1 e nenhum arco, o arco 2 está associado ao caminho i 1 (i 1, i 2 )i 2, etc. Para um conjunto poliédrico P satisfazendo P ATSP P P ASS, defina-se a seguinte relaxação linear disjuntiva de P ATSP, P S conv (j 1,j 2,...,j k ): {j 1,j 2,...,j k } S,k 1 P (j1,j 2,...,j k ) onde cada conjunto P (j1,j 2,...,j k ) é definido pelos pontos x P tais que x ij = 1, (i, j) E(C k ), x ij = 0, (i, j) E(S) \ E(C k ), j V (C k ),, (18) sendo C k {j 1, (j 1, j 2 ), j 2, (j 2, j 3 ), j 3,..., j k 1, (j k 1, j k ), j k }. Portanto, o conjunto P (j1,j 2,...,j k ) Z m é o subconjunto de P ASS Z m dos vectores que pertencem a P e são característicos de conjuntos de arcos que usam o caminho j 0 (j 0, j 1 )j 1 (j 1, j 2 )j 2 (j 2, j 3 )j 3... j k (j k, j k+1 )j k+1 para alguns j 0, j k+1 V \ S - veja-se a Figura 2. No caso do exemplo da Figura 1, existem 15

A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 71 poliedros na definição (18), que apresentamos pela ordem de numeração dos arcos: P (i1 ) P {x: x i1 i 2 = x i2 i 1 = x i1 i 3 = x i3 i 1 P (i2 ) P {x: x i2 i 1 = x i1 i 2 = x i2 i 3 = x i3 i 2 P (i3 ) P {x: x i3 i 1 = x i1 i 3 = x i3 i 2 = x i2 i 3 P (i1,i 2 ) P {x: x i1 i 2 = 1, x i2 i 1 = x i2 i 3 = x i3 i 1 P (i1,i 2,i 3 ) P {x: x i1 i 2 = x i2 i 3 = 1, x i3 i 1 P (i1,i 3 ) P {x: x i1 i 3 = 1, x i3 i 1 = x i3 i 2 = x i2 i 1 P (i1,i 3,i 2 ) P {x: x i1 i 3 = x i3 i 2 = 1, x i2 i 1 P (i2,i 1 ) P {x: x i2 i 1 = 1, x i1 i 2 = x i1 i 3 = x i3 i 2 P (i2,i 1,i 3 ) P {x: x i2 i 1 = x i1 i 3 = 1, x i3 i 2 P (i2,i 3 ) P {x: x i2 i 3 = 1, x i3 i 1 = x i3 i 2 = x i1 i 2 P (i2,i 3,i 1 ) P {x: x i2 i 3 = x i3 i 1 = 1, x i1 i 2 P (i3,i 1 ) P {x: x i3 i 1 = 1, x i1 i 2 = x i1 i 3 = x i2 i 3 P (i3,i 1,i 2 ) P {x: x i3 i 1 = x i1 i 2 = 1, x i2 i 3 P (i3,i 2 ) P {x: x i3 i 2 = 1, x i2 i 1 = x i2 i 3 = x i1 i 3 P (i3,i 2,i 1 ) P {x: x i3 i 2 = x i2 i 1 = 1, x i1 i 3 Não é difícil verificar que P S é um poliedro que satisfaz Figura 1: Árvore de enumeração dos caminhos simples em S = {i 1, i 2, i 3 }. Figura 2: P (j1,j 2,...,j k ).

72 A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 P ATSP P S P x: (i,j) E(S) x ij S 1 P P ASS. O poliedro P S é o invólucro convexo de, no máximo, p = Kp K poliedros em (18). Cada um dos poliedros P l P (j1,j 2,...,j k ), com l = 1, 2,..., p, é uma face de P. Mais, se os pontos extremos de P são pontos extremos de P ASS, então os pontos extremos de P S são os pontos extremos de P que satisfazem x ij S 1. (19) (i,j) E(S) De facto, os pontos extremos de P S são os pontos extremos de cada um dos conjuntos P l para l = 1, 2,..., p que satisfazem (19). Além disso, se x P l então, para algum k S, x ij = S 1. (i,j) E(S) i S\{k} j S : (i,j) E Reciprocamente, para o todo o ponto extremo x de P que seja vector característico e satisfaça (19), existe um conjunto P l tal que x P l. Então, x terá que ser ponto extremo de P S porque P l P. Uma consequência imediata é a seguinte generalização do procedimento de convexificação sequencial de Balas. A sua demonstração é idêntica à da Proposição 1. x ij Proposição 2 Seja S = {S 1, S 2,..., S l } a família de todos os subconjuntos próprios de V. Então ( ( (P ) ) P ATSP ASS =... S 1 S 2. (20) )... S l Abordamos agora a questão da existência de um hiperplano separador entre P ATSP ponto extremo de uma relaxação linear de P ATSP do tipo descrito. e um Lema 3 Seja P tal que P ATSP P P ASS, e seja x um ponto extremo de P tal que x uv1, x uv2 (0, 1) para alguns (u, v 1 ), (u, v 2 ) E. Então, 1. se existe um conjunto S V tal que (i,j) δ + (S) x ij < 1, então x P S ; 2. para todo o conjunto S tal que (i,j) δ + (S) x ij = 1, u, v 1 S e v 2 S, tem-se x P S. Demonstração. Para a primeira parte, atendendo a (6), por hipótese, (i,j) E(S) x ij > S 1. Mas para todo x P S, tem-se (i,j) E(S) x ij S 1. Concluímos que x P S. Para a segunda parte, se x pertencesse a P S, então também seria um ponto extremo de um dos conjuntos P l, l = 1, 2,..., p. Por isso, existe um vértice k S tal que 1 = x kw x ij = 1. (21) w S : (k,w) E (i,j) δ + (S) Se k = u chegamos a um absurdo porque x uv1 > 0 e v 1 S, o que implica w S : (u,w) E x uw < 1. Se k u também chegamos a um absurdo porque, de (21), 0 = x uw x uv2 > 0. w S : (u,w) E

A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 73 Pelo lema anterior, conhecido um ponto extremo x de uma relaxação linear P de P ATSP com uma componente x ij fraccionária podemos identificar um conjunto S V tal que x P S através da resolução do problema do corte global de capacidade mínima no grafo G[ x] da maneira que explicamos a seguir. Seja G[u] = (V, E) um grafo dirigido simples com n vértices e m arcos tal que a cada arco (i, j) E está associado um escalar real u ij 0 designado por capacidade do arco (i, j). O problema de determinar o corte global de capacidade mínima em G pode escrever-se como min u ij : S V, S. (22) (i,j) δ + (S) Se englobássemos as restrições s S e t V \ S para dois vértices designados, então o problema (22) seria dual do problema de determinar o fluxo máximo de s para t [16]. Não estando especificados os vértices origem s e terminal t, o problema (22) é dual do problema de determinar o maior valor de fluxo que é possível enviar entre qualquer par de vértices de G. Consequentemente, o problema (22) pode ser resolvido após a resolução de n(n 1)/2 problemas de fluxo máximo com vértices origem e terminal designados. Hao e Orlin [21] propuseram um algoritmo específico que usa apenas uma sequência de 2n 2 problemas de fluxo máximo. A abordagem, que é inspirada no algoritmo preflow-push de Golberg e Tarjan [17] (para o problema do fluxo máximo entre dois vértices designados) e na abordagem de Padberg e Rinaldi [29], resulta num algoritmo que requer O(nm log(n 2 /m)) operações aritméticas e comparações, se u for um vector de números racionais. Portanto, o esforço computacional é comparável à resolução de n problemas de fluxo máximo entre dois vértices designados. Se o valor óptimo de (22), para u = x, for inferior a um, então a solução óptima S é tal que x P S pelo Lema 3. Se o valor óptimo de (22) é igual a um, então um conjunto S, nas condições do Lema 3, pode ser encontrado do seguinte modo. Se f 2 = x uv2 (0, 1), então determine-se o fluxo máximo de u para v 2 no grafo G[ x] {(u, v 2 )}, que sabemos saber ser igual a 1 f 2. Pelo Teorema do Fluxo Máximo-Corte Mínimo, existe um conjunto de vértices S, contendo u e todos os vértices v v 2 tais que x uv (0, 1), tal que, relativamente ao grafo G {(u, v 2 )}, x ij = 1 f 2. (i,j) δ + (S) Por isso, relativamente ao grafo G original, (i,j) δ + (S) x ij = 1 f 2 + f 2 = 1. Pelo Lema 3, x P S. Concluímos que a determinação de S pode ser, em qualquer dos casos, efectuada em tempo polinomial. Este conjunto S, assim determinado, é óptimo em algum aspecto. Quando P = P ASS, o problema de optimização linear sobre P S pode ser resolvido em O(n 3 + (p 1)n) operações aritméticas e comparações. De facto, a resolução do problema ( ) min cx min cx = min s.a x P S (j 1,j 2,...,j k ): {j 1,j 2,...,j k } S,k 1 s.a x P (j1,j 2,...,j k ) pode fazer-se parametricamente através de uma optimização (envolvendo O(n 3 ) operações) e K 1 reoptimizações (cada uma envolvendo O(n) operações) da maneira que explicamos a seguir. (23)

74 A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 Sejam P k e P k+1 poliedros associados a um arco do nível k e a um arco do nível k + 1, sucessivos, na árvore de enumeração dos caminhos, conforme ilustrado na Figura 1. Vamos explicar como obter um par de soluções primal-dual óptimas para z k+1 = min{cx: x P k+1 }, sendo conhecida essa informação para z k = min{cx: x P k }. Seja x {0, 1} m uma solução primal óptima de min s.a z k = cx x P x ij = 1, (i, j) E(C k ) {(j 1, j 2 ), (j 2, j 3 ),..., (j k 1, j k )}, x ij = 0, (i, j) E(S) \ E(C k ), j V (C k ), que é vector característico de um emparelhamento perfeito M do grafo bipartido G = (V V, E), e seja (ū, v) R 2n uma solução óptima para o correspondente problema dual z k = (i,j) E(C k ) max u i + v j i {i c ij + 1,i 2,...,i k 1 } j {i 2,i 3,...,i k } s.a u i + v j c ij, (i, j) E \ E(S), u i + v j c ij, (i, j) E(S) \ E(C k ), j V (C k ). Relativamente a (24), o novo problema z k+1 = min{cx: x P k+1 } possui a restrição x jk j k+1 = 1 no lugar da restrição x jk j k+1 = 0 e novas restrições x jk+1 j = 0, j S \ V (C k+1 ) e x ijk+1 = 0, i S \ V (C k+1 ). No novo problema dual, aparece mais uma parcela constante c jk j k+1 e desaparecem as variáveis u jk e v jk+1 da função objectivo, e desaparecem as restrições u jk+1 +v j c jk+1 j, j S\V (C k ). Por isso, o vector x já não é primal admissível, mas o vector (ū, v) permanece dual admissível no novo problema e z k + c jk j k+1 ū jk v jk+1 surge como limite inferior ao valor óptimo do novo problema. Podemos inicializar o método Húngaro com a solução dual admissível (ū, v) e o vector característico do emparelhamento M M \ {(s, j k+1 ), (j k, t), (j k+1, w)} {(j k, j k+1 )}, para algum t / S e s, w V - não é necessário excluir (j k+1, w) se w S. A solução óptima do novo problema pode ser então obtida em O(n) operações aritméticas e comparações. Como existem, no máximo, p 1 re-optimizações a fazer, concluímos que o esforço computacional global na resolução de (23) é O(n 3 + (p 1)n). Realçamos que se a árvore for percorrida por breath-first-search então as soluções iniciais estarão prontamente disponíveis se forem armazenadas uma por cada nível. Portanto, não é necessário armazenar mais do que um par primal-dual óptimo por nível. (24) 5 Determinação de um limite inferior melhorado Nesta secção, propomos uma abordagem Lagrangeana para obter um limite inferior melhorado para o valor de z = min{cx: x P ATSP } que usa apenas a resolução de problemas de afectação como subproblemas. O algoritmo proposto, que é formalmente descrito na Figura 3, é essencialmente um método descendente de primeira ordem para a minimização da função de penalidade K ( ) f(x) cx + ρ e (a ix b i )/ρ 1, (25) i=1

A. Ramires, J. Soares / Investigação Operacional, 25 (2005) 63-83 75 onde a i x b i para i = 1, 2,..., K são desigualdades válidas para P ATSP. Este conjunto de desigualdades vai sendo expandido à medida que o algoritmo decorre. Em cada iteração genérica-k do algoritmo proposto, começa-se por identificar uma direcção de descida, usando informação de primeira ordem. Observe-se que f(x) = c + y(x)a, 2 f(x) = A T Y (x)a/ρ, onde A é uma matriz K n, contendo as colunas a T i para i = 1, 2,..., K, e Y (x) é uma matriz diagonal K K cujos elementos diagonais coincidem com o vector y(x) definido componente a componente por y i (x) = e (a ix b i )/ρ (i = 1, 2,..., K). Enquanto não é identificada uma direcção de descida, o parâmetro de penalidade é reduzido. Depois de identificada uma direcção de descida d k = q k x k para f a partir de x k e para algum q k arg min{ f(x k )q : q P ASS } Z m, decide-se o tamanho do passo λ k ao longo dessa direcção para obter a nova aproximação x k+1 = x k + λ k d k. O escalar λ k é solução óptima para min{g(λ) f(x + λd): λ (0, 1]}. Se g (1) 0, então λ k = 1 é a solução óptima porque g é convexa. Caso contrário, o escalar λ k deve ser aproximado através do método de Newton. Algumas simplificações ocorrem na correspondente fórmula recursiva. Para x e d fixos, temos g(λ) = c(x + λd) + ρ K i=1 ( ) e (a i(x+λd) b i )/ρ 1 = z 0 + λw 0 + ρ K (y i (λ) 1), onde z 0 = cx, w 0 = cd, z = Ax b, w = Ad e y(λ) y(x + λd) = e (z i+λw i )/ρ. Por isso, g (λ) = (c + y(λ)a) d = w 0 + g (λ) = d T A T Y (λ)ad/ρ = K w i y i (λ), i=1 K wi 2 y i (λ)/ρ, pelo que o método de Newton consiste na aplicação da seguinte fórmula recursiva a partir de λ (0) = 0, K w λ (j+1) = λ (j) g (λ (j) ) 0 + y i (λ (j) )w i g (λ (j) ) = λ(j) i=1 ρ (j = 0, 1,...). K y i (λ (j) )wi 2 O último passo da iteração genérica-k consiste na identificação do corte global δ + (S) de capacidade mínima em G[q k ]. Note-se que q k é um vector de zeros e uns e, por isso, a identificação de δ + (S) pode ser efectuada por um método standard de averiguação de conexidade num grafo. Segue-se a determinação da desigualdade válida para PS ASS mais profunda entre q k e PS ASS. A determinação desse corte obriga à resolução do seguinte par de problemas para x = q k e S V : min s.a x x x PS ASS max s.a i=1 i=1 i=1 α x β (α, β) polar(ps ASS ), α 1. (26)