60
PROGRAMAÇÃO LINEAR 17 DE SETEMBRO DE 2008

PROGRAMAÇÃO LINEAR

Embed Size (px)

DESCRIPTION

PROGRAMAÇÃO LINEAR. 17 DE SETEMBRO DE 2008. 1. Definição 2. Aplicações 3. Problema Ilustrativo 3.1 Enunciado 3.2 Dados Físicos e Econômicos 3.3 Modelo Matemático 3.4 Balanço de Informação e Varáveis de Projeto 3.5 Critério e Função Objetivo 3.6 Restrições - PowerPoint PPT Presentation

Citation preview

Page 1: PROGRAMAÇÃO LINEAR

PROGRAMAÇÃO LINEAR

17 DE SETEMBRO DE 2008

Page 2: PROGRAMAÇÃO LINEAR

1. Definição

2. Aplicações

3. Problema Ilustrativo

3.1 Enunciado

3.2 Dados Físicos e Econômicos

3.3 Modelo Matemático

3.4 Balanço de Informação e Varáveis de Projeto

3.5 Critério e Função Objetivo

3.6 Restrições

3.7 Região Viável

3.8 Resolução

3.9 Algoritmo SIMPLEX (conjuntos ativos)

3.10 Algoritmo Karmarkar (ponto interior)

Page 3: PROGRAMAÇÃO LINEAR

1. DEFINIÇÃO

Page 4: PROGRAMAÇÃO LINEAR

todas as Restrições são lineares

a11 x1 + a12 x2 + ... + a1n xn b1

a21 x1 + a22 x2 + ... + a2n xn b2

...

am1 x1 + am2 x2 + ... + amn xn bm

a Função Objetivo é linear

F(x) = c1 x1 + c2 x2 + ... + cn xn

O Problema de Programação Linear

é um tipo especial de problema de otimização em que

Page 5: PROGRAMAÇÃO LINEAR

2. APLICAÇÕES

etc...

planejamento de produção industrial

transportes: rodoviário, ferroviário, fluvial, marítimo, aéreo

logística

produção e distribuição de energia

militar

Page 6: PROGRAMAÇÃO LINEAR

3. PROBLEMA ILUSTRATIVO

Planejamento da Produção de uma Refinaria(adaptado de Edgar & Himmelblau, pg. 254)

Page 7: PROGRAMAÇÃO LINEAR

A partir de cada um deles, pode-se produzir:

- gasolina (G)- querosene (Q)- óleo combustível (C)- óleo residual (R).

Uma refinaria pode receber dois tipos de óleo cru: O1 e O2.

- a partir de cada óleo, quanto a refinaria deve produzir de - gasolina (x31, x32) - querosene (x41, x42) - óleo combustível (x51, x52) - óleo residual (x61, x62)

Determinar

- quantos barris/dia (b/d) a refinaria deve adquirir de cada óleo cru (x1, x2).

3.1 ENUNCIADO

Page 8: PROGRAMAÇÃO LINEAR

Para se resolver este problema, é preciso conhecer:

Preço de cada óleo cru

Custo do processamento

Perfil de produção: quanto se pode produzir de gasolina, querosene, óleo combustível e óleo residual a partir de cada óleo cru.

Preços de venda dos produtos

Limites de produção

Page 9: PROGRAMAÇÃO LINEAR

Processamento do Óleo O1:- preço do óleo: p1 = 24 $/b- custo de processamento: c1 = 0,50 $/b- perfil de produção: gasolina 80%, querosene 5%, óleo combustível 10% e óleo residual 5%.

Processamento do Óleo O2:- preço do óleo: p2 = 15 $/b- custo de processamento: c2 = 1,0 $/b- perfil de produção: gasolina 44%, querosene 10%, óleo combustível 35% e óleo residual 10%.

Preço de venda dos produtosp3 = 36 $/b (gasolina)p4 = 24 $/b (querosene)p5 = 21 $/b (óleo combustível)p6 = 10 $/b (óleo residual)

Produção máxima de cada produtox3max = 24.000 b/d (x3 = x31 + x32)x4max = 2.000 b/d (x4 = x41 + x42)x5max = 6.000 b/d (x5 = x51 + x52)

3.2 DADOS FÍSICOS E ECONÔMICOS

Page 10: PROGRAMAÇÃO LINEAR

0,80 b3/b1

0,05 b4/b1

0,10 b5/b1

0,05 b6/b1

C1 = 0,50 $/b

C2 = 1 $/b

0,44 b3/b2

0,10 b4/b2

0,36 b5/b2

0,10 b6/b2

x32

x42

x52

x62

x31

x41

x51

x61

G

Q

C

R

p2 = 15 ($/b)

p1 = 24 ($/b)

x1 (b/d)

x2 (b/d)

CRÚS

x3(b/d)

x4(b/d)

x5(b/d)

x6(b/d)

PRODUTOS

p3 = 36($/b); x3max= 24.000(b/d)

p4 = 24($/b); x4max= 2.000(b/d)

p5 = 21($/d); x5max= 6.000(b/d)

p6=10($/b)

O1

O2

Dados resumidos em Fluxograma

Page 11: PROGRAMAÇÃO LINEAR

Modelo Matemático ?Balanço de Informação ?Variáveis de Projeto ?Critério ?Função Objetivo ?Restrições ?Região Viável ?

Como em qualquer problema de Análise de Processos

Page 12: PROGRAMAÇÃO LINEAR

Gasolina : 0,80 x1 + 0,44 x2 = x3

Querosene : 0,05 x1 + 0,10 x2 = x4

Combustível: 0,10 x1 + 0,36 x2 = x5

Residual : 0,05 x1 + 0,10 x2 = x6

Balanços de Massa

0,80 b3/b1

0,05 b4/b1

0,10 b5/b1

0,05 b6/b1

C1 = 0,50 $/b

C2 = 1 $/b

0,44 b3/b2

0,10 b4/b2

0,36 b5/b2

0,10 b6/b2

x32

x42

x52

x62

x31

x41

x51

x61

G

Q

C

R

p2 = 15 ($/b)

p1 = 24 ($/b)

x1 (b/d)

x2 (b/d)

PRODUTOSCRÚS

x3(b/d)

x4(b/d)

x5(b/d)

x6(b/d)

p3 = 36($/b); x3max= 24.000(b/d)

p4 = 24($/b); x4max= 2.000(b/d)

p5 = 21($/d); x5max= 6.000(b/d)

p6=10($/b)

O1

O2

3.3 MODELO MATEMÁTICO

Page 13: PROGRAMAÇÃO LINEAR

Balanço de Informação

G = V – N = 6 – 4 G = 2

Variáveis de Projeto: x1 e x2

0,80 b3/b1

0,05 b4/b1

0,10 b5/b1

0,05 b6/b1

C1 = 0,50 $/b

C2 = 1 $/b

0,44 b3/b2

0,10 b4/b2

0,36 b5/b2

0,10 b6/b2

x32

x42

x52

x62

x31

x41

x51

x61

G

Q

C

R

p2 = 15 ($/b)

p1 = 24 ($/b)

x1 (b/d)

x2 (b/d)

PRODUTOSCRÚS

x3(b/d)

x4(b/d)

x5(b/d)

x6(b/d)

p3 = 36($/b); x3max= 24.000(b/d)

p4 = 24($/b); x4max= 2.000(b/d)

p5 = 21($/d); x5max= 6.000(b/d)

p6=10($/b)

O1

O2

3.4 BALANÇO DE INFORMAÇÃO E VARIÁVEIS DE PROJETO

Gasolina : 0,80 x1 + 0,44 x2 = x3

Querosene : 0,05 x1 + 0,10 x2 = x4

Combustível: 0,10 x1 + 0,36 x2 = x5

Residual : 0,05 x1 + 0,10 x2 = x6

Balanços de Massa

Page 14: PROGRAMAÇÃO LINEAR

Receita (R): 36 x3 + 24 x4 + 21 x5 + 10 x6

Custos de MatPrim (CMP) : 24 x1 + 15 x2

Custos Processamento (CP): 0,50 x1 + x2

Função Objetivo

L = R – CMP - CP

L = 36 x3 + 24 x4 + 21 x5 + 10 x6 - 24 x1 - 15 x2 - 0,50 x1 - x2

0,80 b3/b1

0,05 b4/b1

0,10 b5/b1

0,05 b6/b1

C1 = 0,50 $/b

C2 = 1 $/b

0,44 b3/b2

0,10 b4/b2

0,36 b5/b2

0,10 b6/b2

x32

x42

x52

x62

x31

x41

x51

x61

G

Q

C

R

p2 = 15 ($/b)

p1 = 24 ($/b)

x1 (b/d)

x2 (b/d)

PRODUTOSCRÚS

x3(b/d)

x4(b/d)

x5(b/d)

x6(b/d)

p3 = 36($/b); x3max= 24.000(b/d)

p4 = 24($/b); x4max= 2.000(b/d)

p5 = 21($/d); x5max= 6.000(b/d)

p6=10($/b)

O1

O2

3.5 CRITÉRIO E FUNÇÃO OBJETIVO

Critério

Maximização do Lucro

Page 15: PROGRAMAÇÃO LINEAR

Restrições de Igualdade (modelo)Gasolina : 0,80 x1 + 0,44 x2 = x3

Querosene : 0,05 x1 + 0,10 x2 = x4

Combustível : 0,10 x1 + 0,36 x2 = x5

Residual : 0,05 x1 + 0,10 x2 = x6

Restrições de DesigualdadeGasolina : x3 24.000Querosene : x4 2.000 Combustível : x5 6.000

Óleos crus : x1 0 e x2 0

0,80 b3/b1

0,05 b4/b1

0,10 b5/b1

0,05 b6/b1

C1 = 0,50 $/b

C2 = 1 $/b

0,44 b3/b2

0,10 b4/b2

0,36 b5/b2

0,10 b6/b2

x32

x42

x52

x62

x31

x41

x51

x61

G

Q

C

R

p2 = 15 ($/b)

p1 = 24 ($/b)

x1 (b/d)

x2 (b/d)

PRODUTOSCRÚS

x3(b/d)

x4(b/d)

x5(b/d)

x6(b/d)

p3 = 36($/b); x3max= 24.000(b/d)

p4 = 24($/b); x4max= 2.000(b/d)

p5 = 21($/d); x5max= 6.000(b/d)

p6=10($/b)

O1

O2

3.6 RESTRIÇÕES

Min f(x) Função Objetivo x Variáveis de Projetos.a.: g(x) 0 Restr. desigualdade h(x) = 0 Restr. igualdade

Page 16: PROGRAMAÇÃO LINEAR

Incorporando as Restrições de Igualdade

à Função Objetivo

Resulta

L(x) = 8,1 x1 + 10,8 x2

Gasolina : 0,80 x1 + 0,44 x2 = x3

Querosene : 0,05 x1 + 0,10 x2 = x4

Combustível : 0,10 x1 + 0,36 x2 = x5

Residual : 0,05 x1 + 0,10 x2 = x6

L = 36 x3 + 24 x4 + 21 x5 + 10 x6 - 24 x1 - 15 x2 - 0,50 x1 - x2

Page 17: PROGRAMAÇÃO LINEAR

max L(x) = 8,1 x1 + 10,8 x2

{x1, x2}

s.a.: 0,80 x1 + 0,44 x2 24.000 0,05 x1 + 0,10 x2 2.000 0,10 x1 + 0,36 x2 6.000 x1 0 x2 0

Enunciado Formal do Problema

Page 18: PROGRAMAÇÃO LINEAR

x2 = L/10,8 – (8,1/10,8) x1 (família de retas)

Função Objetivo

L(x) = 8,1 x1 + 10,8 x2 (linear)

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)L=81.000

L=162.000

L=243.000L=324.000

L=648.000

Page 19: PROGRAMAÇÃO LINEAR

0,80 x1 + 0,44 x2 24.000 (gasolina)0,05 x1 + 0,10 x2 2.000 (querosene) 0,10 x1 + 0,36 x2 6.000 (combustível) x1 0x2 0

região convexa !

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

Egasolina

querosene

óleo

Qualquer ponto no interior ou sobre a fronteira da Região Viável é uma Solução Viável

3.7 REGIÃO VIÁVEL

Page 20: PROGRAMAÇÃO LINEAR

3.8 RESOLUÇÃO

Page 21: PROGRAMAÇÃO LINEAR

Solução Ótima

Solução (D):(26.207, 6.897)

(L=286.764)

É a solução viável correspondente ao valor máximo do Lucro

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina

81.000

162.000

243.000 324.000

Em duas dimensões, a identificação visual da Solução Ótima é imediata.

Page 22: PROGRAMAÇÃO LINEAR

Solução (C):(14.000, 13.000)

(L = 637.000)

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina

Com outros valores dos parâmetros físicos e econômicos, a inclinação da Função Objetivo seria outra e a solução seria outra.

A Solução Ótima se localiza em pelo menos um dos Vértices da Região Viável

Page 23: PROGRAMAÇÃO LINEAR

Como automatizar a busca pelo o vértice ótimo?

Busca Exaustiva

Método dos Conjuntos Ativos

Método do Ponto Interior

Page 24: PROGRAMAÇÃO LINEAR

Métodos da busca exaustiva e dos conjuntos ativos

Ignorando os pontos interiores, restringindo a busca à fronteira da região viável e, na fronteira, restringindo a busca aos vértices.

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina

Solução:(26.207, 6.897)

(L=286.764)

81.000

162.000

243.000

324.000

0

(como???)

Page 25: PROGRAMAÇÃO LINEAR

Para tanto, os passos são os seguintes:

1. Restringir a busca à fronteira da região viável

2. Restringir a busca, na fronteira, aos vértices

Transformando as restrições de desigualdade em restrições de igualdade

Busca exaustiva: examinar todos os vértices das restrições

explosão combinatória

Conjuntos Ativos: examinar os vértices da região viável

método Simplex

Page 26: PROGRAMAÇÃO LINEAR

Variável de Folga

No método dos conjuntos ativos, pode ser operada com o auxílio do conceito de

Transformando as restrições de desigualdade em restrições de igualdade

Page 27: PROGRAMAÇÃO LINEAR

Folga

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

F

G

Hgasolina

querosene

óleo

Exemplo: ponto I (folgas na produção de gasolina, querosene e óleo)

f1 = 11.600 b/df2 = 500 b/df3 = 1.400 b/d

I

Gasolina : 0,80 x1 + 0,44 x2 = x3=12.400 (24.000)Querosene : 0,05 x1 + 0,10 x2 = x4 = 1.500 (2.000)Combustível: 0,10 x1 + 0,36 x2 = x5 = 4.600 (6.000)

Qualquer ponto (x1, x2) no interior da Região Viável corresponde a uma produção inferior à máxima de cada produto (folga, fi).

Page 28: PROGRAMAÇÃO LINEAR

Folga

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

F

G

Hgasolina

querosene

óleo

Qualquer ponto (x1, x2) localizado sobre um restrição corresponde à produção máxima do produto respectivo.

f1 = 9.889 b/df2 = 111 b/df3 = 0 b/d

J13,9

Gasolina : 0,80 x1 + 0,44 x2 = x3=14.111 (24.000)Querosene : 0,05 x1 + 0,10 x2 = x4 = 1.889 (2.000)Combustível : 0,10 x1 + 0,36 x2 = x5 = 6.000 (6.000)

Exemplo: ponto J (produção máxima de óleo = 6.000 b/d: f3 = 0)

Page 29: PROGRAMAÇÃO LINEAR

Folga

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

F

G

Hgasolina

querosene

óleo

Qualquer ponto (x1, x2) localizado sobre um vértice corresponde à produção máxima dos 2 produtos respectivos.

f1 = 0 b/df2 = 0 b/d

f3 = 2.541 b/d

Gasolina : 0,80 x1 + 0,44 x2 = x3=24.000 (24.000)Querosene : 0,05 x1 + 0,10 x2 = x4 = 2.000 (2.000)Combustível : 0,10 x1 + 0,36 x2 = x5 = 3.459 (6.000)

Exemplo: ponto D (produção máxima de gasolina e de querosene: f1 = 0, f2 = 0)

Page 30: PROGRAMAÇÃO LINEAR

A desejada transformação das restrições de desigualdade em restrições de igualdade é obtida

incorporando as folgas às restrições de desigualdade

Page 31: PROGRAMAÇÃO LINEAR

Max L(x) = 8,1 x1 + 10,8 x2

{x1, x2}s.a.: 0,80 x1 + 0,44 x2 24.000 (gasolina) 0,05 x1 + 0,10 x2 2.000 (querosene) 0,10 x1 + 0,36 x2 6.000 (combustível) x1 0 x2 0

Incorporando as folgas fi às restrições de desigualdade

Max L(x) = 8,1 x1 + 10,8 x2

{x1, x2}s.a.: 0,80 x1 + 0,44 x2 + 0,05 x1 + 0,10 x2 + 0,10 x1 + 0,36 x2 + x1 0 x2 0

f1f2

f3

= 24.000 (gasolina) = 2.000 (querosene) = 6.000(combustível)

Page 32: PROGRAMAÇÃO LINEAR

A qualquer par de valores das variáveis de projeto, corresponde uma solução. Logo, o problema exibe uma infinidade de soluções viáveis.

V = 5 : N = 3 : G = 2 !!!

As restrições de igualdade formam agora um sistema de equações lineares.

0,80 x1 + 0,44 x2 + 0,05 x1 + 0,10 x2 + 0,10 x1 + 0,36 x2 +

f1f2

f3

= 24.000 (gasolina) = 2.000 (querosene) = 6.000(combustível)

Mas, agora, todas localizadas na fronteira da região viável

Page 33: PROGRAMAÇÃO LINEAR

10 20 30 400

10

20

0

x1

(1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina

Solução:(26.207, 6.897)

(L=286.764)

81.000

162.000

243.000

324.000

0

Uma solução trivial é: x1 = 0, x2 = 0

Corresponde a uma vértice especial: a origem, onde L = 0

Page 34: PROGRAMAÇÃO LINEAR

2. Na fronteira, restringir a busca aos vértices.

Page 35: PROGRAMAÇÃO LINEAR

0,80 x1 + 0,44 x2 + 0,05 x1 + 0,10 x2 + 0,10 x1 + 0,36 x2 +

f1f2

f3

= 24.000 (gasolina) = 2.000 (querosene) = 6.000(combustível)

0,68 x1 – 1,22 f3 + 0,02 x1 – 0,78 f3 + 0,28 x1 + 2,78 f3 +

f1f2

x2

= 16.667 (gasolina) = 333 (querosene) = 16.667(combustível)

Parte-se do fato de que o sistema de restrições de igualdade pode ser re-escrito sob diversas formas.

Forma Original

Uma das formas alternativas

Com x1 = 0 e x2 = 0 vértice A (origem)

Com x1 = 0 e f3 = 0 vértice B

Page 36: PROGRAMAÇÃO LINEAR

Uma forma de examinar apenas os vértices da região viável consiste em reescrever o sistema sob formas diferentes e atribuir

o valor zero às variáveis de projeto correspondentes

Portanto...

Page 37: PROGRAMAÇÃO LINEAR

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina

Solução:(26.207, 6.897)

(L=286.764)

81.000

162.000

243.000

324.000

0

Ax1 = 0x2 = 0f1 = 24.000f2 = 2.000f3 = 6.000

Bx1 = 0x2 = 16.667f1 = 16.667f2 = 333f3 = 0

Cx1 = 15.000x2 = 12.500f1 = 6.500f2 = 0f3 = 0

Dx1 = 26.207x2 = 6.897f1 = 0f2 = 0f3 = 897

Ex1 = 30.000x2 = 0f1 = 0f2 = 500f3 = 3.000

Examinando os valores de x1, x2, f1, f2 e f3 em cada vértice

Page 38: PROGRAMAÇÃO LINEAR

Ax1 = 0x2 = 0f1 = 24.000f2 = 2.000f3 = 6.000

Bx1 = 0x2 = 16.667f1 = 16.667f2 = 333f3 = 0

Cx1 = 15.000x2 = 12.500f1 = 6.500f2 = 0f3 = 0

Dx1 = 26.207x2 = 6.897f1 = 0f2 = 0f3 = 897

Ex1 = 30.000x2 = 0f1 = 0f2 = 500f3 = 3.000

O SIMPLEX parte da origem e visita vértices adjacentes na busca da solução ótima, invertendo sucessivamente o papel de 2 variáveis: uma do problema (básica) e uma de projeto (não-básica).

Inverter os papéis de duas variáveis, consiste em reescrever o sistema de equações em termos de uma outra base.

3.9 Algoritmo SIMPLEX (Dantzig, 1947)

Page 39: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3 b

0,80 0,44 1 0 0 24.000

0,05 0,10 0 1 0 2.000

0,1 0,36 0 0 1 6.000

8,10 10,80 0 0 0 L

0,80 x1 + 0,44 x2 + 0,05 x1 + 0,10 x2 + 0,10 x1 + 0,36 x2 +

L(x) = 8,1 x1 + 10,8 x2

f1f2

f3

= 24.000 (gasolina) = 2.000 (querosene) = 6.000(combustível)

A mudança de base é executada aplicando o Algoritmo de Gauss-Jordan à Matriz Aumentada (Tableau) do sistema de

equações lineares.

O Lucro é incluído na matriz para que os seus coeficientes sofram as mesmas transformações e fique expresso automaticamente na nova

base.

Page 40: PROGRAMAÇÃO LINEAR

Projeto Problema

Identifica-se a variável de projeto de maior coeficiente positivo na expressão do Lucro (a que mais contribui para o aumento do Lucro). OBS: coeficiente mais negativo no caso de minimização.

Problema Projeto

Identifica-se o menor valor positivo de b/a, sendo b o vetor dos termos independentes (coluna da direita) e a o vetor dos coeficientes na coluna da variável de projeto escolhida acima. (corresponde a restrição mais próxima ao aumentar a variável de projeto)

Critério para a troca de papéis (PIVOTAMENTO)

L(x) = 8,1 x1 + 10,8 x2 : x1 = x2 = 0 L = 0

aumento em x2 contribui mais para o aumento de L

Page 41: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3

0,80 0,44 1 0 0 24.000

0,05 0,10 0 1 0 2.000

0,1 0,36 0 0 1 6.000

8,10 10,80 0 0 0 L

x1 x2 f1 f2 f3

x2 x2

f3 f3

Pivô = a32 = 0,36

Divide-se a linha do pivô pelo pivô. Em seguida: aij = aij – ai2 a3j

0,68 0,00 1,00

0,28 2,78 16.6671 0 0

Ex.: a11=0,80 – 0,44 x 0,28 = 0,68

0,36

b/ai2

54.545

20.000

16.667

0,00 -1,22 16.667

Page 42: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3

0,80 0,44 1 0 0 24.000

0,05 0,10 0 1 0 2.000

0,1 0,36 0 0 1 6.000

8,10 10,80 0 0 0 L

x1 x2 f1 f2 f3

0,68 0 1 0 -1,22 16.667

0,02 0 0 1 -0,28 333

0,28 1 0 0 2,78 16.667

5,10 0 0 0 -30 L - 180.000

Com x1 = f3 = 0 L = 180.000

x2 x2

f3 f3

Resultado da eliminação Gaussiana: Ponto B

Page 43: PROGRAMAÇÃO LINEAR

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina81.000

162.000

243.000

324.000

0

x1 x2 f1 f2 f3

0,68 0 1 0 -1,22 16.667

0,02 0 0 1 -0,28 333

0,28 1 0 0 2,78 16.667

5,10 0 0 0 -30 L - 180.000

Ponto B

Com x1 = f3 = 0 L = 180.000

Page 44: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3

0,68 0 1 0 -1,22 16.667

0,02 0 0 1 -0,28 333

0,28 1 0 0 2,78 16.667

5,10 0 0 0 -30 L - 180.000

x1 x2 f1 f2 f3

0 0 1 -30,5 7,25 6.500

1 0 0 45 -12,5 15.000

0 1 0 -12,5 6,25 12.500

0 0 0 -229,5 33,75 L - 256.500

Com f2 = f3 = 0 L = 256.500

x1 x1

f2 f2

Divide-se a linha do pivô pelo pivô. Em seguida: aij = aij – ai1 a2j

b/ai1

24.510

16.650

59.525

Pivô = a21 = 0,02

0,02

Page 45: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3

0 0 1 -30,5 7,25 6.500

1 0 0 45 -12,5 15.000

0 1 0 -12,5 6,25 12.500

0 0 0 -229,5 33,75 L - 256.500

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina81.000

162.000

243.000

324.000

0

Ponto C

Com f2 = f3 = 0 L = 256.500

Page 46: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3

0 0 1 -30,5 7,25 6.500

1 0 0 45 -12,5 15.000

0 1 0 -12,5 6,25 12.500

0 0 0 -229,5 33,75 L - 256.500

x1 x2 f1 f2 f3

0 0 0,14 4,21 1 897

1 0 1,72 -7,59 0 26.207

0 1 -0,86 13,79 0 6.897

0 0 -4,66 -87,52 0 L - 286.765

Com f1 = f2 = 0 L = 286.765

f3 f3

f1 f1

Divide-se a linha do pivô pelo pivô. Em seguida: aij = aij – ai5 a1j

b/ai5

896,55

-1.200

2.000

Pivô = a15 = 7,25

7,25

Page 47: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3

0 0 0,14 4,21 1 897

1 0 1,72 -7,59 0 26.207

0 1 -0,86 13,79 0 6.897

0 0 -4,66 -87,52 0 L - 286.765

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina81.000

162.000

243.000

324.000

0

Ponto D

Com f1 = f2 = 0 L = 286.765

Page 48: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3

0 0 0,14 4,21 1 897

1 0 1,72 -7,59 0 26.207

0 1 -0,86 13,79 0 6.897

0 0 -4,66 -87,52 0 L - 286.765

Ponto D

Com f1 = f2 = 0 L = 286.765

Nenhuma para entrar FIM

Projeto Problema

Identifica-se a variável de projeto de maior coeficiente POSITIVO na expressão do Lucro (a que mais contribui para o aumento do Lucro)

Page 49: PROGRAMAÇÃO LINEAR

0 0 0,14 4,21 1 x1 897

1 0 1,72 -7,59 0 x2 26.207

0 1 -0,86 13,79 0 f1 = 6.897

0 0 -4,66 -87,52 0 f2 L - 286.765

f3

Ponto D

Com f1 = f2 = 0

x1= 26.207x2 = 6.897

f3 = 897

L = 286.764

Page 50: PROGRAMAÇÃO LINEAR

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleo

querosene

gasolina81.000

162.000

243.000

324.000

0

Solução: Ponto Dx1= 26.207x2 = 6.897

gasolina = 24.000 (f1 = 0)querosene = 2.000 (f2 = 0)

óleo = 5.103 (f3 = 897)

L = 286.764

Page 51: PROGRAMAÇÃO LINEAR

x1 x2 f1 f2 f3

0 0 0,14 4,21 1 897

1 0 1,72 -7,59 0 26.207

0 1 -0,86 13,79 0 6.897

0 0 -4,66 -87,52 0 L - 286.765

Análise de Sensibilidade

Pode ser efetuada através dos valores implícitos (“shadow prices” ou “custos marginais”) dos produtos, que aparecem na última linha do Tableau Final, com sinal trocado. Corresponde aos multiplicadores de Lagrange das restrições ativas.

bL = -

Por ex.: um aumento de 100 b/d de gasolina (restrição ativa f1) implicaria em um aumento de 100 * 4,66 = 466 $/d no lucro da unidade.

Page 52: PROGRAMAÇÃO LINEAR

Ou seja, cada b/d produzido de gasolina contribui internamente com 4,66 $/d para o lucro, enquanto que seu preço de venda no mercado externo é de 36 $/b.

Page 53: PROGRAMAÇÃO LINEAR

Métodos do Ponto Interior

Restringe a busca aos pontos interiores da região viável.

10 20 30 400

10

20

0

x1 (1.000 b/d)

x2

(1.000 b/d)

A

B

C

D

E

óleoquerosene

gasolina

Solução:(26.207, 6.897)

(L=286.764)

81.000

162.000

243.000

324.000

0

(como???)

Page 54: PROGRAMAÇÃO LINEAR

3.10 Algoritmo de Karmarkar (1984, Dikin, 1967)

max {f(x) = cT x} {x}sujeito a: A x b x 0

origem

d

dp

dr

Aplica uma projeção do vetor direção (d = f = c) no espaço nulo das restrições transformadas em igualdade.

A busca segue então na direção projetada até as proximidades de uma restrição, obtendo o ponto xk.

Page 55: PROGRAMAÇÃO LINEAR

e reformulado para que o ponto de partida do próximo estágio esteja eqüidistante de todos os hiperplanos que formam o poliedro (ou seja, o centróide):

A x = A DD1 x = A D xk+1

f(x) = cT DD1 x = cT D xk+1

resultando no novo problema:

max f(x) = cT D x{x}sujeito a: A D x b

x 0

Repetindo o procedimento até a convergência.

O problema é então normalizado por:

xk+1 = D1 x , onde D = diag(xk)

Page 56: PROGRAMAÇÃO LINEAR

Algoritmo de Karmarkar

Entrada: A, b, c, x0, critério de parada e

max {f(x) = cT x} {x}sujeito a: A x b x 0

Page 57: PROGRAMAÇÃO LINEAR

Solução do problema no MATLAB

c=[8.1; 10.8];A=[0.8 0.44 0.05 0.1 0.1 0.36];b=[24000; 2000; 6000];lb=zeros(2,1);x0=[0; 0];

% conjuntos ativos: simplexop=optimset('LargeScale','off','Display','final');[x,S,eflag,out,lambda]=linprog(-c,A,b,[],[],lb,[],x0,op)

x = [26206.90; 6896.55]

S = -286758.62

out = iterations: 3 algorithm: 'medium-scale: activeset'

lambda.ineqlin = [4.66; 87.52; 0.00]

Page 58: PROGRAMAÇÃO LINEAR

Solução do problema no MATLAB

c=[8.1; 10.8];A=[0.8 0.44 0.05 0.1 0.1 0.36];b=[24000; 2000; 6000];lb=zeros(2,1);x0=[0; 0];

% ponto interior: S. Mehrotra, 1992op=optimset('LargeScale','on','Display','iter','MaxIter',100,'TolFun',1e-4);[x,S,eflag,out,lambda]=linprog(-c,A,b,[],[],lb,[],[],op)

x = [26206.89; 6896.55]

S = -286758.55

out = iterations: 4 algorithm: 'lipsol‘

lambda.ineqlin = [4.66; 87.52; 0.00]

Page 59: PROGRAMAÇÃO LINEAR

PROBLEMA

Page 60: PROGRAMAÇÃO LINEAR

Uma empresa possui duas plantas de alquilados (A1 e A2), cujos produtos são distribuídos a 3 clientes (C1, C2 e C3).

C1 C2 C3

A1 25 60 75

A2 20 50 85

Custos de Transporte ($/ton)

A produção máxima (ton/d) de cada planta é: A1 = 1,6 : A2 = 0,8

A demanda mínima (ton/d) de cada cliente é: C1 = 0,9 : C2 = 0,7 : C3 = 0,3

O custo de produção da planta A1 é de $30/ton até 0,5 ton/d ou de $40/ton acima de 0,5 ton/d. O custo de produção da planta A2 é de $35/ton (qualquer nível).

Qual deve ser o esquema de produção e de distribuição da empresa que minimiza o seu custo total ?