A seguir, uma demonstração do livro.
Para adquirir a versão completa em papel, acesse:
www.pagina10.com.br
Programação Linear: a técnica mais importante da Pesquisa Operacional - 2
RESOLUÇÃO GRÁFICA
Nesta
seção,
vamos
mostrar
como
podemos
resolver
graficamente problemas de programação linear de duas variáveis. Para
tanto, utilizaremos o programa gratuito GRAPH® em sua versão 4.3,
®
GRAPH é marca registrada de Ivan
retomando o problema da confecção de uma seção anterior.
Johansen (2007). Novas versões, manuais e
códigos fonte estão disponíveis em
www.padowan.dk.
Exemplo 1K
Uma pequena confecção está dividida em três setores, corte, costura e
embalagem com, respectivamente, 5, 9 e 4 funcionários. Durante certo
período, produzirá, com exclusividade, vestidos e camisetas. A tabela
seguinte mostra os tempos em minutos que cada um dos produtos
consome nos três setores:
vestido
camiseta
corte
3 min
1 min
costura
6 min
1 min
embalagem
1 min
1 min
a) Quantos vestidos e quantas camisetas deverá produzir no intervalo de 6
minutos se os lucros respectivos por unidade de cada produto forem R$
14,00 e R$ 7,00?
Este problema foi modelado na seção anterior, ocasião em que
obtivemos:
Cada vestido demora 3 minutos e cada
maximizar F  14x  7y
camiseta 1 minuto no corte, onde temos 30
3x  y  30

sujeito a 6x  y  54
x  y  24

minutos(5 funcionários x 6 minutos)
disponíveis. Similarmente, cada vestido
demora 6 e cada camiseta demora 1 minuto
na costura onde temos 54 (9 x 6) minutos
disponíveis. Finalmente, para serem
embadados, cada vestido e cada camiseta
demoram 1 minuto, onde temos 24 (4 x 6)
minutos disponíveis.
Ao lado, representamos alguns pontos do
Podemos considerar os pontos (x, y) do plano cartesiano para representar
os pares de solução para o problema considerado. Assim, o ponto
genérico (x, y) representará as quantidades x de vestidos e y de
camisetas. Com o programa Graph, podemos destacar alguns destes
pontos no plano cartesiano xy:
camisetas
30
plano cartesiano relevantes para o problema.
25
Veja que quantidades negativas não têm
significado e, desta forma, omitimos os
20
outros quadrantes do plano. Estes pontos,
15
com algum trabalho de digitação, poderão ser
10
representados num arquivo do Graph através
5
do botão Inserir série de pontos ou da tecla
1
de atalho F4.
2
3
4
5
6
7
8
9
10
11
vestidos
No entanto, nem todas estas combinações serão possíveis de serem
implementadas na prática devido às limitações impostas pelos setores.
Por exemplo, o setor de embalagem imprime a restrição x + y ≤ 24.
Assim, não será possível embalar em 6 minutos, por exemplo, x = 10
vestidos e y = 15 camisetas pois, neste caso, 10 + 15 = 25 > 24. Assim, a
restrição x + y ≤ 24
Programação Linear: a técnica mais importante da Pesquisa Operacional - 3
selecionará uma região de pontos possíveis no gráfico anterior. Esta
Isso pode ser obtido a partir do botão Inserir
região será o triângulo formado pelas retas x + y = 24, x = 0 (eixo y) e y =
relação, que insere uma nova equação ou
0 (eixo x).
camisetas
inequação através do ícone é x < y ou da
tecla F6. No campo relação, digite "x+y<=24"
30
25
e, no campo constante, digite "x>=0 and
y>=0". O resultado será o triângulo
20
(10, 15)
sombreado ao lado. Veja que o ponto (10, 15)
se encontra fora do triângulo, o que mostra a
inviabilidade de implementar a produção de
10 vestidos e 15 camisetas sob o ponto de
15
10
5
Embalagem x + y ≤ 24
vista do setor de embalagem.
5
10
15
20
25
vestidos
Em seguida, colocamos as demais inequações no gráfico, isto é, as
restrições devidas aos setores de corte e de costura:
Procedemos de modo análogo usando o
recurso inserir relação por mais duas vezes,
uma para cada desigualdade. Assim, para
Costura
que uma solução seja viável, é necessário
que pertença aos três triângulos
simultaneamente, isto é, pertença ao
pentágono definido pela intersecção dos três
triângulos da figura.
Embalagem
Corte
No entanto, para que o Graph exiba apenas o pentágono das intersecções
dos 3 triângulos, você poderá inserir uma única relação e especificar, além
de "x>=0" e "y>=0" as outras duas no parâmetro constante, todas
interligadas com a palavra reservada "and":
24
22
20
Embalagem
18
16
14
12
Corte
10
8
6
4
Costura
2
1
2
3
4
5
6
7
8
9
O efeito produzido será o da figura ao lado.
Veja que apenas os pontos localizados na região poligonal
sombreada representarão combinações de vestidos (x) e de camisetas (y)
possíveis de serem produzidas no intervalo de 6 minutos. A questão que
se coloca agora é: qual destes pontos representará a combinação de
maior lucro? Para tanto, tomamos a função objetivo F = 14x + 7y, e
isolamos o valor de y, obtendo a equação:
Programação Linear: a técnica mais importante da Pesquisa Operacional - 4
Desta maneira, transformamos uma função F
F  14x  7y  y 
de duas variáveis x e y numa família de
F
 2x
7
funções y que, para cada F fixo, será
representada pela reta de equação dada.
Assim, para cada valor de F, teremos uma reta específica. Por exemplo,
atribuindo-se diferentes valores a F, teremos:
70
 2x
7
105
F  105  y =
 2x
7
140
F  140  y =
 2x
7
Como estas três retas apresentam os
F  70  y =
mesmos coeficientes angulares (2), as
tangentes trigonométricas dos ângulos α
serão iguais e, consequentemente, os
ângulos  serão iguais, o que determinará
três retas paralelas.
Os gráficos destas três retas estão desenhados na figura a seguir. Cada
uma das retas representará combinações de vestidos (x) e de camisetas
(y) que resultarão no lucro F indicado. Assim, por exemplo, a reta mais
abaixo, com F = 70, é formada por pontos que representam combinações
de vestidos e de camisetas que proporcionarão lucro de F = 70 reais:
24
22
Embalagem
20
18
Para inserir cada uma das retas, clique sobre
16
o ícone do gráfico ou tecle "INS". Em seguida,
14
Corte
F = 140
12
mantenha o tipo da função na padrão y = f(x)
10
e digite "70/7−2x", escolha uma cor e uma
8
expessura para a reta e clique em OK.
6
Proceda de modo similar para cada uma das
F = 105
F = 70
4
Costura
2
outras retas.
1
2
3
4
5
6
7
8
9
Desta forma, teremos muitas maneiras de produzir lucro de R$ 70, muitas
de produzir lucro de R$ 105 e também de R$ 140 e que estas retas
seguem paralelas entre si e sobem à medida que F aumenta. Pelo gráfico
acima, concluímos que haverá apenas uma maneira de o lucro ser o maior
possível: isso ocorrerá para a reta paralela que tocar o ponto de encontro
das duas restrições, embalagem e corte, destacado na figura anterior. As
coordenadas deste ponto, portanto poderão ser dadas pela resolução do
seguinte sistema de equações:
22
F = 189
Embalagem
x  y  24 
 ()
3x  y  30 

2x  6  x  3
20
18
16
14
12
F = 140
10
y  24  3  y  21
F = 105
8
6
F = 70
4
Este ponto indicará que serão necessários produzir x = 3 vestidos e y = 21
2
1
2
3
4
Realmente, se traçarmos a reta y = 189/7
−2x no gráfico anterior, veremos que ela
camisetas em 6 minutos para que o lucro seja o maior possível:
F  14x  7y
F  14  3  7  21  189
tocará o ponto (3, 21) e será paralela às
demais.
Assim, podemos concluir, com isso, que a solução ótima será,
necessariamente, algum ponto do contorno da região poligonal.
Programação Linear: a técnica mais importante da Pesquisa Operacional - 5
Existe um recurso do Graph realmente sensacional para visualizar
estas retas paralelas através de uma animação. Para tanto, desabilite
todas as quatro retas anteriores clicando sobre o seu objeto no lado
esquerdo do menu e defina a seguinte constante F = 0:
Para isso, clique sobre o botão funções
otimizadas de ícone f(t) ou pressione "CTRL
F". Na coluna Nomes, digite F e na coluna
Definição digite 0 (zero).
Agora, insira uma nova função e a parametrize conforme a seguinte caixa
de diálogo:
Na definição de função, digite "F/7−2x". O
Graph entenderá que F é o valor 0 digitado
anteriormente e traçará a reta que conterá os
pontos que terão lucro zero, isto é, f(x) =
−2x, o que inclui apenas o ponto (0, 0) do
pentágono.
Agora, clique no menu Calc e na opção animação... e configure a janela
de diálogo como indicado:
Isso gerará um vídeo onde o valor de F será
continuamente modificado de 0 até 189
(valor ótimo), com passos de 10, isto é, F
será 0, depois 10, depois 20, etc, até 189. A
velocidade de frames/segundos deverá ser
no mínimo 10, para que tenhamos uma idéia
de que uma mesma reta estará se
deslocando sobre o pentágono com o
aumento do valor de F até 189.
Clicando sobre o botão Animação, o Graph gerará um vídeo .avi que,
inclusive, poderá ser salvo em seu computador:
Veja ao lado o instante em que F é igual a
110 (mostrado no canto inferior direito),
ocasião em que demos pause no vídeo e
visualizamos a reta correspondente ao lucro
de 110 reais. Continuando a visualizar, a reta
parecerá se deslocar paralelamente até o
ponto azul, encontro das restrições
embalagem e corte, ponto ótimo do
problema de PL em questão: x = 3 e y = 21.
Programação Linear: a técnica mais importante da Pesquisa Operacional - 6
b) Quantos vestidos e camisetas deverá produzir no intervalo de 6
minutos se os lucros respectivos por unidade de cada produto são R$
28,00 e R$ 7,00?
Alterou-se apenas o lucro unitário dos vestidos de R$ 14 para R$ 28.
Assim, a região de soluções viáveis será a mesma pentagonal fechada
enquanto que as retas de lucro terão a seguinte equação:
F  28x  7y  y 
F
 4x
7
Assim, para cada um valor de F específico, teremos uma reta diferente,
todas, porém, com o mesmo coeficiente angular e, portanto, paralelas
como as do item anterior:
Comparando estas retas com as do item
70
 4x
7
105
F  105  y 
 4x
7
140
F  140  y 
 4x
7
anterior, concluímos que apenas os
F  70  y 
coeficientes angulares se alteraram (de 2
para 4). Haverá possibilidades, então, de a
solução ótima ser alterada, conforme
veremos a seguir.
Observando as retas paralelas, concluímos que a solução ótima será agora
o ponto de encontro das restrições do corte e da costura:
24
22
Embalagem
20
18
F = 231
16
Corte
14
12
F = 140
10
8
F = 105
6
4
2
Costura
F = 70
1
2
3
4
5
6
7
8
9
6x  y  54 
 ()
3x  y  30

3x  24  x  8
y  54  6  8  y  6
Este ponto indicará que serão necessários produzir x = 8 vestidos e y = 6
camisetas em 6 minutos para que o lucro seja o maior possível:
Corte
F = 266
F  28x  7y
F  28  8  7  6  266
Costura
5
6
7
8
9
Como no item anterior, poderemos gerar uma nova animação para
visualizar as retas se deslocando paralelamente em direção ao ponto (8, 6)
de solução ótima. Concluímos que esta solução ótima será novamente
outro ponto do contorno da região poligonal.
Programação Linear: a técnica mais importante da Pesquisa Operacional - 7
c) Quantos vestidos e camisetas deverá produzir no intervalo de 6
minutos se os lucros respectivos por unidade de cada produto são R$
21,00 e R$ 7,00?
Analogamente,
obtemos a família de retas da função objetivo
modificando-se apenas o lucro unitário dos vestidos para R$ 21:
F  21x  7y  y 
F
 3x
7
Devemos agora obter algumas retas substituindo-se F por valores
Além de paralelas entre si, estas retas
específicos:
deverão ser paralelas à reta do corte, pois a
70
 3x
7
105
F  105  y 
 3x
7
140
F  140  y 
 3x
7
F  70  y 
equação desta é 3x + y = 30
 y = 30 − 3x. Logo, as retas F têm o
mesmo coeficiente angular m = −3 que a
reta do corte.
O gráfico ficará:
24
Veja agora que as retas objetivo serão
camisetas
22
paralelas à reta do corte. Assim, para um
20
valor específico de F, a reta pontilhada
18
16
passará sobre a reta corte e, para um valor
corte
14
infinitesimalmente superior de F, a reta
12
pontilhada deixará de fazer intersecção com a
10
F = 140
F = 105
8
poligonal. Desta forma, todos os pontos do
6
corte entre x = 3 e x = 8 serão soluções
4
ótimas deste problema.
2
F = 70
1
2
3
4
5
6
7
-2
8
9
10
vestidos
A figura anterior indica que teremos múltiplas soluções para o problema,
isto é, todos os pontos localizados sobre a reta corte de x = 3 a x = 8
serão soluções ótimas. Para encontrar os pontos ótimos que indicarão
soluções inteiras, basta fazer x = 3, 4, 5, 6, 7 e 8 sobre a reta de corte:
reta corte: y  30  3x
x  3  y  30  3  3  21
x  4  y  30  3  4  18
x  5  y  30  3  5  15
x  6  y  30  3  6  12
x  7  y  30  3  7  9
x  8  y  30  3  8  6
Para encontrar o valor de F correspondente aos pontos ótimos,
substituímos as coordenadas de qualquer um ponto ótimo na função
objetivo:
F  21x  7y
(3,7)  F  21 3  7  21  210
(7,9)  F  21 7  7  9  210
Programação Linear: a técnica mais importante da Pesquisa Operacional - 8
Desta forma, podemos traçar a reta objetivo com F = 210 e igualmente
marcar os pontos obtidos. Assim, todos estes serão soluções ótimas do
problema, o que nos faz concluir que este problema de PL terá soluções
múltiplas:
24
camisetas
(3, 21)
22
20
Apesar de o segmento do corte conter
infinitos pontos, o problema em questão se
(4, 18)
(5, 15)
16
14
interessa apenas pelas soluções inteiras que
12
são os 6 pontos destacados no gráfico ao
10
lado.
F = 210
18
4
(7, 9)
F = 105
8
6
(6, 12)
F = 140
(8, 6)
F = 70
2
1
2
3
4
5
6
7
-2
8
9
10
vestidos
Podemos reconhecer que um problema de PL com duas
variáveis apresentará soluções múltiplas quando a função objetivo F for
uma combinação linear de alguma restrição. No exemplo anterior, a
formulação exata será:
maximizar F  21x  7y
Alinhamos os coeficientes de x e de y nas
sujeito a
restrições e também na função objetivo,
além de destacarmos os coeficientes
 3x  1y  30

6x  1y  54
1x  1y  24

unitários para maior clareza.
Veja como os coeficientes da função objetivo serão iguais ao da restrição
corte multiplicados por 7. Assim, a solução ótima será todo o lado da
Podemos generalizar, com algumas
poligonal relacionada a esta restrição. Isso porque as famílias de retas F
adaptações, este resultado para problemas
serão paralelas entre si e também paralelas à reta do corte.
de PL com mais de 2 variáveis, o que torna
os problemas com soluções múltiplas
facilmente identificáveis.
Como nos itens anteriores, poderemos gerar uma interessante
animação para visualizar que o segmento do corte é a solução múltipla
deste problema de PL:
Para tanto, defina F = 0 no recurso Funções
Otimizadas (tecla F6 ou ícone f(t)). Em
seguida, adicione a função "F/7−3x" e clique
sobre Calc >> animação e parametrize a
caixa como segue:
Se prefirir, salve o vídeo para que o mesmo possa ser exibido no
Windows quando desejar.
Programação Linear: a técnica mais importante da Pesquisa Operacional - 9
EXERCÍCIOS
Dica 12: observe como a região poligonal
12) Utilizando os recursos do programa Graph®, gráficos e animações, e
definida pelas restrições será a mesma para
também habilidades algébricas, obtenha as soluções inteiras dos
os três itens.
seguintes problemas de PL:
a)
b)
c)
max F  4x  y
max F  2x  2y
max F  2x  5y
x  y  30

sujeito a x  2y  42
x  3y  54

x  y  30

sujeito a x  2y  42
x  3y  54

x  y  30

sujeito a x  2y  42
x  3y  54

Dica 13: a variável x é a quantidade de
13) Considerando o problema da confecção de camisetas e calças,
camisetas, y é a de calças a serem
inicialmente resolvido no exercício 2 e posteriormente modelado no
produzidas por dia para otimizar o lucro total.
exercício 6 como:
maximizar F  8x  13y
sujeito a

x  156

y  90
 x
y


1
 300 250
a) Represente a região poligonal de restrições usando o programa Graph.
b) Resolva graficamente e compare a solução obtida com o resultado do
exercício 2.
Dica 14: a variável x é a quantidade de
embalagens de 5 kg a serem usadas e y é a
14) Considerando o problema do comerciante de ração inicialmente
de 18 kg para embalar 1.000 kg de ração e
resolvido no exercício 3 e, em seguida, modelado no exercício 7 como:
proporcionar o máximo lucro.
maximizar F  4x  15y
sujeito a
 x  60

 y  40
5x  18y  1000

a) Represente a região de restrições usando o programa Graph. Por que
motivos, esta será apenas um segmento de reta?
b) Resolva graficamente e compare a solução obtida com o resultado do
exercício 3.
Dica 15: a variável x é a quantidade de
aviõezinhos de madeira, y é a de aço a serem
15) Retomando agora o exercício 8 da fábrica de aviõezinhos, utilize a
produzidas por hora com o objetivo de
modelagem obtida:
maximizar o lucro total obtido.
maximizar F  3x  5y
sujeito a
 x  2y  30

2x  4y  40

 x  10
y  6

e o programa Graph para obter a solução ótima.
16) Explique o motivo pelo qual não podemos usar o programa Graph para
resolver o problema do sacolão, inicialmente desenvolvido neste capítulo.
Programação Linear: a técnica mais importante da Pesquisa Operacional - 10
17) Utilizando os recursos do programa Graph® e também habilidades
algébricas, obtenha as soluções dos seguintes problemas de PL:
a)
C
c)
min F  x  4y
min F  x  2y
x  200

sujeito a y  150
x  3y  450

x  200

sujeito a y  150
x  3y  900

 x  200

sujeito a  y  150
 x  3y  900

18) O polígono fechado ABCDE refere-se à região de restrições de um
D
problema de PL que objetiva minimizar o custo total onde os custos
unitários são, para x e y, respectivamente iguais a R$ 300 e a R$ 350.
B
CUS
TO
=
Qualquer ponto da diagonal BE apresenta custo de R$ 155 mil.
155
.00
a) Qual o será o ponto ótimo?
0,
E
A
50
b)
min F  x  4y
b) Encontre as coordenadas deste ponto e o custo ótimo associado,
100 150 200 250 300 350 400 450
sabendo-se que as escalas em x e y não são necessariamente iguais.
O enunciado a seguir refere-se às questões de 19 a 21. Considere a
região poligonal definida por:
Ay
B
2x  y  140

 4x  y  150
9x  y  280

C
19) Associe cada um dos lados AB, BC e CD a cada uma das restrições
dadas e, em seguida, encontre os seus vértices A, B, C, D e E.
x
E
D
20) Considerando-se a região poligonal como as restrições de um
problema de maximização de PL, qual das funções objetivos seguintes
não apresentará soluções múltiplas e por quê?
a) F = 4x + 2y
b) F = 20x + 5y
c) F = 27x + 3y
d) F = 2x + 3y
21) Para a função objetivo que é a resposta do exercício anterior, mostre
Dica 21: (arte da capa) esta figura caracteriza
que os valores de F para cada um dos pontos vértices da região poligonal
definitivamente a função F como função de
são exibidos na figura seguinte:
duas variáveis, x e y, e seu gráfico é exibido
z
ao lado bem como ilustrado na capa deste
420
livro. Trata-se de uma parte do plano no
400
espaço tridimensional que é imagem da
região poligonal definida pelas restrições no
plano xy. O trabalho deste exercício se
resume assim ao cálculo numérico da função
y
190
A
poligonal e conferência com os valores
B
F em cada um dos pontos vértices da região
exibidos no gráfico. Assim, o ponto A
C
definido por x = 0 e y = 140 é aquele que
F = 2x + 3y
E
pontos da região poligonal dada.
62
D
maximiza a função F = 2x + 3y para os
x
Programação Linear: a técnica mais importante da Pesquisa Operacional - 11
EXERCÍCIOS AVANÇADOS
22) Um feirante precisa vender em sua barraca um mínimo de 100 dúzias
y
360
320
280
240
200
160
120
80
40
de maçãs e um mínimo de 120 dúzias de peras e um total de 300 dúzias
das duas frutas juntas. Seu objetivo é o de minimizar o custo total na
aquisição destas duas frutas.
a) Mostre a região de restrições graficamente.
b) Se a solução ótima apontou 200 dúzias de peras e 100 de maçãs,
x
50
100 150 200 250 300
mostre algebricamente que o custo da dúzia de maçãs é maior ou igual ao
custo da dúzia de peras.
23) Considere o seguinte problema de PL:
y
maximizar F  ux  vy
200
160
120
sujeito a
B
80
y
 x

1

 150 200
 x  3y  300

C
40
D
A
50
100
A região poligonal ABCD das restrições encontra-se pintada no gráfico ao
x
150
lado. Qual deverá ser a relação entre u e v para que:
a) o ponto B seja a solução ótima do problema?
b) o segmento BC seja a solução ótima do problema (soluções múltiplas)?
c) o ponto C seja a solução ótima do problema?
d) o segmento CD seja a solução ótima do problema (soluções múltiplas)?
e) o ponto D seja a solução ótima do problema?
24) A região poligonal aberta desenhada ao lado refere-se às restrições de
um problema de PL.
y
150
a) Encontre as equações destas restrições.
120
b) Considerando a função objetivo como:
90
A
60
minimizar F  ux  vy
B
30
x
50
100
150
200
encontre a relação entre os coeficientes u e v para que o vértice A seja a
solução ótima única, o segmento AB seja a solução ótima (múltipla) e o
ponto B seja a solução ótima única deste problema de PL.
25) A região poligonal fechada desenhada ao lado refere-se às restrições
y
de um problema de PL.
150
120
C
a) Encontre as inequações destas restrições.
B
D
b) Considerando a função objetivo como:
90
60
maximizar F  ux  vy
30
A
E
50
100
150
x
200
encontre a relação entre os coeficientes u e v para que cada um dos
vértices seja a solução ótima do problema.
.
Programação Linear: a técnica mais importante da Pesquisa Operacional - 12
Visite o site e conheça melhor estes e outros livros didáticos.
www.pagina10.com.br
Download

baixar demonstração