Graduação em Matemática Industrial Otimização Combinatória - Parte 3 Prof. Thiago Alves de Queiroz Unidade de Matemática e Tecnologia - CAC/UFG 2/2016 Thiago Queiroz (DM) Parte 3 2/2016 1 / 23
Problemas de Caixeiro Viajante Envolvem um conjunto de cidades, em que o caixeiro sai de uma cidade base, visita todas as cidades ou um subconjunto delas, e retorna à cidade base de modo a otimizar um ou mais objetivos. Algumas versões: caixeiro-viajante - distância: Existe n cidades, das quais existe uma ligação entre cada uma delas. Um caixeiro deve visitar as n cidades, passando exatamente uma vez por cada uma, e retornar a cidade de partida, com distância mínima; m caixeiros-viajantes - distância: difere do problema anterior pela existência de m caixeiros-viajantes, necessitando determinar m rotas, minimizando a distância total percorrida; caixeiro-viajante - aquisição: determinar uma rota de custo mínimo por meio de um subconjunto de mercados, tal que o custo total é a soma dos custos de viagem e da aquisição de produtos; caixeiro-viajante - lucro: um lucro está associado a cada cidade e o objetivo consiste em determinar uma rota de custo mínimo por meio de um subconjunto destas, de forma a otimizar a soma dos custos de viagem e dos lucros coletados. Thiago Queiroz (DM) Parte 3 2/2016 2 / 23
Problemas de Caixeiro Viajante Exemplo. Considere um grafo não-orientado G = (N, E), em que N consiste de n cidades e E representa as arestas entre as cidades; O grafo G é completo, de forma que existe (i, j) E, i j, para todo par de cidades. A distância entre as cidades i e j é c ij ; O caixeiro deve visitar n cidades, passando por cada uma somente uma vez, e retornar à cidade de origem. Na versão simétrica, temos c ij = c ji ; (i) Definir { as variáveis de decisão: 1, se o caixeiro vai diretamente de i para j, i j x ij = 0, caso contrario Para as cidades i, j = 1, 2,..., n; (ii) A função objetivo busca minimizar a distância total percorrida; Minimizar z = n i=1 n j=1,j i c ijx ij ; Thiago Queiroz (DM) Parte 3 2/2016 3 / 23
Problemas de Caixeiro Viajante (iii) Existem restrições que dizem que cada cidade só tenha somente uma cidade sucessora imediata e uma cidade predecessora imediata; n i=1 x ij = 1, j = 1,..., n, j i; n j=1 x ij = 1, i = 1,..., n, i j; Somente com estas duas restrições, podem surgir sub-rotas, como mostra a figura adiante; Figura: Representação das sub-rotas. Thiago Queiroz (DM) Parte 3 2/2016 4 / 23
Problemas de Caixeiro Viajante (iii) Existem restrições para eliminar as sub-rotas; i S j S, j>i x ij S 1, S N, 3 S n 2 ; Isto corresponde a eliminar uma aresta da sub-rota. S representa cada conjunto de cidades com no mínimo 3 (pois um ciclo tem pelo menos três nós) e no máximo n 2 cidades; Note que ao eliminar ciclos com k nós, também eliminamos ciclos com n k nós; Como o número de subconjuntos disjuntos de um conjunto com k elementos é 2 k, segue que o número de restrições de sub-rota é exponencial; Para um conjunto de S = {1, 2, 3, 4}, a restrição fica: x 12 + x 23 + x 34 + x 14 3; (iii) Existem restrições com relação ao domínio das variáveis; x ij {0, 1}, i = 1,..., n; j = 1,..., n. Thiago Queiroz (DM) Parte 3 2/2016 5 / 23
Problemas de Caixeiro Viajante n n Minimizar z = c ij x ij i=1 j=1,j i n x ij = 1, j = 1,..., n, j i i=1 n x sujeito a : ij = 1, i = 1,..., n, i j j=1 x ij S 1, S N, 3 S n 2 i S j S, j>i x ij {0, 1}, i = 1,..., n; j = 1,..., n. (1) Exemplo. Veja como fica o modelo para N = {1, 2, 3} contendo 3 cidades, sendo o custo c ij = c ji = i + j; Thiago Queiroz (DM) Parte 3 2/2016 6 / 23
Resolução... (i) Existem as variáveis x ij para i, j = 1, 2, 3 e j i, pois o problema é simétrico: x 12, x 13, x 21, x 23, x 31, x 32 ; Os custos ficam: c 12 = 3, c 13 = 4, c 23 = 5 (ii) A função objetivo busca minimizar a distância total percorrida: Minimizar z = 3x 12 + 4x 13 + 3x 21 + 5x 23 + 4x 31 + 5x 32 ; (iii) Restrições que dizem que cada cidade só tenha somente uma cidade sucessora imediata e uma cidade predecessora imediata: Cidade j=1: x 21 + x 31 = 1; Cidade j=2: x 12 + x 32 = 1; Cidade j=3: x 13 + x 23 = 1; Thiago Queiroz (DM) Parte 3 2/2016 7 / 23
Resolução... Cidade i=1: x 12 + x 13 = 1; Cidade i=2: x 21 + x 23 = 1; Cidade i=3: x 31 + x 32 = 1; (iii) As restrições para eliminar as sub-rotas; Não é preciso, pois não existem conjuntos que satisfazem: 3 S n 2, já que n 2 = 1. Minimizar z = 3x 12 + 4x 13 + 3x 21 + 5x 23 + 4x 31 + 5x 32 x 21 + x 31 = 1 x 12 + x 32 = 1 x 13 + x 23 = 1 sujeito a : x 12 + x 13 = 1 x 21 + x 23 = 1 x 31 + x 32 = 1 x ij {0, 1}, i = 1, 2, 3; j = 1, 2, 3; i j. (2) Thiago Queiroz (DM) Parte 3 2/2016 8 / 23
Problemas de Roteamento de Veículos Envolve o projeto de rotas de entrega/coleta de custo mínimo, partindo de um ou mais depósitos para um número de clientes, sujeito a restrições adicionais: Cada rota inicia e termina no depósito; Cada cliente pertence somente a uma rota; A demanda de uma rota não pode exceder a capacidade Q do veículo; Alguns casos: com janela de tempo: para cada cliente, o início do serviço deve estar dentro de uma janela de tempo para cada cliente; com múltiplos depósitos: considera que existem diferentes depósitos, mantendo as restrições anteriores. Thiago Queiroz (DM) Parte 3 2/2016 9 / 23
Problemas de Roteamento de Veículos Exemplo. Considere um grafo orientado completo G = (N, E), em que N = C {0, n + 1}, sendo C = {1,..., n} os clientes e os nós 0, n + 1 representam o depósito; O conjunto E = {(i, j) : i, j N, i j, i (n + 1), j 0}; Nenhum arco começa no nó (n+1) e nenhum arco termina no nó 0; Todas as rotas começam em 0 e terminam em (n+1). Um custo c ij está associado a cada arco (i, j) E; Cada cliente tem i demanda d i ; Um conjunto de K veículos idênticos, cada veículo k K com capacidade Q, está no depósito; Deseja-se minimizar o custo total de viagens, sujeito às restrições adicionais anteriores: rota inicia e termina no depósito; cada cliente está em uma única rota; a demanda de um rota deve respeitar Q; Thiago Queiroz (DM) Parte 3 2/2016 10 / 23
Problemas de Roteamento de Veículos (i) Definir { as variáveis de decisão: 1, se o veiculo k percorre o arco (i, j) x ijk = 0, caso contrario Para cada veículo k = 1,..., K e cada arco (i, j) E; (ii) A função objetivo busca minimizar o custo total das rotas; Minimizar z = k K (i,j) E c ijx ijk ; (iii) Existem restrições que dizem que cada cliente é designado a um único veículo; k K j N x ijk = 1, i = 1,..., C ; (iii) Existem restrições que dizem que a demanda total de cada rota do veículo k não exceda a capacidade Q do veículo; i C j N d ix ijk Q, k = 1,..., K ; Thiago Queiroz (DM) Parte 3 2/2016 11 / 23
Problemas de Roteamento de Veículos (iii) Existem restrições de fluxo em redes, que exigem que cada veículo k parta do depósito 0 somente uma vez, deixe o nó h se e somente se entrar neste nó, e retorne ao depósito (n + 1) somente uma vez; j N x 0jk = 1, k = 1,..., K ; i N x ihk j N x hjk = 0, h = 1,..., C, k = 1,..., K ; i N x i(n+1)k = 1, k = 1,..., K ; (iii) Existem restrições para eliminar as sub-rotas; i S j S x ijk S 1, S N, 2 S n 2, k = 1,..., K ; (iii) Existem restrições com relação ao domínio das variáveis; x ijk {0, 1}, (i, j) E; k = 1,..., K. Thiago Queiroz (DM) Parte 3 2/2016 12 / 23
Problemas de Roteamento de Veículos Minimizar z = c ij x ijk k K (i,j) E x ijk = 1, sujeito a : i = 1,..., C k K j N d i x ijk Q, k = 1,..., K i C j N x 0jk = 1, k = 1,..., K j N x ihk x hjk = 0, h = 1,..., C, k = 1,..., K i N j N x i(n+1)k = 1, k = 1,..., K i N x ijk S 1, S N, 2 S n 2, i S j S k = 1,..., K x ijk {0, 1}, (i, j) E; k = 1,..., K. (3) Thiago Queiroz (DM) Parte 3 2/2016 13 / 23
Problemas de Localização de Facilidades Envolve decisões de onde localizar uma facilidade (depósitos) e a designação de clientes a facilidades, otimizando custos; Alguns exemplos: P-medianas: envolve a localização de p facilidades e a designação de clientes a facilidades, de modo a minimizar a soma das distâncias de clientes a facilidades; P-centros: similar ao anterior, porém busca minimizar a distância máxima de clientes a facilidades; com capacidade limitada: associa-se uma capacidade a cada facilidade, de modo que ele deve ser respeitada ao atender as demandas dos clientes; com capacidade ilimitada: envolve a localização de facilidades e a designação de clientes a facilidades, de modo a minimizar o custo fixo de implantação de facilidades e o custo variável de antedimento das demandas dos clientes. Thiago Queiroz (DM) Parte 3 2/2016 14 / 23
Problemas de Localização de Facilidades Exemplo. Uma empresa está avaliando localidades para construir exatamente dois novos armazéns. O interesse é atender clientes a partir destes armazéns. A tabela abaixo apresenta os custos logísticos entre o armazém e o cliente (custo de enviar 1 tonelada de produtos em R$), bem como o custo para construir o armazém, que depende da localidade. Além disso, o custo total de construção e logístico deve ser mínimo. Também, deve-se respeitar a capacidade dos armazéns e as demandas dos clientes devem ser exatamente atendidas. Tabela: Localidade de clientes e armazéns. Op. Loc. Custo de Capacidade Custo logístico do Armazém Construção em ton. Cid. 1 Cid. 2 Cid. 3 Loc. 1 6000 750 3 6 5 Loc. 2 3000 450 5 2 4 Loc. 3 5500 500 5 7 6 Demanda 250 480 600 Thiago Queiroz (DM) Parte 3 2/2016 15 / 23
Resolução (i) Definir { as variáveis de decisão: 1, se o armazem vai ser localizado em j x j = 0, caso contrario y ji = quantidade de produtos enviados (em ton.) da localidade j para a cidade i; Para as localidades j = 1, 2, 3 e as cidades i = 1, 2, 3; (ii) A função objetivo busca minimizar o custo total de construção mais o logístico; Minimizar z = 3 j=1 const jx j + 3 3 j=1 i=1 clog jiy ji ; Minimizar z = [6000x 1 + 3000x 2 + 5500x 3 ] + [3y 11 + 6y 12 + 5y 13 + 5y 21 + 2y 22 + 4y 23 + 5y 31 + 7y 32 + 6y 33 ]; (iii) Existem restrições que as quantidades enviadas dos armazéns não podem exceder a respectiva capacidade do armazém; 3 i=1 y ji (cap j )x j, j = 1, 2, 3; Thiago Queiroz (DM) Parte 3 2/2016 16 / 23
Resolução... Localidade j=1: y 11 + y 12 + y 13 750x 1 ; Localidade j=2: y 21 + y 22 + y 23 450x 2 ; Localidade j=3: y 31 + y 32 + y 33 500x 3 ; (iii) Existem restrições que dizem que a demanda de cada cidade deve ser atendida; 3 j=1 y ji = d i, i = 1, 2, 3; Cidade i=1: y 11 + y 21 + y 31 = 250; Cidade i=2: y 12 + y 22 + y 32 = 480; Cidade i=3: y 13 + y 23 + y 33 = 600; (iii) Existe uma restrição que exatamente dois armazéns devem ser construídos; 3 j=1 x j = 2; Dois armazéns: x 1 + x 2 + x 3 = 2. Thiago Queiroz (DM) Parte 3 2/2016 17 / 23
Resolução... (iii) Existem restrições com relação ao domínio das variáveis; y ji 0, j = 1, 2, 3; i = 1, 2, 3; x j {0, 1}, j = 1, 2, 3. Minimizar z = [6000x 1 + 3000x 2 + 5500x 3 ] + [3y 11 + 6y 12 + 5y 13 + +5y 21 + 2y 22 + 4y 23 + 5y 31 + 7y 32 + 6y 33 ] y 11 + y 12 + y 13 750x 1 y 21 + y 22 + y 23 450x 2 y 31 + y 32 + y 33 600x 3 y sujeito a : 11 + y 21 + y 31 = 250 y 12 + y 22 + y 32 = 480 y 13 + y 23 + y 33 = 600 y ji 0, j = 1, 2, 3; i = 1, 2, 3 x j {0, 1}, j = 1, 2, 3. (4) Thiago Queiroz (DM) Parte 3 2/2016 18 / 23
Problemas de Programação da Produção Envolve a designação de tarefas (jobs) a máquinas, bem como a programação (scheduling) das tarefas em cada máquina, isto é, a sequência de processamento das tarefas e o instante de início e término do processamento de cada tarefa. Geralmente buscam otimizar fatores como: makespan, instante de término de processamento de todas as tarefas; atraso máximo; atraso total, etc.; Alguns exemplos: uma máquina: n tarefas devem ser processas em uma máquina. Deseja-se determinar o início e término de cada tarefa, otimizando algum fator; máquinas paralelas: podem ser idênticas, uniformes e não-relacionadas. Impõe que cada tarefa seja processada em apenas uma máquina, otimizando algum fator; job shop: envolve n tarefas que devem ser processadas em m máquinas, seguindo um roteiro pre-estabelecido; flow shop: similar ao job shop, porém as n tarefas têm o mesmo roteiro nas m máquinas. Thiago Queiroz (DM) Parte 3 2/2016 19 / 23
Outros Problemas de Programação Alguns exemplos: Programação de projetos: envolve encontrar um tempo de início para todas as atividades de forma a minimizar o makespan, ou maximizar a qualidade, etc.; Sistemas de reserva: um cliente deseja fazer uma reserva para um período de dias, e a agência tem de decidir se atende ou não a reserva. Pode ser vantajoso negar a reserva se existe um potencial cliente; Programação do quadro de horários: envolve determinar um quadro de horários que satisfaça requisitos como: não alocar uma sala para duas atividades no mesmo horários; preferência de professor por um dado horário; não ter duas aulas do mesmo assunto no dia, etc.; Programação em transportes: envolve a programação de veículos e da tripulação, de forma a designar veículos a viagens e tarefas a tripulação em cada viagem. Restrições envolvem atender a demanda dos passageiros, tempo de trabalho diário, tempo de descanso entre um período e outro, etc. Thiago Queiroz (DM) Parte 3 2/2016 20 / 23
Problemas de Programação da Produção Exemplo. Uma máquina é usada para processar duas tarefas. Os tempos de processamento, bem como os prazos de execução (em dias) estão na tabela abaixo. O tempo de início de cada tarefa são medidos a partir do zero. O objetivo é determinar a sequência que resulte na multa mínima por atraso para o processamento das duas tarefas. Além disso, duas tarefas não podem ser processadas concorrentemente. Tabela: Tempos de processamento. Tarefa T. Proc. Prazo de exec. Multa por atraso $/dia 1 10 22 31 2 13 17 21 Thiago Queiroz (DM) Parte 3 2/2016 21 / 23
Resolução... (i) Definir { as variáveis de decisão: 1, se i preceder j y ij = 0, caso contrario x j = data de início em dias para a tarefa j; Para as tarefas i, j = 1, 2. Seja M um valor muito grande; (iii) Existem restrições de que o tempo de processamento p de uma tarefa aconteça depois da outra terminar; x i x j + p j + My ij e x j x i + p i + M(1 y ij ), para todo par de tarefas (i, j); Tarefas A e B: x 1 x 2 + 13 + My 12 ; Tarefas A e B: x 2 x 1 + 10 + M(1 y 12 ); (iii) Existem restrições de que o prazo de execução d de uma tarefa seja cumprido, dado o atraso s R desta tarefa; s j s + j = d j (x j + p j ), para toda tarefa j Tarefa j=1: s 1 s+ 1 = 22 (x 1 + 10); Tarefa j=2: s 2 s+ 2 = 17 (x 2 + 13); Thiago Queiroz (DM) Parte 3 2/2016 22 / 23
Resolução... Note que o prazo de execução é cumprido quando s 0, ou seja, s j s + j 0, segue: s j s + j ; Se s < 0, aplica-se a multa por atraso, proporcional a s j s + j < 0, segue: s j < s + j ; (iii) Existem restrições com relação ao domínio das variáveis; x 1, x 2, s 1, s+ 1, s 2, s+ 2 0; y 12, y 21 {0, 1}. (ii) Função objetivo busca minimizar a multa por atraso, que é proporcional a s + j ; Minimizar z = 31s + 1 + 21s+ 2 ; Minimizar z = 31s + 1 + 21s+ 2 x 1 x 2 + 13 + My 12 x 2 x 1 + 10 + M(1 y 12 ) s sujeito a : 1 s+ 1 = 22 (x 1 + 10) s 2 s+ 2 = 17 (x 2 + 13) x 1, x 2, s 1, s+ 1, s 2, s+ 2 0 y 12, y 21 {0, 1}. (5) Thiago Queiroz (DM) Parte 3 2/2016 23 / 23