Aula 4 - PPL Algebrico - Prof. CLEBER A. OLIVEIRA

Propaganda
Capítulo 6
Resolvendo algebricamente um PPL
6.1 O método algébrico para solução de um modelo linear
A solução de problemas de programação linear com mais de duas variáveis, não pode
ser obtida utilizando-se o algoritmo gráfico. Como cada variável é representada por um eixo
do gráfico, um problema com mais de duas variáveis não pode ser representado no plano, o
que torna a visualização da solução impossível ou muito complexa, como podemos observar
no exemplo a seguir.
Exemplo de P.P.L. com três variáveis de decisão.
Modelo:
Função Objetivo
MÁX Z = 4 * X1 + 4 * X2 + 4 * X3
Restrições:
R1 → 4 * X1 + 3 * X2
R2 →
X2
R3 →
≤ 12
≤ 3
X3 ≤ 2
Restrições implícitas:
R4 → X1
≥ 0
R5 →
X2
≥ 0
R6 →
X3 ≥ 0
OBS.:
- O conjunto de soluções viáveis para o modelo acima, será representado
graficamente em três dimensões, como um poliedro, cujas faces são os planos limites das
restrições.
- A função objetivo será representada como uma família de planos paralelos ao plano
Zqq apresentado na figura 6.1, que faz um ângulo de 45o com os três eixos.
- O ponto ótimo será o vértice do poliedro mais afastado da origem.
PESQUISA OPERACIONAL
Prof. Cleber Almeida
x3
(0,0,4)
Zqq
(0,0,2)
PO
(0,4,0)
x2
(0,3,0)
(3,0,0)
(4,0,0)
x1
Figura 6.1: Representação gráfica de um modelo a três dimensões.
6.2 Conceitos da álgebra linear utilizados pelo algoritmo SIMPLEX
Um sistema de equações lineares pode ser resolvido, algebricamente, dividindo-se e
multiplicando-se por constantes as equações e somando-as entre si. Estas operações alteram o
sistema inicial, mas não modificam o resultado dos sistemas.
Resolvendo o sistema abaixo algebricamente e acompanhando pelo gráfico temos:
R1 → 3 * x1 + 3 * x2
R2 → 2 * x1 + 4 * x2
Sistema Inicial:
X2
R1
R2
solução
(2,1)
1
X1
2
Figura 6.2: Solução gráfica do sistema.
=9
=8
PESQUISA OPERACIONAL
Prof. Cleber Almeida
Determinamos um novo sistema executando as seguintes operações:
a) Dividindo R1 por (3) encontramos uma nova equação R1,
b) Multiplicando a nova R1 por (-2) e somando com R2 do sistema inicial,
encontramos a nova equação R2.
O novo sistema é mais simples, mas possui a mesma solução do sistema inicial.
R1 → 1 * x 1 + 1 * x 2
R2 →
2 * x2
O novo sistema:
=3
=2
X2
R1
solução
(2,1)
1
R2
X1
2
Figura 6.3: Solução gráfica do novo sistema.
Determinamos um novo sistema executando as seguintes operações:
a) Dividindo R2 por (2) encontramos uma nova equação R2,
b) Multiplicando a nova R2 por (-1) e somando com R1 do sistema anterior,
encontramos a nova equação R1.
O novo sistema é mais simples, mas possui a mesma solução do sistema inicial.
R1 → 1 * x 1
R2 →
1 * x2
O novo sistema:
=2
=1
X2
R1
solução
(2,1)
1
R2
X1
2
Figura 6.4: Solução gráfica do novo sistema.
PESQUISA OPERACIONAL
Prof. Cleber Almeida
Generalizando, a partir do exemplo anterior, verificamos que para resolver um
sistema qualquer de equações lineares, devemos transformar o sistema da forma geral para
uma forma reduzida onde cada variável apareça independente, associada à uma equação.
Exemplo: Forma Geral de um sistema linear com duas equações.
R1 → a11 * x1 + a12 * x2 = b1
R2 → a21 * x1 + a22 * x2 = b2
Forma Reduzida.
R1 →
R2 →
x1
= d1
x2 = d2
O sistema reduzido possui a mesma solução do sistema original.
Usando a notação matricial temos:
Forma geral: A*X = B
Forma reduzida: I* X = D
Onde: A é uma matriz genérica;
X é um vetor de variáveis;
B e D são vetores de constantes e
I é a matriz identidade com a mesma ordem da matriz A.
6.3 O algoritmo GAUSS-JORDAN
Esse algoritmo busca transformar a matriz A, alterando inclusive o vetor coluna B,
em matrizes equivalentes, sucessivamente, até obter a matriz identidade. Essa transformação é
conhecida como diagonalização da matriz A.
Portanto o algoritmo consiste em diagonalizar cada uma das colunas da matriz A, até
chegar a matriz identidade.
Passos do algoritmo:
PASSO 1:
Diagonalizar a primeira coluna da matriz A, transformando-a na coluna da matriz I.
Para isso devemos escolher a primeira posição dessa coluna (denominada de elemento PIVÔ)
e dividi-la, tornando-a igual a 1.
PASSO 2:
Continuar a diagonalização da coluna, subtraindo múltiplos do PIVÔ, das demais
posições da coluna, com o objetivo de zerá-los.
PASSO 3:
Repetir a diagonalização para as demais colunas da matriz A, até obter a matriz I.
PESQUISA OPERACIONAL
Prof. Cleber Almeida
Exemplo: Resolva o exemplo anterior utilizando o algoritmo GAUSS-JORDAN.
R1 → 3 * x 1 + 3 * x 2
R2 → 2 * x 1 + 4 * x 2
Sistema Inicial:
Equações
R1
R2
R1’
R2’
R1”
R2”
X1
1 PIVÔ = 3
2
1
0
1
0
o
X2
3
4
1
o
2 PIVÔ = 2
0
1
=9
=8
b
9
8
3
2
2
1
Operações
R1’= R1/3
R2’= R1’*(-2)+R2
R1”= R2”*(-1)+R1’
R2”= R2’/2
OBS.:
a) Os PIVÔS devem ser escolhidos de modo a transformar a coluna da diagonal
principal da matriz A na diagonal da matriz I, que possui todos o elementos iguais a 1.
b) A solução do Sistema é lida nas duas últimas posições da coluna b, no caso x1
= 2 e x2 = 1.
6.4 O Método SIMPLEX
É um algoritmo iterativo que procura fornecer solução para problemas de
programação linear, através da pesquisa dos vértices do conjunto de soluções viáveis, em cada
iteração, visando a otimização de uma função matemática denominada função objetivo. O
método explora o fato de o máximo ou mínimo da função objetivo ocorrer em um dos vértices
desse conjunto de soluções.
X2
P ótimo
Z ótimo
Campo de
soluções
viáveis
P2
Zqq
Reta Z de
referência
P(0,0)
Z=0
X1
P1
Zqq
Figura 6.5: Esquema demonstrando a atuação do Método SIMPLEX.
PESQUISA OPERACIONAL
Prof. Cleber Almeida
O Campo de soluções viáveis é um conjunto convexo e seus vértices são soluções
básicas viáveis.
6.5 A forma de atuação do Método SIMPLEX
a) O método inicia pela escolha de uma solução inicial que seja básica viável, ou
seja, procura um vértice do campo de soluções viáveis, normalmente esse vértice é a origem.
b) Em seguida avalia o próximo ponto extremo do campo, que cause aumento da
função objetivo e calcula o valor da função neste ponto.
c) Continua avaliando ponto após ponto até encontrar a solução ótima.
6.6 Solução básica
Uma solução básica se apresenta sempre que desejamos solucionar sistemas
indeterminados, isto é, sistemas onde o número de incógnitas (n) é maior que o número de
equações (m). A solução básica é aquela na qual as variáveis independentes são igualadas a
zero.
Exemplo: Para o sistema
X + Y + Z =15
X -Y+Z=5
temos as seguintes soluções básicas:
a) X = 0 (variável independente)
Y = 5 (variável básica)
Z = 10 (variável básica)
b) X = 10 (variável básica)
Y = 5 (variável básica)
Z = 0 (variável independente)
6.7 Forma Padrão do modelo linear
Nessa forma de apresentação as restrições do modelo linear são do tipo aij
* xj ≤ bi . Para transformar restrições do tipo aij * xj ≥ bi para a forma padrão devemos
multiplicar ambos os lados da inequação por (-1), essa operação altera o sinal da inequação.
6.8 Forma Canônica do modelo linear
Essa forma de apresentação do modelo linear é o primeiro passo na solução de um
P.P.L. utilizando o método SIMPLEX. Consiste em transformar todas as desigualdades em
igualdades, através do acréscimo de novas variáveis, que representarão a folga ou o excesso
de cada restrição do modelo.
6.8.1 Variável de Folga (xf)
PESQUISA OPERACIONAL
Prof. Cleber Almeida
Uma restrição qualquer da forma aij * xj ≤ bi pode ser convertida em
igualdade, pela adição de uma nova variável (xf), não negativa ao lado esquerdo da
desigualdade.
Essa variável é numericamente igual à diferença entre os valores a direita e a
esquerda da desigualdade.
Exemplo:
R→ x2 ≤ 3 logo: x2 + xf ≤ 3
portanto: O ponto P(1, 0)
O ponto P(1, 1)
O ponto P(1, 2)
O ponto P(1, 3)
tem
tem
tem
tem
folga = 3
folga = 2
folga = 1
folga = 0
A Forma Canônica de um sistema com restrições lineares do tipo
xj ≤ bi pode ser definida de modo geral, como:
aij *
a11 * x1 + a12 * x2 + ... + a1n * xn + xf1
= b1
a21 * x1 + a22 * x2 + ... + a2n * xn
+ xf2
= b2
....................................................................................
+ xfm = bm
am1 * x1 + am2 * x2 + ... + amn * xn
onde: xf1 , xf2 e xfm são variáveis de folga das restrições lineares R1 , R2 e Rm
que são do tipo aij * xj ≤ bi .
6.9 Algoritmo SIMPLEX
O algoritmo SIMPLEX resume a forma canônica sob uma tabela denominada
TABLEAU SIMPLEX INICIAL e a partir desse modelo matricial, procura a solução ótima,
alterando o tableau inicial, utilizando como ferramenta básica o algoritmo GAUSS JORDAN.
6.9.1 Passos do Algoritmo SIMPLEX
Antes de iniciar o algoritmo devemos:
1) Rescrever o modelo do P.P.L. para a FORMA CANÔNICA.
2) Montar o TABLEAU INICIAL.
A seguir aplicamos o algoritmo:
PASSO 1:
Escolher na linha do tableau, correspondente a função objetivo, o MENOR
coeficiente cj, considerando apenas os coeficientes negativos.
PASSO 2:
Escolher o PIVÔ.
Na coluna do coeficiente escolhido no passo anterior, calcular a relação:
bi / aij onde: bi ≥ 0 e aij > 0
PESQUISA OPERACIONAL
Prof. Cleber Almeida
A MENOR relação indica o aij da coluna que será o elemento PIVÔ.
PASSO 3:
Aplicar o algoritmo GAUSS-JORDAN.
PASSO 4:
Repetir os passos anteriores até que não haja coeficientes cj NEGATIVOS na
linha da função objetivo. Quando todos os cj se tornarem POSITIVOS encontramos a solução
ótima (Z ótimo).
6.9.2 Exemplo aplicando o algoritmo
Resolver o P.P.L. a seguir utilizando o algoritmo SIMPLEX..
Modelo:
Função Objetivo:
MAX Z = 1 * x1 + 3 * x2
Restrições:
R1 → 2 * x1 + 1 * x2 ≤ 12
R2 → 1 * x1 + 2 * x2 ≤ 10
R3 →
1 * x2 ≤ 4
x1 ≥ 0, x2 ≥ 0 e [x1 ∧ x2 ∈ Ν ]
Forma Padrão:
R 1 → 2 * x1 + 1 * x 2 + 1 * x 3
= 12
R 2 → 1 * x1 + 2 * x 2
+ 1 * x4
= 10
R3 →
1 * x2
+ 1 * x5
= 4
Z → -1 * x1 - 3 * x2
+Z= 0
OBS.:
- Passamos todos os elementos do lado direito para o lado esquerdo da
função objetivo.
- As variáveis básicas são: x3, x4 e x5
PESQUISA OPERACIONAL
Prof. Cleber Almeida
Tableau Inicial:
R1
R2
R3
Z
x1
2
1
0
-1
x2
1
2
1
-3
x3
1
0
0
0
x4
0
1
0
0
x5
0
0
1
0
Z
0
0
0
1
b
12
10
4
0
bi/aij
12
5
4
Operações
OBS.: O cj escolhido foi o (-3) porque é o MENOR;
A relação bi / aij escolhida foi 4 porque é a MENOR;
logo: O PIVÔ escolhido foi a32 = 1
Aplicando o algoritmo GAUSS-JORDAN temos:
Segundo Tableau:
R’1
R’2
R’3
Z’
x1
2
1
0
-1
x2
0
0 -1
1
0
x3
1
0
0
0
x4
0
1
0
0
x5
-1
-2
1
3
Z
0
0
0
1
b
8
2
4
12
bi/aij
4
2✓
Operações
R’1 = R’3 * (-1) + R1
R’2 = R’3 * (-1) + R2
R’3 = R3 / (1° PIVÔ )
Z’ = R’3 * 3 + Z
Solução Básica Viável encontrada no segundo tableau:
Variáveis básicas:
São aquelas que pertencem à matriz identidade, no caso:
x2 = 4, x3 = 8, x4 = 2 e Z = 12
Variáveis não básicas:
São aquelas que não pertencem à matriz identidade, no caso:
x1 = 0 e x5 = 0
OBS.: As variáveis não básicas devem assumir valor ZERO para que as
variáveis básicas assumam os valores da coluna b do tableau.
Terceiro Tableau:
R”1
R”2
R”3
Z”
x1
0
1
0
0
x2
0
0
1
0
x3
1
0
0
0
x4
-2
1
0
1
x5
3
-2
1
1
Z
0
0
0
1
b
4
2
4
14
bi/aij
Operações
R”1 = R”2 * (-2) + R’1
R”2 = R’2 / (2° PIVÔ )
R”3 = R”2 * 0 + R’3
Z” = R’2 * 1 + Z’
OBS.: Como não existem mais valores negativos na linha da função
objetivo, podemos afirmar que encontramos a solução ótima para o P.P.L. analisado, logo:
Variáveis de decisão:
(variável básica no último tableau)
x1 = 2
PESQUISA OPERACIONAL
Prof. Cleber Almeida
x2 = 4
(variável básica no último tableau)
Variáveis de folga:
x3 = 4
(variável básica no último tableau)
x4 = 0
(variável não básica no último tableau)
x5 = 0
(variável não básica no último tableau)
Função objetivo:
Z = 14
(variável básica no último tableau)
Download