250 likes | 390 Views
Otimização Inteira. 5a. Aula Franklina. Otimalidade e Relaxação. Dado um Problema Inteiro ou Problema de Otimização Combinatória Uma solução com valor z* é ótima se existe um limitante inferior z LB z* e um limitante superior z UB z*
E N D
Otimização Inteira 5a. Aula Franklina
Otimalidade e Relaxação Dado um Problema Inteiro ou Problema de Otimização Combinatória Uma solução com valor z* é ótima se existe um limitante inferior zLB z* e um limitante superior zUB z* tal que zLB = z* = zUP.
Na prática um algoritmo para o problema anterior é terminado quando existe uma seqüência decrescente de limitantes superiores e uma seqüência crescente de limitantes inferiores, tal que, zUB – zLB
Limitante Inferior Qualquer solução x´ X fornece um limitante inferior para o problema1: zLB = z(x´) z* Em geral, usam-se métodos heurísticos para obter um limitante inferior. Obs. Existem problemas que é simples encontrar uma solução factível (mochila), no entanto, para alguns essa tarefa é árdua (dimensionamento de lotes). 1 – Lembre-se que estamos maximizando z.
Limitante Superior Limitantes superiores para problemas de maximização são chamados de limitantes duais. O enfoque de “relaxação” é o mais importante para determinar limitantes superiores. Um problema “relaxado” é um problema mais simples que o problema original de programação inteira, com valor ótimo maior ou igual a z*.
Duas possibilidades para o problema relaxado: • Aumentar o conjunto de soluções factíveis (ex. relaxação linear); • Substituir a função objetivo por uma função com valor maior ou igual para todas as soluções factíveis (ex. relaxação lagrangiana).
Definição 2.1. Um problema (PR) zR = max{f(x) | x T Rn} é uma relaxação de (PI) z = max{c(x) | x X Zn} se: • X T, e • f(x) c(x) para todo x X. Proposição 2.1. Se PR é uma relaxação de PI então zR z. Demonstração. Se x* é uma solução ótima de PI, então x* X T e z = c(x*) f(x*). Como x* T, f(x*) é um limitante inferior de zR, e portanto, z f(x*) zR.
Relaxação Linear - PL Definição 2.2. Dado o problema inteiro Max {cx | x P Zn } com formulação P = {x | Ax b} a relaxação por programação linear é o problema linear zPL= max{cx | x P }.
Exemplo relaxação Linear Considere o problema inteiro: z = max (4 x1 – x2) s.a 7 x1 – 2 x2 14 x2 3 2 x1 – 2 x2 3 x
Exemplo relaxação Linear (2,1) é uma solução factível, logo é um limitante inferior para o problema, z 7. A solução ótima do PL é x = (20/7, 3) com valor 59/7. Como a solução ótima é inteira, temos que z 8.
Proposição 2.2. (Formulações Melhores) Considere P1, P2 duas formulações para o problema inteiro Max {cx | x X Zn } Sendo P1 uma formulação melhor que P2, isto é, P1 P2. Se ziPL = Max {cx | x Pi } para i = 1, 2 são valores ótimos das relaxações lineares, então z1PL z2PL para todo c.
Proposição 2.3. (Prova de otimalidade) • Se a relaxação PR é infactível, o problema original PI é infactível. • Seja x* uma solução ótima de PR. Se x* X e f(x*) = c(x*), então x* é uma solução ótima de PI. Demonstração Como PR é infactível, T = e, portanto, X = . Como x* X, z c(x*) = f(x*) = zR. Como z zR, então c(x*) = z = zR.
Relaxação Combinatorial Esta relaxação está associada a um problema de otimização combinatória. Problema do Caixeiro Viajante. É dado um grafo orientado D = (V,A) com peso cij para cada arco (i,j) A. As soluções do PCV são tours ou ciclos Hamiltonianos, que são designações (assignments) ou permutações sem subtours.
ciclos Hamiltonianos – uma rota através dos vértices do grafo que inicie e termine em um mesmo nó sem nunca repetir uma visita. Grafo original Ciclos Halmiltonianos
Problema de designação: Grafo original Ciclo Halmiltoniano
Problema do Caixeiro Viajante Simétrico (PCVS) É dado um grafo G = (V,A) com peso ci para cada aresta i A. Note que: • todo tour consiste de duas arestas adjacentes ao nó 1, e um caminho através dos nós {2,3,...n}; • Um caminho é um caso especial de uma árvore. Definição 2.3. Uma 1-árvore é um subgrafo que consiste de duas arestas adjacentes ao nó 1, e das arestas de uma árvore nos nós {2,...n}.
Problema do Caixeiro Viajante Simétrico (PCVS) Cada tour é uma 1-árvore, e, portanto,
Problema da Mochila Uma relaxação do conjunto É o conjunto Onde a é o maior inteiro menor ou igual a a.
Relaxação Lagrangiana Dado um problema de programação inteira (PI) Max {cx | Ax b, x X Zn }. Se este problema for difícil de resolver, podemos relaxar as restrições Ax b, neste caso temos: Max {cx | x X Zn }. O problema de designação pode ser obtido ao relaxarmos as restrições de subtour do PCV.
Proposição 2.4. Dado o problema de programação inteira PI Max {cx + u(b – Ax), x X}. Então z(u) z para todo u 0. Prova. Seja x* solução ótima do PI. Como x* é factível em PI, x* X. Logo, Ax* b e, portanto, b – Ax* 0. Como u 0 temos z = cx* cx* + u(b – Ax*) = z(u).
Exemplo Problema de dimensionamento de lotes com capacidade limitada Min cx + sy + hI s.a xit – Iit + Ii,t-1 = dit i (bi xit + fi yit) Ct bi xit Ct yit xit 0, yit {0,1}, Iit 0
Limitantes Primais: busca local e gulosos Heurísticas gulosas (Greedy – “gananciosa”) Idéia geral: construir uma solução a partir de um conjunto vazio, escolhendo a cada passo a melhor decisão naquele momento. Exemplo. Problema da Mochila
Busca local Passo 1. Seleção de uma solução inicial (S). Passo 2. Avalie se existe na vizinhança V uma solução S’ melhor que S. Passo 3. Se existe S’ então atualize S e volte ao Passo 2. Passo 4. Fim. Exemplo. Problema da mochila.