• Nenhum resultado encontrado

Programação Linear - Parte 3

N/A
N/A
Protected

Academic year: 2021

Share "Programação Linear - Parte 3"

Copied!
26
0
0

Texto

(1)

Programação Linear - Parte 3

Prof. Thiago Alves de Queiroz

(2)

Encontre o vértice ótimo pesquisando um subconjunto dos K vértices de S;

A partir de uma solução básica factível, devemos responder: (i) Essa solução é ótima?

(ii) Não sendo ótima, como determinar outra solução básica factível melhor?

(3)

Considere a solução básica factível: ˆ x = ˆxˆB xN  com ˆxB=B−1b ≥ 0 e ˆxN =0;

Seja a solução geral:

x =xB

xN



em que: xB =B−1b − B−1NxN;

A função objetivo f(x) pode ser expressa considerando a partição

básica:

f(x) = cTx = [cBTcNT]xB xN



= cBTxB+cNTxN.

cBT: coeficientes das variáveis básicas na função objetivo;

cT

N: coeficientes das variáveis não-básicas na função objetivo.

(4)

Restringindox ao sistema Ax = b, temos:

f(x) = cBT(B−1b − B−1NxN) +cNTxN =

cBTB−1b − cBTB−1NxN+cNTxN;

O primeiro termo corresponde ao valor da função objetivo em ˆx :

f(ˆx ) = cBTˆxB+cNTxˆN = cBT(B−1b) + cNT(0) = cBT(B−1b);

Definição 6. O vetor λ de ordem m × 1, dado por: λT =cT BB−1é

chamado de vetor multiplicador simplex;

Também é referenciado como vetor de variáveis duais;

Pode ser obtido pela resolução do sistema: BTλ =c

(5)

Utilizando o vetor multiplicador simplex em f(x), segue: f(x) = f(ˆx ) - cBTB−1NxN+cNTxN = f(ˆx ) - λTNx N+cTNxN = f(ˆx ) + (cNT − λTN)xN; Observe que: cT N− λTN = (cN1,cN2, . . . ,cNn−m) − λ T(a N1,aN2, . . . ,aNn−m) = (cN1− λ Ta N1,cN2 − λ Ta N2, . . . ,cNn−m− λ Ta Nn−m); Além disso: xN = (xN1,xN2, . . . ,xNn−m); Resulta em: f(x) = f(ˆx ) + (cN1− λ Ta N1)xN1 + (cN2− λ Ta N2)xN2+ . . . + (cNn−m − λ Ta Nn−m)xNn−m.

(6)

Definição 7. Os coeficientes ˆcNj = (cNj − λ

Ta

Nj)das variáveis não-básicas na função objetivo são chamados de custos relativos ou custos reduzidos.

Então, podemos escrever:

f(x) = f(ˆx ) + ˆcN1xN1+ ˆcN2xN2+ . . . + ˆcNn−mxNn−m;

Sabemos que xNj ≥ 0 (as variáveis são não-negativas). Se

(cNj − λ

Ta

Nj) ≥0 para todo j, então f(x) ≥ f (ˆx ) para todo xN ≥ 0;

Propriedade 3. (condição de otimalidade) Dada uma partição

básicaA = [B N] em que a solução básica associada é

ˆ

xB =B−1b ≥ 0 e seja λT =cBTB−1o vetor multiplicador simplex.

Se (cNj − λ

Ta

Nj) ≥0 para todo j, então a solução básica ˆxB é ótima;

Ou seja, satisfeita a condição de otimalidade, então a solução básica factível é ótima.

(7)

Como determinar uma solução básica factível melhor?

Considere uma solução básica factível e suponha que a condição de otimalidade não foi satisfeita;

Ou seja, existe um k tal que o custo relativo é negativo: (cNk − λ

Ta

Nk) <0;

Definição 8. Chamamos de estratégia simplex a perturbação de

uma solução básica factível que consiste alterar as variáveis não-básicas por:

xNk =  ≥0, (variável com custo relativo negativo)

xNj =0, para todo j, exceto j = k ;

(8)

Nestas condições, a função objetivo passa a ser: f(x) = f(ˆx ) + ˆcN10 + . . . + ˆcNk+ . . . + ˆcNn−m0 = f(ˆx ) + ˆcNk< f(ˆx );

Note que a função objetivo decresce quando  cresce, com a taxa negativa ˆcNk.

(9)

Note que quanto menor o valor de ˆcNk, mais rápido a função objetivo decresce;

Com isso, a escolha da variável não-básica a ser perturbada é aquela de menor custo relativo (regra de Dantzig);

Além disso, seria interessante determinar o maior valor possível para  que mantém a solução perturbada ainda factível;

Note que ao mudar o valor das variáveis não-básicas pela

estratégia simplex, as variáveis básicas devem ser alteradas para

(10)

A estratégia simplex é equivalente a alterar as variáveis não-básicas para: xN =         xN1 .. . xNk .. . xNn−m         =         0 .. .  .. . 0        

Portanto, as variáveis básicas são modificadas por: xB =B−1b − B−1NxN = ˆxB− B−1aNk = ˆxB− y ; Em que: y = B−1aNk; Note que: Nxn=N(0 . . .  . . . 0)T = [aN1 . . . aNk . . . aNn−m](0 . . .  . . . 0) T =a Nk.

(11)

Definição 9. Chamamos de direção simplex o vetor y = B−1aNk, o qual fornece os coeficientes de como as variáveis básicas são alteradas pela estratégia simplex;

A direção simplex é a solução do sistema By = aNk;

Voltando a expressão xB = ˆxB− y  e escrevendo-a em cada uma

de suas coordenadas, temos:

xBi = ˆxBi − yi ≥0, para i = 1, 2, . . . , m;

Se yi ≤ 0, então xBi ≥ 0, para qualquer  ≥ 0;

Se yi >0, como xBi − yi ≥0, então,  ≤

ˆ xBi

yi ; Logo, o maior valor de  é dado por:

ˆ  = xˆyBl l =mínimo { ˆ xBi yi tal que yi >0}.

(12)

Se yi ≤ 0 para i = 1, 2, . . . , m, então não há limitante superior

para ;

Isto significa que a solução perturbada será sempre factível para qualquer valor de  ≥ 0;

Note que a função objetivo decresce com o crescimento de , ou

seja, f(x) → −∞, com  → ∞;

Portanto, o problema não tem solução ótima ou a solução ótima é ilimitada;

(13)

Com o valor de ˆ = xˆyBl

l a variável básica xBl se anula e a variável

não-básica xNk torna-se positiva:

l-ésima variável básica: xBl = ˆxBl − ylˆ = ˆxBl − yl

ˆ xBl

yl =0; k -ésima variável não-básica: xNk = ˆ;

A nova solução tem a seguinte característica:

(xB1. . .xBl. . .xBm|0 . . . xNk. . .0) = (xB1. . .0 . . . xBm|0 . . . ˆ . . .0); Ou seja, n − m variáveis são nulas, as quais podem ser consideradas não-básicas;

Isto resulta em uma nova partição básica:

B = (aB1, . . . ,aBl, . . . ,aBm) →B’ = (aB1, . . . ,aNk, . . . ,aBm)

N = (aN1, . . . ,aNk, . . . ,aNn−m) →N’ = (aN1, . . . ,aBl, . . . ,aNn−m)

(14)

Propriedade 4. A matriz B’ é invertível de modo que A = [B’ N’] é

uma partição básica;

A solução associada à nova partição básica é obtida da estratégia simplex:

xNk = ˆ, xBi = ˆxBi − yi, para i = 1, . . . , m, com i 6= l;

Com isso, a estratégia simplex produz uma nova solução básica factível para a qual a função objetivo tem um valor menor: f(x) = f(ˆx ) + ˆcNkˆ <f (ˆx );

Este procedimento pode ser repetido até encontrar outra solução básica melhor ou satisfazer a condição de otimalidade;

(15)

Uma implementação computacional simples do método simplex

pode trabalhar explicitamente com a matriz básica B−1;

Isto resulta em atualizar a matriz básica em cada iteração. Este método é chamado de método simplex revisado;

O método simplex revisado não é eficiente, pois:

I Ao recalcular a inversa a cada iteração, erros de arredondamento

são inseridos;

I Matrizes com uma ordem grande, porém esparsa (poucos

elementos não-nulos).

Outra representação é o método simplex em tabelas. Porém, trata apenas de problemas com dezenas de restrições e variáveis; O método simplex pode ser aplicado quando há limitante superiores para as variáveis, isto é, 0 ≤ xj ≤ uj:

(16)

As operações do método simplex podem ser organizadas em tabelas, chamadas tabelas simplex;

Interessante para manipular exemplos pequenos e compreender o funcionamento do método mais rapidamente;

Considere um problema de otimização linear na forma padrão:

Minimizar z = f (x) = cTx sujeito a :  Ax = b x ≥ 0. (1)

Os coeficientes presentes no modelo são suficientes para descrever o problema;

(17)

Tabela: Coeficientes de um problema de otimização linear.

x1 x2 . . . xn ← variáveis

c1 c2 . . . cn z ← coeficientes da função objetivo

a1 a2 . . . an b ← coeficientes das restrições

Para o exemplo abaixo:

Minimizar z = −x1− 2x2 sujeito a :        x1+x2≤ 6 x1− x2≤ 4 −x1+x2≤ 4 x1≥ 0, x2≥ 0. (2)

(18)

Tabela: Tabela simplex inicial - Dados do problema. x1 x2 x3 x4 x5 b 1 -2 0 0 0 z 1 1 1 0 0 6 1 -1 0 1 0 4 -1 1 0 0 1 4

Resulta na seguinte tabela simplex inicial, com as Variáveis Básica (VB):

Tabela: Tabela simplex inicial. x1 x2 x3 x4 x5 b

VB 1 -2 0 0 0 0

x3 1 1 1 0 0 6

x4 1 -1 0 1 0 4

(19)

Considere um problema de otimização linear na forma padrão.

Fase I: Determine uma tabela simplex inicial:

I A matriz dos coeficientes contém uma matriz identidade m × m, e o

vetor independente b ≥ 0;

I A função objetivo é escrita em termos das variáveis não-básicas,

isto é, os coeficientes das variáveis básicas são nulos;

I Faça iteração = 0.

Fase II:

I 1. Determine o menor dos custos relativos:

ck =mínimo {cj,para toda variável não-básica };

I 2. Se ck ≥ 0, então pare: solução ótima encontrada;

(20)

Fase II: continuação...

I 3. Se aik ≤ 0, para i = 1, . . . , m, então pare: solução ilimitada;

F 3.1. Senão, determine:

bl

alk =mínimo {

bi

aik tal que aik >0, i = 1, . . . , m};

F 3.2. A variável básica da linha l, digamos xl, sai da base;

I 4. Atualize a tabela simplex, considerando o elemento pivô alk e

fazendo o pivoteamento no restante da coluna;

F 4.1. A variável xk passa a ser a variável básica na linha l;

F 4.2. Faça iteração = iteração + 1;

(21)

Aplique o algoritmo simplex em tabelas no seguinte problema de otimização linear: Minimizar z = −x1− 2x2 sujeito a :        x1+x2≤ 6 x1− x2≤ 4 −x1+x2≤ 4 x1≥ 0, x2≥ 0. (3)

(22)

Pela Fase I, monta-se a tabela simplex inicial, explicitando as variáveis básicas;

Fazemos iteração = 0.

Tabela: Tabela simplex inicial. x1 x2 x3 x4 x5 b

VB 1 -2 0 0 0 0

x3 1 1 1 0 0 6

x4 1 -1 0 1 0 4

x5 -1 1 0 0 1 4

Aplicando a Fase II, segue que:

1. O menor custo relativo é: c2= −2;

(23)

3. Existe aik >0. Observe: para i=3 temos 1, e para i=5 temos 1;

3.1. O mínimo ocorre para {61;41}, isto é, para l=i=5;

3.2. A variável básica x5sai da base;

Tabela: Tabela simplex inicial. x1 x2 x3 x4 x5 b

VB -1 -2 ↓ 0 0 0 0

x3 1 1 1 0 0 6

x4 1 -1 0 1 0 4

← x5 -1 1 0 0 1 4

4. O elemento pivô é o aik =a52 =1. Realizamos o pivoteamento

na coluna ak =a2;

(24)

Tabela: Tabela simplex iteração 1. x1 x2 x3 x4 x5 b VB -3 0 0 0 2 0 + 8 x3 2 0 1 0 -1 2 x4 0 0 0 1 1 8 x2 -1 1 0 0 1 4

4.2. Faça: iteração = iteração + 1, resultando em iteração = 1;

4.3. Retorne ao passo1.

O processo de resolução continua ... até chegarmos na tabela simplex final:

(25)

Tabela: Tabela simplex final. x1 x2 x3 x4 x5 b VB 0 0 32 0 12 0 + 8 + 2 = 11 x1 1 0 12 0 -12 1 x4 0 0 0 1 1 8 x2 0 1 12 0 12 5

(26)

Para uma boa alimentação, o corpo necessita de vitaminas e proteínas. A necessidade mínima de vitaminas é de 32 unidades por dia e a de proteínas de 36 unidades por dia. Uma pessoa tem disponível carne e ovos para se alimentar. Cada unidade de carne contém 4 unidades de vitaminas e 6 unidades de proteínas. Cada unidade de ovo contém 8 unidades de vitaminas e 6

unidades de proteínas. Qual a quantidade diária de carne e ovos que deve ser consumida para suprir as necessidades de

vitaminas e proteínas com o menor custo possível? Cada unidade de carne custa 3 unidades monetárias e cada unidade de ovo custa 2,5 unidades monetárias.

a) Obtenha o modelo de otimização linear para o problema acima; b) Obtenha todas as soluções básicas factíveis para o problema acima;

c) Determine a solução ótima, caso exista, do problema acima usando o método simplex em tabelas;

Referências

Documentos relacionados

Da Silva et al (2020) estudaram a variabilidade espacial do fator k em áreas comerciais de cana-de-açúcar, causadas pelas estruturas multivariadas de perdas de carbono em

Cláudia Alexandra Gomes Martins Pinto ADMITIDO(A) Cláudia Sofia Barbosa da Costa Ribeiro ADMITIDO(A) Constança dos Santos Elias Pereira Graça ADMITIDO(A). Cristiana da Silva Aveiro

As Despesas Gerais e Administrativas (G&amp;A) foram reduzidas em 50 bps como percentual da receita líquida no 3T12, na comparação com o 3T11, em virtude de alavancagem

14. Marleni beše priliĉno jasno da njena majka ne ţeli da govori o mogućem uništenju Zemlje, jer je u njoj postojala ta neprestana inhibirajuća koĉnica. Kada bi Marlana prestala

Seguindo esta linha de raciocínio, uma relação entre critérios competitivos e os grupos de indicadores apresentados também pode ser feita, e serve como um guia para que

Proponha Proponha uma uma função função chamada chamada inicializa() inicializa() que receba um vetor de inteiros, seu que receba um vetor de inteiros, seu tamanho,

AÇÕES ESTRATÉGICAS DE ENSINO ORIENTADAS PARA O PERFIL DOS ALUNOS/ ABORDAGEM.. INTERDISCIPLINAR DESCRITORES DO PERFIL DOS ALUNOS Sexualidade Temas: Conhecimento e valorização

Depois da ação do último jogador, os jogadores devem novamente jogar ou descartar cartas na ordem de ORGANIZAÇÃO (a ordem pode alterar-se caso algum jogador ganhe ou