Escolar Documentos
Profissional Documentos
Cultura Documentos
Autoria
• Este conjunto de slides contém slides da autoria do Doutor
Filipe Alvelos (falvelos@dps.uminho.pt) do Departamento de
Produção e Sistemas da Universidade do Minho,
1
Representação Gráfica
Considere o seguinte problema de PL:
Representação Gráfica
Não negatividade
Uma restrição
2
Representação Gráfica
Duas restrições
Representação Gráfica
Conjunto de restrições
3
Representação Gráfica
Espaço de soluções
Representação Gráfica
Função objectivo:
família de rectas
4
Representação Gráfica
Soluções de modelos de PL
Conjunto 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 PL
está 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.
5
Universidade do Minho Investigação Operacional 11
2010
Algoritmos para PL
6
Simplex
Simplex
Considere um problema de maximização de lucro
relacionado com duas actividades e três recursos.
7
Simplex
Simplex
8
Simplex
Simplex
9
Simplex
Simplex
10
Simplex
Simplex
11
Simplex
Simplex
12
Simplex
Simplex
Problema 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).
13
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.
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).
14
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 n!
n
Cm =
( n − m )!m !
•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 2000
variáveis e 250 restrições. O número de combinações é gigantesco para um
problema pequeno!
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!).
15
Simplex
A 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.
Simplex
•No seguinte problema qual é a base que tem
uma solução mais fácil de calcular?
16
Simplex
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).
17
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.
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).
18
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).
Simplex
•Qual a variável mais promissora para entrar na base?
19
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).
Simplex
20
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 x1
através das restrições.
Simplex
21
Simplex
Coluna pivot
Simplex
22
Coluna pivot
Simplex
Coluna pivot
Simplex
Linha pivot
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.
23
Coluna pivot
Simplex
Linha pivot
Coluna pivot
Simplex
24
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
Simplex
25
PROGRAMAÇÃO LINEAR - PL
• Fizemos uma iteração do algoritmo simplex primal:
Simplex
26
Simplex
• O quadro simplex obtido em qualquer iteração corresponde
sempre a uma solução básica admissível e a um ponto extremo.
Simplex
• Soluções alternativas
– O que são?
27
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 Minho Investigação Operacional 55
2010
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!
28
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.
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.
29