Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
29-03-2010 Algoritmo (Método) Simplex Etapa 0: Forma Padrão Quadro tableaux, solução básica: VB xi …aij… bi …cj… Etapa 1: Escolher ck = min {cj} caso ck ≥ 0 → ótimo. Etapa 2: Escolher = min {}, aik > 0. Etapa 3: Pivoteamento – solução básica e voltar para a Etapa 1. Exemplo: simplex 1ª fase (≤) Max. 2x1 + 4x2 SA 4x1 + 2x2 ≤ 400 4x1 + 4x2 ≤ 900 x1, x2 ≥ 0 Etapa 0: Min. -2x1 - 4x2 SA 4x1 + 2x2 + x3 = 400 4x1 + 4x2 + x4 = 900 x1, x2, x3, x4 ≥ 0 Coluna Pivotal ↑ PivôTableaux Básico VB x1 x2 x3 x4 → Linha Pivotal x3 4 2 1 0 400 x4 4 4 0 1 900 -2 -2 0 0 Solução Básica → F.O. = 0 Variável Custo Reduzido x1 = 0 -2 x2 = 0 -4 Folga Preço Dual x3 = 400 0 x4 = 900 0 Etapa 2: = min {} → = min {} = 200 Etapa 3: Pivoteamento L1 → (divide-se a linha pivotal pelo pivô) L2 → L2 - L1 (linha 2 – (elemento a ser gerado/pivô) * linha pivotal) L3 → L3- L2 (linha 3 – (elemento a ser gerado/pivô) * linha pivotal) VB x1 x2 x3 x4 x2 2 1 0 200 x4 -4 0 -2 1 100 6 0 2 0 800 (F.O.) Voltar a Etapa 1 Solução Básica → F.O. = 800 Variável Custo Reduzido x1 = 0 6 x2 = 200 0 Folga Preço Dual x3 = 0 2 x4 = 100 0 2ª Interação: Etapa 1: ck = 0 → min {6, 0, 2, 0} ck ≥ 0 → ótimo 05-04-2010 Revisão Simplex: Max. Z = x1 + 2x2 + 4x3 + x4 SA 5x1 + 5x2 + 2x3 + 6x4 ≤ 400 x1, x2, x3, x4 ≥ 0 Apresenta o quadro Z = 800 Variável Custo Reduzido x1 = 0 9 x2 = 0 8 x3 = 0 0 x4 = 0 11 Folga Preço Dual x5 = 0 2 x6 = 100 4 Pergunta-se: A solução é básica? Não, deveria ter uma variável de folga e não duas (x5 e x6) A solução é ótima? Não. O preço dual de x2 é 9? Não, só x5 tem preço dual. Feita a correção (tirar x6) a solução é básica. C(5,1) = 5 vértices, onde N = 5 e M = 1, N – M = 5 – 1 = 4 → zerar 4 variáveis. A solução seria ótima. Não há outro vértice que forneça um Z maior do que 800. Dualidade em Programação Linear Duais Simétricas Dado o PPL Primal Max. ctx SA Ax ≤ b X ≥ 0 Podemos escrever o dual Min. btw SA Atw ≥ c w ≥ 0 w é a variável dual Exemplo: seja o primal Max. 2x1 + 4x2 SA 5x1 + 2x2 ≤ 100 3x1 + 5x2 ≤ 200 x1, x2 ≥ 0 Então o dual será: Min. 100w1 + 200w2 SA 5w1 + 3w2 ≥ 2 2w1 + 5w2 ≥ 4 w1, w2 ≥ 0 Interpretação Econômica Variáveis Duais Indústria produz P1 e P2 com lucros 5 e 6. Utilização Unitária Recursos Disponível Gasto para fazer A 14 1 2 B 9 1 1 C 56 7 4 Modelo: Max. 5x1 + 6x2 SA x1 + 2x2 ≤ 14 x1 + x2 ≤ 9 7x1 + 4x2 ≤ 56 x1, x2 ≥ 0 Modelo dual: Min. 14y1 + 9y2 + 56y3 SA 1y1 + 1y2 + 7y3 ≥ 5 2y1 + 1y2 + 1y3 ≥ 6 y1, y2, y3 ≥ 0 → Valores dos recursos 07-04-2010 Trabalho P.O. Valor: 5 pts (opcional + 5 pts) Tema: Resolver problema de médio porte com técnica ≠ linear: Exemplo: roteamento, localizador e alocação. Técnicas: programação quadrática, gradiente, gradiente projetado, conjugado, algoritmo genético, simulated annealing, probabilístico e redes neurais (RNA). Entregar: 14/04/2010 – Resumo, problema e método. 26/04/2010 – Apostila: fundamentos, metologia, aplicação, cálculos, rotinas computacionais, resultados, conclusão e bibliografia. 03/05/2010 – Laboratório, precessamento e dúvidas. Opcional: resolver usando 2º método e comparar o desempenho (+ 5 pts). 19-04-2010 Programa LINDO → Linear Interactive Discrete Optimizer Não precisa de condição de não negatividade. Exemplo: PPL.txt Max. 2x1 ST 2) 2x1 + 3x2 ≤ 60 3) 2x1 + 4x2 ≤ 90 END GO ↓ Dá a solução direta não mostra nenhum tableaux ou pivotemaneto LOOK ALL → mostra tudo PIV → pivoteamento → define o que entra e o que sai. TABLB PIV → 2ª interação TABL PIV → 3ª interação QUIT Abrir arquivo.bat → botão direto → editar Lindo.exe <pplteste.txt> relat_ppl.txt Arquivo de entrada Arquivo de saída Abrir arquivo de saída em txt. ART → função objeto SLK (slake) → folga L1: Máx. 2x1 L2: 2x1 + 3x2 ≤ 60 L3: 2x1 + 4x2 ≤ 90 x1 x2 SLK2 SLK3 ART 0 3 1 0 60 x1 1 1,5 0,5 0 30 SLK 0 1 -1 1 30 x1 x2 x3 x4 x1 1 1,5 0,5 0 30 x4 0 1 -1 1 30 0 3 1 1 60 LINDO → problemas lineares LINGO → problemas não lineares Dual Simplex (≥) Forma Padrão Min cixj SA Ax = b x ≥ 0, b ≤ 0 (lado direito negativo) Primal (≤) Ø → Forma Padrão Min cjxj SA Ax = b x ≥ 0, b ≥ 0 (lado direito negativo) Min f{cj} Min{} PIV Nova solução básica P1 → Escolher variável que deixa a base P2 → Escolher a variável que entra na base P3 → Encontrar a solução básica fazendo o pivoteamaneto. Exemplo: Min. x1 + 5x2 SA x1 + 2x2 ≥ 400 2x1 + x2 ≥ 900 x1, x2 ≥ 0 Resolução: FP → Min. x1 + 5x2 SA -x1 - 2x2 + x3 = -400 -2x1 - x2 + x4 = -900 x1, x2, x3, x4 ≥ 0 x1 x2 x3 x4 X3 -1 -2 1 0 -400 x4 -2 -1 0 1 -900 0 3 0 0 0 P1 → Variável que deixa a base. Min. {-400,-900} P2 → Variável que entra na base Máx. {}, pode ficar denominador positivo. P3 → Solução básica: L1 → L1 - L2 L2 → L3 → L3- L2 x1 x2 x3 x4 X3 0 3/2 1 -1/2 50 X1 0 1/2 0 -1/2 450 0 -9/2 0 0 -450 Se mínimo, trocar sinal. FO = 800 Variável Custo Reduzido x1 = 450 0 x2 = 0 -9/2 Folga Preço Dual x3 = 50 0 x4 = 0 ½ Volta → P1 Min. {50, 450} → não tem negativo, acaba aqui. ↓ Tem variável negativa na FO (-9/2, -450) Aplicar o Primal. 26-04-2010 Trabalho: Qualquer problema PNL; Método gradiente.