mÉtodo simplex 1mrpritt/oc/04-slides.pdf · mÉtodo simplex 1 mÉtodo simplex 1 marcusritt inf...

20
MÉTODO SIMPLEX 1 Marcus Ritt INF 05010 – Otimização combinatória — <2020-05-11 seg> 1

Upload: others

Post on 14-Dec-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Marcus RittINF 05010 – Otimização combinatória — <2020-05-11seg>

1

Page 2: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

MÉTODO SIMPLEX 1Outline

1. Método Simplex 1

2

Page 3: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Forma normal: Regras

1. Minimização para maximização

min ctx⇐⇒ −max−ctx

2. Sentido de uma desigualdade

aix ≥ bi ⇐⇒ −aix ≤ −bi

3. Igualdade para desigualdades

aix = bi ⇐⇒ aix ≤ bi ∧ aix ≥ bi

3

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 4: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Forma normal: Regras

4. Desigualdade para igualdade

aix ≤ b⇐⇒ aix + xn+1 = bi ∧ xn+1 ≥ 0aix ≥ b⇐⇒ aix− xn+1 = bi ∧ xn+1 ≥ 0

5. Variável irrestrita para não-negativas

x+i ≥ 0 ∧ x−

i ≥ 0xi = x+

i − x−i

4

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 5: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Forma normal: Exemplo

minimiza 3x1 − 5x2 + x3

sujeito a x1 − x2 − x3 ≥ 0,

5x1 + 3x2 + x3 ≤ 200,

2x1 + 8x2 + 2x3 ≤ 500,

x1, x2 ≥ 0.

5

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 6: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Solução de programas lineares

• Método gráfico: impraticável• Enumeração: exponencial• Porém: Existem algoritmos polinomiais para LP (e.g. método

de elipsoides)• Método Simplex: não é conhecidamente polinomial.

6

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 7: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Programa linear em forma normal

maximiza z = 6x1 + 8x2 + 5x3 + 9x4

sujeito a 2x1 + x2 + x3 + 3x4 ≤ 5,

x1 + 3x2 + x3 + 2x4 ≤ 3,

x1, x2, x3, x4 ≥ 0.

7

tikopro
Programa linear em forma normal:
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 8: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Introdução de varíáveis de folga

maximiza z = 6x1 + 8x2 + 5x3 + 9x4 (1)sujeito a w1 = 5− 2x1 − x2 − x3 − 3x4, (2)

w2 = 3− x1 − 3x2 − x3 − 2x4, (3)x1, x2, x3, x4, w1, w2 ≥ 0.

8

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 9: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Notação simplificada

z = 0 +6x1 +8x2 +5x3 +9x4w1 = 5 −2x1 −x2 −x3 −3x4,w2 = 3 −x1 −3x2 −x3 −2x4

• Simples nessa forma: extrair a solução viável e o seu valor

9

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 10: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Aumentar o valor de uma varíavel

z = 0 +6x1 +8x2 +5x3 +9x4w1 = 5 −2x1 −x2 −x3 −3x4,w2 = 3 −x1 −3x2 −x3 −2x4

10

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Observação: aumentar o valor de qq. variável nula com coeficiente positivo na função objetivo aumenta o valor da f.o.
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Qual o maior valor de x1 tal que a solução resultando ainda é viável?
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Qual o maior valor de x1 tal que a solução resultando ainda é viável?
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 11: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Candidatos

• Candidatos para o aumento: todas variáveis nulas comcoeficiente positivo

• No exemplo?• Regra de Dantzig: selecionar a variável de maior coeficiente

(desempate: arbitrário)

11

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 12: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Para o aumento de x4

w1 = 5− 3x4 ≥ 0⇐⇒ x4 ≤ 5/3w2 = 3− 2x4 ≥ 0⇐⇒ x4 ≤ 3/2

12

tikopro
tikopro
tikopro
tikopro
Page 13: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

O maior limite

• Uma variável nula tem um valor positivo• Uma variável básica tem valor 0

Logo:

• A variável nula vai entrar na base: variável entrante• A variável básica vai sair da base: variável sainte• Isso define um pivô

Para finalizar:• Re-escrever o dicionário• Equivalente à eliminação da variável nula do sistema

13

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 14: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Re-escrita

z = 0 +6x1 +8x2 +5x3 +9x4w1 = 5 −2x1 −x2 −x3 −3x4,w2 = 3 −x1 −3x2 −x3 −2x4

14

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 15: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Resultado

z = 27/2 +3/2x1 −11/2x2 +1/2x3 −9/2w2w1 = 1/2 −1/2x1 +7/2x2 +1/2x3 +3/2w2x4 = 3/2 −1/2x1 −3/2x2 −1/2x3 −1/2w2

15

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 16: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

(Branco)

16

Page 17: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Segundo pivô

z = 15 −3w1 +5x2 +2x3x1 = 1 −2w1 +7x2 +x3 +3w2x4 = 1 +w1 −5x2 −x3 −2w2

17

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 18: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Terceiro pivô

z = 16 −2w1 −x4 +x3 −2w2x1 = 12/5 −3/5w1 −7/5x4 −2/5x3 +1/5w2x2 = 1/5 +1/5w1 −1/5x4 −1/5x3 −2/5w2

18

tikopro
tikopro
tikopro
Page 19: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Quarto passo

z = 17 −w1 −2x4 −5x2 −4w2x1 = 2 −w1 −x4 +2x2 +w2x3 = 1 +w1 −x4 −5x2 −2w2

19

tikopro
tikopro
tikopro
tikopro
Page 20: MÉTODO SIMPLEX 1mrpritt/oc/04-slides.pdf · MÉTODO SIMPLEX 1 MÉTODO SIMPLEX 1 MarcusRitt INF 05010 – Otimização combinatória —  1

1 MÉTODO SIMPLEX 1

MÉTODO SIMPLEX 1

Parada

• O que acontece caso não tem mais candidatos para entrar?• O método para• Nota: corretude parcial segue

z = 17− w1 − 2x4 − 5x2 − 4w2 ≤ 17

• Sem repetir bases: corretude total

20