Lista de Exercícios I - Gabarito

Tamanho: px
Começar a partir da página:

Download "Lista de Exercícios I - Gabarito"

Transcrição

1 UNIVERSIDADE FEDERAL DO AMAZONAS INSTITUTO DE COMPUTAÇÃO Lista de Exercícios I - Gabarito ICC500 - Introdução à Otimização Combinatória PGINF566 - Otimização Combinatória Profa. Rosiane de Freitas Questão 1. Correlacione a coluna da esquerda com a da direita. (a) Programação linear (b) Variáveis de folga (c) Método gráfico (d) Simplex (e) Variáveis não-básicas (f) Folgas complementares (g) Programação inteira (h) CPLEX (i) Branch-and-bound (j) Métodos de corte (j) Adiciona restrições a um problema relaxado (d) Algoritmo para obter soluções de programação linear contínua (i) Enumera subproblemas e limites para um problema discreto (h) Software para solução de modelos de programação linear (c) Obtém soluções de programação linear com até duas variáveis (f) Solução do primal a partir do dual (b) Variáveis usadas em inequações das restrições (a) Problemas com variáveis contínuas (e) Variáveis com valor zero na solução ótima (g) Problemas com variáveis discretas Questão 2. Considere o cenário a seguir: Uma pequena cooperativa de artigos artesanais de Manaus deseja efetuar a distribuição de suas peças em cidades do estado do Amazonas. Para isso, contratou um regateiro, que deverá entregar os itens em um conjunto de localidades do interior. Para otimizar o processo, a empresa quer aproveitar o conhecimento do regateiro, a geografia amazônica e usar o setor de logística da empresa para determinar qual a rota que o regateiro deve fazer para minimizar os custos de deslocamento, sendo que, ao final, o regateiro permanecerá na última localidade visitada. E se, após as entregas, o mesmo retornar à sua cidade de origem? E se ele tivesse apenas uma localidade (p. ex., Anamã) para entregar os produtos? Analise os 3 problemas. A figura a seguir representa as ligações hidrográficas entre as cidades da região, considerando as distâncias fluviais entre as cidades. Manaus 44km Novo Airão Caapiranga 37km 41km 50km 19km 25km 45km 4km Anamã Iranduba 27km Manacapuru a) Descreva teoricamente cada um dos 3 problemas. A figura dada é um grafo não-direcionado, onde as cidades são os vértices e as arestas indicam as distâncias entre pares de cidades, quando há um caminho direto entre as duas cidades da aresta. Quando o regateiro precisa visitar todas as cidades, sem retornar à origem, tem-se que, no grafo, deve-se determinar um caminho hamiltoniano de custo (distância) mínimo. Determinar a existência de tal caminho é um problema NP-completo, e encontrar o menor caminho desse tipo é um problema NP-difícil. 1

2 Se o regateiro retornar a sua cidade de origem, tem-se que a viagem dele forma um ciclo hamiltoniano, que é um caminho hamiltoniano adicionado de uma aresta extra entre o ponto final e o inicial do caminho, o que fecha o ciclo. A determinação do ciclo hamiltoniano de custo mínimo é equivalente ao problema do caixeiro viajante, um clássico problema de otimização NP-difícil. Os problemas do caminho hamiltoniano mínimo e do caixeiro viajante são equivalentes, uma vez que, adicionando um vértice artificial adjacente a todos os outros e cuja distância é 0 a todos os outros, tem-se que o ciclo hamiltoniano obtido neste grafo aumentado é equivalente ao caminho hamiltoniano mínimo no grafo original, bastando remover o vértice artificial e as arestas incidentes ao mesmo do ciclo. A figura abaixo mostra como ficaria o grafo aumentado da figura do enunciado. Vértice artificial 0 0km 0km 0km 0km 0km 0km Novo Airão 37km Caapiranga Manaus 44km 41km 50km 19km 25km 45km 4km Anamã Iranduba 27km Manacapuru Por fim, se o regateiro precisar entregar em apenas uma cidade, sem retornar à origem, tem-se o problema do caminho mínimo, que, ao contrário dos anteriores, pertence à classe P, uma vez que possui algoritmos polinomiais conhecidos (algoritmos de Dijkstra, Bellman-Ford e Floyd-Warshall). b) Forneça o modelo matemático para os 3 problemas, fazendo as considerações que julgar necessárias. Primeiramente, será mostrado o modelo para o caixeiro viajante. O grafo de entrada deve ser completo, logo, se não existir aresta entre dois vértices, deve-se adicionar uma aresta artificial de custo muito alto (matematicamente, custo infinito) de forma que elas nunca façam parte do ciclo ótimo. As variáveis de decisão são: { 1, se a aresta (i, j) faz parte do ciclo x ij = 0, caso contrário. Como o grafo não é direcionado, a versão do problema do caixeiro viajante abordada é simétrica, ou seja, (i, j) = (j, i) e d ij = d ji. Assim, só existirão variáveis x ij quando j > i ( i, j V ). O modelo então é o seguinte: Minimizar d ij x ij (1) Sujeito a (i,j) E j V : (i,j) E i,j S : (i,j) E x ij + j V : (i,j) E x ji = 2 (i V ) (2) x ij S 1 ( S V ) (3) x ij {0, 1} ( i, j V j > i) (4) A função objetivo (1) envolve a minização da distância total percorrida no ciclo hamiltoniano. O conjunto de restrições (2) faz com que, para cada vértice, existam pelo menos duas arestas incidentes ao mesmo no ciclo (de 2

3 forma a fechar o ciclo). Já o conjunto de restrições (3) consiste nas restrições de eliminação de sub-rota, de forma que, para todo subconjunto S dos vértices, existam, no máximo S 1 arestas entre eles, o que impede que um ciclo seja formado apenas com os vértices de S. Por fim, as restrições (4) são de integralidade. Para o problema do caminho hamiltoniano mínimo, como mostrado anteriormente, deve-se encontrar um ciclo hamiltoniano mínimo no grafo adicionado de um vértice artificial adjacente a todos os outros e com distância zero. Sendo 0 o tal vértice, o modelo matemático fica como o anterior, fazendo as seguintes alterações: V = V {0}. E = E {(0, l) l V }. Que devem ser usadas no modelo: Minimizar d ij x ij (i,j) E Sujeito a x ij + x ji = 2 (i V ) (2) j V : (i,j) E j V : (i,j) E x ij S 1 ( S V ) (3) i,j S : (i,j) E x ij {0, 1} ( i, j V j > i) (4) Para o problema do caminho mínimo, a formulação também é ligeiramente parecida, observando-se as seguintes características: Não há eliminação de sub-rotas, uma vez que não exige que o caminho passe por todos os vértices uma vez só. Sendo s o vértice inicial e f o final do caminho, tem-se que o número de arestas incidentes a s deve ser exatamente 1, sendo o mesmo exigido para f. Para os outros vértices, a quantidade de arestas incidentes deve respeitar a propriedade de que a quantidade de arestas que entram no vértice deve ser igual a quantidade das que saem (conservação de fluxo). Pode-se observar que, para os vértices i V {s, f}, tal quantidade de arestas incidentes será 0 ou 2. A função objetivo e as variáveis de decisão são as mesmas do caixeiro viajante, no entanto, será considerado que, para cada par i, j V, existirá uma variável x ij indicando se o caminho contém a aresta (i, j), como feito anteriormente, também tomando proveito de o grafo poder ser completado com arestas artificiais. O modelo então é o seguinte: Minimizar d ij x ij (1) (i,j) E Sujeito a x si x js = 1 (2) i V j V x fi x jf = 1 (3) i V j V x ip x jp = 0 ( p V {s, f}) (4) i V j V x ij {0, 1} ( i, j V ) (5) A restrição (2) garante que haja apenas uma aresta incidente ao vértice de início. A restrição (3) garante a mesma coisa em relação ao vértice final. Já o conjunto de restrições (4) diz respeito à conservação de fluxo. Por fim, as restrições (5) são de integralidade. c) Quais os problemas clássicos associados a este cenário? Existe algoritmo eficiente (polinomial) para algum deles? Justifique. (1) 3

4 Como abordado na letra a), os problemas são: caminho hamiltoniano mínimo, caixeiro viajante e caminho mínimo entre dois vértices. Dentre eles, apenas o problema do caminho mínimo admite algoritmo polinomial (algoritmos de Dijkstra, Bellman-Ford e Floyd-Warshall). Questão 3. Uma pessoa, sentindo-se sempre muito cansada e com a pele pálida, procurou um médico e foi diagnosticada com anemia ferropriva. Para melhora do quadro, o médico informou que o paciente deveria ingerir uma quantidade mínima de ferro, necessário para produção de hemoglobina, uma metaloproteína utilizada para transporte de oxigênio no sangue, além de vitamina C, que aumenta a absorção do ferro ingerido. O paciente, então, procurou um nutricionista, que forneceu a ele informações sobre a quantidade de ferro e vitamina C em diversos alimentos. Após isso, o paciente procurou, em um supermercado local, os preços dos alimentos indicados. Considere que os dados resultantes 1 são dados na tabela a seguir. Açaí Carne de frango Leite Carne de boi Brócolis Necessidade Vitamina C 3mg 4mg 4mg 6mg 2mg 30mg Ferro 1mg 2mg 6mg 4mg 3mg 45mg Preço (R$) 5,00 7,00 4,00 8,00 1,00 a) Forneça o modelo matemático para o problema, fazendo as considerações que achar necessárias. Variáveis de decisão: x A : quantidade de açaí. x F : quantidade de carne de frango. x L : quantidade de leite. x C : quantidade de carne de boi. x B : quantidade de brócolis. Todas as variáveis maiores ou iguais a zero. Função objetivo: minimização do custo da alimentação, equivalente à soma dos custos por unidade de cada alimento multiplicado pela quantidade do mesmo: Restrições: Necessidade mínima de vitamina C: 30mg. Necessidade mínima de ferro: 45mg. O modelo fica, então, da seguinte forma: Minimizar z = 5x A + 7x F + 4x L + 8x C + x B 3x A + 4x F + 4x L + 6x C + 2x B 30 x A + 2x F + 6x L + 4x C + 3x B 45 Minimizar z = 5x A + 7x F + 4x L + 8x C + x B Sujeito a 3x A + 4x F + 4x L + 6x C + 2x B 30 x A + 2x F + 6x L + 4x C + 3x B 45 x A, x F, x L, x C, x B 0 b) Apresente o dual do modelo matemático. Para facilitar o entendimento do dual, as variáveis e restrições do mesmo serão denotadas do seguinte modo: 1 Não necessariamente realistas. 4

5 Variáveis de decisão: u C : variável dual relacionada à restrição de vitamina C no primal. u F : variável dual relacionada à restrição de ferro no primal. Restrições: Restrição associada à variável do açaí no primal: 3u C + u F 5 Restrição associada à variável da carne de frango no primal: Restrição associada à variável do leite no primal: 4u C + 2u F 7 4u C + 6u F 4 Restrição associada à variável da carne de boi no primal: 6u C + 4u F 8 Restrição associada à variável do brócolis no primal: O dual do modelo, então, fica da seguinte forma: 2u C + 3u F 1 Maximizar w = 30u C + 45u F Sujeito a 3u C + u F 5 4u C + 2u F 7 4u C + 6u F 4 6u C + 4u F 8 2u C + 3u F 1 u C, u F 0 c) Resolva o dual utilizando o método gráfico. Para cada reta definida pelas restrições no dual, deve-se descobrir dois pontos para que seja possível tracejar as mesmas: Restrição 1: 3u C + u F 5 reta 3u C + u F = 5. Para u C = 0: u F = 5 ponto (0, 5). Para u F = 0: 3u F = 5 u F = 5 3 = 1, 666 ponto ( 5 3, 0). Restrição 2: 4u C + 2u F 7 reta 4u C + 2u F = 7. Para u C = 0: 2u F = 7 u F = 7 2 = 3, 5 ponto (0, 7 2 ). Para u F = 0: 4u C = 7 u C = 7 4 = 1, 75 ponto ( 7 4, 0). Restrição 3: 4u C + 6u F 4 reta 4u C + 6u F = 4. Para u C = 0: 6u F = 4 u F = 4 6 = 0, 666 ponto (0, 4 6 ). Para u F = 0: 4u C = 4 u C = 1 ponto (1, 0). Restrição 4: 6u C + 4u F 8 reta 6u C + 4u F = 8. Para u C = 0: 4u F = 8 u F = 2 ponto (0, 2). Para u F = 0: 6u C = 8 u C = 8 6 = 1, 333 ponto ( 8 6, 0). 5

6 Restrição 5: 2u C + 3u F 1 reta 2u C + 3u F = 1. Para u C = 0: 3u F = 1 u F = 1 3 = 0, 333 ponto (0, 1 3 ). Para u F = 0: 2u C = 1 u C = 1 2 = 0, 5 ponto ( 1 2, 0). O gráfico então é desenhado como na figura a seguir Restrição 1-3u C + u F 5 Restrição 2-4u C + 2u F 7 Restrição 3-4u C + 6u F 6 Restrição 4-6u C + 4u F 8 Restrição 5-2u C + 3u F 1 Região factível uf A O B 0 0,5 1 1,5 2 u C Observe que, apesar da quantidade de restrições, a região factível é determinada apenas pela intersecção da reta da restrição 5 com os eixos de u C e u F - todos os coeficientes das restrições são positivos e são inequações de menor ou igual, logo, a região factível correspondente à cada restrição está à esquerda e abaixo da reta (lembrando que isto não é geral!). Para facilitar a visualização da região factível, a figura a seguir mostra o gráfico em uma escala diferente. 1 0,8 0,6 Restrição 1-3u C + u F 5 Restrição 2-4u C + 2u F 7 Restrição 3-4u C + 6u F 6 Restrição 4-6u C + 4u F 8 Restrição 5-2u C + 3u F 1 Região factível uf 0,4 A 0,2 0 O B 0 0,5 1 1,5 2 u C Deve-se então analisar os pontos extremos (vértices) da região factível, denotados no gráfico por O, A e B. Ponto O: origem (O = (0, 0)). Aplicando na função objetivo: z = (30 0) + (45 0) z = 0. Ponto A: intersecção do eixo de u F (ou seja, u C = 0) e a reta da restrição 5. Este ponto foi calculado anteriormente para traçar a reta da restrição 5 A = (0, 1 3 ). Aplicando na função objetivo: z = (30 0) + ( ) z = 45 3 = 15. Ponto B: intersecção do eixo de u C (ou seja, u F = 0) e a reta da restrição 5. Este ponto foi calculado anteriormente para traçar a reta da restrição 5 B = (0, 1 2 ). 6

7 Aplicando na função objetivo: z = ( ) + (45 0) z = 30 2 = 15. Ambos os pontos A = (0, 1 3 ) e B = (0, 1 2 ) possuem o mesmo valor de função objetivo, que é o máximo possível. Assim, qualquer um dos dois é solução ótima do problema dual, com z = 15. d) Resolva o primal utilizando o algoritmo simplex. O modelo primal, fornecido na letra a), tem a seguinte forma: Minimizar z = 5x A + 7x F + 4x L + 8x C + x B Sujeito a 3x A + 4x F + 4x L + 6x C + 2x B 30 x A + 2x F + 6x L + 4x C + 3x B 45 x A, x F, x L, x C, x B 0 Para utilização do método simplex, deve-se colocar o problema no formato padrão. Cada restrição é uma desigualdade do tipo, portanto, serão adicionadas variáveis de folga com coeficiente -1 para transformá-las em igualdades (caso fossem, os coeficientes seriam 1). Minimizar z = 5x A + 7x F + 4x L + 8x C + x B + 0s 1 + 0s 2 Sujeito a 3x A + 4x F + 4x L + 6x C + 2x B s 1 + 0s 2 = 30 x A + 2x F + 6x L + 4x C + 3x B + 0s 1 s 2 = 45 x A, x F, x L, x C, x B, s 1, s 2 0 Outra característica a ser verificada é que, quando temos um problema de maximização, os coeficientes das variáveis na função objetivo devem entrar no quadro simplex com o sinal trocado. No caso do problema desta questão, o problema é de minimização. Minimizar z é equivalente ao oposto da maximização de z. Portanto, pode-se transformar a minimização na maximização da função objetivo com os coeficientes multiplicados por -1. Porém, como estamos maximizando z e não z, o valor ótimo da função objetivo do problema de maximização deverá ser multiplicado por 1 para obtermos o mínimo de z. O problema a ser considerado então será: Maximizar z = 5x A 7x F 4x L 8x C x B + 0s 1 + 0s 2 Sujeito a 3x A + 4x F + 4x L + 6x C + 2x B s 1 + 0s 2 = 30 x A + 2x F + 6x L + 4x C + 3x B + 0s 1 s 2 = 45 x A, x F, x L, x C, x B, s 1, s 2 0 O quadro simplex inicial para este problema, considerando as variáveis de folga como a base inicial (uma vez que as colunas das mesmas são linearmente independentes) seria: Linha (L) BASE x A x F x L x C x B s 1 s 2 b 1 a a z Olhando os custos reduzidos iniciais (ou seja, os coeficientes da função objetivo), verifica-se que todos são maiores ou iguais a zero, o que faz parecer que a solução inicial com s 1 = 30, s 2 = 45 e x A = x F = x L = x C = x B = 0, com z = 0, é ótima. Porém, essa leitura do quadro é incorreta, como mostrado a seguir. Como x A = x F = x L = x C = x B = 0, tem-se, pela restrição 1: 3x A + 4x F + 4x L + 6x C + 2x B s 1 + 0s 2 = s = 30 s 1 = 30 Porém, tem-se que todas as variáveis do problema são maiores ou iguais a zero, logo, não é possível trabalhar com este quadro. A leitura incorreta se deve ao fato de que a base utilizada tem valores negativos e não é canônica - 7

8 para que o valor da variável seja diretamente o valor na mesma linha da variável e na coluna b, a base utilizada deve ser canônica. O mesmo acontece com a linha 2 da restrição 2, que fornece s 2 = 45. Para resolver isso, serão usadas variáveis artificiais com o método do big-m, que envolve a adição de novas variáveis (uma por restrição que necessite de uma variável com coeficiente 1 para formar a base canônica) com custos muito ruins (denotado por um número M muito grande), de forma que elas saiam o mais depressa possível da base e não entrem mais. Se a solução final do problema contiver pelo menos uma delas, o problema original é infactível, caso contrário, é solução ótima do problema original. Se as variáveis artificiais forem colocadas no problema original de minimização, tem-se que os custos delas na função objetivo tem de ser muito altos (ou seja, +M), pois se deseja-se minimizar o valor, elas estão penalizando fortemente se tiverem valor acima de 0. Como as duas restrições precisam de variáveis com coeficiente 1 para formar a base canônica, tem-se que serão usadas duas variáveis artificiais, deixando o problema da seguinte forma: Minimizar z = 5x A + 7x F + 4x L + 8x C + x B + 0s 1 + 0s 2 + Ma 1 + Ma 2 Sujeito a 3x A + 4x F + 4x L + 6x C + 2x B s 1 + 0s 2 + a 1 + 0a 2 = 30 x A + 2x F + 6x L + 4x C + 3x B + 0s 1 s 2 + 0a 1 + a 2 = 45 x A, x F, x L, x C, x B, s 1, s 2, a 1, a 2 0 No problema modificado para maximização, as variáveis artificiais devem ter custos muito baixos (ou seja, M), pois também devem penalizar o valor máximo para que saiam da base depressa, deixando o problema da seguinte forma (que equivale a modificar diretamente o problema de minimização com as variáveis artificiais dado acima): Maximizar z = 5x A 7x F 4x L 8x C x B + 0s 1 + 0s 2 Ma 1 Ma 2 Sujeito a 3x A + 4x F + 4x L + 6x C + 2x B s 1 + 0s 2 + a 1 + 0a 2 = 30 x A + 2x F + 6x L + 4x C + 3x B + 0s 1 s 2 + 0a 1 + a 2 = 45 x A, x F, x L, x C, x B, s 1, s 2, a 1, a 2 0 O quadro inicial para o problema então, usando as variáveis artificiais como base, é: Linha (L) BASE x A x F x L x C x B s 1 s 2 a 1 a 2 b 1 a a z M M 0 Antes de aplicar o simplex propriamente dito, deve-se consertar o valor da função objetivo. Tem-se que z = 0, porém, ao aplicar a 1 = 30 e a 2 = 45, com todas as outras variáveis como zero, tem-se que: z = M 45M z = 75M Para solucionar essa inconsistência, deve-se transformar os custos reduzidos das variáveis artificiais em zero, ou seja, na linha 3 (do z), deve-se efetuar operações entre linhas de forma que o valor nas colunas de a 1 e a 2 passem a ser zero. Isso pode ser feito efetuando a seguinte operação: L 3 = L 3 ML 1 ML 2 Que deixa o quadro da seguinte forma: Linha (L) BASE x A x F x L x C x B s 1 s 2 a 1 a 2 b 1 a a z 5 4M 7 6M 4 10M 8 10M 1 5M M M M Considerando M = 20 (que dá um custo pior que o das outras variáveis), o quadro fica: 8

9 Linha (L) BASE x A x F x L x C x B s 1 s 2 a 1 a 2 b 1 a a z Agora, pode-se aplicar o método simplex normalmente. A variável de menor custo reduzido (negativo) é x L, portanto, ela entrará na base. Para determinar quem sairá da base, deve-se calcular os quocientes entre o elemento da coluna b na linha de uma variável básica e o elemento da coluna na variável que entrará na base na mesma linha, sendo que quem sai da base é a variável cujo quociente é o menor. Para a 1 : 30 6 = 15. Para a 2 : 45 3 = 15. Ambas as variáveis possuem o mesmo quociente, logo, será escolhida a de menor índice (a 1 ). O pivô então será a intersecção da linha da variável que sairá com a coluna da variável que entrará, ou seja, 4. Na coluna da variável entrante, o pivô deve ser transformado em 1 e todos outros elementos da coluna em zero. Para isso, serão aplicadas as seguintes operações entre linhas: L nova 1 = 1 4 L 1. L nova 2 = L 2 6L nova 1. L nova 3 = L L nova 1. O próximo quadro, então, será: Linha (L) BASE x A x F x L x C x B s 1 s 2 a 1 a 2 b 1 x L 0, , 5 0, 5 0, , , 5 2 a 2 3, , 5 1 1, z A variável de menor custo reduzido (negativo) é s 1, portanto, ela entrará na base. Os quocientes para verificação de quem sairá da base são: Para x L : 7, 5 = 30 (negativo, não sairá da base). 0, 25 Para a 2 : 0 1, 5 = 0. Tem-se que a variável a sair da base é a 2. O pivô então será 1, 5 e, na coluna de s 1 (que entrará na base), para transformar o pivô em 1 e os outros elementos da coluna em zero, serão feitas as seguintes operações: L nova 2 = 1 1, 5 L 2. L nova 1 = L Lnova 2. L nova 3 = L L nova 2. O próximo quadro, então, será: Linha (L) BASE x A x F x L x C x B s 1 s 2 a 1 a 2 b 1 x L 0, 166 0, , 666 0, 5 0 0, 166 0, 5 0, 166 7, 5 2 s 1 2, 333 2, , , , z 4, 333 5, , , ,

10 A variável de menor custo reduzido (negativo) é x B, portanto, ela entrará na base. Os quocientes para verificação de quem sairá da base são: Para x L : 7, 5 0, 5 = 15 Para s 1 : 0 0 = indeterminado (não sairá da base). Tem-se que a variável a sair da base é x L. O pivô então será 1. Na coluna de x B (que entrará na base), para transformar os outros elementos da coluna em zero, serão feitas as seguintes operações: L nova 1 = 2L 1. L nova 2 = L 2. L nova 3 = L 3 + L nova 1. O próximo quadro, então, será: Linha (L) BASE x A x F x L x C x B s 1 s 2 a 1 a 2 b 1 x B 0, 333 0, , , , s 1 2, 333 2, , , , z 4, 666 6, , , Todos os custos reduzidos são maiores ou iguais a zero, e não há variáveis artificiais na base, logo, este quadro define a solução ótima para o problema, com x B = 15, todas as outras variáveis como 0 e z = 15 z = 15. Observe que o valor da função objetivo é o mesmo da calculada para o dual no item anterior. e) Utilizando o teorema das folgas complementares, mostre que, partindo da solução dual do item c), pode-se obter a solução primal do item d). A solução dual do item c) foi u C = 0 e u F = 0, 333 OU u C = 0, 5 e u F = 0, ambos com w = 15. Pelo teorema das folgas complementares, tem-se: u(ax b) = 0 { 0 = 0 0, 333x A + 0, 666x F + 2x L + 1, 333x C + x B 15) = 0 Para determinar quais variáveis tem valor zero, utiliza-se a outra equação do teorema das folgas complementares: (c ua)x = 0 (5 3u C u F )x A = 0 (7 4u C 2u F )x F = 0 (4 4u C 6u F )x L = 0 (8 6u C 4u F )x C = 0 (1 2u C 3u F )x B = 0 4, 666x A = 0 x A = 0 6, 333x F = 0 x B = 0 2x L = 0 x L = 0 6, 666x C = 0 x C = 0 0x B = 0 x B =? Tem-se então que todas as variáveis, exceto x B, são zero. Aplicando no sistema obtido anteriormente: { 0 = 0 0, 333x A + 0, 666x F + 2x L + 1, 333x C + x B 15) = 0 Que é a mesma solução do primal obtida pelo simplex. x B 15 = 0 x B = 15 10

11 Questão 4. Considere o seguinte problema de programação inteira: Maximizar z = 5x 1 + x 2 (1) Sujeito a x 1 + 2x 2 4 (2) x 1 x 2 1 (3) 4x 1 + x 2 12 (4) x 1, x 2 0 (5) x 1, x 2 Z (6) a) Removendo a restrição (6), que exige que as variáveis sejam inteiras, tem-se um problema de programação linear contínua. Resolva o problema sem tal restrição. Tal problema possui apenas duas restrições, logo, pode ser resolvido pelo método gráfico, como visto a seguir. Para cada reta definida pelas restrições, deve-se descobrir dois pontos para que seja possível tracejar as mesmas: Restrição 1: x 1 + 2x 2 4 reta x 1 + 2x 2 = 4. Para x 1 = 0: 2x 2 = 4 x 2 = 2 ponto (0, 2). Para x 2 = 0: x 1 = 4 x 1 = 4 ponto ( 4, 0). Restrição 2: x 1 x 2 1 reta x 1 x 2 = 1. Para x 1 = 0: x 2 = 1 x 2 = 1 ponto (0, 1). Para x 2 = 0: x 1 = 1 ponto (1, 0). Restrição 3: 4x 1 + x 2 12 reta 4x 1 + x 2 = 12. Para x 1 = 0: x 2 = 12 ponto (0, 12). Para x 2 = 0: 4x 1 = 12 x 1 = 3 ponto (3, 0). O gráfico então é desenhado como na figura a seguir. 4 3 Restrição 1: -x 1 + 2x 2 4 Restrição 2: x 1 - x 2 1 Restrição 3: 4x 1 + x 2 12 Região factível C x2 2 A D 1 0 O B x 1 Deve-se então analisar os pontos extremos (vértices) da região factível, denotados no gráfico por O, A, B, C e D. Ponto O: origem (O = (0, 0)). Aplicando na função objetivo: z = (5 0) + 0 z = 0. 11

12 Ponto A: intersecção do eixo de x 2 (ou seja, x 1 = 0) e a reta da restrição 1. Este ponto foi calculado anteriormente para traçar a reta da restrição 1 A = (0, 2). Aplicando na função objetivo: z = (5 0) + 2 z = 2. Ponto B: intersecção do eixo de x 1 (ou seja, x 2 = 0) e a reta da restrição 2. Este ponto foi calculado anteriormente para traçar a reta da restrição 2 B = (1, 0). Aplicando na função objetivo: z = (5 1) + 0 z = 5. Ponto C: intersecção da reta da restrição 1 e a reta da restrição 3. Para determinar este ponto, deve-se resolver o sistema composto das equações das retas das restrições: { x1 + 2x 2 = 4 4x 1 + x 2 = 12 Cuja solução é x 1 = 20 9 = 2, 222 e x 2 = 28 9 = 3, 111. Aplicando na função objetivo: z = ( ) z = = 14, 222. Ponto D: intersecção da reta da restrição 2 e a reta da restrição 3. Para determinar este ponto, deve-se resolver o sistema composto das equações das retas das restrições: { x1 x 2 = 1 4x 1 + x 2 = 12 Cuja solução é x 1 = 13 5 = 2, 166 e x 2 = 8 5 = 1, 6. Aplicando na função objetivo: z = ( ) z = 73 5 = 14, 6. Como o problema é de maximização, a solução ótima é o ponto cujo valor da função objetivo é o maior dentre todos. Assim, tem-se que a solução ótima da relaxação linear é x 1 = 13 5 = 2, 166 e x 2 = 8 5 = 1, 6, com z = 73 5 = 14, 6. b) A partir da solução obtida no item b) anterior, aplique arredondamento e truncamento na mesma para obter soluções inteiras. As mesmas são factíveis? Solução obtida por arredondamento: x A 1 = 2, 166 xa 1 = 3. x A 1 = 1, 6 xa 1 = 2. Testando factibilidade: x A 1 + 2xA (2 2) OK. x A 1 xa OK. 4x A 1 + 2xA 2 12 (4 3) + (2 2) infactível. Solução obtida por truncamento: x T 1 = 2, 166 xa 1 = 2. x T 1 = 1, 6 xa 1 = 1. Testando factibilidade: x T 1 + 2xT (2 1) OK. x T 1 xt OK. 4x T 1 + 2xT 2 12 (4 2) + (2 1) OK. c) Mostre, graficamente, as soluções (pontos) que satisfazem todas as restrições do problema original (variáveis inteiras), identificando as soluções calculadas no item b). Na figura abaixo, os pontos inteiros da região factível são denotados por I k. A solução obtida por arredondamento é denotada por A e a obtida por truncamento é denotada por T. 12

13 4 3 Restrição 1: -x 1 + 2x 2 4 Restrição 2: x 1 - x 2 1 Restrição 3: 4x 1 + x 2 12 Região factível I 9 x2 2 I 3 I 6 I 8 A 1 I 2 I 5 I 7 = T 0 I 1 I x 1 Os pontos inteiros da região factível são: I 1 = (0, 0). I 2 = (0, 1). I 3 = (0, 2). I 4 = (1, 0). I 5 = (1, 1). I 6 = (1, 2). I 7 = (2, 1). I 8 = (2, 2). I 9 = (2, 3). As duas soluções obtidas por arredondamento e truncamento: A = (3, 2). T = I 7 = (2, 1). d) Determine a solução ótima do problema original usando o método branch-and-bound. Resposta: Primeiramente, observe o critério que será usado na seleção de subproblemas: subproblemas encontrados anteriormente serão resolvidos antes dos posteriores (ou seja, a cada ramificação, é resolvido cada subproblema e depois os subproblemas dos subproblemas). Este critério é semelhante ao algoritmo de busca em largura em grafos e será usado também em outras questões de branch-and-bound deste gabarito para melhor visualização da árvore de enumeração. Considere que o índice de cada subproblema P i indica a ordem de resolução de mesmo. 13

14 P 0 : Problema original relaxado: Maximizar z = 5x 1 + x 2 x 1 + 2x 2 4 x 1 x 2 1 4x 1 + x x 1, x 2 0 Solução de P 0 : x 1 = 2, 6 x 2 = 1, 6 z = 14, 6 Ramificação na variável x 1 : P 1 terá a restrição x 1 3 e P 2 terá x 2 2. P 1 : Problema P 0 com restrição adicional x 1 3: Maximizar z = 5x 1 + x 2 x 1 + 2x 2 4 x 1 x 2 1 4x 1 + x 2 12 x x 1, x 2 0 Solução de P 1 : Infactível Nó podado. P 2 : Problema P 0 com restrição adicional x 1 2: Maximizar z = 5x 1 + x 2 x 1 + 2x 2 4 x 1 x 2 1 4x 1 + x 2 12 x x 1, x 2 0 Solução de P 2 : x 1 = 2 x 2 = 3 z = 13 Primeira solução incumbente (inteira): limite inferior passa a ser 13. Como não há mais ramificações, esta é a única incumbente gerada por este branch-andbound. P 0 x 1 = 2,6 x 2 = 1,6 z = 14,6 4 3 Restrição 1: -x1 + 2x2 4 Restrição 2: x1 - x2 1 Restrição 3: 4x1 + x2 12 Ótimo inteiro x 1 2 x 1 3 Ótimo da relaxação x 1 3 x 1 2 P 1 P 2 x2 2 P 1 Infactível x 1 = 2 x 2 = 3 z = 3 1 P 2 Incumbente Solução ótima P 0 4 x1 Questão 5. Para o problema abaixo, responda o que se pede. Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 1, x 2, x 3, x 4 {0, 1} 14

15 a) Qual o problema clássico associado? Existe algoritmo eficiente (polinomial) para o mesmo, apesar de ser modelado como PI? Justifique. Resposta: O problema clássico é o da mochila 0/1. A função objetivo consiste em maximizar o lucro dos itens colocados na mochila. A restrição do problema diz que o peso dos itens (os coeficientes das variáveis na restrição) colocados na mochila não deve ultrapassar a capacidade da mesma (no problema dado, pode-se verificar que a capacidade é 7). A mochila 0/1 é um problema clássico de otimização NP-difícil, logo, não é conhecido nenhum algoritmo polinomial para o mesmo. No entanto, o problema admite algoritmo pseudopolinomial (ou seja, polinomial no número de itens da entrada, mas exponencial nos valores numéricos da mesma) de tempo O(nC) (onde n é o número de itens e C é a capacidade da mochila) utilizando programação dinâmica. b) Resolva o modelo utilizando o método branch-and-bound. Dica: não é necessário usar o simplex, pois cada variável só pode assumir um entre dois valores (0 ou 1). Resposta: Pode-se verificar, pelo modelo dado e pela formulação genérica do problema, que tem-se 4 itens a serem colocados em uma mochila de capacidade 7. Os lucros e pesos dos itens são resumidos na tabela abaixo: Item (i) Lucro (l i ) Peso (p i ) A relaxação linear do problema da mochila 0/1 é o problema da mochila fracionária, para o qual existe um algoritmo guloso eficiente para resolver a relaxação de forma ótima. Portanto, tal algoritmo será usado no lugar do simplex para computar os limites superiores. O algoritmo para o problema da mochila fracionária requer o cálculo das densidades dos itens. A densidade de um item i, denotada por d i é dada pela divisão de seu lucro pelo seu peso, isto é, d i = l i p i. A seguinte tabela completa a anterior com as densidades de cada item: Item (i) Lucro (l i ) Peso (p i ) Densidade (d i ) , , , O método consiste, então, em procurar o item de maior densidade e o inserir na mochila, diminuindo o valor da capacidade C de acordo com o peso do item inserido. Repete-se esta operação para o resto dos itens até que o item de maior densidade não caiba inteiro na mochila. Nesse caso, coloca-se a maior parte possível do item para preencher a capacidade da mochila. Abaixo tem-se o pseudocódigo desse algoritmo. Require: conjunto I de itens, onde o item i tem lucro l i e peso p i ; capacidade C da mochila. 1: function Guloso-MochilaFracionaria(I, l, p, C) 2: itensm ochila 3: C restante 0 4: lucro 0 5: I I Conjunto de itens fora da mochila 15

16 6: for cada i I do 7: d i l i p i Cálculo das densidades 8: end for 9: while C restante > 0 do 10: i max 1 11: for cada i I do determinação do item de maior densidade em I 12: if d i > d imax then 13: i max i 14: end if 15: end for 16: if p i < C restante then 17: itensmochila itensmochila {i max } 18: C restante = C restante p imax 19: lucro lucro + l imax 20: else 21: fracaoitem C restante p imax 22: itensmochila itensmochila {fracaoitem i max } coloca apenas uma porção do item na mochila 23: C restante = C restante (fracaoitem p imax ) 24: lucro lucro + (fracaoitem l imax ) 25: end if 26: end while 27: return itensm ochila e lucro 28: end function É importante ressaltar que também pode-se usar o simplex e resolver a relaxação linear do modelo matemático ao invés desse algoritmo. Para a determinação de um limite inferior inicial (ao invés de iniciar com LI = ), pode-se usar uma heurística gulosa para a mochila 0/1, o que pode levar a podas mais cedo no algoritmo e, consequentemente, a uma economia de tempo na enumeração. A heurística é similar ao algoritmo anterior e consiste em inserir na mochila o item de maior densidade dentre os que ainda caibam nela (ou seja, não há a possibilidade de inserir somente a parte de um item na mochila). O algoritmo fica como se segue. Require: conjunto I de itens, onde o item i tem lucro l i e peso p i ; capacidade C da mochila. 1: function Guloso-Mochila0/1(I, l, p, C) 2: itensm ochila 3: C restante 0 4: lucro 0 5: I I Conjunto de itens fora da mochila 6: parar falso Utilizado para determinar se nenhum item restante cabe na mochila 7: for cada i I do 8: d i l i Cálculo das densidades p i 9: end for 10: while parar = falso do 11: i max 1 12: parar verdadeiro 13: for cada i I do determinação do item de maior densidade em I que ainda caiba 14: if p i < C restante then 15: parar falso 16: if d i > d imax then 17: i max i 18: end if 16

17 19: end if 20: end for 21: if parar = falso then 22: itensmochila itensmochila {i max } 23: C restante = C restante p imax 24: lucro lucro + l imax 25: end if 26: end while 27: return itensm ochila e lucro 28: end function Os algoritmos serão aplicados agora para determinação dos limites. Inicialmente será calculado o limite superior: Iteração #0: capacidade restante 7, itens na mochila =, lucro = 0. O item de maior densidade é 1, logo, ele entrará na mochila. Iteração #1: capacidade restante 2, itens na mochila = {1}, lucro = 9. O item de maior densidade é 2, logo, ele entrará na mochila. Como ele não cabe inteiro, será colocado C restante mochila. p 2 = 2 4 = 0, 5 do item na A solução para o problema relaxado, então, consiste no item 1 inteiro e 0, 5 do item 2, com lucro de 12,5. Equivalentemente, x 1 = 1; x 2 = 0, 5; x 3 = x 4 = 0. O limite superior então é 12,5. Agora, a determinação do limite inferior inicial: Iteração #0: capacidade restante 7, itens na mochila =, lucro = 0. O item de maior densidade que cabe na mochila é 1, logo, ele entrará na mochila. Iteração #1: capacidade restante 2, itens na mochila = {1}, lucro = 9. O item de maior densidade que cabe na mochila é 4, logo, ele entrará na mochila. Nenhum outro item cabe na mochila. A solução obtida pela heurística, então, consiste nos itens 1 e 4 na mochila com lucro de 11. Equivalentemente, x 1 = 1; x 2 = x 3 = 0; x 4 = 1. O limite inferior então é 11. A partir desses dados, o branch-and-bound será aplicado. P 0 : Problema original relaxado: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x x 1, x 2, x 3, x 4 1 P 1 : Problema P 0 com restrição adicional x 2 = 0: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 2 = 0 0 x 1, x 2, x 3, x 4 1 Solução de P 0 : x 1 = 1 x 2 = 0, 5 z = 12, 5 Ramificação na variável x 2 : P 1 terá a restrição x 2 = 0 e P 2 terá x 2 = 1. Solução de P 1 : x 1 = 1 x 3 = 0, 6667 z = 12, 3333 Ramificação na variável x 3 : P 3 terá a restrição x 3 = 0 e P 4 terá x 3 = 0. 17

18 P 2 : Problema P 0 com restrição adicional x 2 = 1: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 2 = 1 0 x 1, x 2, x 3, x 4 1 P 3 : Problema P 1 com restrição adicional x 3 = 0: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 2 = 0 x 3 = 0 0 x 1, x 2, x 3, x 4 1 P 4 : Problema P 1 com restrição adicional x 3 = 1: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 2 = 0 x 3 = 1 0 x 1, x 2, x 3, x 4 1 P 5 : Problema P 2 com restrição adicional x 1 = 0: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 2 = 1 x 1 = 0 0 x 1, x 2, x 3, x 4 1 P 6 : Problema P 2 com restrição adicional x 1 = 1: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 2 = 1 x 1 = 1 0 x 1, x 2, x 3, x 4 1 Solução de P 2 : x 1 = 0, 6 x 2 = 1 z = 12, 4 Ramificação na variável x 1 : P 5 terá a restrição x 1 = 0 e P 6 terá x 1 = 0. Solução de P 3 : x 1 = 1 x 4 = 1 z = 11 Solução incumbente: valor igual ao limite inferior. Observe que essa solução obtida é a mesma da heurística. Solução de P 4 : x 1 = 0, 8 x 3 = 1 z = 12, 2 Ramificação na variável x 1 : P 7 terá a restrição x 1 = 0 e P 8 terá x 1 = 1. Solução de P 5 : x 2 = 1 x 3 = 1 z = 12 Solução incumbente (inteira): valor de z é maior que o limite inferior. Assim, essa passa a ser a nova melhor solução e o novo limite inferior é 12. Solução de P 6 : Infactível Nó podado. 18

19 P 7 : Problema P 4 com restrição adicional x 1 = 0: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 2 = 0 x 3 = 1 x 1 = 0 0 x 1, x 2, x 3, x 4 1 Solução de P 7 : x 3 = 1 x 4 = 1 z = 7 Solução incumbente (inteira): valor de z é menor que o limite inferior. O limite inferior não é alterado. P 8 : Problema P 4 com restrição adicional x 1 = 1: Maximizar z = 9x 1 + 7x 2 + 5x 3 + 2x 4 5x 1 + 4x 2 + 3x 3 + 2x 4 7 x 2 = 0 x 3 = 1 x 1 = 1 0 x 1, x 2, x 3, x 4 1 Solução de P 8 : Infactível Nó podado. A solução ótima, então, consiste em adicionar os itens 2 e 3 na mochila. P 3 x 1 = 1 x 4 = 1 z = 11 Incumbente P 7 x 3 = 1 x 4 = 1 z = 7 Incumbente P 0 x 2 = 0 x 2 = 1 P 1 P 2 x 1 = 1 x 3 = 0,667 z = 12,333 x 3 = 0 x 3 = 1 P 4 x 1 = 0,8 x 3 = 1 z = 12,2 x 1 = 0 x 3 = 1 x 1 = 1 x 2 = 0,5 z = 12,5 P 8 Infactível x 1 = 0,6 x 2 = 1 z = 12,4 x 1 = 0 x 1 = 1 P 5 P 6 x 2 = 1 x 3 = 1 z = 12 Incumbente Solução ótima Infactível Solução ótima: x 1 = 0, x 2 = 1, x 3 = 1, x 4 = 1, z = 12. Questão 6. Considere o seguinte problema de programação inteira: Maximizar z = x 1 + x 2 3x 1 + 2x 2 6 3x 1 + 2x 2 0 x 1, x 2 Z 19

20 O quadro ótimo obtido após a aplicação do algoritmo simplex em sua relaxação linear (onde x 3 e x 4 são as variáveis de folga associadas a primeira e segunda restrições, respectivamente) é dado por: BASE x 1 x 2 x 3 x 4 b x /6-1/6 1 x /4 1/4 3/2 z 0 0 5/12 1/12 5/2 Qual o corte de Gomory associado a este quadro? Expresse este corte em termos das variáveis originais do problema. Reotimize e expresse o novo corte de Gomory, se houver. Resposta: A forma padrão do problema é dada a seguir: Maximizar z = x 1 + x 2 3x 1 + 2x 2 + x 3 = 6 3x 1 + 2x 2 + x 4 = 0 x 1, x 2, x 3, x 4 Z De acordo com o quadro, a variável x 2 tem valor 3 2 variável básica. Tal linha define a seguinte restrição: = 1, 5. Logo, o corte será formulado em torno da linha desta x x x 4 = 3 2 Equivalentemente, da forma vista em sala de aula, temos que o valor variável x 2 é dado por (onde N é o conjunto de variáveis não-básicas): x 2 = b 2 j N a 2j x j x 2 = x x 4 Separando a equação em partes inteiras e fracionárias (onde todas as partes fracionárias são positivas ou 0): ( 1 x 2 = (1 0x 3 0x 4 ) x 3 1 ) 4 x 4 Como a parte fracionária é estritamente menor que 1, para que ela seja inteira, a mesma deve ser menor ou igual a zero. Assim, temos o corte: x x x x x x 4 + x 5 = 1 2 Teremos então o seguinte problema cuja relaxação linear contínua será resolvida pelo simplex: O quadro ótimo do novo problema é dado abaixo: Maximizar z = x 1 + x 2 3x 1 + 2x 2 + x 3 = 6 3x 1 + 2x 2 + x 4 = x x 4 + x 5 = 1 2 x 1, x 2, x 3, x 4, x 5 Z BASE x 1 x 2 x 3 x 4 x 5 b x /3 0-2/3 4/3 x x z 0 0 1/3 0 1/3 7/3 20

21 Tal solução continua sem ser inteira. A variável x 1 tem valor fracionário, logo, o corte será obtido na linha de tal variável. A linha de x 1 define a seguinte equação: x x x 5 = 4 x 1 = ( 3 x 3 2 ) 3 x 5 Separando em partes inteiras e fracionárias (onde estas últimas são não negativas): x 1 = ( 3 x 3 2 ) ( 1 3 x 5 x 1 = (1 0x 3 + x 5 ) x 3 1 ) 3 x 5 O novo corte será, então: E o novo problema: 1 3 x x 5 + x 6 = 1 3 Cujo quadro ótimo é: Maximizar z = x 1 + x 2 3x 1 + 2x 2 + x 3 = 6 3x 1 + 2x 2 + x 4 = x x 4 + x 5 = x x 5 + x 6 = 1 3 x 1, x 2, x 3, x 4, x 5, x 6 Z BASE x 1 x 2 x 3 x 4 x 5 x 6 b x / /5 2 x / /5 0 x x z 0 0 1/ /5 2 Esta solução é inteira, portanto, é a solução ótima do problema original de programação inteira. Solução ótima: x 1 = 2, x 2 = 0, z = 2. QUESTÕES SOMENTE PARA O PPGI (opcional para a graduação) Questão 7. O problema de cobertura de vértices pode ser definido como se segue. Seja G = (V, E) um grafo simples não direcionado com n vértices. Uma cobertura de vértices de G consiste em um subconjunto V V tal que, para cada aresta (i, j) E, tem-se que ou i V, ou j V ou então ambos i, j V. O problema consiste, então, em determinar a menor cobertura de vértices possível para G. O modelo matemático de PI para o problema é dado a seguir. Minimizar i V x i x i + x j 1 x i {0, 1} (i, j) E i V a) Forneça um algoritmo 2-aproximativo para o problema. Resposta: 21

22 Um algoritmo aproximativo para o problema consiste em avaliar as arestas do grafo em uma ordem qualquer. A cada aresta (i, j) não coberta, deve-se adicionar ambos i e j à cobertura. O pseudocódigo deste procedimento é dado abaixo. 1: function CoberturaVertices-2Apr(V, E) 2: cobertura 3: E E 4: while E do 5: (i, j) aresta arbitrária de E 6: cobertura cobertura {i, j} 7: Remover de E todas as arestas incidentes a i ou j 8: end while 9: return cobertura 10: end function b) Prove a razão de aproximação do algoritmo dado no item anterior. Resposta: Seja A o conjunto de todas as arestas selecionadas na linha 5 do algoritmo dado no item anterior e C a cobertura gerada. Observe que, para cobrir as arestas em A qualquer cobertura de vértices deve incluir pelo menos um dos vértices (i ou j) de cada aresta (i, j) A. No entanto, as arestas em A não possuem vértices em comum, uma vez que toda vez que uma aresta (i, j) é selecionada na linha 5, as outras arestas incidentes a i ou a j são descartadas. Logo, quaisquer duas arestas em A não são cobertas pelo mesmo vértice, o que fornece um limite inferior para a cobertura ótima, isto é: OP T A Onde OP T é o tamanho da menor cobertura de vértices de G. Quando uma aresta de A é selecionada, são adicionados dois vértices para a cobertura, ou seja: Portanto: C = 2 A C = 2 A 2 OP T C 2 OP T c) Qual a relação do algoritmo 2-aproximativo com outro problema clássico de otimização envolvendo grafos? Resposta: O algoritmo dado no item a) consiste em determinar um emparelhamento maximal (maximal matching) no grafo. O problema de emparelhamento consiste em determinar um subconjunto de arestas tais que, para qualquer par de arestas (i, j) e (k, l) no subconjunto, tem-se que i k, i l, j k e j l (ou seja, não possuem vértices em comum). Existem algoritmos polinomiais para a determinação de emparelhamentos máximos (todo emparelhamento máximo é maximal, mas o inverso nem sempre é verdade). 22

Pesquisa Operacional / Programação Matemática

Pesquisa Operacional / Programação Matemática Pesquisa Operacional / Programação Matemática Otimização discreta Modelagem com variáveis binárias: problemas clássicos Breve Comentários (aula anterior) Em geral, não faz sentido resolver a relaxação

Leia mais

O método Simplex Aplicado ao Problema de Transporte (PT).

O método Simplex Aplicado ao Problema de Transporte (PT). Prof. Geraldo Nunes Silva (Revisado por Socorro Rangel) Estas notas de aula são Baseadas no livro: Hillier, F. S. e G. J. Lieberman. Introdução à Pesquisa Operacional, Campus, a ed., 9 Agradeço a Professora

Leia mais

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Lista de Exercícios Programação Inteira. x 2 0 e inteiros. Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + 2 y s.a x + y 2 x + y 5 x, y 0, x e y inteiros b) Max z = 2 x + y s.a x + 2y 0 x + y 25 x, y

Leia mais

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR MÉTODO SIMPLEX. Prof. Angelo Augusto Frozza, M.Sc.

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR MÉTODO SIMPLEX. Prof. Angelo Augusto Frozza, M.Sc. PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR MÉTODO SIMPLEX Prof. Angelo Augusto Frozza, M.Sc. MÉTODO SIMPLEX A ideia geral é Em vez de enumerar todas as soluções básicas (pontos extremos) do problema de PL,

Leia mais

Exemplo: Maximização de lucros em uma chocolateria que produz os seguintes produtos: (1) Chocolate Pyramide (2) Chocolate Pyramide Nuit

Exemplo: Maximização de lucros em uma chocolateria que produz os seguintes produtos: (1) Chocolate Pyramide (2) Chocolate Pyramide Nuit Universidade Tecnológica Federal do Paraná Professor Murilo V. G. da Silva Notas de aula Estrutura de Dados 2 (Aula 09) Conteúdos da Aula: [DPV06 7.1, 7.2, 7.3] [Observação: Estas notas de aula são apenas

Leia mais

Programação Linear. MÉTODOS QUANTITATIVOS: ESTATÍSTICA E MATEMÁTICA APLICADAS De 30 de setembro a 13 de novembro de 2011 prof. Lori Viali, Dr.

Programação Linear. MÉTODOS QUANTITATIVOS: ESTATÍSTICA E MATEMÁTICA APLICADAS De 30 de setembro a 13 de novembro de 2011 prof. Lori Viali, Dr. Programação Linear São problemas complexos, muitas vezes de difícil solução e que envolvem significativas reduções de custos, melhorias de tempos de processos, ou uma melhor alocação de recursos em atividades.

Leia mais

Ciclos hamiltonianos e o problema do caixeiro viajante

Ciclos hamiltonianos e o problema do caixeiro viajante Ciclos hamiltonianos e o problema do caixeiro viajante Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.

Leia mais

Programação Linear (PL) Solução algébrica - método simplex

Programação Linear (PL) Solução algébrica - método simplex Universidade Federal de Itajubá Instituto de Engenharia de Produção e Gestão Pesquisa Operacional Simplex Prof. Dr. José Arnaldo Barra Montevechi Programação Linear (PL) Solução algébrica - método simplex

Leia mais

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

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana problemas difíceis de programação linear através da relaxação Lagrangeana Ana Maria A.C. Rocha Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho [email protected] http://www.norg.uminho.pt/arocha

Leia mais

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

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 Metaheurística: São técnicas de soluções que gerenciam uma interação entre técnicas de busca local e as estratégias de nível superior para criar um processo de

Leia mais

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Lista de Exercícios Programação Inteira. x 2 0 e inteiros. Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + y s.a x + y x + y 5 b) Max z = x + y s.a x + y 0 x + y 5 c) Max z = x + y s.a x + 9y 6 8 x +

Leia mais

Unidade II PESQUISA OPERACIONAL. Profa. Ana Carolina Bueno

Unidade II PESQUISA OPERACIONAL. Profa. Ana Carolina Bueno Unidade II PESQUISA OPERACIONAL Profa. Ana Carolina Bueno Programação linear É um subitem da programação matemática. É um dos modelos utilizados em pesquisa operacional. Consiste em otimizar (maximizar

Leia mais

Pesquisa Operacional. Prof. José Luiz

Pesquisa Operacional. Prof. José Luiz Pesquisa Operacional Prof. José Luiz Resolver um problema de Programação Linear significa basicamente resolver sistemas de equações lineares; Esse procedimento, apesar de correto, é bastante trabalhoso,

Leia mais

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Otimização Otimização em Redes Paulo Henrique Ribeiro Gabriel [email protected] Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Paulo H. R. Gabriel (FACOM/UFU) GSI027 2016/2 1 / 51 Conteúdo

Leia mais

3- O MÉTODO SIMPLEX Introdução e fundamentos teóricos para o Método Simplex

3- O MÉTODO SIMPLEX Introdução e fundamentos teóricos para o Método Simplex 3- O MÉTODO SIMPLEX 3.1- Introdução O Método Simplex é uma técnica utilizada para se determinar, numericamente, a solução ótima de um modelo de Programação Linear. Será desenvolvido inicialmente para Problemas

Leia mais

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

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Linear (PL) Aula 10: Método Simplex Técnica das variáveis artificias Método das penalidades ( Big M ). Método das duas fases. 2 Modificando o Exemplo Protótipo. Suponha-se que é modificado

Leia mais

Algoritmos Combinatórios: Introdução

Algoritmos Combinatórios: Introdução [email protected] UFSC, Fevereiro, 2010 Estruturas e Problemas Combinatórios Introdução a Algoritmos Combinatórios O que são: Estruturas Combinatórias? Algoritmos Combinatórios? Problemas Combinatórios?

Leia mais

Grafos: caminhos mínimos

Grafos: caminhos mínimos quando o grafo é sem pesos, a determinação de um caminho mais curto pode ser feita através de uma busca em largura caminho mais curto é aquele que apresenta o menor número de arestas quando o grafo tem

Leia mais

3. Resolução de problemas por meio de busca

3. Resolução de problemas por meio de busca Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 33 Definição do Problema Dado: um grafo ponderado G = (V, E), orientado ou não, onde d : E R + define as distâncias

Leia mais

Pesquisa Operacional

Pesquisa Operacional Faculdade de Engenharia - Campus de Guaratinguetá Pesquisa Operacional Livro: Introdução à Pesquisa Operacional Capítulo 5 Modelo da Designação Fernando Marins [email protected] Departamento de Produção

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Algoritmos de Aproximação CLRS, Cap. 35 Resumo Algoritmos de aproximação Algoritmos, com complexidade polinomial, que calculam soluções aproximadas para problemas de optimização

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 1.1 Introdução histórica..................................... 1 1.2 Passeios

Leia mais

PESQUISA OPERACIONAL 11. SOLUÇÃO ALGEBRICA O MÉTODO SIMPLEX ( ) DEFINIÇÕES REGRAS DE TRANSFORMAÇÃO. Prof. Edson Rovina Página 16

PESQUISA OPERACIONAL 11. SOLUÇÃO ALGEBRICA O MÉTODO SIMPLEX ( ) DEFINIÇÕES REGRAS DE TRANSFORMAÇÃO. Prof. Edson Rovina Página 16 11. SOLUÇÃO ALGEBRICA O MÉTODO SIMPLEX Página 16 Após o problema ter sido modelado, pode-se resolvê-lo de forma algébrica. A solução algébrica é dada pelo método simplex elaborado por Dantzig. Antes da

Leia mais

Parte 1 - Matrizes e Sistemas Lineares

Parte 1 - Matrizes e Sistemas Lineares Parte 1 - Matrizes e Sistemas Lineares Matrizes: Uma matriz de tipo m n é uma tabela com mn elementos, denominados entradas, e formada por m linhas e n colunas. A matriz identidade de ordem 2, por exemplo,

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 35 Teoria dos Grafos - Relembrando Árvore Um grafo G é uma árvore se é conexo e não possui ciclos (acíclico).

Leia mais

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016 Método Simplex dual Marina Andretta ICMC-USP 24 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211 - Otimização

Leia mais

CAPÍTULO 4. Teoria da Dualidade

CAPÍTULO 4. Teoria da Dualidade CAPÍTULO 4 1. Introdução Uma dos conceitos mais importantes em programação linear é o de dualidade. Qualquer problema de PL tem associado um outro problema de PL, chamado o Dual. Neste contexto, o problema

Leia mais

Material Teórico - Módulo Matrizes e Sistemas Lineares. Sistemas Lineares - Parte 2. Terceiro Ano do Ensino Médio

Material Teórico - Módulo Matrizes e Sistemas Lineares. Sistemas Lineares - Parte 2. Terceiro Ano do Ensino Médio Material Teórico - Módulo Matrizes e Sistemas Lineares Sistemas Lineares - Parte 2 Terceiro Ano do Ensino Médio Autor: Prof Fabrício Siqueira Benevides Revisor: Prof Antonio Caminha M Neto 1 A representação

Leia mais

α ( u 1 - u 2 ) = u 3 - u 2.

α ( u 1 - u 2 ) = u 3 - u 2. 2- NOÇÕES DE CONVEXIDADE E FORMULAÇÃO MATEMÁTICA DE PROBLEMAS DE PROGRAMAÇÃO LINEAR 21 Noções de Convexidade 211 - Combinação Convexa de pontos ponto b = αx 1 Considere C um conjunto contendo os pontos

Leia mais

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

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilceunespbr, socorro@ibilceunespbr Grafos Hamiltonianos Preparado a partir do texto: Rangel, Socorro

Leia mais

INVESTIGAÇÃO OPERACIONAL. Programação Linear. Exercícios. Cap. IV Modelo Dual

INVESTIGAÇÃO OPERACIONAL. Programação Linear. Exercícios. Cap. IV Modelo Dual INVESTIGAÇÃO OPERACIONAL Programação Linear Exercícios Cap. IV Modelo Dual António Carlos Morais da Silva Professor de I.O. i Cap. IV - Modelo Dual - Exercícios IV. Modelo Problema Dual 1. Apresente o

Leia mais

MÉTODO SIMPLEX SOLUÇÃO INICIAL ARTIFICIAL

MÉTODO SIMPLEX SOLUÇÃO INICIAL ARTIFICIAL MÉTODO SIMPLEX SOLUÇÃO INICIAL ARTIFICIAL Problemas de PL nos quais todas as restrições são ( ) com lados direitos não negativos oferecem uma solução básica inicial viável conveniente, na qual todas as

Leia mais

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então

Leia mais

Combinando inequações lineares

Combinando inequações lineares Combinando inequações lineares A multiplicação por um número > 0 não altera uma inequação 2x x 5 4x 2x 10 1 2 1 2 A soma de duas inequações (com o mesmo sentido) produz uma inequação válida x 3x x 3 1

Leia mais

5 Análise de Sensibilidade

5 Análise de Sensibilidade MAC-35 - Programação Linear Primeiro semestre de 00 Prof. Marcelo Queiroz http://www.ime.usp.br/~mqz Notas de Aula 5 Análise de Sensibilidade Neste capítulo consideramos o problema de programação linear

Leia mais

O Método Simplex. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto

O Método Simplex. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto O Método Simplex Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto O Método Simplex para Problemas de Maximização Max Z(X) = 5X 1 + 2X 2 sujeito a X 1 = 0 X 2

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr [email protected] 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

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

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré PERCURSOS André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré Serra 2011 Índice 1...O que é caminho e circuito 1.1...Caminho 1.2...Circuito 1.3...Classificação 2...Caminhos Eulerianos 2.1...Definição

Leia mais

Programação Linear - Parte 3

Programação Linear - Parte 3 Matemática Industrial - RC/UFG Programação Linear - Parte 3 Prof. Thiago Alves de Queiroz 1/2016 Thiago Queiroz (IMTec) Parte 3 1/2016 1 / 26 O Método Simplex Encontre o vértice ótimo pesquisando um subconjunto

Leia mais

Agenda do Dia Aula 14 (19/10/15) Sistemas Lineares: Introdução Classificação

Agenda do Dia Aula 14 (19/10/15) Sistemas Lineares: Introdução Classificação Agenda do Dia Aula 14 (19/10/15) Sistemas Lineares: Introdução Classificação Sistemas Lineares Sistemas lineares são sistemas de equações com m equações e n incógnitas formados por equações lineares. Um

Leia mais

CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI)

CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI) CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI) Prof. Gilson Fernandes da Silva Departamento de Ciências Florestais e da Madeira (DCFM) Programa de Pós-graduação em Ciências Florestais (PPGCF) Universidade

Leia mais

Problema de Designação. Fernando Nogueira Problema de Designação 1

Problema de Designação. Fernando Nogueira Problema de Designação 1 Problema de Designação Fernando Nogueira Problema de Designação 1 O Problema de Designação é um caso específico de um Problema de Transporte, que por sua vez é um caso específico de um Problema de Programação

Leia mais

Álgebra Linear e Geometria Anaĺıtica. Matrizes e Sistemas de Equações Lineares

Álgebra Linear e Geometria Anaĺıtica. Matrizes e Sistemas de Equações Lineares universidade de aveiro departamento de matemática Álgebra Linear e Geometria Anaĺıtica Agrupamento IV (ECT, EET, EI) Capítulo 1 Matrizes e Sistemas de Equações Lineares Geometria anaĺıtica em R 3 [1 01]

Leia mais

Investigação Operacional

Investigação Operacional Métodos de Programação Linear: Big M, Fases, S Dual (Licenciatura) Tecnologias e Sistemas de Informação http://dps.uminho.pt/pessoais/zan - Escola de Engenharia Departamento de Produção e Sistemas 1 Simplex

Leia mais

Otimização Aplicada à Engenharia de Processos

Otimização Aplicada à Engenharia de Processos Otimização Aplicada à Engenharia de Processos Aula 4: Programação Linear Felipe Campelo http://www.cpdee.ufmg.br/~fcampelo Programa de Pós-Graduação em Engenharia Elétrica Belo Horizonte Março de 2013

Leia mais

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

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafos Hamiltonianos e o Problema do Caixeiro Viajante Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafo Hamiltoniano Definição: Um circuito hamiltoniano em um

Leia mais

TP052-PESQUISA OPERACIONAL I Algoritmo Dual Simplex. Prof. Volmir Wilhelm Curitiba, Paraná, Brasil

TP052-PESQUISA OPERACIONAL I Algoritmo Dual Simplex. Prof. Volmir Wilhelm Curitiba, Paraná, Brasil TP052-PESQUISA OPERACIONAL I Algoritmo Dual Simplex Prof. Volmir Wilhelm Curitiba, Paraná, Brasil Algoritmo Dual Simplex Motivação max sa Z = cx Ax = b x 0 escolhida uma base viável max sa Z = c B x B

Leia mais

Modelagem Matemática I

Modelagem Matemática I Introdução à Otimização Combinatória Modelagem Matemática I Professora: Rosiane de Freitas ([email protected]) Colaborador Bruno Raphael Cardoso Dias ([email protected]) Universidade

Leia mais

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 2006/2007 2 o Semestre RESOLUÇÃO DO 2 o TESTE I. (2,0+2,0+2,0 = 6,0 val.) 1) Calcule o valor óptimo da função objectivo e o respectivo

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 02 Técnicas de Projeto de Algoritmos (Força Bruta) Edirlei Soares de Lima Tipos Importantes de Problemas Problemas de Ordenação: Reorganizar

Leia mais

Backtracking. Túlio Toffolo Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada

Backtracking. Túlio Toffolo  Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada Backtracking Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho [email protected] BCC402 Aula 10 Algoritmos e Programação Avançada Backtracking Backtracking é um refinamento do algoritmo de busca

Leia mais

MB PRINCÍPIOS DA PESQUISA OPERACIONAL PO INTRODUÇÃO A PESQUISA OPERACIONAL LISTA DE EXERCÍCIOS - PROGRAMAÇÃO LINEAR

MB PRINCÍPIOS DA PESQUISA OPERACIONAL PO INTRODUÇÃO A PESQUISA OPERACIONAL LISTA DE EXERCÍCIOS - PROGRAMAÇÃO LINEAR MB-244 - PRINCÍPIOS DA PESQUISA OPERACIONAL PO-201 - INTRODUÇÃO A PESQUISA OPERACIONAL LISTA DE EXERCÍCIOS - PROGRAMAÇÃO LINEAR 1. Considere o seguinte problema de programação linear: Maximizar Z = x 1

Leia mais

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

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Teobaldo L. Bulhões Júnior a a Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brazil

Leia mais

2º Semestre 2002/2003 Problemas Resolvidos

2º Semestre 2002/2003 Problemas Resolvidos RESOLUÇÂO DO PROBLEMA Nº 19 Determinado problema de Programação Linear depois de formulado permitiu obter as seguintes expressões: Max L = 4x 1-2x 2 + 2x 3 -x 4 s.a. R 1: x 1 - x 2 + 2x 3 +x 4 10 R 2:

Leia mais

Maristela Santos. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo

Maristela Santos. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Programação Matemática Maristela Santos Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Forma Padrão - Definição Características da forma padrão: Problema de minimização Todas

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares

Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica Prof. Anderson Almeida Ferreira Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para

Leia mais

Teoria dos Grafos Aula 18

Teoria dos Grafos Aula 18 Teoria dos Grafos Aula 18 Aula passada Coloração Algoritmo guloso Número cromático Teorema das 4 cores Aula de hoje Clusterização (ou agrupamento) Algoritmo Variação Clusterização Coleção de objetos Agrupar

Leia mais

1-1 PESQUISA OPERACIONAL INTRODUÇÃO

1-1 PESQUISA OPERACIONAL INTRODUÇÃO 1-1 PESQUISA OPERACIONAL INTRODUÇÃO Regra do Jogo 1-2 Provas MAN ADM 1 a Prova: 8 ou 10 de maio 2 a Prova: 12 ou14 de junho Substitutiva: 18 ou 21 de junho Média P = Média das Provas T = Média dos Testes

Leia mais

MÓDULO 2 - OTIMIZAÇÃO DE REDES

MÓDULO 2 - OTIMIZAÇÃO DE REDES MÓUL - TIMIZÇÃ RS s problemas de otimização de redes podem ocorrer em várias áreas, mas geralmente são encontrados nas áreas de transportes e comunicações. Um problema típico de transporte consiste em

Leia mais

Teoria dos Grafos Aula 24

Teoria dos Grafos Aula 24 Teoria dos Grafos Aula 24 Aula passada Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto em grafos Algoritmo de Bellman Ford Algoritmo

Leia mais

x y Grafo Euleriano Figura 1

x y Grafo Euleriano Figura 1 Grafo Euleriano Um caminho simples ou um circuito simples é dito euleriano se ele contém todas as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. Um grafo que não contém

Leia mais

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I [email protected] Introdução Teoria dos Grafos é o estudo das propriedades e estruturas dos grafos. O objetivo é, após modelar um problema

Leia mais

Pesquisa Operacional aula 3 Modelagem PL. Profa. Alessandra Martins Coelho

Pesquisa Operacional aula 3 Modelagem PL. Profa. Alessandra Martins Coelho Pesquisa Operacional aula 3 Modelagem PL Profa. Alessandra Martins Coelho agosto/2013 Exercício Considerando que x j representa as variáveis de decisão, classificar os problemas a seguir em uma das categorias:

Leia mais

4-1 PESQUISA OPERACIONAL MÉTODO SIMPLEX

4-1 PESQUISA OPERACIONAL MÉTODO SIMPLEX 4-1 PESQUISA OPERACIONAL MÉTODO SIMPLEX 4-2 MÉTODO SIMPLEX Dado o problema: x I = (A I )-1 *b - (A I )-1 *A J * x J Se x J = 0 então x I = (A I )-1 *b Vamos dividir as variáveis em: I = conjunto das variáveis

Leia mais

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

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II 04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr.

Leia mais

Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante

Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da

Leia mais

Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear

Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear Introdução à Pesquisa Operacional Origens militares Segunda guerra mundial Aplicada na alocação de

Leia mais

PCC173 - Otimização em Redes

PCC173 - Otimização em Redes PCC173 - Otimização em Redes Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 15 de maio de 2017 Marco Antonio M. Carvalho

Leia mais

Exemplos de modelos de PL ou PI

Exemplos de modelos de PL ou PI Exemplos de modelos de PL ou PI Prof. Eduardo Uchoa http://www.logis.uff.br/~uchoa/poi/ 1 Como funciona a PO? Toda a PO está baseada na construção de modelos matemáticos para representar de forma simplificada

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

EXPLORANDO GRAFOS 1. Grafos e Jogos uma introdução

EXPLORANDO GRAFOS 1. Grafos e Jogos uma introdução 1. Grafos e Jogos uma introdução Considere o seguinte jogo, o qual é uma das muitas variantes de Nim, também conhecido como jogo Marienbad. Inicialmente existe uma certa quantidade de fósforos na mesa

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais [email protected] 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter

Leia mais

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

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS Rosiana da Silva Lopes Danilo César Rodrigues Azevedo [email protected] [email protected]

Leia mais

Vânio Correia Domingos Massala

Vânio Correia Domingos Massala Optimização e Decisão 06/0/008 Método do Simplex Vânio Correia - 5567 Domingos Massala - 58849 INSTITUTO SUPERIOR TÉCNICO Generalidades do Método do Simplex Procedimento algébrico iterativo para resolver

Leia mais

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto Problema do Caminho Mais Curto " Podemos afectar pesos" aos arcos de um grafo, por exemplo, para representar uma distância entre cidades numa rede ferroviária: ria: Chicago 650 600 700 Toronto 200 New

Leia mais

Problema de Fluxo Máximo

Problema de Fluxo Máximo Problema de Fluxo Máximo The Maximum Flow Problem Fernando Nogueira Fluxo Máximo 1 O Problema de Fluxo Máximo (The Maximum Flow Problem) Considere uma rede direcionada (dígrafo) conectada, com 2 nós especiais

Leia mais

Fluxo em Redes: Ford-Fulkerson - Fluxo Máximo

Fluxo em Redes: Ford-Fulkerson - Fluxo Máximo JAILSON ALVES MICAEL AGUIAR PIETRO DALMAZIO VINÍCIUS ALVES Fluxo em Redes: Ford-Fulkerson - Fluxo Máximo Trabalho apresentado ao professor doutor Leandro Colombi Resendo como requisito para aprovação na

Leia mais

Algoritmos de Caminho Mínimo Parte 1

Algoritmos de Caminho Mínimo Parte 1 Algoritmos de Caminho Mínimo Parte 1 A journey of a thousand miles starts with a single step and if that step is the right step, it becomes the last step. Index 1. Introduction 2. Applications 3. Tree

Leia mais

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

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns

Leia mais

Optimização em Redes e Não Linear

Optimização em Redes e Não Linear Departamento de Matemática da Universidade de Aveiro Optimização em Redes e Não Linear Ano Lectivo 005/006, o semestre Folha - Optimização em Redes - Árvores de Suporte. Suponha que uma dada companhia

Leia mais

Teoria dos Grafos Aula 23

Teoria dos Grafos Aula 23 Teoria dos Grafos Aula 23 Aula passada Apresentação de trabalhos Discussão da prova Subset sum Problema da mochila Aula de hoje Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação

Leia mais

Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

araribá matemática Quadro de conteúdos e objetivos Quadro de conteúdos e objetivos Unidade 1 Números inteiros adição e subtração

araribá matemática Quadro de conteúdos e objetivos Quadro de conteúdos e objetivos Unidade 1 Números inteiros adição e subtração Unidade 1 Números inteiros adição e subtração 1. Números positivos e números negativos Reconhecer o uso de números negativos e positivos no dia a dia. 2. Conjunto dos números inteiros 3. Módulo ou valor

Leia mais

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17) Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17) Professor: Pedro Nóia Livro adotado: Matemática Aplicada às Ciências Sociais- 11º ano Elisabete Longo e Isabel

Leia mais

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana Otimização Linear Profª : Adriana Departamento de Matemática [email protected] wwwp.fc.unesp.br/~adriana Teoria da Otimização Linear Transformação de problemas na forma padrão a a b i1 1 in n i a a b

Leia mais