27
Universidade do Minho 2007 Investigação Operacional José António Oliveira – [email protected] 18 Simplex Universidade do Minho 2007 Investigação Operacional José António Oliveira – [email protected] 19 Simplex Considere 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.

Simplex - pessoais.dps.uminho.ptpessoais.dps.uminho.pt/zan/IO_TSI/Aula5.pdf · 1 Universidade do Minho 2007 Investigação Operacional José António Oliveira – [email protected]

Embed Size (px)

Citation preview

1

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

18

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

19

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.

2

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

20

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 Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

21

Simplex

3

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

22

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

23

Simplex

4

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

24

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

25

Simplex

5

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

26

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

27

Simplex

6

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

28

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

29

Simplex

7

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

30

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

31

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. x1=0, x2=0, x3=720, x4=880, x5=160

8

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

32

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

33

Simplex

9

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

34

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

35

Simplex

10

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

36

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

37

Simplex

11

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

38

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

39

Simplex

12

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

40

Simplex

A cada ponto extremo corresponde uma solução básica admissível (sem coordenadas negativas) e vice-versa.

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

41

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).

13

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

42

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!

( )!! !

nm

nCn m m

=−

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

43

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!).

14

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

44

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 Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

45

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

15

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

46

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 Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

47

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).

16

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

48

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 Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

49

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).•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).

17

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

50

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).•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).•Qual a variável mais promissora para entrar na base?

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

51

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)

18

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

52

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?

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

53

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 x1A 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?

19

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

54

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

55

Simplex

20

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

56

SimplexColuna pivot

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

57

SimplexColuna pivot

21

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

58

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

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

59

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

SimplexColuna pivot

Linha pivot

22

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

60

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

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

61

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

L3 / 2 (para a linha L3) 5L3 + L4 (para a linha L4)-2L3+L2 (para a linha L2)-(5/2)L3+L1 (para a linha L1)

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

Coluna pivot

23

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

62

Simplex

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

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

63

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).

24

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

64

Simplex

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

65

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).

25

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

66

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.

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

67

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).

26

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

68

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!

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

69

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.

27

Universidade do Minho2007

Investigação OperacionalJosé António Oliveira – [email protected]

70

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