CENTRO UNIVERSITÁRIO FUNDAÇÃO SANTO ANDRÉ
FACULDADE DE ENGENHARIA “ENGENHEIRO CELSO DANIEL”
RELATÓRIO DE ATIVIDADES
UMA APLICAÇÃO DE PROGRAMAÇÃO LINEAR EM UMA EMPRESA DE
SERVIÇOS
Aluna:
Fabiana Miki dos Santos
Orientadora:
Lílian Kátia de Oliveira
Janeiro de 2012
Sumário
1. Introdução ....................................................................................................... 1
2. Programação Linear ....................................................................................... 3
2.1. Resolução gráfica de um problema de PL (Lachtermacher, 2004) .......... 5
3. Exemplos de modelos de otimização linear (Arenales et al., 2007) ......... 14
3.1. Problema de mistura ................................................................................. 14
3.2. Problema de transporte ............................................................................. 17
3.3. Problema de meio ambiente ..................................................................... 18
4. Método simplex ............................................................................................. 20
4.1. Teoremas fundamentais do Método Simplex (Puccini, 1980) ................ 20
4.2. Solução Algébrica (Puccini, 1980) ...........................................................21
4.3. Solução em quadros .................................................................................. 25
4.4. Casos Especiais......................................................................................... 29
4.4.1. Problema de Minimização ...................................................................... 29
4.4.2. Empate na entrada para o critério da variável básica ......................... 29
4.4.3. Empate na saída para o critério da variável básica ............................. 29
4.4.4. Múltiplas soluções .................................................................................. 31
4.4.5. Solução ilimitada .................................................................................... 33
5. Utilizando o Solver do Excel (Lachtermacher, 2004) ................................. 34
6. Utilizando o Lindo (Hillier e Lieberman, 2006)............................................ 44
7. Descrição e formulação dos estudos de caso ........................................... 47
7.1. Estudo de caso I ........................................................................................ 47
7.1.1 Formulação do problema I ...................................................................... 49
7.1.2 Resolução do problema I utilizando o Lindo ......................................... 51
7.1.3 Conclusão da análise dos resultados I...................................................53
7.2. Estudo de caso II ....................................................................................... 54
7.2.1 Formulação do problema II ..................................................................... 54
7.2.2 Resolução do problema II utilizando o Lindo ........................................ 56
7.2.3 Conclusão da análise dos resultados II................................................. 57
8.Conclusão...................................................................................................... 57
Bibliografia ........................................................................................................ 59
1
1. Introdução
O estudo de Pesquisa Operacional surgiu com o advento da Revolução
Industrial, em função do crescimento acelerado no tamanho e na complexidade
das organizações. O aumento no número de trabalhos e na segmentação das
responsabilidades
gerenciais
na
organização
foi
significativo
(Hillier
e
Lieberman, 2006). Sendo constatada uma desestruturação no foco das
organizações, ou seja, havia setores nas empresas que tinham objetivos e
valores autônomos.
Percebendo a necessidade de solucionar os problemas de necessidade
de alocar recursos disponíveis para as diversas atividades de maneira mais
eficiente para organização como um todo, a pesquisa operacional ganhou
espaço no mercado. Mas foi a partir da Segunda Guerra Mundial, que o estudo
de PO ganhou uma importância significativa, pois havia a necessidade premente
de se alocar de forma eficiente os recursos escassos para as diversas
operações militares
e
atividades internas a cada
operação.
Após o
empreendimento bélico o interesse pela Pesquisa Operacional fora desse
ambiente, foi umas das ferramentas que fundamental para a expansão industrial
pós-guerra (Hillier e Lieberman, 2006).
A própria natureza do nome sugere que a pesquisa operacional envolve
pesquisa em operações, sejam elas na área governamental, industrial, etc. A
pesquisa operacional pode ser considerada como um conjunto de ferramentas
que auxiliam a conduzir e coordenar atividades dentro de uma organização; daí
ser também chamada de abordagem científica de apoio às decisões em um
sistema (Hillier e Lieberman, 2006).
Assim a pesquisa operacional é a aplicação de métodos científicos a problemas
complexos para auxiliar no processo de tomada de decisões tais como projetar,
planejar e operar em situações que requerem alocações eficientes de recursos
escassos (Arenales et al., 2007).
A PO foi desenvolvida rapidamente devido a dois fatores importantes. O
primeiro deles foi George Dantzig que em 1947 desenvolveu um progresso
substancial feito no início em termos de melhoria técnica: a criação do método
2
simplex para solucionar os problemas com a programação linear. O segundo
fator foi à revolução computacional, com a sua capacidade de realizarem
cálculos milhões de vezes mais rápido que o humano, deu um enorme impulso
para PO. Em 1980 estimulado com o desenvolvimento de computadores
pessoais munidos de excelentes pacotes de software de PO (Hillier e
Lieberman, 2006).
O estudo de PO busca soluções que são ótimas para a organização como
um todo em vez de soluções que beneficiam apenas um membro. Considerando
um problema optamos por escolher o melhor caminho, sendo que podem
aparecer varias soluções ótimas, optando pela melhor solução ótima
dependendo das necessidades administrativas (Hillier e Lieberman, 2006). .
Para que o estudo de PO seja devidamente aplicado à exigência de uma
equipe formada por indivíduos experientes, capacitados e treinados em áreas de
exatas como matemática, estatística, probabilidade, economia, informática, etc.,
para que possa dar a devida atenção para as ramificações do problema que
permeiam a organização (Hillier e Lieberman, 2006).
Podemos dizer que a pesquisa operacional tem tido um impacto crescente
nas áreas administrativas, recentemente (tanto o número quanto a variedade de
aplicações continuam a crescer).
Na indústria, as aplicações são cada vez mais notáveis: aviação e
mísseis,
automóveis,
comunicações,
computadores,
energia
elétrica
e
eletrônica, alimentos, metalurgia, mineração, petróleo, transportes, papéis,
móveis, metais, etc. Empresas prestadoras de serviço como agências
financeiras, bancos, postos de correios, e até mesmo um sistema de delivery
também utiliza as ferramentas de pesquisa operacional na gerência de seus
sistemas. Outro setor que tem se beneficiado muito com aplicações de técnicas
de pesquisa operacional é o setor público (ou governamental). Serviços como
coleta de lixo, bombeiros, polícia e saúde apresentam um aumento elevado no
nível de serviço oferecido à população devido a estudos aplicados em suas
organizações.
3
Dessa forma, podemos dizer que a Pesquisa Operacional causou um
impacto para a melhoria da eficiência, além da contribuição para o aumento da
produtividade pelas organizações no mundo todo.
2. Programação Linear
A programação linear (PL) envolve um bom entendimento de conceitos
matemáticos como matrizes e sistemas de equações lineares, sendo que os
problemas de PL se referem à distribuição eficiente de recursos limitados entre
atividades competitivas, atendendo um determinado objetivo, como exemplo,
maximizar os lucros e minimizar os custos, ou seja, são problemas de
programação matemática em que funções objetiva de restrição são lineares.
(Puccini, 1980; Lachtermacher, 2004).
Os modelos podem ser utilizados como ferramentas consistentes para a
avaliação e a divulgação de diferentes políticas empresariais. Existem
basicamente três tipos de modelos (os físicos, análogos e matemáticos ou
simbólicos). Tendo como exemplos de modelo físico os modelos de aeronaves
e casas utilizados por engenheiros, para os modelos análogos podem ser
representados por modelos de mapas rodoviários que simula as rodovias de
uma região através de traços sobre o papel e um marcador do tanque de
gasolina que representa através de uma escala circular, a quantidade de
gasolina existente no tanque (Puccini, 1980).
O modelo matemático é o mais utilizado na modelagem de situações
gerenciais, as grandezas são representadas por variáveis de decisão, logo os
modelos
matemáticos
necessitam
de
informações
quantificáveis
(Lachtermacher, 2004).
As restrições dos modelos são formadas por equações e inequações
lineares sendo estas definidas uma para cada recurso. Normalmente há a
satisfação da restrição do problema pelas inúmeras maneiras de distribuição
desses recursos entre as diversas atividades.Essas distribuições devem estar de
acordo com as equações de cada recurso para alcançar o objetivo, ou seja,
4
maximização do lucro ou a minimização do custo, sendo nomeada como solução
ótima.
Para o problema matemático em que as funções objetivo e as restrições
sejam lineares temos (Puccini, 1980; Lachtermacher, 2004):
Otimizar: Z= f  x1, x2,..., xn 
sujeito a:
g1  x1, x2 ,..., xn 
 b1
 
g2  x1, x2,..., xn   b2
 
 
gm  x1, x2,..., xn   bn
Ou para sua forma reduzida:
n
Otimizar: Z   ci x j
i 1
sujeito a:
n
c x
i 1
i
j
 bi  i  1,2,..., m 
x1, x2,...xn  0
onde:

f  x1, x2,..., xn   c1x1  c2x2  ...  cn xn ;

gi  x1, x2,..., xn   ai 1x1  ai 2x2  ...  ain xn , para i  1,...,m ;

Z é o valor da medida de desempenho;

n é o número de variáveis;

m é o número de restrições do problema;

i é o índice de uma determinada restrição;

j é o índice de uma determinada variável.
5
A terminologia solução no campo da programação linear significa que
qualquer especificação de valores para as variáveis de decisão
 x1, x2,...xn  ,
independe de ela ser desejável ou até mesmo ser uma opção admissível.
Diferentes tipos de soluções são então identificados usando-se um adjetivo
apropriado (Hillier e Lieberman, 2006):

Solução viável: é aquela para qual todas as restrições são
satisfeitas. É possível que não haja nenhuma solução viável no
problema.

Solução inviável: é aquela para qual pelo menos uma das
restrições é violada.

Região de soluções viáveis: é o conjunto de todas as soluções
viáveis.

Solução ótima: é a solução viável que tem o valor mais favorável
da função objetivo. Possível encontrar nenhuma solução ótima no
problema.

Soluções ótimas múltiplas: apresenta um numero infinito delas,
cada uma com o mesmo valor ótimo da função objetivo.

Valor mais favorável: é o maior valor se a função objetivo tiver de
ser maximizada, ao passo que será o menor valor caso ela deva
ser minimizada.
2.1. Resolução gráfica de um problema de PL (Lachtermacher, 2004)
Quando um problema de PL envolve apenas duas variáveis de decisão a
solução ótima de um problema de programação linear pode ser encontrada
graficamente.
Consideremos o seguinte problema de PL:
Max Z  5x1  3x2
Sujeito a :
6
x1
5
(a)
x2  4
(b)
2x1  3 x2  12
(c)
x1  0, x2  0
(d)
O primeiro passo para resolver o problema graficamente é estabelecer os
dois eixos que irão representar as quantidades de x1 e x2 . Em seguida deve-se
encontrar o conjunto de regiões viáveis do problema e, para isso, pode-se
utilizar a representação gráfica imposta por cada uma das restrições (ou seja,
determinar qual área do subespaço x1  x2 seria aceito por cada restrição).
Observando a Figura 1, nota-se o conjunto de soluções viáveis considerando as
restrições (a), (b) e (d) do problema acima.
Figura 1- Representação gráfica do conjunto de soluções viáveis para (a), (b) e (d).
A restrição (c) não tem representação imediata. Para representá-la
considere x1 como variável independente e x 2 como variável dependente. A
equação da reta é dada por x2  ax1  b onde a é o coeficiente angular da reta e
b é o coeficiente linear. Como a inequação é do tipo menor ou igual, todos os
pontos abaixo e acima da reta satisfazem a restrição. Assim graficamente será
representada pela Figura 2 e analiticamente temos:
7
2 x1  3 x2  12
3 x2  12  2 x1
12 2 x1

3
3
2x
x2  4  1
3
x2 
Figure 2- Representação gráfica do conjunto de soluções viáveis para (a),(b),(c),(d).
Para encontrar o valor máximo da função objetivo, deve-se encontrar o
maior valor possível de Z, a partir de um procedimento simples, porém não muito
funcional, onde atribuem valores a Z, tornando a função-objetivo em uma
equação de uma reta, simbolizada pelo tracejado na Figura 3. Por um processo
de tentativa e erro, podemos chegar ao valor ótimo verificando a existência de
pontos de reta que fazem parte do conjunto de soluções viáveis.
8
Figura 3 – Procedimento de procura da solução ótima.
Neste caso, o máximo valor de Z é igual a 27 cuja solução ótima é dada
por x1  5 e x2 
2
.
3
O mesmo procedimento pode ser utilizado para de obter uma solução
ótima para um processo de minimização.
Min Z = 5 x1  7 x2
Sujeito a:
4
(a)
x2  4
(b)
 x1  x2  4
(c)
2 x1  3 x2  12
(d)
2 x1  6 x2  18
(e)
x1  0, x2  0
( f)
x1
Encontrando o conjunto de soluções viáveis a partir do conjunto de
restrições temos a Figura 4 representando o conjunto de soluções viáveis.
9
Figura 4 – Procedimento de procura da solução ótima para o problema de minimizar.
Como no problema de maximização, é utilizado o mesmo procedimento
de tentativa e erro para determinar a solução mínima do problema de
minimização, obtendo o seguinte valor para Z=28 quando x1  0 e x2  4 .
Em alguns casos uma ou mais restrições podem não participar da
determinação do conjunto de soluções viáveis, sendo denominadas de
restrições redundantes, ou seja, a exclusão dessa restrição do conjunto de
restrições de um problema não afetara a solução final do problema. Toda vez
que existirem restrições redundantes em um problema de PL, existira outro
problema sem esta restrição com o mesmo conjunto de soluções viáveis e a
mesma solução ótima.
Adicionando uma nova restrição ao problema de minimização anterior
temos:
Min Z = 5 x1  7 x2
Sujeito a:
10
x1
4
(a)
x2  5
(b)
2 x1  3 x2  12
(c)
3 x1  4 x2  12
(d)
x1  0, x2  0
(e)
Determinando o conjunto de soluções viáveis do problema representado
na Figura 5, nota-se que a restrição x1  x2  2 não participa da determinação do
conjunto de soluções viáveis, já que, neste caso, a restrição 2 x1  5 x2  20 é
dominante sobre a mesma.
Figura 5 – Problema de minimização com uma restrição redundante.
Existe também a possibilidade de um problema de PL apresentar mais de
uma solução ótima, ou seja, um ou mais valores produzem igual valor máximo
na função objetivo. Considere o problema a seguir:
11
Min Z = 6 x1  10 x2
Sujeito a:
5
(a)
x2  6
(b)
x2  2
(c)
x1
 x1 
3 x1  5 x2  15
(d)
x1  0, x2  0
(e)
A partir dos procedimentos realizados até agora a representação das
soluções ótimas encontradas pode ser observada na Figura 6.
Figura 6 – Problema de minimização com múltiplas soluções ótimas.
Nota-se
que
o
coeficiente
angular da
reta
limite
da
restrição
3 x1  5 x2  15 é igual a -0,6, o que coincide com o coeficiente angular da reta
função-objetivo, sendo assim, neste caso todos os pontos que formarem este
lado do polígono serão as soluções ótimas do problema.
12
Entretanto para a resolução dos problemas de Programação Linear deve
se levar em consideração mais dois casos especiais. Um deles ocorre no
problema a seguir.
Max Z = 6x1  10x2
Sujeito a:
x2  6
(a)
3 x1  5 x2  15
(b)
 x1  x2  2
(c)
x1  0, x2  0
(d)
Usando o mesmo procedimento anterior, podemos encontrar o conjunto
de soluções viáveis representado na Figura 7.
Figura 7 – conjunto de região viável de um PL com solução ilimitada.
13
Como observado na Figura 7 o limite para o crescimento de x1 não
existe, concluindo que não existirá um limite de crescimento do valor de Z
(função-objetivo). Como não se consegue determinar a solução ótima deste
problema, considerando a presença de infinitas soluções, a solução existe,
porém, o problema é dito como ilimitado.
Por fim, o ultimo caso, que é o oposto do caso anterior. Neste caso, em
vez de existirem infinitas soluções, o conjunto de soluções é vazio, não existindo
soluções para o problema. Considere o seguinte problema:
Max Z = x1  x2
Sujeito a:
x1  x2  3
(a)
x1  x2  6
(b)
x1  0, x2  0
(c)
Analisando graficamente (Figura 8), observa-se que o conjunto de
soluções viáveis é vazio.
14
Figura 8 – Conjunto de soluções viáveis (vazio) de um PL inviável.
3. Exemplos de modelos de otimização linear (Arenales et al., 2007)
Nas mais variadas áreas encontraram diversos exemplos de problemas
que podem ser formulados como um problema de otimização linear.
3.1. Problema de mistura
Os problemas de mistura consistem na combinação de materiais obtidos
na natureza (ou restos de outro já combinado anteriormente) para a geração de
novos produtos com características convenientes.
Descrição de um possível problema de mistura de rações
As fábricas de rações produzem vários tipos de rações para determinados
animais, como bovinos, caninos (pequeno, médio e grande porte), felinos etc.
Essas rações são produzidas pela mistura de alimentos ou farinhas de restos de
alimentos como milhos, farelo de arroz, farinha de osso (entre outras dezenas de
ingrediente), cujo preço de mercado são conhecidos. A composição nutricional
desses ingredientes também é conhecida, isto é, quantidade de proteína,
manganês, ferro, cálcio, etc. (na prática o número de nutrientes é de cerca de
15
duas dezenas). A nutrição veterinária especifica as necessidades mínimas e
máximas desses nutrientes por quilo de ração para cada tipo de animal. Um
problema de otimização surge para determinar quais devem ser as quantidades
ideais de cada ingrediente por quilo de cada ração de modo que as
necessidades nutricionais impõem restrições, de modo que nem toda mistura de
ingredientes é aceitável, e o custo é o critério para se caracterizar a melhor
solução.
Os problemas de mistura surgem em vários outros processos industriais
como na produção de adubos, sucos concentrados de laranja, ligas metálicas,
composição de areias para filtro, etc.; geralmente são partes de um problema
mais geral de planejamento e controle da produção.
O processo de formulação matemática do problema de mistura consiste
na obtenção ou fabricação de um produto, ou no caso a mistura, combinando-se
alguns materiais disponíveis na natureza ou disponíveis no mercado. A mistura é
produzida a partir de ingredientes que possuem os componentes desejados no
novo produto (na ração, os componentes são proteínas, vitaminas, etc.) e que
devem satisfazer determinadas especificações (por exemplo, a pesquisa em
nutrição animal).
A composição de cada ingrediente é conhecida, isto é, as proporções dos
componentes de cada ingrediente são dadas, como também o seu custo
unitário. Deseja-se determinar as quantidades de cada ingrediente que deve ser
utilizado para obter uma mistura com a composição especificada e com o menor
custo possível.
Seja n é o número de ingredientes que são utilizados na produção da
mistura, m é o número de componentes relevantes para a mistura. Um dos
passos fundamentais para se escrever um modelo matemático é identificar as
incógnitas (variáveis do problema), ou seja, o que se deseja determinar. No caso
do problema da mistura, as variáveis são as quantidades dos ingredientes, logo
definimos a variável:
16
x j : a quantidade do ingrediente j que deve ser utilizado em uma unidade de mistura
j = 1,2,3,...,n.
As variáveis devem ser não negativas, caso haja um valor negativo par x j
não será possível, pois x j  0, j  1,2,3,..., n sendo a restrição do problema não
permite que isso ocorra. Para descrever as demais restrições sendo elas a
composição da mistura e seu custo, utiliza a seguinte notação:
aij é a fração do componente i no ingrediente j, i  1,...,m e j  1,...,n ;
bi é a fração do componente i na mistura, i  1,..., m ;
c j representa o custo de uma unidade do ingrediente j, j  1,..., n
A restrição aij será a quantidade do componente i em uma unidade da
mistura, então aij x j é a quantidade do componente i em x j unidades do
ingrediente j , então ai 1x1  ai 2 x2  ...  ain xn é a quantidade total do componente i
em uma unidade de mistura e quantidade i em uma unidade da mistura deve
ser bi :
ai 1x1  ai 2 x2  ...  ain xn  bi
i  1,2,3,...,m.
Nas m equações anteriores supõem-se que há alterações na composição
dos ingredientes quando estes se misturam, como por exemplo, a quantidade de
produção de sódio na mistura de um produto deve ser a soma das quantidades
de cálcio presentes nos ingredientes.
Como x j , j  1,...,n , são as quantidades dos ingredientes a serem
utilizadas em uma mistura, então a soma dessas quantidades deve resultar em
uma unidade da mistura, ou seja, x1  ...  xn  1.
O custo de uma unidade da mistura é a soma dos custos de todos os
ingredientes utilizados para sua obtenção, ou seja, c1x1  c2 x2  ...  cn xn .
Desejamos minimizar esse custo, portanto, o problema da mistura é
escrito como:
17
Minimizar f(x1,x 2 ,...,x n ) = c1x1  c2 x2  ...  cn xn
a11x1  a12 x2  ...  a1n xn  b1
a21x1  a22 x2  ...  a2 n xn  b1
...
am1x1  am 2 x2  ...  amn xn  b1
x1  x2  ...  xn  1
x1  0, x2  0,..., xn  0.
3.2. Problema de transporte
Os problemas de transporte referem-se ao transporte ou distribuição de
produtos dos centros de produção aos mercados consumidores. De maneira que
os produtos podem ser os mais variados possíveis, desde equipamentos,
maquinário, produção agrícola, energia elétrica até o petróleo. Esse problema
consiste em transportar o produto dos centros de produção aos mercados
consumidores de modo que o custo total de transporte seja o menos possível.
Admitindo geralmente que as quantidades produzidas ou ofertadas em casa
centro e as quantidades demandadas em cada mercado consumidor são
conhecidas. O transporte deve ser efetuado respeitando as limitações de oferta
e atendendo à demanda.
Para a formulação matemática do problema de transporte denominamos
centros de produção de origens e os mercados consumidores, de destinos.
Suponha que existam m origens e n destinos para um produto e que o custo de
transportar uma unidade desse produto da origem i para o destino j é c ij . Além
disso a oferta do produto na origem i é a i e a demanda do produto no destino j é
b j . As variáveis do problema são as quantidades transportadas das origens aos
destinos:
x ij quantidade transportada do produto da origem i para o destino j.
Essas quantidades não podem ser negativas, portanto, as restrições
xij  0, i  1,..., m e j  1,..., n, fazem parte do modelo matemático. Se x ij é a
18
quantidade transportada do produto da origem i para o destino j, então cij xij é o
custo incorrido para se realizar o transporte. O custo total de transporte é a
soma dos custos de transporte de todas as quantidades transportadas de todas
m
as origens i para todos os destinos j, ou seja,
n
 c x
i 1 j 1
ij
ij
. Esse custo deve ser
minimizado. Sabendo que o que é transportado de cada origem i a todos os
destinos j, j  1,2,..., n, não pode ultrapassar a quantidade disponível de produto
n
na origem i, ou seja
x
j 1
ij
 aij .
Desejamos também que as quantidades transportadas das diversas
origens ao destino j satisfaçam a demanda requerida neste destino, ou seja,
m
x
i 1
ij
 bij .
O modelo completo do modelo de transporte é definido por:
m
n
Minimizar f ( x11, x12 ,..., xmn )   cij xij
i 1 j 1
sujeito a:
n
x
j 1
ij
 aij
i  1,..., m
ij
 bij
j  1,..., n
m
x
i 1
xij  0
i  1,..., m e j  1,..., n.
3.3. Problema de meio ambiente
A preservação do meio ambiente tem sido de grande importância
atualmente. Uma maneira de preservar o meio ambiente é cuidar para que a
poluição dos recursos naturais esteja sobre controle.
Descrição de um possível problema de meio ambiente
19
Uma fábrica desvia parte da água de um rio para ser utilizada em seu
processo produtivo. Durante a produção, componentes químicos poluidores A e
B são adicionados à água desviada, que depois retorna ao rio, poluindo assim o
rio. Há níveis intoleráveis desses poluentes e o processo produtivo não acarreta
mudanças no fluxo de água. A adição dos poluentes também não afetas esse
volume.
As concentrações de poluentes consideradas aceitáveis pela Companhia
Estadual de Controle Ambiental são de a0 e b0 gramas por ML (milhões por
litros) de água por dia para os componentes A e B, respectivamente. A vazão do
rio é V ML por dia e a fábrica precisa de pelo menos U ML de água por dia para
sua produção. Existem 3 tipos de tratamento que a empresa pode utilizar para
diminuir a concentração dos poluentes resultantes de seu processo de
produção.
Esses tratamentos tem custos diferenciados ($/ML) e resultam, após o
tratamento, em níveis de concentração diferentes (gramas por ML) de cada um
dos poluentes.
O problema consiste em determinar a quantidade de agra a ser tratada
em cada tipo de tratamento, de modo que as exigências ambientais
regulamentadas em lei sejam atendidas e o custo total de tratamento seja
mínimo. Defina a variável de decisão xi , i  1, 2, 3, como a quantidade de água
(em ML) por dia a ser tratada pelo tratamento 1, 2 e 3, respectivamente. Pela
própria definição, essas variáveis devem ser não – negativas. Tendo como
objetivo a minimização do custo do tratamento da água, ou seja minimizar
( c1x1  c2 x2  c3 x3 ), que é a soma dos custos de cada um dos tratamentos a
serem efetuados. A quantidade diária de água (em ML) desviada para a
produção é simplesmente  x1  x2  x3  , e essa quantidade deve ser no mínimo
U, a quantidade mínima necessária para a fábrica funcionar em cada dia.
Portanto temos, a seguinte restrição:  x1  x2  x3   U
Dessa forma a, a quantidade desviada não pode superar a vazão do rio.
Assim, temos:  x1  x2  x3   V
20
Após o tratamento de x i milhões de litros de água, retornam ao rio ai xi e bi xi
gramas do poluente A e B, respectivamente, por dia. O total de poluentes (em
gramas) resultantes dos tratamentos é:
a1x1  a2 x2  a3 x3 do poluente A
b1x1  b2 x2  b3 x3 do poluente B.
A concentração de poluentes no rio deve ficar abaixo dos limites
considerados aceitáveis. Assim, devemos ter:
a1x1  a2 x2  a3 x3  / V  a0
b1x1  b2 x2  b3 x3  / V  b0
Portanto o modelo completo fica:
Miniminizar f ( x1, x2 , x3 )  c1x1  c2 x2  c3 x3
x1 
x2 
x3
U
x1 
x2 
x3
V
a1x1  a2 x2  a3 x3  / V  a0
b1x1  b2 x2  b3 x3  / V  b0
x1  0, x2  0, x3  0.
4. Método simplex
O método simplex desenvolvido por George Dantzig em 1947 provou ser
um método eficiente para solucionar problemas de programação linear
complexos, que são executados no computador usando pacotes de softwares
sofisticados ou, quando resolvido manualmente, é conveniente utilizar a forma
tabular do Método Simplex. O quadro Simplex é utilizado para registrar apenas
as informações essenciais no caso são os coeficientes das variáveis, as
constantes das restrições e as variáveis básicas e as não básicas. (Hillier e
Lieberman, 2006; Lachtermacher, 2004).
4.1. Teoremas fundamentais do Método Simplex (Puccini, 1980)
Teorema 1: O conjunto de todas as soluções compatíveis do modelo de
programação linear é um conjunto convexo.
21
Teorema 2: Toda função compatível básica do sistema Ax  b é um ponto
extremo do conjunto das soluções compatíveis, isto é, do conjunto convexo C do
Teorema 1.
Teorema 3:
1) Se a função objetiva possui um máximo (mínimo) finito, então pelo
menos uma solução ótima é um ponto extremo do conjunto convexo C do
Teorema 1.
2) Se a função objetiva assume o máximo (mínimo) em mais de um ponto
extremo, então ela toma o valor para qualquer combinação convexa desses
pontos extremos.
4.2. Solução Algébrica (Puccini, 1980)
Observando o modelo a seguir, lembrando que este foi resolvido
graficamente (Figura 3) como um problema de Maximizar
Max Z  5 x1  3 x2
Sujeito a :
x1
5
(a)
x2  4
(b)
2x1  3 x2  12
(c)
x1  0, x2  0
(d)
(1)
Introduzindo as variáveis de folga ( x3 , x4 e x5 ) ao sistema, temos:
22
Max Z  5 x1  3 x2
Sujeito a :
x1
 x3
5
 x4
x2
2 x1  3 x2
(2)
4
 x5  12
x1  0, x2  0, x3  0, x4  0, x5  0
Quando as restrições forem do tipo menor ou igual
 
e os bi não-
negativos, como no caso do sistema (1), sempre terá uma base formada pelas
variáveis de folga. Para o sistema de equações do sistema (2) apresenta as
seguintes características:
a. Todas as variáveis são não-negativas;
b. Todos bi são não-negativos;
c. Tem uma base obvia.
Quando o sistema de equações apresenta apenas as características a. e
b., diz que ela se encontra na forma padrão. Assim para que o sistema (2)
(forma canônica) apresente uma solução compatível básica, apresenta-se as
seguintes variáveis:
Variáveis não básicas: x1  x2  0 .
x3  5
Variáveis básicas: x4  4
x5  12
O sistema (2) correspondera a solução básica factível inicial. Tendo como
solução compatível óbvia para este sistema, o vértice (0,0) da Figura 2.
O próximo passo é verificar a solução ótima atual identificando o valor da
função objetivo (Z  5 x1  3 x2 ) que será zero, já que x1  x2  0 . Qualquer uma
das variáveis não-básicas que entrar na base assumira algum valor positivo, o
que fará com que o valor da função objetivo aumente. A solução ainda não foi
alcançada.
23
Para determinar a solução ótima é preciso saber qual variável não-básica
( x1 ou x2 ) deve entrar na base. O método simplex determina que a variável x1
deve entrar na base, pois é a que possui o maior coeficiente na função objetivo.
O critério de entrada na base visa crescer o valor da função objetivo o mais
rápido possível.
Sendo assim, para determinar a variável que devera sair da base, é
preciso colocar todas as variáveis básicas em função das variáveis não-básicas.
x3  5  x1
 x1  5
x 4  4  x2
(3)
x5  12  2 x1  3 x2
 x1  6
Observando que x1 influencia os valores das variáveis básicas x3 , x4 e x5 ,
conclui-se que em (3) quando a variável x1 entra na base assumindo algum
valor positivo, as variáveis x3 e x5 diminuirão de tamanho e a variável x 4 ficara
inalterada. Lembrando que a variável x 2 permanecerá fora da base com o valor
nulo. Desejando aumentar o tanto quanto possível o valor de x1 , respeitando as
restrições de não-negatividade das variáveis. Dessa forma a variável que mais
rapidamente se anular com o crescimento de x1 sairá da base, no caso a
variável x 3 , sai da base.
A nova base então será formada pelas variáveis x1, x 4 e x5 . É necessário
atualizar o sistema (2) para outra forma canônica, de maneira que a nova base
seja formada por essas variáveis. Basta multiplicar à primeira da equação por
(-2) e somar à terceira equação.
 x3
x1
x2
3 x2 -2x3
5
 x4
(4)
4
 x5  2
A solução básica compatível obvia de (4) é a seguinte:
Variáveis não básicas: x2  x3  0 .
24
x1  5
Variáveis básicas: x4  4
x5  2
Esta situação corresponde ao vértice (3,0) do trapézio, adjacente ao
vértice (0,0). É necessário agora testar se a solução é ótima. Não poderá ser
feito com a função objetivo Z  5 x1  3 x2 , pois:

Não se pode avaliar a influência da variável não-básica
x3
no
comportamento da função objetivo;

Não se pode afirmar que a função objetivo aumentará de valor com a
entrada de x 2 na base, pois a variável x1 poderá diminuir de valor,
mesmo permanecendo na base.
Deverá obter a função objetivo somente em termos das variáveis não-
básicas. Sabendo que (4) x1  5  x3 , então:
Z  5 x1  3 x2  5(3  x3 )  3 x2  15  3 x2  5 x3
Agora pode se afirmar que a presente solução ainda não é ótima, pois se
x 2 entrar na base, aumentara o valor da função objetivo. A variável x 3 não deve
entrar na base, pois caso ocorra o valor de Z será decrementado. Visando a
entrada de x 2 na base, deve-se colocar as variáveis básicas em função das
não-básicas. Para (4) obter:
x1  5  x1
x 4  4  x2
 x2  4
x5  2  3 x2 +2x 3
 x2 
(5)
2
3
A variável x 5 , sendo que se anula mais rapidamente com o crescimento
de x 2 , é que deve sair da base. Agora ao transformar (4) em uma nova forma
canônica de tal forma que a nova base formada pelas variáveis x1, x2 e x 4 . É
necessário dividir á terceira equação de (4) por 3 ,multiplicar á terceira equação
por -1/3 e somá-la à segunda equação de (4), repetir a primeira equação e
somar à terceira equação com a linha (0).
25
x1 
5
x3
2
1
10
x3  x 4  x5 
3
3
3
2
1
2
x 2  x3 
x5 
3
3
3
(6)
De (6) tem-se a seguinte solução compatível básica:
Variáveis não básicas: x3  x5  0 .
x1  5
2
3
10
x4 
3
Variáveis básicas: x2 
 2
Esta solução corresponde ao ponto extremo  5,  do conjunto de soluções
 3
compatíveis de (1). Deve-se colocar a função objetivo somente em termos das
variáveis não-básicas. De (6) se obtém x2 
2 2
1
 x3  x5 , o qual fornece:
3 3
3
1 
2 2
Z  15  3 x2  5 x3  15  3   x3  x5   5 x3
3 
3 3
Z  15  2  2 x3  x5  5 x3
Z  17  2 x3  x5
 2
O valor da função objetivo no vértice  5,  pode ser calculado de duas
 3
formas:
a) Z *  5 x1 * 3 x2 *  17
b) Z *  17  2 x3 *  x5 *
Agora pode-se afirmar que esta é a solução ótima, pois se x3 ou x5 entrarem
na base o valor da função objetivo será decrementado.
4.3. Solução em quadros
A solução em quadros visa simplificar os cálculos da maneira da solução
algébrica.
26
Utilizando novamente o sistema (1) como exemplo,temos:
Max Z  5 x1  3 x2
Sujeito a :
x1  5
(a)
x2  4
(b)
2 x1  3 x2  12
(c)
x1  0, x2  0
(d)
Reescrevendo o sistema da seguinte maneira :
Z  5 x1  3 x2
 x3
x1
x2
(7)
=0
5
 x4
2 x1  3 x2
4
 x5  12
O sistema (7) pode ser representado na forma de quadro abaixo:
Z
x1
x2
x3
x4
x5
b
Base
1
-5
-3
0
0
0
0
(0)
x3
0
1
0
1
0
0
5
(1)
x4
0
0
1
0
1
0
4
(2)
x5
0
2
3
0
0
1
12
(3)
Nota-se que os coeficientes da função objetiva na linha (0) sofrem
inversões de sinais.
Para os coeficientes nulos x3, x4 , x5 na linha (0), a função objetiva se
encontra somente em termos das variáveis não básicas x1 e x 2 . Afirmando que a
27
solução não é ótima, pois no caso existem coeficientes negativos, sendo assim,
a variável a entrar na base é x1 por ter o maior coeficiente negativo. E para
descobrir qual variável irá sair da base calculamos a divisão do valor da
constante (representado pela coluna b) pelo coeficiente correspondente.
Linha (1): x1 
5
1
Linha (3): x1 
12
2

Z
x1
x2
x3
x4
x5
b
Base
1
-5
-3
0
0
0
0
(0)
x3
0
1
0
1
0
0
5
(1) 
x4
0
0
1
0
1
0
4
(2)
x5
0
2
3
0
0
1
12
(3)
A divisão de menor valor representara a variável que sairá da base, neste
caso será a linha (1), ou seja, x 3 . Igualando x1 =0, e repetir as linhas (2) e (3);
multiplicar a linha (1) por (-2) e somar à linha (3); e multiplicar a linha (1) por 5 e
somar com a linha (0).
Veja o quadro a seguir:

Z
x1
x2
x3
x4
x5
b
Base
1
0
-3
5
0
0
25
(0)
x1
0
1
0
1
0
0
5
(1)
x4
0
0
1
0
1
0
4
(2)
x5
0
0
3
-2
0
1
2
(3) 
28
Restando ainda o coeficiente negativo em x 2 , afirmamos ainda que a
solução não é ótima. Logo será a variável que entrará na base.
Linha (2): x2 
4
1
Linha (3): x2 
2
3
Mas no caso a Linha (3) representada pela variável x5 sai da base.
Multiplicando a linha (3) por -1/3 e somá-la a linha (2); Dividir a linha (3) por 3; e
repetir a linha (1) e somar a linha (3) com a linha (0), temos:
Z
x1
x2
x3
x4
x5
b
Base
1
0
0
3
0
0
27
(0)
x1
0
1
0
1
0
0
5
(1)
x4
0
0
0
2
3
1
10
3
(2)
x2
0
0
1
2
3
(3)

2
3
0

1
3
1
3
Por fim obtemos a solução ótima, sendo que não existe nenhum
coeficiente negativo na linha (0). Comparando com gráfico da Figura 1 nota-se
que a solução ótima é 27
A solução ótima é dada por: x1  0, x2  0, x3  3, x4  0, x5  0 e Z  27 .
Com os novos conceitos que foram introduzidos pode-se reescrever os
cinco passos do método simplex, para o caso de maximização, da seguinte
maneira:
Método Simplex (maximização)
i.
Achar uma solução compatível básica óbvia (forma canônica)
ii.
Colocar a função objetivo somente em termos das variáveis nãobásicas. Se todos os coeficientes dessas variáveis forem negativos
ou nulos a presente solução é ótima. Caso contrario siga para o
passo iii
29
iii.
Colocar na base a variável não-básica que tiver maior coeficiente
positivo na função objetivo do passo ii
iv.
Tirar da base a variável não-básica que se anula mais
rapidamente, quando a variável que entrar for aumentada de valor.
v.
Achar uma outra forma canônica para o sistema de equações,
levando em consideração os passos iii e iv. Voltar par ii.
4.4. Casos Especiais
4.4.1. Problema de Minimização
Quando a função objetivo tiver de ser minimizada pode-se fazer duas
coisas:
a) Mudar o teste para saber se a solução é ótima e o critério de entrada na base.
b) Transformar um problema de minimização num problema de maximização.
Sabendo que a minimização de uma função Z( x) é matematicamente análoga à
maximização
da
negativa
desta
função
(Z( x)) ,
ou
seja,
Min Z( x)  Max(Z( x)) .
4.4.2. Empate na entrada para o critério da variável básica
Quando as divisões da constante pelo coeficiente são iguais deverá
escolher uma das duas, sabendo que a única implicação envolvida é que se
pode escolher um caminho mais longo ou mais curto para chegar à solução
ótima.
4.4.3. Empate na saída para o critério da variável básica
Quando houver empate na escolha da variável que sai da base, deve-se
tomar a decisão arbitrariamente, só que agora a solução básica é degenerada,
isto é, a variável que vai entrar na base com um valor igual a zero.
O seguinte modelo é um exemplo para a análise das implicações do
empate na hora da saída.
30
Max Z=5 x1  2 x2
Sujeito a:
x1  0
x2  0
4 x1  3 x2  12
x1, x2  0
Colocando as variáveis de folga no modelo:
Max Z=5 x1  2 x2
Sujeito a:
x1 
x3
x2 
0
0
x4
4 x1  3 x2 
x5  12
x1, x2 , x3 , x 4 , x5  0

Z
x1
x2
x3
x4
x5
b
Base
1
-5
-2
0
0
0
0
(0)
x3
0
1
0
1
0
0
3
(1) 
x4
0
0
1
0
1
0
4
(2)
x5
0
4
3
0
0
1
12
(3)
Escolhendo a variável que deve sair da base temos:
Linha (1): x1 
3
1
Linha (3): x1 
12
4
31
Nos dois casos o resultado da divisão é 3, portando escolhendo
arbitrariamente x3 para sair da base, temos:

x1
Z
x2
x3
x4
x5
b
Base
1
0
-2
5
0
0
15
(0)
x3
0
1
0
1
0
0
3
(1)
x4
0
0
1
0
1
0
4
(2)
x5
0
0
3
-4
0
1
0
(3) 
A variável básica x5 é nula. Isso sempre ocorrerá quando houver um
empate na saída. As variáveis x3 e x5 se anulam, sendo assim a variável que
fica na base também se anula. Quando isso ocorre se diz que a solução
compatível é degenerada.
4.4.4. Múltiplas soluções
O método simplex é capaz de acusar a ocorrência deste tipo de solução.
Exemplo:
Max Z  x1  2 x2
sujeito a:
x1  3
x2  4
x1  2 x2  9
x1, x2  0
Colocando as variáveis de folga obtém-se:
32
Max z  x1  2 x2
s.a.
 x3
x1
3
 x4
x2
x1  2 x2
4
 x5  9
x1, x2 , x3 , x4 , x5  0

Z
x1
x2
x3
x4
x5
b
Base
1
-1
-2
0
0
0
0
(0)
x3
0
1
0
1
0
0
3
(1)
x4
0
0
1
0
1
0
4
(2) 
x5
0
1
2
0
0
1
9
(3)
A variável que deve entrar na base é x 2 . Para escolher a variável
que sai da base deve-se fazer:
linha (2): x2  4
linha (3): x2 
9
 4,5
2

Z
x1
x2
x3
x4
x5
b
Base
1
-1
0
0
2
0
8
(0)
x3
0
1
0
1
0
0
3
(1)
x2
0
0
1
0
1
0
4
(2)
x5
0
1
0
0
-2
1
1
(3) 
33
A variável que é candidata a entrar na base é x1 . Para escolher a variável
que sai da base deve-se fazer:
linha (1): x1  3
linha (3): x1  1
Z
x1
x2
x3
x4
x5
b
Base
1
0
0
0
0
1
9
x3 *
0
0
0
1
2
-1
2
x2 *
0
0
1
0
1
0
4
x1 *
0
1
0
0
-2
1
1
Assim, temos a seguinte solução ótima:
Z  9 e x1  1, x2  4, x3  2, x4  0, x5  0
Observe que o coeficiente da variável não-básica x 4 na função objetivo é
nulo. A função objetivo é Z  9  0 x4  x5 . A variável x 4 pode entrar na base,
tomando qualquer valor, ficará com seu valor inalterado.
Fazendo x 4 entrar na base, obtém-se:
Z
x1
x2
x3
x4
x5
b
Base
1
0
0
0
0
1
9
x4 *
0
0
0
1/2
1
-1/2
1
x2 *
0
0
1
-1/2
0
1/2
3
x1 *
0
1
0
1
0
10
3
Observe no quadro acima que o coeficiente de x3 na função objetivo é
nula, logo se x3 entrar na base deve-se retornar ao quadro anterior.
4.4.5. Solução ilimitada
Ocorre a partir do momento em que a variável que entra na base não possui
em sua coluna nenhum coeficiente positivo. Para os programas de computador
eles apresentam a última solução básica antes que a solução se torne ilimitada.
34
5. Utilizando o Solver do Excel (Lachtermacher, 2004)
A utilização das planilhas eletrônicas como uma ferramenta, vem ganhando
adeptos por sua facilidade de utilização e por sua participação em todas as
organizações modernas. Neste tópico será introduzido algumas funções básicas
do Solver, uma das ferramentas do Excel, que facilitará a modelagem dos
problemas evitando os cálculos e assim, nos concentraremos na análise de suas
respostas. Observe o problema simples de maximização a seguir:
Max Z  2 x1  3 x2
Sujeito a:
2 x1  5 x2  7
x1  2 x2  6
2 x1  x2  1
x2  4
x1, x2  0
Primeiramente devemos designar uma célula para representar cada uma
das entidades:

A função-objetivo (expressão a ser maximizada ou minimizada)

Variáveis de decisão (variáveis que pode ser alterado o valor)

Para cada restrição:
o Uma para o lado esquerdo da restrição - LHS (left hand side)
o Uma para o lado direito da restrição - RHS (right hand side)
A Figura 9 demonstra a possível maneira de representar o problema em
questão. As células a seguir designam cada uma das entidades citadas
anteriormente:

B5 representa o valor da função-objetivo a ser maximizada;

B4 e C4 serão os valores que as variáveis de decisão assumirão na solução;

D9 até D12 são os LHS das 4 restrições;

E9 até E12 são os RHS das 4 restrições.
35
Figura 9 - Modelagem de um problema simples no Excel.
Para determinarmos cada célula citada anteriormente, necessitamos
inserir os coeficientes das restrições e da função-objetivo. Para lembrar o
significado de cada célula devem-se colocar títulos que especifiquem o conteúdo
dessa célula. As células B3 e C3 são utilizadas para inserir os valores dos
coeficientes da função-objetivo, enquanto que as células B9 até B12
representam os coeficientes das quatro restrições. Agora devemos definir cada
uma das entradas citadas anteriormente. A Tabela 1 representa as fórmulas
colocadas em cada uma destas células.
Tabela 1 – Descrição das fórmulas utilizadas nas células do Excel
B5
=(B3*B4)+(C3*C4)
Função-objetivo
D9
=B9*$B$4+C9*$C$4
LHS da 1ª restrição
D10 =B10*$B$4+C10*$C$4 LHS da 2ª restrição
D11 =B11*$B$4+C11*$C$4 LHS da 3ª restrição
D12 =B12*$B$4+C12*$C$4 LHS da 4ª restrição
A seguir, avisamos ao Excel quais células são as que representam a
função-objetivo, as variáveis de decisão, as restrições do modelo e, finalmente
para otimizar a função objetivo utilizamos a ferramenta Solver do Excel.
36
Após esse procedimento aparecerá a tabela representada pela Figura 10
Nesta janela serão informadas ao software as células que representam a
função-objetivo, as variáveis de decisão e as de restrições.
Figura 10 - Janela Parâmetros do Solver.
Na parte superior da janela (Figura 10) aparece um campo para entrada
denominado Definir célula de destino que deve representar o valor da funçãoobjetivo. Existem duas maneiras de designar esta célula, a primeira é clicar
sobre o ícone que está do lado direito do campo ou, digitar o nome da célula (B5
no exemplo) no campo. Escolhendo uma das duas maneiras, a janela resultante
para o problema é representado pela Figura 11.
Figura 11 - Escolha da célula.
37
Na linha seguinte são apresentadas as opções de maximizar, minimizar e
atingir o valor. A opção Valor de pode ser utilizada em análise do tipo ponto de
equilíbrio, onde a função Lucro (por Exemplo) atinja o valor zero, nos casos de
Programação Linear esta opção não será utilizada. Como o problema é de
Maximizar seleciona-se a opção Max.
No campo Células de variáveis serão representadas pelas células que
são as variáveis de decisão, no caso no exemplo as células B4 e C4, os valores
podem ser inseridos da mesma maneira como o caso da função-objetivo. Assim,
temos a Figura 12.
Figura 12 - Janela do Solver após a designação das células das variáveis.
O próximo passo é determinar as restrições do problema. Podemos inserir
as restrições uma de cada vez. Primeiramente para inserir a 1ª restrição deve-se
clicar no botão Adicionar, aparecerá uma janela de entrada de restrições como
representada pela Figura 13.
38
Figura 13 - Janela de entrada da restrição.
Essa janela de restrições tem três campos, que representam o LHS Referência de Célula (à esquerda), o sinal de restrição (ao centro) e o RHS –
Restrições (à direita). No caso do LHS e do RHS não é necessário a introdução
de variáveis de folga/excesso, pois o Excel fará isto automaticamente. A Figura
14 representa o formato da entrada da 1ª restrição do problema ( 2 x1  5 x2  7 ).
Figura 14 - Formato da entrada da 1ª restrição.
Vale lembrar que na célula D9 já havia sido colocado a fórmula que
representa 2 x1  5 x2  7 , ou seja, D9= B9*$B$4+C9*$C$4, onde:

B9 representa o coeficiente de x1 (valor = 2);

B4 representa o valor da variável x1 (os $ significam que a linha e a coluna
são fixas);

C9 representa o coeficiente x 2 (valor = 5);

C4 representa p valor da variável x 2 ;

E9 representa o valor RHS (constante = 7).
O próximo passo é clicar no botão OK caso não haja nenhuma restrição,
ou Adicionar para confirmar a restrição e abrir espaço para uma nova entrada.
No caso do exemplo é melhor clicar em Adicionar e inserir as outras restrições.
39
Ao final da entrada de todas as restrições, a janela do Solver terá a forma
representada pela Figura 15.
Figura 15 - Janela de entrada de parâmetros Solver.
Contudo, existe outra maneira mais simples de inserir as quatro
restrições. No campo Referência de célula: é representada pela marcação das
células simultâneas presentes na coluna do LHS e para o campo Restrições:
marcam-se as células que estão na coluna do RHS. A entrada da janela de
restrições deveria se representado pela Figura 16 e a janela do Solver pela
Figura 17.
Figura 16 - Entrada de restrições na forma alternativa.
40
Figura 17 - Janela do Solver na forma alternativa.
Faltam ainda as restrições de não-negatividade, isto é, que as variáveis
de decisão não são negativas. Para introduzi-lo, deve primeiramente clicar no
botão Opções na janela de parâmetros do Solver, e a seguir observe a Figura
18, onde as opções Presumir modelo linear (que caracteriza a implantação do
modelo de Programação Linear) e Presumir não negatividade devem estar
assinaladas. Para sair da janela basta clicar em OK e isto o levará de volta para
a janela de parâmetros.
41
Figura 18 - Opção de não-negatividade.
Por fim para resolver o problema, uma vez inserido o modelo e suas
características, basta clicar no botão Resolver (Figura 17).
Se o modelo foi corretamente inserido, será processado e o resultado
será automaticamente exibido na planilha e a seguinte planilha aparecerá na tela
(Figura 19).
Figura 19 - Opções de resultado da ferramenta Solver.
Levando em conta a mensagem que o Excel está fornecendo, neste caso,
“O Solver encontrou uma solução. Todas as restrições e condições otimizadas
foram atendidas.”, informando que uma solução ótima foi encontrada para o
42
modelo, outras mensagens podem aparecer, indicando que soluções não foram
encontradas por serem inviáveis ou ilimitadas. Caso ocorrer de valores
incoerentes ou inesperados forem observados, deve-se clicar na opção
Restaurar valores originais para restaurar os valores iniciais do modelo. Clique
na opção OK e a função do Solver será concluída obtendo os seguintes
resultados na planilha (Figura 20).
Figura 20 - Resultados inseridos na planilha.
Os resultados que poderão ser lidos na planilha são os valores das
variáveis de decisão na solução ótima e o valor da função-objetivo. Esses
valores são representados na Figura 20 pelas células B4, C4 e B5. Para
visualizar todos os resultados, deve se retornar ao Solver clicar resolver para
voltar à janela de Resultados do Solver onde a opção Resposta deve ser
selecionada, igual à Figura 21 a seguir. O resultado é apresentado em outra
janela do Excel, representado pela Figura 22.
43
Figura 21 - Opção do relatório de respostas.
Figura 22 - Relatório de resultados do Solver.
Analisando o relatório obtido notamos que este é dividido em três partes.
A primeira é a função-objetivo, a segunda tem relação com as variáveis de
decisão e a terceira com as restrições.
A primeira parte mostra no lado esquerdo a célula que foi escolhida para
representar a função-objetivo, depois o valor inicial da função-objetivo (zero no
caso) e, finalmente no extremo direito, o valor da função-objetivo na solução
ótima.
44
A segunda parte mostra no lado esquerdo as células que representam
cada uma das variáveis de decisão, depois do valor inicial das mesmas (zero no
caso) e, finalmente no extremo direito, o valor de cada variável na solução ótima.
A terceira parte mostra às restrições do modelo. Cada linha está
relacionada com uma das restrições. No lado esquerdo, na coluna Valor da
célula aparece cada célula que representa o LHS de cada restrição, nessa
coluna Valor da célula são apresentados os valores das respectivas células na
solução ótima. Sob a coluna Fórmula aparece a fórmula da restrição. Sob a
coluna Status podem aparecer duas opções Agrupar e Sem Agrupar. A opção
Agrupar aparece quando o LHS é igual ao RHS na solução ótima, significa que a
restrição participa da definição da solução ótima, ou seja, limita de alguma
maneira a melhora do valor da função-objetivo. A última coluna representa as
variáveis de folga/excesso (Transigência). Para cada restrição de desigualdade
deve introduzir uma variável de folga ou de excesso de maneira a tornar a
desigualdade em igualdade. Estas variáveis medem a diferença entre o LHS e o
RHS da restrição. Se a diferença entre RHS-LHS for positiva, no caso de
restrições do tipo menos ou igual deve introduzir variáveis de folga. Se RHSLHS for negativa, no caso de restrições do tipo maior ou igual introduz variáveis
de excesso.
6. Utilizando o Lindo (Hillier e Lieberman, 2006)
O software Lindo será utilizado em programação linear para a resolução
em especial de pequenos problemas, pois é um software de fácil aprendizado e
manuseio.
A vantagem que o Lindo oferece é que o modelo de maneira algébrica
pode ser introduzido diretamente.
45
Figure 23 - Descrição do modelo no Lindo.
Observando a Figura 23 nota-se que o símbolo ponto de exclamação
indicara
comentários
esclarecedores.
A
decisão
de
utilizar
maiúsculos ou minúsculos não afetará as variáveis de decisão.
caracteres
Pode-se
também adicionar nomes do produto que esta sendo fabricado ou nomes
sugestivos, desde que não exceda 8 dígitos, e seguindo de ).
A terceira linha da formulação do Lindo mostra que o objetivo do modelo
é o de maximizar a função objetivo 2x1  3 x2 . Nas próximas linhas ocorre a
descrição das restrições. Essas restrições são escritas de maneira usual, exceto
pelos sinais de igualdade. Pelo fato de muitos teclados não incluírem sinais de
 e  ,o Lindo interpreta < ou <= como  e > ou >= como  .
O final das restrições é representado pela palavra END. Não é declarada
nenhuma
restrição
de
não-negatividade,
porque
o
Lindo
assume
automaticamente que todas as variáveis possuem esse tipo de restrição. Se,
digamos, x1 não tivesse uma restrição de não-negatividade, isso teria de ser
indicado digitando-se FREE X1 na linha seguinte abaixo do END.
Para solucionar esse método versão Windows do Lindo, selecione o
comando Solve no menu Solve ou então pressione o botão Solve na barra de
ferramentas. Numa plataforma diferente do Windows, simplesmente digite GO
seguido de um return no prompt de dois-pontos. A Figura 24 mostra o relatório
de solução resultante gerado pelo Lindo.
46
Figure 24 - Relatório de solução gerado pelo Lindo
A coluna à direita desses valores fornece os custos reduzidos. Quando
a variável é uma variável básica na solução ótima, seu custo reduzido é
automaticamente 0. Quando a variável é uma variável não-básica, seu custo
reduzido fornece alguma informação interessante. Essa variável é zero porque
seu coeficiente na função objetivo é tão pequeno (ao maximizar a função
objetivo) ou tão grande (ao minimizar) para justificar empreender a atividade
representada pela variável. O custo reduzido indica quanto esse coeficiente
pode ser aumentado (ao maximizar) ou diminuído (ao minimizar) antes que a
solução ótima mudasse e essa variável se tornasse uma variável básica.
Lembrando que essa mesma informação se encontra disponível no intervalo
possível para permanecer ótima ao coeficiente dessa variável na função
47
objetivo. O custo reduzido (para uma variável não-básica) é apenas o acréscimo
possível (ao maximizar) do valor atual desse coeficiente para permanecer dentro
de seu intervalo possível para permanecer ótima ou o decréscimo possível (ao
minimizar).
Na Figura 24 temos informações sobre três restrições funcionais. A
coluna capacidade ociosa ou Excedente dá a diferença entre os dois lados de
cada restrição.
Quando o Lindo fornece esse tipo de relatório de solução, o Lindo
também pergunta se você deseja realizar a analise de sensibilidade do intervalo.
Ao responder sim gera o relatório de intervalos adicional mostrado na parte
inferior da Figura 24. Exceto pelo fato de usar unidades de milhares de dólares
em vez de dólares para os coeficientes na função objetivo.
7. Descrição e formulação dos estudos de caso
Para a realização dos estudos de casos a seguir foram contactados cinco
empresas prestadoras de serviços, dentre elas se econtram uma loja de
esportes, uma cantina de colégio, uma academia de ginástica, uma doceria e
uma que empresa do setor têxtil, mas somente as duas últimas empresas foram
utilizadas para a realização do estudo. Das empresas que não foram
selecionadas, os dados fornecidos pelas mesmas não eram suficientes para
alimentar um modelo matemático que determine a maximização do lucro
considerando restrições.
Os dados coletados deveriam ser o preço, e o custo de cada produto
(para calcular a margem de contribuição que será utilizado no estudo), a
capacidade de alocação e as restrições dos produtos. As empresas não
selecionadas nos forneceram tais dados, contudo não haviam restrições
suficientes ou trabalhavam com um preço unificado sendo que para a realização
do estudo de maximização do lucro utiliza-se mais de uma variável.
7.1. Estudo de caso I
48
Uma doceria localizada na grande São Paulo fundada em 2009, participou
do estudo a fim de alocar melhor seus recursos para maximização do lucro. A
proprietária decidiu abrir a loja após adquirir experiência trabalhando durante
cinco anos em uma cantina de colégio. Almejando expandir o negócio a
proprietária mudou o local da cantina para uma rua movimenta no centro da
cidade de Suzano.
A doceria funciona todos os dias da semana e de acordo com a
proprietária seus produtos são sempre fresquinhos, por isso a reposição é
sempre constante. Nos meses que decorrem o final do ano a procura por seus
produtos aumenta. Estudamos qual dos produtos eram mais procurados e suas
respectivas quantidades para suprir a demanda, assim podíamos calcular a
receita máxima durante a semana
Para o estudo de caso a ser analisado foram realizados cerca de 9 visitas,
sendo que a primeira foi para a explicação do projeto. A princípio a proprietária
demonstrou interesse, mas ficou preocupada com o custo de seus produtos,
pois fazia tempo que não os calculava. No decorrer das visitas a proprietária
mostrou-se insegura com a relação de produtos que apresentavam restrições
que poderiam alimentar o modelo, por fim ela escolheu os produtos que mais
vendia.
A proprietária forneceu para a realização do estudo de caso o valor real
de venda dos produtos, e seus respectivos valores de custo (uma média), onde
desses dois valores será utilizado à margem de contribuição ou lucro (valor do
produto menos o custo dos produtos) e sua capacidade de produção. Observase a quantidade produzida e o lucro esperado para cada um dos produtos. A
restrição para o problema se encontra no espaço ocupado pelos produtos na
vitrine.
Tabela 3 – Quantidade e margem de contribuição
Produtos
Cupcake
Bolo
Croassait Enrolado Esfirra Tortinha
Quantidade
44
10
56
56
56
100
Lucro (R$)
2,70
14,00
1,50
1,00
1,00
2,00
49
7.1.1 Formulação do problema I
O problema que a doceria enfrenta é atribuído a quantidade de doces e
salgados que ela deve oferecer a fim de haver a maximização do lucro.
As variáveis de decisão x1, x 2 , x3 , x 4 , x5 , x 6 representam cada produto
escolhido pela loja visando a formulação do problema. Ou seja:
x1  Quantidade máxima de cupcakes produzidos na semana.
x 2  Quantidade máxima de bolos produzidos na semana.
x 3  Quantidade máxima de croassaits produzidos na semana.
x 4  Quantidade máxima de enrolados produzidos na semana.
x 5  Quantidade máxima de esfirras produzidos na semana.
x 6  Quantidade máxima de tortinhas produzidos na semana.
Realizada a análise das variáveis de decisão determinamos a função
objetivo para a maximização da receita, ou seja, desejamos descobrir a
quantidade de produtos necessários para que o valor obtido da receita seja o
maior possível.
Utilizando os dados de lucro da Tabela 3 obtemos somatório da
multiplicação da margem de contribuição pelas variáveis de decisão resulta a
função objetivo, que determinará a receita máxima da doceria. Para visualizar
melhor a função objetivo temos:
Max Z = 2,70x1+14,00x 2 +1,50x3 1,00x 4 +1,00x5 +2,00x 6
Determinando as restrições para a função, temos:

A primeira restrição é relacionada capacidade de produtos que a loja
disponibiliza na vitrine durante a semana. Sabendo que o bolo possui um
tamanho 4 vezes maior que os demais. Logo temos a seguinte restrição:
x1  4x 2  x 3  x 4  x 5  300

A segunda restrição é relacionada com a capacidade máxima de produção
dos cupcakes.
50
x1  44

A terceira restrição é relacionada com a capacidade máxima de produção
dos bolos.
x 2  10

A quarta restrição é relacionada com a capacidade máxima de produção dos
croassaits.
x 3  56

A quinta restrição é relacionada com a capacidade máxima de produção dos
enrolados.
x 4  56

A sexta restrição é relacionada com a capacidade máxima de produção das
esfirras.
x 5  56

A sétima restrição é relacionada com a capacidade máxima de produção das
tortinhas.
x 6  100

A oitava restrição diz respeito a quantidade máxima de esfirras e enrolados
que ocupam o lugar na mesma prateleira durante a semana.
x 4  x 5  70

A nona restrição diz respeito a quantidade máxima de croassaits e tortinhas
que ocupam o lugar na mesma prateleira durante a semana.
x3  x 6  84

A décima restrição é relacionada a máxima quantidade de bolos e cupcakes
que ocupam o lugar na prateleira durante a semana.
x1  x 2  38
Dessa forma a representação matemática do problema é dada por:
51
Max Z = 2,70x1+14,00x 2 +1,50x 3 1,00x 4 +1,00x 5 +2,00x 6
Sujeito a:
x1  4x 2  x 3  x 4  x 5  300
x1  44
x 2  10
x 3  56
x 4  56
x 5  56
x 6  100
x 4  x 5  70
x 3  x 6  84
x1  x 2  38
x1, x 2 , x 3 , x 4 , x 5 , x 6  0
7.1.2 Resolução do problema I utilizando o Lindo
Pelos conhecimentos adquiridos com o projeto, o software selecionado
para a resolução do problema foi o Lindo. O software Lindo oferece a vantagem
de inserir o modelo diretamente na maneira algébrica. Sendo assim, pode
determinar o número ótimo de cada produto para que a receita máxima fosse
encontrada.
Inserindo as informações do problema como na Figura 25, temos:
52
Figura 25-Descrição do modelo da dolceria
Primeiramente foi inserido o ponto de exclamação para indicar alguns
comentários esclarecedores como a definição das variáveis de decisão. Feito
isso, a função objetivo Max Z = 2,70x1+14,00x 2 +1,50x3 1,00x 4 +1,00x5 +2,00x 6 é
adicionada. Próximo passo foi inserir “Subject to” e as restrições destacadas
para a resolução do problema. Pode-se inserir os nomes dos produtos seguido
de ) como o “Bolo)” indicado na Figura 25, lembrando que o programa não
admite mais de 8 caracteres. Ao final das restrições observa-se a palavra “end”.
O software Lindo assume automaticamente que o problema apresenta
uma característica linear e que as variáveis são maiores ou iguais a zero, não
havendo necessidade de declarar nenhuma restrição de não-negatividade
( x1, x 2 , x 3 , x 4 , x 5 , x 6  0 ). O relatório de decisão aparece após a escolha da
opção Solve no menu (Figura 26).
53
Figura 26-Relatório de soluções geradas para a dolceria
Analisando o relatório de soluções gerado (observado na Figura 26) para
o problema o resultado obtido para a função objetivo foi um lucro máximo de
R$453,60. Para obter esse lucro máximo a loja deve vender 28 cupcakes, os 10
bolos, 56 enrolados, 14 esfirras, 84 tortinhas e nenhum croassait.
7.1.3 Conclusão da análise dos resultados I
A proprietária identificou uma necessidade de otimizar a receita através
de seus produtos.
Houve uma dificuldade para o fornecimento dos dados pela proprietária,
que hesitou com a relação de produtos a disponibilizar para o estudo, mas por
54
fim houve um consentimento de que era melhor fornecer os dados produtos de
maior fluxo.
Logo, conclui-se que para a função objetivo atinja o valor máximo a
proprietária deve vender 28 cupcakes, 10 bolos, 56 enrolados, 14 esfirras, 84
tortinhas e nenhum croassait.
Somando o valor dessas quantidades obteve uma receita semanal de
quatrocentos e cinqüenta e três reais e sessenta centavos (R$453,60).
Levando em consideração os resultados, a proprietária reduziu a
produção de cupcakes para 30 e de tortinhas para 90 por semana, contudo a
variedade dos salgados continuou a mesma, adotando uma produção reduzida
e/ou uma reposição dos salgados após o seu término.
7.2. Estudo de caso II
Para a realização deste estudo de caso foi contactada uma pequena loja
do setor têxtil que revende diferentes tipos de tecidos (estampado, xadres, seda,
forros, malhas, sarjas, etc.) normalmente para pequenas confecções. A princípio
foram realizadas poucas visitas, já que o proprietário dispunha dos dados e
decidimos logo quais seriam os produtos e quantidade que possibilitaria a
melhor decisão de compra.
Decidimos que seria melhor selecionar os tecidos mais procurados, como
o forro de alpaseda (100% acetato), o cetim (100% poliéster) e o forro de cetim
para festa sem elastano (100% poliéster), utilizados geralmente em roupas.
Tendo como objetivo a obtenção do maior lucro, gostaríamos de
determinar qual a quantidade certa de tecidos a ser comprada. Contudo de
acordo com o proprietário são comprados cerca de 125 m de alpaseda, 90 m de
cetim e 120 m de cetim para festa mensalmente. Contudo muitas vezes o
espaço reservado (300 m) para os tecidos não era suficiente, e a quantidade ia
diretamente para uma confecção no fundo da loja.
7.2.1 Formulação do problema II
55
Observando a Tabela 5 visualiza-se melhor o lucro obtido por peça, a
quantidade comprada e uma demanda prevista para o mês.
Tabela 4- Dados dos tecidos
Produto
Lucro/m (R$) Quantidade Max (m) Demanda prevista(m)
Alpaseda
10,05
125
100
Cetim
13,15
90
90
Cetim festa
22,15
120
90
A loja de tecidos deseja saber qual a quantidade certa de tecidos precisa
comprar para obterem o maior lucro. Para isso as variáveis de decisão
x1, x 2 , x 3 representaram os tecidos da loja.
x1  metragem máxima do forro de alpaseda.
x 2  metragem máxima do forro de cetim.
x 3  metragem máxima do forro de cetim de festa.
Realizada a análise das variáveis de decisão determinamos a função
objetivo para a maximização da receita, ou seja, descobrir a metragem do forro
necessário para que o valor obtido da receita seja a maior possível.
O somatório da multiplicação da margem de contribuição pelas variáveis
de decisão resulta a função objetivo, que determinará a receita máxima da loja
de tecidos. Para visualizar melhor a função objetivo temos:
Max Z = 10,05x1+13,15x 2 +22,15x 3
Determinando as restrições para a função, temos:

A primeira restrição é relacionada capacidade que a loja disponibilizou para
a venda do tecido e a sua capacidade de compra.
125x1 90x2  120x3  300

A segunda restrição é relacionada com a metragem máxima do forro de
alpaseda.
x1  100

A terceira restrição é relacionada com metragem máxima do forro de cetim.
x 2  90
56

A quarta restrição é relacionada com metragem máxima do forro de cetim de
festa.
x 3  90
A representação matemática do problema é dado por:
Max Z = 10,05x1+13,15x 2 +22,15x 3
Sujeito a :
125x1  90x2  120x3  300
x1  100
x 2  90
x 3  90
x1, x 2 , x 3  0
7.2.2 Resolução do problema II utilizando o Lindo
Utilizando o Lindo para determinar o número ótimo de cada produto para
que a receita máxima seja encontrada, temos a Figura 27.
Figure 27-Descrição do modelo da loja de tecidos
Inserido o ponto de exclamação para indicar alguns comentários como a
definição
das
variáveis
de
decisão.
Feito
isso,
a
função
objetivo
Max Z = 10,05x1+13,15x 2 +22,15x 3 é adicionada. Próximo passo foi inserir
“Subject to” e as restrições destacadas para a resolução do problema. Pode-se
57
inserir os nomes dos produtos seguido de ) como o “cetim)” indicado na Figura
27, lembrando que o programa não admite mais de 8 caracteres. Ao final das
restrições observa-se a palavra “end”.
Não há necessidade de declarar nenhuma restrição de não-negatividade
( x1, x 2 , x 3 , x 4 , x 5 , x 6  0 ), o Lindo assumira automaticamente todas as variáveis
que possuem esse tipo de restrição. O relatório de decisão aparece após a
escolha da opção Solve no menu.
Com base no relatório, na Figura 28 temos:
Figure 28-Relatório de soluções geradas para a loja de tecidos
O lucro Máximo obtido de acordo com o relatório foi de R$2017,62, sendo
que a quantidade máxima em metros do tecido de forro de cetim de festa foi de
90m e que o tecido de alpaseda foi de 2,40m, não houve necessidade da
compra do tecido de forro de cetim.
7.2.3 Conclusão da análise dos resultados II
Ao decidir quais produtos eram os mais procurados da loja de tecidos
identificou-se a necessidade de otimizar a receita. Sendo que o fornecimento
das informações foi facilitado pelo proprietário.
58
De acordo com o estudo para que a maior receita seja atingida o
proprietário deve comprar e revender 90 m de forro de cetim para festa, mais
2,40m de forro de alpaseda e nenhum forro de cetim. Logo a receita é
representada pela quantia de dois mil e dezessete reais e sessenta e dois
centavos (R$2017,62) para o período mensal.
8. Conclusão
A Pesquisa Operacional foi desenvolvida utilizando as ferramentas da
programação linear para solucionar seus problemas, podendo estes ser de
distribuição de recursos escassos, determinação de objetivos de maximização
de lucros e minimização de custos, logo, os problemas de programação
matemática em que funções objetivo de restrição são lineares.
Logo para a realização deste projeto de Iniciação Científica foi utilizado o
conhecimento adquirido do estudo realizado de Pesquisa Operacional e do
software Lindo.
Tendo como objetivo demonstrar a maximização do lucro
considerando suas restrições. Salve duas empresas, uma de serviços e a outra
do setor têxtil, dentre cinco empresas selecionadas. Das empresas visitadas 3
delas não apresentavam restrições ou variáveis necessárias ou suficientes para
a formulação do modelo matemático.
Para o primeiro caso estudado foram feitas várias visitas a loja até que a
proprietária escolhesse os produtos e avaliasse os custos médios de cada um,
fornecido o preço e o custo de cada produto pode-se determinar o lucro que é
utilizado para a formulação da função objetivo (maximizar o lucro), adicionando
as restrições de produção e alocação dos produtos, conclui-se que para a
proprietária garantir sua receita máxima ela deve vender 28 cupcakes, 10 bolos,
56 enrolados, 14 esfirras, 84 tortinhas e nenhum croassait obtendo uma receita
semanal de quatrocentos e cinqüenta e três reais e sessenta centavos
(R$453,60).
Sendo que por fim, a proprietária preferiu manter a variedade de salgados
reduzindo sua produção, ou produzindo-os conforme sua demanda reduziu
também o número de cupcakes e de tortinhas.
59
Já para o segundo caso estudado foram realizadas poucas visitas, pois o
proprietário do setor têxtil forneceu os dados de preço, custo, quantidade, a
disponibilidade do espaço e uma previsão de venda para 3 tecidos, o lucro
Máximo encontrado para o estudo foi de R$2017,62, sendo que a quantidade
máxima em metros do tecido de forro de cetim de festa foi de 90m e o tecido de
alpaseda foi de 2,40m, não houve necessidade da compra do tecido de forro de
cetim.
Referências bibliográficas
HILLIER, F. S., LIEBERMAN, G. J. Introdução à Pesquisa Operacional. 8ª Ed.
São Paulo: McGraw-Hill, 2006.
LACHTERMACHER, G. Pesquisa operacional na tomada de decisões:
modelagem em Excel. 2ª Ed. Rio de Janeiro: Campus, 2004.
PUCCINI, A. L. Introdução à Programação Linear. Rio de Janeiro: LTC, 1980.
ARENALES, M., ARMENTANO, V., MORABITO, R., YANASSE, H. Pesquisa
operacional. Rio de Janeiro: Campus, 2007.
Download

relatório de atividades um