aula3

29
Universidade do Minho 2010 Investigação Operacional 1 Investigação Operacional Métodos de Programaç ão Linear: Gráfica, Simplex Universidade do Minho - Escola de Engenharia Departamento de Produção e Sistemas Engenharia Civil (LEC) Universidade do Minho 2010 Investigação Operacional 2 Autoria Este conjunto de slides contém slides da autoria do Doutor Filipe Alvelos ([email protected] ) do Departamento de Produção e Sistemas da Universidade do Minho,

Upload: francisco

Post on 20-Jun-2015

197 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Aula3

1

Universidade do Minho2010

Investigação Operacional 1

Investigação OperacionalMétodos de Programação Linear: Gráfica, Simplex

Universidade do Minho - Escola de EngenhariaDepartamento de Produção e Sistemas

• Engenharia Civil (LEC)

Universidade do Minho2010

Investigação Operacional 2

Autoria

• Este conjunto de slides contém slides da autoria do Doutor Filipe Alvelos ([email protected]) do Departamento de Produção e Sistemas da Universidade do Minho,

Page 2: Aula3

2

Universidade do Minho2010

Investigação Operacional 3

Representação GráficaConsidere o seguinte problema de PL:

duas variáveis, permite a representação gráfica do problema

Universidade do Minho2010

Investigação Operacional 4

Representação GráficaNão negatividade Uma restrição

Page 3: Aula3

3

Universidade do Minho2010

Investigação Operacional 5

Representação GráficaDuas restrições

Universidade do Minho2010

Investigação Operacional 6

Representação GráficaConjunto de restrições

Page 4: Aula3

4

Universidade do Minho2010

Investigação Operacional 7

Representação GráficaEspaço de soluções

Universidade do Minho2010

Investigação Operacional 8

Representação GráficaFunção objectivo:

família de rectas

Page 5: Aula3

5

Universidade do Minho2010

Investigação Operacional 9

Representação Gráfica

Universidade do Minho2010

Investigação Operacional 10

Soluções de modelos de PLConjunto das soluções admissíveis pode ser

–Vazio–Não vazio (Limitado ou Ilimitado)

Um modelo de PL pode–Ser impossível–Ser ilimitado–Ter soluções óptimas alternativas*–Ter uma única solução óptima

Os dois primeiros casos, normalmente, indicam que o modelo de PLestá mal formulado ou houve erros na sua introdução, já que não éfrequente existirem problemas de decisão "reais" sem alternativas ou com alternativas tão boas quanto desejarmos.* Tipicamente, o software para PL só identifica uma solução óptima.

Page 6: Aula3

6

Universidade do Minho2010

Investigação Operacional 11

Universidade do Minho2010

Investigação Operacional 12

Algoritmos para PL

Page 7: Aula3

7

Universidade do Minho2010

Investigação Operacional 13

Simplex

Universidade do Minho2010

Investigação Operacional 14

SimplexConsidere um problema de maximização de lucro relacionado com duas actividades e três recursos.

Na tabela seguinte são dados os consumos unitários de cada recurso (A, B e C) por actividade (1 e 2), a disponibilidade de cada recurso e o lucro unitário de cada actividade.

Formule o problema através de um modelo de PL.

Page 8: Aula3

8

Universidade do Minho2010

Investigação Operacional 15

Simplex

• Temos 3 equações e 5 incógnitas (sistema de equações indeterminado).• Se fixarmos 2 variáveis a zero, temos 3 equações a 3 incógnitas e podemos determinar a solução desse sistema.

Universidade do Minho2010

Investigação Operacional 16

Simplex

Page 9: Aula3

9

Universidade do Minho2010

Investigação Operacional 17

Simplex

Universidade do Minho2010

Investigação Operacional 18

Simplex

Page 10: Aula3

10

Universidade do Minho2010

Investigação Operacional 19

Simplex

Universidade do Minho2010

Investigação Operacional 20

Simplex

Page 11: Aula3

11

Universidade do Minho2010

Investigação Operacional 21

Simplex

Universidade do Minho2010

Investigação Operacional 22

Simplex

Page 12: Aula3

12

Universidade do Minho2010

Investigação Operacional 23

Simplex

Universidade do Minho2010

Investigação Operacional 24

Simplex

Page 13: Aula3

13

Universidade do Minho2010

Investigação Operacional 25

Simplex

Universidade do Minho2010

Investigação Operacional 26

SimplexProblema geral: n variáveis, m equações.

Qualquer conjunto de m variáveis cujo sistema de equações tenha solução designa-se por base (exemplo, x3, x4, x5).

Dada uma base é fácil determinar a solução lhe está associada, basta fixar a 0 as variáveis que não fazem parte da base (variáveis não básicas, no exemplo dado x1 e x2) e resolver o sistema de equações para as restantes (variáveis básicas) - obtendo-se uma solução básica

ex. x 1=0, x2=0, x3=720, x4=880, x5=160

Page 14: Aula3

14

Universidade do Minho2010

Investigação Operacional 27

Simplex•Uma solução básica pode ser admissível ou não admissível (no exemplo, A,B,G,F,I correspondem a bases admissíveis e C,H,E,D a bases não admissíveis). Para saber se a base é admissível ou não basta ver se as restrições de não negatividade são satisfeitas.

Universidade do Minho2010

Investigação Operacional 28

Simplex•Uma solução básica pode ser admissível ou não admissível (no exemplo, A,B,G,F,I correspondem a bases admissíveis e C,H,E,D a bases não admissíveis). Para saber se a base é admissível ou não basta ver se as restrições de não negatividade são satisfeitas.•Já tínhamos chegado à conclusão de que se existe uma solução óptima finita, então há, pelo menos, um ponto extremo que é solução óptima. A cada ponto extremo está associada uma base admissível...•...então basta determinar todas as soluções básicas e o seu valor (na função objectivo) e ver qual é a solução que tem maior valor (problema de maximização).

Page 15: Aula3

15

Universidade do Minho2010

Investigação Operacional 29

Simplex•Determinar a solução associada a uma base é fácil: resolver um sistema de m equações a m incógnitas (método de Gauss-Jordan).•Só há um "pequeno" problema, o número de bases pode atingir

•Por exemplo, para um problema com 100 variáveis e 10 restrições esse número é 1.73e+13. Com a folha de cálculo Excel (Microsoft Office 2003) já não se consegue determinar esse valor para um problema com 2000variáveis e 250 restrições. O número de combinações é gigantesco para um problema pequeno!

( )!

! !n

m

nC

n m m=

Universidade do Minho2010

Investigação Operacional 30

Simplex•Algoritmo Simplex:

– começa-se numa base e vê-se se ela corresponde àsolução óptima (temos maneira de fazer isso?).

– Se for, temos a solução óptima. – Se não for, passamos para outra base (como?) que

pareça promissora (e como se vê isso?) e repetimos o procedimento.

•Não parece grande ideia, dado o número de bases ser tão grande... De facto, a análise (com base na teoria da complexidade) do comportamento do algoritmo simplex no pior caso não é muito simpática para este algoritmo (já foram construídos propositadamente problemas em que o simplex tinha de testar todas as bases!).

Page 16: Aula3

16

Universidade do Minho2010

Investigação Operacional 31

SimplexA boa notícia é que, em problemas reais, o

comportamento do algoritmo é muitíssimo melhor do que a análise para o pior caso da teoria da complexidade.•O algoritmo Simplex (na verdade, os algoritmos da classe de métodos Simplex, porque, na prática, hádiferenças consideráveis entre os diferentes algoritmos que se baseiam nestas ideias) continua a ser largamente o mais utilizado na resolução de problemas de PL reais.

•O Simplex é um exemplo clássico de como, por vezes, a análise teórica do pior caso, não é adequada àclassificação prática dos algoritmos.

Universidade do Minho2010

Investigação Operacional 32

Simplex•No seguinte problema qual é a base que tem uma solução mais fácil de calcular?

Page 17: Aula3

17

Universidade do Minho2010

Investigação Operacional 33

Simplex

•função objectivo: z-10x1-9x2-0x3-0x4-0x5=0•Os valores que aparecem nesta linha são denominados por custos reduzidos.

•A que solução corresponde o quadro simplex apresentado?

Universidade do Minho2010

Investigação Operacional 34

Simplex•Um quadro simplex que corresponda a uma solução básica admissível (primal) tem as seguintes características:

– Uma coluna correspondente a uma variável básica tem um 1 na linha associada à variável básica e zeros em todas as outras linhas (exemplo, a coluna de x5 tem um 1 na terceira linha -associada à variável x5 e zeros nas primeira e segunda linhas). Esta característica implica que as colunas das variáveis básicas formam uma matriz identidade.

– Na linha da função objectivo, todas as variáveis básicas têm coeficiente 0.

– Os termos independentes são sempre maiores ou iguais a zero (manter válida a não-negatividade).

Page 18: Aula3

18

Universidade do Minho2010

Investigação Operacional 35

Simplex•A cada quadro simplex corresponde uma solução básica admissível imediatamente perceptível através das variáveis básicas e da coluna dos termos independentes.

– No exemplo, x3=200, x4=230, x5=70.

•A solução associada ao quadro simplex é óptima?

Universidade do Minho2010

Investigação Operacional 36

Simplex•Não! Se se aumentar o valor de x1 ou x2 o valor de z aumenta (e pretende-se maximizar o valor de z). O que o coeficiente -10 de x1 (linha da função objectivo) significa é que por cada unidade de aumento de x1 o valor da função objectivo, aumenta 10 unidades (o sinal negativo é devido à mudança de membro efectuada inicialmente).

Page 19: Aula3

19

Universidade do Minho2010

Investigação Operacional 37

Simplex•Em cada iteração do simplex passa-se (da base actual) para uma base adjacente (que se obtém da actual passando uma variável não básica a básica e uma variável básica a não básica - o número de variáveis básicas éconstante).

Universidade do Minho2010

Investigação Operacional 38

Simplex•Qual a variável mais promissora para entrar na base?

Page 20: Aula3

20

Universidade do Minho2010

Investigação Operacional 39

Simplex•A variável mais promissora é x1 (aumento de 10 unidades na função objectivo por unidade de aumento de x1, para x2 esse valor é 9 o que é pior já que se está a maximizar).

– Isto é uma decisão gulosa, míope… não garante que seja a melhor decisão.

– E se houver empate? (custos reduzidos iguais)

Universidade do Minho2010

Investigação Operacional 40

Simplex

•Sendo assim x1 entra na base (passará a tomar um valor positivo)!

– Qual a variável que sai base?•Como o aumento do valor de x1 aumenta o valor da função objectivo, queremos aumentar o mais possível o seu valor.

– Qual é o limite?

Page 21: Aula3

21

Universidade do Minho2010

Investigação Operacional 41

Simplex• Tem de haver um limite (ou melhor, se não houver um limite o problema é ilimitado, mas não é esse o caso do exemplo).

O que acontece às outras variáveis quando se aumenta o valor de x1

A variável x2 continua não básica (logo com valor igual a 0).As outras relacionam-se com x1através das restrições.

Qual a variável que deve sair da base?

Universidade do Minho2010

Investigação Operacional 42

Simplex

Page 22: Aula3

22

Universidade do Minho2010

Investigação Operacional 43

Simplex

Universidade do Minho2010

Investigação Operacional 44

SimplexColuna pivot

Page 23: Aula3

23

Universidade do Minho2010

Investigação Operacional 45

SimplexColuna pivot

Universidade do Minho2010

Investigação Operacional 46

A variável que sai da base é x5, a primeira que se anula (logo passa a não básica) quando se tenta aumentar x1 o mais possível.

A razão entre o valor da coluna dos termos independentes e o valor da coluna da variável que vai entrar na base para todas as linhas (cujo valor seja positivo) e escolher a menor.

SimplexColuna pivot

Linha pivot

Page 24: Aula3

24

Universidade do Minho2010

Investigação Operacional 47

(Na resolução primal) O elemento pivot nunca pode ser negativo.

SimplexColuna pivot

Linha pivot

Universidade do Minho2010

Investigação Operacional 48

Se houver empate na saída?

– escolha indiferente: algoritmo pode entrar em ciclo

– escolhe-se a razão de maior divisor: sai x3

SimplexColuna pivot

Page 25: Aula3

25

Universidade do Minho2010

Investigação Operacional 49

Simplex•Como obter o quadro correspondente à nova base?

– Cada linha corresponde a uma equação de um sistema, logo• pode-se multiplicar toda a linha por uma constante• pode-se somar duas linhas, substituindo uma delas pelo

resultado da soma, que o sistema de equações não se altera (sóse altera a sua representação). No exemplo, a linha 3 (L3) é a linha pivot, fazendo as operações

L’3 = L3 / 2 (para a linha L3)

L1 - 5L’3 (para a linha L1) L2 - 4L’3 (para a linha L2)L4 + 10L’3 (para a linha L4)

•obtém-se o quadro simplex correspondente à nova base

Coluna pivot

Universidade do Minho2010

Investigação Operacional 50

Simplex

Para experimentar e/ou verificar cálculos:http://www.tutor.ms.unimelb.edu.au/simplex_intro/index.html

Page 26: Aula3

26

Universidade do Minho2010

Investigação Operacional 51

PROGRAMAÇÃO LINEAR - PL• Fizemos uma iteração do algoritmo simplex primal:

1. Teste de optimalidade (a solução básica actual é óptima se todos oscoeficientes da função objectivo (custos reduzidos) são não negativos). Se a solução é óptima, parar. Se não, prosseguir com o passo 2.

2. Decidir qual a variável que entra na base (é aquela que tem ocoeficiente mais negativo na linha da função objectivo - em casode empate escolher a variável que “crescerá mais”. Se persistir o empate, escolher arbitrariamente). Prosseguir com o passo 3.

3. Decidir qual a variável básica que sai da base (é aquela que tem arazão do critério de saída mais pequena - excluindo as razõesnegativas; em caso de empate, escolher o maior elemento pivot. Se persistir o empate, escolher arbitrariamente). Se não houver nenhuma razão estritamente positiva o problema é ilimitado, parar. Se não, prosseguir para 4.

4. Actualizar o quadro simplex para a base actual e passar à iteraçãoseguinte (passo 1).

Universidade do Minho2010

Investigação Operacional 52

Simplex

Page 27: Aula3

27

Universidade do Minho2010

Investigação Operacional 53

Simplex• O quadro simplex obtido em qualquer iteração corresponde sempre a uma solução básica admissível e a um ponto extremo.

• Quadro óptimo do exemplo (após duas iterações).

Universidade do Minho2010

Investigação Operacional 54

Simplex• Soluções alternativas

– O que são?

– Como se identifica a sua existência?

•Custo(s) reduzido(s) NULO(s) nas variáveis não básicas.

Page 28: Aula3

28

Universidade do Minho2010

Investigação Operacional 55

Simplex• Degenerescência…

– O algoritmo simplex pode entrar em ciclo (se não forem tomadas as devidas previdências) por causa da existência de soluções básicas degeneradas (soluções em que há variáveis básicas com valor zero).

– A causa é a presença de restrições redundantes (que não são fáceis de detectar analiticamente...). De uma iteração para a seguinte, pode acontecer que a base seja diferente, mas o valor das variáveis de decisão seja o mesmo (uma básica com valor zero sai da base e uma não básica entre na base com valor zero).

Universidade do Minho2010

Investigação Operacional 56

Simplex• Degenerescência…

– Na prática, o software actual tem implementadas formas de lidar com a degenerescência (através de regras mais sofisticadas do que escolher arbitrariamente a variável que entra na base em caso de empate).

– De qualquer maneira, em problemas muito degenerados, este fenómeno pode abrandar significativamente a execução do método.

Um só ponto extremo e duas bases!

Page 29: Aula3

29

Universidade do Minho2010

Investigação Operacional 57

Simplex•Como obter um quadro simplex válido para um problema que tenha restrições de igualdade e/ou de maior ou igual?

– Note-se que, se o problema só tiver restrições de "menor ou igual", temos sempre uma base "à mão": a constituída pelas variáveis de folga - como no exemplo anterior.

– O ponto de solução nula pertence ao espaço de soluções válidas, e forma -se a base com as variáveis de folga.

Universidade do Minho2010

Investigação Operacional 58

Simplex•Modelos (a) e (b) são equivalentes.

– O modelo (b) está na forma estandardizada e inclui uma vari ável de excesso (primeira restrição) e uma variável de folga (segunda restrição).

– Para a segunda linha é fácil encontrar uma variável básica inicial (tem coeficiente 1 na própria linha e 0 nas restantes).

– Qual a vari ável básica a associar à primeira linha? Não é claro. Não hánenhuma variável que tenha coeficiente 1 na própria linha e 0 nas restantes.

•Modifica-se o modelo por inclusão de variáveis artificiais ->vê-se isso na próxima aula