Prévia do material em texto
2009
Pesquisa OPeraciOnal
Prof. Paulo Afonso Lunardelli
Prof. Roy Wilhelm Probst
Copyright © UNIASSELVI 2009
Elaboração:
Prof. Paulo Afonso Lunardelli
Prof. Roy Wilhelm Probst
Revisão, Diagramação e Produção:
Centro Universitário Leonardo da Vinci – UNIASSELVI
Ficha catalográfica elaborada na fonte pela Biblioteca Dante Alighieri
UNIASSELVI – Indaial.
003
L961p Lunardelli, Paulo Afonso.
Caderno de Estudos: Pesquisa Operacional/ Paulo Afonso
Lunardelli [e] Roy Wilhelm Probst. Centro Universitário
Leonardo da Vinci – Indaial: Grupo UNIASSELVI, 2009. x ;
138 p. : il.
Inclui bibliografia.
ISBN 978-85-7830-212-2
1. Pesquisa Operacional
2. Teoria de Sistema
I.Centro Universitário Leonardo da Vinci
II. Probst, Roy Wilhelm
III. Núcleo de Ensino a Distância
III
aPresentaçãO
Caro(a) acadêmico(a)!
A Segunda Guerra Mundial foi o marco inicial para os estudos da
Pesquisa Operacional. A convocação de um grupo de cientistas ingleses para
estudar problemas de estratégia para a defesa do país levou-os a pesquisar as
operações e recursos militares mais eficazes no campo de batalha.
Logo os Estados Unidos perceberam o grande avanço desencadeado
pelos cientistas da Inglaterra e começaram a estudar atividades semelhantes.
Os métodos mais conhecidos hoje na área de Pesquisa Operacional têm
fontes reconhecidas nos trabalhos de equipes como a liderada por George B.
Dantzig, dos Estados Unidos, convocada durante a Segunda Guerra Mundial,
em 1947, com seu Método Simplex.
Ao término da guerra, ficou o aprendizado e as técnicas de Pesquisa
Operacional logo caíram no agrado de outras áreas, especialmente a
administração e a economia. As indústrias perceberam a grande ideia do
planejamento e as técnicas desenvolvidas para a tomada de decisões fizeram-
nas observar os processos industriais com outros aspectos e melhoras
significativas foram sendo elaboradas com o passar dos anos.
O avanço da informática trouxe mais facilidade na elaboração de
projetos cada vez mais arrojados, e o uso de computadores mais rápidos e
sofisticados trouxe modernidade aos métodos que já faziam grande diferença
na competitividade do mercado.
A Pesquisa Operacional firmou-se como ferramenta imprescindível
nas diversas áreas do conhecimento, fazendo com que sua aplicação, em
conjunto com a intuição e o know-how de grandes setores do mercado, seja de
fundamental importância na busca de avanços no planejamento de processos.
“A modelagem matemática, atualmente usada, tem contribuído
sobremaneira para a evolução do conhecimento humano, seja nos fenômenos
microscópicos, em tecnobiologia, seja nos macroscópicos, com a pretensão
de conquistar o universo. Mas não é um processo próprio dos cientistas”.
(BIEMBENGUT, 2002, p. 17).
Assim, nossos estudos voltam-se para a pesquisa operacional,
buscando novos conhecimentos que melhorem não apenas nossa qualidade
de vida como indivíduo, mas também a de todos em nossa volta.
E a você, caro(a) acadêmico(a), bons estudos e que este caderno seja
uma referência nos trabalhos de sucesso que lhe aguardam em breve.
Professor Paulo Afonso Lunardelli
Professor Roy Wilhelm Probst
IV
Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para
você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há
novidades em nosso material.
Na Educação a Distância, o livro impresso, entregue a todos os acadêmicos desde 2005, é
o material base da disciplina. A partir de 2017, nossos livros estão de visual novo, com um
formato mais prático, que cabe na bolsa e facilita a leitura.
O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova
diagramação no texto, aproveitando ao máximo o espaço da página, o que também
contribui para diminuir a extração de árvores para produção de folhas de papel, por exemplo.
Assim, a UNIASSELVI, preocupando-se com o impacto de nossas ações sobre o ambiente,
apresenta também este livro no formato digital. Assim, você, acadêmico, tem a possibilidade
de estudá-lo com versatilidade nas telas do celular, tablet ou computador.
Eu mesmo, UNI, ganhei um novo layout, você me verá frequentemente e surgirei para
apresentar dicas de vídeos e outras fontes de conhecimento que complementam o assunto
em questão.
Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas
institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa
continuar seus estudos com um material de qualidade.
Aproveito o momento para convidá-lo para um bate-papo sobre o Exame Nacional de
Desempenho de Estudantes – ENADE.
Bons estudos!
NOTA
V
VI
VII
UNIDADE 1 – PROGRAMAÇÃO LINEAR .....................................................................................1
TÓPICO 1 - PROBLEMAS DE PROGRAMAÇÃO LINEAR ........................................................3
1 INTRODUÇÃO ...................................................................................................................................3
2 FORMULAÇÃO DE MODELOS DE PPL ......................................................................................3
3 MODELAGEM MATEMÁTICA ......................................................................................................5
3.1 INDÚSTRIA MOVELEIRA ...........................................................................................................6
3.2 PLANEJAMENTO DE PRODUÇÃO AGRÍCOLA ...................................................................8
3.3 DIETA ALIMENTAR .....................................................................................................................9
3.4 PROBLEMAS DE TRANSPORTE ................................................................................................11
RESUMO DO TÓPICO 1......................................................................................................................14
AUTOATIVIDADE ...............................................................................................................................15
TÓPICO 2 - SOLUÇÃO GRÁFICA DE PROBLEMAS DE PROGRAMAÇÃO LINEAR ........17
1 INTRODUÇÃO ...................................................................................................................................17
2 REPRESENTAÇÃO GRÁFICA ........................................................................................................17
3 VETOR GRADIENTE - ▼ Z .............................................................................................................20
4 CONSIDERAÇÕES SOBRE O MÉTODO GRÁFICO .................................................................22
RESUMO DO TÓPICO 2......................................................................................................................24
AUTOATIVIDADE ...............................................................................................................................25
TÓPICO 3 - PROGRAMAÇÃO LINEAR INTEIRA .......................................................................27
1 INTRODUÇÃO ...................................................................................................................................27
2 UM MODELO DE PL INTEIRA ......................................................................................................27
3 O MÉTODO DE BRANCH AND BOUND ......................................................................................29
3.1 CONSIDERAÇÕES SOBRE O MÉTODO DE BRANCH AND BOUND.................................33
4 APLICAÇÃO DE PLI ..........................................................................................................................34
4.1 CONSIDERAÇÕES FINAIS SOBRE A PLI ................................................................................39
LEITURA COMPLEMENTAR .............................................................................................................40
RESUMO DO TÓPICO 3......................................................................................................................44AUTOATIVIDADE ...............................................................................................................................45
UNIDADE 2 - SOLUÇÃO ÓTIMA .....................................................................................................47
TÓPICO 1 - MÉTODO SIMPLEX .......................................................................................................49
1 INTRODUÇÃO ...................................................................................................................................49
2 FORMA PADRÃO DO PPL ..............................................................................................................49
2.1 NÃO NEGATIVIDADE DA MÃO DIREITA .............................................................................50
2.2 VARIÁVEIS NÃO RESTRITAS ....................................................................................................50
2.3 VARIÁVEIS DE FOLGA ...............................................................................................................51
2.4 VARIÁVEIS DE EXCESSO ............................................................................................................52
2.5 ALTERAÇÕES NA FUNÇÃO OBJETIVO ..................................................................................53
3 O ALGORÍTMO SIMPLEX ...............................................................................................................53
4 TABLEAU SIMPLEX ...........................................................................................................................60
sumáriO
VIII
4.1 DEGENERESCÊNCIA...................................................................................................................67
4.2 MÉTODO DAS DUAS FASES ......................................................................................................68
5 DUALIDADE .......................................................................................................................................73
5.1 ALGORITMO PRIMAL-DUAL ....................................................................................................73
RESUMO DO TÓPICO 1......................................................................................................................78
AUTOATIVIDADE ...............................................................................................................................80
TÓPICO 2 - UTILIZAÇÃO DO COMPUTADOR ...........................................................................81
1 INTRODUÇÃO ...................................................................................................................................81
2 RESOLVENDO MODELOS NO EXCEL ........................................................................................82
3 ANÁLISE DE PÓS-OTIMALIDADE ..............................................................................................87
3.1 ANALISANDO A FUNÇÃO OBJETIVO ....................................................................................87
3.2 ANALISANDO OS COEFICIENTES DA MÃO DIREITA DAS RESTRIÇÕES ....................89
RESUMO DO TÓPICO 2......................................................................................................................91
AUTOATIVIDADE ...............................................................................................................................92
UNIDADE 3 - PROGRAMAÇÃO DE PROJETOS ..........................................................................93
TÓPICO 1 - ANÁLISE DE REDES......................................................................................................95
1 INTRODUÇÃO ...................................................................................................................................95
2 TEORIA DOS GRAFOS ....................................................................................................................95
2.1 O PROBLEMA DO CAIXEIRO VIAJANTE ...............................................................................97
2.2 PROBLEMAS DE FLUXO MÁXIMO ..........................................................................................100
2.3 PROBLEMAS DE CAMINHO MAIS CURTO ...........................................................................102
RESUMO DO TÓPICO 1......................................................................................................................108
AUTOATIVIDADE ...............................................................................................................................109
TÓPICO 2 - TÉCNICAS PERT/CPM ..................................................................................................111
1 INTRODUÇÃO ...................................................................................................................................111
2 APLICAÇÃO DE PERT/CPM ...........................................................................................................111
2.1 REDE DE ATIVIDADES ................................................................................................................112
2.2 CAMINHO CRÍTICO ....................................................................................................................113
2.3 PROGRAMAÇÃO DAS ATIVIDADES - PERT .........................................................................114
2.4 PROGRAMAÇÃO DAS ATIVIDADES – CPM .........................................................................118
RESUMO DO TÓPICO 2......................................................................................................................121
AUTOATIVIDADE ...............................................................................................................................122
TÓPICO 3 - SIMULAÇÃO ...................................................................................................................125
1 INTRODUÇÃO ...................................................................................................................................125
2 SIMULAÇÃO DE MONTE CARLO ...............................................................................................125
2.1 GERANDO NÚMEROS ALEATÓRIOS NO COMPUTADOR................................................126
3 PLANEJAMENTO DE SIMULAÇÕES ...........................................................................................128
3.1 EXEMPLO DE SIMULAÇÃO .......................................................................................................129
LEITURA COMPLEMENTAR .............................................................................................................132
RESUMO DO TÓPICO 3......................................................................................................................135
AUTOATIVIDADE ...............................................................................................................................136
REFERÊNCIAS .......................................................................................................................................137
1
UNIDADE 1
PROGRAMAÇÃO LINEAR
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir do estudo desta unidade, você será capaz de:
• reconhecer um Problema de Programação Linear (PPL);
• identificar as variáveis de decisão de um PPL;
• escrever a Função Objetivo de um modelo de PPL;
• escrever o conjunto de restrições de um modelo de PPL;
• reconhecer um modelo de Problema de Transporte;
• representar graficamente o conjunto de restrições de um PPL;
• representar o Vetor Gradiente da Função Objetivo;
• determinar a solução do PPL por via gráfica;
• construir um modelo de Programação Linear Inteira;
• resolver um modelo de PLI através do Método de Branch and Bound;
• representar a resolução de um PLI por diagramas.
Esta primeira unidade será dividida em três tópicos. No final de cada tópico,
você encontrará atividades que contribuirãopara sua reflexão e análise dos
estudos já realizados.
TÓPICO 1 – PROBLEMAS DE PROGRAMAÇÃO LINEAR
TÓPICO 2 – SOLUÇÃO GRÁFICA DE PROBLEMAS DE PROGRAMAÇÃO
LINEAR
TÓPICO 3 – PROGRAMAÇÃO LINEAR INTEIRA
2
3
TÓPICO 1
UNIDADE 1
PROBLEMAS DE
PROGRAMAÇÃO LINEAR
1 INTRODUÇÃO
Os Problemas de Programação Linear (PPL) são, em sua maioria,
problemas de otimização que visam maximizar ou minimizar uma função linear
de várias variáveis. Essa função é chamada de Função Objetivo (FO) e está sujeita
a respeitar certo número de relações lineares de igualdade ou desigualdade,
chamadas de restrições do problema.
Nesta unidade, estudaremos como é feita a formulação dos problemas de
programação linear através da modelagem matemática, e como se dá a busca pela
solução ótima de um PPL de duas variáveis através do método gráfico.
2 FORMULAÇÃO DE MODELOS DE PPL
Segundo Wagner (1985, p. 6), a construção de modelos é a essência da
abordagem de pesquisa operacional. Normalmente, a formulação de um problema
de PPL envolve três etapas:
1. A definição do objetivo básico do problema, ou seja, se queremos otimizar
por meio de maximização (por exemplo, de lucros, ou de um processo que envolva
tempo, ou desempenho, etc.) ou minimização (de custos, perdas, tempo etc.).
2. A escolha das variáveis de decisão envolvidas (como exemplo, podemos
citar a colheita de algum tipo de alimento, cuja área destinada ao plantio de diversas
espécies de alimentos é uma variável a ser decidida) para a formulação da Função
Objetivo.
3. Escrever o sistema de restrições do PPL em relação às variáveis de decisão
do problema (no caso da colheita, podem-se levar em conta as condições ambientais,
a demanda pelos alimentos, a disponibilidade de mão de obra para plantio, a
capacidade de estocagem etc.).
Deve-se tomar o cuidado para que todas as relações do PPL sejam, realmente,
lineares.
UNIDADE 1 | PROGRAMAÇÃO LINEAR
4
Os problemas de PL ficam são definidos da seguinte maneira:
(max ou min)Z = c1x1 + c2x2 + ... + cnxn É a função objetivo
Neste modelo, interpretamos:
• x1, x2,...,xn como o conjunto de variáveis de decisão (estruturais) do problema
• c1, c2,...,cn são os coeficientes da função objetivo do problema de PL
• aij e bi são os coeficientes das restrições.
Loesch e Hein (1999, p. 20) chamam os coeficientes bi de coeficientes da
mão direita. Utilizaremos essa nomenclatura para referenciá-los posteriormente. E
ainda, para o Método Simplex de resolução de PPL, esses coeficientes deverão ser
necessariamente não-negativos.
A última restrição é chamada restrição de não negatividade das variáveis
de decisão. Normalmente, essa restrição é utilizada em problemas de PL cujas
variáveis envolvidas não podem assumir valores negativos, como por exemplo,
tempo, área, quantidade de mão de obra etc., afinal, não faria sentido falar em oito
homens negativos trabalhando, por exemplo. Por outro lado, alguns problemas
podem envolver variáveis que aceitam sinais negativos (como exemplo, podem-
se citar problemas que envolvam saldos bancários ou temperaturas).
Perceba, no modelo, que as restrições podem ter três opções de sinal ≤
(menor que ou igual a), ≥ (maior que ou igual a) e = (igual a). É claro que só
podemos usar um sinal em cada restrição.
A função objetivo traduz o tipo de otimização que se deseja obter
(maximização ou minimização, optando por uma das duas).
Todos os coeficientes, tanto da Função Objetivo, quanto das restrições são
determinados na modelagem do problema. Já os valores das variáveis dependem
de um algoritmo de resolução para serem calculados. Essas variáveis devem ser
valores reais, mas, eventualmente, podem assumir valores inteiros, dependendo
do tipo de problema que se deseja resolver. Se o problema for definir a quantidade
de operários necessários a otimizar certa produção, não há sentido em declarar
TÓPICO 1 | PROBLEMAS DE PROGRAMAÇÃO LINEAR
5
que a solução ótima é, por exemplo, 1,4 homens. Nesse caso, esse tipo de problema
de PL é chamado de Problema de Programação Linear Inteira e estudaremos
métodos de resoluções específicos para sua resolução, como o Método de Branch
and Bound.
3 MODELAGEM MATEMÁTICA
A modelagem matemática é a mais importante etapa na resolução de
problemas de PL, constitui o começo do trabalho na busca por soluções. Após
a modelagem, podem ser usados vários métodos, inclusive computacionais,
para a resolução, mas é na modelagem que a experiência e o conhecimento do
pesquisador atuam com maior ênfase.
Para modelar um problema deve-se saber selecionar o que é mais
importante para a resolução e, consequente, solução. Um trabalho em equipe,
com profissionais de áreas diversas, que possam ajudar a esclarecer as variáveis
do problema, é muito bem vindo. Geralmente, a multidisciplinaridade contribui,
e muito, para uma melhor formação do modelo, tendendo a uma melhor solução
para o mesmo.
Conforme Loesch e Hein (1999, p. 21):
Um modelo é uma representação da realidade. Através de um modelo
procura-se capturar os aspectos relevantes de algum problema ou
sistema e representar a situação. Os modelos matemáticos constituem
uma abstração da realidade, representada por um conjunto de
equações e relações.
Alguns aspectos devem ser considerados na formulação de um modelo
de PPL:
• se existir a possibilidade, pode-se separar o problema em um grupo de
problemas menores, resolvendo-os, resolve-se o problema todo;
• as variáveis de decisão devem ser cuidadosamente selecionadas e definidas (se
é real ou inteira, qual sua unidade de medida e se pode ser negativa ou não);
• definir claramente o objetivo, a meta a ser alcançada. Se maximizar ou
minimizar as variáveis, e qual a função objetivo;
• construir a rede de relações entre as variáveis, seus limites ou fatores restritivos.
Determinar o sistema de restrições do problema;
• deve-se verificar a possibilidade de haver aspectos ou situações que sejam
repetitivas, redundantes, ou que não tragam relevância à solução do problema.
Muitas restrições podem fazer o modelo ficar muito grande e talvez sua
resolução seja impraticável. Conferir a necessidade de trabalhar com algumas
dessas restrições, ou não, é uma boa prática.
UNIDADE 1 | PROGRAMAÇÃO LINEAR
6
Podemos dizer que modelar é uma arte e, por isso, a experiência é um
fator importante para que se tenha um bom modelo. A prática, o treinamento, o
estudo de casos, o comprometimento com o problema, as informações extras que
possam ser levantadas sobre ele, tudo isso leva a uma melhor formulação de um
modelo matemático.
Para que você possa ver como tudo isso funciona, selecionamos alguns
exemplos de situações reais (com algumas considerações, é claro) e os modelamos
em termos de problemas de programação linear com sua função objetivo e suas
restrições. Confira:
Problema: Uma grande fábrica de móveis dispõe em estoque de 800m de
tábuas, 600m de pranchas e 500m de painéis de conglomerado. A fábrica oferece
uma linha de móveis composta pelos seguintes produtos: escrivaninha, mesa de
reunião, armário e prateleira. Cada tipo de móvel consome certa quantidade de
matéria prima, conforme a Tabela 1. A escrivaninha é vendida por R$ 100,00, a
mesa por R$ 80,00, o armário por R$ 120,00 e a prateleira por R$ 20,00.
3.1 INDÚSTRIA MOVELEIRA
FONTE: Os autores
Modelagem: Vamos supor que o fabricante deseje obter o maior
lucro possível com a venda de seus produtos, não nos preocupando com as
especificidades do mercado consumidor, digamos que o que se produz se vende.
Assim, nossa função objetivo é definida como uma busca pelo máximo lucro. Este
será calculado através da venda dos produtos por seus respectivos valores, assim,
é natural que tenhamos as seguintes variáveis de decisão:
XE=quantidade de escrivaninhas que a fábrica deve produzir;
XM=quantidade de mesas que a fábrica deve produzir;
XA=quantidade de armários que a fábrica deve produzir;
XP=quantidade de Prateleiras que a fábrica deve produzir.
TABELA 1 - DISTRIBUIÇÃODOS MATERIAIS DOS PRODUTOS
Quantidade de material consumido por produto Disponibilidade
do materialEscrivaninha Mesa Armário Prateleira
Tábua 0 2 2 3 800
Prancha 2 0 1 1 600
Painel 2 1 2 0 500
Valor do
produto 100 80 120 20 -
TÓPICO 1 | PROBLEMAS DE PROGRAMAÇÃO LINEAR
7
Escrevendo a função objetivo em termos de suas variáveis de decisão,
temos;
max L = 100xE + 80xM + 120xA + 20xP , em que max L descreve o lucro
máximo.
Com a função objetivo definida, passamos a formulação do sistema de
restrições do modelo, escrevendo-os em função das variáveis de decisão. Vamos
considerar cada um dos tipos de matéria-prima como uma restrição quanto ao uso
da mesma em cada produto. Assim:
• Restrição quanto ao uso de tábuas: As unidades produzidas de mesa e
de armário consomem 2m de tábuas cada, e cada unidade de prateleira
produzida consome 3m de tábuas, mas não é necessário o uso de tábuas
na produção de escrivaninhas. Lembrando que a fábrica dispõe de 800m
de tábuas, podemos traduzir essas condições através da expressão 0xE
+ 2xM + 2xA + 3xP ≤ 800. O sinal de ≤ indica que a fábrica pode consumir
qualquer quantidade menor que 800m de tábuas ou igual a este valor.
• Restrição quanto ao uso de pranchas: A fábrica dispõe de 600m de pranchas,
podendo distribuir 2m para cada escrivaninha produzida, 1m para cada
armário e 1m para cada prateleira. Assim, escrevemos a restrição 2xE + 0xM +
1xA + 1xP ≤ 600.
• Restrição quanto ao uso de painéis: Da mesma forma, temos 2xE + 1xM + 2xA + 0xP
≤ 500. Dessa vez, xP fica de fora por não utilizar painéis em sua composição. E
o limite de uso desse material é de até 500m.
• Essas são as restrições quanto ao uso dos materiais, mas devemos lembrar que
estamos tratando de produção de unidades de móveis, e essa fábrica não pode
produzir, ou vender, por exemplo, meio armário, ou uma mesa de reuniões e
meia, ou então quatro prateleiras negativas. Desse modo, devemos restringir
as variáveis de decisão para que sejam todas inteiras e não negativas, ou seja,
maiores que zero, ou iguais a zero (pode-se optar pela não produção de um
tipo de produto se isso significar um melhor lucro para a empresa).
Assim, nosso problema de PL fica traduzido no modelo:
max L = 100xE + 80xM + 120xA + 20xP Função Objetivo (maximizar o lucro)
Sujeito a
0xE + 2xM + 2xA + 3xP ≤ 800 Restrição ao uso de tábuas
2xE + 0xM + 1xA + 1xP ≤ 600 Restrição ao uso de pranchas
2xE + 1xM + 2xA + 0xP ≤ 500 Restrição ao uso de painéis
xE , xM , xA , xP ≥ 0 e inteiros Restrição à não negatividade e a natureza
da variável
UNIDADE 1 | PROGRAMAÇÃO LINEAR
8
3.2 PLANEJAMENTO DE PRODUÇÃO AGRÍCOLA
Problema: Um sitiante, possuidor de 50 ares de terra fértil, está planejando
sua estratégia de plantio para o próximo ano. Por informações obtidas nos órgãos
governamentais, sabe-se que as culturas de trigo e milho serão as mais rentáveis
na próxima safra. Por experiência, ele sabe que a produtividade de sua terra
é de oito sacas por cada are cultivado de trigo, necessitando de três homens-
hora de trabalho por are, e dez sacas por cada are cultivado de milho, com dois
homens-hora de trabalho por are. A mão de obra custa $100,00 por homem-hora
e a disponibilidade é de 120 hh. Também é sabido que o mercado de consumo
se limita a 240 sacas de trigo, vendidas a $75 cada uma, e 400 sacas de milho,
vendidas a $60 cada uma.
Modelagem: Esse agricultor deseja planejar sua produção de modo a
conseguir o maior lucro possível com o plantio desses dois produtos (ou um
deles, se for o caso). Desse modo, nosso modelo representa, novamente, um
problema de maximização de lucros, em que lucro é a diferença entre receita (o
que se ganha) e custo (o que se gasta) da produção. Para as variáveis de decisão,
usaremos então:
xT = quantidade de ares de terra destinados ao plantio de trigo;
xM = quantidade de ares de terra destinados ao plantio de milho.
A receita é proveniente da venda de seus produtos (venda das sacas de
trigo e milho) e o custo vem dos gastos com mão de obra. Assim, nossa função
objetivo será escrita com base nessas informações. Para o cálculo da receita,
sabemos que 1 are de trigo rende 8 sacas do produto ao valor de $75 por saca, e,
portanto, 1 are de trigo rende 8 • $75 = $600, e que um are de milho rende dez
sacas do produto ao valor de $60 por saca, e, portanto, um are de milho rende 10
• $60 = $600. Assim, a receita se resume a 600xT + 600xM.
Já os custos de mão de obra também podem ser calculados em função das
quantidades de ares, já que um are de cultivo de trigo necessita de três homens-
hora ao custo de $100 por homem-hora, temos que um are de trigo custa 3 • $100
= $300. E como um are de cultivo de milho necessita de dois homens-hora ao
custo de $100 por homem-hora, temos que um are de milho custa 2 • $100 = $200.
Assim o custo se resume a 300xT + 200xM.
Como devemos tratar com o lucro, calculamos a diferença (600xT + 600xM)–
(300xT + 200xM) e temos 300xT + 400xM. Nossa função objetivo fica definida então
por max L = 300xT + 400xM .
As restrições do modelo referem-se à quantidade de terra, mão de obra
disponível, e necessidades do mercado consumidor. Como as variáveis de
decisão são referentes à quantidade de ares cultivados, não temos necessidade
de restringi-los a unidades inteiras, já que há a possibilidade de plantar partes
de ares (por exemplo, 35,7 ares de trigo). Mas lembre-se de que não há medidas
negativas para terras. Vamos detalhar cada restrição:
TÓPICO 1 | PROBLEMAS DE PROGRAMAÇÃO LINEAR
9
• Restrição quanto ao tamanho do terreno: Esse agricultor possui cinquenta ares
de terra para dividir entre a produção de trigo e milho, então, xT + xM ≤ 50.
• Restrição quanto ao consumo de mão de obra: Dispomos de 120 homens-hora
de mão de obra para distribuir três hh para cada are cultivado de trigo (3 • xT)
e 2 hh para cada are cultivado de milho (2 • xM). Resumindo em 3xT + 2xM ≤ 120.
• Restrição quanto às necessidades de mercado: É sabido que o mercado de
consumo se limita a 240 sacas de trigo, então a produção deve se limitar a esse
valor. Note que a unidade de medida em questão é saca, portanto, devemos
fazer uma transformação de unidades de sacas para ares, lembrando que cada
are de trigo rende oito sacas, para a produção de 240 sacas são necessários
trinta ares. Assim, 8xT ≤ 240, ou simplificando, xT ≤ 30.
• De maneira análoga, podemos calcular a restrição quanto ao consumo de milho,
lembrando que cada are cultivado de milho produz dez sacas e que o mercado
demanda, no máximo, quatrocentas sacas (ou seja, quarenta ares). Assim, 10xM
≤ 400, ou simplificando, xM ≤ 40.
• É preciso ainda restringir as variáveis quanto à não negatividade, ou seja, xT ≥
0 e xM ≥ 0.
Finalmente, nosso problema de PL fica modelado da seguinte forma:
max L = 300xT + 400xM Função Objetivo (maximizar o lucro)
Sujeito a
xT + xM ≤ 50 Restrição ao tamanho do terreno
3xT + 2xM ≤ 120 Restrição ao uso de mão de obra
xT ≤ 30 Restrição a demanda por trigo
xM ≤ 40 Restrição a demanda por milho
xT , xM ≥ 0 Restrição à não-negatividade
3.3 DIETA ALIMENTAR
Problema: Devemos determinar, em uma dieta para redução calórica,
as quantidades de certos alimentos que deverão ser ingeridos diariamente,
de modo que determinados requisitos nutricionais sejam satisfeitos a custo
mínimo. Suponha que uma dieta alimentar esteja restrita a leite desnatado,
carne magra de boi, peixe e uma salada pré-definida. Sabe-se ainda que os
requisitos nutricionais deveriam ser expressos em termos de vitaminas A, C e
D e controlados por suas quantidades mínimas (em mg). A tabela 2 resume a
quantidade de cada vitamina em disponibilidade nos alimentos e a necessidade
diária para a boa saúde da pessoa.
UNIDADE 1 | PROGRAMAÇÃO LINEAR
10
TABELA 2 - QUANTIDADE DE VITAMINAS DISPONÍVEL NOS ALIMENTOS
Vitamina (mg) Leite (l) Carne (kg) Peixe (kg) Salada (kg) Requisito Nutricional
A 2 2 10 20 11
C 50 20 10 30 70
D 80 70 10 80 250
Custo (R$) 2,004,00 1,50 1,00 -
FONTE: Disponível em: <www.decom.ufop.br/prof/marcone>. Acesso em: 19 maio 2009.
Modelagem: Nesse caso, buscamos não maximizar e sim minimizar o custo
de uma alimentação que equilibre as quantidades ingeridas de cada alimento e
as quantidades de vitaminas, não podendo ultrapassar os limites mínimos a uma
alimentação saudável.
Nossas variáveis de decisão serão:
x1 quantidade de leite a ser consumida
x2 quantidade de carne de boi a ser consumida
x3 quantidade de carne de peixe a ser consumida
x4 quantidade de salada a ser consumida
E nossa função objetivo será dada em relação aos custos de cada alimento:
min C = 2x1 +4x2 + 1,5x3 +1x4, em que C representa o custo total.
As restrições do problema são determinadas pelos requisitos nutricionais
mínimos de vitaminas que devem ser incluídas nessa dieta. Assim:
• Restrição quanto ao consumo de vitamina A: Cada litro de leite ingerido
acrescenta 2mg de vitamina A na dieta; cada kg de carne acrescenta, também,
2mg; cada kg de peixe acrescenta 10mg de vitamina A; e cada kg de salada,
20mg; restritos a um mínimo de 11mg dessa vitamina, então podemos escrever
essa restrição na forma 2x1 +2x3+ 10x3 +20x4 ≥ 11.
• Restrição quanto ao consumo de vitamina C: De modo análogo, podemos
escrever 50x1 +20x2 + 10x3+30x4 ≥ 70.
• Restrição quanto ao consumo de vitamina D: Da mesma forma, temos
80x1 +70x2+ 10x3+80x4 ≥ 250.
E ainda é necessária a restrição de não-negatividade, pois não há
possibilidade de ingerir, por exemplo, uma quantidade negativa de leite (Você já
pensou em beber meio litro negativo de leite?). Então x1 , x2, x3 , x4 ≥ 0 .
Organizando nosso modelo, obtemos:
min C = 2x1 +4x2+ 1,5x3+1x4 Função objetivo
Sujeito à
2x1 +2x2+ 10x3+20x4 ≥ 1 Restrição ao consumo de vitamina A
TÓPICO 1 | PROBLEMAS DE PROGRAMAÇÃO LINEAR
11
50x1 +20x2+ 10x3+30x4 ≥ 70 Restrição ao consumo de vitamina C
80x1 +70x2+ 10x3+80x4 ≥ 250 Restrição ao consumo de vitamina D
x1, x2, x3, x4 ≥ 0 Restrição à não negatividade
3.4 PROBLEMAS DE TRANSPORTE
Um dos problemas de Programação Linear mais comum é o problema
de transporte. Envolve o transporte de cargas entre uma (ou mais) fonte(s) e um
(ou mais) destino(s). Conhecidos os custos de transporte entre cada fonte e cada
destino, conhecidas as capacidades de produção das fontes e as capacidades de
estoque dos destinos, deseja-se determinar o custo mínimo dos transportes.
Acompanhe o exemplo para entender melhor esse tipo de problema.
Duas fábricas (F1 e F2) de brinquedos devem enviar sua produção para
três Centros de Distribuição (D1, D2 e D3). Os brinquedos são transportados
em contêineres fechados em um número inteiro de caminhões. Os custos de
transporte de cada fábrica (fonte) para cada centro de distribuição (destino), as
capacidades de produção das fábricas e capacidades de estoque dos centros de
distribuição estão especificados na tabela 3.
Vamos à modelagem do problema.
TABELA 3 - CUSTOS DE TRANSPORTE, CAPACIDADES DE PRODUÇÃO DAS FÁBRICAS E
CAPACIDADES DE ESTOQUE DOS CENTROS DE DISTRIBUIÇÃO
FÁBRICA\CENTRO DE DISTRIBUIÇÃO D1 D2 D3 PRODUÇÃO
F1 8 5 6 120
F2 3 9 10 80
Capacidade de Estoque 90 40 70 200
FONTE: Os autores
Perceba que o total produzido pelas fábricas é igual à capacidade total de
estoque dos centros de distribuição. Nesse caso, chamamos esse problema de Problema
de Transporte Balanceado.
UNI
UNIDADE 1 | PROGRAMAÇÃO LINEAR
12
Nosso objetivo é minimizar os custos de transporte das cargas entre as
fábricas e os centros de distribuição, portanto min C. Para isso, nossas variáveis
de decisão são seis:
x11 quantidade a ser transportada da Fábrica F1 para o Centro de
Distribuição D1
x12 quantidade a ser transportada da Fábrica F1 para o Centro de
Distribuição D2
x13 quantidade a ser transportada da Fábrica F1 para o Centro de
Distribuição D3
x21 quantidade a ser transportada da Fábrica F2 para o Centro de
Distribuição D1
x22 quantidade a ser transportada da Fábrica F2 para o Centro de
Distribuição D2
x23 quantidade a ser transportada da Fábrica F2 para o Centro de
Distribuição D3
Como minimizar os custos de transporte das cargas depende das
quantidades transportadas, temos a função objetivo definida por:
min C = 8x11 + 5x12 + 6x13 + 3x21 + 9x22 + 10x23.
As restrições do nosso problema são de duas naturezas: quanto à produção
e quanto ao estoque:
• Restrições quanto à produção: A quantidade de unidades produzidas a serem
transportadas da Fábrica F1 para D1, D2 e D3 deve ser igual ao total de unidades
produzidas por F1, ou seja, x11 + x12 + x13 = 120. E a quantidade de unidades
produzidas a serem transportadas da Fábrica F2 para D1, D2 e D3 deve ser igual
ao total de unidades produzidas por F2, ou seja, x21 + x22 + x23 = 80.
• Restrições quanto à capacidade de estoque: A quantidade de unidades
produzidas a serem transportadas das fábricas F1 e F2 para D1 deve ser igual
à capacidade total de estoque de D1, ou seja, x11 + x21 = 80. A quantidade de
unidades produzidas a serem transportadas das fábricas F1 e F2 para D2 deve
ser igual à capacidade total de estoque de D2, ou seja, x12 + x22 = 40. A quantidade
de unidades produzidas a ser transportada das fábricas F1 e F2 para D3 deve ser
igual à capacidade total de estoque de D3, ou seja, x13 + x23 = 70.
• Não negatividade e tipo da variável: Não há como transportar quantidades
negativas de cargas. Então, todas as variáveis devem ser maiores que zero ou
iguais a zero. Podemos representar matematicamente essa restrição por xij ≥ 0,
com i = 1, 2 e j = 1, 2, 3. As variáveis devem ser inteiras.
Assim, podemos resumir nosso modelo através de
min C = 8x11 + 5x12 + 6x13 + 3x21 + 9x22 + 10x23.
Função objetivo
Sujeito à
TÓPICO 1 | PROBLEMAS DE PROGRAMAÇÃO LINEAR
13
14
RESUMO DO TÓPICO 1
Neste tópico, você estudou que:
• A formulação de um problema de PL envolve três etapas:
• A definição do objetivo básico do problema (Maximizar ou Minimizar) e das
variáveis de decisão.
• A função objetivo com base nas variáveis de decisão (max ou min)Z = c1x1 + c2x2
+ ... + cnxn.
• O sistema de restrições do PPL em relação às variáveis de decisão do
• A modelagem matemática é a principal ferramenta para a formulação dos
problemas de programação linear.
• Um dos tipos mais comuns de problemas de PL envolve transportes.
15
AUTOATIVIDADE
Agora é sua vez de escrever modelos matemáticos para algumas
situações encontradas em nossa volta. Tome o devido cuidado na escolha das
variáveis de decisão e preste muita atenção ao escrever a função objetivo e o
conjunto de restrições. Bom trabalho!
1 Para uma boa alimentação, o corpo necessita de vitaminas e proteínas.
A necessidade mínima de vitaminas é de 32 unidades por dia e a de
proteínas é de 36 unidades por dia.
Uma pessoa tem disponível carne e ovos para se alimentar.
Cada unidade de carne contém quatro unidades de vitaminas e seis
unidades de proteínas, a um custo de três unidades monetárias por unidade.
Cada unidade de ovo contém oito unidades de vitaminas e seis unidades
de proteínas, a um custo de 2,5 unidades monetárias por unidade.
Qual o modelo matemático que descreve a quantidade diária de carne e
ovos que deve ser consumida para suprir as necessidades de vitaminas e
proteínas com o menor custo possível?
2 Uma indústria têxtil produz três tipos de produtos, cada um dos quais
necessariamente precisa ser processado em uma máquina de costura reta,
em uma máquina de costura overlock e embalado. Os tempos consumidos
por cada unidade de produto em cada processo, a disponibilidade de
tempo, os custos e a receita pela venda de cada unidade dos produtos
seguem na tabela a seguir.
Produto
Tempo de processo (minutos) C o n s u m o
de matéria
prima (kg)
Receita
unitária (RS)Máquina
reta
Máquina
overlock Embalagem
Tipo I 15 10 5 1,5 50
Tipo II 10 12 8 0,8 65
Tipo III 5 4 3 0,6 30
Disponibilidade 4800 4000 3600 480 -
Deseja-se planejar a produção da próxima semanade forma que o lucro
dessa indústria seja o máximo possível.
Assumindo com variáveis de decisão:
x1 = quantidade de unidades a produzir do produto tipo A
x2 = quantidade de unidades a produzir do produto tipo B
x3 = quantidade de unidades a produzir do produto tipo C
Responda:
a) Escreva a função objetivo que representa o modelo.
b) Escreva as restrições do problema quanto:
16
(i) ao tempo de processo na máquina de costura reta;
(ii) ao tempo de processo na máquina de costura overlock;
(iii) ao tempo de processo de embalagem;
(v) à não negatividade.
(vi) ao consumo de matéria-prima.
3 Modele, sem resolver, os seguintes PPLs:
a) Uma indústria produz porcas, parafusos e pregos, podendo usar dois
métodos (distintos e não simultâneos) para produzi-los. O primeiro
método produz 3000 porcas, 2000 parafusos e 2500 pregos por hora,
enquanto que o segundo método produz 4000 parafusos e 4000 pregos por
hora, mas nenhuma porca. A indústria trabalha dezoito horas por dia e
tem uma encomenda de 5000 parafusos, 5000 pregos e 5000 porcas. Ela
deve empregar os dois métodos de modo a entregar sua encomenda o mais
rápido possível, planejando o tempo de operação de cada método.
b) Segundo Wagner (1986, p. 47), o presidente Antônio Castor, da Companhia
Ramos de Carvalho, quer utilizar do melhor modo possível os recursos
de madeira de uma de suas regiões florestais. Dentro dessa região, há
uma serraria e uma fábrica de compensados; assim, as toras podem ser
convertidas em madeira beneficiada ou compensada.
Produzir uma mistura comercializável de um metro cúbico de produtos
beneficiados requer um metro cúbico de pinho e quatro metros cúbicos de
canela. Produzir cem metros quadrados de madeira compensada requer
dois metros cúbicos de pinho e quatro metros cúbicos de canela. Essa região
tem disponível 32 metros cúbicos de pinho e 72 metros cúbicos de canela.
Compromissos de venda exigem que sejam produzidos, durante o período
do planejamento, pelo menos cinco metros cúbicos de madeira beneficiada
e 1200 m2 de madeira compensada. As contribuições ao lucro são $45 por
um metro cúbico de produtos beneficiados e $60 por 100 m2 de madeira
compensada.
17
TÓPICO 2
SOLUÇÃO GRÁFICA DE PROBLEMAS
DE PROGRAMAÇÃO LINEAR
UNIDADE 1
1 INTRODUÇÃO
A solução ótima (Z*), ou seja, o máximo lucro ou mínimo custo, por
exemplo, de um problema de programação linear que tenha duas, ou até
três, variáveis de decisão pode ser encontrada usando-se representações no
sistema de eixos cartesianos ortogonais (plano cartesiano). Para simplificar
sua compreensão, usaremos o exemplo 2, sobre o planejamento de produção
agrícola, buscando a solução ótima, ou seja, o máximo lucro que pode ser obtido
com o plantio dos cereais.
Segue o modelo do problema de PL para facilitar a leitura dos dados:
maxL = 300xT + 400xM Função Objetivo (maximizar o lucro)
Sujeito a
xT + xM ≤ 50 Restrição ao tamanho do terreno
3xT + 2xM ≤ 120 Restrição ao uso de mão de obra
xT ≤ 30 Restrição a demanda por trigo
xM ≤ 40 Restrição a demanda por milho
xT , xM ≥ 0 Restrição à não-negatividade
2 REPRESENTAÇÃO GRÁFICA
Para essa representação, usaremos o eixo das abscissas do plano (eixo Ox)
para representar a variável xT (a quantidade de ares de terra destinados ao plantio
de trigo). E usaremos o eixo das ordenadas (eixo Oy) para a representação da
variável xM (quantidade de ares de terra destinados ao plantio de milho). Assim,
temos o plano mostrado na Figura 1.
UNIDADE 1 | PROGRAMAÇÃO LINEAR
18
FONTE: Os autores
Inicialmente, faremos a representação da 1ª restrição do problema usando
a equação da reta xT + xM = 50. Os pontos abaixo dessa reta correspondem à
desigualdade < da restrição do PPL. O gráfico fica definido conforme a Figura 2.
FONTE: Os autores
Fazemos o mesmo com a segunda restrição do problema, usando a
equação da reta 3xT + 2xM ≤ 120. Os pontos abaixo dessa reta correspondem à
desigualdade < da restrição do PPL. O gráfico fica definido conforme a Figura 3.
FIGURA 1 - PLANO CARTESIANO COM AS COORDENADAS DE x
T
E x
M
FIGURA 2 - PLANO CARTESIANO COM A RESTRIÇÃO x
T
+ x
M
≤ 50
Região onde
x1 + x2 ≤ 50
x
1 + x
2 = 50
50
50
TÓPICO 2 | SOLUÇÃO GRÁFICA DE PROBLEMAS DE PROGRAMAÇÃO LINEAR
19
FONTE: Os autores
Como as restrições devem ser respeitadas simultaneamente, deve-se
mostrar no gráfico a intersecção entre as regiões delimitadas pelas restrições.
Imagine-se colando a Figura 2 sobre a Figura 3.
FONTE: Os autores
Mas você deve lembrar que o PPL deve considerar todas as restrições
juntas na busca pela solução ótima. Então, devemos graficar todas as equações
de retas referentes às desigualdades relativas às restrições, tomando o devido
cuidado de destacar a área (acima ou abaixo da reta da restrição) conforme o sinal
da desigualdade (> ou <). O PPL fica graficado como mostra a Figura 5.
FIGURA 3 - PLANO CARTESIANO COM A RESTRIÇÃO 3x
T
+ 2x
M
≤ 120
FIGURA 4 - PLANO CARTESIANO COM A REGIÃO DE INTERSECÇÃO DAS
RESTRIÇÕES x
T
+ x
M
≤ 50 E 3x
T
+ 2x
M
≤ 120
Região onde
3x1 + 2x2 ≤ 120
3x
1 + 2x
2 = 120
40
60
Região onde
3x1 + 2x2 ≤ 120 e x1 + x2 ≤ 50
x
1 + x
2 = 50
3x
1 + 2x
2 = 120
40 60
60
50
UNIDADE 1 | PROGRAMAÇÃO LINEAR
20
FONTE: Os autores
Perceba que intersecção das restrições do PPL limita o gráfico a uma figura
poligonal fechada convexa que contém todos os pontos (xT , xM) chamados de
Soluções Compatíveis do problema de PL, que formam o Conjunto das Soluções
Compatíveis. A solução ótima Z* = (x*T , x*M) deve ser um destes pontos (ou mais
de um ponto, se o problema permitir essa possibilidade).
3 VETOR GRADIENTE - ▼ Z
Uma ferramenta importante na busca da solução ótima é o vetor gradiente
da função objetivo, que indica a direção do máximo crescimento dela, ou seja, onde
devemos procurar o ponto do Conjunto de Soluções Compatíveis que faça com
que a função objetiva adquira seu maior valor. Esse vetor gradiente, representado
agora por ▼L (já que queremos o máximo lucro), tem como extremidades os
coeficientes da função objetivo, ou seja, ▼L = (300, 400).
Representar esse vetor em nosso gráfico seria loucura, visto o tamanho
do vetor, mas como o que nos importa é a direção do vetor, basta simplificá-lo
dividindo por dez as suas coordenadas e então teremos a direção do máximo
crescimento de L em (30,40), representado na Figura 6.
FIGURA 5 - PLANO CARTESIANO COM O SISTEMA DE RESTRIÇÕES, MOSTRANDO
A REGIÃO DE INTERSECÇÃO DE TODAS AS RESTRIÇÕES
TÓPICO 2 | SOLUÇÃO GRÁFICA DE PROBLEMAS DE PROGRAMAÇÃO LINEAR
21
FONTE: Os autores
Podemos observar como usar o vetor gradiente para encontrar a solução
ótima (L*), usando para isso, nada mais do que um simples esquadro (aquele
usado na escola). Basta colocar um dos lados retos do esquadro em cima do vetor
gradiente e deslizá-lo no sentido do vetor, desde a origem, observando as retas
perpendiculares ao vetor gradiente que são definidas pelo outro lado do esquadro
(se o problema for de minimização usa-se o sentido oposto ao de ▼L). Deve-
se manter esse movimento até encontrar o último ponto da região de soluções
compatíveis que toque o esquadro.
FONTE: Os autores
FIGURA 6 - USO DO VETOR GRADIENTE NA BUSCA DE L*
FIGURA 7 - USO DO ESQUADRO COMO APOIO AO VETOR GRADIENTE NA BUSCA DE Z*
UNIDADE 1 | PROGRAMAÇÃO LINEAR
22
Em nosso exemplo, a reta definida pelo esquadro determina um único
ponto que fornece o máximo lucro para a função objetivo, que é um vértice do
polígono (conjunto) de soluções compatíveis. Esse ponto é determinado pelo
encontro (intersecção) das equações das retas xM = 40 e xT + xM = 50. Para descobri-
lo basta calcular o sistema de equações lineares
em que temos x*T = 10 e x*M = 40.
A solução ótima para o problema de PL é dada pela função objetivo
calculada para estes valores. Assim, maxL = 300xT + 400xM = 300 . x*T + 400 . x*M
= 300 . 10 + 400 . 40 = 19000.
Podemos ainda interpretar os resultados da seguintemaneira: se o sitiante
destinar dez ares de sua terra à plantação de trigo e quarenta ares à plantação de
milho, seu lucro com a venda da safra será de $19.000,00.
Apenas para fins didáticos iremos conferir se a solução ótima encontrada
respeita todos os limites impostos pelas restrições:
Restrição ao tamanho do terreno xT + xM ≤ 50
Temos 10 + 40 = 50 ≤ 50 OK!
Restrição ao uso de mão de obra 3xT + 2xM ≤ 120
Temos 3 . 10 + 2 . 40 = 30 + 80 = 110 ≤ 120
OK!
Restrição a demanda por Trigo xT ≤ 30
Temos x*T = 10 ≤ 30
OK!
Restrição a demanda por Milho xM ≤ 40
Temos x*M = 40 ≤ 40 OK!
E é evidente que as varáveis não são negativas.
Portanto, nossa solução ótima L* = (x*T , x*M) = (10,40) = 19000 respeita
todas as restrições.
xT + xM = 50
xM = 40{
4 CONSIDERAÇÕES SOBRE O MÉTODO GRÁFICO
Quando o número de restrições do PPL for muito grande, ou os coeficientes
da função objetivo e restrições forem valores muito “distantes” (um muito grande
e outro muito pequeno), pode haver uma grande dificuldade em representar esse
PPL graficamente. Muitas restrições deixam o gráfico “poluído” e dificultam o
trabalho com o vetor gradiente.
TÓPICO 2 | SOLUÇÃO GRÁFICA DE PROBLEMAS DE PROGRAMAÇÃO LINEAR
23
Para problemas de PL com três variáveis de decisão, devem-se usar não
retas para as restrições, mas sim planos no espaço (3D) e assim exige-se de você
uma grande (diríamos espetacular) capacidade para a representação gráfica.
Você pode optar por resolver graficamente o exemplo 1 (da fábrica de
móveis), mas entenda isso como muito trabalho e muito tempo dedicado. Vale
pela experiência, mas não há necessidade. Como veremos adiante, outras técnicas
serão muito bem-vindas!
24
RESUMO DO TÓPICO 2
Neste tópico, vimos que:
• A solução ótima de um PPL de duas variáveis pode ser encontrada através do
gráfico das restrições em planos cartesianos, com a ajuda do vetor gradiente.
• Basta traçar num plano cartesiano as equações de cada restrição e definir a
região de soluções compatíveis como a intersecção das regiões limitadas pelas
restrições.
• Com a direção do vetor gradiente e a ajuda de um esquadro, a solução ótima é
o último ponto de contato do esquadro na região de soluções compatíveis.
• A solução ótima do PPL é o ponto de intersecção das equações no ponto
encontrado com o esquadro, que pode ser determinada resolvendo um sistema
de equações lineares.
25
AUTOATIVIDADE
Mãos à obra! Resolva as atividades a seguir em uma folha separada.
Capriche nos gráficos, usando régua ou esquadro, para que fiquem bem visíveis
e para que você possa compreender perfeitamente os pontos (soluções), as retas
(equações) e os planos (região compatível).
1 Faça um plano cartesiano ortogonal e represente nele o Vetor Gradiente da
função objetivo definida por Max Z = 3x1 + 5x2.
2 Em relação ao modelo referente à autoatividade 1 do tópico anterior:
a) Faça o gráfico que representa o conjunto de restrições do modelo.
b) Encontre as coordenadas dos vértices da região de soluções compatíveis
do modelo.
c) Indique a direção do Vetor Gradiente no plano cartesiano.
c) Qual a solução ótima do problema?
3 Resolva, graficamente, o modelo referente à autoatividade 3(b) do tópico
anterior.
26
27
TÓPICO 3
PROGRAMAÇÃO LINEAR INTEIRA
UNIDADE 1
1 INTRODUÇÃO
Os Problemas de Programação Linear Inteira são uma classe de problemas
de PL que contém uma particularidade: alguma restrição em relação ao tipo de
uma ou mais variáveis de decisão, como por exemplo, variáveis que podem
assumir apenas valores inteiros.
Esse tipo de problema pode ser resolvido do mesmo modo como os
problemas de PL, mas devem-se utilizar alguns métodos especiais quando a
solução encontrada não respeita a restrição quanto ao tipo das variáveis. Um dos
métodos mais utilizados é o Método de Branch and Bound (Ramificação e Limite),
que adotaremos em nossos estudos nesse caderno.
2 UM MODELO DE PL INTEIRA
Para compreender melhor esse tipo de problema vamos recorrer a um
exemplo.
Seja o problema de PL modelado da seguinte maneira:
max Z = 6x1 + 1x2 É a função objetivo
Sujeito à
Que são as restrições do PPL
Perceba que a última restrição indica duas restrições, a não negatividade
das variáveis e a restrição quanto ao tipo de variável (são aceitos apenas
números inteiros, os decimais estão descartados). Resolvendo o PPL através
do método gráfico conforme figura 8, sem se preocupar com essa restrição
encontramos a solução que corresponde a x1 = 0 e x2 ≅ 5,67, que nos leva a
um máximo Z ≅ 62,37.
5x1 + 3x2 ≤ 17
x1 , x2 ≥ 0 e inteiros }
UNIDADE 1 | PROGRAMAÇÃO LINEAR
28
FONTE: Os autores
Mas essa solução encontrada não é aceita pelo problema, pois o valor da
variável não é um número inteiro.
Podemos ficar tentados a resolver esse mero detalhe fazendo um simples
arredondamento do valor encontrado para o número inteiro mais próximo e
recalculando a solução do PPL. Assim teríamos x*2 = 6, e a solução ótima, nesse
caso, seria Z* = 6 . 0 + 11 . 6 = 66 . Mas se fizermos um teste de verificação dessa
solução para a compatibilidade com o sistema de restrições do problema veremos
que a restrição não aceita a solução encontrada:
5x1 + 3x2 ≤ 17 ⇒ 5
. 0 + 3 . 6 = 18 ≤ 17 Não aceita!
Ou seja, a solução ótima arredondada encontrada não satisfaz as restrições
do PPL e, portanto, não é uma solução compatível com o PPL.
Outra maneira de encontrar a solução ótima inteira e compatível com o
sistema de restrições do PPL seria procurar, na região do plano cartesiano, as
soluções inteiras que se encontram dentro da área de soluções compatíveis. Mas
há o inconveniente de poder haver muitos pontos com essa característica dentro
da área de compatibilidade e esse processo pode tornar-se demorado e cansativo.
Considerando as alternativas, faz-se necessário um algoritmo de busca
que possa encontrar a solução ótima de maneira mais eficaz e que obedeça às
FIGURA 8 - SOLUÇÃO GRÁFICA DO PPL DE EXEMPLO
TÓPICO 3 | PROGRAMAÇÃO LINEAR INTEIRA
29
3 O MÉTODO DE BRANCH AND BOUND
Nosso problema origina-se ao perceber que a solução ótima encontrada,
x*1 = 0 e x*2 ≅ 5,67 , não obedece à restrição quanto ao tipo da variável, ou seja,
não é um numero inteiro e a solução arredondada não satisfaz às restrições
do PPL. Para resolver esses problemas, vamos imaginar a solução como 5 ≤ x2
≤ 6 e criar dois novos modelos de PL, baseados no PPL original, um PPL com
a restrição x2 ≤ 5 e outro com a restrição x2 ≥ 6. Esse é o chamado processo de
ramificação.
Assim o PPL original, que chamaremos de PL0, que era
max Z = 6x1 + 11x2
Sujeito à
5x1 + 3x2 ≤ 17
x1 , x2 ≥ 0 e inteiro
Fica ramificado em:
PL1 e PL2
max Z = 6x1 + 11x2 max Z = 6x1 + 11x2
Sujeito à Sujeito à
5x1 + 3x2 ≤ 17 5x1 + 3x2 ≤ 17
x2 ≤ 5 x2 ≥ 6
x1 , x2 ≥ 0 e inteiro x1 , x2 ≥ 0 e inteiro
Agora, temos o trabalho de resolver dois problemas de PPL, porém,
ignorando as restrições sobre valores inteiros.
restrições do problema. Empregaremos o Método de Branch and Bound, pois é o
mais conhecido e utilizado na resolução desse tipo de problema.
UNIDADE 1 | PROGRAMAÇÃO LINEAR
30
FONTE: Os autores
Através do método gráfico, podemos observar que:
• A solução encontrada para o PL1 é dada por x*1 = 0,4 e x*2 = 5 , que fornece
Z* = 57,4.
• Mas o PL2 não tem solução. Observando as restrições, não há valor de x2 que
as satisfaça simultaneamente, visto que x1 não pode ser negativo e o mínimo
valor para x2 é 6 (restrição x2 ≥ 6) Mas a restrição 5x1 + 3x2 ≤ 17 não aceita
valores de x2 maiores que 6.
Se o PL2 tivesse solução faríamos uma comparação entre os valores de Z
nos PPL 1 e 2, continuando a busca de Z* pelo PPL que tivesse maior valor.
Para compreender a situação em que nos encontramos, vamos organizar
nosso trabalho em um diagrama:
FIGURA 9 - GRÁFICO DO PL
1
COM AS SUAS RESTRIÇÕES
TÓPICO 3 | PROGRAMAÇÃO LINEAR INTEIRA
31
Como o PL2 não tem solução (é eliminado),e a solução encontrada
para o PL1 ainda não é viável, já que x1* não é inteiro, seguimos a resolução do
problema usando o PL1, lembrando que temos novamente uma variável com
valor decimal. Dessa vez temos que pensar em 0 ≤ x1 ≤ 1, e a partir disso, criar
dois novos PPLs, ramificando mais uma vez nosso problema.
Criamos então os PPLs:
PL3 e PL4
max Z = 6x1 + 11x2 max Z = 6x1 + 11x2
Sujeito à Sujeito à
5x1 + 3x2 ≤ 17 5x1 + 3x2 ≤ 17
x2 ≤ 5 x2 ≤ 5
x1 ≤ 0 x2 ≥ 1
x1 , x2 ≥ 0 e inteiro x1 , x2 ≥ 0 e inteiro
Analisando as restrições do PL3, percebemos que não há a necessidade de
fazer o gráfico. As restrições x1 ≥ 0 e x1 ≤ 0 só aceitam uma solução: x1 = 0. Em
conseqüência disso, usando a restrição 5x1 + 3x2 ≤ 17, temos x2 = 5, que é o máximo
valor aceito pela restrição x2 ≤ 5.
Assim, para o PL3 temos: x1 = 0, x2 = 5 e Z = 6 • 0 + 11 • 5 = 55.
Resolvendo o PL4 utilizando o método gráfico, temos:
FONTE: Os autores
FIGURA 10 - GRÁFICO DO PL
4
COM SUAS RESTRIÇÕES E O VETOR GRADIENTE
UNIDADE 1 | PROGRAMAÇÃO LINEAR
32
A solução ótima é o ponto de intersecção das retas de equações:
Assim, para o PL4 temos: x1 = 1, x2 = 4 e Z = 6 . 1 + 11 . 4 = 6 + 44 = 50.
Vamos organizar novamente todo o trabalho em um diagrama.
Comparando as soluções dos PPLs, criados a partir do PPL original (PL0)
temos, nesse caso, duas possíveis soluções (Z = 55, no PL3 e z = 50, no PL4).
Como nosso objetivo é encontrar o valor máximo para Z, obedecendo às
restrições, obviamente devemos concluir que:
max Z = 6x1 + 11x2
TÓPICO 3 | PROGRAMAÇÃO LINEAR INTEIRA
33
Sujeito à
5x1 + 3x2 ≤ 17
x1 , x2 ≥ 0 e inteiro
E o PPL tem como solução ótima: x*1 = 0, x*2 = 5 e Z* = 55.
3.1 CONSIDERAÇÕES SOBRE O MÉTODO
DE BRANCH AND BOUND
Esse método de resolução para problemas de Programação Linear Inteira
(PLI) trabalha em dois momentos:
• Ramificação:
Resolve-se o PPL buscando valores inteiros para as variáveis. Caso não
os encontre, ramifica-se o PPL em dois novos, atribuindo a cada um deles novas
restrições, delimitando novos conjuntos de soluções compatíveis, eliminando a
possibilidade de reencontrar os valores que originaram a ramificação.
O processo de ramificação continua até que:
• Encontramos um PPL sem solução;
• Encontramos as soluções de todos os PPLs ramificados que obedeça a restrição
quanto ao tipo de variável (inteira).
• Limite:
Ao encontrar um ramo do PPL que apresente solução compatível (inteira),
define-se o valor de Z desse ramo do PPL como o Limite Inferior. Qualquer ramo
que apresente solução (inteira ou não) menor que o limite inferior é imediatamente
eliminado (poupando trabalho).
As ramificações continuam nos PPLs que tenham soluções não inteiras
cujo valor de Z seja maior que o limite inferior. Se um PPL apresentar uma solução
inteira maior que o Limite inferior, então esse valor de Z passa a ser o novo Limite
Inferior, e o PPL que fazia esse papel anteriormente também é eliminado, assim
como todos os ramos que tenham solução menor que o novo limite inferior.
Fazemos esse procedimento até que se eliminem todos os ramos sem
solução ou com solução menor que o Limite Inferior, e esse limite é a solução
ótima do PPL original.
34
UNIDADE 1 | PROGRAMAÇÃO LINEAR
Vamos, novamente, analisar nosso PPL de exemplo:
O PPL original (PL0) não tem solução inteira e foi ramificado em:
• PL1 que também não tem solução inteira (mas tem solução);
• PL2 que não tem solução e por isso é eliminado.
O PL1 é ramificado em:
PL3 que tem solução inteira (x1 = 0 e x2 = 5) definindo o limite inferior Z = 55.
PL4 que tem solução inteira (x1 = 1 e x2 = 4), mas seu valor Z = 50 é menor
que o limite inferior, portanto, também é eliminado.
Como não há mais necessidade de ramificar o PL3, este traz a solução
ótima para o PL0, dada pelo limite inferior Z* = 55.
4 APLICAÇÃO DE PLI
Um técnico em eletrônica produz dois tipos de componentes eletrônicos.
Ele dispõe de 6 capacitores, usados na produção, e de 9 horas de trabalho. O
componente do tipo 1 necessita de 2 capacitores e 2 horas de trabalho para ser
produzido, enquanto que o componente do tipo 2 necessita apenas 1 capacitor, mas
de 3 horas de trabalho para sua produção. Esse técnico vende seus componentes
eletrônicos ganhando três reais pela venda de uma unidade do componente
do tipo 1 e quatro reais pela venda de uma unidade do componente do tipo 2.
Quantos componentes de cada tipo ele deve produzir de modo a obter o maior
lucro possível com a venda?
Vamos ao modelo:
• Variáveis de decisão:
x1 – unidade a produzir do componente tipo 1
x2 – unidade a produzir do componente tipo 2
• Função Objetivo:
Deve-se buscar o máximo lucro com a venda, logo, max L.
Os ganhos são de três reais para cada x1 e mais quatro reais para cada x 2.
Podemos representar por 3x1 + 4x2.
TÓPICO 3 | PROGRAMAÇÃO LINEAR INTEIRA
35
Assim, a função objetivo é dada por Max L = 3x1 + 4x2.
• Restrições:
Quanto ao material utilizado: 2 capacitores para cada x1 e 1 capacitor para
cada x2, não excedendo ao limite de 6 capacitores. Portanto, 2x1 + x2 ≤ 6.
Quanto ao tempo: 2 horas para cada x1 e 3 horas para cada x2, não
excedendo ao limite de 9 horas. Portanto, 2x1 + 3x2 ≤ 9.
Não negatividade: Não há como produzir quantidades negativas de x1 e
x2, então x1 ≥ 0 e x2 ≥ 0.
Integralidade: Não há ganho na venda de componentes inacabados, logo
esse deverão ser produzidos em unidades inteiras. Assim, x 1 inteiro e x2 inteiro.
Nosso modelo de PLI fica:
Max L = 3x1 + 4x2.
Sujeito a
2x1 + x2 ≤ 6
2x1 + 3x2 ≤ 9
x1 , x2 ≥ 0 e inteiros
Ao resolver o PLI (agora PL0), graficamente chegamos à solução x1 = 2,55 e
x2 = 1,5, com L = 12,75. Mas x1 e x2 não são inteiros, então devemos ramificar o PL0
em dois novos. Nesse caso escolhendo entre uma das variáveis para criar a nova
restrição dos PPLs. Optamos por x2, e usando 1 ≤ x2 ≤ 2, criamos PL1 e PL2.
AUTOATIVIDADE
Por ser um problema de apenas duas variáveis (x1 e x2), a solução pode
ser através do método gráfico. Como o espaço em nosso caderno é reduzido,
fica ao seu encargo fazer os gráficos para a verificação das soluções.
36
UNIDADE 1 | PROGRAMAÇÃO LINEAR
Nos dois casos a solução (x1, x2) não é inteira e devem-se criar ramificações
a partir dos dois PPLs. Vamos começar ramificando o PL2 (L = 12,5) por apresentar
uma solução melhor que o PL1 (L = 11,5). A ramificação a partir do PL2 gera PL3,
com a restrição x1 ≤ 1, e PL4, com a restrição x1 ≥ 2, criadas com base no fato de que
1 ≤ x1 ≤ 2 no PL2.
Um critério de escolha para decidir que variável usar na criação das novas
restrições é usar a variável que possui valor mais “longe” de um número inteiro. No nosso
caso, x
2
.
UNI
TÓPICO 3 | PROGRAMAÇÃO LINEAR INTEIRA
37
Novamente, deve-se resolver os dois PPLs, e as soluções são:
• Para o PL3: x1 = 1, x2 = 2,33 e L = 12,33.
• Para o PL4: Não há solução. (Tente usar os valores mínimos x1 = 2 e x2 = 2 na 2ª
restrição do PL4 para certificar-se dessa afirmação.)
Eliminando o PL4, podemos escolher entre ramificar o PL1 ou o PL3.
Escolhemos esse último por ter o maior valor para L (que não é o Limite Inferior).
No PL3, usamos 2 ≤ x2 ≤ 3 para criar PL5 com a restrição x2 ≤ 2 e o PL6 com
a restrição x2 ≥ 3.
Comparando as soluções encontradas (que são inteiras), podemos definir
12 como o Limite Inferior para os ramos do PPL e todos os ramos que têm solução
menor que 12 são eliminados.
Perceba que a restrição de não negatividade do PL
4
é redundante já que temos
x
1
≥ 2 e x
2
≥ 2.
UNI
38
UNIDADE 1 | PROGRAMAÇÃO LINEAR
No diagrama vemos que:
• PL4 é eliminado, pois não tem solução.
Vamos analisar o diagrama de soluções encontradas até agora e verificar
o que resta no PPL para que se possa encontrar a solução ótima.
TÓPICO 3 | PROGRAMAÇÃO LINEAR INTEIRA
39
4.1 CONSIDERAÇÕES FINAIS SOBRE A PLI
Como vimos no início dos estudos sobre PLI, a solução pode ser encontrada
pelo arredondamento do PPL, sem levar em contaa restrição de integralidade.
Mas essa técnica acarreta em uma série de dificuldades.
Vamos relembrar a primeira solução encontrada no PPL do exemplo
de aplicação, em que tínhamos x1 = 2,25 e x2 = 1,5. Desrespeitando os acordos
matemáticos para arredondamentos, poderíamos arredondar os valores das
soluções encontrando quatro pares de soluções: x1 = 2 e x2 = 1, x1 = 2 e x2 = 2,
x1 = 3 e x2 = 1 e, por último, x1 = 3 e x2 = 2. Dessas soluções, apenas encontra-se
dentro da região de soluções compatíveis o par x1 = 2 e x2 = 1, que nos traz L =
10. Comparando esse valor com a solução ótima encontrada através do Método
de Branch and Bound, em que L = 12, temos uma variação de, aproximadamente,
16% na solução ótima do PPL. Por mais esse motivo, é interessante perceber a
necessidade de utilizar os algoritmos corretamente para que se possa chegar às
melhores conclusões.
• PL6 é definido como Limite Inferior, pois apresenta a maior solução inteira (L
= 12).
• PL1 e PL5 são eliminados, pois apresentam soluções menores que o Limite
Inferior.
• PL6 define a solução ótima do PPL, pois é o único ramo restante e apresenta a
solução compatível com as restrições.
Assim, fica definida a solução ótima do problema como x*1 = 0 , x*2 = 3 e L*
= 12, o que pode ser interpretado da seguinte forma: O técnico em eletrônica deve
produzir apenas o componente do tipo 2, pois vendendo três unidades desse
produto seu lucro será de doze reais.
40
UNIDADE 1 | PROGRAMAÇÃO LINEAR
SOBRE A DEFINIÇÃO DE UM PROBLEMA DE PESQUISA
OPERACIONAL E A COLETA DE DADOS
Frederick S. Hillier e Gerald J. Liebermann
A maioria dos problemas práticos enfrentados pelas equipes de PO é
inicialmente descrita a eles de uma forma vaga e imprecisa. Consequentemente, a
primeira ordem do dia é estudar o sistema relevante de e desenvolver um enunciado
bem-definido do problema a ser considerado. Isso abrange determinar coisas como
os objetivos apropriados, restrições sobre o que pode ser feito, relação entre a área a
ser estudada e outras áreas da organização, possíveis caminhos alternativos, limites
de tempo para tomada de decisão e assim por diante. Esse processo de definição de
problema é crucial, pois afeta enormemente quão relevantes serão as conclusões do
estudo. É difícil obter uma resposta “correta” a partir de um problema “incorreto”!
A primeira coisa a ser reconhecida é que uma equipe de PO normalmente
trabalha na qualidade de consultores. Aos membros da equipe não somente é
apresentado um problema e solicitado a resolvê-lo conforme julguem apropriado.
Em vez disso, eles aconselham a gerência (geralmente um tomador de decisões
importante). A equipe realiza uma análise técnica detalhada do problema e
a seguir apresenta recomendações à gerência. Frequentemente, o relatório à
gerência identificará uma serie de alternativas particularmente atrativas de acordo
com diversas suposições ou segundo um intervalo de valores diferente de algum
parâmetro da política adotada que pode ser avaliado somente pela a gerência
(por exemplo, o conflito entre custos e benefício). A gerência avalia o estudo e suas
recomendações, leva em consideração uma série de fatores intangíveis e toma
a decisão final baseada em seu melhor julgamento. Consequentemente, é vital
para a equipe de PO sintonizar-se com a gerência e obter o seu apoio ao longo do
projeto.
Determinar os objetivos apropriados é um aspecto muito importante na
definição de um problema. Para tanto, é necessário, primeiramente, identificar o
membro (ou membros) da gerência que efetivamente decidirá(ão) no que se refere
ao sistema em estudo e, depois sondar o pensamento desse(s) indivíduo(s) no que
tange aos objetivos pertinentes (envolver o tomador de decisões desde o princípio
é essencial para obter seu apoio à implementação do estudo).
Em razão de sua natureza, a PO se preocupa com o bem-estar de toda
a organização e não apenas com aquele de certos membros da organização. Um
estudo de PO busca soluções que são ótimas para a organização subotimizadas
que são boas apenas para um membro. Portanto, os objetivos que são formulados
idealmente devem ser aqueles de toda a organização. Entretanto, isso nem
LEITURA COMPLEMENTAR
TÓPICO 3 | PROGRAMAÇÃO LINEAR INTEIRA
41
sempre é conveniente. Muitos problemas referem-se primariamente apenas a
uma porção da organização, de forma que a análise passaria a ser incontrolável
caso os objetivos declarados fossem muito genéricos e se fosse dada consideração
categórica a rodos os efeitos colaterais no restante da organização. Em vez disso,
os objetivos usados no estudo devem ser os mais específicos possíveis e, ao
mesmo tempo, englobar os principais objetivos do tomador de decisões e manter
um grau de consistência razoável com objetivos mais altos da organização.
Para organizações com fins lucrativos, uma abordagem possível para
contornar o problema de subotimização é usar a maximização de lucros no logo
prazo (levando-se em conta o valor do dinheiro no tempo) como o único objetivo.
A qualificação no longo prazo indica que esse objetivo fornece a flexibilidade
de considerar atividades que não se traduzem imediatamente em lucros, por
exemplo, projetos de pesquisa e desenvolvimento, mas precisam fazê-lo com o
tempo de modo a valer a pena. Essa abordagem tem seus méritos. Esse objetivo
é suficientemente especifico para ser usado de forma conveniente e ainda assim
ser suficientemente abrangente para abarcar o objetivo básico das organizações
que visam ao lucro. De fato, algumas pessoas acreditam que todos os demais
objetivos legítimos podem ser traduzidos nesse único.
Entretanto, na prática, muitas organizações com fins lucrativos não
adotam esse enfoque. Uma série de estudos de corporações norte-americana
revela que a gerência tende a adotar o objetivo de lucros satisfatórios, combinados
com outros objetivos, em vez de focalizar na maximização de lucros no longo prazo.
Tipicamente, alguns desses outros objetivos podem ser o de manter lucros estáveis,
aumentar (ou manter) a fatia de mercado, propiciar a diversificação de produtos,
manter preços estáveis, levantar o moral dos trabalhadores, manter o controle
familiar do negócio e aumentar o prestígio da companhia. Completando-se esses
objetivos, pode ser que se alcance a maximização, porém o inter-relacionamento
pode ser suficientemente obscuro para não ser conveniente incorporar todos eles
nesse único objetivo.
Além disso, há considerações adicionais envolvendo responsabilidades
sociais que são distintas do motivo lucro. As cinco partes, geralmente afetadas
por uma empresa comercial localizada em um único país são: (1) os proprietários
(acionistas etc.) que desejam lucros (dividendos, valorização das ações e assim
por diante); (2) os empregados, que desejam emprego estável com salários
razoáveis; (3) os clientes, que desejam um produto confiável a preços razoáveis;
(4) os fornecedores, que desejam integridade e um preço de venda razoável para
suas mercadorias; e (5) o governo e, consequentemente, a nação, que desejam o
pagamento de impostos razoáveis e consideração pelo interesse nacional. Todas
as cincos partes dão contribuições essenciais para a empresa e essa não deve ser
vista como um servidor exclusivo de qualquer uma das partes para exploração
das demais. Pelo mesmo critério, corporações internacionais assumem obrigações
adicionais para seguirem práticas socialmente responsáveis. Portanto, mesmo que
42
UNIDADE 1 | PROGRAMAÇÃO LINEAR
a principal responsabilidade da gerência seja a de gerar lucros (o que, em ultima
instância, acabará beneficiando as cinco partes envolvidas), percebemos que suas
responsabilidades sociais mais amplas também devam ser reconhecidas.
As equipes de PO tipicamente investem uma quantidade de tempo
surpreendentemente grande coletando dados relevantes sobre o problema. Grande
parte dos dados normalmente é necessário tanto para se obter o entendimento
preciso sobre o problema como também parafornecer a entrada necessária para
o modelo matemático que está sendo formulado na próxima fase do estudo.
Frequentemente, grande parte dos dados necessários não estará disponível
quando se inicia o estudo, seja porque as informações jamais foram guardadas,
seja pelo fato de o que foi registrado se encontrar desatualizado ou, então, na
forma incorreta. Consequentemente, às vezes, normalmente é necessário instalar
um sistema de informações gerenciais baseados em computadores para coletar
regularmente os dados necessários e no formato desejado. A equipe de PO, em
geral, precisa obter o apoio de diversos outros indivíduos-chave da organização
para conseguir todos os dados vitais. Mesmo com esse empenho, grande parte
dos dados pode ser relativamente “frágil”, isto é, estimativas grosseiras baseadas
apenas em conjeturas. Tipicamente, uma equipe de PO despenderá um tempo
considerável tentando melhorar a precisão dos dados para depois se adequar e
trabalhar com o que de melhor possível possa ser obtido.
Com a ampla difusão do emprego de banco de dados e o crescimento
explosivo m seus tamanhos em anos recentes, as equipes de PO agora
frequentemente acham que o maior problema relativo a dados não são aqueles
pouco disponíveis, mas sim o fato de haver dados particularmente relevantes e
identificar os padrões de interesse nesses dados torna-se uma tarefa assustadora.
Uma das ferramentas mais novas para as equipes de PO é uma técnica chamada
data mining que atende a essa tarefa. Os métodos de data mining pesquisam
grandes bancos de dados na busca de padrões de interesse que possam levar a
decisões úteis.
Um estudo de uma equipe de PO realizado para o Departamento de Polícia
de São Francisco, Califórnia – USA, resultou no desenvolvimento de um sistema
computadorizado para a escala e emprego de patrulheiros. O novo sistema gerou
uma economia anual de US$ 11 milhões e um aumento de US$ 3 milhões em
receitas por multas de trânsito e melhoria em 20% em tempos de respostas. Ao
avaliar os objetivos apropriados para esse estudo, três objetivos foram identificados:
1. Manter alto nível de segurança para o cidadão.
2. Manter o moral da tropa elevado.
3. Minimizar o custo de operações.
TÓPICO 3 | PROGRAMAÇÃO LINEAR INTEIRA
43
Para satisfazer o primeiro objetivo, o Departamento de Polícia e o governo
municipal estabeleceram conjuntamente um nível de proteção desejado. O
modelo matemático propôs então a necessidade de que esse nível de proteção
fosse atingido. De modo semelhante, o modelo impôs a exigência de equilibrar
a carga de trabalho entre os policiais de modo a trabalhar rumo ao segundo
objetivo. Finalmente, o terceiro objetivo foi incorporado adotando o objetivo de
longo prazo de minimizar o número de policiais necessários para atender esses
dois primeiros objetivos.
FONTE: HILLIER, Frederick S.; LIEBERMANN, Gerald J. Introdução à pesquisa operacional. São
Paulo: McGraw-Hill, 2006. p. 8.
44
RESUMO DO TÓPICO 3
Neste tópico, você viu que:
• Um PPLI é um problema de Programação Linear em que uma ou mais variáveis
pode ser apenas números inteiros.
• Resolve-se o PPL sem se preocupar com essa restrição.
• Caso as soluções encontradas não sejam inteiras, ramifica-se o PPL em dois
novos, atribuindo a cada um deles novas restrições.
• O processo de ramificação continua até que:
• Encontramos um PPL sem solução;
• Encontramos as soluções de todos os PPLs ramificados que obedeçam a
restrição quanto ao tipo de variável (inteira).
• Ao encontrar um ramo do PPL que apresente solução compatível (inteira),
define-se o valor de Z desse ramo do PPL como o Limite Inferior. Qualquer
ramo que apresente solução (inteira ou não) menor que o limite inferior é
imediatamente eliminado (poupando trabalho).
• As ramificações continuam nos PPLs que tenham soluções não inteiras onde o
valor de Z seja maior que o limite inferior.
• Se um PPL apresentar uma solução inteira maior que o Limite inferior, então
esse valor de Z passa a ser o novo Limite Inferior, e o PPL que fazia esse papel
anteriormente também é eliminado, assim como todos os ramos que tenham
solução menor que o novo limite inferior.
• Fazemos esse procedimento até que se eliminem todos os ramos sem solução
ou com solução menor que o Limite Inferior, e esse limite é a solução ótima do
PPL original.
45
AUTOATIVIDADE
1 Modele e resolva o problema de PLI:
Uma fábrica de cristais procura planejar a produção de dois tipos de
produtos de modo a maximizar seu lucro. Essa fábrica possui um forno para
a fabricação de cristais que pode operar no máximo 16 horas por dia. Nesse
forno, são produzidos dois produtos: um elefante de cristal, que precisa de
15 minutos de forno para ficar pronto, e uma borboleta de cristal, que precisa
de 25 minutos para ficar pronta. Cada elefante é vendido por R$ 12,00 e a
borboleta é vendida por R$ 15,00. Quanto de cada produto essa fábrica deve
produzir num dia de trabalho?
2 Segundo Loesch e Hein (1999, p. 146), encontre a solução ótima dos
problemas de PLI:
a) MaxZ = 7x1 + 5x2
Sujeito a
–2x1 + x2 ≤ 2
10x1 + 6x2 ≤ 60
6x1 + 10x2 ≤ 60
x1 ≤ 5
x1 , x2 ≥ 0
x1 e x2 inteiros.
b) MinZ = 4x1 + 3x2
Sujeito a
8x1 +3 x2 ≤ 24
5x1 + 6x2 ≤ 30
x1 + 2x2 ≤ 8
x1 , x2 ≥ 0
x1 e x2 inteiros.
46
47
UNIDADE 2
SOLUÇÃO ÓTIMA
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir desta unidade, você estará apto(a) a:
• escrever um PPL na sua forma normal;
• representar um PPL no tableau Simplex;
• encontrar a solução ótima de um PPL através do método Simplex e do
método das duas fases;
• encontrar o problema dual de um problema primal;
• representar um PPL no Microsoft Excel;
• encontrar a solução ótima de um PPL através do Solver;
• realizar a análise de pós-otimalidade de um PPL.
Esta unidade está dividida em dois tópicos. No final de cada um deles, você
encontrará atividades que reforçarão o seu aprendizado.
TÓPICO 1 – MÉTODO SIMPLEX
TÓPICO 2 – UTILIZAÇÃO DO COMPUTADOR
48
49
TÓPICO 1
MÉTODO SIMPLEX
UNIDADE 2
1 INTRODUÇÃO
O Simplex é um método de resolução de problemas de Programação
Linear que se baseia em operações matriciais na busca da solução ótima. Esse
método utiliza-se de uma solução conhecida no PPL para encontrar as principais
soluções compatíveis do problema, determinando a maior dentre elas, em
problemas de maximização, ou a menor dentre as soluções compatíveis, em
problemas de minimização.
A aplicação do método Simplex se dá através de um quadro específico
que contém as informações necessárias à resolução. Seguindo uma sequência de
procedimentos padrão, já definidos, a solução ótima e os valores das variáveis
de decisão são determinados facilmente. Mas, para isso, é necessário que o
modelo do PPL esteja escrito de uma maneira especial, chamada de Forma
Padrão do PPL.
2 FORMA PADRÃO DO PPL
A fim de trabalhar com os modelos de PLs utilizando o Método Simplex,
precisaremos reescrevê-los em sua forma padrão, obedecendo alguns critérios.
Essa forma padrão visa organizar os modelos de PL de uma mesma forma,
facilitando os cálculos nos quadros do Método Simplex, minimizando o tempo de
busca pela solução ótima do PPL.
Para escrever um modelo de PPL em sua forma padrão devemos:
1. fazer com que os coeficientes da mão direita sejam números não negativos;
2. restringir todas as variáveis de decisão não restritas;
3. substituir as restrições definidas por ≤ usando variáveis de folga;
4. substituir as restrições definidas por ≥ usando variáveis de excesso;
5. ajustar, se necessário, a Função Objetivo.
UNIDADE 2 | SOLUÇÃO ÓTIMA
50
A seguir, vamos detalhar como realizar cada um dos procedimentos
acima mencionados, utilizando um exemplo para ilustrar as alterações ocorridas
no PPL para reescrevê-lo na forma padrão.
2.1 NÃO NEGATIVIDADE DA MÃO DIREITA
Se alguma restrição tiver como coeficiente da mão direita um número
negativo, devemos multiplicar todos os termos da restrição por –1 para que os
sinais sejam opostos e, dessemodo, o coeficiente da mão direita fique positivo.
Exemplo:
Max Z = 2x1 – x2 + 4x3
Sujeito a
5x1 + 2x2 – 3x3 ≥ – 7 (Possui coeficiente da mão direita negativo)!
2x1 – 2x2 + x3 ≥ 8
com x1 e x3 não negativo
Na forma padrão, devemos alterar o sinal do coeficiente da mão direita
da primeira restrição, que é negativo. Basta trocar todos os sinais da restrição,
obtendo:
Max Z = 2x1 – x2 + 4x3
Sujeito a
–5x1 – 2x2 + 3x3 ≤ 7
2x1 – 2x2 + x3 ≥ 8
com x1 e x3 não negativos
2.2 VARIÁVEIS NÃO RESTRITAS
Alguns PPLs podem assumir variáveis que não necessitem da condição de
não negatividade (controles de caixa, por exemplo), mas na forma padrão essas
variáveis são substituídas pela diferença entre duas novas variáveis não negativas.
Perceba que o sinal ≤ da 1ª restrição é trocado pelo sinal ≥ devido à multiplicação
por –1. Se a restrição fosse definida pelo sinal de ≥ , este seria trocado por ≤. Nas restrições
em que o sinal é =, ele não é alterado.
UNI
TÓPICO 1 | MÉTODO SIMPLEX
51
2.3 VARIÁVEIS DE FOLGA
O método Simplex utiliza sistemas de equações lineares na sua resolução
(busca por Z*), nesse caso não podemos utilizar restrições definidas por
desigualdades. Assim, toda restrição desse tipo deve ser reescrita em uma
igualdade, obedecendo ao sinal da desigualdade.
Em restrições definidas pelo sinal ≤, devemos acrescentar uma variável
de folga xf no 1º membro da restrição, correspondente à diferença entre os
valores calculados na solução ótima e os máximos da restrição. Essas folgas serão
melhores analisadas no estudo sobre Análise de Pós-Otimalidade.
Max Z = 2x1 – x2 + 4x3
Sujeito a
–5x1 – 2x2 + 3x3 ≤ 7
2x1 – 2x2 + x3 ≥ 8
com x1 e x3 não negativos (Variável x2 não restrita)!
Veja que o PPL do exemplo não especifica que a variável x2 seja não
negativa, ou seja, que é irrestrita. Nesses casos, substituiremos a variável x2
nas restrições pela diferença dada por x2 = x’2 – x”2 , de modo que restringimos
x’2 e x”2 como variáveis não negativas.
E reescrevendo as restrições do modelo, temos:
Max Z = 2x1 – x2 + 4x3
Sujeito a
–5x1 – 2(x’2 – x”2)+ 3x3 ≤ 7
2x1 – 2(x’2 – x”2) + x3 ≥ 8
x1 , x’2 , x”2 , x3 ≥ 0
Fazendo algumas simplificações (inclusive na Função Objetivo),
obtemos o PPL:
Max Z = 2x1 – x”2 + x”2+ 4x3
Sujeito a
–5x1 – 2x’2 + x”2+ 3x3 ≤ 7
2x1 – 2x’2 + 2x”2) + x3 ≥ 8
x1 , x’2 , x”2 , x3 ≥ 0
UNIDADE 2 | SOLUÇÃO ÓTIMA
52
Exemplo:
Max Z = 2x1 – x’2 + x”2 + 4x3
Sujeito a
–5x1 – 2x’2 + 2x”2+ 3x3 ≤ 7 (Restrição definida por ≤)!
2x1 – 2x’2 + 2x”2+ x3 ≥ 8
x1 , x’2 , x”2 , x3 ≥ 0
A primeira restrição é definida pela desigualdade ≤, então acrescentamos
uma variável de folga xf nas restrições e na F.O., reescrevendo a primeira restrição
como uma igualdade.
Max Z = 2x1 – x’2 + x”2 + 4x3 + 0xf
Sujeito a
–5x1 – 2x’2 + 2x”2+ 3x3 + xf = 7
2x1 – 2x’2 + 2x”2+ x3 + 0xf ≥ 8
x1 , x’2 , x”2 , x3 , xf ≥ 0
2.4 VARIÁVEIS DE EXCESSO
Assim como as variáveis de folga, as variáveis de excesso xe são introduzidas
no PPL com o intuito de reescrever a restrição definida por ≥ em uma igualdade.
Exemplo:
Max Z = 2x1 – x’2 + x”2 + 4x3 + 0xf
Sujeito a
–5x1 – 2x’2 + 2x”2+ 3x3 + xf = 7
2x1 – 2x’2 + 2x”2+ x3 + 0xf ≥ 8 (Restrição definida por ≥)!
x1 , x’2 , x”2 , x3 , xf ≥ 0
A segunda restrição é definida pela desigualdade ≥, então acrescentamos
uma variável de excesso xe nas restrições e na F.O., reescrevendo a segunda restrição
como uma igualdade.
Max Z = 2x1 – x’2 + x”2 + 4x3 + 0xf + 0xe
Sujeito a
–5x1 – 2x’2 + 2x”2+ 3x3 + xf + 0xe= 7
2x1 – 2x’2 + 2x”2+ x3 + 0xf + xe= 8
x1 , x’2 , x”2 , x3 , xf , xe ≥ 0
Fazemos essas alterações apenas quando for necessário. Para facilitar
as resoluções, não usaremos as nomenclaturas xf e xe para as variáveis de folga
e excesso, apenas usaremos índices numéricos como as variáveis de decisão
originais do PPL.
TÓPICO 1 | MÉTODO SIMPLEX
53
Exemplo:
Max Z = 2x1 – x’2 + x”2 + 4x3 + 0x4 + 0x5
Sujeito a
–5x1 – 2x’2 + 2x”2+ 3x3 + x4 + 0x5= 7
2x1 – 2x’2 + 2x”2+ x3 + 0x4 + x5= 8
x1 , x’2 , x”2 , x3 , x4 , x5 ≥ 0
2.5 ALTERAÇÕES NA FUNÇÃO OBJETIVO
Ao longo do exemplo, necessitamos várias vezes fazer modificações na
F.O. Essas alterações se devem ao fato de termos alterado o sistema de restrições,
introduzindo novas variáveis, e essa inclusão ocasiona algumas modificações
no modelo do PPL.
As variáveis de folga e de excesso não causam modificações nas
restrições, nem na Função Objetivo, mas esta última deve ser reescrita levando
também em conta esse tipo de variável, utilizando zeros como coeficientes das
variáveis na F.O.
3 O ALGORÍTMO SIMPLEX
Vamos verificar o funcionamento do método simplex, passo a passo,
através de um exemplo, e depois veremos como utilizar esse método, de maneira
mais rápida e econômica, através do Tableau Simplex, um quadro que nos ajuda a
realizar os cálculos necessários.
Primeiramente, vamos nos basear no nosso exemplo 2, do planejamento
agrícola, já resolvido pelo método gráfico. Assim, poderemos comparar as
resoluções por ambos os métodos e verificar a eficácia de cada um.
No próximo tópico, usaremos métodos computacionais para resolver esse
mesmo problema de Programação Linear.
ESTUDOS FU
TUROS
UNIDADE 2 | SOLUÇÃO ÓTIMA
54
Para a implementação do Método Simplex, necessitamos do nosso PPL
original:
Max L = 300xT + 400xM Função Objetivo (maximizar o lucro)
Sujeito a
xT + xM ≤ 50 Restrição ao tamanho do terreno
3xT + 2xM ≤ 120 Restrição ao uso de mão de obra
xT ≤ 30 Restrição a demanda por trigo
xM ≤ 40 Restrição a demanda por milho
xT , xM ≥ 0 Restrição à não negatividade
E agora, reescrevemos o PPL na forma padrão, usando os procedimentos
descritos anteriormente.
Para lembrar:
1. fazer com que os coeficientes da mão direita sejam números não negativos;
2. restringir todas as variáveis de decisão não restritas;
3. substituir as restrições definidas por ≤ usando variáveis de folga;
4. substituir as restrições definidas por ≥ usando variáveis de excesso;
5. ajustar, se necessário, a Função Objetivo.
Então, vamos ao trabalho!
1. Nosso PPL original não tem coeficientes da mão direita negativos, então
não há necessidade de alterações nesse ponto.
2. Estamos tratando de duas variáveis de decisão xT e xM, que são restritas
quanto à não negatividade e, portanto, também não há necessidade de alterações
nesse ponto. Mas, para nossa comodidade faremos uma pequena diferenciação
na nomenclatura das variáveis, chamando-as de x1 e x2, respectivamente. Já que
vamos precisar de variáveis de folga ou excesso, é natural que usemos números
para não confundirmos todas as letras.
3. As restrições do PPL Original são desigualdades do tipo ≤ , ou seja,
devemos introduzir em cada restrição desse tipo, uma variável de folga para
escrevê-la numa igualdade.
Assim, ficam reescritas as restrições:
Max L = 300x1 + 400x2 Alterando xT e xM por x1 e x2
Sujeito a
x1 + x2 + x3 = 50 Introduzindo a variável de folga x3
3x1 + 2x2 + x4 = 120 Introduzindo a variável de folga x4
x1 + x5 = 30 Introduzindo a variável de folga x5
x2 + x6 = 40 Introduzindo a variável de folga x6
xi ≥ 0, com i = 1,...,6 Não negatividade de todas as variáveis
TÓPICO 1 | MÉTODO SIMPLEX
55
4. Não há restrições no PPL Original escritas por desigualdades do tipo
≥, ou seja, não há a necessidade de introduzir em cada restrição desse tipo uma
variável de excesso para escrevê-la numa igualdade.
5. Mas precisamos ajustar nossa Função Objetivo, visto que foram
introduzidas as variáveis de folga no PPL. Assim, temos o modelo na sua forma
padrão escrito por:
Max L = 300x1 + 400x2 + 0x3 + 0x4 + 0x5 + 0x6 Nova Função Objetivo
Sujeito a
x1 + x2 + x3 = 50 Introduzindo a variável de folga x3
3x1 + 2x2 + x4 = 120 Introduzindo a variável de folga x4
x1 + x5 = 30 Introduzindo a variável de folga x5
x1 + x6 = 40 Introduzindo a variável de folga x6
xi ≥ 0, com i = 1,...,6 Não negatividade de todas as variáveis
Se escrevermos o PPL usando uma forma padrão organizada teremos a
seguinte configuração:
Max L = 300x1+ 400x2 + 0x3 + 0x4 + 0x5 + 0x6
Sujeito a
Agora, fazemos x1 = 0 e x2 = 0, chamando essas variáveis de Variáveis Não
Básicas (VNB), e substituímos esses valores no sistema de restrições, assim:
Em Álgebra Linear, você estudou a representação de sistemas de equações
lineares usando a forma matricial. Podemos, então, reescrever nosso sistema de
restrições acima usando a operação de multiplicação de matrizes como segue:
UNIDADE 2 | SOLUÇÃO ÓTIMA
56
Essa forma nos mostra o porquê de as variáveis x3, x4, x5 e x6 serem
chamadas, nesse momento, de Variáveis Básicas (VB). Seus coeficientes formam
uma matriz Identidade, e o sistema formado representa uma base canônica
para um subespaço vetorial de R4. Mas deixemos esses detalhes de lado, e nos
concentremos no PPL.
A vantagem dessa representação consiste em determinar uma solução
básica inicial para o PPL. Assim, com
Variáveis não básicas
Variáveis básicas
E, desse modo, temos a solução inicial que pode ser escrita por x =
(0,0,50,120,30,40). E o valor da função objetivo para essa solução é dado por
Que nos dá um lucro nulo.
Observando os coeficientes da Função Objetivo para x1 e x2 (coeficientes
+300 e +400), vemos que, mudando os valores de x1 ou x2 para um número
positivo diferente de zero, o valor de L na F.O. também será positivo. Como nosso
objetivo é maximizar o valor de L, e qualquer valor positivo é maior do que zero,
verificamos que a presente solução x = (0,0,50,120,30,40) não é a solução ótima
do PPL, já que L pode se aumentado se aumentarmos o valor de x1 ou x2. Isso
significa fazer com que x1 ou x2 se torne uma VB (entre na base). Mas, para isso,
devemos fazer uma troca de variáveis.
Devemos escolher que variável entra na base (deixando de ter valor zero)
e que variável sai na base (assumindo o valor zero).
A escolha da variável que entra na base é simples, basta verificar que
VNB possui maior coeficiente na F.O. Consequentemente, haverá uma maior
contribuição para o valor de L se usarmos a variável com maior coeficiente.
TÓPICO 1 | MÉTODO SIMPLEX
57
Em nosso exemplo, x2 tem maior coeficiente (+400) e por isso deve entrar
na base.
Mas para a entrada de x2 na base, uma das variáveis da base deve sair.
Qual delas?
Ao aumentarmos o valor da variável x2, as variáveis x3, x4 e x6 devem ter
seus valores reduzidos para que se mantenham as igualdades das restrições, já
que x1 = 0. Assim, devemos procurar qual a VB que primeiro se anula com o
aumento de x2.
Temos que:
x3 = 0 quando x2 = 50, pois x1 +x2 +x3 = 0 + 50 + 0 = 50
x4 = 0 quando x2 = 60, pois 3x1 + 2x2 + x4 = 3 • 0 + 2 • 60 + 0 = 120
x5 não depende de x2 e com isso não se altera
x6 = 0 quando x2 = 40, pois 2x2 + x6 = 40 + 0 = 40
Logo, x6 deve sair da base, já que o aumento de x2 fará com que x6 diminua,
podendo admitir um valor negativo, o que não pode ocorrer (restrição à não
negatividade).
Fazendo a troca das variáveis da base, tirando x6 (que passa a valer zero)
e colocando x2, devemos reescrever o PPL em função das variáveis não básicas (x1
e x6) usando a relação x2 = 40 – x6 para as substituições, mantendo a restrição x2
+ x6= 40.
Assim fica o PPL: E simplificando as expressões:
Max L = 300x1 + 400(40 – x6) Max L = 300x1 – 400x6 + 16000
Sujeito a Sujeito a
E analisando a função objetivo, percebemos que (para x1 = x6 = 0) Z =
16000, valor maior do que aquele obtido pela solução básica inicial (Z = 0). Mas
podemos observar que o coeficiente da variável x1 é um número positivo e com
UNIDADE 2 | SOLUÇÃO ÓTIMA
58
isso qualquer valor maior que zero para essa variável faz com que o valor de Z
seja maior. Ou seja, x1 deve entrar na base, forçando uma nova troca de variáveis
da base.
Verificamos qual variável se anula primeiro quando aumentamos o valor
da variável x1 nas igualdades das restrições, com x6 = 0:
A variável x2 não depende de x1 e por isso não se altera.
Se aumentarmos o valor da variável x1, a primeira variável que se anula
com esse aumento é x3, logo, é essa variável que deve sair da base.
Trocando as variáveis, devemos reescrever o PPL em função das variáveis
não básicas (x3 e x6) usando a expressão x1 = 10 – x3 + x6 para as substituições,
mantendo a primeira restrição:
E simplificando as expressões:
Max L = 300 . (10 – x3 + x6) – 400x6 + 16000
Sujeito a
x1 + x3 – x6 = 10
3 . (10 – x3 + x6) + x4 – 2x6 = 40
10 – x3 + x6 + x5 = 30
x2 + x6 = 40
xi ≥ 0, com i = 1,...,6
Aplicando as propriedades distributivas e simplificando as expressões,
temos o PPL:
Max L = –300x3 – 100x6 + 19000
Sujeito a
x1 + x3 – x6 = 10
x3 + x4 – x6 = 10
–x3 + x6 + x5 = 20
x2 + x6 = 40
x1 ≥ 0, com i = 1,...,6
Agora Z está escrito em função das variáveis não básicas x3 e x6, que
possuem coeficientes negativos. A entrada de qualquer uma das variáveis na base
x1 + x3 – x6 = 10 ⇒ x1 + x3 – 0 = 10 ⇒ x3 = 10 – x1 , ou seja, x3 = 0 quando x1 = 10
3x1 + x4 – 2x6 = 40 ⇒ 3x1 + x4 – 0 = 40 ⇒ x4 = 40 – 3x1 , ou seja, x4 = 0 quando x1 =
x1 + x5 = 30 ⇒ x5 = 30 – x1 , ou seja, x5 = 0 quando x1 = 30
40
3 .
TÓPICO 1 | MÉTODO SIMPLEX
59
trará um valor negativo para a função objetivo e, consequentemente, o valor de Z
diminuirá. Assim, estamos diante da solução ótima do PPL.
Os valores da solução são calculados fazendo x3 = 0 e x6 = 0, e assim:
Que, se substituídos na FO, trazem Z = – 300 . 0 – 100 . 0 + 19000 = 19000.
O mesmo valor de Z pode ser verificado na função objetivo original do
PPL onde tínhamos
Z = 300x1 + 400x2 ⇒ Z = 300 . 10 + 400 . 40 ⇒ Z = 3000 + 16000 ⇒ Z = 19000.
A busca pela solução ótima de um PPL através do método simplex se dá
por uma sequência de procedimentos a serem seguidos. Esses procedimentos
podem ser resumidos conforme a seguir:
1º Solução básica inicial: inicia-se escrevendo o PPL na sua forma padrão,
adotando os coeficientes da mão direita como valores para as variáveis artificiais,
usando-as como uma solução básica inicial.
2º Teste de otimalidade: verificam-se os coeficientes das variáveis não
básicas na função objetivo:
• se todos os coeficientes forem positivos, então a presente solução é ótima;
• se há coeficientes negativos, escolhe-se o coeficiente negativo de maior valor
absoluto para a variável que deve entrar na base.
3º Troca da base: escrevem-se as variáveis básicas do PPL em função das
variáveis não básicas e verifica-se qual VB anula-se primeiro ao aumentar o valor
da variável escolhida para entrar na base.
4º Reformulação do PPL: escreve-se a função objetivo e as restrições do
PPL em função das novas VNB, simplificando-se o quanto for possível.
5º Solução do PPL: adotando-se 0 como valor das VNB, calcula-se o valor
das VB e da função objetivo.
6º Repete-se o procedimento a partir do 2º passo.
UNIDADE 2 | SOLUÇÃO ÓTIMA
60
4 TABLEAU SIMPLEX
O tableau simplex nada mais é do que um quadro resumo do método
simplex. Nele são feitos todos os cálculos efetuados pelo método, mas de uma
maneira resumida.
A estrutura do tableau simplex é baseada na tabela a seguir:
TABELA 4 - ESTRUTURA DO TABLEAU SIMPLEX
VARIÁVEIS
BÁSICAS X1 X2 X3 ... Xn b CÁLCULOS
xB1
xB2
xB3
...
xBm
FUNÇÃO
OBJETIVO
FONTE: Os autores
A primeira linha do quadro contém os nomes de todas as variáveis do PPL.
A última linha contém os coeficientes da Função Objetivo.
As demais linhas contêm os valores das restrições do PPL.
Na primeira coluna indicamos quais são as variáveis básicas.
Na coluna b, indicamos os coeficientes da mão direita, ou seja, os limites
das restrições. É essa coluna que nos indicará quais os valores das variáveis para
determinar a solução ótima.
A última coluna é reservada para efetuar os cálculos necessários para
decidir que variável deixa a base.
A célula destacada em cinza nos indicará qual será o valor da Função
Objetivo quando encontrarmos a solução ótima.
Novamente, vamos usar nosso exemplo do planejamento agrícola para
explicar o funcionamento desse quadro e as alterações realizadas na busca da
soluçãoótima.
TÓPICO 1 | MÉTODO SIMPLEX
61
Primeiro, vamos relembrar (se é que já não o decoramos) o PPL do
exemplo, já na sua forma padrão.
Max L = 300x1 + 400x2 + 0x3 + 0x4 + 0x5 + 0x6
Sujeito a
Lembrando um pouquinho da disciplina de Álgebra Linear, podemos
representar o sistema de equações das restrições na forma matricial a seguir:
Que pode, ainda, ser representado pela matriz ampliada associada ao
sistema:
É essa matriz ampliada que preencherá nossas linhas no tableau simplex.
Assim:
TABELA 5 - TABLEAU SIMPLEX
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 b CÁLCULOS
x3 1 1 1 0 0 0 50
x4 3 2 0 1 0 0 120
x5 1 0 0 0 1 0 30
UNIDADE 2 | SOLUÇÃO ÓTIMA
62
x6 0 1 0 0 0 1 40
Max L -300 -400 0 0 0 0 0
FONTE: Os autores
Já podemos perceber que a coluna b traz os valores das variáveis básicas
como solução básica inicial do PPL.
Percebemos também que a linha da Função Objetivo recebeu os valores
de Max L, que indica o objetivo do PPL, e os coeficientes -300 e -400. Isso acontece
porque, na forma padrão para o tableau simplex, escrevemos a função objetivo
colocando todos os coeficientes à esquerda da igualdade. Assim, Max L = 300x1 +
400x1 fica Max L – 300x1 + 400x1 = 0.
Sem nos preocuparmos com detalhes matemáticos, essas alterações
nos sinais são necessárias para combinar com os testes de otimalidade que são
realizados no método simplex formal, como visto anteriormente. Esses coeficientes
servem para duas coisas:
• para verificar se a solução ótima foi encontrada. Isso acontece quando não
houver mais nenhum coeficiente negativo nessa linha;
• e, caso haja coeficientes negativos, para definir qual variável entra na base.
Nesse caso, devemos escolher o coeficiente “mais negativo” para definir qual
a variável deve entrar na base.
No nosso exemplo, temos dois coeficientes negativos na linha da F.O.,
então, ainda não temos a solução ótima. Devemos decidir que variável entra na
base, como -400 é o coeficiente mais negativo da linha, definimos a variável x2
para entrar na base.
A coluna que contém a variável x2 agora será tratada de forma especial, e
por isso chamaremos a coluna em que esse número aparece de coluna de trabalho,
como faz Bronson (1985, p. 29). É com a ajuda dessa coluna que definimos qual
variável sai da base. Para isso, devemos fazer uma simples divisão entre os
coeficientes da coluna b, por seus respectivos coeficientes da coluna de trabalho.
Se houver mais de um coeficiente com o mesmo valor, gerando um empate
para decidir qual variável entra na base, pode-se escolher qualquer uma dessas variáveis.
IMPORTANT
E
TÓPICO 1 | MÉTODO SIMPLEX
63
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 b CÁLCULOS
x3 1 1 1 0 0 0 50 50/1 = 50
x4 3 2 0 1 0 0 120 120/2 = 60
x5 1 0 0 0 1 0 30 30/0 = ?
x6 0 1 0 0 0 1 40 40/1 = 40
Max L -300 -400 0 0 0 0 0 x2 entra na base e x6 sai da base
Para continuar a busca pela solução ótima, devemos reescrever o quadro a
fim de converter o pivô em 1 e, todos os demais coeficientes da coluna de trabalho
em zeros. Para isso, utilizaremos as operações sobre linhas de matriz (método
de eliminação de Gauss), como visto em Álgebra Linear. Para simplificar, vamos
escrever o sistema associado ao quadro simplex:
Se nenhum coeficiente da coluna de trabalho for positivo, então o PPL não
terá solução!
IMPORTANT
E
TABELA 6 - TABLEAU SIMPLEX – TROCA DE VARIÁVEIS ( x
2
e x
6
)
FONTE: Os autores
Assim, definimos a variável x6 para deixar a base, pois o resultado da
divisão da coluna b (40) pelo coeficiente da coluna de trabalho (1) é o menor
dentre os resultados, visto que não podemos dividir por zero (como ocorreu na 4ª
linha do quadro). O coeficiente, 1 situado na intersecção da linha x6 com a coluna
de trabalho é chamado de pivô (destacado em cinza mais escuro).
Vamos usar o elemento a42 como pivô para eliminar todos os elementos da
segunda coluna da matriz:
UNIDADE 2 | SOLUÇÃO ÓTIMA
64
Para eliminar o elemento a12, vamos fazer L1 = L1 – L4.
Para eliminar o elemento a22, vamos fazer L2 = L2 – 2L4.
Para eliminar o elemento a52, vamos fazer L5 = L5 + 400L4.
Assim,
Agora, vamos reescrever nossa tabela simplex:
TABELA 7 - TABELA SIMPLEX (EXEMPLO)
Se você tiver dificuldades em compreender o que foi feito na eliminação de
Gauss, reveja seu caderno de Álgebra Linear.
DICAS
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 b CÁLCULOS
x3 1 0 1 0 0 -1 10
x4 3 0 0 1 0 -2 40
x5 1 0 0 0 1 0 30
x2 0 1 0 0 0 1 40
Max L -300 0 0 0 0 400 16000
FONTE: Os autores
TÓPICO 1 | MÉTODO SIMPLEX
65
TABELA 8 - TABELA SIMPLEX (EXEMPLO)
Perceba que a variável x2 assumiu o lugar da variável x6 na coluna das
variáveis básicas. Também não é difícil notar que as colunas de x 3, x4, x5 e x2, nesta
ordem, formam uma matriz identidade, ou seja, uma base canônica.
Então, devemos recomeçar o trabalho. Nesse momento, nossa solução
é dada por x3 = 10, x4 = 40, x5 = 30, x2 = 40 e o valor da função objetivo é 16.000.
Ainda não estamos diante da solução ótima, visto que ainda há coeficientes
negativos na linha da função objetivo (-300). Assim, devemos fazer com que a
variável x1 entre na base e decidir qual variável deve deixar a base. Para isso,
devemos dividir os coeficientes da coluna b pela nova coluna de trabalho (x1).
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 b CÁLCULOS
x3 1 0 1 0 0 -1 10 10/1 = 10
x4 3 0 0 1 0 -2 40 40/3 = 13,33...
x5 1 0 0 0 1 0 30 30/1 = 30
x2 0 1 0 0 0 1 40 40/0 = ?
Max L -300 0 0 0 0 400 16000 x1 entra na base e x3 sai da base
FONTE: Os autores
Agora, usaremos o coeficiente 1 da linha x3 e coluna x 1 como pivô para
zerar todos os demais elementos da coluna de trabalho. Vamos escrever a matriz
que representa o quadro simplex. Futuramente, deixaremos esse passo de lado,
mas, por enquanto, é mais fácil para fazer o escalonamento com a matriz do que
com a tabela simplex.
Vamos usar o elemento a11 como pivô para eliminar todos os elementos da
primeira coluna da matriz:
Para eliminar o elemento a21, vamos fazer L2 = L2 – 3L1.
Para eliminar o elemento a31, vamos fazer L3 = L3 – L1.
UNIDADE 2 | SOLUÇÃO ÓTIMA
66
Para eliminar o elemento a51, vamos fazer L3 = L3 + 300L1.
Assim,
E, de volta à tabela simplex, substituindo a variável x1 no lugar da variável
x3 na coluna das variáveis básicas, temos:
TABELA 9 - TABELA SIMPLEX (EXEMPLO)
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 b CÁLCULOS
x1 1 0 1 0 0 -1 10
x4 0 0 -3 1 0 1 10
x5 0 1 0 0 0 1 20
x2 0 1 0 0 0 1 40
Max L 0 0 300 0 0 100 19000
FONTE: Os autores
Novamente, vamos verificar os coeficientes da última linha do quadro
(da F.O.). Percebemos que não há coeficientes negativos na linha e, portanto,
estamos diante da solução ótima do PPL. Essa solução é dada pelos valores
das variáveis básicas especificados na coluna b. Logo, por x1 = 10, x4 = 10, x5
= 20, x2 = 40 e o valor da função objetivo é 19.000, que pode ser verificado
através da função objetivo original do PPL, Max L = 300 • 10 + 400 • 40 + 0 • 0
+ 0 • 10 + 0 • 20 + 0 • 0 = 3000 + 16000 = 19000
TÓPICO 1 | MÉTODO SIMPLEX
67
Para que possamos ver a evolução do método simplex no tableau, vamos
organizar a resolução colocando as tabelas utilizadas em sequência:
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 b CÁLCULOS
x3 1 1 1 0 0 0 50 50/1 = 50
x4 3 2 0 1 0 0 120 120/2 = 60
x5 1 0 0 0 1 0 30 30/0 = ?
x6 0 1 0 0 0 1 40 40/1 = 40
Max L -300 -400 0 0 0 0 0
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 b CÁLCULOS
x3 1 0 1 0 0 -1 10 10/1 = 10
x4 3 0 0 1 0 -2 40 40/3 = 13,333...
x5 1 0 0 0 1 0 30 30/1 = 30
x2 0 1 0 0 0 1 40 40/0 = ?
Max L -300 0 0 0 0 400 16000
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 b CÁLCULOS
x1 1 0 1 0 0 -1 10
x4 0 0 -3 1 0 1 10
x5 0 1 0 0 0 1 20
x2 0 1 0 0 0 1 40
Max L 0 0 300 0 0 100 19000
4.1 DEGENERESCÊNCIA
No método simplex, pode ocorrer de estarmos trabalhando com um PPL
em que a troca de variáveis da base não altera o valor da função objetivo, ou
então, a troca de variável gera um ciclo em que uma variável que deixou a base
volta a entrar na base, para depois sair, e entrar novamente,e assim por diante,
repetindo a mesma solução periodicamente.
Conforme Loesch e Hein (1999, p. 84), o tratamento da degenerescência
pode ser previsto no método simplex. O método da perturbação de Charnes é uma
UNIDADE 2 | SOLUÇÃO ÓTIMA
68
das técnicas que previnem contra a formação do possível laço infinito que pode ser
causado pela situação de degenerescência. No entanto, dado que, em problemas
reais, essa situação praticamente não ocorre, ou pelo menos, não há evidências ou
registros de que tenham ocorrido, não apresentaremos essas situações.
4.2 MÉTODO DAS DUAS FASES
Quando o sistema de restrições do PPL apresenta todas as restrições do tipo
≤, não há problemas em resolvê-lo pelo método simplex, mas quando existe uma
ou mais restrições do tipo ≥ temos mais uma alteração a fazer. O problema ocorre
porque, na forma padrão, uma restrição do tipo ≥ recebe uma variável de excesso
cujo coeficiente é -1, o que não nos dá uma solução básica inicial compatível. Pode-
se resolver esse problema utilizando-se o método das duas fases.
Esse método consiste em introduzir uma variável de excesso (com
coeficiente -1) para as restrições do tipo ≥ e ainda uma variável artificial (com
coeficiente +1) nessa mesma restrição. Assim, sempre teremos uma solução básica
inicial, desde que usemos as variáveis artificiais nas restrições.
Para trabalhar com o método das duas fases, devemos imaginar uma
nova função objetivo formada pela soma das variáveis artificiais que deverá ser
minimizada. Devemos fazer o processo do método simplex com essa nova função
Min W até que se tenha o valor 0 como solução.
Vamos acompanhar o exemplo para melhor entender o método das duas
fases:
MaxZ = x1 + x2
Sujeito à
5x1 + 2x2 ≤ 2
2x1 – x2 ≥ 0,2
3x1 + 5x2 ≥ 1,5
x1 , x2 ≥ 0
Vamos colocá-lo em sua forma padrão, adicionando uma variável de folga
na primeira restrição e uma variável de excesso e uma variável artificial em cada
restrição do tipo ≥. Assim,
MaxZ = x1 + x2
TÓPICO 1 | MÉTODO SIMPLEX
69
Sujeito a
5x1 + 2x2 +x3 = 2
2x1 – x2 –x4 +xa1 = 0,2
3x1 + 5x2 – x5 + xa2 = 1,5
x1 , x2 , x3 , x4 , x5 , xa2 , xa2 ≥ 0
Agora vamos escrever nossa função objetivo artificial MinW = xa1 + xa2.
Mas essa função deve ser escrita em função das variáveis não básicas:
xa1 = 0,2 – 2x1 + x2 + x4
xa2 = 1,5 – 3x1 – 5x2 + x5
W = 1,7 – 5x1 – 4x2 + x4 + x5
Assim, nossa função objetivo artificial na forma padrão simplex fica
MinW = 5x1 + 4x2 – x4 – x5 = 1,7.
Vamos escrever o nosso PPL no tableau simplex:
TABELA 10 - TABLEAU SIMPLEX
Como queremos minimizar o valor de W, devemos verificar se há coeficientes
positivos na linha da função objetivo W. Lembre-se que, quando a função é de
maximização, procuramos o coeficiente mais negativo. Então, nesse caso, devemos
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 Xa1 Xa2 b CÁLCULOS
x3 5 2 1 0 0 0 0 2
xa1 2 -1 0 -1 0 1 0 0,2
xa2 3 5 0 0 -1 0 1 1,5
Max Z -1 -1 0 0 0 0 0 0
Min W 5 4 0 -1 -1 0 0 1,7
FONTE: Os autores
Veja que colocamos uma nova linha no quadro referente à função objetivo
auxiliar. Na primeira fase do método, devemos fazer com que o valor de W (atualmente -1,7)
chegue a zero, usando as operações sobre a tabela.
IMPORTANT
E
UNIDADE 2 | SOLUÇÃO ÓTIMA
70
procurar o coeficiente mais positivo, ou seja, 5, fazendo com que a coluna x1 seja
nossa coluna de trabalho. Vamos à coluna de cálculos:
TABELA 11 - TABLEAU SIMPLEX
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 Xa1 Xa2 b CÁLCULOS
x3 5 2 1 0 0 0 0 2 =2/5 = 0,4
xa1 2 -1 0 -1 0 1 0 0,2 0,2/2 = 0,1
xa2 3 5 0 0 -1 0 1 1,5 1,5/3 = 0,5
Max Z -1 -1 0 0 0 0 0 0 x1 entra na base e xa1
sai da baseMin W 5 4 0 -1 -1 0 0 1,7
FONTE: Os autores
Devemos dividir a linha xa1 por 2, para que o pivô seja 1, e zerar todos os
demais elementos da coluna de trabalho. Escrevendo a matriz associada, aplicamos
a eliminação de Gauss. Seu trabalho, por enquanto, é conferir os cálculos.
TABELA 12 - TABLEAU SIMPLEX
Variáveis
Básicas x1 x2 x3 x4 x5 xa1 xa2 b Cálculos
x3 0 4,5 1 2,5 0 -2,5 0 1,5
x1 1 -0,5 0 -0,5 0 0,5 0 0,1
xa2 0 6,5 0 1,5 -1 -1,5 1 1,2
Max Z 0 -1,5 0 -0,5 0 0,5 0 0,1
Min W 0 6,5 0 1,5 -1 -2,5 0 1,2
FONTE: Os autores
Perceba que trocamos a variável xa1 por x1 na coluna das variáveis básicas,
e que os valores de Z e W mudaram: Z aumentou e W diminuiu. Mas ainda há
TÓPICO 1 | MÉTODO SIMPLEX
71
coeficientes positivos na linha de Min W. Então, não temos a solução ótima da
primeira fase ainda.
O coeficiente 6,5 da coluna x2 é o mais positivo e, por isso, x2 deve entrar
na base. Quem sai?
TABELA 13 - TABLEAU SIMPLEX
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 Xa1 Xa2 b CÁLCULOS
x3 0 4,5 1 2,5 0 -2,5 0 1,5 1,5/4,5 = 0,333...
x1 1 -0,5 0 -0,5 0 0,5 0 0,1
xa2 0 6,5 0 1,5 -1 -1,5 1 1,2 1,2/6,5 = 0,185
Max Z 0 -1,5 0 -0,5 0 0,5 0 0,1 x2 entre na base
e xa2 sai da baseMin W 0 6,5 0 1,5 -1 -2,5 0 1,2
FONTE: Os autores
Assim, dividimos a linha de xa2 por 6,5 para deixar o pivô 1, e zeramos os
demais elementos da coluna de trabalho x2. Assim, fica a nova tabela simplex:
TABELA 14 - TABLEAU SIMPLEX
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 Xa1 Xa2 b CÁLCULOS
x3 0 0 1 1,462 0,692 -1,462 -0,692 0,669
x1 1 0 0 -0,385 -0,077 0,385 0,077 0,192
x2 0 1 0 0,231 -0,154 -0,231 0,154 0,185
Max Z 0 0 0 -0,154 -0,231 0,154 0,231 0,377
Min W 0 0 0 0 0 -1 -1 0
FONTE: Os autores
Para evitar números com muitas casas decimais, fizemos um arredondamento
para apenas três casas.
UNI
UNIDADE 2 | SOLUÇÃO ÓTIMA
72
Nessa nova tabela, as variáveis artificiais não estão mais na base e, por
isso, seus valores são zero. Assim, W = 0 e chegamos ao final da 1ª fase.
Para a segunda fase, eliminamos a linha Min W e continuamos com o
método simplex até que tenhamos a solução ótima, ou seja, até que a linha Max Z
não tenha mais coeficientes negativos.
Veja que o coeficiente mais negativo da linha Max Z é -0,231, e assim, a
coluna x 5 será nossa coluna de trabalho. De novo, aos cálculos!
TABELA 15 - TABLEAU SIMPLEX
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 b CÁLCULOS
x3 0 0 1 1,462 0,692 0,669 0,669/0,692 = 0,967
x1 1 0 0 -0,385 -0,077 0,192
x2 0 1 0 0,231 -0,154 0,185
Max Z 0 0 0 -0,154 -0,231 0,377 x5 entra, x 3 sai
FONTE: Os autores
Usando a coluna de trabalho x5 chegamos à tabela:
TABELA 16 - TABLEAU SIMPLEX
VARIÁVEIS
BÁSICAS
X1 X2 X3 X4 X5 b CÁLCULOS
x5 0 0 1,445 2,113 1 0,967
x1 1 0 0,111 -0,222 0 0,266
x2 0 1 0,223 0,556 0 0,334
Max Z 0 0 0,334 0,334 0 0,6
FONTE: Os autores
E como não há mais coeficientes negativos na linha Max Z, esta é a solução
ótima do PPL. Assim: x1 = 0,266 , x2 = 0,334 , x5 = 0,967 e Z* = 0,6.
Sempre que, durante a primeira fase do método, não encontrarmos
coeficientes positivos na linha Min W, mas o valor de W ainda não for zero, estaremos
diante de um PPL sem solução.
IMPORTANT
E
TÓPICO 1 | MÉTODO SIMPLEX
73
5 DUALIDADE
Na Teoria da Dualidade, vamos estudar o algoritmo primal-dual e
verificar como podemos usar algumas características especiais dos modelos de
Programação Linear para buscar maneiras mais fáceis de encontrar a solução
ótima sob certas condições.
5.1 ALGORITMO PRIMAL-DUAL
Os problemas de PL podem ser escritos em forma de matrizes como:
MaxZ = cT . x
Sujeito à
A . x ≤ b
x ≥ 0
Assim, c é uma matriz de ordem 1xn, cujos elementos são os coeficientes
da função objetivo, A é uma matriz mxn, com os coeficientes das restrições, e b é
uma matriz mx1, com os coeficientes da mão direita das restrições.
O que buscamos é uma matriz x que contenha a solução ótima do PPL.
A esse problema daremos o nome de primal (primitivo).
Acontece que “todo problema de programação linear nas variáveis x1, x2,
..., xn tem associado a ele um outro problema de programação linear nas variáveis
y1, y 2, ..., ym (onde m é o número de restrições do problema original) conhecido
como o seu dual. O problema original, conhecido como primal determina
completamente o seu dual” (BRONSON, 1985, p. 40).
Vamos então determinar qual é o problema dual do nosso PPL original:
Se o primal é um problema de maximização,então, o dual será de
minimização, e vice-versa.
Os coeficientes da mão direita do primal (matriz b) são os coeficientes da
função objetivo do dual (bT), e vice-versa.
A matriz transposta dos coeficientes das restrições do primal será a matriz
dos coeficientes das restrições do dual. E as variáveis do problema dual serão uma
reformulação das restrições do problema primal.
Assim, fica o problema dual:
UNIDADE 2 | SOLUÇÃO ÓTIMA
74
MinZ = bT . y
Sujeito à
AT . y ≥ c
y ≥ 0
Tomemos um exemplo para compreender melhor:
Seja o Problema de Programação Linear dado por
MaxZ = 3x1 + 5x2
Sujeito a
x1 ≤ 4
2x2 ≤ 12
3x1 + 2x2 ≤ 18
x1 , x2 ≥ 0
Chamando nosso PPL de problema primal, representamos as restrições do
primal na forma matricial por
E escrevemos o problema dual usando essas matrizes. A matriz b nos
dá os coeficientes da função objetivo do dual. E identificando as linhas de A por
y1, y2 e y3 como as variáveis do dual, escrevemos ATy para as suas restrições. Os
coeficientes da mão direita do dual serão os coeficientes da função objetivo do
primal. Assim, temos o dual
Min Z = 4y1 + 12y2 + 18y3
Sujeito à
1y1 + 3y3 ≥ 3
2y2 + 2y3 ≥ 5
y1 , y2 , y3 ≥ 0
x1 ≤ 4
2x2 ≤ 12 ⇒
3x1 + 2x2 ≤ 18
1 0
0 2
3 2
4
12
18
x1
x2
⇒ Ax ≤ b{ [ [[] ]] ≤•
TÓPICO 1 | MÉTODO SIMPLEX
75
Agora, acompanhe com muita atenção o exemplo a seguir, pois nele há
diversas situações que devem ser consideradas na teoria da dualidade:
Seja o PPL
MinZ = –5x1 + 2x2 + x3
Sujeito a
3x1 + 7x2 ≤ 23
5x1 – x3 ≥ 8
x1 + x2 + x3 = 15
x1 , x2 , x3 ≥ 0
Que organizamos alterando a função objetivo para
Max Z = +5x1 – 2x2 – x3
E alterando as restrições conforme segue:
3x1 + 7x2 ≤ 23
–5x1 – x3 ≤ –8
x1 + x2 + x3 ≥ 15
x1 + x2 + x3 ≤ 15
x1 , x2 , x3 ≥ 0
Veja que a segunda restrição teve seu sinal alterado de ≥ para ≤ , alterando
os sinais dos coeficientes das variáveis e da mão direita (multiplicamos a restrição
por -1), e note, também, que a terceira restrição x1 + x2 + x3 = 15 foi separada em duas
restrições correspondentes. Vamos agora multiplicar a nova terceira restrição por
-1 para alterar o sinal da desigualdade, escrevendo então nosso PPL primal:
Note que os sinais das restrições são alterados de ≤ para ≥. Isso ocorre devido
ao fato de que as variáveis x
1
e x
2
são maiores que 0. Usamos os mesmos sinais da
restrição ao valor das variáveis do primal para as restrições do dual.
IMPORTANT
E
UNIDADE 2 | SOLUÇÃO ÓTIMA
76
Max Z = 5x1 – 2x2 – x3
Sujeito a
E vamos escrever o PPL dual, usando as variáveis y1, y2, y3 e y4, associadas
as quatro restrições do primal. Os coeficientes da mão direita serão os coeficientes
da função objetivo, que agora será de minimização, ou seja, MinZ = 23y1 – 8y2 –
15y3 + 15y4.
O conjunto de restrições do primal (fazendo a matriz transposta) será o
conjunto de restrições do dual, com os coeficientes da função objetivo no lugar
dos coeficientes da mão direita. Assim,
3y1 –5y2 –y3 +y4 ≥ 5
7y1 +0y2 –y3 +y2 ≥ –2
0y1 +y2 –y3 +y4 ≥ –1
y1, y2, y3, y4 ≥ 0
Assim, temos o comparativo entre primal e dual:
PPL Primal PPL Dual
MaxZ = 5x1 – 2x2 – x3
Sujeito à
3x1 + 7x2 ≤ 23
–5x1 + x3 ≤ –8
–x1 – x2 – x3 ≥ –15
x1 + x2 + x3 ≤ 15
x1 , x2 , x3 ≥ 0
MinZ = 23y1 – 8y2 – 15y3 + 15y4.
Sujeito à
3y1 – 5y2 – y3 + y4 ≥ 5
7y1 – y3 + y2 ≥ –2
+ y2 –y3 +y4 ≥ –1
y1, y2, y3, y4 ≥ 0
Perceba que no modelo PPL Dual há restrições cujos coeficientes da
mão direita são negativos, o que não permitimos na forma padrão. Essa nova
característica dos PPLs tem grande utilidade se pensarmos em resolver um PPL
TÓPICO 1 | MÉTODO SIMPLEX
77
Dual ao invés de seu primal. Isso melhora se entendermos a importância do
seguinte Teorema:
Se existe uma solução ótima para o problema primitivo ou para o dual
simétrico, então o outro problema tem uma solução ótima e as duas
funções objetivo apresentam o mesmo valor ótimo. (BRONSON, 1985,
p. 40).
Você compreendeu? Isso quer dizer que tanto faz se resolvermos o primal
ou o dual de um PPL, se houver uma solução ótima, ela será igual para os dois
casos. Ou seja, dependendo da situação, podemos escolher entre resolver o
problema primal ou o dual, como no caso de haver muitas restrições do tipo ≥
ou com os coeficientes da mão direita negativos. Também modelos que tenham
muitas restrições e poucas variáveis (que usam muitas linhas no tableau simplex,
por exemplo) podem ser resolvidos usando-se poucas restrições, já que as
restrições do dual serão em mesmo número que as variáveis do primal.
Também é importante saber que, dado um modelo primal, o modelo dual do
dual é igual ao modelo primal, ou seja, se escrevermos o dual de um modelo e, depois,
escrevermos o dual desse modelo dual, teremos novamente o modelo primal.
UNI
78
RESUMO DO TÓPICO 1
Neste tópico, você viu que:
• Para escrever um modelo de PL em sua forma padrão, devemos:
1° Fazer com que os coeficientes da mão direita sejam números não negativos;
2° Restringir todas as variáveis de decisão não restritas;
3° Substituir as restrições definidas por ≤ usando variáveis de folga;
4° Substituir as restrições definidas por ≥ usando variáveis de excesso;
5° Ajustar, se necessário, a Função Objetivo.
• Para resolver um modelo através do modelo simplex, vimos os procedimentos:
1º Solução básica inicial: inicia-se escrevendo o PPL na sua forma padrão,
adotando os coeficientes da mão direita como valores para as variáveis
artificiais, usando-as como uma solução básica inicial.
2º Teste de otimalidade: verificam-se os coeficientes das variáveis não básicas
na função objetivo:
• se todos os coeficientes forem positivos, então a presente solução é ótima;
• se há coeficientes negativos, escolhe-se o coeficiente negativo de maior valor
absoluto para a variável que deve entrar na base.
3º Troca da base: escrevem-se as variáveis básicas do PPL em função das
variáveis não básicas e verifica-se qual VB anula-se primeiro ao aumentar o
valor da variável escolhida para entrar na base.
4º Reformulação do PPL: escreve-se a função objetivo e as restrições do PPL
em função das novas VNB, simplificando-se o quanto for possível.
5º Solução do PPL: adotando-se 0 como valor das VNB, calcula-se o valor das
VB e da função objetivo.
6º Repete-se o procedimento a partir do 2º passo.
• É mais fácil fazer a representação do modelo no tableau simlex para resolvê-lo.
79
VARIÁVEIS
BÁSICAS X1 X2 X3 ... Xn b CÁLCULOS
xB1
xB2
xB3
...
xBm
Função
Objetivo
Em modelos com restrições ≥, usamos o método das duas fases, inserindo
variáveis artificiais e resolvendo um a função objetivo artificial no tableau simplex.
• Todo modelo de PL chamado de primal tem, associado a ele, um modelo dual:
PPL Primal PPL Dual
MaxZ = c1x1 +c2x2 + c3x3 +... + cnxn
Sujeito à
a11x1 +a12x2 + a13x3 +... + a1nxn ≤ b1
a21x1 +a22x2 + a23x3 +... + a2nxn ≤ b2. . . . . .. . . . . .. . . . . .
am1x1 +am2x2 + am3x3 +... + amnxn ≤ bm
xj ≥ 0,j = 1,...,n
MinZ = b1y1 +b2y2 + b3y3 +... + bmym
Sujeito à
a11y1 +a12y2 + a13y3 +... + a1mym ≤ c1
a21y1 +a22y2 + a23y3 +... + a2mym ≤ c2. . . . . .. . . . . .. . . . . .
an1y1 +an2y2 + an3y3 +... + amnym ≤ cn
yj ≥ 0,i = 1,...,m
Se o primal tem solução ótima, então o dual dele também tem, e o valor da
função objetivo de ambos é o mesmo.
80
AUTOATIVIDADE
Para exercitar seus conhecimentos adquiridos, resolva as questões que
seguem:
1 Escreva o modelo dado no exemplo 1, da Unidade 1, sobre a indústria
moveleira, na forma padrão.
2 Escreva o modelo dado no exemplo 3, da Unidade 1, sobre a dieta alimentar,
na forma padrão.
3 Resolva o modelo da indústria moveleira através do método simplex.
4 Resolva o modelo da dieta alimentar através do método das duas fases.
5 Escreva o modelo dual do modelo da dieta alimentar.
6 (BOLDRINI, 1980, p. 401, adaptado). Um aluno do curso de Engenharia
quer resolver um grave problema usando o que aprendeuem Programação
Linear. Atualmente, ele possui duas namoradas: Maria e Luíza. Ele sabe,
por experiência, que:
Maria gosta de frequentar lugares mais caros, de modo que uma saída
de três horas custará 24 reais. Já Luíza prefere um divertimento mais popular,
de modo que uma saída de quatro horas custará 16 reais. Seu orçamento
permite dispor de 96 reais mensais para a diversão.
Cada saída com Maria consome 500 calorias, mas com Luíza, mais
alegre e extrovertida, gasta o dobro. Seus afazeres escolares lhe dão liberdade
de, no máximo, 18 horas e 4000 calorias de sua energia para atividades sociais.
Ele gosta das duas com a mesma intensidade.
Tomando por base as conclusões acima, ele quer planejar sua vida
social de modo a obter o número máximo de saídas. Formule o modelo e
resolva-o pelo método simplex. Após conseguir o resultado, comunique-o à
classe para que este aluno (que prefere que seu nome não seja revelado, por
motivos óbvios) possa conferir com a solução ótima obtida por ele.
81
TÓPICO 2
UTILIZAÇÃO DO COMPUTADOR
UNIDADE 2
1 INTRODUÇÃO
Muito bem, você deve pensar em largar o lápis e o papel e, finalmente,
ver as coisas acontecendo mais rapidamente no computador. Não queremos
desanimá-lo, mas para melhor entender como resolver nossos modelos de PL
no computador, precisamos acompanhá-lo passo a passo, muitas vezes fazendo
cálculos mais simples em um ambiente fora da tela, ou seja, o bom e velho papel.
Mas fique tranquilo, as grandes equipes de PO trabalham muito mais com papel
e lápis do que com computadores. Lembre-se que ele é apenas uma ferramenta
de trabalho para nós e que, mais importante que resolver um modelo, é resolver
um bom modelo, e por isso, antes de encontrar soluções computadorizadas,
é necessário que tenhamos na mão um modelo de PL para introduzir no
computador, e a máquina não faz modelos.
Quando houver a impossibilidade de resolução pelo método gráfico, ou
os métodos por nós vistos forem muitos trabalhosos, ou ainda, para a maioria
dos problemas de PL, a busca pela solução ótima é feita através de ferramentas
computacionais adequadas e disponíveis.
Existem diversos softwares matemáticos, freewares (grátis) ou não, que
processam dados na resolução de modelos de PL. Como exemplos, podemos
citar o Maple, produzido pela empresa Waterloo Maple Inc., que é um poderoso
programa que trabalha nas mais variadas áreas da matemática, engenharia e
educação, inclusive na Pesquisa Operacional. Esse software é vendido em lojas
especializadas e é mais indicado para usuários avançados nos estudos dessas
áreas. Como alternativa, e por ser distribuído gratuitamente na internet, temos o
WinMat, um programa educacional livre, que pode ser de grande utilidade nas
operações com matrizes envolvidas na Programação Linear. Um dos softwares
mais utilizados nesses problemas é o LINDO (Linear and Interactive and Discrete
Optmizer), comercializado pela Lindo System Inc., e que pode operar modelos com
até 50.000 restrições e 200.000 variáveis, e acredite, alguns modelos chegam a
superar esse números.
Em nossos estudos, utilizaremos a ferramenta Solver, que é um suplemento
do software Microsoft Excel, por se tratar o Microsoft Office de um pacote de
programas, na maioria das vezes, disponibilizado junto aos computadores
pessoais e que você terá fácil acesso. Usaremos a versão Microsoft Excel 2007 para
nossas explicações.
A ferramenta Solver utiliza o Método Simplex e o Método de Branch and
Bound, que serão vistos adiante, para resolver problemas de PL com restrições
UNIDADE 2 | SOLUÇÃO ÓTIMA
82
reais ou inteiras, e ainda problemas de programação não linear, que não serão
abordados nesse caderno, pela sua extensão e complexidade. Mas nada impede
que você busque informações sobre esse tipo de problema em outras fontes. Vários
textos, artigos, sites e livros tratam deles com melhor destaque.
Acreditamos que você tenha alguma experiência com a planilha Excel ou
que pelo menos queira aprender como trabalhar com a ferramenta Solver. Mas,
para facilitar a compreensão, novamente nos utilizaremos do problema de PL
no planejamento agrícola (Exemplo 2 da Unidade 1) para ilustrar o uso dessa
poderosa ferramenta computacional.
Você talvez precise habilitar a ferramenta Solver utilizando os seguintes
comandos no Excel: No Menu superior esquerdo da tela você encontra a opção
mais comandos..., e clicando nela uma janela de diálogo mostra, no menu à
esquerda, a aba suplementos. Procure a ferramenta Solver na lista de suplementos e
clique no botão ir... (embaixo da lista). Nesse momento aparece uma nova lista de
suplementos, entre os quais, você, enfim, escolhe Solver. Pronto, essa ferramenta
já está disponível para uso nas Barras de Ferramentas de Acesso Rápido da planilha.
Como acessá-la veremos adiante.
Caso tenha dúvidas em relação ao uso da planilha Excel, ou queira
aprofundar-se nesse programa e seus suplementos e ferramentas, também
são encontradas diversas bibliografias sobre o assunto. Indicamos algumas na
bibliografia deste caderno, ao final do mesmo.
2 RESOLVENDO MODELOS NO EXCEL
Para que você possa acompanhar melhor essa explicação, é interessante
que você possa ler esse texto diante de um computador, já com uma planilha Excel
aberta e em branco, para que você possa fazer, junto conosco, a programação do
problema de PL e descobrir sua solução ótima.
Inicialmente, vamos colocar na planilha as informações indicando quais
células serão destinadas à função objetivo, às restrições e seus coeficientes e
sinais, e quais serão destinadas aos valores da solução ótima e do lucro máximo.
Novamente, vamos ver o modelo do PL:
Max L = 300xT + 400xM Função Objetivo (maximizar o lucro)
Sujeito a
xT + xM ≤ 50 Restrição ao tamanho do terreno
3xT + 2xM ≤ 120 Restrição ao uso de mão de obra
xT ≤ 30 Restrição a demanda por trigo
xM ≤ 40 Restrição a demanda por milho
xT , xM ≥ 0 Restrição à não-negatividade
TÓPICO 2 | UTILIZAÇÃO DO COMPUTADOR
83
Veja o Quadro 5 a seguir, e digite as informações na planilha Excel como
estão mostradas.
QUADRO 1 - DIGITAÇÃO DOS DADOS DO PL NA PLANILHA EXCEL
A B C D E F
1 Nome da variável Xt Xm
2 Valor da variável
3 Função Objetivo 300 400 max L =
4 Restrições Coeficientes Produtos Sinal b
5 Área disponível 1 1 <= 50
6 Homens-hora 3 2 <= 120
7 Demanda por trigo 1 0 <= 30
8 Demanda por milho 0 1 <= 40
FONTE: Os autores
Perceba que as células B2 e C2 destinam-se aos valores das variáveis xT e
xM (no Excel é difícil trabalhar com letras sobrescritas e subscritas, por isso usamos
Xt e Xm). E perceba também que a célula F3 está destinada a receber o valor da
solução ótima do PL, ou seja, o valor máximo que se pode obter do lucro.
Nesta célula, digite a função =SOMARPRODUTO(B2:C2;B3:C3). Esta
função multiplica o valor da célula B2 pelo coeficiente da célula B3 e o valor da
célula C2 pelo coeficiente da célula C3, e depois soma os resultados. Ora esse é o
cálculo feito pela função objetivo.
Por enquanto, o valor encontrado é 0 (zero) já que não temos os valores de
xT e xM ainda calculados. O Solver nos fará esse trabalho.
Na célula D3 usamos a mesma fórmula, fazendo alguns ajustes, para calcular
os valores das variáveis, aplicados à restrição quanto à área a ser plantada. Assim,
você deve digitar nessa célula a fórmula =SOMARPRODUTO(B$2:C$2;B5:C5).
Veja que foi usado o sinal $ na primeira parte da fórmula. Isso se deve ao fato de
que iremos usá-la nas células logo abaixo. Para não ficar digitando-a várias vezes,
basta arrastá-la para as próximas linhas. O sinal $ serve para “travar” a célula
referenciada ao copiar a fórmula de uma célula para outra.
Nossa planilha está pronta para calcular a solução ótima. Vamos ao Solver!
Na Barras de Ferramentas de Acesso Rápido que indica Dados, você encontrará,
à direita, um botão para acesso à ferramenta Solver. Clicando nele aparece a caixa
de diálogo mostrada na Figura 11, intitulada Parâmetros do Solver.UNIDADE 2 | SOLUÇÃO ÓTIMA
84
FONTE: Os autores
FIGURA 11 - CAIXA DE DIÁLOGO PARÂMETROS DO SOLVER
Você deverá preencher os campos em branco, observando o seguinte:
• na caixa de texto Definir célula de destino: digite a célula que contém a fórmula
da solução ótima, ou seja, F3;
• na caixa de texto Células das variáveis, digite B2:C2;
• no botão Opções, você deve selecionar as opções Presumir modelo linear e
Presumir não negativos. Esse passo é muito importante, pois ele informa ao
Solver que estamos trabalhando com um problema de Programação Linear e
que existe a restrição de não negatividade das variáveis. Clique em OK para
voltar e adicionar as outras restrições;
• clique em Adicionar e aparece outra caixa de diálogo chamada Adicionar restrição.
Como todas as nossas restrições (nesse PL) têm o mesmo sinal, podemos incluí-
las numa única restrição, digitando no campo Referências de célula: D5:D8,
escolhendo o sinal <= e digitando no campo Restrição: F5:F8. Clique OK;
Nesse momento, apresenta-se na tela, a caixa conforme mostra a Figura 12.
Agora é só clicar em Resolver e... (mantendo as soluções do Solver). Pronto!
Temos a solução ótima 19000 na célula F3, que corresponde ao lucro obtido na
produção de 10 ares de xT e 40 ares de xM , conforme mostrado nas células B2 e C2.
TÓPICO 2 | UTILIZAÇÃO DO COMPUTADOR
85
FONTE: Os autores
FIGURA 12 - CAIXA DE DIÁLOGO COM OS PARAMETROS PREENCHIDOS
Analisando os resultados obtidos na planilha, você pode observar que a
célula D5 contém o número de homens-hora utilizados na solução ótima, que é de
110. Há, portanto, uma folga na restrição de 10 homens-hora. Essas folgas serão
analisadas com mais detalhes quando tratarmos da Análise de pós-otimalidade,
mais adiante nesse caderno.
Agora, vamos verificar qual a solução ótima para o problema da Dieta
Alimentar (exemplo 3 da Unidade 1) cujo objetivo é minimizar o custo, mantendo
uma alimentação saudável em vitaminas. Aqui está o modelo do PL:
Mim C = 2x1 + 4x2 + 1,5x3 + 1x4 Função objetivo
Sujeito à
2x1 + 2x2 + 10x3 + 20x4 ≥ 11 Restrição ao consumo de vitamina A
5x1 + 2x2 + 1x3 + 3x4 ≥ 7 Restrição ao consumo de vitamina C
8x1 + 7x2 + 1x3 + 8x4 ≥ 25 Restrição ao consumo de vitamina D
x1 , x2 , x3 , x4 ≥ 0 Restrição à não negatividade
Do mesmo modo, vamos recorrer ao Solver para a resolução do PL. O
procedimento é o mesmo, mas algumas alterações são necessárias. Primeiro,
aumenta a quantidade de variáveis, mas basta inserir algumas células e mudar
poucas fórmulas. Veja o Quadro 2.
FONTE: Os autores
UNIDADE 2 | SOLUÇÃO ÓTIMA
86
FONTE: Os autores
As alterações nas fórmulas são as seguintes:
• mudam os nomes das variáveis e das restrições;
• na célula G3 digitamos Min C, já que queremos minimizar os custos;
• na célula H3 deve-se digitar =SOMARPRODUTO(B$2:E$2;B3:E3);
• na célula F5 deve-se digitar =SOMARPRODUTO(B$2:E$2;B5:E5), e pode-se
copiar (arrastando a fórmula para baixo) nas células F6 e F7;
• nas células G5, G6 e G7, usamos agora o sinal >=, já que expressamos que essas
vitaminas são requisitos mínimos para a saúde.
Mas as grandes alterações são feitas na caixa de diálogo do Solver, onde
devemos:
• escolher Mín em Parâmetros do Solver;
• fazer as alterações da célula de destino e das células variáveis;
• alterar as restrições mudando seu sinal para >=, a fim de respeitar os requisitos;
• não se esqueça de verificar se as Opções Presumir modelo linear e Presumir não
negativos estão selecionadas.
Clicando em Resolver encontramos a solução ótima X*1 = 0, X*2 = 0, X*3 = 0, e
X*1 = 3,125, que nos dá o custo mínimo C* = 3,125. Observe atentamente os valores
encontrados pelo Solver no Quadro 3 e tente interpretar seus resultados.
A B C D E F G H
1 Nome da variável X1 X2 X3 X4
2 Valor da variável
3 Função Objetivo 2 4 1,5 1 Min C = 0
4 Restrições Coeficientes Produtos Sinal b
5 Vitamina A 2 2 10 20 0 >= 11
6 Vitamina C 5 2 1 3 0 >= 7
7 Vitamina D 8 7 1 8 0 >= 25
QUADRO 2 - DIGITAÇÃO DOS DADOS DO PL NA PLANILHA EXCEL
TÓPICO 2 | UTILIZAÇÃO DO COMPUTADOR
87
Realmente, resolver um problema de PL usando o computador é muito
mais fácil. Mas há ainda, algumas informações a serem tratadas.
A B C D E F G H
1 Nome da variável X1 X2 X3 X4
2 Valor da variável 0 0 0 3,125
3 Função Objetivo 2 4 1,5 1 Min C = 3,125
4 Restrições Coeficientes Produtos Sinal b
5 Vitamina A 2 2 10 20 62,5 >= 11
6 Vitamina C 5 2 1 3 9,375 >= 7
7 Vitamina D 8 7 1 8 25 >= 25
QUADRO 3 - SOLUÇÃO ÓTIMA ENCONTRADA PELO SOLVER
FONTE: Os autores
3 ANÁLISE DE PÓS-OTIMALIDADE
Também conhecida como análise de sensibilidade, seu objetivo é verificar
se alterações realizadas em alguns valores do modelo interferem na solução
ótima do mesmo. Depois de resolver um modelo de PL, podemos determinar
alguns limites para variações em alguns coeficientes do problema. Assim, em
situações que exijam adaptações ao modelo original podem ser estudadas e, com
isso, podemos definir até que ponto podemos ou não fazer essas adaptações sem
ter que resolver novamente o modelo.
A análise de pós-otimalidade é feita apenas sobre o último quadro do
tableau simplex, e pode ser feita sobre a função objetivo ou sobre os coeficientes da
mão direita.
3.1 ANALISANDO A FUNÇÃO OBJETIVO
O que fazemos é uma pequena variação em um dos coeficientes c da F.O.,
verificando o que acontece com seu valor Z. Para isso, escreveremos um novo
valor Ẑ = Z + Δcx.
Vamos usar nosso “famoso” exemplo para entender melhor como proceder.
Para isso, vejamos o modelo e a última tabela do tableau simplex novamente:
Modelo na forma padrão:
Max L – 300x1 – 400x2 = 0
Sujeito a
UNIDADE 2 | SOLUÇÃO ÓTIMA
88
TABELA 18 - ÚLTIMA TABELA SIMPLEX
VARIÁVEIS
BÁSICAS X1 X2 X3 X4 X5 X6 B CÁLCULOS
x1 1 0 1 0 0 -1 10
x4 0 0 -3 1 0 1 10
x5 0 1 0 0 0 1 20
x2 0 1 0 0 0 1 40
Max L 0 0 300 0 0 100 19000
FONTE: Os autores
Observando a última linha do quadro, que representa a função objetivo,
temos, na forma padrão simplex, MaxL – 300x3 – 100x6 = 19000.
Agora, vamos criar uma pequena variação no coeficiente de x1 (que
chamaremos c1), usando a linha da variável básica x1 em que x1 + x3 – x6 = 10, ou
seja, x1 = – x3 + x6 + 10. Agora, substituindo essa expressão em Ẑ = Z + Δc1x1, teremos
Ẑ = Z + Δc1x1
Ẑ = –300x3 –100x6 + 19000 + Δc1 • (– x3 + x6 + 10)
Ẑ = –300x3 –100x6 + 19000 + Δc1 • (– x3) + Δc1 • x6 + Δc1 • 10)
Ẑ = –(300x3 + Δc1 )x3 –(100 – Δc1)x6 + 19000 + 10Δc1
Vamos reescrever essa expressão como última linha do tableau simplex:
Max L 0 0 300 + Δc1 0 0 100 + Δc1 19000 + 10Δc1
Para manter a solução ótima do problema (x1 =10, x4 =10, x5 =20, x2 =40),
precisamos fazer 300 + Δc1 ≥ 0 e 100 + Δc1 ≥ 0 que podem ser representados por –300
≤ Δc1 ≤ 100. Essa última expressão nos apresenta que a variação do coeficiente c1
(Δc1) pode ser de até 100 a mais ou 300 a menos. Dizemos que c1 pode sofrer um
permissível acréscimo de 100 ou um permissível decréscimo de 300 sem alterar o valor
ótimo da função objetivo.
Fazendo a análise de pós-otimalidade para c2 teremos, pela linha de x2
no tableau, x2 + x6 = 40 ⇒ x2 = 40 – x6 e substituindo em Ẑ = Z + Δc2x2:
TÓPICO 2 | UTILIZAÇÃO DO COMPUTADOR
89
Ẑ = Z + Δc2x2
Ẑ = –300x3 –100x6 + 19000 + Δc2 (40 – x6)
Ẑ = –300x3 –100x6 + 19000 + 40Δc2 – Δc2 x6
Ẑ = –300x3 – (100 + Δc2)x6 + 19000 + 10Δc2
Que nos dá a nova linha:
Max L 0 0 300 0 0 100 + Δc2 19000 + 10Δc2
E assim, para manter a solução, temos 100 + Δc2 ≥ 0, que significa –100
≤ Δc2, ou seja, c2 pode sofrer um permissível decréscimo de 100 ou um permissível
acréscimo ilimitado sem alterar o valor ótimo da função objetivo.
3.2 ANALISANDO OS COEFICIENTES DA MÃO
DIREITA DAS RESTRIÇÕES
Para analisar esses coeficientes, vamos novamente utilizar os recursos da
ferramenta Solver. Basta abrir nosso modelo de PL digitado na planilha Excel e
selecionar a ferramenta Solver. Após inserir as informações necessárias na caixa
de diálogo Parâmetros do Solver, sem esquecer de selecionar as opções de modelo
linear e nãonegativo, ao clicar em Resolver, aparece uma nova caixa de dialogo
Resultados do Solver, mostrada na Figura 13. Nessa caixa, devemos clicar em cima
da opção Sensibilidade e depois OK.
FIGURA 13 - CAIXA DE DIÁLOGO RESULTADOS DO SOLVER, CLICAR EM SENSIBILIDADE
GERA A NÁLISE DE PÓS-OTIMALIDADE
FONTE: Os autores
Automaticamente, o Excel cria uma planilha chamada Relatório de
sensibilidade 1, que pode ser acessada clicando embaixo, à esquerda, no rodapé da
planilha atual.
Esse relatório nos dá as informações contidas no Quadro 4, que devem ser
interpretadas com muito rigor.
UNIDADE 2 | SOLUÇÃO ÓTIMA
90
QUADRO 4 - RELATÓRIO DE SENSIBILIDADE DO MODELO DE PL DE PLANEJAMENTO
AGRÍCOLA, DADO PELO SOVER DO EXCEL.
CÉLULAS AJUSTÁVEIS
Final Reduzido Objetivo Permissível Permissível
Célula Nome Valor Custo Coeficiente Acréscimo Decréscimo
$B$2 Valor da variável Xt 10 0 300 100 300
$C$2 Valor da variável Xm 40 0 400 1E+30 100
Restrições
Final Sombra Restrição Permissível Permissível
Célula Nome Valor Preço Lateral R.H. Acréscimo Decréscimo
$D$5 Área disponível Produtos 50 300 50 3,333333333 10
$D$6 Homens-hora Produtos 110 0 120 1E+30 10
$D$7 Demanda por trigo Produtos 10 0 30 1E+30 20
$D$8 Demanda por milho Produtos 40 100 40 10 10
FONTE: Os autores
As células ajustáveis são referentes à função objetivo. Perceba que essa
parte do relatório nos dá informações sobre as variáveis xT e xM, lembrando que os
coeficientes da função objetivo são, respectivamente, 300 e 400, e que os valores
da solução ótima para essas variáveis são xT = 10 e xM = 40. As últimas colunas
desse relatório nos dizem que o coeficiente de xT pode sofrer um permissível
acréscimo de 100 e um permissível decréscimo de 300, e que o coeficiente de xM
pode sofrer um permissível decréscimo de 100 e um permissível acréscimo de
1E+30. Esse valor é uma representação para o infinito (1E+30 = 1 • 1030, que é um
grande número!).
A parte de baixo do relatório nos diz quais os acréscimos e decréscimos
permissíveis para cada um dos coeficientes da mão direita nas restrições. Para
entender o que isso quer dizer, vejamos a restrição quanto à demanda por
milho, que é de trinta ares, no máximo. Se diminuíssemos essa demanda para
25 ares (usando o permissível decréscimo de 20), ainda assim, nosso lucro seria
de 19000, visto que as outras restrições encarregam-se de manter o valor das
variáveis em 10 e 40.
91
RESUMO DO TÓPICO 2
Nesse Tópico vimos que:
• Para resolver um modelo de PL através do computador, basta digitar
corretamente as informações do modelo numa planilha Excel, e habilitando
a ferramenta Solver. Ela nos dá a solução ótima desse modelo, assim como os
possíveis acréscimos e decréscimos da análise de pós-otimalidade.
• A análise de pós-otimalidade da função objetivo pode ser feita também
através do tableau simplex, examinando as equações da última linha da tabela e
acrescentando pequenas variações nos coeficientes da função, usando Ẑ = Z +
Δcx para a verificação.
92
AUTOATIVIDADE
Para exercitar seus conhecimentos adquiridos, resolva as questões a
seguir:
1 Resolva todos os exercícios do Tópico 1 da Unidade 1 através do Solver.
2 Resolva os exercícios 3 e 6 do Tópico 1 da Unidade 2 através do Solver.
3 Resolva o exercício 1, sobre a fábrica de cristais, do Tópico 3 da Unidade 1,
através do Solver, e faça a análise de pós-otimalidade gerando o relatório
de sensibilidade.
93
UNIDADE 3
PROGRAMAÇÃO DE PROJETOS
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir desta unidade, você estará apto(a) a:
• representar um modelo por redes, grafos ou árvores;
• identificar e resolver uma aproximação para os problemas de caixeiros
viajantes;
• resolver problemas de fluxo máximo e de caminho mais curto em uma
rede;
• planejar atividades usando as técnicas de PERT e CPM;
• gerar simulações para modelos matemáticos via computador.
Esta unidade está dividida em três tópicos. No final de cada um deles, você
encontrará atividades que reforçarão o seu aprendizado.
TÓPICO 1 – ANÁLISE DE REDES
TÓPICO 2 – TÉCNICAS PERT/CPM
TÓPICO 3 – SIMULAÇÃO
94
95
TÓPICO 1
ANÁLISE DE REDES
UNIDADE 3
1 INTRODUÇÃO
Diversos problemas de programação linear, como os problemas de transporte
(controle de tráfego de veículos em rodovias e trevos, vazão em tubulações e
estações de tratamento, linhas telefônicas, controle de voo em aeroportos etc.), de
planejamento e de controle de atividades (construção civil, mecânica etc.) podem
ser modelados como problemas de fluxo de redes. A análise dessas redes nos
permite identificar algoritmos específicos para determinados tipos de problemas
que podem ser mais convenientes para a sua solução do que algoritmos mais
genéricos. A teoria dos grafos nos ajuda a compreender como resolver esses tipos
de problemas, e o estudo de técnicas como PERT ou CPM nos mostra que a solução
ótima desses problemas pode ser determinada facilmente, com bom planejamento
e execução correta das atividades.
2 TEORIA DOS GRAFOS
Definição 1: Um grafo é um conjunto de nós (vértices ou pontos) conectados
ou não por arcos (arestas ou ramos).
Um grafo pode representar, por exemplo, as rodovias que interligam
várias cidades de uma região. No exemplo indicado pela Figura 14, consideramos
os nós como as cidades e os arcos como as rodovias (sem as curvas, para facilitar
a visualização).
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
96
FONTE: Os autores
No grafo acima, temos os nós A, B, C, D, E e os arcos AB, AD, BC, BD, BE,
DE, CE, CF, DF e EF.
Definição 2: Um grafo direto é aquele em que o fluxo ao longo de um arco
pode ser feito apenas em um sentido.
Dizemos que o arco AB tem origem no vértice A e término no vértice B,
mas podemos ter um arco BA com origem em B e término em A, e nesse caso, o
grafo não é direto, pois há um arco com duplo sentido (como uma rua de mão
dupla. Nos grafos diretos, só há ruas de mão única).
Definição 3: Um caminho é um conjunto de arcos que conectam dois nós
através de nós intermediários.
Um exemplo de caminho, segundo o exemplo, é ABCE, que conecta os
nós A e E, passando por B e por C.
Definição 4: Um grafo conectado é aquele em que sempre existe pelo
menos um arco ligando qualquer par de nós do grafo.
Nosso exemplo é um grafo conectado. Não há nós isolados (como se uma
cidade não pudesse ser alcançada por uma rodovia).
Definição 5: Um laço é um caminho que conecta um nó a ele mesmo. No
exemplo, o caminho ABDA é um laço.
Definição 6: Uma árvore é um grafo sem laços. Uma árvore tem n arcos e
n+1 nós.
FIGURA 14 - EXEMPLO DE UM GRAFO OU REDE
TÓPICO 1 | ANÁLISE DE REDES
97
2.1 O PROBLEMA DO CAIXEIRO VIAJANTE
Um dos problemas mais famosos da teoria dos grafos é o problema do
caixeiro viajante. Claro que não usamos mais essa nomenclatura, mas o princípio
é o mesmo: um representante comercial precisa visitar seus clientes em suas
cidades, sem visitar duas vezes a mesma cidade e sem deixar de visitar nenhuma
cidade. Deve-se também considerar que esse representante deve tentar fazer
todas as visitas andando o mínimo possível.
Como exemplo, vamos imaginar um vendedor que precise visitar quatro
cidades A, B, C e D, cujo mapa está representado pelo grafo da Figura 15 e as
distâncias (em km) entre as cidades são dadas na Tabela 19.
FONTE: Os autores
TABELA 19 - DISTÂNCIAS ENTRE AS 4 CIDADES
Para começar, podemos pensar em todos os possíveis caminhos que
o vendedor pode tomar para atingir todas as cidades através de uma árvore,
ilustrada na Figura 16 (sem considerar o retorno à cidade A.
FIGURA 15 - EXEMPLO DE PROBLEMA DE CAIXEIRO VIAJANTE COM 4 CIDADES
CIDADES A B C
A -
B 35 -
C 28 32 -
D 21 19 26
FONTE: Os autores
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
98
FONTE: Os autores
Cada caminho pode ser considerado. Então, podemos ter seis caminhos:
ABCDA, ABDCA, ACBDA, ACDBA, ADDCA e ADCBA. Mas entre eles temos
caminhos que possuem a mesma extensão, como por exemplo, ABCDA e ADCBA,
ou seja, são simétricos, e porisso, podemos desconsiderar metade dos caminhos,
que nos deixam apenas:
• ABCDA, que tem extensão de 35 + 32 + 26 + 21 = 114 km
• ABDCA, que tem extensão de 35 + 19 + 26 + 28 = 108 km
• ACBDA, que tem extensão de 28 + 32 + 19 + 21 = 100 km
Assim, o vendedor deve optar pelo caminho ACBDA.
Mas essa escolha fica muito difícil quando aumentamos o número de cidades
a serem visitadas. Como o número de caminhos é calculado pela permutação de n
cidades, excluindo-se a repetição de caminhos, ou seja, . Quando o número
de cidades é muito grande, temos um problema maior ainda, pois o número de
permutações é consideravelmente “muito maior”.
FIGURA 16 - ÁRVORE REPRESENTANDO OS POSSÍVEIS CAMINHOS PARA O PROBLEMA
DO CAIXEIRO VIAJANTE COM 4 CIDADES
TÓPICO 1 | ANÁLISE DE REDES
99
Eficiência significa resolver problemas, encontrando uma solução ótima,
sem se preocupar com o tempo que isso leva. Já eficácia significa resolver
um problema, isto é, encontrar uma solução, não necessariamente a
melhor, dentro de um tempo razoável. O tempo pode ser uma restrição
na busca de uma solução. Nos processos de busca de solução para
problemas complexos, com muitas alternativas, existe sempre o dilema
eficiência x eficácia. (LOESCH; HEIN, 1999, p. 196).
Mesmo um bom computador levaria anos para conseguir realizar todos
os cálculos de distâncias envolvidos num problema com vinte cidades. E temos
que lembrar que, atualmente, um vendedor que tenha apenas vinte clientes
pode passar dificuldades para levar uma boa vida, mas essas questões não nos
interessam.
Para o caso do caixeiro viajante, costuma-se empregar uma técnica de
solução para a busca da solução ótima conhecida como técnica do vizinho mais
próximo.
Seleciona-se, arbitrariamente, uma cidade inicial, verifica-se qual a
distância entre as cidades que ainda falta visitar, e escolhe-se a que estiver
mais perto. Chegando lá, repete-se o procedimento, excluindo-se as cidades já
visitadas, até que não sobre mais nenhuma.
No exemplo do nosso vendedor, podemos verificar que, se ele partir da
cidade A, a próxima cidade a ser visitada deve ser D, por estar mais perto (21 km).
De D ele deve ir até B (pois entre B e C, B é mais próximo), e de lá para a cidade
C. Depois, é só retornar para A. Daí temos o caminho ADBCA, que é o mesmo
caminho que tínhamos determinado, só que agora fazendo o percurso de volta.
Outra maneira é reduzir a complexidade do problema trabalhando com
sublocalidades (ou regiões, por exemplo). Assim, o vendedor pode dividir seu
mapa de clientes em regiões e analisar essas regiões como cidades.
Ou ainda, combinar as duas maneiras, dividindo as regiões e procurando
dentro de cada região as cidades mais próximas umas às outras. Terminando de
visitar uma região, ele procura a região mais próxima e recomeça o trabalho.
Lembre-se das aulas de análise combinatória, cujo número de permutações de
n com repetição a é dado por , de modo que ! é chamado fatorial e representa,
por exemplo, 3! = 3 . 2 . 1 = 12. Assim, se tomarmos, por exemplo, 20 cidades, teremos
caminhos. Não dá pra testar todos eles!
UNI
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
100
2.2 PROBLEMAS DE FLUXO MÁXIMO
Outro tipo de problema comum na análise de redes é o problema de
fluxo máximo, que pode ser, por exemplo, o problema de uma distribuidora de
água tratada que queira determinar qual o maior fluxo de água que pode ser
distribuído por sua rede de tubulação.
FONTE: Os autores
Na Figura 17, estão representadas as capacidades da tubulação, em
milhões de litros por dia, e deseja-se saber qual o fluxo máximo de água que essa
rede comporta, considerando que o nó A representa a Estação de Distribuição
(origem) de água e o D representa uma localidade (destino) que deve receber a
água tratada.
Neste problema, podemos considerar que a quantidade de água que
chega ao ponto D é igual à quantidade de água que sai do ponto A. Isso pode
ser representado por um arco ligando o ponto D ao ponto A. Desta forma, o
problema pode ser representado como um problema de programação linear em
que se deseja maximizar o fluxo do nó D ao nó A (que é igual ao fluxo que sai
do nó A, ou ao fluxo que chega ao nó D). As restrições deste problema, além da
capacidade de cada arco da rede, é o fato de que a quantidade de água que chega
a qualquer nó é igual à quantidade de água que sai deste mesmo nó. As variáveis
de decisão para este problema são:
• x0: fluxo do nó D ao nó A;
• x1: fluxo do nó A ao nó B;
• x2: fluxo do nó A ao nó B;
• x3: fluxo do nó B ao nó D;
FIGURA 17 - REDE DE TUBULAÇÃO DE ÁGUA E CAPACIDADE DOS TUBOS
TÓPICO 1 | ANÁLISE DE REDES
101
• x4: fluxo do nó C ao nó A;
• x5: fluxo do nó C ao nó D.
A função objetivo é maximizar o fluxo que chega ao nó D, representado
neste problema por x0.
Para cada nó, o fluxo de água que chega é igual ao fluxo de água que sai.
Representando com um sinal negativo o fluxo de água que chega e positivo o
fluxo de água que sai, temos as seguintes restrições:
• Nó D: x0 - x3 - x5 = 0
• Nó A: - x0 + x1 + x2 = 0
• Nó B: - x1 + x3 - x4 = 0
• Nó C: - x2 + x4 + x5 = 0
As restrições de capacidade são x1 ≤ 20, x2 ≤ 28, x3 ≤ 25, x4 ≤ 14 e x5 ≤ 20. E
assim temos o problema dado por:
Max F = x0
Sujeito a
x0 –x3 +x5 = 0
– x0 +x1 +x2 = 0
–x1 +x3 –x4 = 0
–x2 +x4 +x5 = 0
x1 ≤ 20
x2 ≤ 28
x3 ≤ 25
x4 ≤ 14
x5 ≤ 21
Isto pode ser resolvido pela ferramenta Solver.
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
102
AUTOATIVIDADE
Esta aí um bom problema de PL para você resolver.
Esse é um tipo de problema que a teoria dos grafos aborda com mais
atenção. Algumas técnicas são reconhecidamente eficientes na busca da solução
ótima desse tipo de problema. Vamos estudar uma dessas técnicas, que é mais,
digamos assim, famosa, o algoritmo de Djikstra (Edsger Wybe Dijkstra, 1930-
2002, cientista da computação, estudou os métodos de busca de solução ótima
para problemas de caminho mais curto).
Vamos a um exemplo para poder compreender melhor o funcionamento
do algoritmo. Dada a rede representada pela Figura 18, deseja-se determinar o
caminho mais curto entre os nós A e G.
FONTE: Os autores
Vamos utilizar duas tabelas: uma tabela de distâncias mínimas e uma
tabela auxiliar. Na tabela de distâncias mínimas, teremos três colunas (nó, nó de
onde vem o caminho mínimo – ou nó anterior – e distância do caminho mínimo) e
na tabela auxiliar teremos três colunas (nó, nó de origem do caminho considerado
e a distância desse caminho).
FIGURA 18 - REDE DE NÓS E ARCOS
2.3 PROBLEMAS DE CAMINHO MAIS CURTO
TÓPICO 1 | ANÁLISE DE REDES
103
DISTÂNCIAS MÍNIMAS AUXILIAR
Nó Nó Ant. Distância Nó Nó Ant. Distância
Começamos analisando o nó de origem, ou seja, A, e sua distância em
relação ao nó de origem, ou seja, 0. Este nó será colocado na tabela de distâncias
mínimas (na coluna Nó) e sua distância até a origem também. Na tabela auxiliar,
colocamos todos os nós que podemos alcançar a partir de A, assim como o nó de
onde eles são alcançados (o próprio A) em suas distâncias até a origem. Nesse
caso, a tabela fica assim:
DISTÂNCIAS MÍNIMAS AUXILIAR
Nó Nó Ant. Distância Nó Nó Ant. Distância
A - 0 B A 16
C A 10
D A 24
Agora, analisamos qual é o nó mais próximo da origem, ou seja, aquele
que tem a menor distância em relação à origem. Nesse caso, C é o nó colocado na
tabela de distâncias mínimas. E todos os nós que podem ser alcançados a partir
de C são colocados na tabela auxiliar com suas distâncias em relação à origem,
passando pelos nós anteriores. Temos então:
DISTÂNCIAS MÍNIMAS AUXILIAR
Nó Nó Ant. Distância Nó Nó Ant. Distância
A - 0 B A 16
C A 10 C A 10 (x)
D A 24
D C 18
F C 14
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
104
Simbolizamos com (x) os nós da tabela auxiliar que não devem mais entrar
na tabela de distâncias mínimas. Perceba que as distâncias dos nós D e F na tabela
auxiliar são equivalentes às somas das distâncias AC e CD (10 + 8 = 18) e AC e CF
(10 + 4= 14). A menor distância apontada pela tabela auxiliar indica que o nó F
deve entrar na tabela. O único nó alcançado a partir de F é G, e, portanto:
DISTÂNCIAS MÍNIMAS AUXILIAR
Nó Nó Ant. Distância Nó Nó Ant. Distância
A - 0 B A 16 = 16 + 0
C A 10 C A 10 = 10 + 0 (x)
F C 14 D A 24 = 24 + 0
D C 18 = 10 + 8
F C 14 = 10 + 4(x)
G F 38 = 14 + 24
O próximo nó que entra na tabela é B, vindo de A, com distancia 16. Os
nós alcançados a partir de B são D e E.
DISTÂNCIAS MÍNIMAS AUXILIAR
Nó Nó Ant. Distância Nó Nó Ant. Distância
A - 0 B A 16 (x)
C A 10 C A 10 (x)
F C 14 D A 24
B A 16 D C 18
F C 14 (x)
G F 38
D B 20 = 16 + 4
E B 24 = 16 + 8
O próximo a entrar é D, vindo de C, com distância 18. De D alcançamos E e F:
TÓPICO 1 | ANÁLISE DE REDES
105
Distâncias Mínimas Auxiliar
Nó Nó Ant. Distância Nó Nó Ant. Distância
A - 0 B A 16 (x)
C A 10 C A 10 (x)
F C 14 D A 24
B A 16 D C 18 (x)
D C 18 F C 14 (x)
G F 38
D B 20
E B 24
E D 24 = 18 + 6
F D 20 = 18 + 2
O próximo a entrar é D, vindo de B, com distância 20. Mas D já foi incluído
na tabela de distâncias mínimas, então passamos ao próximo nó, que é F, vindo de D
(distância 20) que também já está incluído. Passamos ao nó E, vindo de B, distante 24,
e a partir dele alcançamos F e G:
DISTÂNCIAS MÍNIMAS AUXILIAR
Nó Nó Ant. Distância Nó Nó Ant. Distância
A - 0 B A 16 (x)
C A 10 C A 10 (x)
F C 14 D A 24 (x)
B A 16 D C 18 (x)
D C 18 F C 14 (x)
E B 24 G F 38
D B 20 (x)
E B 24 (x)
E D 24 (x)
F D 20 (x)
G E 36
F E 36
O nó F já está na tabela e por isso quem entra agora é G, vindo de E, com
36 de distância, e assim:
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
106
DISTÂNCIAS MÍNIMAS AUXILIAR
Nó Nó Ant. Distância Nó Nó Ant. Distância
A - 0 B A 16 (x)
C A 10 C A 10 (x)
F C 14 D A 24 (x)
B A 16 D C 18 (x)
D C 18 F C 14 (x)
E B 24 G F 38 (x)
G E 36 D B 20 (x)
E B 24 (x)
E D 24 (x)
F D 20 (x)
F E 36 (x)
G E 36 (x)
Todos os nós já estão na tabela de distâncias mínimas e, com isso, o
problema está resolvido. A tabela mostra a distância mínima até o nó de origem
para cada nó do grafo. O caminho mínimo vem do nó indicado na coluna de nó
anterior. Desta forma, pode-se determinar o caminho mínimo repetindo-se este
passo sucessivamente até que o nó de origem seja encontrado. Para encontrarmos
o caminho mínimo do nó G, por exemplo, pegamos o nó anterior a ele (E). O nó
anterior ao nó E é o nó B, cujo nó anterior é o nó de origem A. E, dessa forma, o
caminho mais curto é dado por ABEG.
Em resumo, o algoritmo pode então ser definido da seguinte maneira:
1º Inserir o nó de origem na tabela de distâncias mínimas. Sua distância
até o nó de origem é 0.
2º Coloca-se na tabela auxiliar todos os nós atingidos por este nó. Para os
nós incluídos na tabela auxiliar, o nó de onde vem o caminho é o nó recém-inserido
na tabela de distâncias mínimas. A distância do nó de origem é a distância do arco
percorrido, somada com a distância do nó recém inserido na tabela de distâncias
mínimas até a origem.
3º O próximo nó a entrar na tabela de distâncias mínimas será o nó entre
os nós não marcados com um (x), de menor distância até a origem. Marca-se este
nó com um (x). Caso este nó já esteja inserido na tabela de distâncias mínimas,
devemos retornar ao 3º passo.
TÓPICO 1 | ANÁLISE DE REDES
107
4º Após inserir o nó na tabela de distâncias mínimas, volta-se ao 2º passo
até que todos os nós do grafo tenham sido inseridos na tabela de distâncias
mínimas.
5º A tabela de distâncias mínimas indica a distância do caminho mínimo
de cada nó até o nó de origem, e o nó de onde vem o caminho mínimo.
108
RESUMO DO TÓPICO 1
Neste tópico, estudamos os seguintes conteúdos:
• Definimos o que é grafo, nó e arco, e fizemos a representação de alguns tipos
de problemas, como o do caixeiro viajante, do fluxo máximo e do caminho
mais curto, usando a teoria dos grafos.
• Vimos alguns métodos de busca da solução ótima para redes ou grafos:
• como a técnica do vizinho mais próximo para o caixeiro viajante;
• as técnicas de programação linear para problemas de fluxo máximo;
• e o algoritmo de Djikstra para problemas de caminho mais curto.
109
AUTOATIVIDADE
Para exercitar seus conhecimentos adquiridos, resolva as questões que
seguem:
1 Dadas as distâncias (em km) indicadas no quadro a seguir, determine o
caminho ótimo para um representante comercial que queira visitar essas
cidades, partindo da cidade A, e voltando para ela.
A B C D
60 B
91 78 C
49 50 43 D
41 93 35 81 E
2 A rede a seguir representa a tubulação de gás de uma empresa, de modo
que cada nó representa uma estação de trabalho, e cada arco os tubos com
suas capacidades (em litros de gás). Determine o fluxo máximo de gás que
percorre essa rede do ponto A ao ponto H.
3 Usando o grafo da questão anterior, determine o caminho mais curto entre
os pontos A e H, utilizando os valores dos arcos como distâncias.
110
111
TÓPICO 2
TÉCNICAS PERT/CPM
UNIDADE 3
1 INTRODUÇÃO
Segundo Loesch e Hein (1999, p. 210), em 1957, surgiu o Critical Path
Method (CPM – Método do Caminho Crítico), com o objetivo de planejar e
controlar a construção de uma das fábricas da Du Pont. Já em 1958, surgiu o
Program Evaluation and Review Technique (PERT – Técnica de Avaliação e Revisão
de Projetos), dentro de uma grande empresa de consultoria associada à equipe de
projetos especiais da marinha dos EUA, com o objetivo de auxiliar na construção
de submarinos atômicos equipados com projetos balísticos Polaris, um projeto
que envolvia 250 empresas, 9000 contratos e numerosas agências americanas. O
emprego do PERT permitiu reduzir em cerca de dois anos o prazo de conclusão
do projeto Polaris, o que lhe valeu rápida e notória popularidade.
2 APLICAÇÃO DE PERT/CPM
Um exemplo muito utilizado na ilustração dos métodos PERT e CPM é
o da indústria de construção civil. Vamos usar uma adaptação de um problema
proposto por Hillier e Lieberman (2006, p. 400), segundo o qual uma empreiteira
ganhou uma licitação para construir uma planta industrial no valor de $5,4 milhões.
O contrato inclui duas cláusulas que, por sua vez, incluem uma penalidade de $
300 mil se a empreiteira não concluir a obra em 47 semanas. Ou um bônus de $
150 mil se concluir em 40 semanas.
De acordo com a experiência da empresa, foi organizada uma lista com as
atividades e os tempos de duração das mesmas, assim como a dependência das
atividades em relação umas às outras. Essa lista está representada pelo Quadro
5 a seguir.
ATIVIDADE DESCRIÇÃO DA ATIVIDADE
ATIVIDADES
ANTECESSORAS DURAÇÃO PREVISTA
A Escavação - 2 Semanas
B Fundações A 4 Semanas
QUADRO 5 - LISTA DE ATIVIDADES PROGRAMADAS PARA A CONSTRUÇÃO
112
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
C Levantar paredes e alvenaria B 10 Semanas
D instalar o teto C 6 Semanas
E Instalar a tubulação externa C 4 Semanas
F Instalar a tubulação interna E 5 Semanas
G Revestimento externo D 7 Semanas
H Pintura externa E, G 9 Semanas
I Instalação elétrica C 7 Semanas
J Revestimento interno F, I 8 Semanas
K Colocação de pisos J 4 Semanas
L Pintura interna J 5 Semanas
M Acessórios externos H 2 Semanas
N Acessórios internos K, L 6 Semanas
FONTE: Hillier; Lieberman (1985, p. 400)
Conforme o quadro, se as atividades forem realizadas uma de cada vez
a construção ficará pronta em 79 semanas. Mas há atividades que podem ser
realizadas simultaneamente, reduzindo o tempo de construção. Nosso objetivo é
minimizar esse tempo, respeitando as condições impostas pela tabela.
2.1 REDE DE ATIVIDADES
Para facilitar a visualização das atividades, podemos organizá-las em
uma rede (ou grafo) em que cada nó representa uma atividade e cada arco
representa as relações de dependência entre elas. A Figura 19 nos dá a rede de
relações nesse problema.
TÓPICO 2 | TÉCNICAS PERT/CPM
113
FONTE: Os autores
De acordo com a análise da rede, podemos estabelecer dois questionamentos
muito importantes para a realização da obra: Qual o tempo total necessário para a
construção sem atrasos? E quais asatividades que não podem sofrer atrasos que
comprometam a conclusão da obra?
2.2 CAMINHO CRÍTICO
Analisando a rede de atividades, podemos identificar seis caminhos
possíveis para conectar o início da obra com seu fim. O comprimento desses
caminhos é dado pela soma das durações das atividades que compõem o caminho.
Assim temos o Quadro 6 com as durações:
FIGURA 19 - REDE DE RELAÇÕES DE DEPENDÊNCIA ENTRE AS ATIVIDADES
QUADRO 6 - DURAÇÕES PREVISTAS PARA OS POSSÍVEIS CAMINHOS DA REDE DE ATIVIDADES
CAMINHO
(ATIVIDADES)
COMPRIMENTO ( EM
SEMANAS)
Inicio-ABCDGHM-Fim 2 + 4 + 10 + 6 + 7 + 9 + 2 = 40
Inicio-ABCEHM-Fim 2 + 4 + 10 + 4 + 9 + 2 = 31
Inicio-ABCEFJKN-Fim 2 + 4 + 10 + 4 + 5 + 8 + 4 +6 = 43
Inicio-ABCEFJLN-Fim 2 + 4 + 10 + 4 + 5 + 8 + 5 + 6 = 44
Inicio-ABCIJKN-Fim 2 + 4 + 10 + 7 + 8 + 4 + 6 = 41
Inicio-ABCIJLN-Fim 2 + 4 + 10 + 7 + 8 + 5 + 6 = 42
FONTE: Hillier; Lieberman (1985, p. 403)
114
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
O caminho com o maior comprimento é chamado de Caminho Crítico, já
que todos os demais caminhos devem chegar ao nó fim antes do Caminho Crítico.
Isso responde a primeira questão, ou seja, o tempo total para completar o projeto
sem atraso é de 44 semanas.
As atividades sobre esse caminho são as Atividades Críticas (gargalos) e
o atraso em uma dessas atividades ocasionará o atraso de toda a obra. Assim, as
atividades não integrantes desse caminho podem sofrer algum tipo de atraso sem
comprometer todo o projeto. A seguir temos, em destaque, o Caminho Crítico.
FONTE: Os autores
2.3 PROGRAMAÇÃO DAS ATIVIDADES - PERT
Nesse momento, devemos determinar quando uma atividade deve
começar e terminar. Em princípio, uma atividade deveria começar imediatamente
após o término de sua atividade antecedente, mas algumas atividades dependem
de mais de uma atividade e, assim, pode haver necessidade de aguardar que
todas as atividades antecedentes terminem antes de iniciar uma nova atividade.
As atividades não críticas podem ter um tempo de folga, dependendo de suas
atividades antecedentes, já que ela não se encontra no caminho critico. A técnica
PERT/CPM utiliza quatro variáveis para formalizar essas informações:
IMC = Data de início mais cedo para uma atividade.
A data de início mais cedo IMCi de uma atividade i é igual à maior TMCj
de sua atividade antecedente j, ou seja, IMCi = {TMCji} j ∈ Pi, onde Pi é o
conjunto de atividades antecedentes da atividade i.
FIGURA 20 - REDE DE ATIVIDADE INDICANDO O CAMINHO CRÍTICO
max
j
TÓPICO 2 | TÉCNICAS PERT/CPM
115
Data de Término mais cedo:
Como o tempo de duração da atividade J é de oito semanas, temos:
TMCJ = IMCJ + DJ = 25 + 8 = 33
Data de término mais tarde:
TMCJ = min {IMTK,IMTL} = min{34,33} = 33
TMC = Data de término mais cedo para uma atividade.
Para uma atividade, TMCi = IMCi + Di, onde Di é a duração da atividade i.
IMT = Data de início mais tarde de uma atividade.
As atividades não críticas podem sofrer atrasos, ou seja, podem iniciar
mais tarde, e assim, é dada por TMCi = TMTi - Di, onde TMT é definido a seguir.
TMT = Data de término mais tarde de uma atividade.
A data de término mais tarde TMTi de uma atividade i é igual ao menor
IMTk de suas atividades sucessoras k, ou seja,TMTi =
min {IMTk},k ∈ Si, onde Si é
o conjunto de atividades sucessoras da atividade i.
Para melhor compreender, vamos calcular as datas de início e término,
mais cedo e mais tarde, da atividade J que representa a colocação das divisórias:
Data de início mais cedo:
IMCJ = max {TMCF,TMCI} = max{25,23} = 25
k
Os valores 25 e 23 representam a soma dos tempos de duração dos dois
caminhos que levam do início do projeto até a atividade J, que podem ser analisados
através da rede de atividades.
UNI
116
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
Os valores 34 e 33 são calculados de acordo com o tempo de duração do
caminho crítico, ou seja, 44 semanas. Daí são descontadas as durações de Término Mais
Tarde das atividades K e L, usando-se as durações dos caminhos dessas atividades até o nó
fim. Para entender melhor, veja a rede de atividades: Se pensarmos em 44 semanas para
concluir a obra, a atividade K antecede a atividade N em quatro semanas e esta antecede o
Fim em seis semanas, assim 44 – 4 – 6 = 34 semanas (TMT
K
= 34) e a atividade L antecede
a atividade N em cinco semanas, assim 44 – 5 – 6 = 33 semanas (TMT
L
= 33).
UNI
Data de início mais tarde:
TMCJ = TMTJ - DJ = 33 – 8 = 25
É importante perceber que as datas de início mais cedo e mais tarde são
iguais, e que isso ocorre também com as datas de término mais cedo e mais tarde, ou
seja, a atividade J não pode sofrer adiantamento e nem atrasos, o que já sabíamos,
visto que a atividade J é uma das atividades críticas (integra o caminho crítico).
Observando ainda que TMT – TMC = IMT – IMC percebemos que essas
diferenças são iguais à folga que existe em uma atividade.
No caso da atividade J, não há folga, pois FJ = TMTJ – TMCJ = IMTJ – IMCJ = 0.
É interessante que possamos observar a rede de atividades com todos as
datas de início, mais cedo e mais tarde, e término, mais cedo e mais tarde, e as
folgas de todas as atividades. Podemos fazer isso avaliando a Figura 21, a seguir:
FONTE: Os autores
FIGURA 21 - REDE DE ATIVIDADES COM AS DATAS PREVISTAS NO PROJETO
TÓPICO 2 | TÉCNICAS PERT/CPM
117
Que tal um pouco de cálculos? Verifique os valores das datas e folgas colocados
na Figura 21.
Também há a possibilidade de visualizar as datas das atividades através de
tabelas conhecidas como Diagramas de Gantt. Como fazemos na Tabela 20 a seguir:
AUTOATIVIDADE
TABELA 20 - PROGRAMA DAS DATAS DAS ATIVIDADES ATRAVÉS DE DIAGRAMA DE GANTT
A
tiv
.
0 1 2 3 4 5 6 7 8 9 10
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
A
B
C
D
E
F
G
H
I
J
K
L
M
N
FONTE: Os autores
Nesse diagrama, representamos as datas mais cedo em amarelo e as datas mais
tarde em preto.
UNI
118
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
2.4 PROGRAMAÇÃO DAS ATIVIDADES – CPM
Algumas atividades podem ter suas durações alteradas devidos a fatores
não previstos no planejamento inicial. Assim, essas atividades podem ser
adiantadas ou atrasadas devido à escassez ou abundância de recursos, variações
climáticas ou econômicas etc.
Com o objetivo de conseguir um planejamento mais confiável, muitas vezes
é necessária a introdução de algumas variáveis probabilísticas aparentemente
conhecidas. A fim de se estabelecer uma distribuição de probabilidades
compatível com os problemas por nós abordados, a Técnica do Caminho Crítico
(CPM) utiliza a distribuição beta e, a partir de poucos parâmetros fáceis de serem
obtidos, estabelece, para cada atividade i, três medidas de tempo, que são:
TOi = é o tempo mínimo estimado com razoável para a execução da
atividade i, também conhecido como o tempo mais otimista;
TMi = é o tempo mais provável para a execução da atividade i, ou seja, o
que ocorre com maior frequência (na estatística é a moda da distribuição);
TPi = é o máximo tempo estimado razoável para execução da atividade i,
também conhecido como tempo mais pessimista.
Usamos essas medidas para estimar a média e a variância da distribuição
de uma variável aleatória Ti, que representa o tempo de execução da atividade
i. Essas medidas derivam do desvio-padrão da média, e podem ser calculadas
aproximadamente por:
que representa a média da atividade i
que representa a variância da atividade i
Podemos expandir nossa tabela de atividades com as durações
probabilísticas, como no exemplo a seguir:
TABELA 21 - DURAÇÕES PROBABILÍSTICAS DAS ATIVIDADES DOPROJETO DE CONSTRUÇÃO.
ATIVIDADE
DURAÇÃO PREVISTA PARÂMETROS
OTIMISTA MAIS PROVÁVEL PESSIMISTA MÉDIA VARIÂNCIA
A 1 2 3 2 0,111
B 2 3,5 8 4 1
C 6 9 18 10 4
D 4 5,5 10 6 1
E 1 4,5 5 4 0,444
TÓPICO 2 | TÉCNICAS PERT/CPM
119
F 4 4 10 5 1
G 5 6,5 11 7 1
H 5 8 17 9 4
I 3 7,59 7 1
J 3 9 9 8 1
K 4 4 4 4 0
L 1 5,5 7 5 1
M 1 2 3 2 0,111
N 5 5,5 9 6 0,444
FONTE: Os autores
Com os valores dados na tabela 20, podemos imaginar, por exemplo, o pior
cenário possível para o projeto em andamento, ou seja, determinar o Caminho
Crítico, usando as durações pessimistas. A Tabela 22 mostra os cálculos feitos
para os seis caminhos já determinados anteriormente.
TABELA 22 - DURAÇÕES PESSIMISTAS (PIOR CENÁRIO) PARA OS POSSÍVEIS CAMINHOS
DA REDE DE ATIVIDADES
Caminho (Atividades) Comprimento (em semanas)
Inicio-ABCDGHM-Fim 3 + 8 + 18 +10 + 11 + 17 + 3 = 70
Inicio-ABCEHM-Fim 3 + 8 + 18 + 5 +17 + 3 = 54
Inicio-ABCEFJKN-Fim 3 + 8 + 18 + 5 + 10 + 9 + 4 + 9 = 66
Inicio-ABCEFJLN-Fim 3 + 8 + 18 + 5 + 10 + 9 + 7 + 9 = 69
Inicio-ABCIJKN-Fim 3 + 8 + 18 + 9 + 9 + 4 + 9 = 60
Inicio-ABCIJLN-Fim 3 + 8 + 18 + 9 + 9 + 7 + 9 = 63
FONTE: Os autores
De acordo com a tabela 21, o pior cenário se dá pela construção em setenta
semanas, o que inviabiliza o projeto. Mas, qual a probabilidade de que isso ocorra?
Consideramos então o Caminho Crítico calculando a média da duração
total do projeto, fazendo:
µ (TProj)= µ (TA) + µ (TB) + µ (TC) + ... + µ (TN)
E a variação total do projeto fazendo:
σ2 (TProj)= σ2 (TA) + σ2 (TB) + σ2 (TC) + ... + σ2 (TN)
Em nosso exemplo, o Caminho Crítico Médio é dado por Início-
ABCEFJLN-Fim, com µ (TProj)=44 e σ2 (TProj)=9.
120
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
Kα =
d – µ (TProj)
σ (TProj)
Para calcular o Caminho Médio, devemos calcular a média de cada atividade
Caminho Crítico e somar essas médias. Verifique os valores calculados µ
(TProj) = 44 e σ2 (TProj)=9 com a ajuda da tabela 20.
E para determinar a probabilidade de terminar o projeto em d
unidades de tempo em relação à distribuição normal padrão (com média 0
e desvio-padrão 1), buscando P(TProj ≤ d) = P(Z ≤ Kα) = 1 – P(Z > Kα)
Onde
.
Assim, a probabilidade de terminar o projeto a fim de evitar a multa do
contrato é dada pela probabilidade de terminar o projeto em 47 semanas, ou seja:
E assim
P(TProj ≤ 47) = P(Z ≤ 1) = 1 – P(Z > 1) = 1 – 0,159 = 0,841, ou seja, temos
84,1% de probabilidade de terminar o projeto em 47 semanas. Mas, a empreiteira
receberá um bônus de $ 150 mil se terminar o projeto em quarenta semanas.
Então, podemos calcular a probabilidade de que isso ocorra, fazendo:
E assim
P(TProj ≤ 40) = P(Z ≤ –1,333) = P(Z > 1,333) = 0,092,, ou seja, a probabilidade
de que a empreiteira consiga terminar a obra em quarenta semanas é de,
aproximadamente, 9%.
AUTOATIVIDADE
Kα =
d – µ (TProj) 40 – 44 –4
σ (TProj) 3 3
= = = 1,333
Kα =
d – µ (TProj) 47 – 44 3
σ (TProj) 3 3
= = = 1
Para encontrar o valor P(Z ≤ Kα), consulte a tabela de distribuição normal no
apêndice, no final do caderno. Devemos procurar na primeira coluna da tabela o valor de
Kα com uma casa decimal, e na primeira linha os centésimos de Kα. O valor de P está na
intersecção entre a coluna e a linha.
Se Kα >0, 1 – P(Z).
Se Kα <0, P(Z).
IMPORTANT
E
121
RESUMO DO TÓPICO 2
Neste tópico, estudamos as técnicas PERT/COM, e vimos:
• que a programação de projetos que envolvem atividades dependentes entre
si pode ser representada através da organização de uma rede (ou grafo) de
atividades.
• como utilizar as técnicas PERT/CPM para resolver os problemas de caminho
crítico e desenvolvimento do projeto.
• como determinar as datas de início e término mais cedo e mais tarde para as
atividades e para o projeto.
• como representar essas datas através do Diagrama de Gantt.
• como programar as atividades e determinar quais delas podem ou não sofrer
folgas ou atrasos.
• e como calcular as probabilidades de terminar um projeto em um dado tempo
d, com base na tabela de distribuição de probabilidades.
122
AUTOATIVIDADE
Para exercitar seus conhecimentos adquiridos, resolva as questões a
seguir:
1 Um latoeiro recebeu um automóvel usado para reformá-lo. Neste, devem
ser feito os serviços de latoaria, pintura, e também a reforma do motor.
As durações e as dependências entre as atividades são dadas no quadro a
seguir:
ATIVIDADE DESCRIÇÃO ATIVIDADE ANTECEDENTE
DURAÇÃO (EM
DIAS)
A Latoaria - 6
B Pintura A 8
C Reforma do motor - 9
Pede-se o tempo total que o latoeiro necessitará para concluir a reforma.
2 (LOESCH; HEIN, 1999, p. 212) - Uma empresa deve realizar o projeto
determinado pelas atividades dadas no quadro a seguir.
ATIVIDADE ATIVIDADE ANTECEDENTE
DURAÇÃO
(EM DIAS)
A - 5
B - 7
C - 10
D A 12
E B e C 4
F B 8
G D e E 11
H B e C 13
I F 10
Diante dessa situação:
a) represente as atividades dadas numa rede de atividades, obedecendo às
dependências entre as atividades.
123
b) Determine o caminho crítico do projeto.
c) Determinas as datas de início e término, mais cedo e mais tarde de cada
atividade.
d) Represente o projeto usando um esboço do Diagrama de Gantt.
e) Qual o menor tempo necessário para realizar o projeto, nessas condições.
3 Considere o mesmo projeto da questão 2, agora com tempos de duração
mais provável, mais otimista e mais pessimista de cada uma das atividades
dadas no quadro a seguir:
ATIVIDADE
DURAÇÃO PREVISTA PARÂMETROS
OTIMISTA MAIS PROVÁVEL PESSIMISTA MÉDIA VARIÂNCIA
A 4 5 6
B 5 6,5 11
C 7 9 17
D 7 11,5 19
E 3 4 5
F 5 7 15
G 2 12 16
H 3 14 19
I 8 9,5 14
a) Complete as colunas do quadro, calculando o tempo médio e a variância de
cada atividade.
b) Calcule o tempo médio e a variância do projeto todo.
c) Qual a probabilidade de terminar esse projeto em até vinte dias?
d) Qual a probabilidade de terminar esse projeto em até trinta dias?
124
125
TÓPICO 3
SIMULAÇÃO
UNIDADE 3
1 INTRODUÇÃO
Loesch e Hein (1999, p. 227) expõem que a palavra simular tem sua
origem no trabalho de Von Neumann que, em 1940, utilizou a expressão análise
de Monte Carlo para significar uma técnica matemática empregada na solução
de problemas de Física Nuclear, para os quais um solução experimental seria
muito dispendiosa, ou um tratamento analítico seria muito complicado.
Simular é essencialmente uma técnica que envolve a construção de um
modelo de uma situação real para posterior experimentação.
2 SIMULAÇÃO DE MONTE CARLO
Imagine uma roleta de jogos de cassino numerada de 00 a 99. Os números
dessa roleta são utilizados para dar uma interpretação a alguns resultados e uma
interpretação a outros resultados. Podemos, por exemplo, imaginar que se queira
simular o sexo de uma criança ao nascer, baseados no fato de que: se der um
número entre 00 e 49, o sexo é masculino; se der um número de 50 a 99, o sexo é
feminino. Pela repetição de experimentos, ou seja, se rodarmos a roleta e anotarmos
o resultado uma considerável quantidade de vezes, teremos uma distribuição
aproximada de 50% de chance de ocorrência de sexo masculino e 50% de chance
de ocorrência de sexo feminino. Assim, o procedimento para a simulação é obtido
por gerar uma tabela de valores aleatórios, sorteados pela roleta de Monte Carlo.
A Tabela 23 a seguir, nos dá alguns valores e suas interpretações.
TABELA 23 - REPRESENTAÇÃO DE SIMULAÇÃO PARA O PROBLEMA DE SEXO DE BEBÊS USANDO
NÚMEROS ALEATÓRIOS SORTEADOS POR UMA ROLETA
Roleta 13 20 40 64 19 90 75 10 12 26 45 82 13 51
Sexo M M M F M F F M M M M F M F
FONTE: Os autores
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
126
Se continuarmos o experimento um número expressivamente grande de
vezes, essa distribuição tenderá a 50% para cada sexo. A lei dos grandes números
nos diz que quanto maior o número de experimentos, mais a frequência relativa
de um evento se aproxima da probabilidade teórica.
Isso nos leva a crer que um processo de simulação deve trabalhar com
muitos dados para podermos chegar a uma conclusão com certo nível de certeza.
A questão é como gerar números aleatórios suficientes sem se cansar,
girando roletas, por exemplo? No Apêndice desse caderno, são encontradas
tabelas de números aleatórios, mas o procedimento mais eficaz atualmente é a
utilização do computadorcomo gerador. Novamente vamos utilizar o software
Microsoft Excel como recurso ao nosso objetivo.
2.1 GERANDO NÚMEROS ALEATÓRIOS NO COMPUTADOR
Existem duas funções padrão do Excel para gerar números aleatórios: a
função ALEATÓRIO(), para a geração de números uniformemente distribuídos
entre 0 e 1; e a função ALEATÓRIOENTRE(A,B), para a geração de números
uniformemente distribuídos entre um valor dado A e outro B.
Podemos fazer o processo de simulação do sexo dos bebês:
• gerando uma coluna de números aleatórios usando a função ALEATÓRIO():
digitamos a função na 1ª linha (célula A1) e a copiamos para um número
considerável de linhas abaixo dela;
• na 2ª coluna usamos uma função SE para definir o sexo do bebê baseado no
número da coluna anterior para cada linha da tabela. Assim, podemos definir
para a célula B1 a fórmula =SE(A1<0,50;”M”;”F”). Essa fórmula analisa o número
que se encontra na célula à esquerda de B1. Assim, se o número for menor que
0,50, a célula recebe o valor M (masculino), se o número não for menor que 0,50,
a célula recebe o valor F (feminino).
Vamos fazer o experimento setenta vezes (setenta células), copiando a
função ALEATÓRIO() nas células A1 até A70 e a fórmula =SE(A1<0,50;”M”;”F”)
até =SE(A70<0,50;”M”;”F”).
Para calcular o número de vezes que os valores M e F aparecem, na
célula C1 vamos utilizar uma função de contagem dada pela fórmula =CONT.
SE(B1:B70;”M”) que nos dá a quantidade de letras M que aparecem na tabela.
Podemos fazer o mesmo com a letra F, na célula C2. Para indicar a frequência
relativa de M e F, podemos dividir os valores calculados em C1 e C2 por 100,
encontrado o percentual de bebês do sexo masculino e feminino. Quanto mais
linhas forem consideradas no experimento, mais próximos de 50% serão esses
quocientes.
TÓPICO 3 | SIMULAÇÃO
127
Outra maneira de gerar números aleatórios no Microsoft Excel é utilizar
as ferramentas de Análise de dados disponível como suplemento desse software.
Possivelmente será necessário habilitar o uso da ferramenta Análise de Dados
seguindo os procedimentos:
• clicar no Menu do Excel e selecionar o botão Opções do Excel;
• na Guia Suplementos, clicar em Ir... , para a opção Gerenciar Suplementos do Excel;
• selecionar Ferramentas de Análise e clicar OK.
Na aba Dados é habilitada (à direita e em cima) um botão de Análise de
Dados. Clicando nele temos a caixa de diálogo de mesmo nome, onde selecionamos
a opção Geração de número aleatório. Abre-se uma nova caixa de diálogo intitulada
Geração de Número Aleatório, mostrada na Figura 22.
FONTE: Microsoft Excel
Nessa caixa de diálogo devemos definir alguns valores:
• Número de variáveis: quantas variáveis de decisão queremos simular
• Número de números aleatórios: quantos números queremos simular para cada
variável.
FIGURA 22 - CAIXA DE DIÁLOGO GERAÇÃO DE NÚMEROS ALEATÓRIOS
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
128
• Distribuição: que tipo de distribuição probabilística queremos usar (Uniforme,
Normal, Bernoulli, Poisson, Padronizada ou Discreta). Essas distribuições são
melhor estudadas nas disciplinas de Estatística ou Probabilidade e Estatística.
• Parâmetros: dependem da distribuição adotada. No caso da distribuição
Normal, os parâmetros são Média e Desvio Padrão.
• Semente aleatória: um valor que é gerador de números aleatórios. Se não
especificado, o Excel usa um número qualquer.
• Opções de saída: é o intervalo de células em que queremos colocar nossos
números aleatórios.
3 PLANEJAMENTO DE SIMULAÇÕES
Para elaborar um projeto ou modelo que simule uma situação real deve
obedecer a uma estrutura, adotada como padrão para a maioria dos profissionais
que trabalham com simulação. Essa estrutura é definida por:
1. Formulação do problema: em que são especificadas as informações
de que o modelo necessita e identificados os tipos de questões que devem ser
respondidas.
2. Identificação das variáveis relevantes: são variáveis que representarão
aspectos de interesse do sistema que foram identificadas no primeiro passo, e
também, outras geradas dentro do modelo, para chegar à solução final.
3. Formalização das equações do modelo: uma vez definido o conjunto de
variáveis significativas, as relações entre elas devem ser formalmente escritas em
termos matemáticos. Essas relações podem ser definidas pela lógica do problema
ou empíricas, obtidas por técnicas de estimação, segundo as quais alguns fatores
são estimados a partir de dados históricos.
4. Codificação do modelo: geralmente os modelos são grandes e
complexos, podendo ser programados para solução por computadores. Como
essa programação influencia o desempenho do modelo, esta fase deve ser realizada
por especialistas no assunto, com o objetivo de se obter a melhor programação
possível. As planilhas eletrônicas têm sido utilizadas atualmente, além de outros
programas especiais.
5. Teste do modelo: esta é uma fase que deve ser realizada cuidadosamente.
São realizados testes com o objetivo de ajustar o modelo ao que se espera dele
e validá-lo de forma a promover sua aceitação. Às vezes, são aplicados dados
históricos para verificar se os resultados obtidos correspondem aos conseguidos
na realidade.
TÓPICO 3 | SIMULAÇÃO
129
6. Aplicação do modelo: uma vez que tenha sido validado, o modelo pode
ser utilizado para produzir respostas para as questões identificadas no passo 1.
3.1 EXEMPLO DE SIMULAÇÃO
“Uma máquina de encher frascos de perfume opera a um custo de $ 0,50 por
ml colocado em cada frasco e mais um custo fixo de $ 10,00. A quantidade colocada no
frasco é uma variável aleatória normal de desvio-padrão 15 ml, cujo valor médio vai
depender do ajuste da máquina. O frasco tem capacidade para 140 ml e é vendido por
$ 75,00 a unidade. Se forem colocados no frasco menos de 80 ml, o cliente tem direito
a reembolso. Se forem embalados mais de 140 ml, o frasco transborda, ocasionando
desperdício, e assim, prejuízo. Qual a regulagem ideal da máquina, de forma que se
maximize o lucro esperado da venda?”
As variáveis envolvidas no problema são: lucro com a venda e a quantidade
média (em ml) que a máquina deve colocar em cada frasco. Chamando L o lucro,
que depende da quantidade média x de perfume, podemos escrever a função que
determina o lucro através da diferença entre a receita obtida pela venda e os custos de
produção. A receita é de R$ 75,00 por unidade vendida, não importando a quantidade
de perfume colocada no frasco, e o custo é dado por C(x) = 5x + 10. Assim, o lucro
é calculado por L(x)75 – (5x + 10), ou melhor, L(x)65 – 5x, onde x é a quantidade
média de perfume (em ml) colocado no frasco. Assim, devemos determinar qual é
essa quantidade média x através de simulações.
Para essas simulações, vamos utilizar a ferramenta Análise de Dados: geração de
números aleatórios do Excel.
O que devemos fazer é gerar simulações para os ajustes da máquina e verificar
qual dos ajustes nos dá o maior lucro médio. Para isso, fazemos simulações ajustando
a máquina para colocar, em média, 80 ml de perfume em cada frasco, depois 90 ml
em cada frasco, depois 100 ml, 110 ml, 120 ml, 130 ml e, por último, 140 ml em cada
frasco, que é a capacidade deste frasco.
Antes de partir para as simulações, vamos explorar um pouquinho esses
valores: se ajustarmos a máquina com média 80 ml por frasco, usando o desvio-
padrão 15 ml dado pelo problema, teremos muitos frascos com menos de 80 ml,
e, assim, a empresa deverá fazer muitas devoluções. Por outro lado, se usarmos o
desvio-padrão de 15 ml com uma média de 140 ml colocados em cada frasco no
ajuste da máquina, o desperdício será muito grande, já que a máquina colocará, em
alguns frascos, mais perfume do que a capacidade do mesmo. Com essas medidas o
lucro, definitivamente, não será o melhor. Assim, podemos reduzir nosso número de
simulações, ou melhor, diminuir as simulações feitas a partir das médias estipuladas.
Para não alongar demais o problema, não vamos simular médias intermediárias
(como95, 105, 115 etc.), pois assim deveríamos simular todas as médias entre 80 e 140
ml (80, 81, 82, 83 etc.), o que nos daria muito trabalho.
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
130
Vamos então à simulação!
Numa planilha do Microsoft Excel, vamos colocar números aleatórios,
seguindo uma distribuição normal com a média definida por nós e o desvio-padrão
quinze. Assim, podemos definir uma coluna da planilha para cada média simulada.
Por exemplo, a coluna A terá os números aleatórios referentes à média noventa e
desvio-padrão quinze; a coluna B terá os números aleatórios referentes a média cem
com mesmo desvio-padrão; a coluna C terá os números aleatórios gerados a partir da
média 110; a coluna D para a média 120 e a coluna E para a média 130.
O que colocar nas colunas? Na primeira linha, escreva Média noventa,
Média cem, Média 110, Média 120 e Média 130, nas células A1, B1, C1, D1 e E1,
respectivamente. O restante deixe que o Excel o faça por você. Na aba Dados clique
na opção que habilitamos anteriormente, Análise de Dados, e na caixa que abre escolha
Geração de números aleatórios. Na caixa de diálogo que aparece, vamos definir os
seguintes parâmetros:
Número de variáveis: 1
Número de números aleatórios: 1000
Distribuição: Normal
Parâmetros: Média noventa e desvio-padrão quinze
Semente aleatória: podemos deixar em branco
Opções de saída: selecione Intervalo de saída e escreva A2
Na planilha aparecerão 1000 números aleatórios na coluna A. Faça o mesmo
procedimento para as colunas B, C, D e E, apenas alternado o valor da média da
distribuição Normal para 100, 110, 120 e 130, respectivamente. Pronto, estão geradas
as simulações. Agora, vamos aos cálculos para verificar qual média dará o melhor
ajuste, mas o Excel também nos fará os cálculos. Claro que temos que informar a ele
o que fazer. Lembre-se de que a máquina não trabalha sozinha. Nas células G1, H1,
I1, J1 e K1, escreva, respectivamente, Lucro (90), Lucro (100), Lucro (110), Lucro (120)
e Lucro (130).
Vamos usar a função SE do Excel para calcular o lucro, se houver lucro,
fazendo o seguinte:
Na célula G2, escreva a função =SE(A2>80;65-0,5*A2;-75). Essa função faz o
seguinte: se o valor da célula A2 for maior que oitenta (nosso limite mínimo), então
o lucro será calculado por 65 reais de receita menos o custo de R$ 0,50 para cada ml
dado na célula A2. Caso contrário (se A2 for menor que 80), então, o lucro é de R$ 75
negativos, ou seja, prejuízo de setenta e cinco reais.
Agora, para as outras colunas, basta clicar na célula G2 e arrastar a função Se
para as células vizinhas e o Excel dá o resultado do lucro para cada valor das colunas
A até E. Em seguida, selecione as células G2 até K2 a arraste a função SE até o final
da simulação, ou seja, até as células G1001 e K1001. Assim, são calculados lucros de
todas as simulações realizadas nas cinco colunas.
TÓPICO 3 | SIMULAÇÃO
131
Só falta determinar o lucro médio. Este pode ser calculado também usando
uma função do Excel, na célula G1002. Logo abaixo dos lucros da simulação para
Média noventa, escrevemos a função =MÉDIA(G2:G1001), e arrastamos essa função
para as células vizinhas H1002, I1002, J1002 e K1002. Nessas células, estão os lucros
médios obtidos pela simulação para os ajustes da média de 90 até 130 ml. E só escolher
o maior lucro.
Fizemos uma simulação para testes e os resultados estão mostrados na
Tabela 24.
TABELA 24 - EXEMPLO DE SIMULAÇÃO REALIZADO PARA O PROBLEMA DO PERFUME
A B C D E F G H I J K
1 Média 90
Média
100
Média
110
Média
120
Média
130
Lucro
(90)
Lucro
(100)
Lucro
(110)
Lucro
(120)
Lucro
(130)
2 85,50 97,68 94,51 104,41 118,91 22,25 16,16 17,74 12,80 5,55
3 70,83 86,17 108,85 106,35 128,62 -75,00 21,92 10,58 11,82 0,69
4 93,66 104,92 143,60 121,11 146,84 18,17 12,54 -6,80 4,45 -8,42
5 109,15 133,98 116,37 123,99 140,66 10,43 -1,99 6,81 3,01 -5,33
6 107,98 82,53 109,42 105,29 157,77 11,01 23,74 10,29 12,35 -13,88
7 116,00 101,77 103,73 107,74 132,34 7,00 14,11 13,14 11,13 -1,17
8 57,25 119,21 119,50 107,22 105,43 -75,00 5,40 5,25 11,39 12,29
9 86,49 83,63 108,61 121,06 131,38 21,76 23,19 10,69 4,47 -0,69
10 106,43 99,94 114,38 103,76 127,23 11,79 15,03 7,81 13,12 1,38
999 97,25 78,89 117,47 107,04 132,08 16,38 -75,00 6,26 11,48 -1,04
1000 98,63 86,83 96,94 128,80 128,06 15,69 21,59 16,53 0,60 0,97
1001 95,02 108,41 111,51 101,53 107,99 17,49 10,80 9,25 14,24 11,00
1002 Lucro Médio: -7,93 5,74 7,60 4,70 0,06
FONTE: Os autores
Perceba que ocultamos parte da tabela (da linha 11 à linha 998) por questão
de espaço. E como os números foram gerados aleatoriamente, se você repetir os
procedimentos, seus valores poderão ser diferentes dos valores calculados aqui,
mas os resultados devem ser os mesmos esperados. Analisando os lucros médios
obtidos a partir dessa simulação, temos as seguintes conclusões:
• se a máquina for regulada com média de 90 ml por frasco, teremos um lucro
médio esperado de -7,93 reais, ou seja, um prejuízo de R$ 7,93;
• se a máquina for regulada com média de 100 ml por frasco, teremos um lucro
médio esperado de 5,74 reais;
• se a máquina for regulada com média de 110 ml por frasco, teremos um lucro
médio esperado de 7,60 reais;
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
132
LEITURA COMPLEMENTAR
• se a máquina for regulada com média de 120 ml por frasco, teremos um lucro
médio esperado de 4,70;
• se a máquina for regulada com média de 130 ml por frasco, teremos um lucro
médio esperado de R$ 0,06, ou seja, seis centavos.
Desse modo, podemos concluir que o melhor lucro médio esperado
(solução ótima) para o problema do perfume será obtido ao ajustar a máquina
com uma média de 110 ml por frasco, obedecendo ao desvio-padrão 15 ml. O
lucro médio é de R$ 7,60 por frasco de perfume.
ONDE ENCONTRAR NÚMEROS ALEATÓRIOS?
Com o surgimento das primeiras linguagens de programação, os
programadores escreviam rotinas para a geração de números aleatórios. Ou
melhor: pseudo-aleatórios, pois o computador não consegue sortear de fato,
como o faz uma pessoa ao girar a roda de uma roleta e anotar o resultado.
Rotinas matemáticas foram escritas, baseadas no Método Congruencial Misto, para
a geração de sequências numéricas que parecem de fato ser números sorteados
ao acaso: só que não o são. Estes números são calculados, sequencialmente,
um usando o resultado do anterior. Parte-se de um número aleatório inicial x0,
chamado de semente, e a partir daí, calculam-se os demais valores da seqüência
através da função recorrente xn = (axn–1 + c)(módulom)param = 1,2,3...
Onde a, c e m são constantes inteiras e positivas tais que a < m e c < m.
Esta notação significa que xn é o resto da divisão de ax + c por m. Isto significa
que 0 ≤ xn < m, de forma que a sequência pode apresentar no máximo m valores
diferentes antes de voltar a ser repetida. Por exemplo, suponha tomar-se xn =
(1257xn-1 + 2471)(módulo 32768). Partindo-se de x0 = 12345, é gerada a seqüência
12345 20872 24175 14510 22533 14900 21243
31770 25937 1120 1287 14598 2077 24588
9363 8050 28777 32056 24991 24414 20021
Você pode fazer outras simulações para comprovar esses valores. Lembre-se de
que pode haver diferenças nos lucros médios devido às diferentes simulações.
UNI
TÓPICO 3 | SIMULAÇÃO
133
3044 27691 10442 20865 15376 29751 11190
10829 15804 ...
Caso se desejem números aleatórios reais entre 0 e 1, basta dividir cada
um dos números inteiros da sequência por 32768. A escolha de a e c deve ser no
sentido de produzir boas séries de números aleatórios. A sequência deve passar
pelo teste de aderência à distribuição uniforme e inexistência de autocorrelação
na série para que se possam utilizar esse números pseudo-aleatórios como se
realmente fossem resultados de experimentos realizados em uma população
uniformemente distribuída.
Atualmente, muitas linguagens de programação incluem em suas
bibliotecas de rotinas o método congruencial para a obtenção de números
aleatórios inteiros equiprováveis ou números aleatóriosreais distribuídos no
intervalo [0, 1).
Para simular resultados de distribuições discretas empíricas, pode-
se utilizar números aleatórios uniformemente distribuídos no intervalo [0, 1).
Para isso, deve-se previamente fixar os limites das faixas dentro das quais o
número aleatório gerado determina um resultado em particular, segundo uma
distribuição discreta empírica. Tome-se, por exemplo, uma distribuição discreta
empírica como a da tabela a seguir.
k P(k) F(k) = P(x ≤ k) Limites dos números aleatórios
1 0,20 0,20 [0,000 , 0,200)
2 0,45 0,65 [0,200 , 0,650)
3 0,25 0,90 [0,650 , 0,900)
4 0,1 1,00 [0,900 , 1,000)
Assim, se um números aleatório for 0,29194, ele pertence ao intervalo
[0,200 , 0,650), que corresponde a um valor simulado k = 2.
Pode-se utilizar a tabela 1 de números aleatórios uniformemente
distribuídos do apêndice para gerar simulações de distribuições uniformes
e de distribuições discretas empíricas. A tabela pode ser utilizada para criar
uma sequência de números aleatórios, independente da forma como for lida:
sequencialmente em linha, em comula, em forma alternada, de trás para frente
etc.
Porém, caso se deseje simular determinados eventos estocásticos, pode
ser que a distribuição de probabilidade ocorra segundo algum modelo clássico
UNIDADE 3 | PROGRAMAÇÃO DE PROJETOS
134
da Teoria das Probabilidades, contínuo (normal, exponencial, etc.) ou discreto
(binomial, Poissom, Pascal etc.).
No caso de estaturas de pessoas, caso se verifique ser esta variável aleatória
uniformemente distribuída em torno de um valor médio, com um determinado
desvio-padrão, estes valores devem ser tomados a partir de uma função que gera
números aleatórios, sendo a distribuição normal com esses parâmetros. Porém,
é necessário, antes, submeter os dados empíricos a um teste não paramétrico
de aderência a uma distribuição. Aceita a hipótese, tomam-se os parâmetros
estimados para efetuar as simulações.
Como exemplo, suponha-se que a estatura de X homens de uma certa
população seja uniformemente distribuída segundo uma normal padrão de
média µ = 1,70 m e desvio-padrão σ = 0,12m. Para se proceder a simulação
com emprego da tabela 2 do apêndice, embora ela seja uma tabela de números
aleatórios provindos de uma distribuição padronizada, deve-se considerar o uso
da relação.
Onde Z=N(0,1) e X = N(µ, σ2), para gerar valores de X. Desta forma, a
tabela 2 pode ser utilizada para obter o valor de Z, e a relação acima permite
transformá-lo em estaturas simuladas X. Assim, por exemplo, tomando-se um
número aleatório da tabela, como Z = -0,30023, este irá simular uma estatura x =
–0,30023 • 0,12 + 1,70, ou seja, 1,66 metros.
FONTE: LOESCH, Claudio; HEIN, Nelson. Pesquisa operacional: fundamentos e modelos.
Blumenau: Furb, 1999. p. 228.
Z = ⇒ X = Zσ +µ
X – µ
σ
135
RESUMO DO TÓPICO 3
Neste tópico, você viu que:
• A simulação é utilizada quando experimentos reais são muito dispendiosos ou
demorados.
• Dentre as técnicas de simulação se destaca a Simulação de Monte Carlo,
baseada em sorteio aleatório de números numa roleta. Podemos ainda realizar
esses sorteios através de moedas, dados, tabelas de números aleatórios ou
outros dispositivos como o computador.
• Um problema de simulação deve passar por alguns procedimentos estruturais:
• formulação do problema;
• identificação das variáveis relevantes;
• formalização das equações do modelo;
• codificação do modelo;
• teste do modelo;
• aplicação do modelo.
136
AUTOATIVIDADE
Exercite seus conhecimentos adquiridos, resolvendo as questões que
seguem:
1 Usando o exemplo de simulação da máquina de perfumes, simule qual
seria o lucro médio obtido se a máquina fosse ajustada:
a) com a média 80 ml e desvio-padrão 15 ml.
b) com a média 140 ml e desvio-padrão 15 ml.
2 Uma loja de autopeças deseja estabelecer uma política de reposição
de estoque de um produto vendido por ela, ou seja, a partir de quantas
unidades ela deve fazer um pedido de reposição ao fornecedor. O objetivo
dessa loja é maximizar o lucro com as vendas desse produto. Como o
fornecedor necessita de 3 a 5 dias para a reposição, segundo a distribuição
de probabilidades discreta dada por:
Dias de espera (k) Probabilidade P(k)
3 0,2
4 0,5
5 0,3
A reposição por parte do fornecedor é feita em lotes de 1000 peças e
tem um custo de R$ 100. Cada peça vendida dá um lucro de R$ 1,50 para a
loja. Cada peça tem um custo de manutenção para a loja de R$ 0,10.
A procura pela peça na loja obedece uma distribuição de Poisson, com
média 120 peças vendidas por dia. Na falta de peças, o cliente compra suas
peças em outra loja e com isso o negócio não é feito.
Simule o lucro líquido obtido com a venda dessas peças, ou seja,
descontando os custos de manutenção e reposição das peças. Verifique qual
quantidade deve ser mantida em estoque para que a loja tenha maior ganho
com a venda.
Dica: Para simular uma distribuição discreta no Excel, reproduza
a tabela acima numa planilha, em um intervalo como A1:B3, e selecione a
ferramenta geração de números aleatórios. Na definição da distribuição escolha
Discreta e como parâmetro use o intervalo A1:B3.
137
REFERÊNCIAS
BIEMBENGUT, Maria Salett; HEIN, Nelson. Modelagem matemática no
ensino. 2. ed. Blumenau: Contexto, 2002.
BOLDRINI, Jose L.; COSTA, Sueli I. R.; FIGUEIREDO, Vera L.; WETZLER,
Henry G. Álgebra linear. São Paulo: Harper e Row do Brasil, 1980.
BRONSON, Richard. Pesquisa operacional. São Paulo: McGraw-Hill do Brasil,
1985.
HILLIER, Frederick S.; LIEBERMAN, Gerald J. Introdução à pesquisa
operacional. 8. ed. São Paulo: McGraw-Hill, 2006.
LISBOA, Erico F. A. Pesquisa operacional. Disponível em: <www.ericolisboa.
eng.br>. Acesso em: 21 abr. 2009.
LOESCH, Cláudio; HEIN, Nelson. Pesquisa operacional: fundamentos e
modelos Blumenau: Editora da FURB, 1999.
NOGUEIRA, Fernando. PERT/CPM. Disponível em: <www.engprod.ufjf.br/
fernando/epd015/programa%E7%E3o_linear.pdf>. Acesso em: 21 abr. 2009.
VARGAS, Saulo; SOUZA, André M. S. Probabilidade e estatística. Blumenau:
Uniasselvi, 2007.
WAGNER, Harvey M. Pesquisa operacional. 2. ed. Rio de Janeiro: Prentice-Hall,
1986.
138
ANOTAÇÕES
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________