A04-1 Teorema Fundamental da Programação Linear • Dado um problema de Programação Linear na forma padrão min c.x s.a. Ax = b x0 onde A é uma matriz (m x n) de “rank” m, i) se existir uma solução factível, existe uma solução básica factível; ii) se existir uma solução factível óptima, existe uma solução básica factível óptima. Teorema da Equivalência entre pontos extremos e soluções básicas • Seja A uma matriz m x n e b um vector de m componentes. Seja K o polítopo convexo consistindo de todos os vectores x de tamanho n que satisfazem Ax = b x0 Um vector x é um ponto extremo de K sse x é uma solução básica factível. A04-2 Corolário 1: Se o conjunto convexo K correspondente a Ax = b x0 é não vazio, possui pelo menos um ponto extremo. Corolário 2: Se existir uma solução óptima finita para um problema de programação linear, existe uma solução óptima finita que é um extremo do conjunto de restrições. Corolário 3: O conjunto de restrições K correspondente a Ax = b, x 0 possui, no máximo, um número finito de pontos extremos. Corolário 4: Se o conjunto K (polítopo convexo) for limitado, então K é um poliedro convexo, i.e., K consiste de pontos que são combinações lineares de um número finito de pontos. Proposição: Uma função objectivo linear, cx, atinge o seu mínimo sobre um poliedro convexo K num ponto extremo de K. A05-1 Teorema: Dada uma solução básica factível não degenerada com custo z0, suponha-se que para algum j se verifica cj - zj < 0. Então existe uma solução factível com custo z < z0. Se a coluna aj puder ser substituída por algum vector na base original que conduza a uma nova solução básica factível, esta nova solução tem z < z0. Se aj não puder ser substituída, então o conjunto K de soluções factíveis é não limitado e a função objectivo pode ser feita arbitrariamente pequena. Teorema: Se para alguma solução básica factível cj - zj 0 para todo o j, então a solução é óptima. A07-1 O método Simplex Passo1: Calcular os coeficientes de custo relativo r = cD - cBB-1D. Primeiro calcular l = cBB-1 e depois o vector de custo relativo cD - lD. Se r 0 parar; a solução presente é óptima. Passo 2: Determinar que vector aj entra na base selecionando aquele para o qual o custo relativo é mais negativo; calcular yj = B-1aj que expressa aj na base presente. Passo 3: Calcular os valores yi0/yij para determinar que vector sai da base. Passo 4: Actualizar B-1 e a solução presente é B-1b. Voltar ao Passo 1. Dados de partida: Uma base e B-1 correspondente com a solução respectiva dada por xB = y0 = B-1b. A07-2 PRIMAL min c.x s.a. Ax = b x0 (1) DUAL min lb s.a. lA c (2) Lema 1: Se x e l são factíveis para (1) e (2), respectivamente, então cx lb. Corolário: Se x0 e l0 são factíveis para (1) e (2), respectivamente, e se cx0 = l0b, então x0 e l0 são óptimos para os seus problemas respectivos. PORQUÊ?... Teorema da Dualidade: Se qualquer dos problemas (1) ou (2) possuir uma solução óptima finita, também o outro a possui, e os valores das funções objectivo são iguais. Se qualquer dos problemas tiver uma função objectivo não limitada, o outro não tem qualquer solução factível. A07-3 Teorema: Seja o problema de programação linear (1) com uma solução básica factível óptima correspondente à base B. Então o vector l = cBB-1 é uma solução óptima para o problema dual (2). Os valores óptimos para ambos os problemas são iguais. Teorema 1: (Complementary Slackness - forma assimétrica) Seja x e l soluções factíveis para o problema primal e dual, na forma assimétrica, respectivamente. Uma condição necessária e suficiente para que ambas sejam óptimas é que para todo o i: i) xi > 0 lai = ci ii) xi = 0 lai < ci em que ai é a i-ésima coluna de A. Teorema 2: (Complementary Slackness - forma simétrica) Sejam x e l soluções factíveis para o problema primal e dual, na forma simétrica, respectivamente. Uma condição necessária e suficiente para que ambas sejam óptimas é que para todo o i e j: i) xi > 0 lai = ci ii) xi = 0 lai < ci iii) lj > 0 ajx = bj iv) lj = 0 aix > bj em que aj é a j-ésima linha de A e ai é a i-ésima coluna de A.