1. Universidade Federal de Viçosa
Departamento de Informática
Prof. Mauro Nacif Rocha
Prof. Luiz Aurélio Raggi
Prof. Heleno do Nascimento Santos
INF-280
Pesquisa Operacional I
Conteúdo:
Programação Linear
Programação em Redes
Fevereiro de 2005
2. ASPECTOS GERAIS DA PESQUISA OPERACIONAL........................................................................................ 1
EXEMPLOS DE ALGUNS PROBLEMAS COMUNS DA P.O............................................................................................... 5
PARTE I – PROGRAMAÇÃO LINEAR ................................................................................................................. 8
EXEMPLOS DE MODELOS PARA ALGUNS PROBLEMAS CLÁSSICOS DE PROGRAMAÇÃO LINEAR .................................. 13
PROBLEMAS PARA MODELAGEM ............................................................................................................................ 17
SOLUÇÃO DE UM PROBLEMA DE PROGRAMAÇÃO LINEAR – INTERPRETAÇÃO GEOMÉTRICA ...................................... 19
CASOS ENCONTRADOS NA RESOLUÇÃO GRÁFICA ................................................................................................... 23
O MÉTODO SIMPLEX.......................................................................................................................................... 27
MODELO MATEMÁTICO E FORMA PADRÃO DE UM PPL............................................................................................. 27
DEFINIÇÕES BÁSICAS ............................................................................................................................................. 30
TEOREMAS FUNDAMENTAIS ................................................................................................................................... 35
O ALGORITMO SIMPLEX ........................................................................................................................................ 37
ALGORITMO SIMPLEX – MÉTODO DAS DUAS FASES ................................................................................................ 47
ELEMENTOS DE PÓS-OTIMIZAÇÃO................................................................................................................ 53
MUDANÇA NO VETOR C.......................................................................................................................................... 55
MUDANÇA NO VETOR B.......................................................................................................................................... 56
DUALIDADE .......................................................................................................................................................... 57
PARTE II – PROGRAMAÇÃO EM REDES......................................................................................................... 63
INTRODUÇÃO ........................................................................................................................................................ 63
INTRODUÇÃO À TEORIA DE GRAFOS ............................................................................................................ 65
UMA BREVE HISTÓRIA DA TEORIA DOS GRAFOS ..................................................................................................... 65
CONCEITOS BÁSICOS DA TEORIA DE GRAFOS.......................................................................................................... 68
FLUXOS EM REDE ............................................................................................................................................... 74
FORMULAÇÃO GERAL (CLÁSSICA) PARA PROBLEMAS DE FLUXOS EM REDE............................................................. 75
O PROBLEMA DE FLUXO DE CUSTO MÍNIMO (PFCM).............................................................................................. 79
O PROBLEMA DE TRANSPORTE (PT) ....................................................................................................................... 87
O PROBLEMA DE DESIGNAÇÃO (PD) ...................................................................................................................... 94
O PROBLEMA DO CAMINHO MAIS CURTO (PCMC) ............................................................................................... 100
O PROBLEMA DE FLUXO MÁXIMO (PFM) ............................................................................................................. 104
O PROBLEMA DA ÁRVORE GERADORA MÍNIMA (AGM) ........................................................................................ 111
O PROBLEMA DE STEINER EM GRAFOS NÃO DIRECIONADOS .................................................................................. 115
REDES PERT / CPM............................................................................................................................................ 117
REDES PERT....................................................................................................................................................... 117
REDES PERT/CPM.............................................................................................................................................. 121
BIBLIOGRAFIA................................................................................................................................................... 125
ii
3. 1
Aspectos Gerais da Pesquisa Operacional
1. Introdução e Histórico
Durante a II Guerra Mundial, líderes militares da Inglaterra e dos Estados Unidos requisita-ram
um grupo de cientistas de diversas áreas de conhecimento para analisarem alguns problemas
militares. Entre esses problemas citam-se: desenvolvimento, operação e localização de radares, ge-renciamento
e controle de navios de apoio, planejamento de ataques aéreos, lançamento de bombas
contra submarinos, defesa das comunidades européias contra ataques aéreos inimigos, abastecimen-to
de tropas com munições e alimentos, operações de mineração, etc. A aplicação de métodos ma-temáticos
e científicos para ajudar as operações militares foi chamada “Operational Research” ou
“Operations Research”.
1759 (Quesney),
1874 (Walras)
Modelos primitivos de programação matemática.
1873 (Jordan),
1896 (Minkowsky), 1903 (Farkas)
Bases matemáticas para os modelos lineares.
1920 (Markov) Modelos dinãmicos.
192* (periódicos de negócios e en-genharia
industrial)
Sugestões inovadoras para controle econômico de esto-ques.
1920 (Erlang) Estudos pioneiros dos fenômenos das filas de espera.
1937 (Von Neumann), 1939 (Kan-torovich)
Modelos econômicos mais sofisticados.
1938 (RAF – viabilidade dos siste-mas
de radar)
Operational Research – RESEARCH into (military)
OPERATIONS
1940 (tomada da França pelos ale-mães)
Maior conquista da OR na II Guerra.
1947 (Dantzig) Primeira formulação abstrata de um problema de progra-mação
linear.
a partir de 1947 Aplicações na engenharia, economia, controle de estoque,
análise de tráfego aéreo, agricultura, comunicação, plane-jamento
rural e urbano, distribuição de energia e outros
Obs.: U.K. / Europa: Operational Research
E.U.A.: Operations Research
4. 2
2. Definição
“Pesquisa Operacional é o uso do método científico com o objetivo de prover departamentos exe-cutivos
de elementos quantitativos para a tomada de decisões, com relação a operações sob seu
controle” (Kittel, 1947).
“A Pesquisa Operacional é a aplicação do método científico, por equipes multidisciplinares, a pro-blemas
envolvendo o controle de sistemas organizados de forma a fornecer soluções que melhor
interessam a determinada organização” (Ackoff,1968).
“Pesquisa Operacional é uma metodologia de estruturar processos aparentemente não estruturados
por meio da construção de modelos. Utiliza um conjunto de técnicas quantitativas com o intuito de
resolver os aspectos matemáticos dos modelos” (Ehrlich, 1991).
Hoje, o termo operations research, ou pesquisa operacional, significa “um método científico
para tomada de decisão, que busca determinar como melhor planejar e operar um sistema, usual-mente
sob condições que requerem alocação de recursos escassos”.
3. A Metodologia da Pesquisa Operacional
Geralmente a atividade de uma equipe de P.O. envolve as seguintes fases:
· identificação do problema;
· construção de um modelo;
· obtenção da solução;
· teste do modelo e avaliação da solução;
· implantação e acompanhamento da solução.
Deve-se salientar que tais fases não são distintas, superpondo-se e interagindo entre si, na
tentativa de se obter uma melhor identificação entre o modelo e o real. Quando a pesquisa opera-cional
é usada para resolver um problema de uma organização, o seguinte procedimento, poderá ser
seguido:
Passo 1 - Identificação e formulação do problema
Em primeiro lugar deve ser definido claramente o problema da organização, incluindo a es-pecificação
dos objetivos e as partes da organização que devem ser estudadas antes que o problema
possa ser resolvido.
Passo 2 - Observação do sistema
Dados devem ser coletados para estimar valores de parãmetros que afetam o problema da
organização. Estes valores são usados para desenvolver e avaliar o modelo matemático para o pro-blema.
Passo 3 - Formulação do modelo matemático para o problema
Consiste no desenvolvimento do modelo matemático para o problema. Geralmente, existem
várias técnicas que podem ser aplicadas na solução dos modelos matemáticos. A técnica adequada é
selecionada em função das características do modelo representativo do problema. Algumas situa-ções,
no entanto, são tão complexas que não existem modelos analíticos tratáveis que possam repre-
5. sentá-las. Quando isso acontece é possível desenvolver modelos de simulação e usar a capacidade
dos computadores para aproximar o comportamento desses sistemas.
3
Passo 4 - Verificação do modelo e uso do modelo para predição
Verifica-se se o modelo matemático proposto para o problema é uma representação fidedig-na
da realidade. Os dados coletados durante a observação do problema podem ser usados para a va-lidação
do modelo na situação corrente.
Passo 5 - Selecionar uma alternativa aceitável
Dado o modelo do problema e um conjunto de alternativas (soluções viáveis) deve-se esco-lher
aquela (se existir) que melhor atende aos objetivos da organização. Em alguns casos, a seleção
da melhor alternativa possível é um problema de difícil solução e, nesses casos, aceita-se uma “boa”
alternativa.
Passo 6 - Apresentação dos resultados e conclusões
A partir da definição do modelo e das alternativas determinadas para o problema são feitas
as recomendações para os gerentes das organizações para que eles possam tomar as decisões que
melhor atendem os objetivos buscados.
Passo 7 - Implementação e avaliação das recomendações
Se a organização aceita o estudo realizado e as recomendações feitas, parte-se para a fase de
implementação da solução, a qual deve ser constantemente monitorada, e atualizada dinamicamen-te,
fazendo-se mudanças quando necessárias.
4. Áreas de aplicação
Segundo trabalhos apresentados em reuniões da Sociedade Brasileira de Pesquisa Operacio-nal
(SOBRAPO), citam-se abaixo algumas áreas onde a P.O. foi aplicada com algum sucesso e on-de
se observa a grande variedade dessas aplicações:
· administração
· agropecuária
· economia e planejamento econômico
· educação e saúde
· energia
· engenharia
· forças armadas
· investimentos e finanças
· localização-armazenamento-distribuição
· planejamento e controle da produção
· planejamento urbano e regional
· recursos hídricos
· siderurgia
· telecomunicações
· transporte
6. 4
5. Técnicas aplicadas
Os trabalhos de PO desenvolvidos e submetidos para apresentação em congressos e para pu-blicação
revistas científicas envolvem a utilização das seguintes técnicas:
· Análise e previsão de séries temporais
· Controle e qualidade
· Estatística
· Teoria dos grafos
· Otimização
· Programação matemática
· Processos estocásticos e teorias das filas
· Simulação
· Teoria da decisão e teoria dos jogos
Estas técnicas permitem que se resolva uma variedade enorme de problemas, dentre os quais
são típicos:
· Alocação de recursos
· Localização e distribuição da produção
· Estoque
· Substituição e reposição de equipamentos
· Seqüenciamento e coordenação de tarefas
· Determinação de caminhos em rede
· Situações de competição (teoria dos jogos)
· Busca de informação
· Roteamento de veículos
· Fluxos em rede
· Problemas de características híbridas
6. Surgimento e desenvolvimento da PO no Brasil
O início da P.O. no Brasil se deu aproximadamente uma década após sua implantação na
Grã-Bretanha e nos Estados Unidos. Assim, já nos meados da década de 50, professores com for-mação
em Engenharia, Matemática e/ou Estatística, entusiasmados com as novas técnicas relacio-nadas
a P.O. que aqui chegavam pela difusão natural do conhecimento humano, começaram a for-mar
equipes de P.O. nas universidades e instituições de ensino (ITA, PUC, COPPE-UFRJ, UFPB,
UNICAMP, UFSC, UFMG, UFV, etc.), reproduzindo-se e induzindo a formação de equipes em
conjunto com as empresas (PETROBRÁS, ELETROBRÁS, USIMINAS, CSN, EMBRAPA,
SOUZA CRUZ, TELEBRÁS, etc.), bem como a formação de consultorias nas grandes cidades.
Atualmente, vê-se com certo otimismo as perspectivas da P.O. no Brasil e, em particular, na
Agricultura, Sistemas de Produção e Engenharia de Alimentos, baseando-se nos seguintes fatores:
· A crise como elemento propulsor (escassez de recursos);
· A explosão da informática;
· Massa crítica existente de analistas de P.O.;
· Integração universidade ´ empresa;
· Seminários de P.O. aplicada à agropecuária;
· Existência de cursos de P.O. nas universidades brasileiras;
· Cursos e pesquisas em andamento na COPPE, UNICAMP, UFPb, UFSc, EMBRAPA, etc.
7. 5
Exemplos de Alguns Problemas Comuns da P.O.
Problema do Caminho Mínimo (PCM)
Objetivos: determinar a rota de menor caminho (distância, tempo
ou custo) existente entre um ponto de origem (cidade, endereço,
computador, objeto etc.) e um ponto de destino.
Problemas de Localização de Facilidades
Objetivos: determinar a localização e capacidade das faci-lidades
(restaurantes, depósitos, antenas de rádio etc.) de
forma a suprir a demanda da região toda com um custo
mínimo e/ou lucro máximo (considerando um determinado
período). Cada facilidade possui normalmente um custo
fixo de instalação e custos variáveis de operação.
Problema da Mochila
Rolando Caio da Rocha, um exuberante alpinista, está se preparando para uma longa escalada nos
Alpes. Ele consegue levar até W quilos em sua mochila. Ele tem N diferentes tipos de itens que po-de
incluir em seu fardo, e cada unidade de item j pesa wj quilos. Para cada item j, ele calculou um
valor numérico Rj representando o valor de sobrevivência de cada unidade do item. Como exemplo,
se ele levar cinco unidades do item 3 e sete unidades do item 9, o “valor” para ele desta seleção na
mochila é 5R3 + 7R9. O problema do Rolando é escolher o número de cada tipo para incluir em sua
mochila.
8. 6
Escolha da Mistura para Rações
Grão 1 Grão 2 Grão 3 Necessidades mínimas
Nutriente A 2 3 7 1250
Nutriente B 1 1 0 250
Nutriente C 5 3 0 900
Nutriente D 0,6 0,25 1 232,5
$/peso 41 35 96
Objetivos: formular uma ração formada a partir da mistura dos grãos que atenda às necessidades
mínimas e máximas de nutrientes e tenha um custo mínimo.
Bin-packing / Cutting Stock
Barra (bin) = 4100mm
Demanda (mm)
3100
1930
1850
850
850
795
639
Objetivos: determinar a quantidade mínima possível de
barras para que sejam cortados todos os pedaços neces-sários
para suprir a demanda.
Fornecimento de Produtos através de uma Rede de Transportes
Usinas Depósitos
Fornecimentos
disponíveis
Necessidades
de demanda
S1
S2
S3
Sm
D1
D2
D3
Dn
Objetivos: determinar a quantidade do produto que cada fornecedor deve enviar para cada depósito,
de forma que o custo total do transporte seja mínimo, que cada depósito tenha sua demanda atendi-da,
e que nenhum depósito estoure sua capacidade de fornecimento.
9. 7
Problemas de Produção
Recursos Especificações Atividades
INSUMOS PRODUTOS
Máquinas
Produto 1
Ferramentas
Produto 2
Capital
Û
Decisões
Û
.
Matéria prima
.
Mão-de-obra
Produto n
CUSTOS RECEITA
Objetivos: determinar as atividades que devem ser realizadas ou produzidas de forma a maximizar o
lucro ou minimizar o custo de produção, levando-se em conta a quantidade máxima disponível para
cada insumo.
O Problema de Designação (caso particular do problema de transporte)
Indivíduos ou máqui-nas
(n)
Custos cij Tarefas a serem execu-tadas
(n)
1 1
2 2
3 3
Objetivos: minimizar o custo total para executar um conjunto de tarefas, onde cada tarefa deve ser
executada por uma única máquina, e cada máquina executa uma única tarefa.
10. 8
Parte I – Programação Linear
1. O significado da expressão
“PROGRAMAÇÃO” ⇒ alocação de itens ou entidades
“LINEAR” ⇒ relativo a funções, equações ou inequações lineares
2. O problema geral
Recursos escassos de-vem
ser
repartidos entre deman-das
competitivas
Û
Decisões
são interligadas na
tomada de decisão
Û
Demandas competem
entre si na
procura dos
recursos escassos
Objetivos:
· Otimizar a distribuição dos recursos limitados no atendimento às demandas competitivas;
· Maximizar lucros ou o uso dos recursos;
· Minimizar custos, sobras, tempos ou distâncias.
11. 9
3. Fases na solução de um problema de pesquisa operacional
FLUXOGRAMA
FORMULAÇÃO
DO
PROBLEMA
OBTENÇÃO
DO
MODELO
DEFINIÇÃO
DO MÉTODO
DE SOLUÇÃO
OBTENÇÃO
E PREPARO
DOS DADOS
EXPERIÊNCIA
RESOLUÇÃO
DO
PROBLEMA
INTERPRETAÇÃO
DOS
RESULTADOS
COMPARAÇÃO
COM A
REALIDADE
IMPLEMENTAÇÃO
DA
SOLUÇÃO
12. 10
4. Modelagem de problemas
MODELOS SÃO REPRESENTAÇÕES DA REALIDADE
GRANDE NÚME-RO
DE VARIÁ-
VEIS
SELEÇÃO DAS VA-RIÁVEIS
PRINCIPAIS
SIMPLIFICAÇÃO
DA
REALIDADE
SISTEMA INTER-RELACIONAMENTO
MODELO
5. Modelos matemáticos
Os modelos matemáticos são modelos simbólicos - o sistema real é representado por EQUAÇÕES
E EXPRESSÕES MATEMÁTICAS que descrevem suas propriedades relevantes.
n DECISÕES QUE SÃO
QUANTIFICÁVEIS E
INTERRELACIONADAS
n VARIÁVEIS DE DECISÃO
(x1, x2, … , xn)
REPRESENTA A MEDIDA
DE EFICIÊNCIA DO
SISTEMA
FUNÇÃO OBJETIVO
Z = f(x1, x2, … , xn)
SÃO RESTRIÇÕES AOS
VALORES DAS VARIÁVEIS
DE DECISÃO
REPRESENTADAS POR EQUA-ÇÕES
OU INEQUAÇÕES MA-TEMÁTICAS
É A REALIDADE É UMA APROXIMAÇÃO
VALIDADE
ASSOCIADA AO
GRAU DE COR-RELAÇÃO
13. 11
6. Expressão matemática de um modelo de programação linear
OBJETIVO
Determinar os valores das variáveis x1, x2, … , xn que otimizam (maximizam ou minimizam) a fun-ção
linear
Z = c1 x1 + c2 x2 + … + cn xn,
obedecendo às seguintes RESTRIÇÕES:
a11x1 + a12x2 + … + a1nxn £, =, ³ b1
a21x1 + a22x2 + … + a2nxn £, =, ³ b2
…
am1x1 + am2x2 + … + amnxn £, =, ³ bm
e de forma que as variáveis sejam NÃO NEGATIVAS, ou seja:
xn ³ 0, xn ³ 0, … xn ³ 0.
Temos que cj, aij e bi são constantes conhecidas, para todo i e todo j.
Os parãmetros e variáveis do modelo são:
Z - Medida de eficiência do sistema (chamada de Função Objetivo ou F.O.);
xj - Nível da atividade j (variável de decisão);
cj - Taxa de contribuição unitária da atividade j;
bi - Disponibilidade do recurso i;
aij - Coeficiente tecnológico (quantidade i / consumido por j)
n - Número de atividades no modelo;
m - Número de restrições no modelo.
7. Construção de um modelo de programação linear
ETAPAS A SEGUIR PARA CONSTRUIR UM MODELO DE PL
1. Definição das atividades
Definir as atividades (xj) e escolher uma unidade de medida para o seu nível.
2. Definição dos recursos
Determinar os recursos consumidos e escolher a unidade de medida conveniente.
3. Determinação das condições externas
Determinar a quantidade de recurso disponível (bi).
4. Cálculo dos coeficientes insumo/produção
Determinar a relação entre atividades e recursos (aij).
14. 12
5. Construção do modelo
Associar x1, x2, … , xn às n atividades;
Escrever as equações de balanceamento por recurso;
Indicar o uso dos recursos;
Estabelecer a função objetivo como medida de eficiência.
15. 13
Exemplos de Modelos para Alguns Problemas Clássicos de Pro-gramação
Linear
Escolha da Mistura para Rações
Grão 1 Grão 2 Grão 3 Necessidades mínimas
Nutriente A 2 3 7 1250
Nutriente B 1 1 0 250
Nutriente C 5 3 0 900
Nutriente D 0,6 0,25 1 232,5
$/kg 41 35 96
Seja: x1 = qtde. (kg) do Grão 1 usada na ração
x2 = qtde. (kg) do Grão 2 usada na ração
x3 = qtde. (kg) do Grão 3 usada na ração
Custo total da ração: 41x1 + 35x2 + 96x3
Para atender às necessidades mínimas para cada nutriente, devemos ter:
2x1 + 3x2 + 7x3 ³ 1250,0 (Nutriente A)
x1 + x2 ³ 250,0 (Nutriente B)
5x1 + 3x2 ³ 900,0 (Nutriente C)
0,6x1 + 0,25x2 + x3 ³ 232,5 (Nutriente D)
Queremos obter uma ração que tenha um custo mínimo. Portanto, o modelo completo fica assim:
Minimizar 41x1 + 35x2 + 96x3 (Função Objetivo ou F.O.)
Sujeito a: (Restrições)
2x1 + 3x2 + 7x3 ³ 1250,0 (Nutriente A)
x1 + x2 ³ 250,0 (Nutriente B)
5x1 + 3x2 ³ 900,0 (Nutriente C)
0,6x1 + 0,25x2 + x3 ³ 232,5 (Nutriente D)
e: x1 ³ 0, x2 ³ 0, x3 ³ 0
16. Problema de Produção
A empresa Nova Linha produz artigos de vidro de alta qualidade: janelas e portas, em três seções de
produção:
14
Seção de Serralharia: para produzir as estruturas de alumínio
Seção de Carpintaria: para produzir as estruturas de madeira
Seção de Vidro e Montagem: para produzir vidro e montar as portas e janelas
Devido à diminuição dos lucros, o gerente geral decidiu reorganizar a produção, e propõe produzir
só 2 produtos que têm uma melhor aceitação entre os clientes.
Estes produtos são:
Produto 1: uma porta de vidro com estrutura de alumínio
Produto 2: uma janela grande com estrutura de madeira
O Departamento de Marketing concluiu que a empresa pode vender tanto de qualquer dos dois
produtos, tendo em conta a capacidade de produção disponível. Como ambos os produtos partilham
a capacidade de produção da seção 3, o dono solicitou ao gerente de produção da empresa a
resolução deste problema.
O gerente então levantou os seguintes dados:
a capacidade de produção por minuto de cada seção, a ser utilizada para produzir uma
unidade de cada produto
os lucros unitários para cada produto
Capacidade por unidade
de produção
Produto 2
0
1 4
2
Produto 1
1
2 0
12
3 3 2
18
5
3
Lucro unitário
(em R$)
Capacidade
disponível
Seção Nº
Modelo completo:
Maximizar Z = 3x1 + 5x2,
sujeito a
x 1 £ 4
2x 2 £ 12
3x1 + 2x 2 £ 18
x1 ³ 0, x2 ³ 0
17. 15
Problema da Mochila
Rolando Caio da Rocha, um exuberante alpinista, está se preparando para uma longa escalada nos
Alpes. Ele consegue levar até W quilos em sua mochila. Ele tem N diferentes tipos de itens que po-de
incluir em seu fardo, e cada unidade de item j pesa wj quilos. Para cada item j, ele calculou um
valor numérico Rj representando o valor de sobrevivência de cada unidade do item. O problema do
Rolando é escolher o número de cada tipo para incluir em sua mochila.
Modelo:
F.O.: Max. R1x1 + R2x2 + ... + Rjxj + ... + RNxN
s.a.: w1x1 + w2x2 + ... + wjxj + ... + wNxN £ W
xj ³ 0
ou:
N
Max. j
=
Σj j R x
1
s.a.:
N
£ Σ=
0
1
³
j
j
j j
x
w x W
18. 16
Cutting Stock
Tamanho (mm) Quantidade
3100 26
1530 71
850 47
Tamanho da Barra: 6000 mm
Temos então as seguintes possibilidades de corte:
x1 x2 x3 x4 x5 x6 Demanda
3100 1 1 0 0 0 0 26
1530 1 0 3 2 1 0 71
850 1 3 1 3 5 7 47
Sobra: 520 350 560 390 220 50
Sendo NB = No total de barras de 6000 mm que serão cortadas,
xj = No de barras de 6000 mm que serão cortadas
segundo o padrão de corte j,
F.O.: Min. NB = x1 + x2 + x3 + x4 + x5 + x6
s.a.:
x1 + x2 ³ 26
x1 + 3x3 + 2x4 + x5 ³ 71
x1 + 3x2 + x3 + 3x4 + 5x5 + 7x6 ³ 47
x1 ³ 0, x2 ³ 0, x3 ³ 0, x4 ³ 0, x5 ³ 0, x6 ³ 0
Se: aij = No de pedaços de tamanho i que serão cortados no padrão j,
bi = demanda de pedaços i,
m = No de tamanhos diferentes (linhas),
n = No de padrões de corte diferentes (colunas).
n
=
Min. NB = j
Σj x
1
n
ij j b x a ³ Σ=1
s.a. i
j
, i = 1, 2, ..., m
xj ³ 0 e inteiro, j = 1, 2, ..., n
19. 17
Problemas para Modelagem
Problema de Produção e Alocação de Recursos
Um fazendeiro deseja determinar que área de sua propriedade deve plantar milho e feijão para ma-ximizar
o seu lucro, e informa o seguinte:
a) o fazendeiro dispõe de uma área máxima de 8 alqueires para o plantio das 2 culturas, 100 m3 de
água para irrigação por semana, e a semente de feijão lhe permite um plantio de 4 alqueires no
máximo;
b) o lucro por alqueire plantado com milho é de R$200,00 e plantado com feijão é de R$150,00;
c) cada alqueire plantado com milho requer 10m3 de água por semana, e com feijão 20m3;
d) por questões pessoais, ele deseja plantar no máximo 2/3 da área total com milho.
Formule o problema como um PPL.
Problema de Alocação de Recursos
Em uma determinada repartição, existem m máquinas disponíveis para realizar determinadas tarefas
ou fabricar determinados produtos. Cada máquina, devido à idade e ao fabricante, pode ser mais ou
menos adequada que as outras para fabricar um determinado produto, bem como ter um custo de
operação próprio (consumo de energia, manutenção etc.). Seja:
n o número de produtos que precisam ser fabricados nessas máquinas,
dij o tempo necessário para fabricar o produto j na máquina i,
xij o número de unidades de j produzido na máquina i,
ai o tempo disponível para a máquina i,
bj o número de unidades de j que precisam ser produzidos, e
cij o custo para fabricar uma unidade do produto j na máquina i.
Modele este PPL de forma a obter uma produção de custo mínimo.
Problema de Alocação de Transportes
O expedidor de vôos, Eli Cóptero, da companhia Frete Aéreo Cauda Alta Ltda., que opera de um
terminal central, tem 8 aviões do Tipo 1, 15 aviões do Tipo 2 e 11 aviões do Tipo 3 disponíveis para
os vôos de hoje. A capacidade de cada avião é de 45t, 7t e 5t, respectivamente. O Sr. Cóptero deve
expedir aviões para as cidades A, B e C. A quantidade mínima de cada produto que deve ser envia-da
para cada cidade é de 20t, 28t e 30t, respectivamente. Cada avião pode voar somente uma vez
por dia.
O custo de enviar um avião do terminal a cada cidade é dado pelo seguinte quadro:
Tipo 1 Tipo 2 Tipo 3
Cidade A 23 15 1,4
Cidade B 58 20 3,8
Cidade C 64 24 4,2
Denote por xij o número de aviões do tipo i enviado para a Cidade j (x1A, x1B, x1C, x2A etc.). Formule
um modelo de PL para esse problema.
20. Problema de Planejamento de Tarefas
Uma determinada região está sendo ameaçada pela ruptura de uma barragem e deve ser evacuada
em, no máximo, 10 horas. São no total 8.000 homens, 7.900 mulheres e 1.850 crianças a transpor-tar.
Cada pessoa poderá levar até 10 quilos de bagagem pessoal, Toda a região foi isolada e só cir-culam
veículos autorizados para que se evitem acidentes e engarrafamentos. Para efetuar a evacua-ção
estão disponíveis os seguintes meios:
18
Veículo de
6 ton. do
Exército
Veículo de
¼ ton. do
Exército
Helicóptero Ônibus Microônibus
Veículo
de Passeio
Quantidade
de Unidades
Disponíveis
10 20 15 10 5 60
Capacidade de
Transporte
20 pessoas 5 pessoas 10 pessoas 30 pessoas 15 pessoas 5 pessoas
Capacidade
para bagagem
1 ton. 20 kg 50 kg 1 ton. 500 kg 100 kg
Custo por
Viagem
10 u.m. 4 u.m. 75 u.m. 5 u.m. 3 u.m. 2 u.m.
Tempo de
Viagem
1 h 45 min. 10 min. 45 min. 30 min. 30 min.
Para minimizar o pânico, as crianças deverão viajar acompanhadas por suas mães. Existem 10 famí-lias
com 5 filhos, 25 com 4 filhos, 150 com 3, 450 com 2 e 350 com 1. Os carros de passeio só po-derão
fazer uma viagem de evacuação, ficando, por segurança, retidos fora da área de perigo.
Formular o programa de evacuação que minimize os custos finais da operação.
21. 19
Solução de um Problema de Programação Linear –
Interpretação Geométrica
Representação no espaço de soluções – duas dimensões (variáveis).
Exemplo 1
(1) maximizar 12x1 + 15x2
sujeito a:
(2) 4x1 + 3x2 £ 12
(3) 2x1 + 5x2 £ 10
(4) x1 ³ 0 e x2 ³ 0
Solução Ótima: ponto b, onde x1 = 15/7, x2 = 8/7 e 12x1 + 15x2 = 300/7
22. 20
Exemplo 2
Por determinação médica, um jovem precisa fazer algum tipo de atividade física em uma academia.
Por questões pessoais, ele escolheu fazer natação e/ou pólo aquático. Ele sabe que:
· Uma hora de aula de natação custa R$8,00;
· Uma hora de aula de pólo custa R$5,00;
· Seu orçamento lhe permite dispor de 100 reais mensais para as atividades de academia;
· Seus afazeres escolares lhe dão liberdade de gastar mensalmente, no máximo, 18 horas e 40.000
calorias de sua energia para essas atividades;
· Cada hora de aula de pólo consome 3.300 calorias, e de natação consome 1.600 calorias;
· Ele não tem preferência por nenhuma dessas duas atividades.
Como ele deve planejar as suas atividades físicas para obter o número máximo de horas-aula, con-siderando
o limite dos recursos que tem? Modele o problema como um problema de programação
linear (PPL).
x1 Horas-aula de natação; x2 Horas-aula de pólo aquático
máx. x1 + x2 (1)
s.a.:
x1 + x2 £ 18 (2)
8x1 + 5x2 £ 100 (3)
1600x1 + 3300x2 £ 40000 (4)
(3) (4)
(1) (2)
23. 21
Exemplo 3
Um fazendeiro deseja determinar que área de sua propriedade deve plantar milho e feijão para ma-ximizar
o seu lucro, e informa o seguinte:
a) o fazendeiro dispõe de uma área máxima de 8 alqueires para o plantio das 2 culturas, 100 m3 de
água para irrigação por semana, e a semente de feijão lhe permite um plantio de 4 alqueires no
máximo;
b) o lucro por alqueire plantado com milho é de R$200,00 e plantado com feijão é de R$150,00;
c) cada alqueire plantado com milho requer 10m3 de água por semana, e com feijão 20m3;
d) por questões pessoais, ele deseja plantar no máximo 2/3 da área total com milho.
x1 Qtde. de alqueires plantados com milho
x2 Qtde. de alqueires plantados com feijão
máx. 200x1 + 150x2
s.a.: x1 + x2 = 8 (1)
x2 £ 4 (2)
x1 £ 16/3 (3)
10x1 + 20x2 £ 100 (4)
24. 22
Exemplo 4
Suponha que, por motivos justificáveis, uma certa dieta alimentar esteja restrita a leite desnatado e
uma salada de composição bem conhecida. Sabendo-se ainda que os requisitos nutricionais serão
expressos em termos de vitamina A e cálcio e controlados por suas quantidades mínimas (em mili-gramas).
A tabela abaixo resume a quantidade de cada nutriente em disponibilidade nos alimentos e
a sua necessidade diária para a boa saúde de uma pessoa.
Nutriente Leite (copo) Salada (500g) Requisito Nutricional
Mínimo
Vit. A 2 mg 50 mg 11 mg
Cálcio 50 mg 10 mg 70 mg
Custo/unid. R$ 2,00 R$ 1,20
sendo x1 = qtd. de leite (em copos)
x2 = qtd. de salada (em porções de 500g)
min 2x1 + 1,2x2 ------
s.a.
2x1 + 50x2 ³ 11 ––––
50x1 + 10x2 ³ 70 ––––
25. 23
Casos Encontrados na Resolução Gráfica
Continuaremos usando aqui modelos de duas variáveis, mantendo um espaço bidimensional (pla-no),
facilitando assim a visualização, para ilustrar todas as situações possíveis de ocorrer para um
modelo de PL qualquer.
1. Uma única solução ótima.
Exemplo 1:
máx. x1 + x2
s.a.:
8x1 + 5x2 £ 100 (1)
16x1 + 33x2 £ 400 (2)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
F.O.
(1)
(2)
x1
x2
28. 26
Exemplo 3:
min x1 – 2x2
s.a.
2x1 – x2 ³ 0 (1)
– x1 + 2x2 £ 4 (2)
Neste caso, embora existam soluções ótimas finitas (qualquer ponto sobre a reta 2, incluindo
e à direita do ponto de intercessão dessa reta com a reta 1), limitando o valor ótimo da F.O.,
o conjunto desses pontos não é limitado ou “fechado”.
4. Problema inviável (nenhuma solução existente).
min Z = f(x1, x2) (uma função-objetivo qualquer)
s.a.
x1 + x2 £ 1 (1)
x1 + x2 ³ 2 (2)
Veja que, neste caso, não existe nenhum ponto (x1, x2) no plano euclidiano que satisfaça si-multaneamente
as expressões (1) e (2).
x1
x2
(1)
(2)
x1
x2
(1) (2)
29. 27
O Método Simplex
O método Simplex, desenvolvido por DANTZIG em 1956, procura, a partir de uma deter-minada
partição da matriz A, resolver o sistema de equações Ax = b. Veremos a seguir como pode-mos
“preparar” um modelo de PL qualquer para que seja resolvido pelo Simplex, quais os funda-mentos
teóricos do algoritmo, e como ele podemos usá-lo para resolver os modelos estudados.
Modelo matemático e forma padrão de um PPL
Considere o seguinte problema de programação linear:
Maximizar Z = c1x1 + c2x2 + … + cnxn
Sujeito a: a11x1 + a12x2 + … + a1nxn £, =, ³ b1
a21x1 + a22x2 + … + a2nxn £, =, ³ b2
…
am1x1 + am2x2 + … + amnxn £, =, ³ bm
xn³0, xn³0, … xn³0
A forma apresentada acima é a expandida. Outras formas de representar um problema de programa-ção
linear são as mostradas a seguir:
a) Forma de Somatório:
n
=
Maximizar Z = j
Σj j c x
1
n
=
Sujeito a: j
Σij j a x
1
£, =, ³ bi, i = 1, … , m;
xj ³ 0, j = 1, … , n.
b) Forma Matricial
Maximizar Z = cx
Sujeito a: Ax £, =, ³ b
x ³ 0
onde A é uma matriz retangular de dimensões m ´ n; c é um vetor 1 ´ n, b é um vetor m ´ 1 e x é
um vetor n ´ 1. O uso de uma ou outra forma depende da conveniência da aplicação. As formas ma-tricial
e somatório são mais usadas para provas e demonstrações diversas. A forma expandida é ne-cessária
quando se torna necessário explicitar os coeficientes aij, bi e cj.
30. 28
Forma Padrão de um Modelo de PL
Antes de estabelecermos um algoritmo único para resolver os modelos matemáticos apresentados
anteriormente, é necessário padronizar o formato desses modelos. Usaremos o formato padrão de
maximização, que é adotado pela maioria dos livros de P.L.:
Um modelo de PL na forma padrão é constituído apenas por equações lineares, e suas variáveis e
termos independentes (bi) devem ser não negativas, como o modelo abaixo:
n
=
Maximizar Z = j
Σj j c x
1
n
=
Sujeito a: j
Σij j a x
1
= bi, i = 1, … , m;
xj ³ 0, j = 1, … , n;
bi ³ 0, i = 1, … , m.
É importante salientar que em um problema de programação linear qualquer podem aparecer vará-veis
que devem ser deixadas livres em sua formulação, ou seja, variáveis irrestritas em sinal. Além
disso, outras varáveis podem representar grandezas que na prática não podem ser positivas. Para
que um problema com variáveis dos tipos mencionados acima seja colocado na forma padrão tor-nam-
se necessários alguns recursos matemáticos, os quais serão discutidos a seguir.
Recursos para se obter a forma padrão de um modelo de PL
1) Função Objetivo
Os problemas de programação linear consistem em maximizar ou minimizar uma função objetivo.
Um problema de minimizar pode ser transformado em maximizar fazendo-se:
Σ = - [-Σ ]= - Σ - j j j j j j Mínimo c x Máximo c x Máximo ( c )x
Então, se o problema é minimizar e deseja-se trabalhar como maximizar, multiplica-se os coeficien-tes
da função objetivo por (-1), resolve-se o problema de maximizar e toma-se o negativo do valor
encontrado. Esse valor é o mínimo do problema original.
2) Variáveis de Folga
Considere a inequação linear do tipo £:
k
n
a x £ b kj j j
=Σ1
Utiliza-se uma variável xk, chamada variável de folga, em que xk = bk – Σj akj xj, de forma que
kj j b x x a = + Σ =1
k k
n
j
Para cada restrição do tipo £ deve-se utilizar uma variável de folga diferente que representa a
“folga” do recurso disponível que não foi utilizado.
31. 29
3) Variáveis de Excesso
Considere a inequação linear do tipo ³:
s
n
a x ³ b sj j j
=Σ1
Utiliza-se uma variável xs, chamada variável de excesso, em que xs = Σj asj xj, – bs, de forma que
sj j b x x a = - Σ=1
s s
n
j
Para cada restrição do tipo ³ deve-se utilizar uma variável de excesso diferente que representa o
“excesso” do recurso utilizado.
4) Variáveis livres ou irrestritas em sinal
Quando uma variável representa uma grandeza que pode assumir na prática valores positivos, nulos
ou negativos, ou seja, a variável deve ser irrestrita em sinal, então na forma padrão essa variável é
substituída pela diferença de duas outras não negativas, e, posteriormente, quando o problema for
resolvido, seu valor real é resgatado. Assim, se xl é irrestrita em sinal, faz-se: xl = xl' - xl'', onde xl' ³
0 e xl'' ³ 0. Resolve-se o problema com xl' e xl'', e após a solução obtém-se xl.
5) Variáveis com valores não positivos
Quando uma variável xq representa uma grandeza que não deve assumir valores positivos no pro-blema
original, então, para construir a forma padrão do modelo de PL, substitui-se essa variável, fa-zendo-
se xq = - xq', onde xq' ³ 0. Resolve-se o PPL com xq' e, posteriormente, recupera-se xq.
6) Termos independentes com valores negativos
Se algum bi tiver sinal negativo, basta multiplicar a linha toda por –1:
4x1 – 3x2 £ –2 Û – 4x1 + 3x2 ³ 2
Exemplo:
min. 2x1 + 1,2x2
s.a. 2x1 + 50x2 ³ 11
50x1 + 10x2 ³ 70
Forma padrão:
max. – 2x1 – 1,2x2
s.a. 2x1 + 50x2 – x3 = 11
50x1 + 10x2 – x4 = 70
32. 30
Definições básicas
Considere o problema de programação linear na forma matricial e padrão:
Maximizar Z = cx (1)
Sujeito a: Ax = b (2)
x ³ 0 (3)
Define-se como solução de um PPL, um vetor x que satisfaz as restrições (2); solução viável de um
PPL é um vetor x que satisfaz as restrições (2) e (3); e região viável ou conjunto de soluções viá-veis
de um PPL é o conjunto de vetores x que satisfazem (2) e (3).
Considere o sistema Ax = b no problema acima e suponha que
posto [A | b] = posto [A] = m,
o que significa que o sistema Ax = b é compatível, ou seja, tem solução. Uma permutação das colu-nas
de A pode ser feita de forma a obter
A = [B,N],
onde B é uma matriz quadrada de dimensões m ´ m, e N é de dimensões m ´ (n-m). Se o posto (B) =
m, então B é uma matriz inversível, e uma solução do sistema pode ser dado por:
= -1
0 N x =
x B b B
O vetor x = (xB | xN) é chamado uma solução básica do sistema de equações Ax = b. Se x ³ 0, então
x é chamado uma solução básica viável do sistema. A matriz B é chamada matriz básica, ou sim-plesmente
base do sistema e a matriz N é chamada matriz não básica. No vetor x = (xB | xN), as
componentes de xB são chamadas variáveis básicas e as componentes de xN são chamadas variá-veis
não básicas. Se todas as componentes de xB forem maiores que zero, então x é chamado solu-ção
básica viável não degenerada, e se pelo menos uma de suas componentes for nula, então x é
chamado solução básica degenerada.
Exemplo para ilustrar as definições básicas
Seja o problema de programação linear com duas variáveis e duas restrições:
Maximizar z = x1 + 3 x2 (1)
sujeito a: x1 + x2 £ 6 (2)
x2 £ 3 (3)
xj ³ 0
A representação gráfica é a seguinte:
33. Obtendo-se a forma padrão do PPL pela introdução das variáveis de folga x3 e x4 nas restrições (2) e
(3), respectivamente, tem-se o seguinte sistema de equações lineares:
31
x1 + x2 + x3 = 6
x2 + x4 = 3
xj ³ 0
A matriz de coeficientes tecnológicos A e os vetores colunas correspondentes são os seguintes:
0
[ 1 2 3 4 ] 1
1
=
A
= a a a a 0
1
1
1
0
Para se obter uma matriz básica B (2 ´ 2) a partir da matriz A, deve-se selecionar 2 vetores, ai e aj,
linearmente independentes. Para uma matriz A (m ´ n), o número máximo possível de matrizes
quadradas de dimensões m ´ m é dado por:
!
n
-
!( )!
m n m
No caso, n = 4 e m = 2, assim esse número máximo é 6. No entanto, como os vetores a1 e a3 são i-guais,
ou seja, não são linearmente independentes, o número de matrizes básicas fica reduzido a 5.
A seguir são mostradas todas as matrizes básicas obtidas a partir do sistema dado, com as respecti-vas
soluções básicas xB e as não básicas xN.
1)
[ ]
1 1
B a a
1 2
-
= =
0
=
=
=
3
=
6
1 1
= =
-
0
3
3
0 1
0 1
x
1
3
4
1
2
x
x
x
B b
x
x
B
N
34. 32
2)
[ ]
1 0
0 1
B a a
1 4
= =
0
=
=
=
6
=
6
= =
-
0
3
3
1 0
0 1
x
1
2
3
1
4
x
x
x
B b
x
x
B
N
3)
[ ]
1 1
B a a
2 3
0
=
=
x
=
3
=
6
0 1
-
= =
= =
-
0
3
3
1 1
1 0
2
x
1
4
1
3
x
x
B b
x
x
B
N
4)
[ ]
1 0
B a a
2 4
0
=
=
x
=
6
-
6
=
1 0
-
= =
= =
-
0
3
3
1 1
1 1
2
x
1
3
1
4
x
x
B b
x
x
B
N
5)
[ ]
1 0
0 1
B a a
3 4
= =
0
=
=
x
=
6
=
6
= =
-
0
3
3
1 0
0 1
3
x
1
2
1
4
x
x
B b
x
x
B
N
Das soluções básica obtidas, apenas a solução número 4 não é viável, visto que o componente x4 é
negativo. Então são 4 soluções básicas viáveis para o PPL, a saber:
x1 ,
3
=
3
0
0
x2 ,
6
=
0
0
3
x3 ,
0
=
3
3
0
0
=
0
6
3
x4
Estes pontos pertencem a R4 . Uma projeção em R2, ou seja, no plano gerado por x1 e x2, tem como
resultante os seguintes pontos:
35. 33
3
x1 ,
=
3
6
x2 =
,
0
0
x3 =
,
3
0 x4
=
0
Estes pontos são identificados na solução gráfica do problema, mostrando que eles correspondem
aos pontos extremos do polígono de restrições (figura seguinte).
Solução básica degenerada
Uma solução básica viável é dita degenerada se existir uma ou mais variáveis básicas nulas. A exis-tência
de uma solução degenerada afeta o comportamento do algoritmo Simplex, e daí a importân-cia
sobre desse tipo de solução. Um exemplo mostrando a ocorrência de uma solução degenerada é
dado a seguir.
Seja o seguinte conjunto de restrições de um PPL com duas variáveis e três restrições (assumiremos
sempre todos os xj ³ 0, a menos que se diga o contrário):
x1 + x2 £ 6
x2 £ 3
x1 + 2 x2 £ 9
Sua representação gráfica é a seguinte:
x1
x2
x3
x4
36. 34
Usando variáveis de folga o sistema é transformado em igualdades, na forma:
x1 + x2 + x3 = 6
x2 + x4 = 3
x1 + 2 x2 + x5 = 9
A matriz de coeficientes do sistema expandido é:
[ ]
1
= =
0
0
1
0
1
0
1
0
0
1
1
2
0
1
1 2 3 4 A a a a a
Considere a matriz básica formada pelas três primeiras colunas de A, ou seja, B = [a1 a2 a3]. A so-lução
correspondente é dada por:
Variáveis básicas:
=
6
3
0 2 1
0 1 0
-
=
6
3
1 1 1
1
0 1 0
= =
=
-
-
3
3
0
9
1 1 1
9
1 2 0
1
x
1
2
3
B b
x
x
xB
Variáveis não básicas:
0
=
=
0
4
x
5
x
xN
Tendo em vista que a variável básica x3 = 0, então a solução é degenerada. Veremos as implicações
disso mais tarde.
37. = -1 e xR = 0
35
Teoremas fundamentais
Considere o problema de programação linear na forma padrão:
Maximizar Z = cx
Sujeito a: Ax = b
x ³ 0
Relembraremos agora algumas definições básicas, ilustrando-as de forma um pouco diferente:
Definição 1: Uma base de uma matriz A (m ´ n) é uma matriz quadrada de m vetores coluna line-armente
independentes em —m. As variáveis associadas a essas colunas são chamadas
variáveis básicas.
Ax = b
x = (xB, xR), onde:
xB representa o vetor das variáveis básicas de m componentes, e
xR representa o vetor das restantes n – m variáveis não básicas.
xB
B R
m
x:
m n – m
A:
O sistema pode então ser reescrito assim:
BxB + RxR = b
Como podemos solucionar o conjunto de equações somente em função das variáveis básicas,
temos:
xR = 0 e BxB = b
Definição 2: Seja B uma base associada a uma matriz A. O vetor composto de x B b B
é chamado de solução básica.
Definição 3: Uma solução básica sem componentes negativas é denominada solução básica viá-vel.
Definição 4: O conjunto C = {x | Ax = b, x ³ 0} denomina-se conjunto de soluções viáveis.
38. 36
Teorema 1
O conjunto C das soluções viáveis de um modelo de programação linear é um conjunto convexo.
Demonstração:
= + - Î
a a
(1 )
x x x C
Î ⇒
{ , }
1 2
x x C
0 £ a
£
1
= [ + (1 - ) ] = + (1 - ) = + (1 - )
=
Ax A x x Ax Ax b b b
1 2 1 2
1 2
a a a a a a
Teorema 2
Toda solução básica viável do sistema Ax = b é um ponto extremo do conjunto de soluções viáveis,
ou seja, um ponto extremo do conjunto C
Teorema 3
Todo ponto extremo x de um conjunto de soluções viáveis de um sistema Ax = b é uma solução bá-sica
viável.
Corolário 1: O conjunto de pontos extremos de um conjunto de soluções viáveis é finito e limitado
em m
n C .
Corolário 2: Se existe uma solução viável, então existe uma solução básica viável.
Teorema 4
1. Se o PPL tem solução ótima (máximo ou mínimo de Z) finita, então pelo menos uma solução ó-tima
ocorre em um ponto extremo (vértice) do conjunto C;
2. Se a solução ótima ocorre simultaneamente em mais de um ponto extremo, então qualquer com-binação
convexa desses pontos extremos também é solução ótima.
39. 37
O Algoritmo Simplex
O algoritmo Simplex é um procedimento computacional desenvolvido para resolver problemas de
programação linear. Podemos dividi-lo em duas fases distintas:
Fase 1 - consiste em determinar uma solução básica viável do PPL ou, então, mostrar que tal solu-ção
não existe. Neste último caso, não havendo solução básica viável, não existe solução para o
problema, ou seja, o conjunto de restrições é inconsistente. Quando uma solução básica viável pu-der
ser identificada facilmente, a Fase 1 não precisa ser usada;
Fase 2 - consiste em determinar a solução ótima para o PPL ou, então, mostrar que a solução é ili-mitada,
ou seja, que o valor de Z pode crescer ou decrescer infinitamente. A Fase 2 inicia a partir de
uma solução básica viável do PPL, que pode ser obtida usando-se a Fase 1.
Ilustração
Caso típico de problema em que é necessário o uso da Fase 1:
Maximizar 1 x1 + 2 x2
sujeito a: -1 x1 + 3 x2 £ 9
1 x1 - 2 x2 £ 0
2 x1 + 1 x2 £ 10
2 x1 + 1 x2 ³ 5
Solução gráfica
Colocando o problema na forma padrão tem-se:
Maximizar 1 x1 + 2 x2
sujeito a: -1 x1 + 3 x2 + x3 = 9
1 x1 - 2 x2 + x4 = 0
2 x2 + 1 x2 + x5 = 10
2 x1 + 1 x2 - x6 = 5
40. Tomando-se x1 e x2 como variáveis não básicas, tem-se x1 = 0 e x2 = 0. Os valores das variáveis bá-sicas
são obtidas de forma trivial, ou seja: x3 = 9, x4 = 0, x5 = 10 e x6 = -5. A solução básica corres-pondente
é x = (0, 0, 9, 0, 10, -5), que não é viável, pois existe uma componente negativa (x6 = -5).
Neste caso, para se obter uma solução básica inicial é necessário usar a Fase 1 do Simplex. Vere-mos
38
como isso pode ser feito mais adiante.
Caso de problema em que não é necessário usar a Fase 1:
Maximizar 5 x1 + 2 x2
sujeito a: 1 x1 £ 3
1 x2 £ 4
1 x1 + 2 x2 £ 9
Solução gráfica
Colocando o problema na forma padrão tem-se:
Maximizar 5 x1 + 2 x2
sujeito a: 1 x1 + x3 = 3
1 x2 + x4 = 4
1 x2 + 2 x2 + x5 = 9
Tomando-se x1 e x2 como variáveis não básicas, tem-se x1 = 0 e x2 = 0. Os valores das variáveis bá-sicas
são obtidas de forma trivial, ou seja: x3 = 3, x4 = 4 e x5 = 9. A solução básica correspondente é
x = (0, 0, 3, 4, 9), que é viável, pois todas componentes são não negativas. Neste caso, para se obter
uma solução básica inicial não é necessário usar a Fase 1 do Simplex.
41. 39
O Algoritmo Simplex – Detalhamento
Passo 1
Determine uma solução básica viável (SBV) inicial. Se necessário usar a Fase 1;
Passo 2
Testar se a SBV corrente é ótima. Se sim, pare, o problema está resolvido; se não, vá ao pas-so
seguinte;
Passo 3
Fazer a mudança de base, ou seja:
(i) Determinar a variável não básica que deve entrar na base – a variável não básica a
entrar na base deve ser aquela que mais aumenta o valor da função objetivo no mo-mento
corrente, ou seja, aquela que tem o maior coeficiente;
(ii) Determinar a variável básica que deve sair da base – a variável a sair da base deve
ser aquela que primeiro assumirá valores negativos como conseqüência do aumento
do valor da variável escolhida para entrar na base. O propósito é não permitir que al-guma
variável assuma valores negativos, tornando o problema inviável;
(iii) Processar a mudança de base fazendo-se a operação de pivoteamento e retornar ao
Passo 2.
Podemos também descrever o algoritmo em forma de fluxograma, como mostra a figura seguinte:
43. 41
Exemplo 1
Uma grande fábrica de móveis dispõe em estoque de 250m de tábuas, 600m de pranchas e 500m de
painéis de conglomerado. A fábrica normalmente oferece uma linha de móveis composta por um
modelo de escrivaninha, uma mesa de reunião, um armário e uma prateleira. Cada tipo de móvel
consome uma certa quantidade de matéria prima, conforme a tabela abaixo. A escrivaninha é vendi-da
por R$100, a mesa por R$80, o armário por R$120 e a prateleira por R$20. Modele e resolva o
problema pelo simplex, de forma a maximizar a receita com a venda dos móveis.
Quantidade de material em metros
consumidos por unidade de produto
Disponibilidade
do Recurso (m)
Escrivaninha Mesa Armário Prateleira
Tábua 1 1 1 4 250
Prancha 0 1 1 2 600
Painéis 3 2 4 0 500
Valor de
100 80 120 20
Revenda (R$)
Considerando as seguintes variáveis de decisão:
xE = Nº de escrivaninhas a ser produzido;
xM = Nº de mesas a ser produzido;
xA = Nº de armários a ser produzido;
xP = Nº de prateleiras a ser produzido.
Podemos então escrever o modelo de PL:
Max. Z = 100xE + 80xM + 120xA + 20xP
s.a.
xE + xM + xA + 4xP £ 250
xM + xA + 4xP £ 600
3xE + 2xM + 4xA £ 500
Passando para a forma padrão, temos:
Max. Z = 100xE + 80xM + 120xA + 20xP
s.a.
xE + xM + xA + 4xP + x1 = 250
xM + xA + 4xP + x2 = 600
3xE + 2xM + 4xA + x3 = 500
A nossa solução básica viável inicial pode ser obtida, neste caso, de forma trivial:
x1 = 250; x2 = 600; x3 = 500; xE = xM = xA = xP = 0.
Podemos agora montar o quadro simplex. Para isso, trataremos a equação da F.O. como se
fosse apenas mais uma equação do nosso sistema linear:
– Z + 100xE + 80xM + 120xA + 20xP = 0
xE + xM + xA + 4xP + x1 = 250
xM + xA + 4xP + x2 = 600
3xE + 2xM + 4xA + x3 = 500
44. Essa linha será destacada no quadro, e sua importância será vista no decorrer do algoritmo.
Além disso, usaremos a 1ª coluna para fazer a numeração das linhas, somente para facilitar
as explicações a seguir. A 2ª coluna serve para relacionarmos as variáveis básicas (V.B.):
42
V.B. xE xM xA xP x1 x2 x3 b
L0 – Z 100 80 120 20 0 0 0 0
L1 x1 1 1 1 4 1 0 0 250
L2 x2 0 1 1 2 0 1 0 600
L3 x3 3 2 4 0 0 0 1 500
Para entrar na base, devemos escolher a variável que possui o maior coeficiente na linha L0.
Esses coeficientes indicam a contribuição que cada variável dá à Função Objetivo. para cada
unidade de aumento de seus respectivos valores. No quadro acima, vemos que cada unidade
de aumento da variável xA resulta em um aumento de 120 unidade no valor da F.O. Essa é a
variável que mais contribui localmente para o processo de maximização da F.O., e é portan-to
a escolhida para entrar na base. Esse processo de escolha é representado no fluxograma da
seguinte maneira:
cj* = max(cj)
onde j* representa a coluna correspondente à variável que deve entrar na base.
Para que a variável xA entre na base, é preciso que uma variável básica saia da base (por
que?). Para determinar isso, é só fazer com que o valor de xA cresça o máximo possível. Po-demos
ver pelos valores do quadro acima que, se xA for maior que 125 (ou 4xA 500), então
teremos para a ultima restrição o seguinte:
4xA + x3 = 500
x3 = 500 – 4xA
e o valor de x3 seria negativo, o que seria inviável. Com isso, o maior valor que xA pode as-sumir
sem violar nenhuma das restrições é xA = 125. Nesse caso, o valor de x3 seria igual a
zero, e ele então sai da base. Todo esse processo de escolha é representado no fluxograma da
seguinte maneira:
Escolher i* | min(bi / aij*), aij* 0
onde i* representa a linha correspondente à variável que deve sair da base.
O significado desse “procedimento” é bem simples: divida todos os bi pelos valores de aij*
que forem maiores que zero, e pegue o menor valor dessa divisão, que corresponderá à linha
i*. No caso acima, teríamos:
L1: 250 / 1 = 250
L2: 600 / 1 = 600
L3: 500 / 4 = 125 ® i*
Agora podemos representar a mudança de base usando setas no quadro:
45. 43
V.B. xE xM xA xP x1 x2 x3 b
L0 – Z 100 80 120 20 0 0 0 0
L1 x1 1 1 1 4 1 0 0 250
L2 x2 0 1 1 2 0 1 0 600
L3 x3 3 2 4 0 0 0 1 500
O elemento destacado representa o nosso pivot. Observe que os vetores-coluna das variáveis
básicas na matriz A formam uma matriz identidade, e seus coeficientes da linha L0 são nulos.
Esse padrão será mantido durante todo o decorrer do algoritmo. Dessa forma, os valores das
V.B. são obtidos diretamente na última coluna (b), e o valor de – Z é obtido na posição b0.
O pivoteamento consiste então em transformar a coluna correspondente à variável que está
entrando na base em um vetor canônico, substituindo o vetor canônico da variável que está
saindo da base. Fazemos isso por meio das operações básicas de linha.
Primeiro, fazemos 3 L¢¬ L3 ¸ 4:
V.B. xE xM xA xP x1 x2 x3 b
L0 – Z 100 80 120 20 0 0 0 0
L1 x1 1 1 1 4 1 0 0 250
L2 x2 0 1 1 2 0 1 0 600
3 L¢ xA ¾ ½ 1 0 0 0 ¼ 125
Depois, fazemos:
0 L¢ ¬ -120 ´ 3 L¢ + L0
1 L¢¬ -1 ´ 3 L¢ + L1
2 L¢ ¬ -1 ´ 3 L¢ + L2
e obtemos o segundo quadro simplex:
V.B. xE xM xA xP x1 x2 x3 b
0 L¢ – Z 10 20 0 20 0 0 -30 -15.000
1 L¢ x1 ¼ ½ 0 4 1 0 -¼ 125
2 L¢ x2 -¾ ½ 0 2 0 1 -¼ 475
3 L¢ xA ¾ ½ 1 0 0 0 ¼ 125
Temos agora a solução básica x1 = 125; x2 = 475; xA = 125; xE = xM = x3 = xP = 0. Passamos
de um lucro igual a zero para um lucro de R$15.000, correspondente à produção de 125 ar-mários.
Observe que ainda existem variáveis que podem contribuir para o crescimento da F.O. Co-mo
existe um empate no maior valor, entre xM e xP, escolheremos xM para entrar na base.
Nesse caso, haverá também um empate entre x1 e xA para sair da base. Escolheremos xA para
sair da base (depois discutiremos as implicações desses empates).
46. 44
Executamos então o 2º pivoteamento:
1 L¢ ¬ 1 L¢ ¸ ½
0 L¢ ¬ -20 ´ 1 L¢ + 0 L¢
2 L¢ ¬ -½ ´ 1 L¢ + 2 L¢
3 L¢ ¬ -½ ´ 1 L¢ + 3 L¢
e obtemos o terceiro quadro simplex:
V.B. xE xM xA xP x1 x2 x3 b
0 L¢ – Z 0 0 0 -140 -40 0 -20 -20.000
1 L¢ xM ½ 1 0 8 2 0 -½ 250
2 L¢ x2 -1 0 0 -1 1 1 0 350
3 L¢ xA ½ 0 1 -4 -1 0 ½ 0
Temos agora a solução básica xM = 250; x2 = 350; xA = 0 (VB); xE = xP = x1 = x3 = 0 (VNB).
O lucro agora aumentou para R$20.000, correspondente à produção de 250 mesas. Essa so-lução
é ótima, já que não existe VNB que possa contribuir para o crescimento da F.O. Todas
elas possuem coeficiente nulo ou negativo na linha da F.O. A solução ótima pode ser repre-sentada
assim:
x* = (0; 250; 0; 0; 0; 350; 0) Z* = 20.000
A variável de folga x2 representa a folga do recurso “Pranchas”. A solução ótima para esse
problema, consiste em fabricar somente 250 mesas, tendo uma sobra de 350m de pranchas, e
obtendo um lucro máximo de R$20.000,00.
Veja que, apesar da variável xA estar na base, seu valor é nulo, indicando que essa solução é
degenerada.
Degeneração (ou degenerescência) e Ciclagem
Em casos esporádicos (alguns autores dizem que esses casos são raros ou muito difíceis de ocorrer
na prática), o algoritmo simplex pode entrar “em loop”, ou em processo de “ciclagem”. Nesses ca-sos,
ocorrem mudanças de base, mas a cada pivoteamento, o algoritmo retorna ao mesmo ponto do
espaço de soluções, representado por vetores diferentes, mas linearmente dependentes. Isso ocorre
quando há empate nos critérios de entrada e de saída da base, normalmente devido a alguma VB
possuir valor nulo.
Para evitar o processo de ciclagem, normalmente recorre-se a uma das duas regras mais conhecidas:
– Regra Lexicográfica. Veja detalhes em (Bazaraa, 1990).
– Regra de Bland
· Entre todas as candidatas a entrar na base, selecione a variável xk que possui o menor índice.
· Entre todas as candidatas a sair na base, selecione a variável xr que possui o menor índice.
47. 45
Exemplo 2
Uma sorveteria produz dois tipos de sorvete: no palito e no copinho. Na sorveteria, o único ponto
crítico é a mão-de-obra disponível. O sorvete no copinho consome 50% a mais de mão-de-obra do
que no palito. Sabe-se que se todo sorvete produzido fosse no palito a companhia poderia produzir
400 toneladas por dia. No entanto, o mercado tem condições de absorver, diariamente, apenas 300
toneladas de sorvete no palito e 150 toneladas de sorvete no copinho.
1. Modele o problema de modo a maximizar a produção de sorvete.
Considerando Xp igual à quantidade de sorvete em palito, e Xc igual à quantidade de sorve-te
em copinho produzido (em toneladas), temos:
max. Xp + Xc
s.a.
Xp £ 300
Xc £ 150
Xp + 1,5Xc £ 400
2. Resolva-o graficamente.
Solução ótima: (Xp=300; Xc=66,67; Z=366,67)
0 Xp
Xc
100
100
200
200
300
300
400
400
Pela inclinação e sentido de crescimento da F.O. (linha pontilhada), vemos que a solução ó-tima
é a interseção das retas Xp = 300 e Xp + 1,5Xc = 400. Isso nos dá as seguintes coorde-nadas:
Xp* = 300;
Xc* = (400 – Xp) / 1,5 = 100 / 1,5 = 66,67;
Z* = 366,67.
48. 46
3. Resolva-o pelo método simplex.
Marcando os pivôs em negrito, temos os seguintes quadros do simplex (alguns valores apa-recem
arredondados no quadro):
====================================================
| Xp Xc X3 X4 X5| b
----------------------------------------------------
-Z| 1.0 1.0 0.0 0.0 0.0| 0.0
----------------------------------------------------
X3| 1.0 0.0 1.0 0.0 0.0| 300.0
X4| 0.0 1.0 0.0 1.0 0.0| 150.0
X5| 1.0 1.5 0.0 0.0 1.0| 400.0
====================================================
-Z| 0.0 1.0 -1.0 0.0 0.0| -300.0
----------------------------------------------------
Xp| 1.0 0.0 1.0 0.0 0.0| 300.0
X4| 0.0 1.0 0.0 1.0 0.0| 150.0
X5| 0.0 1.5 -1.0 0.0 1.0| 100.0
====================================================
-Z| 0.0 0.0 -0.3 0.0 -0.7| -366.7
----------------------------------------------------
Xp| 1.0 0.0 1.0 0.0 0.0| 300.0
X4| 0.0 0.0 0.7 1.0 -0.7| 83.3
Xc| 0.0 1.0 -0.7 0.0 0.7| 66.7
====================================================
Solucao otima:
Z* = 366.67
x* = (300; 66,67; 0; 83.33; 0; 0)
Observe que a variável X4 representa a folga em termos de mercado para o sorvete em copi-nho
(ou seja, é o tanto que estamos produzindo abaixo do valor máximo permitido).
4. Agora observe de novo a solução gráfica e observe o que acontece, graficamente, a cada itera-ção
do Simplex.
49. 47
Algoritmo Simplex – Método das Duas Fases
Primeiro Exemplo (extraído de GoldbargLuna,2000):
Considere o seguinte modelo de P.L.:
Minimizar Z = -3x1 - 5x2
sujeito a:
x1 £ 4
x2 £ 6
3x1 + 2x2 ³ 18
x1 ³ 0 e x2 ³ 0
Passando para a forma padrão, temos:
Maximizar Z’ = 3x1 + 5x2
s.a.:
x1 + x3 = 4
x2 + x4 = 6
3x1 + 2x2 - x5 = 18
x1 ³ 0, x2 ³ 0, x3 ³ 0, x4 ³ 0, x5 ³ 0
x2
6
A B
0 x1
4
3
2
C
Observe que, neste caso, não podemos considerar a solução inicial contendo somente as variáveis
de folga, o que resultaria em uma solução inviável. Isso pode ser visto na representação gráfica do
problema, mostrado acima. A solução trivial x1 = 0 e x2 = 0 não pertence ao espaço de soluções.
Nessas situações, normalmente opta-se por usar um dos seguintes métodos para solucionar o mode-lo
de P.L.:
· Método do grande M
· Método das duas fases
Veremos aqui o método das duas fases (o outro será discutido em sala de aula).
50. Na FASE 1, utilizamos o simplex sobre o problema modificado, e tentamos encontrar uma solução
básica viável inicial do problema original.
48
Na FASE 2, de posse da base encontrada na 1a Fase, aplicamos o método simplex tradicional em
busca da solução ótima do problema.
FASE 1
1. Introduzimos uma variável artificial a
j x para cada restrição do problema, ou somente para as
restrições que tiverem variável de folga com coeficiente negativo.
2. Resolvemos o problema para a seguinte F.O. modificada:
Min. q = Σ x
a
j 3. Se q* = 0, então existe uma solução básica viável para o problema original. Neste caso, elimi-namos
as variáveis artificiais, substituímos a F.O. modificada pela original e prosseguimos com
o simplex.
Introduzindo uma variável artificial xa6 , e mudando a função objetivo de forma a conter somente as
variáveis artificiais, temos:
Minimizar q = xa6
s.a.:
x1 + x3 = 4
x2 + x4 = 6
3x1 + 2x2 - x5 + xa6 = 18
x1 ³ 0, x2 ³ 0, x3 ³ 0, x4 ³ 0, x5 ³ 0, x a 6 ³ 0
V.B. x1 x2 x3 x4 x5 xa6
q 0 0 0 0 0 -1
x3 1 0 1 0 0 0 4
x4 0 1 0 1 0 0 6
xa6 3 2 0 0 -1 1 18
Reduzindo a coluna 6 à forma canônica, temos:
V.B. x1 x2 x3 x4 x5 xa6
q 3 2 0 0 -1 0 18
x3 1 0 1 0 0 0 4
x4 0 1 0 1 0 0 6
xa6 3 2 0 0 -1 1 18
Iteração 1:
V.B. x1 x2 x3 x4 x5 xa6
q 3 2 0 0 -1 0 18
x3 1 0 1 0 0 0 4
x4 0 1 0 1 0 0 6
xa6 3 2 0 0 -1 1 18
52. 50
Quadro final (ótimo):
V.B. x1 x2 x3 x4 x5
-Z’ 0 0 -3 -5 0 -42
x1 1 0 1 0 0 4
x5 0 0 3 2 1 6
x2 0 1 0 1 0 6
x2
6
Z = -36
A B
Z = -42
q = 0
Z = -27
0 x1
4
3
2
C
q = 18 q = 6
Segundo Exemplo: Escolha da Mistura para Rações
Grão 1 Grão 2 Necessidades mínimas
Nutriente A 2 3 650
Nutriente C 5 3 1050
$/kg 32 35
Seja: x1 = qtde. (kg) do Grão 1 usada na ração
x2 = qtde. (kg) do Grão 2 usada na ração
Minimizar 32x1 + 35x2
Sujeito a:
2x1 + 3x2 ³ 650
5x1 + 3x2 ³ 1050
x1 ³ 0, x2 ³ 0
53. FASE 1
Introduzindo as variáveis de folga e as variáveis artificiais, temos o seguinte modelo artificial, já na
forma padrão:
51
-xa - xa
Maximizar q = 5 6
s.a.:
xa = 650
2x1 + 3x2 – x3 + 5
5x1 + 3x2 – x4 + xa6 = 1050
xa xa6
V.B. x1 x2 x3 x4 5
q 0 0 0 0 -1 -1
xa 2 3 -1 0 1 0 650
5
xa5 3 0 -1 0 1 1050
6 Reduzindo as colunas 5 e 6 à forma canônica, temos:
V.B. x1 x2 x3 x4 xa xa5
6
q 7 6 -1 -1 0 0 1700
xa 2 3 -1 0 1 0 650
5
xa5 3 0 -1 0 1 1050
6 Iteração 1:
V.B. x1 x2 x3 x4 5
xa xa6
q 7 6 -1 -1 0 0 1700
xa 2 3 -1 0 1 0 650
5
xa5 3 0 -1 0 1 1050
6 Iteração 2:
V.B. x1 x2 x3 x4 5
xa xa6
q 0 1,8 -1 0,4 0 -1,4 230
xa 0 1,8 -1 0,4 1 -0,4 230
5
x1 1 0,6 0 -0,2 0 0,2 210
xa xa6
V.B. x1 x2 x3 x4 5
q 0 0 0 0 -1 -1 0
x2 0 1 -0,56 0,22 0,56 -0,22 127,78
x1 1 0 0,33 0,13 -0,33 -0,13 133,33
Fim da Fase 1. Retirando as partes sombreadas acima, e re-introduzindo a função objetivo original,
temos:
54. 52
FASE 2
V.B. x1 x2 x3 x4
-Z’ 32 35 0 0 0
x2 0 1 -0,56 0,22 127,78
x1 1 0 0,33 0,13 133,33
Reduzindo as colunas 1 e 2 à forma canônica, temos:
V.B. x1 x2 x3 x4
-Z’ 0 0 -8,78 -12,04 -8.738.89
x2 0 1 -0,56 0,22 127,78
x1 1 0 0,33 0,13 133,33
O quadro acima já contém a solução ótima:
x1 = 133,33 kg
x2 = 127,78 kg
Custo mínimo = $ 8.738.89
As iterações do algoritmo são representadas na figura abaixo:
0 40 80 120 160 200 240 280 320 360 400
400
360
320
280
240
200
160
120
80
40
0
F.O.
Nutr.A
Nutr.C
Mistura de Ração
x1
x2
55. 53
Elementos de Pós-Otimização
Seja o PPL dado pela Forma Padrão:
Max. Z = cx
s.a.
Ax = b,
x ³ 0
e suponha que a aplicação do método Simplex encontrou uma solução ótima associada a uma matriz
básica B.
Podemos ter então as seguintes situações:
1. Mudança no vetor c
2. Mudança no vetor b
3. Mudança na matriz A
4. Adição de nova atividade
5. Adição de uma nova restrição.
Se a análise não permite mudança na base B, tem-se uma Análise de Sensibilidade. Caso contrário,
uma Análise Paramétrica. Neste módulo, será feita uma abordagem da primeira situação.
Em que faixa podem variar os custos e os meus recursos de modo que a minha solução não
mude?
Max. Z = cx
s.a.
Ax = b,
x ³ 0
é equivalente a:
Max. Z = cB xB + cRxR
s.a.
B R Bx + Rx = b ,
0, 0 B R x ³ x ³
Como já foi visto anteriormente, o método Simplex procura, a partir de uma determinada
partição da matriz A, resolver o sistema de equações Ax = b, sendo que a solução, para 0 R x = , é de-nominada
solução básica. Se esta solução atende a restrição x ³ 0, ela é denominada de solução bá-sica
viável. Se ela minimiza a F.O. Z, ela é chamada de solução ótima do PPL.
O Quadro Simplex na Forma Canônica:
B x R x
-Z 0 cj – zj 1
B c B- b
xB I B-1R B-1b
onde zj = 1
B j c B- a
56. 54
Condição de Otimalidade (maximização):
(cj – zj) £ 0
para toda variável não básica.
Um exemplo:
Considere o modelo do PPL visto na página 45 (com Xp e Xc sendo substituídos por x1 e x2, respec-tivamente):
max. x1 + x2
s.a.
x1 + x3 = 300
x2 + x4 = 150
x1 + 1,5x2 + x5 = 400
xj ³ 0
sendo
= = = [ ]
=
1
2
3
4
5
1 0 1 0 0 300
0 1 0 1 0 150 1 1 0 0 0
1 1,5 0 0 1 400
x
x
A b c x x
x
x
Vimos que a solução ótima para este PPL é:
Z* = 366.67
x* = (300; 66,67; 0; 83.33; 0; 0)
Temos, portanto, que x1, x2 e x4 são atividades básicas, e x3, x5 são atividades não básicas. Expres-sando
isso em termos das equações matriciais vistas anteriormente, temos...
1 0 0 1 0 1 0 0
0 1 1 0 0 0,67 0 0,67
1 1,5 0 0 1 0,67 1 0,67
= = 1
= -
-
B R B-
= [ ] = [ ]
= =
x
1
3
1 1 0 0 0 B R B R
2
5
4
x
c c x x x
x
x
1 [ 0,333 0,667] R B c - c B- R = - -
1 [300 66,67 83,33] B x = B- b =
366,67 B B c x =
...que é precisamente o resultado que obtivemos na resolução do PPL através do Simplex:
57. 55
====================================================
-Z| 0.0 0.0 -0.3 0.0 -0.7| -366.7
----------------------------------------------------
Xp| 1.0 0.0 1.0 0.0 0.0| 300.0
X4| 0.0 0.0 0.7 1.0 -0.7| 83.3
Xc| 0.0 1.0 -0.7 0.0 0.7| 66.7
====================================================
Mudança no vetor c
A análise é feita considerando-se a variação no coeficiente de cada variável na função objetivo, exi-gindo-
se que as condições de otimalidade:
(cj – zj) £ 0
sejam atendidas para toda VNB. Neste caso, se a variável em questão for não básica resolve-se uma
desigualdade linear, enquanto que se ela for variável básica resolve-se um sistema de desigualdades
lineares.
Exemplo:
Considere a VNB x3 no quadro SIMPLEX ótimo visto anteriormente. O coeficiente de x3 na F.O. é
c3 = 0.
Deve-se ter:
+ - £ ⇒ + - - £
c l z c l cBB a
[ ]
1
3 3 3 3 ( ) 0 ( ) 0
1 0 0 1
l
(0 ) 1 1 0 0,67 0 0,67 0 0
0,67 1 0,67 0
0,333 0
0,333
l
l
⇒ + - - £
-
⇒ - £
⇒ £
Isso permite uma variação para c3 de –¥ até 0,333. Neste intervalo, x3 continuará sendo VNB. Mais
ainda, os conjuntos de VB e de VNB não mudam.
Para fazer a mesma análise considerando uma VB (e.g. x1), poderíamos fazer assim:
- - £
1 0
R B c c B R
[ ] [ ]
1 0 0 1 0
0 0 (1 ) 1 0 0,67 0 0,67 0 0 0
0,67 1 0,67 0 1
0,333
l
l
⇒ - + - £
-
⇒ ³ -
58. 56
Mudança no vetor b
Qualquer mudança no vetor b deve ser feita de modo que as VB continuem não negativas, ou seja:
B-1b ³ 0
Exemplo:
Considere o elemento b1=300. Temos então que:
b
1
1
B b
2
b
3
l 1 0 0 300
l
0 0,67 0 0,67 150 0
0,67 1 0,67 400
l
300 0
l
l
66,67 0.67 0
83,33 0.67 0
125 100
l
-
+ +
³ ⇒- ³
-
+ ³
⇒ - ³
+ ³
⇒- £ £
o que permite uma variação para o elemento b1 de 175 a 400.
59. 57
Dualidade
L
e(t) i(t) R
C L C
R
i
e
Circuito 1 Circuito 2
Relacionamentos entre a corrente i e a tensão e:
1
di
L + + ∫ =
Circuito 1: idt e ( t
)
C
Ri
dt
1
de
C + + ∫ =
Circuito 2: edt i ( t
)
L
Gi
dt
onde G = 1 R
dx
a + + ∫ =
Forma geral: bx c xdt y(t)
dt
Dizemos que os Circuitos 1 e 2 são duais.
Circuito 1: primal
Circuito 2: dual
(ou vice-versa)
Seja o modelo de PL:
n
Max. j
=
Σj j c x
1
(1)
n
ij j b x a £ Σ=1
s.a. i
j
, para i = 1, 2, ..., m (2)
xj ³ 0 para j = 1, 2, ..., n (3)
Chamamos esse modelo de primal. O modelo dual relacionado a ele é:
m
Min. i
=
Σi i b u
1
(4)
m
ij i c u a ³ Σ=1
s.a. j
i
, para j = 1, 2, ..., n (5)
ui ³ 0 para i = 1, 2, ..., m (6)
Usando a notação matricial, temos:
60. 58
Primal (P) Dual (D)
Max. cx Min. ub
s.a. Ax £ b s.a. uA ³ c
x ³ 0
x: (1× n)
u ³ 0
u: (m × 1)
Exemplo:
Primal (P) Dual (D)
Max. 3x1 + 1x2 + 2x3
s.a. 2x1 + 4x2 + 3x3 £ 6
3x1 + 3x2 + 1x3 £ 8
x1 ³ 0, x2 ³ 0, x3 ³ 0
Min. 6u1 + 8u2
s.a. 2u1 + 3u2 ³ 3
4u1 + 3u2 ³ 1
3u1 + 1u2 ³ 2
u1 ³ 0, u2 ³ 0
Teorema 1:
Se x e u são soluções viáveis dos problemas (P) e (D), respectivamente, então cx £ ub
Teorema 2:
Se x e u são soluções viáveis dos problemas (P) e (D), respectivamente, e cx = ub , então essas so-luções
são ótimas, ou seja, cx* = u*b
Teorema da Existência
Para um par de problemas duais, uma e somente uma das alternativas abaixo é verdadeira:
· Nenhum dos problemas tem solução.
· Um deles não tem solução viável e o outro tem solução ótima ilimitada.
· Ambos possuem solução ótima finita.
Ex:
(P) Max. –3x1 + 2x2
s.a. x1 £ 3
x1 – x2 £ 0
x1 ³ 0, x2 ³ 0
(D) Min. –3u1 + 0u2
s.a. u1 + u2 ³ –3
3u2 £ –2
u1 ³ 0, u2 ³ 0
Teorema das Folgas Complementares
Dado um par de problemas duais, uma condição necessária e suficiente para que as soluções x e u
sejam ótimas é que se verifiquem as seguintes relações de complementaridade de folga:
u(Ax – b) = 0
(c – uA)x = 0
Prova:
61. 59
³ - ³ - ³
0 ( ) 0
Ax b Ax b u Ax b
£ - ³ - ³
0 ( ) 0
uA c c uA c uA x
Fazendo
a
= -
( )
u Ax b
( )
= -
c uA x
b
Teremos:
a + b = u(Ax - b) + (c - uA)x = cx - ub ³ 0
Se x e u forem soluções ótimas, teremos:
cx = ub
Logo,
a = b = 0
Relacionamentos entre o Problema Primal e seu Dual
Na prática, muitos modelos de PL contêm restrições do tipo “£”, bem como outras restrições do tipo
“³” e outras ainda do tipo “=”. Podemos ainda ter variáveis irrestritas ou até mesmo negativas no
modelo original (não padrão), como vimos anteriormente. A tabela abaixo mostra como podemos
converter imediatamente esses modelos “mistos” em seus respectivos duais, sem que seja necessá-rio
passar fazer o modelo passar por transformações intermediárias.
Problema de
Maximização
Problema de
Minimização
³ 0 ¬–® ³
£ 0 ¬–® £
Variáveis
Irrestrito ¬–® =
Restrições
£ ¬–® ³ 0
³ ¬–® £ 0
= ¬–® Irrestrito
Restrições
Variáveis
Feita essa primeira transformação, podemos então aplicar as regras usuais para passar o modelo du-al
para a forma padrão, caso, seja necessário.
62. 60
Exemplo
Uma fábrica pode produzir três produtos: televisores, DVDs e cãmeras de vídeo. Na tabela abaixo
estão apresentados os consumos dos principais recursos da fábrica por produto, bem como a dispo-nibilidade
destes recursos, a contribuição unitária de cada produto para o lucro da empresa, e a de-manda
mínima do mercado.
Consumo de Recursos Recursos da Fábrica (horas / unid.)
(Setores de Produção) Televisor DVD Cãmera
Disponibilidade
(horas / mês)
Produção de Circuitos
Produção de Mecanismos
Produção de Gabinetes
Montagem de Produtos
Expedição
0,151
0,000
0,078
0,340
0,057
0,210
0,345
0,056
0,450
0,030
0,120
0,450
0,045
0,370
0,045
22,500
17,200
10,500
35,000
6,800
Lucro (R$ / unid.) 45,00 115,00 216,00
Demanda mínima (unid. / mês) 55,800 15,500 23,200
Para o problema acima foi obtida a seguinte solução ótima através do LindoÒ:
OBJECTIVE FUNCTION VALUE
1) 9578.494
VARIABLE VALUE REDUCED COST
X1 55.800000 0.000000
X2 15.500000 0.000000
X3 24.467567 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
2) 7.883092 0.000000
3) 0.842095 0.000000
4) 4.178559 0.000000
5) 0.000000 583.783813
6) 2.053360 0.000000
7) 0.000000 -153.486481
8) 0.000000 -147.702698
9) 1.267568 0.000000
RANGES IN WHICH THE BASIS IS UNCHANGED:
OBJ COEFFICIENT RANGES
VARIABLE CURRENT ALLOWABLE ALLOWABLE
COEF INCREASE DECREASE
X1 45.000000 153.486481 INFINITY
X2 115.000000 147.702698 INFINITY
X3 216.000000 INFINITY 121.444443
RIGHTHAND SIDE RANGES
ROW CURRENT ALLOWABLE ALLOWABLE
RHS INCREASE DECREASE
2 22.500000 INFINITY 7.883092
3 17.200000 INFINITY 0.842095
4 10.500000 INFINITY 4.178559
5 35.000000 0.692389 0.469000
6 6.800000 INFINITY 2.053360
7 55.800000 1.379412 2.036438
8 15.500000 1.042222 4.162659
9 23.200000 1.267568 INFINITY
63. 61
1. Construa um modelo matemático para este problema de produção.
Observando a tabela com os parãmetros, e mais a seqüência na qual estão dispostas as cons-tantes
do lado direito (RHS) na solução dada, podemos construir o modelo exato que foi u-sado
para obter a solução pelo Lindo:
maximizar 45x1 + 115x2 + 216x3 (1)
sujeito a:
0,151x1 0,210x2 + 0,120x3 £ 22,5 (2)
0,345x2 0,450x3 £ 17,2 (3)
0,078x1 + 0,056x2 0,045x3 £ 10,5 (4)
0,340x1 0,450x2 0,370x3 £ 35,0 (5)
0,057x1 0,030x2 0,045x3 £ 6,8 (6)
x1 ³ 55,8 (7)
x2 ³ 15,5 (8)
x3 ³ 23,2 (9)
2. Descreva a solução obtida (variáveis de decisão, variáveis de folga e função objetivo).
– O lucro máximo obtido foi de R$ 9578,494 / mês;
– Para obter esse lucro, é preciso fabricar uma média de 55,8 televisores, 15,5 DVDs e
24,47 Cãmeras por mês;
– Pelo resultado das variáveis de folga, vemos que:
– O setor de Montagem de Produtos trabalhará sem qualquer folga;
– O setor de Produção de Circuitos é o que está com uma folga maior (7,88 h/mês), se-guido
pelo setor de Produção de Gabinetes (4,18 h/mês);
– Serão fabricadas exatamente as quantidades mínimas possíveis de televisores e
DVDs, e uma média de 1,27 cãmeras / mês a mais que o mínimo de 23,2.
3. O que aconteceria com o lucro da empresa se a demanda de televisores passasse para:
i) 57 unid. / mês?
Pela análise de sensibilidade, vemos que, para que a mesma base seja mantida, a demanda de
televisores precisa estar entre (55,8 – 2,036438) e (55,8 + 1.379412), ou seja, entre 53,76 e
57,18. Portanto, com uma demanda de 57 unid./mês, podemos considerar o preço dual para a
restrição de demanda de televisores, que é de cerca de –153,48. Isso significa que o lucro da
empresa piora de R$ 153,48 para cada unidade de aumento da demanda de televisores. Para
uma demanda de 57, teríamos um aumento na demanda de 1,2, e portanto o lucro sofreria
um decréscimo de 1,2 ´ 153,48 = R$ 184,17 / mês.
ii) 60 unid. / mês?
Neste caso, a demanda ultrapassaria o limite estabelecido pela análise de sensibilidade, e te-ríamos
uma mudança de base. Não podemos, neste caso, fazer qualquer análise quantitativa
com base somente nas informações fornecidas na solução do problema.
4. Faça sugestões para o superintendente da empresa, de modo que se possa aumentar ainda mais o
lucro total.
Para o superintendente da empresa, provavelmente seria difícil alterar as demandas mínimas
dos produtos, pois esses são estabelecidos pelo mercado. Aumentar o lucro para cada produ-
64. to seria uma sugestão óbvia, mas isso provavelmente já teria sido feito se fosse possível. A-nalisando
as variáveis de folga e os preços duais, vemos que, para cada unidade que aumen-tarmos
62
a capacidade do Setor de Montagem de Produtos, o lucro aumenta em R$ 583,78 /
mês. Podemos tentar obter essa capacidade adicional usando um pouco de mão de obra ocio-sa
dos setores de Produção de Circuitos e de Produção de Gabinetes. Se não for possível des-locar
essa mão de obra, teríamos ainda grande chance de contratar mão de obra adicional a
um custo menor do que R$ 583,78 / hora. Deve ser notado, no entanto, que esse aumento no
lucro só é válido para uma capacidade desse setor 0,62 horas / mês acima da capacidade atu-al.
Portanto, seria interessante fazer algumas simulações para ter uma idéia melhor das con-seqüências
da contratação de um novo funcionário para esse setor.
65. 63
PARTE II – Programação em Redes
Introdução
No contexto da Pesquisa Operacional, chamamos de Programação em Redes o estudo dos proble-mas
que utilizam a Teoria dos Grafos como um dos principais recursos de modelagem. Neste con-texto,
o termo “rede” pode se referir não somente a uma “rede de computadores”, mas também a
uma rede de transportes, de distribuição etc. Exemplos:
· Redes de computadores
· Redes ferroviárias
· Redes de telecomunicações
· Redes de estradas
· Redes Elétricas
· Redes de esgotos
· Redes de transportes
· Redes de atividades → “scheduling” de atividades em grandes projetos
Neste escopo, portanto, uma rede pode se referir a qualquer conjunto de entidades (computadores,
lojas, fábricas, máquinas, pessoas etc.) interligadas por meio de cabos, estradas, caminhos etc., ou
que possuem algum inter-relacionamento. Esse tipo de problema se encaixa perfeitamente na mode-lagem
por meio de grafos, como veremos mais adiante.
Redes / Grafos
Antes de estudarmos formalmente o que são grafos, considere o seguinte exemplo: Um vendedor
ambulante deve sair de uma cidade de origem, visitar várias outras cidades, e depois retornar à ci-dade
de origem, passando por cada uma dessas cidades uma única vez. Sabendo que existem muitas
formas diferentes de realizar essas visitas, ele deseja descobrir o itinerário que proporciona a menor
distância (ou tempo ou custo) total percorrida. Esse problema clássico da P.O. é chamado de “Pro-blema
do Caixeiro Viajante (PCV)”. Podemos exemplificar o problema considerando somente 5 ci-dades
e a rede de interligações (estradas) ilustrada na figura a seguir, onde os valores nas linhas re-presentam
as distâncias entre as cidades.
ESTRUTURA
TOPOLÓGICA
INFORMAÇÕES QUANTITATIVAS
SOBRE OS ELEMENTOS
66. 64
2 3
4 5
1
300
300
200
200
200
150
350
200
250
350
Como podemos resolver esse problema? A forma mais simples seria enumerar todas as rotas possí-veis
e calcular a distância de cada uma. Como a posição da cidade-origem no itinerário é fixo, esse
método envolveria analisar todas as permutações possíveis dentre as n–1 cidades restantes, ou seja,
analisar (n–1)! possíveis rotas.
Com 5 cidades, teríamos 4! = 24 rotas, o que seria trivial de analisar (podendo até mesmo ser feito à
mão). Com 10 cidades, teríamos cerca de 362 mil rotas, o que seria perfeitamente possível com a
ajuda de um micro-computador. Aumentando esse número para 20 cidades, teríamos cerca de 1017
rotas. Se pudéssemos implementar um programa que pudesse analisar uma solução (permutação) a
cada ciclo de relógio de um computador, então usando um computador de 4 GHz gastaríamos:
17
10
4´10
9
= 2,5 ´ 107 segundos = 9,5 meses!
Com 50 cidades, teríamos cerca de 1062 rotas, requerendo cerca de 1045 anos de processamento!
Embora o uso de uma técnica dessas de “força bruta” não fosse a maneira mais inteligente de en-contrar
uma solução ótima para esse problema (a não talvez para um pequeno número de cidades),
nesse caso não existe realmente uma técnica apropriada para fazer isso, seja ela por meio de mode-lagem
matemática em forma de PL, ou usando um outro algoritmo qualquer. Diferente dos proble-mas
de PL que estudamos anteriormente, que dispõem do eficiente método Simplex, todos os méto-dos
disponíveis para a obtenção de uma solução ótima para o PCV possuem dificuldade exponenci-al
com o tamanho do problema (número de cidades).
Assim como o PCV, diversos outros problemas de programação em redes são extremamente difíceis
de resolver. Nesses casos, o mais indicado é o uso de heurísticas, ou seja, algoritmos buscam en-contrar
uma solução boa para o problema, mas não necessariamente a solução ótima, dentro de um
intervalo de tempo viável.
No entanto, outros problemas de programação em redes, embora possam ser modelados como PLs e
resolvidos pelo Simplex, possuem métodos de solução bem mais eficientes e que permitem resolver
problemas bem maiores do que seria possível se usássemos a modelagem matemática. Isso é possí-vel
graças aos desenvolvimentos obtidos na Teoria dos Grafos. Além de vermos alguns desses pro-blemas,
a nossa preocupação será também identificar aqueles problemas que, assim como o PCV,
são mais difíceis de resolver e, portanto, requerem a busca de soluções não-ótimas ou “aproxima-das”.
67. 65
Introdução à Teoria de Grafos
Teoria dos grafos é uma ferramenta para formular problemas, tornando-os precisos, e definindo in-ter-
relações fundamentais. Algumas vezes, uma formulação simples e precisa de um problema nos
ajuda a compreendê-lo melhor. O maior trunfo de uma ferramenta de formulação é a possibilidade
de compreender o modelo matemático de modo simplificado. Deste modo, na Teoria dos Grafos, a
maior unidade de aprendizado que se usa é a assistência a colocações e possíveis encaminhamentos
futuros a um problema. Uma vez que um problema seja formulado em linguagem teórica de grafos,
os conceitos de Teoria dos Grafos podem ser usados para definir o que é necessário para analisar o
problema. Também, a Teoria dos Grafos pode nos levar a novos conceitos teóricos os quais podem
ser usados para construir teorias sobre problemas da sociedade. No entanto, alguns problemas po-dem
ser modelados somente em parte por grafos - problemas de telecomunicações, dentre outros,
nos levando a crer que esta teoria é algo que complementa com elegância a análise de vários pro-blemas
de nosso dia a dia.
Problemas de Grafos surgem geralmente em:
· Caminhos;
· Redes de comunicação;
· Localização de facilidades (Depósitos, Hospitais, Escolas, etc.);
· Desenhos de circuitos impressos;
· Desenho e/ou layout de revistas, jornais, etc;
· Distribuição de produtos;
· Telecomunicações;
· Limpeza urbana;
· Controle de tráfego;
· Atribuição de rádio freqüência móvel, etc.
Teoria dos grafos, sem abusar muito do princípio, é uma ferramenta que às vezes resolve problemas
e algumas vezes nos dá idéias sobre como resolvê-los. Ela, em geral, tem que ser usada em conjunto
com muitas outras ferramentas, matemáticas ou estatísticas, etc. Felizmente, o uso da teoria dos gra-fos
pode nos ajudar a compreender em “poucas palavras” o significado de grandes problemas liga-dos
à nossa vida social, e algumas de suas possíveis soluções.
Uma Breve História da Teoria dos Grafos
Os problemas de Percurso em Arcos são os mais antigos relacionados a grafos. A primeira referên-cia
que se conhece sobre eles vem do famoso problema das sete pontes de Königsberg (Figura 1).
Buscava-se saber se havia um caminho fechado que atravessasse exatamente uma vez sete pontes
sobre o rio Pregel em Königsberg, hoje Kaliningrad (Figura 2). O problema foi solucionado em
1736 pelo matemático suíço Leonhard Euler, que encontrou as condições para a existência de um
percurso fechado (grafo euleriano), e mostrou que não havia solução que satisfizesse aquele caso
particular (Figura 3).
A preocupação de Euler, na demonstração da solução, foi exclusivamente sobre a existência do ca-minho
fechado, já a questão de determiná-lo só foi resolvida em 1873 (ou seja, 137 anos mais tarde)
por Heierholzer.
68. 66
Figura 1: Visualização de Königsberg, e indicação das sete pontes sobre o rio Pregel.
Figura 2: A cidade de Kaliningrad hoje – reconstruída após a 2a Guerra Mundial.
Figura 3: Representação de Euler do problema.
69. Muitos anos mais tarde, em 1962, um matemático da Universidade Normal de Shangtun, Kwan
Mei-Ko, quando de sua passagem como funcionário dos correios durante a revolução cultural chi-nesa,
preocupou-se com uma situação semelhante à de Euler e Heierholzer, porém adequada ao per-curso
dos carteiros que atenderiam ruas de sua cidade. Neste caso, Kwan mostrou-se interessado em
definir além da travessia, a forma mais fácil de fazê-la, percorrendo a menor distância possível.
Kwan, definiu assim o problema: Um carteiro tem que cobrir seu local de trabalho, antes de retor-nar
ao posto. O problema é encontrar a menor distância de percurso para o carteiro. Esse proble-ma
é conhecido como o “Problema do Carteiro Chinês”.
Dentre as muitas e famosas histórias da Teoria dos Grafos, sem dúvida uma das mais curiosas é a
do matemático William Rowan Hamilton. Hamilton já fazia parte da Royal Astronomia Irlandesa
aos 22 anos, foi condecorado Cavalheiro aos 30 anos, e foi reconhecido como um dos líderes mate-máticos
67
de sua época. Uma de suas descobertas mais significativas foi a existência da álgebra não
comutativa, ou seja, a álgebra onde a multiplicação xy não necessariamente é igual a yx. Há muitos
sistemas de álgebra não comutativa, e um deles, descoberto por Hamilton foi chamado por ele de O
Cálculo Icosiano, o qual pode ser interpretado em termos de caminhos sobre um grafo descrito por
um dodecaedro regular.
Hamilton comunicou sua descoberta em uma carta datada de 7 de outubro de 1856, e posteriormen-te
publicou dois artigos sobre o assunto. Ele usou uma representação gráfica como base de um que-bra-
cabeças, que ele chamou de O Jogo Icosiano. Hamilton expôs orgulhosamente o seu jogo na
Associação Britânica em Dublin, 1857. A idéia foi vendida por 16 pounds para um comerciante de
jogos e quebra-cabeças.
O jogo foi comercializado em 1857, acompanhado por um guia de instruções, escrito pelo próprio
Hamilton. O leitor logo veria que o objetivo do jogo era encontrar caminhos e circuitos sobre o gra-fo
formado pelo dodecaedro, satisfazendo certas condições específicas. Particularmente, o primeiro
problema era o de encontrar um circuito passando somente uma vez por cada vértice do dodecaedro,
que é exatamente o PCV descrito anteriormente (Figura 4).
Figura 4: (a) Dodecaedro para o Jogo Icosiano. (b) Uma solução ou “ciclo hamiltoniano”.
70. 68
Conceitos Básicos da Teoria de Grafos
GRAFO
Um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:
V - conjunto não vazio: os vértices ou nodos do grafo;
A - conjunto de pares ordenados a=(v,w), v e w Î V: as arestas do
grafo.
Seja, por exemplo, o grafo G(V,A) dado por:
V = { p | p é uma pessoa }
A = { (v,w) | v é amigo de w }
Esta definição representa toda uma família de grafos.
Um exemplo de elemento desta família (ver G1) é da-do
por:
V = { Maria, Pedro, Joana, Luiz }
A = { (Maria, Pedro) , (Joana, Maria) ,
(Pedro, Luiz) , (Joana, Pedro) }
G1:
Neste exemplo estamos considerando que a relação v é amigo de w é uma rela-ção
simétrica, ou seja, se v é amigo de w então w é amigo de v. Como conse-qüência,
as arestas que ligam os vértices não possuem qualquer orientação
DIGRAFO (Grafo Orientado)
Considere, agora, o grafo definido por:
V = { p | p é uma pessoa da família Castro }
A = { (v,w) | v é pai/mãe de w }
Um exemplo de deste grafo (ver G2) é:
V = { Emerson, Isadora, Renata,
Antonio, Rosane, Cecília, Alfredo }
A = {(Isadora, Emerson), (Antonio,
Renata), (Alfredo, Emerson), (Cecí-lia,
Antonio), (Alfredo, Antonio)}
G2:
A relação definida por A não é simétrica pois se v é pai/mãe de w, não é o caso
de w é pai/mãe de v. O grafo acima é dito ser um grafo orientado (ou digrafo),
sendo que as conexões entre os vértices são chamadas de arcos.
71. 69
ORDEM
A ordem de um grafo G é dada pela cardinalidade do conjunto de vértices, ou seja,
pelo número de vértices de G. Nos exemplos ao lado:
· ordem(G1) = 4
· ordem(G2) = 6
ADJACÊNCIA
Em um grafo simples (a exemplo de G1) dois vértices v e w são adjacentes (ou vizi-nhos)
se há uma aresta a=(v,w) em G. Está aresta é dita ser incidente a ambos, v e w.
É o caso dos vértices Maria e Pedro em G1. No caso do grafo ser dirigido (a exem-plo
de G2), a adjacência (vizinhança) é especializada em:
Sucessor: um vértice w é sucessor de v se há um arco que parte de v e chega em w.
Em G2, por exemplo, diz-se que Emerson e Antonio são sucessores de Alfredo.
Antecessor: um vértice v é antecessor de w se há um arco que parte de v e chega em
w. Em G2, por exemplo, diz-se que Alfredo e Cecília são antecessores de Antonio.
GRAU
O grau de um vértice é dado pelo número de arestas que lhe são incidentes. Em G1,
por exemplo:
· grau(Pedro) = 3
· grau(Maria) = 2
No caso do grafo ser dirigido (a exemplo de G2), a noção de grau é especializada
em:
Grau de emissão: o grau de emissão de um vértice v corresponde ao número de ar-cos
que partem de v. Em G2, por exemplo:
· grauDeEmissao(Alfredo) = 2
Grau de recepção: o grau de recepção de um vértice v corresponde ao número de
arcos que chegam a v. Em G2, por exemplo:
· grauDeRecepção(Alfredo) = 0
FONTE
Um vértice v é uma fonte se grauDeRecepção(v) = 0. É o caso dos vértices Isadora,
Alfredo e Cecília em G2.
SUMIDOURO
Um vértice v é um sumidouro se grauDeEmissão(v) = 0. É o caso dos vértices Rena-ta
e Emerson em G2.
72. 70
GRAFO REGULAR
Um grafo é dito ser regular quando todos
os seus vértices têm o mesmo grau.
O grafo G4, por exemplo, é dito ser um
grafo regular-3, pois todos os seus vértices
tem grau 3.
G4:
GRAFO COMPLETO
Um grafo é dito ser completo quando há
uma aresta entre cada par de seus vértices.
Estes grafos são designados por Kn, onde n
é a ordem do grafo.
Um grafo Kn possui o número máximo possível de arestas para um dado número de
nós n. Ele é, também regular-(n-1), pois todos os seus vértices tem grau n-1.
GRAFO BIPARTIDO
Um grafo é dito ser bipartido quando seu conjunto de vértices V puder ser particio-nado
em dois subconjuntos V1 e V2, tais que toda aresta de G une um vértice de V1 a
outro de V2.
Para exemplificar, sejam os conjuntos
H={h | h é um homem} e M={m | h é um
mulher} e o grafo G(V,A) (ver o exemplo
G5) onde:
· V = H U M
· A = {(v,w) | (v Î H e w Î M) ou (v
Î M e w Î H) e v foi namorado
de w}
G5:
O grafo G6 é uma K3,3, ou seja, um grafo
bipartido completo que contém duas par-tições
de 3 vértices cada. Ele é completo
pois todos os vértices de uma partição es-tão
ligados a todos os vértices da outra par-tição.
G6:
K3,3
73. 71
GRAFO VALORADO
Um grafo G(V,A) é dito ser valora-do
quando existe uma ou mais funções rela-cionando
V e/ou A com um conjunto de nú-meros.
Para exemplificar (ver o grafo G7), seja
G(V,A) onde:
· V = {v | v é uma cidade com aero-porto}
· A = {(v,w,t) | há linha aérea ligan-do
v a w, sendo t o tempo esperado
de vôo}
G7:
MULTIGRAFO
Um grafo G(V,A) é dito ser um multigra-fo
quando existem múltiplas arestas entre
pares de vértices de G. No grafo G8, por e-xemplo,
há duas arestas entre os vértices A e
C e entre os vértices A e B, caracterizando-o
como um multigrafo.
G8:
SUBGRAFO
Um grafo Gs(Vs, As) é dito ser subgrafo de
um grafo G(V,A) quando Vs Ì V e As Ì A. O
grafo G9, por exemplo, é subgrafo de G8.
G9:
CADEIA
Uma cadeia é uma seqüência qualquer de arestas
adjacentes que ligam dois vértices. O conceito de
cadeia vale também para grafos orientados, bas-tando
que se ignore o sentido da orientação dos
arcos. A seqüência de vértices (x6, x5, x4, x1) é um
exemplo de cadeia em G11.
Uma cadeia é dita ser elementar se não passa du-as
vezes pelo mesmo vértice.
É dita ser simples se não passa duas vezes pela
mesma aresta (arco).
O comprimento de uma cadeia é o número de a-restas
(arcos) que a compõe.
G11:
74. 72
CAMINHO
Um caminho é uma cadeia na qual todos os arcos possuem a mesma orientação. A-plica-
se, portanto, somente a grafos orientados. A seqüência de vértices (x1, x2, x5,
x6, x3) é um exemplo de caminho em G11.
CICLO
Um ciclo é uma cadeia simples e fechada (o vértice inicial é o mesmo que o vértice
final). A seqüência de vértices (x1, x2, x3, x6, x5, x4, x1) é um exemplo de ciclo ele-mentar
em G11.
CIRCUITO
Um circuito é um caminho simples e fechado. A seqüência de vértices (x1, x2, x5, x4,
x1) é um exemplo de circuito elementar em G11.
FECHO TRANSITIVO
O fecho transitivo direto (ftd) de um vértice v é o conjunto de todos os vértices que
podem ser atingidos por algum caminho iniciando em v. O ftd do vértice x5 do grafo
G17, por exemplo, é o conjunto: {x1, x2, x3, x4, x5, x6}. Note que o próprio vértice faz
parte do ftd já que ele é alcançável partindo-se dele mesmo.
O fecho transitivo inverso (fti) de um vértice v é o conjunto de todos os vértices a
partir dos quais se pode atingir v por algum caminho. O fti do vértice x5 do grafo G17,
por exemplo, é o conjunto: {x1, x2, x4, x5, x7}. Note que o próprio vértice faz parte do
fti já que dele se pode alcançar ele mesmo.
G12:
GRAFO CONEXO
Um grafo G(V,A) é dito ser conexo se
há pelo menos uma cadeia ligando ca-da
par de vértices deste grafo G.
G13:
GRAFO DESCONEXO
Um grafo G(V,A) é dito ser desconexo
se há pelo menos um par de vértices
que não está ligado por nenhuma ca-deia.
G14:
PONTE
Uma aresta é dita ser um a ponte se sua remoção provoca um redução na conexidade
do grafo. As arestas (x1, x2) em G13 e G14 são exemplos de pontes.
75. 73
ÁRVORE
Uma árvore é um grafo conexo sem ciclos.
Seja G(V,A) um grafo com ordem n 2; as proprie-dades
seguintes são equivalentes para caracterizar G
como uma árvore:
1. G é conexo e sem ciclos;
2. G é sem ciclos e tem n-1 arestas;
3. G é conexo e tem n-1 arestas;
4. G é sem ciclos e por adição de uma aresta se
cria um ciclo e somente um;
5. G é conexo, mas deixa de sê-lo se uma aresta
é suprimida (todas as arestas são pontes);
6. todo par de vértices de G é unido por uma e
somente uma cadeia simples.
G20:
ARBORESCÊNCIA
Uma arborescência é uma árvore que possui uma ra-iz.
Aplica-se, portanto, somente a grafos orientados.
G21:
FLORESTA
Uma floresta é um grafo cujas componentes conexas
são árvores.
G22: