Upload
vuongduong
View
217
Download
0
Embed Size (px)
Citation preview
Programação
Linear
Faculdade de Ciências e Tecnologia da
Universidade de Coimbra Departamento de Matemática
Trabalho realizado no âmbito da disciplina de
Fundamentos e Ensino da Álgebra
Dezembro 2003
Daniela Almeida
Paulo Lourenço
Sandrina Pinto
Agradecimentos:
ao Eng.º António Pinto, por toda a informação que nos forneceu acerca de reflorestação; à aluna estagiária Luísa Vaz, por nos ter disponibilizado o acesso à biblioteca da Escola Superior Agrária de Coimbra; ao responsável pelo viveiro da E.S.A.C., por nos ter dispensado algum do seu tempo;
o nosso sincero obrigado.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear
Índice
Página
História da Programação Linear .............................................................................. 2
Definição de Programação Linear ............................................................................ 3
Formulação e Aplicações de um Modelo Linear ....................................................... 4
Definições e Conceitos ............................................................................................. 4
Problemas de Transportes ...................................................................................... 6
Método de Resolução Gráfica ................................................................................. 9
Problemas de Mistura ............................................................................................ 14
Método Simplex ...................................................................................................... 15
Bibliografia ............................................................................................................. 28
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 2
História da Programação Linear
É possível encontrar os primeiros passos da optimização em culturas de povos
antigos, citando-se por exemplo, no séc. IX a.C. o conhecido episódio narrado por Virgí-
lio, segundo o qual, a rainha Dido ao fundar a cidade de Cartago determinou qual a
figura geométrica para a qual seria maximizada a área por ela delimitada para um dado
perímetro constante; ou até no séc. VI-V a.C. os pensamentos de Confúcio que traduzem
sabiamente algumas das preocupações mais recentes da Teoria da Decisão.
No entanto, o desenvolvimento dos métodos de optimização só se inicia a partir
do séc. XVII, como resposta não só a desafios pertinentes como também porque os
problemas de optimização se revelaram essenciais ao desenvolvimento das ciências
experimentais. Um desafio pertinente foi a disputa travada entre o matemático Huygens
e o engenheiro chefe da marinha de Luís XIV (Chevalier Renau), sobre o mais
conveniente ângulo de navegação para embarcações à vela, supondo conhecida a
orientação do vento, e que veio permitir que Johann Bernoulli “descobrisse” que o
anulamento da primeira derivada de uma função é condição necessária de máximo e
mínimo.
Apesar dos problemas de optimização já há muito serem estudados estes merece-
ram pouca atenção até meados do séc. XX.
Os principais desenvolvimentos teóricos da programação
linear são devidos a Kantorovich (que mais tarde, em 1975, viria a
ganhar o prémio Nobel da economia) e a um grande grupo de
cientistas americanos. Já em 1939 este matemático e economista
Soviético tinha formulado e desenvolvido um problema de
programação linear para aplicação em planeamento da produção.
No entanto, o seu trabalho foi desconhecido durante vinte anos
não tendo tido impacto no desenvolvimento da programação linear
após a segunda guerra.
Os primeiros conceitos da programação linear foram desen-
volvidos entre 1947 e 1949 durante a segunda guerra mundial, por
George Dantzig, para serem aplicados a programas militares desde
a área logística até à estratégia. Foi após a guerra que ele foi
impulsionado para encontrar formas eficientes de desenvolver esta
metodologia. Foi Dantzig o primeiro a reconhecer que um
programa de planeamento poderia ser expresso por um sistema de
inequações lineares assim como foi o primeiro a apresentar, na forma de uma expressão
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 3
matemática explícita, um critério para selecção do melhor plano ao que hoje chamamos
função objectivo.
O pós-guerra foi considerado, pelo matemático Nemhauser, como uma “Segunda
Renascença” já que como nos séc. XV e XVII as ciências experimentais proporcionaram
desafios decisivos à matemática, dando lugar às ciências organizacionais do planeamento
e da gestão que mais contribuírem para o seu sucesso.
Definição de Programação Linear
A programação linear é uma ferramenta matemática que permite encontrar a
solução óptima para um certo tipo de problemas. Neste contexto, o termo programação,
significa que existe planeamento de actividades e o termo linear refere-se a linearidade
nas equações do problema.
Pode também definir-se programação linear como uma série de operações mate-
máticas que são usadas para distribuir recursos limitados sobre operações que exigem a
sua utilização simultânea de uma forma óptima para um dado objectivo único.
A programação linear é, portanto, uma poderosa ferramenta da modelação mate-
mática. É uma técnica de optimização com aplicações amplas e diversificadas ao nível de
problemas reais.
Em casos reais, o analista tem de formular o problema de tal forma que consiga a
optimização desejada para o seu objectivo. No entanto, note-se que, a modelação da rea-
lidade não é fácil apesar de parecer elementar. O valor óptimo de um modelo não é
obrigatoriamente o valor óptimo na realidade.
Para qualquer que seja o seu modelo e o programa tradutor da realidade a anali-
sar, o analista deve estabelecer as seguintes três considerações:
• a resposta é credível ou realizável?
• a resposta é óptima?
• quão sensível é o valor óptimo aos parâmetros e qual a resposta do valor
óptimo às variações das variáveis independentes?
Do acima exposto fica implícito que para optimizar é necessário uma ferramenta para
modelar e solucionar o problema. Uma destas ferramentas é a programação linear.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 4
Formulação e Aplicações de um Modelo Linear
Ao formular um modelo linear deve ter-se o cuidado de distinguir sempre as
seguintes fases:
• Identificação das variáveis de decisão;
• Identificação da função objectivo;
• Identificação das restrições;
• Formulação matemática.
Depois de se ter obtido a formulação matemática é então possível resolver o pro-
blema de optimização.
O método de programação linear permite o recurso à metodologia gráfica e à
metodologia algébrica, manual ou com recurso a um computador.
Agora, na posse de toda esta informação, é mais fácil tomar decisões acertadas no
domínio da gestão em diversas aplicações, tais como:
• Planeamento agregado de produção;
• Análise de produtividade de serviços;
• Planeamento de produtos;
• Optimização do fluxo produtivo;
• Optimização do processo de produção.
Mas as aplicações da programação linear não terminam por aqui. Esta pode
também ser extremamente útil em áreas tais como medicina, agricultura, política flores-
tal, sector militar e redes de transportes.
Definições e Conceitos Eis agora algumas definições e conceitos que serão úteis na compreensão do tra-
balho:
♦ Função Objectivo – função linear que se pretende optimizar, isto é, maximizar
ou minimizar.
♦ Restrições – consiste em relacionar cada actividade e respeitar a
disponibilidade de recursos utilizados. Grande parte das vezes são escritas na
forma de inequações ou equações lineares.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 5
- Restrições de não negatividade – as variáveis que entram na formula-
ção do problema não podem assumir valores negativos.
- Restrições do problema – quando se faz a formulação de um problema
deve elaborar-se uma lista de todos os itens que impliquem restrições às
possíveis soluções.
As restrições do problema originam a chamada região admissível.
♦ Forma Canónica – Um modelo de programação linear escrito na forma canóni-
ca tem as seguintes características: • as variáveis são todas não negativas;
• pretende-se a maximização da função objectivo; • as restrições são todas desigualdades lineares do tipo ≤ , com excepção
das que dizem respeito à não negatividade das variáveis. ♦ Forma Padrão (Standard) – É um problema de programação linear que obe-
dece às seguintes condições: • as variáveis são todas não negativas;
• todas as restrições são equações lineares, com excepção das que dizem
respeito à não negatividade;
• os termos independentes de cada uma das restrições são constantes
reais não negativas;
• considera-se indiferente a maximização ou a minimização da função
objectivo.
♦ Solução – A solução de um problema de programação linear é o conjunto de
valores que podem ser atribuídos às variáveis. ♦ Solução Possível – é uma solução que satisfaz todas as restrições.
♦ Solução Impossível – é aquela em que não há qualquer ponto que satisfaça o
conjunto das restrições. ♦ Solução Ilimitada – é aquela em que a função objectivo pode crescer, no caso
da maximização, ou decrescer, no caso da minimização, indefinidamente aten-
dendo a todas as restrições do problema. ♦ Solução Óptima – é uma solução possível que origina o valor mais favorável
para a função objectivo. ♦ Variável de Folga – é a variável auxiliar não negativa com coeficiente unitário
que se introduz ao reduzir uma restrição à forma de igualdade. ♦ Variável de Decisão – Um modelo de programação linear engloba n variáveis
reais 1 2,...,, nx x x denominadas variáveis de decisão.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 6
Dado o problema na forma padrão com m equações e n+m variáveis, ao
atribuir-se o valor zero a n variáveis – variáveis não básicas – e se for possível
resolver de forma única o seu sistema de equações lineares em relação às restantes
m variáveis – variáveis básicas – obter-se-á uma solução básica.
Uma solução básica diz-se possível se todas as m variáveis forem não nega-
tivas.
Problema dos Transportes
Um problema de transporte é todo aquele problema onde há a necessidade de
programar a distribuição óptima de um produto homogéneo, produto esse que está dis-
ponível em diversas origens e será enviado para diversos destinos, esgotando as disponi-
bilidades de cada origem e satisfazendo as necessidades de cada destino, isto é, a procura
é igual à oferta.
Exemplo de um problema
Como é conhecimento de todos, Portugal vai receber o europeu de futebol no
próximo ano, um acontecimento que implica muitos investimentos, mas que trará
muitas receitas. As áreas que mais lucrarão com este evento serão sem dúvida as do
transporte e hotelaria.
Uma agência de viagens resolveu dedicar-se ao transporte de alguns dos muitos
adeptos Ingleses. O transporte efectuar-se-á de autocarro desde as duas cidades inglesas,
Londres e Manchester, donde sairão 1000 e 500 passageiros, respectivamente.
Estes adeptos, destinam-se a assistir a um jogo que decorrerá no estádio munici-
pal de Coimbra, e serão distribuídos por vários hotéis da região, visto que Coimbra já
não dispõe de alojamento para 1500 pessoas. A agência tem garantida a estadia para 800
pessoas em Coimbra, 300 em Viseu e 400 na Figueira da Foz.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 7
Os custos de transporte estão indicados no seguinte esquema:
Londres
Viseu Coimbra Fig. da Foz
Manchester
Partindo do princípio que todos os lugares serão ocupados, de que forma a
agência poderá minimizar as despesas com os transportes?
Começa-se por organizar os dados numa tabela:
Coimbra Destino 1
Figueira da Foz Destino 2
Viseu Destino 3
Londres Origem 1
€ 400 € 330 € 250
Manchester Origem 2
€ 360 € 270 € 200
Para resolver este problema, consideram-se as variáveis de decisão ijx que
representam o número de pessoas a enviar desde a origem i para o destino j.
A função objectivo será a soma dos produtos do número de adeptos desde cada
origem até cada destino com o custo da respectiva viagem, portanto a função a minimi-
zar é
11 12 13 21 22 23400 330 250 360 270 200z x x x x x x= + + + + +
€ 250
€ 270 € 200
€ 330
€ 400
€ 360
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 8
Como de Londres partem 1000 pessoas, tem-se que:
11 12 13 1000x x x+ + = .
Por outro lado, sairão de Manchester 500 pessoas, logo:
21 22 23 500x x x+ + = .
Sabe-se ainda que em Coimbra a agência de viagens garante a estadia a 800 pessoas,
então:
11 21 800x x+ = .
Fazendo um raciocínio análogo, para as outras cidades, vem que:
12 22 400x x+ = ,
13 23 300x x+ = .
Resta ainda acrescentar as restrições da não negatividade.
Desta forma obtém-se o seguinte problema de programação linear:
Minimizar 11 12 13 21 22 23400 330 250 360 270 200z x x x x x x= + + + + +
sujeito a:
11 12 13 1000x x x+ + = ;
21 22 23 500x x x+ + = ;
11 21 800x x+ = ;
12 22 400x x+ = ;
13 23 300x x+ = .
11 12 13 21 22 23, , , , , 0x x x x x x ≥ Como este problema tem 6 variáveis, a sua resolução envolveria operações com
matrizes de grandes dimensões e visto que já existe software que permite a resolução de
problemas deste tipo, resolvemos recorrer a ele para obter a solução.
Escolhemos o CPLEX, onde basta escrever um ficheiro de texto como o que se
mostra de seguida:
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 9
Este ficheiro não implica o conhecimento de nenhuma linguagem específica. Basta
mandar ler o ficheiro e optimizar. Obtendo-se uma resposta do tipo:
A solução do problema será definida pelos valores destacados a vermelho, os quais
substituídos na função objectivo, permitem concluir que a agência no mínimo gastará
€498000 (valor destacado a verde).
Método de Resolução Gráfica
Este método tem para nós muito interesse, pois é abordado no 11º ano de
escolaridade (embora seja um tema facultativo). Este método aplica-se em problemas
com apenas 2 variáveis de decisão, o que permite a representação gráfica das restrições e
até o recurso às calculadoras gráficas.
A utilização do método gráfico tem por objectivo representar as inequações num
plano, de forma a identificar a disponibilidade de recursos para o processo a optimizar.
A vantagem que esta metodologia apresenta é a intuitividade na interpretação das res-
trições. No entanto, esta vantagem desvanece-se quando os problemas possuem mais de
duas variáveis de decisão, sendo mesmo limitado a um máximo de três variáveis de deci-
são.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 10
Consideremos então o seguinte problema
A Nokia, empresa de grande influência no mercado das telecomunicações, resol-
veu abrir uma sucursal em território nacional, de modo a produzir na íntegra dois dos
seus mais recentes modelos:
Nokia 7650 Nokia 3650
A fábrica está dividida em três grandes sectores A, B e C.
O sector A é o responsável pela produção dos componentes electrónicos, o sector
B produz as partes plásticas e executa a montagem dos respectivos aparelhos e cabe ao
sector C a instalação do software. A maquinaria existente em cada um dos três sectores
possibilita uma utilização máxima semanal de 80 horas no sector A, 220 horas no sector
B e 50 horas no sector C.
A montagem completa de um telemóvel do modelo 3650 demora 5 horas: requer 2
horas no sector A, 2 horas no sector B e 1 hora no sector C. Por outro lado, o tempo de
montagem do telemóvel do outro modelo distribui-se pelos diferentes sectores do seguin-
te modo: 1 hora no sector A, 5 horas no sector B e 1 hora no sector C.
Sabendo que todos os aparelhos produzidos por esta fábrica têm escoamento
garantido e o custo de venda aos revendedores é de 250 euros para o Nokia 3650 e 200
euros para o Nokia 7650, qual deve ser a produção semanal dos dois modelos de modo a
maximizar o lucro semanal?
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 11
Começa-se por organizar os dados:
Modelos
Sectores Nokia 3650 Nokia 7650
A 2 horas 1 hora
B 2 horas 5 horas
C 1 hora 1 hora
Sejam as variáveis de decisão 1x e 2x , respectivamente o número de telemóveis
do modelo Nokia 3650 e o número de unidades do modelo Nokia 7650 a fabricar sema-
nalmente.
Tem-se como função objectivo a maximizar:
1 2250 200z x x= + .
Como as máquinas do sector A não podem exceder as 80 horas semanais, vem que:
1 22 80x x+ ≤ .
Procedendo de modo análogo para os outros dois sectores da fábrica obtêm-se as seguin-
tes inequações:
1 22 5 220x x+ ≤ ,
1 2 50x x+ ≤ .
E então, neste caso, o problema de programação linear obtido é:
Maximizar 1 2250 200z x x= +
sujeito a:
1 22 80x x+ ≤ ;
1 22 5 220x x+ ≤ ;
1 2 50x x+ ≤ ;
1 2, 0x x ≥ .
Pode recorrer-se ao método da resolução gráfica, devido ao facto de se terem ape-
nas duas variáveis,
Começa-se por representar a região de pontos 1 2( , )x x que satisfazem todas as
restrições – região admissível.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 12
A função 1 2250 200z x x= + representa uma recta. Ao variar o valor de z obtêm-
se rectas paralelas entre si – rectas de nível da função objectivo – e perpendiculares ao
gradiente da função objectivo.
Gradiente de ( )1 2, 250,200dz dzz
dx dx⎛ ⎞⎟⎜= =⎟⎜ ⎟⎜⎝ ⎠ .
A solução admissível com maior valor para z será a solução óptima. Como a fun-
ção objectivo é crescente no sentido do seu gradiente, para encontrar a solução óptima
basta traçar uma recta de nível da função objectivo e deslocá-la, no sentido do gradien-
te, de modo a obter a de maior nível que toque pelo menos num ponto da região
admissível, do seguinte modo:
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 13
Da observação da representação gráfica do problema, conclui-se que a solução
óptima é o ponto de intersecção das rectas:
1 22 80x x+ = ,
1 2 50x x+ = .
que é o ponto ( ) ( )* *1 2, 30,20x x = .
Substituindo estes valores na função objectivo, obtém-se o lucro semanal. * * *
1 2250 200 250 30 200 20 7500 4000 11500z x x= + = × + × = + =
Interpretando esta solução chega-se à conclusão que, semanalmente, devem ser
produzidos 30 modelos do Nokia 3650 e 20 telemóveis do modelo Nokia 7650, obtendo
deste modo um lucro semanal máximo de 11500 euros.
No problema anterior a solução óptima é única, contudo podem ocorrer situações
em que mais do que uma solução optimiza a função objectivo.
Considere-se agora que a função objectivo do problema anterior é
1 2250 250z x x= + ,
ou seja, os dois modelos têm o mesmo valor comercial.
A região admissível deste novo problema é a mesma do anterior. Então proceden-
do de modo análogo, obtém-se a seguinte representação gráfica para o problema:
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 14
Neste caso a intersecção não vai ser apenas num ponto, mas sim todos os pontos
do segmento de recta que liga o ponto ( )10,40 a ( )30,20 marcado na figura, que são
soluções óptimas alternativas que traduzem o mesmo lucro. Existem portanto infinitas
soluções mas neste caso, só interessam as soluções inteiras.
Por exemplo:
1 230; 20; 12500x x z= = = e 1 210; 40; 12500x x z= = = são duas soluções alternativas
que apresentam o mesmo valor para a função objectivo, o qual será de €12500.
Problemas de Mistura O problema de mistura de produtos caracteriza-se essencialmente por pretender
obter, com custo mínimo ou lucro máximo, um ou vários produtos, a satisfazer certos
requisitos técnicos, através de vários ingredientes possuidores (em grau diferente) dessas
características técnicas.
Este tipo de problemas ocorre em várias áreas de produção tão diversas como:
produtos alimentares, produtos farmacêuticos, cimento, rações para animais.
Neste último exemplo o que geralmente se pretende é optimizar a composição da
dieta a adoptar de modo a minimizar o seu custo e a satisfazer níveis mínimos de com-
ponentes como, por exemplo, calorias e vitaminas.
Exemplo de um problema:
Um agricultor quer assegurar que os seus coelhos recebam pelo menos 24 unida-
des de ferro e no máximo 10 unidades de vitaminas.
Um grama de cenoura fornece 4 unidades de ferro e 2 unidades de vitaminas.
Um grama de couve fornece 2 unidade de ferro e 2 unidade de vitaminas.
De que modo podem ser misturados os dois produtos, a fim de se obter a satisfa-
ção das necessidades diárias dos coelhos a um custo mínimo, se os custos unitários são
de 1 e 0,5 euros, respectivamente.
Tem-se então
Minimizar f(x,y) = x + 0,5y;
sujeita às restrições
4x + 2y ≥ 24;
2x + 2y ≤10;
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 15
x,y≥0.
Como pode verificar-se este problema não possui qualquer solução admissível
visto que não existem valores para as variáveis x e y que satisfaçam as restrições do pro-
blema. Tem-se então uma SOLUÇÃO IMPOSSÍVEL.
Método Simplex
O Método Simplex é um processo algébrico de resolução de problemas de pro-
gramação linear. É um algoritmo iterativo que localiza a solução óptima após pesquisar
um número finito de soluções. O método começa com uma solução básica admissível,
movimentando-se através de uma sucessão de soluções básicas admissíveis de modo que
cada nova solução melhora o valor da função objectivo.
O Método Simplex caminha pelos vértices da região admissível até encontrar uma
solução que não possua soluções vizinhas melhores que ela. Esta é a solução óptima. A
solução óptima pode não existir em dois casos: quando não há nenhuma solução viável
para o problema, devido a restrições incompatíveis; ou quando uma, ou mais variáveis,
podem tender para infinito e as restrições continuam a ser satisfeitas, o que fornece um
valor ilimitado para a função objectivo.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 16
Exemplo de um Problema
O modelo de programação linear pode ser resolvido por um método de solução de
sistema de equações lineares. O processo que será apresentado no exemplo a seguir é
bastante intuitivo e tem por finalidade apresentar a metodologia utilizada pelo método
Simplex.
Formulação do problema
"Uma marcenaria deseja estabelecer uma programação diária de produção.
Actualmente, a oficina faz apenas dois produtos: mesa e armário, ambos de um só mode-
lo. Para efeito de simplificação, considere-se que a marcenaria tem limitações em somen-
te dois recursos: madeira e mão-de-obra, cujas disponibilidades diárias são mostradas na
tabela seguinte.
Recurso Disponibilidade
Madeira 212m Mão-de-obra 8 h
O processo de produção é tal que, para fazer uma mesa a fábrica gasta 2 2m de
madeira e 2 h de mão-de-obra. Para fazer um armário, a fábrica gasta 3 2m de madeira
e 1 h de mão de obra. Além disso, o fabricante sabe que cada mesa dá uma margem de
contribuição para o lucro de €4 e cada armário de €1. O problema é encontrar o pro-
grama de produção que maximiza a margem de contribuição total para o lucro."
Montagem do modelo
As variáveis de decisão envolvidas no problema são:
1x : quantidade a produzir de mesas;
2x : quantidade a produzir de armários;
A função objectivo é:
Lucro: z = 4 1x + 2x .
Para as restrições, a relação lógica existente é:
Utilização de recurso ≤ Disponibilidade
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 17
Assim temos
Madeira: 2 1x + 3 2x ≤ 12;
Mão-de-obra: 2 1x + 2x ≤ 8;
1x , 2x ≥0.
O modelo completo é:
Maximizar: z = 4 1x + 2x ;
sujeito a 2 1x + 3 2x ≤12;
2 1x + 2x ≤8;
1x , 2x ≥0.
Solução do modelo
Já se conhece o método de resolução gráfica para problemas de programação
linear de duas variáveis. Será agora apresentada a solução por sistemas de equações
lineares.
De forma a transformar as restrições do problema de programação linear de
inequações em equações, são introduzidas as variáveis de folga. Neste problema, as
restrições têm a seguinte estrutura lógica:
Utilização de recurso ≤ Disponibilidade.
Ao se introduzir o conceito de folga de recurso, a inequação pode ser escrita como
Utilização de recurso + Folga = Disponibilidade.
Isso significa que
Utilização de recurso < Disponibilidade implica Folga > 0;
Utilização de recurso = Disponibilidade implica Folga = 0.
Deste modo, a folga de cada recurso pode ser representada por uma variável de
forma exactamente igual à produção de cada produto. Desse modo, denomina-se:
1f : folga de madeira;
2f : folga de mão-de-obra.
Introduzindo as variáveis de folga, o problema a ser resolvido passa a ser:
Maximizar: z = 4 1x + 2x ;
sujeito a 2 1x + 3 2x + 1f = 12;
2 1x + 2x + 2f = 8;
1x , 2x , 1f , 2f ≥0.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 18
O problema transformou-se em encontrar a solução do sistema de equações linea-
res que maximiza o lucro. Como neste caso o número de variáveis (m = 4) é superior ao
número de equações (n = 2), o sistema é indeterminado, apresentando infinitas soluções.
No entanto, todas as variáveis devem ser maiores ou iguais a zero. Atribuir zero a
uma variável significa não produzir um dos produtos (se a variável for 1x ou 2x ) ou
utilizar toda a disponibilidade de recursos (se a variável for 1f ou 2f ). Desta forma,
podem encontrar-se soluções para o sistema de equações igualando a zero duas variáveis
(n - m = 2) e encontrando o valor para as duas variáveis restantes. Tem que resolver-se
então
C 24 = 4! / (2! 2!) = 6
sistemas de equações lineares.
Uma vez resolvido um sistema serão aplicados na função objectivo os valores
encontrados. As variáveis igualadas a zero são chamadas variáveis não-básicas. As
variáveis cujos valores são calculados pelo sistema de equações são chamadas variáveis
básicas.
1s ) Variáveis não-básicas: 1x = 0;
2x = 0;
tem-se as variáveis básicas 1f = 12;
2f = 8;
dando o lucro z = 0.
2s ) Variáveis não-básicas: 1x = 0;
1f = 0;
tem-se as variáveis básicas 2x = 4;
2f = 4;
dando o lucro z = 4.
3s ) Variáveis não-básicas 1x = 0;
2f = 0;
tem-se as variáveis básicas 2x = 8;
1f = -12;
como 1f < 0, a solução obtida é INVIÁVEL.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 19
4s ) Variáveis não-básicas: 2x = 0;
1f = 0;
tem-se as variáveis básicas 1x = 6;
2f = -4;
como 2f < 0, a solução obtida é INVIÁVEL.
5s ) Variáveis não-básicas: 2x = 0;
2f = 0;
tem-se as variáveis básicas 1x = 4;
1f = 4;
dando o lucro z = 16.
6s ) Variáveis não-básicas: 1f = 0;
2f = 0;
tem-se as variáveis básicas 1x = 3;
2x = 2;
dando o lucro z = 14.
Comparando todas as soluções encontradas por este processo obtém-se a solução
óptima, ou seja, 1x = 4, 2x = 0, 1f = 4, 2f = 0, dando um lucro z = 16.
Desenvolvimento do Método Simplex
Da forma como foi resolvido o problema anteriormente é necessário que muitos
sistemas de equações sejam resolvidos e as suas soluções comparadas. Para problemas
reais de programação linear esta solução torna-se inviável. Desta forma, para se ter
condições de resolver um problema de programação linear é necessária uma sistemática
que diga:
qual o sistema de equações que deve ser resolvido;
que o próximo sistema a ser resolvido fornecerá uma solução melhor
que os anteriores;
como identificar uma solução óptima, uma vez encontrada.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 20
Essa sistemática é o Método Simplex, e as regras que o método utiliza para aten-
der às três questões acima são, basicamente, os critérios desenvolvidos anteriormente.
De regresso ao problema, já com as variáveis de folga:
Maximizar z = 4 1x + 2x ;
sujeito a 2 1x + 3 2x + 1f = 12;
2 1x + 2x + 2f = 8;
1x , 2x , 1f , 2f ≥0.
Faça-se agora um quadro para ordenar as operações colocando nele apenas os
coeficientes das variáveis. No caso da função objectivo, realiza-se a seguinte transforma-
ção:
de: z = 4 1x + 2x ;
para: z - 4 1x - 2x = 0.
Quadro 1
A última coluna corresponde aos termos independentes das equações e a última
linha contém os coeficientes das variáveis na função objectivo. Nessa última linha tem-se
sempre a contribuição que cada variável dá para o lucro total z, por unidade, em cada
iteração do processo de solução. Essa última linha será chamada de função objectivo
transformada, ou função z-transformada.
Solução inicial
A solução inicial para o problema será sempre obtida fazendo as variáveis origi-
nais do modelo (no caso 1x e 2x ) iguais a zero e calculando o valor das restantes .
Assim, fazendo 1x = 2x = 0 (variáveis não básicas), obtemos do Quadro 1:
1f = 12;
2f = 8 ; (variáveis básicas)
z = 0.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 21
As variáveis básicas estão indicadas no Quadro 1 para facilitar o
acompanhamento das operações.
Segunda solução
Como a primeira solução claramente não é a melhor procura-se outra que dê um
valor maior para z. O problema é descobrir: Das duas variáveis não básicas (nulas) na primeira solução, qual deverá
tornar-se positiva?
Das duas variáveis básicas (positivas) na primeira solução, qual deverá ser
anulada?
Qual a variável que se deverá tornar positiva?
Observe-se que na última linha do Quadro 1 se tem os coeficientes da função
objectivo os quais mostram a contribuição para o lucro z de cada unidade produzida de
mesa ( 1x ) e de armário ( 2x ).
Assim, aplicando o critério de que se deve produzir primeiro o produto que mais
contribui para o lucro, começa-se a produção pela variável 1x , já que a sua contribuição
unitária para o lucro (4) é maior que a contribuição de 2x , igual a 1.
Logo, a variável que deverá tornar-se positiva é 1x .
Qual a variável que deverá ser anulada?
Nota-se pelo Quadro 1 que, na primeira equação, o maior valor possível de 1x é 6,
quando 1f for igual a zero (note que 2x vale zero por ser variável não básica). Qualquer
valor maior de 1x fará com que o valor de 1f fique negativo, o que não é permitido. Na
segunda equação, o maior valor permitido para 1x é 4, quando 2f for igual a zero. Ana-
lisando simultaneamente as duas equações percebe-se que o maior valor possível para 1x
é 4, já que atende às duas equações.
Observe que esta análise pode ser feita directamente do Quadro 1 através da divi-
são dos elementos da coluna b pelos correspondentes elementos da coluna 1x . O menor
quociente indica, pela linha em que ocorreu, qual a variável básica que deve ser anulada.
Assim, como o menor quociente é dado pela divisão 8 / 2 = 4, a variável básica a ser
anulada é 2f , que é a variável positiva na actual solução cujo valor foi encontrado na
segunda linha.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 22
Assim tem-se:
2x = 0;
2f = 0;
e o sistema restante deve ser resolvido para se encontrar o valor de 1x e 1f . A solução
desse sistema será feita usando o Quadro 1 com as equações completas e usando as ope-
rações válidas com as linhas da matriz.
1ª operação: 2 2 /2L L←
2ª operação: 1 1 22L L L← −
3ª operação: 3 3 24L L L← +
Quadro 2
Como a última linha (função z-transformada) mostra as contribuições líquidas
para o lucro, caso as variáveis 1x e 2f venham a ter os seus valores aumentados de 0
para 1 e como estas contribuições têm os seus valores trocados em relação ao quadro
original, concluímos que a solução encontrada é óptima
1x = 4;
2x = 0;
1f = 4;
2f = 0;
z = 16.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 23
Algoritmo do Método Simplex (Problemas de Maximização)
Passo 1: Introduzir as variáveis de folga; uma para cada desigualdade.
Passo 2: Construir um quadro para os cálculos, colocando os coeficientes de todas as
variáveis com os respectivos sinais e, na última linha, incluir os coeficientes da função
objectivo transformada.
Passo 3: Estabelecer uma solução básica inicial, usualmente atribuindo valor zero às
variáveis originais e achando valores positivos para as variáveis de folga.
Passo 4: Como próxima variável a entrar na base escolher a variável não básica que ofe-
rece, na última linha, a maior contribuição para o aumento da função objectivo (ou seja,
tem o maior valor negativo). Se todas as variáveis que estão fora da base tiverem coefi-
cientes nulos ou positivos nesta linha a solução actual é óptima. Se alguma dessas variá-
veis tiver coeficiente nulo, isto significa que ela pode ser introduzida na base sem
aumentar o valor da função objectivo. Isso quer dizer que se tem uma solução óptima
com o mesmo valor da função objectivo.
Passo 5: Para escolher a variável que deve deixar a base deve realizar-se o seguinte pro-
cedimento:
a) Dividir os elementos da última coluna pelos correspondentes elementos positi-
vos da coluna da variável que vai entrar na base. Caso não haja elemento algum positi-
vo nesta coluna o processo deve parar, já que a solução seria ilimitada.
b) O menor quociente indica a equação cuja respectiva variável básica deverá ser
anulada, tornando-se variável não básica.
Passo 6: Usando operações válidas com as linhas da matriz transformar o quadro de cál-
culos de forma a encontrar a nova solução básica. A coluna da nova variável básica
deverá tornar-se um vector identidade, onde o elemento 1 aparece na linha correspon-
dente à variável que está a ser anulada.
Passo 7: Retornar ao passo 4 para iniciar outra iteração.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 24
Aspectos Matemáticos Singulares
Na modelagem de um problema de programação linear algumas situações específi-
cas podem ocorrer, o que pode levar a casos numa forma matemática diferente da apre-
sentada até ao momento.
Entretanto, alguns artifícios matemáticos ajudam a reduzir o modelo obtido à
forma padrão estudada.
Estes artifícios são mostrados a seguir.
Minimização de uma função
A minimização de uma função z(x) é matematicamente análoga à maximização da
negativa desta função (-z(x)).
Exemplo:
Minimizar z = 1c 1x + 2c 2x + ... + nc nx ; é equivalente a
Maximizar z' = - 1c 1x - 2c 2x - ... - nc nx ; com z' = - z .
Essa é uma das formas de se resolver os problemas de minimização utilizando o
mesmo algoritmo.
Caso se queira resolver directamente deve alterar-se o critério de entrada das
variáveis na base. A variável que entra na base passa a ser aquela que tem o maior valor
positivo na linha z-transformada.
Caso todas tenham coeficientes negativos ou nulos, a solução obtida é óptima
Restrições de limite inferior (≥ )
Uma desigualdade numa direcção (≤ ou ≥ ) pode ser mudada para uma desi-
gualdade na direcção oposta pela multiplicação de ambos os lados da desigualdade por
( 1)− .
Exemplo: 1a 1x + 2a 2x ≥b;
é equivalente a - 1a 1x - 2a 2x ≤ -b;
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 25
Restrições de igualdade
Uma equação pode ser substituída por duas desigualdades de direcções opostas.
Exemplo: 1a 1x + 2a 2x = b;
é equivalente a duas desigualdades simultâneas:
1a 1x + 2a 2x ≥b;
1a 1x + 2a 2x ≤b.
Veja-se agora um exemplo, da vida real, onde o Método Simplex pode ser muito
útil.
Os incêndios florestais são das catástrofes naturais mais graves em Portugal, não
só pela elevada frequência com que ocorrem e extensão que alcançam, como pelos efeitos
destrutivos que causam. Para além dos prejuízos económicos e ambientais podem consti-
tuir uma fonte de perigo para as populações e bens.
O resultado da vaga de incêndios que assolou o país durante o verão, do corrente
ano, foi estimado em 355 976 ha de área ardida.
Calculou-se que cerca de 300 000 ha de floresta arderam (o que corresponde a
cerca de 6% da área florestal de Portugal).
Castelo Branco foi o distrito mais afectado com cerca de 100 000 ha ardidos (27%
da área total).
As áreas ardidas incidiram maioritariamente em terrenos florestados (84,6%)
estimando-se que a espécie mais afectada tenha sido o pinheiro bravo com mais de 85
mil hectares de povoamentos ardidos.
Discute-se então como reflorestar o país e que erros não devem ser cometidos. De
facto, não é necessário começar a reflorestação de imediato, sendo aliás, desejável deixar
passar algum tempo para começar a reflorestar devido à vulnerabilidade em que se
encontra o solo. É preferível deixar passar o Inverno uma vez que é a altura em que há
mais erosão, a qual iria ser aumentada com a utilização de máquinas de reflorestação.
Quanto à madeira ardida, por um lado é desejável não a retirar, de forma a criar
alguma protecção no solo. Mas, por outro lado, se a madeira não for retirada em tempo
útil deixará de ter qualquer utilidade.
Há ainda que ter em conta a compartimentação da paisagem, eliminando as hipó-
teses de expansão das chamas e a possibilidade de, ao reflorestar, se aumentar a biodi-
versidade da área em causa.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 26
As espécies florestais seriam as que em povoamento fornecessem regular e
continuamente os bens e serviços pretendidos, auto-regenerando-se perpetuamente a
taxas satisfatórias ao mesmo tempo que, integrando elas próprias o conjunto dos valores
patrimoniais, contribuíssem para a respectiva protecção e reforço.
As espécies autóctones (i.e., as espécies predominantes de determinada região) são
as que, geralmente, apresentam um maior grau de aptidões e perfeição.
Suponha-se que, depois de efectuado um devido tratamento de solo, se pretende
reflorestar a área ardida do distrito de Castelo Branco com as respectivas espécies
autóctones, Pinus pinaster (pinheiro bravo), Quercus ruber (sobreiro) e Eucaliptus glo-
bulus (eucalipto). Pretende-se também que o custo da reflorestação seja mínimo.
Desta forma, o problema de programação linear apresenta a seguinte função
objectivo, tendo em conta que o preço de cada planta de pinheiro bravo, sobreiro e
eucalipto é, respectivamente 0,20 euro, 0,35 euro e 0,17 euro:
Minimizar 0.20x + 0.35y + 0.17z;
Uma vez que as árvores, ao serem plantadas, devem distanciar-se entre elas de 3
e 2,5 metros, só é possível plantar 2 milhares de árvores por hectare.
Tendo em conta a percentagem das espécies, outrora existente no distrito, devem
ser plantados mais de 80% de pinheiro bravo. Em relação ao sobreiro e ao eucalipto a
percentagem é inferior a 13% e 7%, respectivamente.
Assim, obtém-se o seguinte problema de programação linear:
Minimizar 0.20x + 0.35y + 0.17z;
sujeito a x + y + z = 2;
x ≥ 1.6;
y ≤ 0.26;
z ≤ 0.14;
x,y,z ≥ 0.
Utilizando o Método Simplex obtém-se a seguinte solução:
x = 1.860;
y = 0;
z = 0.14.
pelo que é possível concluir que, por hectare, devem ser plantados 1860 pinheiros bravos
e 140 eucaliptos, não se mostrando rentável a plantação de sobreiro.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 27
As causas dos incêndios florestais são das mais variadas. Têm na sua grande
maioria, origem humana, quer por negligência e acidente, quer intencionalmente.
O contributo para proteger a floresta do fogo baseia-se na adopção de algumas
acções preventivas, medidas de simples bom senso, sempre que haja risco de incêndio e
sobretudo durante os períodos mais quentes.
Tem de se olhar para a floresta como se olha para o urbano. Se há planos directo-
res municipais, têm de existir os planos municipais de intervenção florestal.
Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Fundamentos e Ensino da Álgebra - Programação Linear 28
Bibliografia
Agudo, F.R. Dias , Introdução à Álgebra Linear e Geometria Analítica , Escolar Editora — 1989;
Antunes, Carlos Henggeler e Tavares, Luís Valadares; Casos de aplicação da
investigação operacional; Mc Graw-Hill;
Costa, João Paulo; Alves, Maria João; Clímaco, João Namorado; Exercícios para aulas de Investigação Operacional; Sebenta da Faculdade de Economia da Univer-sidade de Coimbra; Coimbra-1996;
Dantzing, G. B. ; Eaves, B. O. , Studies in optimization (Volume 10); The Mathe-
matical Association of America;
Ferreira, João da Silva, Introdução à Programação Linear, Estudos de Economia Moderna, Clássica Editora, Cap. 2,1976, Lisboa
Jorge, Ana Maria Brito; Alves, Conceição Barroso; Fonseca, Graziela; Barbedo; Infi-nito 11, volume 2; Areal Editores;
Lima, Yolanda; Gomes, Francelino; Xeque-Mate-11º ano, Editorial O Livro;
Martins, Ernesto de Queirós Vieira, Programação Linear-Apontamentos, Departa-
mento de Matemática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra —1999/2000;
Martins, Ernesto de Queirós Vieira; Determinação de caminhos óptimos em redes
orientadas; Departamento de Matemática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra —1984;
Ramalhete, Manuel; Guerreiro, Jorge; Magalhães, Alípio; Programação Linear,
volume I e volume II, McGraw-Hill —1984;
Tavares, L. Valadares; Oliveira, Rui Carvalho; Themido, Isabel Hall; Correia, F. Nunes; Investigação Operacional, McGraw-Hill- 1996.
Referências da internet:
@ www.yahoo.pt @ www.fe.up.pt/~jfo @ www.terravista.pt @ www.sapo.pt