Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

UNIVERSIDADE ESTADUAL PAULISTA
FACULDADE DE MEDICINA VETERINÁRIA E ZOOTECNIA
DEPARTAMENTO DE MELHORAMENTO E NUTRIÇÃO ANIMAL
CÂMPUS DE BOTUCATU
FORMULAÇÃO DE RAÇÕES
PROFESSOR: ANTONIO CELSO PEZZATO
BOTUCATU
2003
FUNDAMENTOS TEÓRICOS PARA FORMULAÇÃO DE RAÇÕES
1. INTRODUÇÃO
Em uma economia de livre mercado, para competir de forma eficiente é necessário ter os custo de
produção mínimos possíveis, de tal maneira, que se possam ter preços dos produtos competitivos no
mercado, assegurando uma adequada rentabilidade de retorno.
A importância de contar com rações devidamente balanceada de mínimo custo torna de grande
interesse se considerarmos que os custos de alimentação constituem normalmente entre 60 e 70%
dos custos de produção em uma exploração animal.
A formulação de rações de mínimo custo por computador tem permitido entre outras coisas, as
seguintes vantagens:
 Formulação rápida e precisa de rações balanceadas e de custo mínimo;
 Diminuição nos custos de alimentação, produção com conseqüente aumento nos lucros;
 Avaliação de sensibilidade econômica das rações antes das alterações dos preços dos
ingredientes;
 Apoiar decisões comerciais ante as alternativas de vender ou incluir na ração de uma matéria
prima de produção própria ou excedente;
 Manter os custos de alimentação em valores mínimos ante as trocas de preços dos
componentes, mudando as fórmulas rapidamente, quando necessário.
2. PROGRAMAÇÃO LINEAR
A formulação de rações de custo mínimo se realiza através da determinação de um Modelo
Nutricional de Programação Linear (PL) em que se incorporam as matérias primas (ingredientes)
disponíveis para formular, as restrições nutritivas que deve ter a dieta resultante, as restrições de
quantidade máxima e/ou mínima de alguns componentes se isso for necessário. Além disso, é
necessário fornecer os preços dos componentes disponíveis e uma restrição de consistência de
quantidade de nutrientes por unidade de medida, que pode ser uma unidade (1 kg ou 1 tonelada) ou
em 100% ou ainda um valor, em kg, previamente determinado, em função do peso do animal, que
corresponderia o consumo diário de matéria seca desse grupo de animais.
Os problemas de programação linear se referem ao uso eficiente de recursos limitados,
maximizando ou minimizando o objetivo desejado.
Historicamente o problema geral de programação linear (PPL) foi desenvolvido pela primeira vez
em 1947 por George H. Dantzig e colaboradores do Departamento da Força Aérea dos Estados
Unidos. Nesse ano, o grupo mencionado se encarregou da possibilidade de aplicar técnicas
matemáticas à programação militar e os problemas de planificação. Este estudo levou Dantzig a
propor que a inter-relação entre as atividades de uma organização pode ser definida como um
modelo de Programação Linear. Posteriormente se descobriu que também se pode aplicar esse
modelo em outras áreas, como na agricultura, industria química, comunicações, industria do ferro e
aço, industria de papelaria, de alimentos, análises econômicas, programação de produção e controle
de inventários, projetos de estruturas, problemas de distribuição e inúmeros outros.
3. PLANEJAMENTO DE UM PROBLEMA DE PROGRAMAÇÃO LINEAR
3.1. MODELO DE PROGRAMAÇÃO LINEAR
Matematicamente a programação linear consiste em otimizar uma função objetivo (FO) sujeita a
uma série de condições ou restrições ou ainda, contrastes.
O esquema de um problema geral de programação linear é o seguinte:
Otimizar  Z (Função Objetivo)
Z = C1 * X1 + C2 * X2 + ... Cn * Xm
Onde:
Z = função objetivo
X1, X2, ... Xn são as variáveis do problema;
C1, C2, ... Cm são os coeficientes técnicos da função objetivo a otimizar (no caso específico,
custos dos ingredientes)
Sujeito às seguintes restrições:
Y1  A11 * X1 + A21 * X2 + ... + An1 * Xn =  B1
Y2  A12 * X1 + A22 * X2 + ... + An2 * Xn =  B2
 -- -- -- -- ---- =  -- --
Ym  A1m*X1 + A2m* X2 + ... + Amn * Xn =  Bm
Onde:
Y1, Y2, ... Ym: são as restrições impostas ao sistema (energia, proteína, quantidade, e outros)
A11, A12, A21, A22, ... Amn: são os coeficientes técnicos da matriz (composição química, por
exemplo)
X1, X2, ... Xn: são as variáveis do sistema (ingredientes)
B1, B2, .. Bm: são os valores das restrições
X1, X2, ...Xn = 0 condição fundamental para as variáveis serem maiores ou iguais a zero
Têm-se vários procedimentos matemáticos para resolver problemas de programação linear,
sendo que o de maior uso, por sua potencialidade e praticidade, é o método Simplex.
3.2. MÉTODO SIMPLEX
É uma seqüência de cálculos iterativos e sua aplicação prática se faz em problemas de n
variáveis (X) e m restrições (Y). O problema resolvido se chama de Solução Primal e em resumo tem-
se o seguinte:
 Delineamento de uma solução base;
 Busca de uma solução viável;
 Se existe uma solução viável, continua para o próximo passo;
 Se não existe uma solução possível, termina o cálculo;
 Na busca de uma solução ótima, há duas possibilidades:
o Existe uma solução ótima  mostra os resultados
o Não existe limite para uma solução ótima  busca infinitamente a solução.
Os problemas que não têm solução, basicamente se enquadram em dois tipos:
 Não existe solução possível: Ocorre quando uma ou mais restrição exigida não podem ser
satisfeita ou as restrições são incompatíveis entre si, como, por exemplo, impor um limite
máximo de incorporação de um determinado ingrediente na ração em 5% quando o limite
Maximo do mesmo seria de 10%. Nesses casos de solução impossível, quando uma ou mais
restrições não foram satisfeitas, deve-se analisar as restrições solicitadas e os componentes
que compõem o sistema, incorporando novos ingredientes ou trocando e/ou modificando as
restrições impostas.
 Não existe limite para uma solução ótima: Neste caso as restrições impostas são tais que a
solução não converge a nenhum ponto, encontrando em cada iteração, cada vez valores
menores (em caso de minimização) ou valores cada vez maiores (em caso de maximização).
Um exemplo deste caso é a maximizar dietas com todas as restrições com condições de
limite Maximo, sempre se encontrará uma nova solução que satisfará todas as condições
nutritivas com uma função objetivo cada vez maior. Esse tipo de erro de sistema leva o
programa encontrar iterações infinitas e pode-se evitar este problema desenhando um
modelo convergente, ou seja, deve-se colocar ao menos uma restrição condicionada no
sentido contrário às demais.
3.3. PROBLEMA DUAL
Ao inverter a matriz do problema simplex, esta transforma as restrições anteriores nos
coeficientes da função objetivo e a função objetivo anterior se transforma em restrições, e desta
forma as condições mínimas agora se transformam em máximas e troca o sentido da otimização: a
primal é minimizada e a dual, maximizada.
Após todas essas mudanças, o problema indica os custos relativos das restrições (nutrientes)
limitantes, ou seja, as condições que se satisfazem em quantidade do limite exigido de tal maneira
que qualquer variação nessas restrições causa uma variação no valor da função objetivo e
provavelmente na composição da ração.
Os resultados obtidos sevem como um guia para se obter uma ração ainda mais econômica, e de
se conhecer o valor dessas restrições limitantes.
Com essas informações adicionais pode-se buscar outros componentes de substituição para
serem incluídos no sistema de tal forma, que tenham valores em seus coeficientes técnicos maiores
que os já incluídos ou procurar incluir outros suplementos e/ou modificar o sistema, se possível.
3.4. ANÁLISE DE SENSIBILIDADE
É uma informação adicional que se obtém com o algoritmo simplex, o qual permite medir a
resposta do custo e composição da ração otimizada antes da mudança dos custos de seus
componentes.
Matematicamente consiste na determinação dos limites entre os quais pode-se variar a direção
do hiper-plano da função econômica (Função Objetivo) que o hiper-poliedro das restrições do
problema se mantém fixo.
A resposta da análise de sensibilidade consiste em apresentar os cálculos doscoeficientes de
variação Maximo ou Mínimo a partir da tabela simplex otimizada para cada componente a fim de se
conhecer entre que preços se mantém a solução de ótimo. Se algum dos preços ultrapassar os
limites da análise de sensibilidade para aquele ingrediente, já não é possível uma solução ótima com
os mesmos valores obtidos, tornando necessário reformular os dados para se obter uma nova
solução de mínimo custo.
A análise de sensibilidade serve para um estudo de tendência de preços e tem como objetivo dar
ao formulador condições de fazer um plano de soluções a médio e longo prazo. Outra aplicação da
análise de sensibilidade é a obtenção de um mapa de sensibilidade (gráficos, em %, do componente
Z da ração x preço do componente Z ou valor da ração x preço do componente Z) o qual nos permite
conhecer em nosso sistema nutricional se é que dependemos de matérias primas críticas, as que se
faltarem ante algum fato imprevisto, não seriam substituídas. Ou seja, permite saber onde está fraco,
sensível, o nosso sistema montado e permite buscar alternativas para reforça-lo.
4. PLANEJAMENTO DE UM MODELO DE FORMULAÇÃO
Trata-se de se fazer uma abstração matemática de um problema nutricional para uma
determinada espécie e finalidade, de maneira que nos permita gerar um sistema, escrevendo-o por
meio de fórmulas.
Atualmente através de programas computacionais o problema matemático é transparente para o
usuário, já que basta definir o modelo e introduzi-lo no computador para se obter os resultados no
vídeo ou impresso no papel por impressora.
Os passos iniciais para se montar um sistema são os seguintes:
 Obter todas as informações das matérias primas escolhidas.
 Pesquisar as recomendações das exigências nutricionais para cada fase da criação.
 Estruturar o modelo matemático.
 Balancear a ração gerando a formula do problema.
 Validação das formulas.
Os três primeiros passos desta seqüência são a essência da formulação da ração e os dois
últimos são obtidos com o tempo, com contínua aplicação do modelo na prática, já que os valores
devem representar a realidade e por isso o modelo deve ser continuamente melhorado com
experiências adquiridas pelo seu uso, sendo cada vez mais ajustado ao seu propósito particular.
4.1. INFORMAÇÕES DAS MATÉRIAS PRIMAS
Deve-se identificar todas as matérias primas disponíveis no mercado, determinando o custo
real, os limites de utilização, a procedência, a composição química e o abastecimento.
 Custo real: deve-se determinar o custo real de cada ingrediente, incluindo o custo de
transporte, processamento prévio, armazenamento, embalagens, custo por kg de MS.
 Limites de utilização: pesquisar todas informações na literatura quando não tiver valores
experimentais de uso na propriedade ou região, dos seus limites máximos de incorporação e
a presença de fatores antinutricionais nessas matérias primas.
 Procedência: é fundamental conhecer idoneidade dos fornecedores das matérias primas, pois
produtos mal armazenados ou processados podem ser contaminados por fungos
(micotoxinas) e insetos, que alteram sua qualidade.
 Composição química: a composição química se relaciona com os itens anteriores e com a
matéria prima em si. Deve-se contar com um maior numero possível de informações sobre a
composição química das matérias primas, e se possível a analise laboratorial de cada lote
fornecido, para se ter o controle total do produto final balanceado.
 Abastecimento: é importante levar em consideração esse item, pois não é prático formular
rações sem ter certeza de seu abastecimento em quantidade suficiente por um determinado
tempo e que os produtos fornecidos sejam sempre de qualidade constante, sem
adulterações.
4.2. RECOMENDAÇÕES NUTRITIVAS
Deve-se fazer uma revisão bibliográfica completa, de fontes confiáveis, e de informações
práticas, para se estabelecer todas restrições nutritivas. Estas informações são importantes, pois
determinarão a fórmula final da ração.
Deve-se trabalhar com dados práticos de campo, ou de referencias confiáveis, recomendados
pelos Conselhos ou Comitês de Pesquisas Nacionais ou Internacionais. O recomendável e desejável
é conhecer as recomendações especificas da espécie, para uma determinada finalidade, pois dessa
maneira a formula obtida não conteria nutrientes em excesso, que encareceria o custo final da ração
ou com défice de nutrientes, que comprometeria o desempenho final da criação.
4.3. ESTRUTURA DO MODELO MATEMÁTICO
Nesta etapa, com as informações obtidas seleciona-se os parâmetros a considerar, levando-se
em consideração a definição do modelo.
Estabelecem-se as restrições nutritivas, condições de quantidade total e algumas outras
condições necessárias para o funcionamento lógico do modelo.
Além disso, deve-se verificar a consistência das unidades, escolhendo as unidades para cada
restrição, onde a unidade utilizada numa restrição deve ser a mesma em toda equação, ou seja, kg
de nutriente/kg de ração, ou g de nutriente/kg de ração para todos os ingredientes dessa restrição.
O valor da restrição limitante deve ser a que se deseja obter, também por kg de ração. Se desejar
expressar esse valor em %, deve multiplicar este valor por 100.
O ideal para esta fase é transpor o modelo da matriz para uma planilha, onde se pode ver todos
os dados selecionados, analisá-los antes de serem digitados no computador.
4.4. GERAÇÃO DE FÓRMULAS
Esta etapa é executada no computador com um programa de programação linear, o qual calcula
a mistura dos componentes com o algoritmo simplex, obtendo-se os custos marginais das restrições
limitantes com os valores duais e a analise de sensibilidade econômica.
Se não se obtiver uma solução viável, possível, analisa-se o modelo proposto, as restrições
impostas, e efetuam-se possíveis alterações pertinentes para se obter uma nova solução factível.
4.5. VALIDAÇÃO DAS FÓRMULAS
Todo modelo processado pelo algoritmo simplex é teórico, logo os resultados obtidos devem ser
analisados por um nutricionista a fim de qualificar a solução encontrada, se aplicável ou não, No caso
de não ser adequado seu uso na prática, deve-se corrigir o modelo, introduzindo ou retirando
restrições, alterando valores das restrições, de tal maneira a produzir um resultado factível e de uso
adequado na prática.
Por outro lado, analisando a solução obtida e as restrições limitantes, podem-se verificar as
possíveis trocas nas restrições para se obter um custo final ainda menor.
MODELAGEM DE PLANILHA
1. INTRODUÇÃO
As equações lineares são utilizadas para o balanceamento de rações, pois estes tipos
de equações têm duas propriedades que podem ser aplicadas na mistura de dois ou mais
ingredientes: proporcionalidade e aditividade. Desta forma, ao misturarmos 1kg de milho, com 10%
de proteína, com 1kg de farelo de soja com 50% de proteína, os 2kg da mistura terá 30% de proteína,
ou seja: (10 + 50)/2 = 30.
Na montagem de uma planilha para resolução de um problema de programação
linear, é necessário distinguir dois tipos de equações matemáticas: primeiro, uma função ou equação
de custo, que é a função objetivo, pois o que se busca é uma mistura que satisfaça todas as
exigências e restrições nutricionais por um menor custo, e em segundo, é necessário especificar
todas as restrições correspondentes às exigências nutricionais.
Exemplo: modelagem de uma planilha para balanceamento de uma ração de frangos
de corte inicial (1-21 dias de idade).
a) Exigências nutricionais/kg de ração:
Nutrientes Mínimo Máximo
Proteína 17 -
Energia metabolizável 3000 -
b) Alimentos disponíveis:
Ingredientes R$/kg PB, % EM, kcal/kg
Milho 0,18 10 3440
Farelo de soja 0,42 48 2440
c) Limitação de alimentos:
Farelo de soja: Máximo de 0.30kg/ kg de ração
Identificação das variáveis:
Quantidade de milho = X1
Quantidade de soja = X2
Função Objetivo:
Custo mínimo Z
Minimizar o custo de Z = 0,18 * X1 + 0,42 * X2
R$/kg kg R$/kg kg
(Na função objetivo, cancelando-se R$/kg e kg, tem-se que Z será expresso em R$)
Restrições:
a. Quantidade:
kgkgkg
Q=X1+X121 
Onde Q é a quantidade de ração que será balanceada e neste exemplo Q=100, portanto:
100=X1+X1 21 
b. Nutrientes:
kg%kg%kg%
Q21X48+X10:INProteína/M 21 
kg
kg
kcal
kg
kg
kcal
kg
kg
kcal
Q3000X2440+X3440:NEnergia/MI 21 
Portanto:
3000X24,40+X34,40
ou300000X2440+X3440
21X0,48+X0,10
ou2100X48,00+X0,001
21
21
21
21




c. Ingredientes:
kg
kg
kgkg
Q0,30X1:sojadeFarelo 2 
Portanto:
30X1
ou1000,30X1
2
2


Todas essas inequações são matematicamente iguais.
2. MODELO COMPLETO
Neste modelo será introduzido um novo conceito na modelagem de uma planilha para
o balanceamento de ração, que é a introdução de uma variável de transferência ou contábil, que tem
custo zero e não entra na quantidade final da ração.
Minimizar:
Z = 0,18 * X1 + 0,42 * X2
Sujeito a:
10,00 * X1 + 48,00 * X2 21,00 * Q
3440 * X1 + 2440 * X2 3000 * Q
X2 0,30 * Q
X1 + X2 = 100 * Q
X1 0
X2 0
Agora será utilizado o conceito de variável de transferência para se estabelecer a
relação Energia/Proteína.
Restrição adicional:
EM total/PB total 130
EM total/PB total 135 ou
135 EM total/PB total 130, ou seja,
R 130
R 135
Portanto:
R
X48+X10
X2440+X3440
totalPB
totalEM
21
21 


130
X48+X10
X2440+X3440
21
21



135
X48+X10
X2440+X3440
21
21 


As duas últimas equações não podem fazer parte do modelo, pois os programas de
programação linear só admitem variáveis lineares. Por isso serão criadas novas variáveis para
substituir essas relações:
EM total: é a quantidade total de energia metabolizável da ração que pode ser escrita
matematicamente da seguinte forma:
3440 * X1 + 2440 * X2 = EM tot
Para EMtot, que é uma nova variável, a denominaremos de X3, portanto:
3440 * X1 + 2440 * X2 = 1 * X3, ou.
3440 * X1 + 2440 * X2 - 1 * X3 = 0
PB total: analogamente para a quantidade total de proteína da ração, pode-se escrever da
seguinte forma:
10,00 * X1 + 48,00 * X2 = PB tot
Para PBtot, que também é uma nova variável, será denominada de X4, portanto:
10,00 * X1 + 48,00 * X2 = 1 * X4, ou
10,00 * X1 + 48,00 * X2 - 1 * X4 = 0
X3 e X4 são as variáveis de transferência com custo zero, que foram criadas para
viabilizar as variáveis não lineares.
Portanto a relação EM/PB poderá ser expressa desta forma:
EM/PBmax e EM/PBmin:
0X135-X1
ouX135X1
ou135
X1
X1
:formamesmaDa
0X130-X1
ouX130X1
ou130
X1
X1
43
43
4
3
43
43
4
3










Resumo da planilha completa, com as variáveis contábeis:
Minimizar Z = 0,18 * X1 + 0,42 * X2 + 0 * X3 + 0 * X4 (1)
Sujeito a:
3440 * X1 + 2440 * X2 - 1 * X3 = 0 (2)
10.00 * X1 + 48.00 * X2 - 1 * X4 = 0 (3)
100*X3 3000*Q (4)
100*X4 21 * Q (5)
100*X2 0.30 * Q (6)
1*X1 + 1*X2 = Q (7)
1*X3 - 135 * X4 0 (8)
1*X3 - 130 * X4 0 (9)
Para: X1, X2 , X3, X4 0
INTRODUÇÃO À PROGRAMAÇÃO LINEAR
1.1. O Desenvolvimento da Programação Linear
Durante a Segunda Guerra Mundial, um grupo de cientistas foi convocado na Inglaterra para
estudar problemas de estratégia e de tática associados com a defesa do país. O objetivo era decidir
sobre a utilização mais eficaz de recursos militares limitados. A convocação deste grupo marcou a
primeira atividade formal de uma pesquisa operacional.
Os resultados positivos conseguidos pela equipe de pesquisa operacional inglesa motivaram
os Estados Unidos a iniciarem atividades semelhantes. Apesar de ser creditada à Inglaterra a origem
da Pesquisa Operacional, sua propagação deve-se principalmente à equipe de cientistas liderada por
George B. Dantzig, dos Estados Unidos, convocados durante a Segunda Guerra Mundial. Ao
resultado deste esforço de pesquisa, concluído em 1947, deu-se o nome de Método Simplex.
Com o fim da guerra, a utilização de técnicas de pesquisa operacional atraiu o interesse de
diversas outras áreas. A natureza dos problemas encontrados é bastante abrangente e complexa,
exigindo, portanto uma abordagem que permita reconhecer os múltiplos aspectos envolvidos. Uma
característica importante da pesquisa operacional e que facilita o processo de análise e de decisão é
a utilização de modelos. Esses modelos permitem a experimentação da solução proposta, ou seja,
significa que uma decisão pode ser mais bem avaliada e testada antes de ser efetivamente
implementada. A economia obtida e a experiência adquirida pela experimentação justificam a
utilização da Pesquisa Operacional em muitas atividades.
Com o aumento da velocidade de processamento e quantidade de memória dos
computadores atuais, houve um grande progresso na Pesquisa Operacional. Este progresso é devido
também à larga utilização de microcomputadores, que se tornaram unidades isoladas dentro de
empresas. Isso faz com que os modelos desenvolvidos pelos profissionais de Pesquisa Operacional
sejam mais rápidos e versáteis, além de serem também interativos, possibilitando a participação do
usuário ao longo do processo de cálculo.
1.2 Modelagem
Um modelo é uma representação de um sistema real, que pode já existir ou ser um projeto
aguardando execução. No primeiro caso, o modelo pretende reproduzir o funcionamento do sistema,
de modo a aumentar sua produtividade. No segundo caso, o modelo é utilizado para definir a
estrutura ideal do sistema.
A confiabilidade da solução obtida através do modelo depende da validação desse modelo na
representação do sistema real e, a validação do modelo é a confirmação de que ele realmente
representa o sistema real. A diferença entre a solução real e a solução proposta pelo modelo
depende diretamente da precisão do modelo em descrever o comportamento original do sistema.
Um problema simples pode ser representado por modelos também simples e de fácil solução.
Já problemas mais complexos requerem modelos mais elaborados, cuja solução pode vir a ser
bastante complexa.
Introdução à Programação Linear 2
1.3. Estrutura de Modelos Matemáticos
Em um modelo matemático, são incluídos três conjuntos principais de elementos:
1. Variáveis de decisão e parâmetros: variáveis de decisão são as incógnitas a serem
determinadas pela solução do modelo e os parâmetros são valores fixos no
problema;
2. Restrições: de modo a levar em conta as limitações físicas do sistema, o modelo
deve incluir restrições que limitam as variáveis de decisão a seus valores possíveis
(ou viáveis);
3. Função objetivo: é uma função matemática que define a qualidade da solução em
função das variáveis de decisão.
Para melhor ilustrar o conjunto acima, considere-se o seguinte exemplo:
Uma empresa de ração canina produz dois tipos de rações: Tobi e Rex. Para a manufatura
dessas rações são utilizados cereais e carne. Sabe-se que:
 A ração Tobi utiliza 5 kg de cereais e 1 kg de carne, e a ração Rex utiliza 4 kg de carne e 2 kg
de cereais;
 O pacote de ração Tobi custa R$ 20,00 e o pacote de ração Rex custa, R$ 30,00;
 O kg de carne custa R$ 4,00 e o kg de cereais custa R$ 1,00;
 Estão disponíveis por mês 10.000 kg de carne e 30.000 kg de cereais.
 Deseja-se saber qual a quantidade de cada ração a produzir de modo a maximizar o lucro.
Neste problema as variáveis de decisão são as quantidades de ração de cada tipo a serem
produzidas. Os parâmetros fornecidos são os preços unitários de compra e venda, além das
quantidades de carne e cereais utilizadas em cada tipo de ração e as restrições são os limites de
carne e cereais e, finalmente, a função objetivo é uma função matemática que determine o lucro em
função das variáveis de decisão e que deve ser maximizada.
1.4. Técnicas Matemáticas em Pesquisa Operacional
A formulação do modelo depende diretamente do sistema a ser representado. A função
objetivo e as funções de restrições podem ser lineares ou não-lineares; as variáveis de decisão
podem ser contínuas ou discretas (por exemplo, inteiras) e os parâmetros podem ser determinísticos
ou probabilísticos.
O resultado dessa diversidade de representações de sistemas é o desenvolvimento de
diversas técnicas de otimização, de modo a resolver cada tipode modelo existente. Estas técnicas
incluem, principalmente: programação linear, programação inteira, programação dinâmica,
programação estocástica e programação não-linear.
A programação linear é utilizada para analisar modelos onde as restrições e a função objetivo
são lineares; a programação inteira se aplica aos modelos que possuem variáveis inteiras (ou
discretas); a programação dinâmica é utilizada em modelos onde o problema completo pode ser
Introdução à Programação Linear 3
decomposto em subproblemas menores; a programação estocástica é aplicada a uma classe
especial de modelos onde os parâmetros são descritos por funções de probabilidade; e finalmente, a
programação não-linear é utilizada em modelos contendo funções não-lineares.
Uma característica presente em quase todas as técnicas de programação matemática é que a
solução ótima do problema não pode ser obtida em um único passo, devendo ser obtida
iterativamente. É escolhida uma solução inicial (que geralmente não é a solução ótima). Um algoritmo
é especificado para determinar, a partir desta, uma nova solução, que geralmente é superior à
anterior. Este passo é repetido até que a solução ótima seja alcançada (supondo que ela existe).
1.5. Fases do Estudo de Pesquisa Operacional
Um estudo de pesquisa operacional geralmente envolve as seguintes fases:
1. Definição do problema;
2. Construção do modelo;
3. Solução do modelo;
4. Validação do modelo;
5. Implementação da solução.
Apesar da seqüência acima não ser rígida, ela indica as principais etapas a serem vencidas.
A seguir, é apresentado um resumo da cada uma das fases.
1.5.1. Definição do problema
A definição do problema baseia-se em três aspectos principais:
 Descrição exata dos objetivos do estudo;
 Identificação das alternativas de decisão existentes;
 Reconhecimento das limitações, restrições e exigências do sistema.
A descrição dos objetivos é uma das atividades mais importantes em todo o processo do
estudo, pois a partir dela é que o modelo é concebido. Da mesma forma, é essencial que as
alternativas de decisão e as limitações existentes sejam todas explicitadas, para que as soluções
obtidas ao final do processo sejam válidas e aceitáveis.
1.5.2. Construção do modelo
A escolha apropriada do modelo é fundamental para a qualidade da solução fornecida. Se o
modelo elaborado tem a forma de um modelo conhecido, a solução pode ser obtida através de
métodos matemáticos convencionais. Por outro lado, se as relações matemáticas são muito
complexas, talvez se faça necessária a utilização de combinações de metodologias.
1.5.3. Solução do modelo
O objetivo desta fase é encontrar uma solução para o modelo proposto. Ao contrário das
outras fases, que não possuem regras fixas, a solução do modelo é baseada geralmente em técnicas
matemáticas existentes.
No caso de um modelo matemático, a solução é obtida pelo algoritmo mais adequado, em
Introdução à Programação Linear 4
termos de rapidez de processamento e precisão da resposta. Isto exige um conhecimento profundo
das principais técnicas existentes. A solução obtida neste caso, é dita "solução ótima".
1.5.4. Validação do modelo
Nessa altura do processo de solução do problema, é necessário verificar a validade do
modelo. Um modelo é válido se, levando-se em conta sua inexatidão em representar o sistema, ele
for capaz de fornecer uma previsão aceitável do comportamento do sistema.
Um método comum para testar a validade do sistema é analisar seu desempenho com dados
passados do sistema e verificar se ele consegue reproduzir o comportamento que o sistema
apresentou.
É importante observar que este processo de validação não se aplica a sistemas inexistentes,
ou seja, em projeto. Nesse caso, a validação é feita pela verificação da correspondência entre os
resultados obtidos e algum comportamento esperado do novo sistema.
1.5.5. Implementação da solução
Avaliadas as vantagens e a validação da solução obtida, esta deve ser convertida em regras
operacionais. A implementação, por ser uma atividade que altera uma situação existente, é uma das
etapas críticas do estudo. É conveniente que seja controlada pela equipe responsável, pois,
eventualmente, os valores da nova solução, quando levados à prática, podem demonstrar a
necessidade de correções nas relações funcionais do modelo conjunto dos possíveis cursos de ação,
exigindo a reformulação do modelo em algumas de suas partes.
2. Sistemas de Equações Lineares
Tanto as linhas quanto as colunas de uma matriz podem ser tratadas por vetores. Um vetor
pode ser considerado uma matriz de uma única linha ou uma única coluna. Quando um vetor é
considerado uma matriz com uma única linha é chamado de vetor linha e quando for uma coluna,
será chamado de vetor coluna. Um vetor coluna será representado da mesma forma que um vetor
convencional, ou seja, uma letra minúscula em negrito (p , q , r). Quando for o caso de um vetor linha,
ele será representado como um vetor transposto (pT, qT, rT).
Suponha o seguinte sistema de equações lineares:
2x1 – x2 =7
-x1 + 4x2 = 0
Este sistema pode ser representado na forma matricial por:














0
7
2
1
41
12
x
x
O vetor coluna x é o vetor do sistema de equações lineares e pode ser calculado por:
X = A-1 b
Introdução à Programação Linear 5
Para a solução de um sistema de equações lineares são propostos alguns métodos.
2.1. Método Algébrico por Adição
Pelo menos uma das equações deve ser multiplicada por um escalar real, de modo que a
soma das equações, apenas uma das variáveis seja efetivamente a incógnita do problema. Por
exemplo:
4 x1 + 8 x2 = 160
6 x1 + 4 x2 = 120
Multiplicando a segunda equação por (-2), temos:
4 x1 + 8 x2 = 160
-12 x1 – 8 x2 = -240
Somando as duas equações, chega-se a:
- 8 x1 = -80
Daí calcula-se o facilmente o valor de x1 e, substituindo este valor em qualquer uma das equações
tem-se o valor de x2:
x1 = 10
x2= 15
2.2. Método Algébrico por Substituição
Isola-se uma das variáveis em uma das equações, substituindo-se a relação obtida na outra
equação. Por exemplo:
4 x1 +8 x2 = 160
6 x1 + 4 x2 = 120
Manipulando a primeira equação, temos que:
2240
4
281601 xxx 
Substituindo x, na segunda equação:
6 (40 – 2 x2) + 4 x2 = 120
Resolvendo a equação algebricamente, e aplicando o valor de x2 encontrado na primeira equação,
temos:
240 – 12 x2 + 4 x2 = 120
-8 x2 = -120
x2 = 15 e x1 = 10
2.3. Método de Gauss-Jordan
Consiste da derivação de um sistema específico de equações lineares que tenha a mesma
solução que o sistema original. Este novo sistema deverá ter o formato e uma matriz identidade, o
que pode ser obtido através de combinações lineares das equações originais. Assim, pretende-se
que:
Introdução à Programação Linear 6
4 x1 + 8 x2 = 160  1 x1 + 0 x2 = a
6 x1 + 4 x2 = 120  0 x1 + 1 x2 = b
Serão permitidas as seguintes transformações lineares:
Troca de linhas
Multiplicação da linha por um escalar
Soma de uma linha multiplicada por um escalar a uma outra linha
Notação:
L n  L m troca das linhas n e m;
L n k L n multiplicação da linha n pelo escalar k;
L n L n+ k L m soma da linha m multiplicada pelo escalar k à linha n.
Para resolver o exemplo acima, são seguidos os seguintes passos:
1) L1 L1 / 4 (divisão da linha 1 por 4) - transformação do coeficiente de x1 na equação 1 para 1.
x1 + 2 x2 = 40
6 x1 + 4 x2 = 120
2) L2  L2 (subtração da linha 2 pela linha 1 multiplicada por 6) - transformação do coeficiente de x1
na equação 2 para 0.
3) L2 -L2 / 8 (divisão da linha 2 por (-8) - transformação do coeficiente de x2 na equação 2 para 1.
X1 +2 x2 = 40
0 x1 + 1 x2 = 15
4) L1  L1 - 2 L2 (subtração da linha 1 pela linha 2 multiplicada por 2) - transformação do coeficiente
de x2 na equação 1 para 0.
X1 +0 x2 = 10
0 x1 + 1 x2 = 15
Solução:
x1 = 10 e x2 = 15
3. PROGRAMAÇÃO LINEAR
3.1 Definição
O problema geral de programação linear é utilizado para otimizar (maximizar ou minimizar)uma função linear de variáveis, chamada de função objetivo, sujeita a uma série de inequações
lineares, chamadas restrições. A formulação do problema a ser resolvido por programação linear
Introdução à Programação Linear 7
segue alguns passos básicos.
Deve ser definido o objetivo básico do problema, ou seja, a otimização a ser alcançada. Por
exemplo, maximização de lucros, ou de desempenhos, de custos, de perdas, de tempo. Tal
objetivo será representado por uma função objetivo, a ser maximizada ou minimizada;
 Para que esta função objetivo seja matematicamente especifica, devem ser definidas as variáveis
de decisão envolvidas. Por exemplo, número de máquinas, a área a ser explorada, a classe de
investimento à disposição etc. Normalmente, assume-se que todas estas variáveis possam assumir
somente valores positivos;
 Estas variáveis normalmente estão sujeitas a uma série de restrições, normalmente representadas
por inequações. Por exemplo, quantidade de equipamento disponível, tamanha da área a ser
exploradas, capacidade de um reservatório, exigências nutricionais para uma determinada ração,
etc.
Todas essas expressões, entretanto, devem estar de acordo com a hipótese principal da
programação linear, ou seja, todas as relações entre as variáveis devem ser lineares. Isto implica
proporcionalidade das quantidades envolvidas. Estas características de linearidade pode ser
interessante no tocante a simplificação da estrutura matemática envolvida, mas prejudicial na
representação de fenômenos não lineares (por exemplo, funções de custo tipicamente quadráticas).
3.2 Formulação de Modelos
O problema geral de programação linear pode ser definido por maximizar ou minimizar uma
função.
Maximizar (ou minimizar): Z = c1 x1 + c2 x2 + .......... + cn xn
Sujeito a: a11 x1 + a12 x2 + .......... + a1n xn ou ou = b1
a21 x1 + a22 x2 + .......... + a2n xn ou = b2
...........
am1 x1 + am2 x2 + .......... ou ou = bm
x1, x2, .......... xn 0
3.3 Exemplo
A empresa de ração canina produz dois tipos de raçôes: Tobi e Rex. Para a manufatura das
rações são utilizados cereais e carne. Sabe-se que:
A ração Tobi utiliza 5 kg de cereais e 1 kg de carne, e a ração Rex utiliza 4 kg de carne e 2
kg de cereais;
O pacote de ração Tobi custa R$ 20,00 e o pacote de ração Rex custa R$ 30,00
O kg de carne custa R$ 4,00 e o kg de cereais custa R$ 1,00;
Estão disponíveis por mês 10.000 kg de carne e 30.000 kg de cereais.
Deseja-se saber qual a quantidade de cada ração a produzir de modo a maximizar o lucro.
No modelo deseja-se maximizar o lucro (Z) a partir da quantidade de ração Tobi (x1) e de
ração Rex (x2). A tabela abaixo apresenta o cálculo do lucro unitário de cada ração.
Introdução à Programação Linear 8
Especificações Ração Tobi Ração Rex
Custo da carne 1 kg x R$ 4,00 = R$ 4,00 4 kg x R$ 4,00 = R$ 16,00
Custo dos cereais 5 kg x R$ 1,00 = R$ 5,00 2 kg x R$ 1,00 = R$ 2,00
Custo total R$ 9,00 R$ 18,00
Preço R$ 20,00 R$ 30,00
Lucro R$ 11,00 R$ 12,00
A função objetivo pode ser escrita como:
Maximizar: Z = 11 x1 + 12 x2 (máximo lucro)
Sujeito a: 1 x1 + 4 x210000 (restrição de carne)
5 x1 + 2 x230000 (restrição de cereais)
x1, x2 
3.4 Solução Gráfica
Este problema com apenas duas variáveis pode ser resolvido graficamente. Traça-se um
gráfico com os seus eixos, representados pelas duas variáveis x1 e x2. A partir daí, traçam-se as
retas referentes às restrições do problema e delimita-se a região viável.
Encontrada a região viável, deve-se traçar uma reta com a inclinação da função objetivo. São
então traçadas diversas paralelas a ela no sentido de Z crescente (maximização da função). O ponto
ótimo é o ponto onde a reta de maior valor possível corta a região viável (normalmente num vértice).
Introdução à Programação Linear 9
Figura 3.1. Região viável para o problema das rações
Introdução à Programação Linear 10
Figura 3.2. Busca da solução ótima para o problema das rações
4. O MÉTODO SIMPLEX
O Método Simplex caminha pelos vértices da região viável até encontrar uma solução que
não possua soluções vizinhas melhores que ela, e esta é a solução ótima.
A solução ótima pode não existir em dois casos: quando não há nenhuma solução viável para
o problema, devido a restrições incompatíveis; ou quando não há máximo (ou mínimo), isto é, uma ou
mais variáveis podem tender a infinito e as restrições continuarem sendo satisfeitas, o que fornece
um valor sem limites para a função objetivo.
4.1 Exemplo de um Problema
O modelo de programação linear pode ser resolvido por um método de solução de sistema de
equações lineares. O processo que será apresentado no exemplo a seguir, o qual é bastante intuitivo,
tem por finalidade apresentar a metodologia utilizada pelo Método Simplex.
Introdução à Programação Linear 11
a) Formulação do problema
Uma marcenaria deseja estabelecer uma programação diária de produção. Atualmente a
oficina faz apenas dois produtos: mesa e armário, ambos de um só modelo. Para efeito de
simplificação, vamos considerar que a marcenaria tem limitações em somente dois recursos: madeira
e mão-de-obra, cujas disponibilidades diárias são mostradas na tabela a seguir.
Recurso Disponibilidade
Madeira 12 m2
Mão-de-obra 8 horas.homem
O processo de produção é tal que, para fazer uma mesa, a fábrica gasta 2 m2 de madeira e 2
horas.homem de mão-de-obra e, para fazer um armário, a fábrica gasta 3 m2 de madeira e 1
hora.homem.
Além disso, o fabricante sabe que cada mesa dá uma margem de contribuição para o lucro de
R$ 4,00 e cada armário de R$ 1,00. O problema é encontrar o programa de produção que maximiza a
margem de contribuição total para o lucro.
b) Montagem do modelo
As variáveis de decisão envolvidas no problema são:
x1 : quantidade a produzir de mesas;
x2: quantidade a produzir de armários
A função objetivo é:
Lucro: Z=4 x1 + x2
Para as restrições, a relação lógica existente é:
Utilização de recurso Disponibilidade
Assim temos:
Madeira: 2 x1 + 3 x2 12
Mão-de-obra: 2 x1 + x2 8
x1, x2 0
O modelo completo é:
Maximizar: Z = 4 x1 + x2
Sujeito a: 2 x1 + 3 x2 12
2 x1 + 3 x2 8
x1, x2 0
c) Solução do modelo
Já conhecemos o método de solução gráfica para problemas de programação linear de duas
variáveis. Será agora apresentada a solução por sistema de equações lineares.
Introdução à Programação Linear 12
Para se transformar as restrições do problema de programação linear de inequações em
equações, são introduzidas as variáveis de folga. Neste problema as restrições têm a seguinte
estrutura lógica:
Utilização de Recurso Disponibilidade
Ao se introduzir o conceito de folga de recurso, a inequação pode ser escrita como:
Utilização de Recurso + Folga = Disponibilidade
Isso significa que:
Utilização de RecursoDisponibilidade  Folga 0
Utilização de Recurso = Disponibilidade  Folga = 0
Deste modo a folga de cada recurso pode ser representada por uma variável de forma
exatamente igual à produção de cada produto. Desse modo vamos chamar:
f1: Folga de madeira
f2: Folga de mão-de-obra
Introduzindo as variáveis de folga, o problema a ser resolvido passa a ser:
Maximizar: Z = 4 x1 + x2
Sujeito a: 2 x1 + 3 x2 + f1 =12
2 x + x2 + f2 = 8
x1, x2, f1, f2 0
O problema consiste em encontrar a solução do sistema de equações lineares que maximiza
o lucro. Como neste caso o número de variáveis (m = 4) é superior ao número de equações (n = 2), o
sistema é indeterminado, apresentando infinitas soluções.
No entanto, todas as variáveis devem ser maiores ou iguais a zero. Atribuir zero a uma
variável significa não produzir um dos produtos (se a variável for x1 ou x2) ou utilizar toda a
disponibilidade de recursos (se a variável for f1 ou f2). Desta forma, podemos encontrar soluções
para o sistema de equações zerando duas variáveis (n - m = 2) e encontrando o valor para as duas
variáveis restantes. Portanto tem-se que resolver:
6
)!2!2(
!4
C24  sistemas de equações lineares.
Uma vez resolvido o sistema, serãoaplicados na função objetivo os valores encontrados,
onde as variáveis zeradas são chamadas de variáveis não-básicas e as variáveis cujos valores são
calculados pelo sistema de equações serão chamadas de variáveis básicas.
Iteração 1) Variáveis não-básicas: x1 = 0
x2 = 0
Temos as variáveis básicas f1 = 12
f2 = 8
Dando lucro: Z = 0
Iteração 2) Variáveis não-básicas: x1 = 0
f1 = 0
Temos as variáveis básicas x2 = 4
Introdução à Programação Linear 13
f2 = 4
Dando lucro: Z = 4
Iteração 3) Variáveis não-básicas: x1 = 0
f2 = 0
Temos as variáveis básicas x2 = 8
f1 = -12
Como f1 < 0, a solução obtida é INVIÁVEL.
Iteração 4) Variáveis não-básicas: x2 = 0
f1 = 0
Temos as variáveis básicas x1 = 6
f2 = -4
Como f2 < 0, a solução é INVIÁVEL.
Iteração 5) Variáveis não-básicas: x2 = 0
f2 = 0
Temos as variáveis básicas x1 = 4
f1 = 4
Dando lucro: Z = 16
Iteração 6) Variáveis não-básicas: f1 = 0
f2 = 0
Temos as variáveis básicas x1 = 3
x2 = 2
Dando lucro: Z = 14
Comparando-se todas as soluções encontradas por este processo, achamos a uma solução
ótima, ou seja, x1 = 4, x2 = 0, f1 = 4, f2 = 0, dando um lucro Z = 16.
4.2 Desenvolvimento do Método Simplex
Da forma como foi resolvido o problema anteriormente, é necessário que muitos sistemas de
equações sejam resolvidos e suas soluções comparadas. Para problemas reais de programação
linear, esta solução se torna inviável. Desta forma, para termos condições de resolver um problema
de programação linear, precisamos de uma sistemática que nos diga:
 Qual o sistema de equações que deve ser resolvido;
 Que o próximo sistema a ser resolvido fornecerá uma solução
 Como identificar uma solução ótima, uma vez que a tenhamos encontrado.
Essa sistemática é o método Simplex, e as regras que o método utiliza para atender às três
Introdução à Programação Linear 14
questões acima são, basicamente, os critérios que desenvolvemos nos itens anteriores. Vamos voltar
ao problema, já com as variáveis de folga:
Maximizar Z = 4 x1 + x2
Sujeito a 2 x1 + 3 x2 + f1 = 12
2x1 + x2 + f2 = 8
x1, x2, f1, f2 0
Vamos montar um quadro para ordenarmos as operações, colocando nele apenas os
coeficientes das variáveis. No caso da função objetivo, vamos realizar a seguinte transformação:
de: Z = 4x1 + x2
para: Z –4 x1 - x2 = 0
Quadro 1
Base x1 x2 f1 f2 b
f1 2 3 1 0 12
f2 2 1 0 1 8
z -4 -1 0 0 0
A última coluna corresponde aos termos independentes das equações, e a última linha
contém os coeficientes das variáveis na função objetivo. Nessa última linha teremos sempre a
contribuição que cada variável dá para o lucro total Z, por unidade, em cada iteração do processo.
Essa última linha será chamada de função objetivo transformada, ou função z-transformada.
a) Solução inicial
A solução inicial para o problema será sempre obtida fazendo as variáveis originais do
modelo (no caso x1 e x2) iguais a zero e achando o valor das demais.
Assim, fazendo x1 = x2 = 0 (variáveis não básicas), obtemos do Quadro 1:
f1 = 12
f2 = 8 (variáveis básicas)
Z = 0
A variáveis básicas estão indicadas no Quadro 1, para facilitar o acompanhamento das
operações.
b) Segunda solução
Como a primeira solução claramente não é a melhor, vamos procurar outra que dê um valor
maior para Z. O problema é descobrir:
 Das duas variáveis não básicas (nulas) na primeira solução, qual deve se tornar positiva?
Introdução à Programação Linear 15
 Das duas variáveis básicas (positivas) na primeira solução, qual deverá ser anulada?
Qual variável deverá se tornar positiva?
Vamos observar que na última linha do Quadro 1 temos os coeficientes da função objetivo
que mostram a contribuição para o lucro Z de cada unidade produzida de mesa (x1) e de armário
(x2). Assim, aplicando o critério de que devemos produzir primeiro o produto que mais contribui para
o lucro, vamos começar a produção pela variável x1, já que sua contribuição maior que a contribuição
unitária para o lucro (R$ 4,00) é maior que a contribuição de x2 (R$ 1,00).
Logo, a variável que deverá se tornar positiva é x1.
Qual variável deverá ser anulada?
Nota-se pelo Quadro 1 que, na primeira equação, o maior valor possível de x1 é 6 quando f1
for igual a zero (note que x2 vale zero por ser variável não básica). Qualquer valor maior de x1 fará
com que o valor de f1 fique negativo, o que não é permitido. Na segunda equação, o maior valor
permitido para x1 é 4, quando f2 for igual a zero. Analisando simultaneamente as duas equações ,
percebe-se que o maior valor possível para x1 é 4, já que atende às duas equações.
Observe que esta análise pode ser feita diretamente do Quadro 1, através da divisão dos
elementos da coluna b pelos correspondentes elementos da coluna x1. O menor quociente indica,
pela linha em que ocorreu, qual a variável básica que deve ser anulada. Assim, como o menor
quociente é dado pela divisão 8/2 = 4, a variável básica a ser anulada é f2, que é a variável positiva
na atual solução, cujo valor foi encontrado na segunda linha.
Assim temos: x2 =0 e f2 = 0 e o sistema restante deve ser resolvido para acharmos o valor de
x1 e f1. A solução desse sistema será feita usando o Quadro 1 com as equações completas e usando
as operações válidas com as linhas da matriz.
1a. Operação: Dividir a segunda linha por 2 ( L2  L2 / 2)
Quadro 1 A
Base x1 x2 f1 f2 B
f1 2 3 1 0 12
x1 1 ½ 0 ½ 4
Z -4 -1 0 0 0
2a. Operação: Multiplicar a segunda linha do Quadro 1 A por (-2) e somar com a primeira linha
do mesmo quadro, colocando o resultado na primeira linha (L1 L1 –2 L2)
Quadro 1 B
Base x1 x2 f1 f2 B
f1 0 2 1 -1 4
x1 1 ½ 0 ½ 4
Z -4 -1 0 0 0
3a. Operação: Multiplicar a segunda linha do Quadro 1 B por (4) e somar com a terceira linha
do mesmo quadro, colocando o resultado na terceira linha (L3 4 L2).
Introdução à Programação Linear 16
Quadro 2
Base x1 x2 f1 f2 B
f1 0 2 1 -1 4
x1 1 ½ 0 ½ 4
Z 0 1 0 2 16
Como a última linha (função z-transformada) mostra as contribuições liquidas para o lucro,
caso as variáveis x1 e f2 venham ter seus valores aumentados de 0 (zero) para 1 e, como estas
contribuições têm seus valores trocados com relação ao quadro original, conclui-se que a solução
encontrada é ótima.
x1 = 4 x2 = 0 f1 = 4 f2 = 0 Z = 16
4.3 Procedimento do Método Simplex (Problemas de Maximização)
 Passo 1: Introduzir as variáveis de folga; uma para cada desigualdade.
 Passo 2: Montar um quadro para os cálculos, colocando os coeficientes de todas as variáveis
com os respectivos sinais e, na última linha, incluir os coeficientes da função objetivo
transformada.
 Passo 3: Estabelecer uma solução básica inicial, usualmente atribuindo valor zero às
variáveis originais e achando valores positivos para as variáveis de folga.
 Passo 4: Como próxima variável a entrar na base, escolher a variável não básica que
oferece, na última linha, a maior contribuição para o aumento da função objetivo (ou seja, tem
o maior valor negativo). Se todas as variáveis que estão fora da base tiverem coeficientes
nulos ou positivos nesta linha, a solução atual é ótima. Se alguma dessas variáveis tiver
coeficiente nulo, isto significa que ela pode ser introduzida na base sem aumentar o valor da
função objetivo. Isso quer dizer que temos uma solução ótima, com o mesmo valor da função
objetivo.
 Passo 5: Para escolher a variável que deve deixar a base, deve-se realizar o seguinte
procedimento:
o Dividir os elementos da última coluna pelos correspondentes elementos positivos da
coluna da variável que vai entrar na base. Caso não haja elemento algum positivo
nesta coluna, o processo deve parar, já que a solução seria ilimitada.
o O menor quociente indica a equação cuja respectiva variável básica deverá ser
anulada, tornando-se variável não básica.
 Passo 6: Usando operações válidas com as linhas da matriz, transformar o quadro de
cálculos de forma a encontrar a nova solução básica. A coluna da nova variável básica
deverá se tornar um vetor identidade, onde o elemento 1 aparece na linha correspondenteà
variável que está sendo anulada.
 Passo 7: Retornar ao passo 4 para iniciar outra iteração.
Introdução à Programação Linear 17
4.4 Outro Exemplo
Vamos resolver pelo método Simplex o problema das rações.
.
Maximizar: Z = 11 x1 + 12 x2
Sujeito a: x1 + 4 x2 10000
5 x1 + 2 x230000
x1,x2 0
a) Inclusão das variáveis de folga
Com a inclusão das variáveis de folga, o problema torna-se:
Maximizar Z = 11 x1 + 12 x2
Sujeito a: x1 + 4 x2 + f1 · 10000
5 x1 + 2 x2 + f2 30000
x1,x2, f1, f2 0
b) Solução inicial
Base x1 x2 f1 f2 b
f1 1 4 1 0 10000
f2 5 2 0 1 30000
Z -11 -12 0 0 0
c) Primeira iteração
Variável a entrar na base: x2 (coluna com maior valor negativo na última linha)
Variável a sair da base: f1 (o quociente 10000/4 é o menor quociente entre a última coluna
e a coluna da variável x2, que vai entrar na base)
L1  L1 / 4
L2  L2 – 2 L1
L3  L3 + 12 L1
Base x1 x2 f1 f2 b
f1 ¼ 1 ¼ 0 2500
f2 4,5 0 -1/2 1 2500
Z -8 0 3 0 30000
d) Segunda iteração
Variável a entrar na base: x1 (coluna com maior valor negativo na última linha)
Variável a sair da base: f2 (o quociente 25000/4 é o menor quociente entre a última coluna
e a coluna da variável x1, que vai entrar na base)
L2  L2 / 4,5
L1  L1 – L2 / 4
L3  L3 + 8 L2
Introdução à Programação Linear 18
Base x1 x2 f1 f2 b
x2 0 1 0,2778 -0,0556 1111,11
x1 1 0 -0,1111 0,2222 5555,56
Z 0 0 2,1111 1,7778 74444,44
e) Solução ótima encontrada
Como todos os valores da última linha (função z-transformada) são positivos ou nulos, conclui-se
que a solução encontrada é ótima, ou seja:
x1 = 5555,55 x2 = 1111,11 Z = 74444,44
4.5 Aspectos Matemáticos Singulares
Na modelagem de um problema de programação linear, algumas situações específicas
podem ocorrer, o que pode levar a casos em uma forma matemática diferente da apresentada até o
momento. Entretanto, alguns artifícios matemáticos ajudam a reduzir o modelo obtido à forma padrão
estudado. Estes artifícios são mostrados a seguir.
4.5.1 Minimização de uma função
A minimização de uma função Z(x) é matematicamente análoga à maximização da negativa
desta função (-Z(x)).
Exemplo:
Minimizar z = c1 x1i + c2 x2 + ...... + cn xm
É equivalente a:
Maximizar z' = - c1x1 - c2 x2 .... - cn xm
Com:
Z' = -Z
Essa é uma das formas de se resolver os problemas de minimização utilizando o mesmo
algoritmo. Caso que queira resolver diretamente, devemos alterar o critério de entrada das variáveis
na base. A variável que entra na base passa a ser aquela que tem o maior valor positivo na linha
z-transformada. Caso todas tenham coeficientes negativos ou nulos, a solução obtida é ótima.
4.5.2 Restrições de limite inferior ( )
Uma desigualdade em uma direção (ou ) pode ser mudada para uma desigualdade na
direção oposta, pela multiplicação de ambos os lados da desigualdade por (-1).
Exemplo:
a1 x1 + a2 x2 b é equivalente a:
-a1 x1 - a2 x2 -b
Introdução à Programação Linear 19
4.5.3 Restrições de igualdade
Uma equação pode ser substituída por duas desigualdades de direções opostas.
Exemplo:
a1 x1 + a2 x2 = b é equivalente a duas desigualdades simultâneas:
a1 x1 + a2x2 b
a1 x1+ a2 x2 b
4.5.4 Variável irrestrita em sinal
Uma variável irrestrita em sinal (ou seja, que pode ser positiva, nula ou negativa) pode ser
substituída pela diferença de duas variáveis não negativas.
Exemplo: se a variável x1 for irrestrita em sinal, pode ser substituída pela diferença (x´1 - x"1)
com x'1 0 e x”2 0.
4.6 Método Simplex em Duas Fases
O Método Simplex utiliza uma solução inicial viável para começar o processo iterativo,
trabalhando sempre dentro da região viável. Nos casos apresentados até o presente momento, a
solução x1 = 0, para i =1, ...... n era uma solução viável, já que todas as restrições apresentadas
foram do tipo (). Quando as restrições são do tipo (=) ou (), esta solução não existe.
Seja o exemplo abaixo:
Minimizar Z = 10 x1 + 4 x2 + 5 x3
Sujeito a: 8 x1 + 3 x2 + 4 x3 10
4 x1 + 3 x28
x1, x2 , x3 0
Como temos uma restrição do tipo (), a variável de folga deve ter coeficiente negativo, tendo
o significado de uma variável de excesso. O problema transformado é:
Minimizar Z = 10 x1 + 4x2 + 5x3
Sujeito a: 8 x1 + 3 x2 + 4 x3 – f1 = 10
4 x1 + 3 x2 + f2 = 8
x1, x2, x3 , f1, f2 0
Onde f1 é uma variável de excesso e f2 é uma variável de folga.
Note que, pelo processo de solução anterior, a variável de excesso (f1) passaria a ter valor
negativo na solução inicial (-10), o que não é permitido. Assim, a solução x1 = x2 = x3 = 0 é inviável.
É necessário então encontrar uma solução viável para que o método Simplex possa ser iniciado.
A forma de se resolver isto é criando novas variáveis. Estas variáveis são chamadas de
variáveis artificiais, e representadas por zj. Será colocada uma variável artificial em cada restrição do
modelo, ou seja:
Introdução à Programação Linear 20
8 x1 + 3 x2 + 4 x3 – f1 + z1 = 10
4 x1 + 3 x2 + f2 + z2 = 8
x1, x2, x3, f1, f2, z1, z2 0
Como se pode perceber, o problema com as restrições acima não é o mesmo problema, a
não ser que todas as variáveis zi sejam iguais a zero.
Desta forma, podemos resolver o problema em duas fases: na primeira fase, substituímos a
função objetivo original por uma função objetivo auxiliar:
Zaux = - z1 - z2 = 12 x1 + 6 x2 + 4 x3 – f1+ f 2 -18
Nesse momento, aplicamos o método Simplex de forma a maximizar a função objetivo
auxiliar, com as restrições contendo as variáveis auxiliares. A função objetivo auxiliar será
maximizada quando todas as variáveis zi forem iguais a zero, já que não podem conter valores
negativos.
A primeira fase do problema, que consiste na maximização da função objetivo auxiliar,
fornecerá uma solução viável para o problema original. A segunda fase consiste em resolver o
problema original tomando como solução inicial os valores obtidos pela primeira fase para as
variáveis x i e fi.
a) Solução inicial
Para resolver o problema, monta-se o quadro de forma semelhante à sistemática, colocando-se a
função objetivo artificial na última linha. O quadro do exemplo fica:
Base x1 x2 x3 f1 f2 z1 z2 b
z1 8 3 4 -1 0 1 0 10
z2 4 3 0 0 1 0 1 8
z´ = -z 10 4 5 0 0 0 0 0
Zaux -12 -6 -4 1 -1 0 0 18
Observação: Como a função objetivo é de minimização, ela foi transformada em um problema
de maximização através da multiplicação de todos os coeficientes por (-1).
A seguir, aplica-se o método Simplex normalmente, usando como função objetivo a última
linha. Quando a solução ótima for atingida, dois casos podem ocorrer:
Zaux = 0: Neste caso foi obtida uma solução básica do problema original e o processo de solução deve
continuar, desprezando-se as variáveis artificiais e os elementos da última linha. É o início
da segunda fase do processo.
Zaux 0: Neste caso o problema original não tem solução viável, o que significa que as restrições
devem ser inconsistentes.
Introdução à Programação Linear 21
b) Fase 1- Primeira iteração
Variável a entrar na base: x1 (coluna com maior valor negativo na última linha)
Variável a sair da base: z1 (o quociente 10/8 é o menor quociente entre a última coluna e a
coluna da variável x1, que vai entrar na base)
L1 L1 / 8
L2 L2 - 4 L1
L3 L3 – 10 L1
L4 L4 + 12 L1
Base x1 x2 x3 f1 f2 z1 z2 b
x1 1 3/8 ½ -1/8 0 1/8 0 5/4
z2 0 3/2 -2 ½ 1 -1/2 1 3
z´ = -z 0 ¼ 0 5/4 0 -5/4 0 -12,5
Zaux 0 -3/2 2 -1/2 -1 3/2 0 -3
b) Fase 1 - Segunda iteração
Variável a entrar na base: x2 (coluna com maior valor negativo na última linha)
Variável a sair da base: z2 (o quociente 3/(3/2) é o menor quociente entre a última coluna e a
coluna da variável x2, que vai entrar na base)
L2 2 L2 / 3
L1 L1 – 3 L2 / 8
L3 L3 – L2 / 4
L4 L4 + 3 L2 / 2
Base x1 x2 x3 f1 f2 z1 z2 b
x1 1 0 1 -1/4 -1/4 ¼ -1/4 ½
x2 0 1 -4/3 1/3 2/3 -1/3 2/3 2
z´ = -z 0 0 1/3 7/6 -1/6 -7/6 1/6 -13
Zaux 0 0 0 0 0 1 1 0
Como na última linha o valor da função objetivo artificial é zero, a primeira fase terminou e a
solução encontrada é a solução básica inicial para a segunda fase.
Removendoa última linha e as colunas referentes às variáveis artificiais, o quadro se torna:
Base x1 x2 x3 f1 f2 b
X1 1 0 1 -1/4 -1/4 ½
x2 0 1 -4/3 1/3 2/3 2
z´ = -z 0 0 1/3 7/6 -1/6 -13
c) Fase 2 - Primeira iteração
Variável a entrar na base: f2 (coluna com maior valor negativo na última linha)
Variável a sair da base: x2 (o quociente 2/(2/3) é o menor quociente entre a última coluna e a
coluna da variável x2, que vai entrar na base)
L2 3 L2 / 2
L1 L1 + L2 /4
Introdução à Programação Linear 22
L3 L3 + L3 / 6
Base x1 x2 x3 f1 f2 b
z1 1 3/8 ½ -1/8 0 5/4
z2 0 3/2 -2 ½ 1 3
Zaux 0 ¼ 0 5/4 0 -12,5
e) Solução ótima encontrada
Como todos os valores da última linha (função z-transformada) são positivos ou nulos,
concluímos que a solução encontrada é ótima, ou seja:
X1 = 1,25 x2 = 0 z=-z'= 12,5
APLICAÇÃO DA PROGRAMAÇÃO LINEAR NO BALANCEAMENTO DE RAÇÕES
1. INTRODUÇÃO
Existe infinitas possibilidade de se formular rações a partir dos ingredientes
disponíveis e que atendam as exigências nutricionais de uma determinada espécie e categoria
animal, mas com diferentes custos de produção. Uma ração de mínimo custo significa selecionar a
composição de uma ração a partir destes ingredientes, de tal forma que, atendem as exigências do
animal, mas com o menor custo possível.
O modelo matemático de um problema de formulação de ração de mínimo custo é o
Problema de Programação Linear (PPL) e sua solução é obtida através do Método Simplex.
Programação linear é uma técnica de otimização utilizada para resolver problemas
que admitem uma grande quantidade de soluções, onde se deseja encontrar a melhor das soluções
possíveis. Portanto a programação linear serve para resolver problemas que possam ser descritos
matematicamente pôr uma série de equações lineares e pôr uma função que define o objetivo a ser
alcançado.
Para melhor conceituar um problema de programação linear, será apresentado um
balanceamento de uma ração para frangos de corte, apenas com dois alimentos e dois nutrientes. Os
dados essenciais são apresentados na tabela abaixo.
Ingredientes Milho Soja Restrição Exigência
EM, kcal/kg 3416,00 2283,00 mínimo 2950,00
PB, % 8,51 45,6 mínimo 17,00
Custo, R$ 0,18 0,42 - -
Farelo de soja, kg/kg - - máximo 0,30
Variáveis: são os valores a serem encontrados dentro da região viável.
- Quantidade de milho (kg): X1
- Quantidade de soja (kg): X2
Função objetivo: é a função que deve ser minimizada ou maximizada e que
determinará os valores das variáveis. No caso é minimizar o custo da ração.
 Minimizar Z = 0,18 * X1 + 0,42 * X2
Restrições: são as equações que definem tecnicamente o problema.
 Energia: 3416*X1 + 2283*X2 2950 * Q
 PB: 8,51* X1 + 45,6 * X2 17,00 * Q
 Soja: 100 * X2 30 * Q
 Peso: 1* X1 + 1* X2 = Q (O valor de Q no exemplo é igual a 100)
Limite das Variáveis: é a faixa de domínio permitido para as variáveis. Deve-se ter
quantidades de ingredientes não negativos, ou seja:
 X1, X2 0
Tipo das entidades:
 Função objetivo: linear
 Restrições: lineares
 Variáveis: reais
Resumo geral do problema de programação linear, expresso matematicamente:
 Otimizar: Z = CT * X (minimizar ou maximizar)
 Sujeito a: A * X = b
 X ≥0
Formulação completa do problema proposto:
Minimizar: Z = 0,18 * X1 + 0,42 * X2
Sujeito a:
Proteína: 8,51 * X1 + 45,6 * X2 17 * 100
Energia: 3416 * X1 + 2283 * X2 2950 * 100
Peso: 1 * X1 + 1 * X2 = 100
Soja max: 1 * X2 30
Com: X1, X2 0
2. SOLUÇÕES DO PROBLEMA
2.1. SOLUÇÃO POR TENTATIVAS
O problema proposto possui infinitas soluções que atendem as exigências
nutricionais, cada uma com um custo, além de infinitas soluções que não atendem as exigências
propostas.
Pelo método da tentativa, pode-se montar uma tabela do tipo exposto a seguir, com
as quantidades de milho e de farelo de soja variando de 5 em 5 kg.
Número Milho Soja Energia Proteína Quantidade Custo
01 100,00 0,00 3.416,0 8,5 100,00 1,80
02 95,00 5,00 3.359,3 10,4 100,00 1,92
04 85,00 15,00 3.246,0 14,1 100,00 2,16
05 80,00 20,00 3.189,4 15,9 100,00 2,28
06 75,00 25,00 3.132,7 17,8 100,00 2,40
07 70,00 30,00 3.076,1 19,6 100,00 2,52
08 65,00 35,00 3.019,4 21,5 100,00 2,64
20 5,00 95,00 2.339,6 43,7 100,00 4,08
22 70,00 25,00 2.962,0 17,3 95,00 2,31
23 80,00 25,00 3.303,5 18,2 105,00 2,49
 As formulações de número 1 a 5 não atendem as exigências em proteína, a qual
deve ser no mínimo 17%;
 As formulações de número 10 a 21 não atendem as exigências em energia
metabolizável, que deve ser no mínimo 2950 kcal EM/kg de ração;
 As formulações de número 8 e 9 não atendem as exigências de limitação da
quantidade do farelo de soja, que deve ser no máximo 0,30kg de soja/kg de ração
(ou 30kg em 100kg de ração);
 As formulações de números 22 e 23 não atende a restrição de quantidade, a
primeira por insuficiência (95kg) e a segunda por excesso (105kg), quando a
restrição para o peso é de 100kg;
 Pode-se concluir dessa análise, que a formulação de custo mínimo que atende
todas as exigências e restrições está compreendida entre as formulações de
número 5 e 8.
Trabalhando nesse intervalo, com intervalos de 1kg, tem-se:
Número Milho Soja Energia Proteína Quantidade Custo
01 79,00 21,00 3,178,1 16,3 100,00 2,30
02 78,00 22,00 3,166,7 16,6 100,00 2,33
03 77,00 23,00 3,155,4 17,0 100,00 2,35
04 76,00 24,00 3,144,1 17,4 100,00 2,38
09 71,00 29,00 3,087,4 19,2 100,00 2,50
10 70,00 30,00 3,076,1 19,6 100,00 2,52
11 69,00 31,00 3,064,8 20,0 100,00 2,54
Efetuando a mesma análise da tabela anterior, verifica-se que as formulações que
atendem as exigências nutricionais são as compreendidas entre os números 3 e 10. Dessas, a de
melhor solução é a número 3, com 77% de milho, 23% de farelo de soja, fornecendo 3155,4 kcal
EM/kg de ração e 17,0% de PB, a um custo de R$ 2,35/kg de ração.
Para obter um resultado mais preciso, pode-se continuar os cálculos entre as
soluções compreendidas entre os números 2 e 4, variando as quantidades do milho e da soja de 0,1
em 0,1kg. Da mesma forma, construi-se nova tabela e verifica-se a melhor solução. Se for o caso,
continua-se o cálculo, agora de 0,01 em 0,01kg, e assim por diante até encontrar a solução com dois
algarismos decimais.
Para o exemplo estudado, com dois ingredientes e dois nutrientes, este modelo,
apesar de exaustivo, é um procedimento possível de ser realizado manualmente. Porém quando uma
ração envolver vários ingredientes e vários nutrientes, este procedimento é praticamente impraticável.
2.2. SOLUÇÃO GRÁFICA
0 20 40 60 80 100 120 140 160 180 200
X1
0
20
40
60
80
100
120
X
2
EM = 3416 X1 + 2283 X2 = 295000
X1 + X2 = 100
8.51X1 + 45.6X2 = 1700
X2=30
No segmento da reta, a qual satisfaz todas as restrições do problema, no ponto de
intercessão com a reta da função de custo, é obtida a solução de custo mínimo.
2.3. SOLUÇÃO PELA PROGRAMAÇÃO LINEAR
Resolvendo-se o problema através da programação linear, o resultado obtido, de uma
forma bem simplificada, seria:
Ingredientes Quantidade, kg Custo, $
Milho 77,11 138,80
Farelo de soja 22,89 96,14
Total 100,00 234,94
3. MÉTODO SIMPLEX
Forma geral de um problema de programação linear
Otimizar: Z = C1 * X1 + C2 * X2 + .......... + Cn * Xn
Sujeito a:
A11 * X1 + A12 * X2 + ............. + A1n * Xn ; ; = b1
A21 * X1 + A22 * X2 + ............. + A2n * Xn ; ; = b2
.................. .................. ............. + ............... ....................
Am1 * X1 + Am2 * X2 + ............. + Amn * Xn ; ; = bm
Ou seja,
Otimizar: Z = CT * X
Sujeito a: A * X ; ; = b
Com: X 0
BALANCEAMENTO DE RAÇÕES PELO MÉTODO DO QUADRADO DE PEARSON
1. INTRODUÇÃO
O balanceamento de rações pelo método do Quadrado de Pearson é o mais simples
e rápido da maioria dos sistemas de balanceamento de rações, e serve para se obter uma mistura de
dois alimentos e um nutriente, sendo que este nutriente, normalmente é a proteína da ração.
O balanceamento pelo Quadrado de Pearson Simples sempre envolve dois alimentos
e um nutriente, enquanto que o Quadrado de Pearson "T" Múltiplo permite envolver no
balanceamento umasérie de alimentos, mas com apenas um nutriente, e ainda, num caso particular,
pode-se balancear uma ração com três ingredientes e dois nutrientes utilizando-se do Método do
Quadrado de Pearson, desde que um dos ingredientes tenha em um dos nutrientes envolvido, o valor
zero.
2. QUADRADO DE PEARSON SIMPLES
2.1. DOIS ALIMENTOS E UM NUTRIENTE
Calcular uma ração com 21% de proteína bruta (PB) utilizando-se o farelo de soja
com 48% de PB e do milho com 8% de PB.
Milho  8 27  Partes de milho
21
Soja  48 13  Partes de soja
40  Partes da mistura
Este "Quadrado" encerra toda a resolução do problema: subtrai-se algebricamente
(sem levar em consideração o sinal da operação) o nível da proteína do milho (8) pelo valor da PB da
mistura desejada (21) e coloca-se no sentido transversal do quadrado (21-8 = 13), ficando esse valor
obtido no canto inferior direito do quadrado, e representa as partes do farelo de soja na mistura total.
Da mesma forma, subtrai-se o teor de proteína do farelo de soja (48) pelo da mistura (21) obtendo-se
o valor de 27, e coloca-o no sentido transversal do quadrado, mas no canto superior direito, valor
esse que representa as partes de milho no total da mistura.
Desta maneira, tem-se 13 partes em 40 partes da mistura, que se refere ao farelo de
soja, e 27 partes em 40 da mistura e que se refere ao milho. Para se obter uma mistura com 100
partes, faz-se uma regra de três simples:
40  27
100  X
Ou seja:
2700/40 = 67,50% de milho
100 - 67,50 = 32,50% de farelo de soja.
Prova: 8% de 67,50 = 5,40% de proteína do milho
48% de 32,50 = 15,60 % de proteína da soja
Total: 21,00%
Outro exemplo: Formular uma ração com 21,0% de proteína bruta a base de milho e farelo de
soja e com suplemento de vitaminas e minerais. Dados:
INGREDIENTES PB NOS INGREDIENTES, % PB NA RAÇÃO, % TOTAL, %
Milho 9 - -
Soja, farelo 46 - -
Premix - 2
Total - 21 100
Para essa variação do Quadrado de Pearson, onde a quantidade final da mistura
milho mais soja estará contida em 100 - 2 = 98, temos que fazer uma correção do teor de proteína
para os 98%, ou seja:
98  21
100  X
Portanto X = 21,43%
Executando-se os cálculos pelo Quadrado de Pearson teremos 26,57 partes de milho
e 13,43 partes de farelo de soja de um total de 40,00 partes da mistura. Calculando-se para 100%,
teremos:
98 x 26,57/40 = 65,10 % de milho
98 x 13,43/40 = 32,90% de farelo de soja.
Prova:
ALIMENTOS QUANTIDADE, % PB, %
Milho 65,10 5,21
Soja, farelo 32,90 15,79
Premix 2,00 -
Total 100,00 21,00
2.2. TRÊS ALIMENTOS E DOIS NUTRIENTES
Neste caso pode-se balancear uma ração pelo método do Quadrado de Pearson
utilizando-se até três alimentos e dois nutrientes simultaneamente, desde que um dos alimentos
tenha em um dos nutrientes balanceados o valor zero, que no caso o óleo seria o alimento mais
adequado para este caso particular do Quadrado de Pearson.
Exemplo: Balancear uma ração para frangos de corte com 22% de PB e 3300 kcal
EM/kg de ração, com farelo de soja, milho e óleo bruto de soja. Dados:
ALIMENTOS PB, % EM, kcal/kg
Milho 9 3400
Soja, farelo 48 2200
Óleo de soja - 8700
Mistura 22 3300
O procedimento consta de se formar três pré-misturas de acordo com o esquema
abaixo:
Mistura I
 Utilizam-se os dois alimentos completos e fixa-se o nível protéico da mistura. Dessa maneira tem-
se a porcentagem de cada ingrediente, com as quais pode-se determinar o valor da energia dessa
Mistura I
Mistura II
 Utiliza-se o concentrado protéico com o terceiro alimento, que no caso é o concentrado
exclusivamente energético (óleo) e fixa-se novamente o nível protéico da mistura. Da mesma
maneira, tem-se a porcentagem de cada ingrediente, com as quais determina-se o valor
energético dessa Mistura II.
Mistura III
 Com as misturas I e II obtidas, temos duas rações com o mesmo nível protéico, mas com valores
energéticos diferentes. A próxima etapa consiste em obter a Mistura III a partir das I e II, pois
ambas têm o mesmo nível de PB.
Cálculos:
Mistura I:
Milho  9 26  Partes de milho
22
Soja  48 13  Partes de soja
39  Partes da mistura I
Mistura I: Milho  26/39 x 100 = 66,67%
Soja  13/39 x 100 = 33,33%
Mistura I com 22% de PB e 3000 kcal EM/kg
Mistura II:
Óleo  0 26  Partes de óleo
22
Soja  48 22  Partes de soja
48  Partes da mistura II
Mistura II: Soja  22/48 x 100 = 45,83%
Óleo  26/48 x 100 = 54,17%
Mistura II com 22% de PB e 5721 kcal EM/kg
Mistura III:
Mistura I  3000 2421  Partes da Mistura I
3300
Mistura II  5721 300  Partes da Mistura II
2721  Partes da Mistura III
Mistura III: Mistura I  2421/2721 x100 = 88,97%
Mistura II  300/2721 x 100 = 11,03%
Mistura III com 22% de PB e 3300 kcal de EM/kg
Determinando-se os valores dos componentes da Mistura III, temos:
Milho = 88,97% de 66,67 da Mistura I = 59,32%
Óleo = 11,03% de 54,17 da Mistura II = 5,97%
Soja = (duas frações) = 34,71%
Soja (duas frações) = 88,97% de 33,33 da Mistura I = 29,55%
= 11,03% de 45,83% da Mistura II = 5,06%
Prova:
Alimentos % PB, % EM, kcal/kg
Milho 59,32 5,34 2.016,88
Soja 34,71 16,66 763,62
Óleo 5,97 - 519,39
Total 100 22 3.300
3. QUADRADO DE PEARSON MÚLTIPLO ("T")
Tem o mesmo procedimento do Quadrado de Pearson Simples, onde numa coluna à
esquerda coloca-se os alimentos em ordem (de)crescente em relação aos níveis de proteína (ou
outro nutriente), e no centro desta coluna de alimentos, coloca-se o nível de proteína (ou outro
nutriente) desejado da mistura. A seguir procede-se da mesma forma que o do Método do Quadrado
de Pearson Simples, ou seja, subtrai-se o valor do nutriente do primeiro alimento do valor da mistura
e coloca-o numa outra coluna, adjacente, no lado direito, correspondendo ao último alimento da
coluna esquerda. Da mesma forma, subtrai-se do segundo alimento o valor de seu nutriente do valor
da mistura e coloca-o na coluna à direita, onde corresponderá ao penúltimo alimento da coluna
esquerda, e assim sucessivamente, até que o último alimento da coluna esquerda seja subtraído do
valor da mistura e o resultado seja colocado na coluna à direita, cujo valor corresponderá ao primeiro
alimento da coluna direita.
Exemplo: Balancear um concentrado protéico com 40% de proteína bruta, a partir dos
alimentos com os seguintes níveis protéicos (%):
Far.Trigo Far. Alfafa Far. Girassol Glúten Milho Far. Soja Far. Peixe
15.00 18.00 36.00 39.00 48.00 56.00
Os alimentos já foram colocados em uma ordem decrescente de proteína, portanto
pode-se montar as colunas para as subtrações:
Alimentos Coluna Esquerda Mistura Coluna Direita Parte de:
Farelo de trigo 15 16 Farelo de trigo
Farinha de alfafa 18 8 Farinha de alfafa
Farelo de girassol 36 1 Farelo de girassol
40
Glúten de milho 39 4 Glúten de milho
Farelo de soja 48 22 Farelo de soja
Farinha de peixe 56 25 Farinha de peixe
Total 76
Transformando-se em porcentagens, temos:
Farelo de trigo = 16/76 x 100 = 21,05% Farinha de alfafa=8/76 x 100 = 10,53%
Farelo de girassol = 1/76 x 100 = 1,32% Glúten de milho = 4/76 x 100 = 5,26%
Farelo de soja = 22/76 x 100 = 28,95% Farinha de peixe =25/76 x 100 = 32,83%
Prova:
Alimentos % PB, %
Farelo de trigo 21,05 3,16
Farinha de alfafa 10,53 1,90
Farelo de girassol 1,32 0,47
Glúten de milho 5,26 2,05
Farelo de soja 28,95 13,90
Farinha de peixe 32,89 18,42
Total 100,00 39,90
Observa-se que há um défice de 0,10% de proteína bruta no concentrado. Para
adequar o concentrado com 40% de PB, faz-se um ajuste entre os ingredientes de maior (farinha de
peixe) e o de menor (farelo de trigo) nível de proteína bruta. Portanto:
1kg a menos de farelo de trigo eqüivale a 0,150 kg de proteína
1 kg a mais de farinha de peixe eqüivale a 0,560 kg de proteína
Em função desse raciocínio, temos um aumento de: 0,560 - 0,150 = 0,410 kg de proteína/kg de
substituição entre esses dois alimentos escolhidos.
Défice de nutrientes (em kg) Diferencial de nutrientes (em kg)
Quantidade a serem trocadas entre esses dois alimentos:
No caso: 0,100 / 0,410 = 0,244 kg ou praticamente 0,25 kg. Efetuando-se a subtração e
adição entre os ingredientes, temos:Farelo de trigo = 21,05 - 0,25 = 20,80%
Farinha de peixe = 32,89 + 0,25 = 33,14%
Alimentos % PB, %
Farelo de trigo 20,80 3,12
Farinha de alfafa 10,53 1,90
Farelo de girassol 1,31 0,47
Glúten de milho 5,26 2,05
Farelo de soja 28,95 13,9
Farinha de peixe 33,14 18,56
Total 100,00 40,00
No caso de ocorrer um excesso de nutrientes, faz-se o inverso, ou seja: retira-se o
valor obtido do alimento com maior porcentagem e soma-se o mesmo valor ao alimento com menor
nível de nutriente.
BALANCEAMENTO DE RAÇÕES PELO MÉTODO GRÁFICO
JOSÉ ROBERTO SARTORI
GUILHERME JORDÃO DE MAGALHÃES ROSA
ANTONIO CELSO PEZZATO
1. INTRODUÇÃO
O método baseia-se na aplicação das coordenadas cartesianas, sendo que em cada eixo
são representados, sob escala, os teores em princípios nutritivos de cada alimento.
2. DUAS RESTRIÇÕES E DIFERENTES NÚMEROS DE ALIMENTOS
2.1. DOIS ALIMENTOS
Como primeiro exemplo, os eixos das abscissas e ordenadas, indicarão respectivamente,
os níveis de proteína bruta (PB) e dos nutrientes digestíveis totais (NDT), dos alimentos.
Assim no Gráfico 1, o ponto A representa um alimento com 80% NDT e 7% PB e o ponto
B, outro alimento com 15% PB e 65% NDT.
O princípio básico do método é de que todas as possíveis misturas entre dois alimentos
são representadas graficamente pelos pontos que constituem o segmento de reta que os ligam.
Cada ponto desse segmento indica uma mistura dos dois alimentos, cujos teores em PB e NDT
são dados pelas suas projeções sobre as coordenadas.
8 0
7 5
7 0
6 5
5 1 0 1 5
N D T
P B
X M
A
B
Gráfico 1. Dois alimentos e duas restrições
O ponto M no Gráfico 1 corresponde a uma ração com teores de 12,3% PB e 70% NDT.
Para se determinar as quantidades dos alimentos A e B que formarão a mistura M
procede-se da seguinte maneira:
 O segmento que liga os pontos referentes aos dois alimentos representará a quantidade Q da
mistura M. Assim se se deseja obter 100kg da mistura, o comprimento do segmento AB
equivalerá a essa quantidade.
 O segmento AB será dividido pelo ponto M em dois segmentos proporcionais às quantidades
de A e B necessárias à composição de M. Esses segmentos representados sob forma de
fração de AB, serão chamados de Relação Indicativa do Alimento (Ri).
 O Ri de um alimento é dado pelo segmento da reta em oposição ao ponto que representa esse
alimento. No presente caso, as relações indicativas dos alimentos A e B são:
RiA = BM/AB RiB = AM/AB
Para se obter a quantidade q de cada alimento que irão formar o total Q da mistura
desejada M, multiplica-se o Ri de cada alimento por essa quantidade Q. Neste EXEMPLO 1 deve-
se calcular as quantidade de A e B para perfazer 100kg da mistura M com 12,3% PB e 70% NDT.
Dados:
Alimentos PB, % NDT, %
A 7 80
B 15 65
M 12,3 70
Dados obtidos do Gráfico 1 em papel milimetrado:
Retas e segmentos de reta do Gráfico 1 Medida
Comprimento da reta AB 8,4 mm
Comprimento do segmento AM 56 mm
Comprimento do segmento BM 28 mm
RiA 28/84
RiB 56/84
Alimentos Cálculos Quantidades, kg PD, % NDT,%
A qA = (28/84) x 100 33,3 2,33 26,64
B qB = (56/84) x 100 66,7 10,00 43,35
M Total 100,0 12,33 69,99
Portanto em 100kg da mistura tem-se 33,3kg do alimento A e 66,7kg do alimento B. Com
essas quantidades dos alimentos A e B obtém-se uma mistura M com 12,33% PB e 69,99% NDT.
Observações:
1. Para facilitar os cálculos, podem-se substituir as medidas de comprimento dos
segmentos mencionados pelas suas projeções sobre os eixos, utilizando-se de papel
quadriculado. Usando-se o papel quadriculado e com os mesmos dados, têm-se as seguintes
projeções sobre os eixos das ordenadas:
Reta AB 15 quadrículas A = (5/15) x 100 33,3 kg
Segmento AM 10 quadrículas B = (10/15) x 100 66,7 kg
Segmento BM 5 quadrículas
2. Quando se deseja obter uma determinada quantidade de ração balanceada diferente de
100kg, basta multiplicar a relação indicativa de cada alimento pela quantidade Q desejada. Assim,
as quantidades de A e B para a composição de 80kg da mesma mistura M, serão:
A = (5/15) x 80 = 26,7kg; B = (10/15) x 80 = 53,3kg
2.2. TRÊS ALIMENTOS
O segundo exemplo, é a obtenção de uma mistura M com 16% PB e 72% NDT utilizando-
se de três alimentos, sendo os dois anteriores (A e B) e um terceiro C com 23% PB e 76% NDT.
Inicialmente organiza-se o Gráfico 2 e nele localizam-se os pontos referentes aos alimentos que
deverão compor a mistura. Os três pontos que formam o triângulo ABC, dentro do qual estarão
todos os pontos correspondentes às misturas possíveis entre esses alimentos. Assim, se
desejarmos uma mistura indicada por um ponto que se localize fora desse triângulo, essa mistura
é irrealizável com os alimentos dados. No EXEMPLO 2 a mistura M encontra-se no interior do
referido triângulo e, portanto poderá ser obtida a partir dos alimentos dados.
A
C
B
x
M
M1
80
75
70
65
5 10 15 20
NDT
PB
Gráfico 2. Três alimentos e duas restrições
Cálculo:
Como já foi visto, ligando-se dois desses pontos por um segmento AB, por exemplo, ele
representará todas as misturas possíveis entre esses dois alimentos. Traçando-se um segundo
segmento desde o ponto C até o segmento AB, com a condição de passar pelo ponto M, tem-se o
gráfico completado, ou seja, a mistura calculada graficamente. Nesse gráfico, M1 é a mistura
preliminar de A com B, e M é a mistura final da combinação de C com M1.
Regra para a determinação da quantidade dos componentes:
A quantidade de cada alimento é obtida multiplicando-se seu Ri pelos Ri das misturas
preliminares das quais esse alimento faz parte e ainda pela quantidade Q da mistura que se
deseja. Neste caso, têm-se três componentes com os seguintes dados:
Alimentos PD, % NDT, %
A 7 80
B 15 65
C 23 76
M 16 72
Do Gráfico 2 tem-se as seguintes projeções:
AB = 15,0 AM1 = 10,0 BM1 = 5,0
CM1 = 6,0 CM = 4,0 M1M = 2,0
As relações indicativas dos alimentos são:
RiA = BM1/AB = 5/15 RiB = AM1/AB = 10/15
RiC = M1M/CM1 = 2/6 RiM1 = CM/CM1 = 4/6
Para obter 100kg da mistura, tem-se:
qA = RiA x RiM1 x 100 qB = RiB x RiM1 x 100 qC = RiC x 100
Alimentos Cálculos Quantidades, kg PD, % NDT, %
A qA = (5/15) x (4/6) x 100 22 1,54 17,60
B qB = (10/15) x (4/6) x 100 44 6,60 28,6
C qC = (2/6) x 100 34 7,82 25,8
M Total 100 15,96 72,00
2.3. QUATRO ALIMENTOS
O terceiro exemplo é a obtenção de uma mistura M com quatro alimentos. No caso com
três ingredientes o ponto M obrigatoriamente ficou dentro do triângulo formado pelos pontos A, B e
C correspondentes a esses componentes. Em função dessa constatação, pode-se generalizar
que, quando houver três ou mais ingredientes, a mistura será exeqüível quando o ponto M ficar no
interior do polígono formado pelas retas mais externas que ligam entre si todos os pontos
representativos dos alimentos.
NDT NDT NDT
PBEXEQUIVEL EXEQUIVEL NÃO EXEQUIVEL
* M
* M
* M
Figura 3. Possíveis situações para soluções para uma mistura de alimentos
Neste caso, vamos calcular uma mistura M com 15,5% PB e 73,5% NDT utilizando-se os
alimentos A, B, C e D. Dados:
Alimento PD, % NDT, %
A 7,0 80,0
B 15,0 65,0
C 23,0 76,0
D 25,0 68,0
M 15,5 73,5
Solução gráfica: traçam-se inicialmente dois segmentos: AC, representativo das misturas
possíveis entre os alimentos A e C e BD, com a mesma finalidade em relação a B e D, conforme o
Gráfico 4.
80
75
70
65
NDT
05 10 15 20 25
PB
A
C
M1
B
D
M X
M2
Gráfico 4. Quatro alimentos e duas restrições
Pelo ponto M, que representa a mistura que se deseja obter, deverá passar a terceira reta,
interceptando AC e BD. Neste exemplo, M1 indica a mistura preliminar de A com C e M2, a
mistura preliminar de B com D. A citada terceira reta, que liga os segmentos AC à BD, poderia ter
várias posições, atendendo em todas, a condição de passar por M. Todas essas posições
satisfariam ao balanceamento desejado com relação aos teores de PB e NDT. Entretanto, essas
diversas posições representarão teores diferentes nos outros nutrientes, como o cálcio, fósforo,
metionina, lisina, fibra, ou seja, nas demais características da ração.
Verifica-se, portanto, a importância dessa reta que passapelo ponto M, pois da sua
posição dependerão todas as características da ração. Assim sendo ela passará a ser designada
de Reta Piloto.
De acordo com o gráfico, tendo em vista a regra baseada nos Ri, e Q sendo igual a 100,
tem-se:
RiA = CM1/AC = 3/4 qA = RiA x RiM1 x 100
RiB = DM2/BD = 1,2/3 qB = RiB x RiM2 x 100
RiC = AM1/AC = 1/4 qC = RiC x RiM1 x 100
RiD = BM2/BD = 1,8/3 qD = RiD x RiM2 x 100
RiM1 = M2M/M1M2 = 6,7/12,2
RiM2 = M1M/M1M2 = 5,5/12,2
Resumo:
Alimento Cálculos Quantidade, kg PB, % NDT, %
A qA = (3/4) x (6,7/12,2) x 100 41,2 2,884 32,960
B qB = (1,2/3) x (5,5 x 12,2) x 100 18,0 3,151 10,412
C qC = (1/4) x (6,7/12,2) x 100 13,7 2,700 11,700
D qD = (1,8/3) x (5,5/12,2) x 100 27,1 6,775 18,428
M Total 100,0 15,510 73,500
2.4. SEIS OU MAIS ALIMENTOS
Para este exemplo de balanceamento de rações através das coordenadas cartesianas,
além dos quatro alimentos A, B, C e D utilizados no EXEMPLO 3, pode-se formular a mesma
ração anterior, mas com mais dois novos alimentos, E e F.
Alimento PD, % NDT, %
A 7,0 80,0
B 15,0 65,0
C 23,0 76,0
D 25,0 68,0
E 26,0 72
F 32,0 64
M 15,5 73,5
Solução gráfica:
80
75
70
65
5 10 15 20 25 30
NDT
PB
*
A
M4
M
C
B
M3
E
M1
F
D
Gráfico 5. Resolução gráfica com seis alimentos e duas restrições
M2
Conforme se verifica no Gráfico 5, sempre que houver mais de quatro componentes, pode-
se estabelecer misturas preliminares entre dois ou mais componentes, tornando deste modo o
problema idêntico aos anteriores.
Neste caso, substitui-se os três primeiros alimentos D, E e F pela mistura M2 dos
mesmos. Assim o balanceamento passou a se basear em quatro componentes: A, B, C e M2.
Desta forma, pode-se considerar o número de quatro componentes como caso geral para solução
dos problemas por meio de gráfico. De acordo com a regra das relações indicativas dos alimentos,
para o cálculo de Q = 100, tem-se:
RiA = CM4/AC = 3/4 qA = RiA x RiM4 x 100
RiB = M2M3/BM2 = 2,6/5 qB = RiB x RiM3 x 100
RiC = AM4/AC =1/4 qC = RiC x RiM4 x 100 =
RiD = FM1/DF = 2/4 qD = RiD x RiM1 x RiM2 x RiM3 x 100
RiE = M1M2/EM1 = 4/6 qE = RiE x RiM2 x RiM3 x 100
RiF = DM1/DF = 2/4 qF = RiF x RiM1 x RiM2 x RiM3 x 100
RiM1 = EM2/EM1 = 2/6
RiM2 = BM3/BM2 = 2,4/5
RiM3 = M4M/M3M4 = 5,5/11,6
RiM4 = M3M/M3M4 = 6,1/11,6
Alimento Cálculos Quantidades, kg PD, % NDT, %
A qA = (3/4) x (6,1/11,6) x 100 39,44 2,76 31,55
B qB = (2,6/5) x (5,5/11,6) x 100 24,66 3,70 16,03
C qC = (1/4) x (6,1/11,6) x 100 13,15 3,02 9,99
D qD = (2/4) x (2/6) x (2,4/5) x (5,5/11,6) x 100 3,79 0,95 2,58
E qE = (4/6) x (2,4/5) x (5,5/11,6) x 100 15,17 3,94 10,92
F qF = (2/4) x (2/6) x (2,4/5) x (5,5/11,6) x 100 3,79 1,21 2,43
M Total 100,00 15,58 73,50
3. BALANCEAMENTO DE RAÇÃO COM VÁRIAS IMPOSIÇÕES
No balanceamento da ração com quatro alimentos e duas imposições (PB e NDT) pode-se
verificar que várias soluções poderiam ser obtidas, tendo em vista as diversas posições que
poderiam ter a reta piloto na composição gráfica da ração.
No presente caso, refere-se somente a escolha da posição dessa reta, uma vez que as
demais imposições, como a fibra, o cálcio, metionina, gordura, inclusive o custo, dependerão da
posição da reta piloto.
3.1. DOIS ALIMENTOS E TRÊS RESTRIÇÕES
Para a elaboração do gráfico será usado um sistema de coordenadas complementares.
Traçam-se dois gráficos complementares, G1 e G2, em que os dois eixos das ordenadas indicam
as variações de NDT e os dois eixos das abscissas indicam as variações de PB em G1 e da
gordura em G2.
NDT
NDT
PB EE
80
75
70
65
80
75
70
65
80
75
70
65
05 10 15 20 25 05 06 07 08
A
B
M
A
M
B
G1 G2
Gráfico 6. Resolução gráfica com dois alimentos e três restrições
A representação nesse sistema, de um alimento A com 80% NDT (nutrientes digestíveis
totais), 7% PB (proteína bruta) e 6% EE (extrato etéreo) é realizada da mesma maneira anterior no
que se refere a NDT e PB na parte G1 e da mesma forma, quanto a NDT e EE na parte G2 do
Gráfico 6. A representação de um segundo alimento B com 65% NDT, 15% PB e 7,5% EE, segue
o mesmo procedimento nas partes G1 e G2 do Gráfico 6. Para completar une-se os pontos A e B
em G1 e G2, formando os dois segmentos AB, os quais representam todas possíveis misturas de
A com B sob o ponto de vista de sua composição em NDT e PB em G1 e de NDT e EE em G2.
Em G1 marca-se um ponto representativo de uma mistura de A com B, o qual haverá um
correspondente em G2, ficando assim estabelecida graficamente a relação da terceira variável
(EE) com as duas primeiras (NDT e PB). O ponto M, no caso representa uma mistura com 70,5%
NDT, 12% PB e 6,9% EE.
Alimentos Cálculos Quantidade, kg NDT, % PB, % EE, %
A qA = RiA x Q = 5,5/15 x 100 36,7 29,4 2,569 2,2
B qB = RiB x Q = 9,5/15 x 100 63,3 41,1 9,495 4,7
M Total 100,0 70,5 12,064 6,9
3.2. QUATRO INGREDIENTES, DUAS RESTRIÇÕES E CUSTO MÍNIMO
Resolver graficamente uma ração de custo mínimo com os seguintes dados:
Alimentos PB, % NDT, % Custo/kg
A 7,0 80,0 0,10
B 15,0 65,0 0,15
C 23,0 76,0 0,46
D 25,0 68,0 0,38
M 15,5 73,5 Custo mínimo
Inicialmente traçam-se os gráficos complementares G1 e G2 por estarem em jogo três
imposições: PB, NDT e custo mínimo. Após situar os pontos representativos dos quatro
componentes nesses gráficos, traçam-se duas linhas unindo os alimentos dois a dois, como por
exemplo, AC e BD, tanto em G1 como em G2. O melhor critério para a escolha dessas ligações
iniciais consiste em unir-se os pontos indicativos dos alimentos de tal maneira que a reta piloto
fique tanto quanto possível perpendicular à abscissa, o que facilitará a demarcação dos pontos X e
X', nos gráficos complementares. O campo de variação da reta piloto está delimitado pelas linhas
LL' e L1L1', o que é facilmente visível no gráfico.
80
75
70
65
80
75
70
65
05 10 15 20 25 5000 7000 9000 11000 13000
NDT NDT
*
A L
L1
C
M
D
B
L'1
L'
A L
L1
C
B L'1
D
L'
x x'
G2G1
PB
CUSTO
Gráfico 7. Resolução gráfica com quatro alimentos, duas restrições e com custo mínimo
A reta piloto ocupando uma das posições dessas duas linhas limites, nos dará a
determinação gráfica das misturas de preço mínimo e máximo, que satisfazem aos requisitos
exigidos em PB e NDT.
A imposição de custo mínimo é satisfeita com a posição LL' para a reta piloto e o seu valor
é dado pela projeção do ponto X sobre a abscissa. Esses pontos X e X' são determinados pela
interseção dos segmentos LL' e L1L1' com a reta horizontal que passa pelo valor em NDT da
ração desejada M.
De acordo com os dados tirados do Gráfico 7 em G1, tem-se para Q=100kg:
Alimento Cálculos Quant. kg NDT, % PB, % Custo, R$
A qA = RiA x RiM1 = (4/4) x (6/12,5) x 100 48,00 38,40 3,360 0,048
B qB = RiB x RiM2 = ( 0,5/3) x (6,5/12,5) x 100 8,67 5,64 1,301 0,014
C qC = RiC x RiM1 = (0/4) x (6/12,5) x 100 0 - - -
D qD = RiD x RiM2 = (2,5/3) x (6,5/12,5) x 100 43,33 29,46 10,833 0,165
M Total 100,0 73,50 15,494 0,227
BALANCEAMENTO DE RAÇÕES POR MATRIZES
JOSÉ ROBERTO SARTORI
GUILHERME JORDÃO DE MAGALHÃES ROSA
ANTONIO CELSO PEZZATO
1. INTRODUÇÃO
Para a formulação de uma ração, deve-se traduzir um problema biológico para um
problema matemático, ou seja, transformar os índices técnicos dos alimentos (% de proteína,
cálcio, fósforo, metionina, fibra e outros) e as exigências nutricionais dos animais em equações
algébricas.
Uma vez montadas estas equações (que resultarão em algumas incógnitas), pode-se
lançar mão de inúmeros métodos para a solução do sistema, onde todos eles, naturalmente,
levarão à mesma resposta. Desta maneira, a resolução de sistemas pode ser obtida por
substituição, por adição, por comparação, por escalonamento ou graficamente.
A utilização de matrizes e determinantes é mais uma forma de balanceamento de ração.
Estes métodos são muitas vezes morosos para serem utilizados em sistemas com pequeno
número de equações e incógnitas, porém são de fundamental importância para a resolução de
sistemas maiores, além do que, são peças fundamentais em programação linear (formulação de
rações de custo mínimo).
Inicialmente será dada uma breve revisãosobre matrizes e determinantes e
posteriormente, as aplicações no balanceamento de rações.
2. DEFINIÇÃO
3x5Matriz
241/51
119e73-
62053
=AChamamos 











Exemplo de notificação: o 9 está na segunda linha e quarta coluna, ou a24 = 9.
Notação geral:
nmMatriz
a.......aaa
............................
a.......aaa
a.......aaa
nAm x
mnm3m2m1
2n232221
1n131211
x












3. PROPRIEDADES DAS MATRIZES
3.1. IGUALDADE ENTRE MATRIZES
Duas matrizes A e B são iguais se os símbolos correspondentes representarem o mesmo
elemento.
ijij b=aquandoB=A 
3.2. MULTIPLICAÇÃO DE MATRIZES
Exemplo: multiplicar as matrizes: ?=
03
1-2
45
31












Seqüência:
Linha 1 da matriz 1 pela coluna 1 da matriz 2 = 1x2 + 3x3 = 11
Linha 1 da matriz 1 pela coluna 2 da matriz 2 = 1x(-1) + 3x0 = -1
Linha 2 da matriz 1 pela coluna 1 da matriz 2 = 5x2 + 4x3 = 22
Linha 2 da matriz 1 pela coluna 2 da matriz 2 = 5x(-1) + 4x0 = -5
Dessa maneira:


















5-22
1-11
03
1-2
45
31
 Observação: Apenas pode-se efetuar o produto de duas matrizes, se o número de colunas da
primeira for igual ao número de linhas da segunda. A matriz resultante terá o número de linhas
da primeira matriz e o número de colunas da segunda.
A B = Cmxp pxn mxn
3.3. MATRIZ TRANSPOSTA ( At ou A')
A matriz transposta de A é obtida a partir da transposição de linhas por colunas de A,
ordenadamente. Exemplo:
814
31-2
201
=A 










A' =










832
11-0
421
3.4. MATRIZ COFATORA (cof A)
Para obtenção da matriz cofatora de uma matriz A, procede-se da seguinte forma:
 No lugar do elemento aij, coloca-se o respectivo valor de determinante da matriz menor, obtida
através da eliminação da linha e coluna nas quais cada elemento aij está inserido.
 Soma-se o valor de i e j (i+j) relativos à linha e coluna de cada elemento aij:
 se i+j for par, permanece o sinal;
 i+j for ímpar, troca-se o sinal.
Exemplo:










814
31-2
201
=AmatrizaSeja ;
Para determinar o primeiro elemento (a11) da matriz cofatora de A:
- Primeiro elimina-se a primeira linha e a primeira coluna de A (onde está inserido o
elemento a11 obtendo-se uma matriz menor, cujo determinante e igual a -11).
11
81
31-






- Como i+j = 2 (par), o sinal permanece o mesmo, ou seja, o elemento a11 da matriz
cofatora é o -11.
Para a determinação do elemento a12, tem-se:
- Elimina-se a primeira linha e a segunda coluna, obtendo-se um determinante, cujo valor
é igual a 4.
4
84
32






- No caso, i+j = 1+3 = 3 (ímpar), logo, troca-se o sinal, ou seja o elemento a12 passa a ser
-4.
Prossegue-se pelo mesmo sistema até se obter todos os elementos da cof A, chegando
desta maneira a:










1-12
1-02
64-11-
=Acof
3.5. MATRIZ ADJUNTA (adj A)
Chama-se de adj A a matriz transposta da cof A, ou seja:













116
104
2211
=Aadj
adj A = (cof A)'
3.6. MATRIZ INVERSA (A-1)
Uma matriz quadrada A se diz inversível se:
A x A-1 = A-1 x A = In
 Observação: Matriz Quadrada: m = n
Matriz Identidade: todos elementos são nulos, exceto os elementos da
diagonal principal, que são todos iguais a 1.
33identidadeMatriz
100
010
001
=I x3 










Exemplos: Dada a matriz A, encontrar B de tal forma que AxB = BxA = I2, ou seja,
encontrar A-1.






86
32
=A
Seja:




































10
01
8w+6y8z+6x
3w+2y3z+2x
10
01
wz
x y
86
32
ou,I=BAEntão
wz
x y
=B 2
Logo:



 e3,=ze-4=xz3
4-=x
0=8z+x6
1=3z+2x



 -1.=we
2
3=yw2
3-=y
1=8w+6y
0=3w+y2
Portanto:






1-3
3/24-
=B A-1
Para a obtenção da inversa de uma matriz A, pode-se proceder da seguinte maneira:
A-1 = Aadj.
A
1
onde: A= determinante de A
adj A = (cof A)'
Exemplo: Para a matriz










814
31-2
201
=A , determinar A-1.
a) 1=0-3-8+4+0+8-
814
31-2
201
A 
b) cof A =










1-12
1-02
64-11-
c) adj A = (cof A)' =










1-1-6
104-
2211-
d) A' =










1-1-6
104-
2211-
.
1
1=Aadj.
A
1
Portanto, A-1 =










1-1-6
104-
2211-
e) Prova: A x A-1 = A-1 x A = I3
































100
010
001
1-1-6
104
2211-
814
31-2
201
A A-1 I3
4. DETERMINANTES
4.1. MATRIZ DE SEGUNDA ORDEM
2=18-20=(3x6)-(5x4)
46
35
A
46
35
=A 





4.2. MATRIZ DE TERCEIRA ORDEM (REGRA DE SARRUS)











312
405
234
A
312
405
234
=A (4x0x3)+(3x4x2)+(2x5x1)-(2x0x2)-(1x4x4)-(3x5x3)= -27
4.3. DETERMINANTE DE QUALQUER ORDEM (REGRA DE LAPLACE)
Dado o determinante A=
751
962
754
, ele pode ser determinado pela seguinte regra:
a) Por uma fila qualquer;
b) Multiplicando-se os elementos desta fila pelos determinantes menores;
c) Dando-se os sinais (+) e (-) alternados, contados a partir do a11.
Exemplos:
Aplicando-se a Regra de Laplace à última coluna, temos:
-48=60+140-32=3(-20)-0)-7(20-24)+1(8
4-2
05
)3(
46
05
7
46
4-2
1
3-46
74-2
105

5. RESOLUÇÕES DE SISTEMAS
- Resolver o sistema:



1=4y-3x
7=2y+x1
5.1. POR MATRIZ INVERSA
O sistema pode ser escrito da seguinte forma:






























1/10-3/10
1/52/5
é
4-3
21
deinversamatrizaonde
1
7
y
x
4-3
21
Multiplicando-se ambos lado do sistema pela matriz inversa, tem:






























1
7
1/10-3/10
1/52/5
y
x
4-3
21
1/10-3/10
1/52/5
2=ye3=xou
2
3
y
x
ou
10/110/21
5/15/14
y
x
10
01
































5.2. SOLUÇÃO POR DETERMINANTES (REGRA DE CRAMER)
Dado o sistema:



1=4y-3x
7=2y+x1
13
71
=ye
4-1
27
=x;
4-3
21

3
10
30
64
228
4-3
21
4-1
27
=x/x=x 




y = y / =
1 7
3 1
1 2
3 - 4
  

 




1 21
4 6
20
10
2
6. REGRA DE CRAMER (OU SISTEMAS QUADRADOS)
Dado um sistema com um número de equações igual ao número de incógnitas, temos:








mmmm rznybxa
rznybxa
rznybxa
.....
2.....
.....
222
1111
Chamamos de (delta) ao determinante obtido dos coeficientes das incógnitas:
mmm nba
nba
nba
...........
........................
.......................
...........
...........
222
111

e x, y, ... , z aos determinantes obtidos pelas substituições dos termos independentes na
primeira, segunda, ... , n-ésima coluna de , respectivamente.
Com isto temos, se 0:
x = x/; y = y/; ... ; z = z/.
Observação: Se = 0, as retas são paralelas, portanto é um sistema sem solução.
7. BALANCEAMENTO DE RAÇÃO POR MEIO DE MATRIZES
7.1. Balancear 100kg de ração com 18% de PB (proteína bruta), utilizando milho com 9%
de PB e farelo de soja com 45% de PB.



18=0,45y+0,09x:Proteína
100=1y+1x:Quantidade
Sistema
25%=y/=y9918
180,09
1001
=y
75%=x/=x271845
180,09
1100
=x
36,009,045,0
0,450,089
11
=



soja)de(farelo25%=y=y9918
180,09
1001
=y 
7.2. Formular uma ração com 22% PB e 70% NDT, utilizando milho (9% PB e 80% NDT),
farelo de soja (45% PB e 73% NDT) e farelo de trigo (16% PB e 62% NDT).





70=0,62z+0,73y+0,80x:NDT
22=0,16z+0,45y+0,09x:Proteína
100=1z+1y+1x:Quantidade
Sistema
=
1 1 1
0,09 0,45 0,16
0,80 0,73 0,62
 0 0599,
(Milho)27,71%=x/=x1,66-
0,620,730,70
0,160,4522
11100
=x 
  y =
1 100 1
0,09 22 0,16
0,80 70 0,62
- 1,64 y = y / = 27,38% (Farelo de soja) 
  z =
1 1 100
0,09 0,45 22
0,80 0,73 70
- 2,69 z = z / = 44,91% (Farelo de Trigo) 
7.3. Balancear uma ração completa com 13% PB, com feno de gramínea (10% PB), rolão
de milho (7,5% PB) e farelo de soja (45% PB), de maneira que o feno participe em 50% da ração.





100=1z+1y+x1
13=0,45z+0,075y+0,10x:Proteína
50=1x:VolumosoSistema
=
1 0 0
0,10 0,075 0,45
1 1 1
0,075 - 0,45 = - 0,375
  x =
50 0 0
13 0,075 0,45
100 1 1
3,75 - 22,50 = -18,75 x = x / = 50% (Feno) 
  y =
1 50 0
0,10 13 0,45
1 100 1
13 + 22,5 - 45 - 5 = -14,5 y = y / = 38,67% (Rolão) 
  z =
1 0 50
0,10 0,075 13
1 1 100
7,5 + 5 - 3,75 - 13 = - 4,25 z = z / = 11,33% (Trigo) 
8. EXERCÍCIO
Balancear uma ração com 18% PB, 3100kcal EM/kg e 2,5% Ca, com os seguintes
alimentos:
Alimentos PB, % EM, kcal/kg Ca, %
Milho 9 3400 0
Farelo de soja 45 2275 0,30
Calcário 0 0 37
Óleo de soja 0 8600 0
Exigências Nutricionais 18 3100 2,5
Resposta: = - 6,574995
x = - 402,399  x = 61,20% (Milho)
y = - 182,52  y = 27,76% (Farelo de soja)
z = - 42,94575  z = 6,53% (Calcário)
w= -29,63475 w = 4,51% (Óleo de soja)
9. BALANCEAMENTO DE RAÇÕES POR MATRIZES ATRAVÉS DO PROGRAMA LinCalc
9.1. UTILIZAÇÃO DO LINCALC PARA FORMULAÇÃO DE RAÇÕES
Balancear uma ração com 18% PB, 3100 kcal/kg e 2,5% de Ca, com os seguintes alimentos:
Alimentos PB, % EM, kcal/kg Ca, %
Milho 9 3400 0
Far. Soja 45 2275 0,3
Calcário 0 0 37
Óleo de Soja 0 8600 0
Exigências 18 3100 2,5






2,5=0w+0,37z+0,003y+0x
3100=86w+0z+22,75y+34x
18=0w+0z+0,45y+0,09x
100=1w+1z+1y+x1
SOLUÇÃO 1
 REGRA DE CRAMMER
A) Entrar com a matriz dos coeficientes das incógnitas (Create new object)
1 - Selecione linhas (Select rows)
Entre com o número de linhas: 4
2 - Selecione colunas (Select coluns)
Entre com o número de colunas: 4
3 - Finalizar (Zeroed Object)
4 -Digitar os valores nas suas posições
037,0003,00
86075,2234
0045,009,0
1111
B) Memorizar ou arquivar a matriz (File Save)
1 - Salvar com o nome de matriz 1, no diretório C:\Ração\Calc Matriz\matriz 1;
C) Achar o determinante (Det) da matriz 1.
Determinante = -6,574995 ()
D) Chamar matriz 1 da memória (File Load)
E) Corrigir a matriz
Substituir os valores dos coeficientes de x (1a coluna) pelos valores das igualdades;
00,370,0032,5
86022,753100
000,4518
111100
F) Achar o determinante (Det).
Determinante: -402,399 (x)
G) Chamar matriz 1 da memória (File Load)
H) Corrigir a matriz
Substituir os valores dos coeficientes de y (2a coluna) pelos valores das igualdades;
037,05,20
860310034
001809,0
111001
I) Achar o determinante (Det).
Determinante: -182,52 (y)
J) Chamar matriz 1 da memória (File Load)
K) Corrigir a matriz
Substituir os valores dos coeficientes de z (3a coluna) pelos valores das igualdades;
05,2003,00
86310075,2234
01845,009,0
110011
L Achar o determinante (Det).
Determinante: -42,94575 (z)
M) Chamar matriz 1 da memória (File Load)
N) Corrigir a matriz
Substituir os valores dos coeficientes de w (4a coluna) pelos valores das igualdades;
5,237,0003,00
3100075,2234
18045,009,0
100111
O) Achar o determinante (Det).
Determinante: - 29,63475 (w)
P) Calcular os valores de x, y, z e w.
(Milho)%20,61
574995,6
399,402x 



 x
(Far.Soja)%76,27
574995,6
52,182 



 yy
(Calcario)%53,6
574995,6
94575,42 



 zz
Soja)de(Óleo%51,4
574995,6
63475,29 



 ww
SOLUÇÃO 2
 INVERSÃO DE MATRIZES.
A) Entrar com a matriz dos valores das igualdades (Create new object)
1 - Selecione linhas (Select rows)
Entre com o número de linhas: 4
2 - Selecione colunas (Select coluns)
Entre com o número de colunas: 1
3 - Finalizar (Zeroed Object)
4 -Digitar os valores nas suas posições












5,2
3100
18
100
B) Memorizar ou arquivar a matriz (File Save)
Salvar com o nome de vetor, no diretório C:\Ração\Calc Matriz\vetor;
C) Chamar matriz 1 da memória (File Load)
D) Inverter matriz 1 (Inv)
E) Chamar vetor da memória (File Load)
F) Multiplicar matrizes (Mul)
Produto de  Inversa da matriz 1
Com  vetor Igual a:
w
z
y
x
51,4
53,6
76,27
21,61












9.2. PROBLEMAS PROPOSTOS
Alimentos EM/ave ED/suíno PB, % Ca, % Pd, % Pt, % Met, % Lis, %
Milho 3400 3490 9 0,02 0,1 0,27 0,2 0,3 x
F.Soja 2275 3380 45 0,4 0,2 0,6 0,6 3 y
F.Trigo 1530 2100 15 0,1 0,3 0,9 0,2 0,6 z
F.Carne 1740 2100 45 12 5,4 5,4 0,5 2 c
F.Glútem 1790 2650 22 0,25 0,3 0,9 0,4 0,6 g
Óleo Veg. 8400 7950 - - - - - - k
Fosf. Bical. - - - 23 18 18 - - v
Calcário - - - 37 - - - - w
Premix - - - - - - - - p
Sal - - - - - - - - s
DL-Metionina 5020 5750 59 - - - 99 - m
Considerando tabela de composição de alimentos acima, calcular:
1. Formular um ração para poedeiras com as seguintes exigências nutricionais
Nutrientes Exigências
EM, kcal/kg 2750
PB, % 16
Ca, % 3,5
P, % 0,4
2. Formular uma ração para suínos em terminação com as seguintes exigências nutricionais:
Nutrientes Exigências
ED, kcal/kg 3000
PB, % 13
Ca, % 0,6
Ptotal, % 0,5
Premix, % 1
Óleo, % 2
3. Formular uma ração para frangos de corte inicial com as seguintes exigências nutricionais:
Nutrientes Exigências
EM, kcal/kg 3000
PB, % 20
Ca, % 1
Pdisp, % 0,5
Metionina, % 0,45
Premix, % 1
F.Carne, % 3
Sal, % 0,35
Algumas respostas possíveis para os três problemas propostos:
Ração 1 Ração 2 Ração 3
Milho X 64,81 54,13 60,85
Farelo soja Y 21,19 6,37 29,09
Farelo trigo Z 4,22 35,07
Calcário calcítico W 8,19 1,43 0,66
Fosfato bicálcico V 1,59 0,00 1,22
Óleo de soja K 1,00 3,69
Premix P 2,00 1,00
Farinha carne C 3,00
Sal comum S 0,35
DL-Metionina M 0,14
FUNDAMENTOS EM PROGRAMAÇÃO LINEAR
1. INTRODUÇÃO
A programação linear (PL) é uma técnica de planejamento que se originou a mais de 60 anos e logo
depois, com o surgimento do computador, a PL encontrou um aliado natural, tendo então essa técnica um
desenvolvimento acelerado. Costuma-se dizer que a PL é um tópico da ciência Pesquisa Operacional, a qual
tem outros tópicos, como a Teoria das Filas, Simulação, Teoria dos Jogos, Programação Dinâmica,
PERT/CPM e outros, onde a PL é uma das técnicas mais utilizadas da Pesquisa Operacional. Resumindo,
pode-se concluir que a PL é uma técnica de otimização, utilizada para encontrar o lucro máximo ou o custo
mínimo em situações nas quais temos diversas alternativas de escolha sujeitas a algum tipo de restrição.
A programação linear tem sido aplicada em diversas áreas como:
 Alimentação: determina a composição dos alimentos que pessoas ou animais devem utilizar de
modo que o custo seja mínimo e os mesmos forneçam os nutrientes nas quantidades
adequadas e que também atendam a outros requisitos, como limitações de uso de determinados
ingredientes, ou a obrigatoriedade de se incluir um mínimo de certos aditivos, por exemplo.
 Rotas de transporte: pode-se determinar o roteiro de transporte de veículos de carga de modo
que entregue toda carga no menor tempo e no menor custo total.
 Manufatura: pode-se determinar a composição de produtos a serem fabricados por uma
empresa, de modo que se atinja os lucros máximos, sendo respeitados as limitações ou
exigências do mercado comprador e a capacidade de produção da empresa.
 Agricultura: pode-se prever que culturas devem ser cultivadas de modo que o lucro seja máximo
e sejam respeitadas as características do solo, clima, mercado comprador, dos insumos e dos
equipamentos disponíveis.
 Outras áreas de aplicação da PL: siderurgia, petróleo, carteira de investimento, mineração,
localização industrial entre outros.
2. EXEMPLO DE OTIMIZAÇÃO PARA MAXIMO LUCRO
O exemplo a seguir servirá de base para as futuras discussões sobre os fundamentos da
programação linear. Consideremos uma fábrica de rádios que possui duas linhas de produção: Rádios
Standard e Rádios Luxo. Características desses dois produtos que podem ser observados na Tabela 01.
Tabela 01. Características dos produtos.
Especificações Rádios Standard Rádios Luxo Capacidade Instalada
Linha de produção, Maximo 24 pessoas 32 pessoas 40
Consumo/dia para produção 1 homem 2 homens
Lucro/radio R$ 30,00 R$ 40,00
Fundamentos de Programação Linear 2
Como a fabrica possui um total de 40 operários para as duas linhas de produção, deve-se
determinar o maximo lucro da empresa otimizando a produção desses dois modelos de rádios.
Analisando os dados disponíveis, pode-se observar que as duas linhaspodem receber um máximo
de 56 pessoas, mas a fabrica possui apenas 40 nas duas linhas. Além disso, os esquemas de produção em
vigor implicam diferentes usos de mão de obra, pois o rádio standard exige menor quantidade de pessoal
que o luxo, e finalmente, as lucratividades são diferentes.
Esse problema é clássico e se enquadra na categoria “alocação de recursos” e além de ser bem
simples, pode ser resolvido com algumas tentativas manuais. Modelos reais, obviamente são bem mais
complexos e exigem o recurso de computadores com programas específicos de PL.
Ao tentarmos resolver o problema por tentativa, poderíamos analisar as duas opções extremas:
 Produzir o maximo de modelos Luxo, visto que ele fornece maior lucro unitário. Assim, seriam
alocadas 32 pessoas para linha Luxo com a produção de 16 unidades, e os demais empregados
(40-32=8) produziriam 8 rádios Standard por dia. O lucro obtido seria: (16 x R$40,00) + (8 x R$
30,00) = R$ 880,00.
 Numa outra tentativa, seria produzir o maximo de modelos Standard, que consome menor
quantidade de mão de obra por produção unitária. Desta forma, seriam 24 pessoas na linha
Standard para produzir 24 unidades de rádios, e os demais funcionários, num total de 16 (40–24)
produziriam 8 rádios da linha Luxo e assim, o lucro total seria: (8 x R$ 40,00) + (24 x R$ 30,00) = R$
1.040,00.
 Certamente, seguindo esse raciocínio, poderíamos analisar inúmeras opções, fazendo alocações
diversas, respeitando os limites impostos para o problema, tendo como resultado diferentes lucros.
Neste caso, para essas duas simulações, verifica-se que na segunda opção obtém-se o maior lucro,
e se utilizarmos um programa de PL, a resposta final seria a mesma obtida pelo método da tentativa.
O que este exemplo mostrou, coincidentemente, é que a escolha recaiu sobre o modelo de menor lucro
unitário. Na vida pratica, quando não se recorre a ferramentas de otimização, geralmente temos a tendência
de tomar decisões com base em fatores aos quais somos mais apegados, como no caso, ao modelo de
maior lucro unitário. A programação linear mostra que em situações reais, de alguma complexidade, o
chamado bom senso geralmente não é a ferramenta mais adequada para soluções de problemas.
3. EXEMPLO DE OTIMIZAÇÃO PARA MÍNIMO CUSTO
Outra área que a PL tem sido bastante utilizada é a de formulação de rações, que se aplica também
para fertilizantes, onde se pode balancear uma ração para uma determinada espécie e categoria animal, a
partir de uma série de ingredientes disponíveis, satisfazendo as exigências nutricionais preconizadas por
uma norma ou padrão, respeitando a determinadas restrições impostas para alguns ingredientes, pelo
Fundamentos de Programação Linear 3
menor custo possível. Podemos detalhar uma ração para aves (espécie), frangos de corte (categoria) de 1 a
21 dias de idade (fase da criação) como se segue na Tabela 02.
Tabela 02. Exigências nutricionais para frangos de corte de 1 a 21 dias de idade
Exigências nutricionais Unidade Mínimo Maximo
Quantidade % 100 100
Energia Metabolizável, (EM) kcal/kg 3000
Proteína bruta, (PB) % 21,00
Cálcio, (Ca) % 1,00 1,20
Fósforo, (P) % 0,50
Metionina, (Met) % 0,48
Lisina, (Lys) % 1,12
Por outro lado, os ingredientes disponíveis para balancear a ração possuem a composição nutricional da
Tabela 03.
Tabela 03. Composição nutricional e custos dos ingredientes
Ingredientes EM PB Ca P Met Lys Custo Limites
kcal/kg % % % % % R$/kg Max Min
Milho 3440 9,00 0,04 0,27 0,17 0,23 0,21
Soja, farelo 2440 48,00 0,36 0,55 0,65 2,87 0,39
Trigo, farelo 1510 16,00 0,12 0,88 0,22 0,57 0,17 10,00
Carne, farinha 1710 41,00 11,80 5,60 0,39 1,77 0,41 2,00
Óleo de soja 8780 - - - - - 0,95 5,00
Sorgo 3170 8,25 0,03 0,25 0,16 0,21 0,18 20,00
Fosfato bicálcico - - 24,00 18,00 - - 0,75
Calcário - - 37,00 - - - 0,09
L-Lysina 3990 95,60 - - - 78,40 2,35
DL-Metionina 5020 58,70 - - 99,00 - 2,12
Premix - - - - - - 2,50 0,50 0,50
Sal comum - - - - - - 0,45 0,35 0,35
Além das informações dos custos dos ingredientes, devem-se acrescentar as possíveis restrições
dos ingredientes disponíveis para o balanceamento da mistura. Alguns ingredientes, dependendo da espécie
e categoria do animal, devem-se limitar ou exigir a entrada de um ou mais ingredientes na ração, e o objetivo
final é obter uma mistura adequada de ingredientes a custo mínimo, atendendo todas as exigências (ou
restrições) impostas ao problema. Essa formulação de custo mínimo, num exemplo relativamente pequeno,
é praticamente impossível de se fazer manualmente, pois as formulações normalmente envolvem mais de
30 ingredientes e, as restrições nutricionais e alimentares também podem chegar a mais de 30. Acrescente-
se a esses aspectos, que uma solução de mínimo custo tem apenas uma solução ou resposta possível. O
modelo completo deste exemplo está na página 25.
Fundamentos de Programação Linear 4
4. MODELOS DA PROGRAMAÇÃO LINEAR
Na programação linear, tanto a função objetivo como as restrições são equações e/ou inequações ou de
primeiro grau, e o resultado para a variáveis do modelo são valores reais ou contínuos. A programação
linear pode ser dividida nos seguintes tópicos:
 Programação contínua: quando os resultados para as variáveis do modelo são valores reais
ou contínuos.
 Programação estruturada: o modelo unitário, como uma fábrica, ou um produto ou ainda,
uma unidade de tempo, se replica (multi-fábricas, multi-produtos ou multi-períodos).
 Programação inteira (PI): as variáveis admitem somente soluções inteiras.
 Programação inteira mista (PIM): pode-se ter tanto variáveis de solução inteira como
contínua.
Dentre esses modelos, a programação contínua é a mais utilizada e modelos recentes têm explorado os
outros tipos, o que tem ocasionado um reaquecimento do uso da PL nas empresas.
5. MODELOS E RESOLUÇÃO DE PROBLEMAS SIMPLES
A melhor maneira de compreender a técnica da programação linear é através da solução gráfica, além
de ser uma ferramenta de resolução.
Para ilustrar o modelo gráfico, consideremos o exemplo da fábrica de radio que tinha de maximizar o
lucro global diário obtido com duas linhas de produção que comportam 56 operários, sendo que a empresa
possui apenas 40 a serem alocados, e que as linhas de produção são: rádios standard e rádios luxo,
conforme os dados da Tabela 04.
Tabela 04. Especificações da linha de produção da fabrica de radio
Especificações Rádios Standard Rádios Luxo Capacidade Instalada
Linha de produção, maximo 24 pessoas 32 pessoas 40
Consumo/dia para produção 1 homem 2 homens
Lucro/radio R$ 30,00 R$ 40,00
A estratégia da PL para a resolução de problemas de otimização é transformar as características do
problema em um modelo abstrato matemático, constituído de:
 Uma função objetivo: para ser maximizada ou minimizada.
 Um conjunto de restrições: que caracteriza as exigências e as limitações do problema.
Tanto a função objetivo como o conjunto de restrições faz referencias às variáveis do problema e no
caso em questão, as variáveis são as quantidades a serem produzidas dos modelos de radio Standard e
Luxo e a função objetivo mostra como o lucro se relaciona com as variáveis do problema e o conjunto de
restrições mostra os limites para as mesmas variáveis.
Fundamentos de Programação Linear 5
5.1. MODELO MATEMÁTICO
Para se criar um modelo matemático de um problema é necessário:
 Definir as variáveis do problema;
 Definir a função objetivo;
 Definir o conjunto de restrições do problema.
Tendo o problema anterior como exemplo, podem-se definir as seguintes variáveis:
 Variável a ser otimizada:
o Lucro: lucro máximo a ser atingido.
 Variáveis básicas:
o ST: quantidade ótima da produção diária de rádios Standard.
o LX: quantidade ótima da produção diária de rádios Luxo.
Função objetivo: maximizar o lucro da empresa:
Max Lucro = 30 ST + 40 LX
Variáveis: as variáveis ST e LX além de serem valores inteiros e positivos, estão sujeitas às restrições
impostas pelo problema, que são:
 Capacidade máximadiária da linha Standard: visto que somente pode-se colocar 24 operários na
linha Standard e como cada radio Standard requer 1 homem/dia para sua produção, a produção
máxima diária desta linha é de 24 rádios. Assim, pode-se escrever:
ST 24
 Capacidade máxima diária da linha Luxo: nesta linha de produção pode-se alocar somente 32
pessoas e como cada radio Luxo gasta 2 homens/dia para sua produção, a produção máxima desta
linha é de 16 rádios. Desta maneira, temos:
LX 16
 Disponibilidade máxima de operários: como a fabrica dispõem somente 40 operários, o esquema
ótimo de produção deve otimizar a mão de obra dentro deste limite. A linha Standard produzirá ST
rádios por dia e como cada radio gasta 1 homem/dia, vai se consumir 1 x ST operários. O mesmo
raciocínio vale para a linha LX, que gasta 2 homens/dia e vai consumir 2 x LX operários. Pode-se
escrever da seguinte forma esta restrição:
1 ST + 2 LX 40
Fundamentos de Programação Linear 6
O modelo matemático final é o seguinte:
Maximizar:
Lucro = 30 ST + 40 LX
Sujeito a:
ST 24
LX 16
1 ST + 2 LX40
5.2. MODELO GRÁFICO
A geometria analítica representa um ponto gráfico por X,Y e nas Figuras 1a e 1b, cada ponto do
segmento de reta traçado representa um par de produções LX, ST, que utiliza exatamente 40 operários.
Figura 1 a. Equação ST + 2 LX = 40. Figura 1 b. Inequação ST + 2 LX 40.
Visto que a inequação ST + 2 LX 40 prevê utilizar até 40, pode-se concluir que a região positiva
abaixo do segmento de reta traçado contém todos os possíveis pontos, ou todos os pares de produção LX,
ST, que inclusive com os pontos do segmento de reta, atendem corretamente a inequação. Com o mesmo
raciocínio, nas Figuras 2a e 2b temos representado as duas restrições ST 24 e LX 16, que significa no
primeiro gráfico da Figura 2a, o limite máximo de produção do modelo ST e na Figura 2b, o limite máximo do
modelo LX.
Fundamentos de Programação Linear 7
Figura 2 a. Restrições ST 24 Figura 2 b. Restrição LX 16
Colocando todas restrições num único gráfico, bem como a função objetivo, o gráfico toma a forma
da Figura 3, onde e as restrições delimitam a área das possíveis soluções do problema (região convexa
simplex). Visualmente pode-se observar que a reta da função objetivo, que representa o maior lucro é a linha
que intercepta a restrição de disponibilidade de funcionários (1 ST + 2 LX 40) com a capacidade máxima
da produção do modelo Standard (ST 24).
Fundamentos de Programação Linear 8
Figura 3. Região simplex de solução ótima do problema.
.
Plotar a função objetivo significa encontrar o ponto da região simplex que fornece o maior valor para
o lucro, obedecendo às restrições impostas. Nesse ponto vai passar uma única reta (da função objetivo) e
nesse caso a solução ótima é ST = 8 e LX = 24 unidades, com um lucro de R$ 1.040,00.
Nesses tipos de problemas de PL, a solução sempre estará em um vértice, havendo uma única
solução. Eventualmente a solução poderá coincidir com um dos segmentos de reta de alguma restrição, em
que qualquer ponto de segmento é uma solução ótima. Então nesses casos o problema apresenta infinitas
soluções.
A inclinação da família de retas paralelas da função objetivo é definida pelo coeficiente angular, e no
caso a expressão da função objetivo é a seguinte:
Lucro = 30 ST + 40 LX
40
Lucro
ST
4
3
-LX 
Então no diedro (ST, LX) esta equação representa uma família de retas de parâmetro Lucro/40, ou
seja, para cada valor de Lucro temos uma reta diferente. Ademais, todas as retas são paralelas entre si, pois
possuem o mesmo coeficiente angular = – ¾.
Por isso a inclinação da família de retas paralelas da função objetivo, definida pelo coeficiente
angular = - 3/4 é fundamental para determinar qual será o ponto ótimo. Esse coeficiente angular foi obtido
efetuando a divisão de 30/40, ou seja, o coeficiente angular representa a relação entre os lucros dos dois
Fundamentos de Programação Linear 9
produtos. Visto isso, é de se esperar que caso se altere algum dos dois valores do lucro unitário, a solução
pode ser alterada.
Na Figura 04 temos algumas retas de parâmetro Lucro/40, ou seja, para cada valor de Lucro tem-se
uma reta diferente. Pode-se observar que todas as retas são paralelas entre si, pois possuem mesmo
coeficiente angular α= -3/4. Todas as retas vistas na Figura 04 foram obtidas dando-se um valor diferente
para o Lucro. Pode-se concluir que qualquer ponto de uma mesma reta possui pontos ou pares de produção
ST, LX que fornecem o mesmo lucro. Este conjunto de retas, neste caso, pode ser denominadas de retas
iso-lucro.
Figura 04. Conjunto ou família de retas.
Como foi visto, o objetivo deste exemplo é encontrar o ponto da região simplex que fornece o maior
valor para o lucro. Pode-se acrescentar que por este vai passar uma única reta da família de retas do lucro.
Então a questão se resume em encontrar qual é a reta do conjunto que produz o maior lucro, respeitando
todas as restrições impostas ao problema. Neste exemplo de maximização, basta encontrar a reta mais
distante da origem e tenha pelo menos um ponto dentro da região de soluções possíveis. Traça-se uma reta
qualquer da família de retas e tira-se uma paralela a ela o mais distante da origem e com pelo menos um
ponto dentro da região de soluções possíveis. Utilizando-se este esquema, tem-se a solução ótima da Figura
05.
Fundamentos de Programação Linear 10
Figura 05. Solução ótima do problema.
6. USO DO COMPUTADOR EM PROBLEMAS DE PROGRAMAÇÃO LINEAR
O método gráfico é uma excelente ferramenta de ensino, pois nos dá uma visão, uma fotografia do
problema, mas é praticamente impossível solucionar sistemas com muitas variáveis e restrições.
Problemas reais são resolvidos no computador utilizando softwares que se baseiam no algoritmo Método
Simplex ou simplesmente, Método Simplex, que foi revisado e desenvolvido por George Dantzig em
1947, nos quais cada linha relacionava-se com uma restrição e cada coluna com uma variável. Existem
atualmente centenas de programas para PL e entre os diversos disponíveis, os listados abaixo na
Tabela 05 são os mais utilizados em todo mundo.
Tabela 05. Relação dos principais softwares de programação linear
Softwares Fabricante Capacidade
Linhas Colunas
Lindo Lindo 32.000 100.000
Lingo Lindo
MPSX IBM 16 milhões 2 bilhões
CPLEX Optimum 50.000 100.000
OSL IBM 16 milhões 2 bilhões
Excel - Solver Microsoft
POM H.J.Weiss
Fundamentos de Programação Linear 11
7. USO DO LINDO EM PROGRAMAÇÃO LINEAR
7.1. INTRODUÇÃO
O LINDO (Linear, Interactive and Discrete Optmizer) é um software desenvolvido pela Lindo System
Inc. de Chicago, Illinois, EUA, para a solução de modelos de programação linear, quadrática ou inteira. É um
programa que roda no ambiente Windows e está disponível em várias versões, como pode ser visto na
Tabela 06.
Tabela 06. Diferentes versões do LINDO
Limites máximos
Versão
Número de linhas Número de colunas
Demonstração 150 300
Super 500 1.000
Hiper 2.000 4.000
Industrial 8.000 16.000
Extended 32.000 100.000
7.2. EXEMPLO DE UTILIZAÇÃO DO PROGRAMA LINDO
Para utilização deste programa podemos utilizar o exemplo já exposto da fábrica de radio, onde o
modelo matemático era o seguinte:
Maximizar:
Lucro = 30 ST + 40 LX
Sujeito a:
ST 24
LX 16
1 ST + 2 LX 40
Figura 04. Entrada de dados no LINDO
Fundamentos de Programação Linear 12
Para acionar o software Lindo basta clicar no ícone correspondente no Windows e a primeira tela
fornecida tem o formato da Figura 04 e para entrar com os dados basta ir digitando-os conforme o exemplo
da figura.
Pode-se observar que para designar uma restrição com a condição de maior ou igual a, basta
colocar o sinal >, e o sinal de < para uma restrição menor ou igual a. Outras informações com respeito à
entrada dos dados estão na Tabela 07.
Tabela 07. Significado de cada entrada de dados no editor do programa LINDO
Linha Significado
! Exemplo da Fabrica de Radio Trata-se de uma linha contendo um comentário ouinformação, pois se
inicia com !
Max Comando que solicita maximizar uma função e a outra opção seria Min.
ST Abreviação de Subject to, que significa Sujeito a . Informa que a seguir
tem-se o conjunto de restrições.
End Informa o fim de entrada de dados. (É optativo).
Para salvar os dados de um arquivo, clique no FILE do menu principal e outra vez, clique no SAVE
AS. Selecione um diretório e escolha um nome adequado, e principalmente, mantenha a extensão LTX. Por
exemplo, RADIO.LTX e clique OK para finalizar. (Atenção retire o asteristico que aparece antes da extensão:
*.LTX e coloque o nome do arquivo).
Para resolver o problema de programação linear, clique em SOLVE no menu principal ou no ícone
. Após clicar esse ícone aparece uma tela perguntando se deseja efetuar analise de sensitividade (Do
Range (sensitivity) analysis?). No momento responda negativamente e daí aparecerá a Figura 05, que
contém um resumo do resultado alcançado ou informações de alerta caso o modelo apresente algum
problema. Após analisá-lo, clique CLOSE.
Fundamentos de Programação Linear 13
Figura 05. Tela do LINDO após a execução do problema.
Após a etapa de execução do problema, o LINDO apresenta de maneira superposta, tanto a tela de
entrada de dados como a tela de resultados. Para ativar uma ou outra basta clicar em qualquer ponto da tela
desejada. Eventualmente quando uma das telas estiver ocupando todo espaço disponível, somente será
mostrada uma delas. Para visualizar a outra vá ao menu principal na janela Window e clique em Send To
Back. Existem duas opções para se visualizar os resultados: em cascata, uma em cima da outra (Cascade)
e uma ao lado da outra (Tile), como pode ser visto nas figuras abaixo.
Figura 06. Visualização dos resultados em modo lado a lado (Tile)
Fundamentos de Programação Linear 14
Figura 07. Visualização dos resultados no modo cascata, um em cima do outro (Cascade).
Os resultados de um modelo sem erros podem ser visto na Figura 08.
Figura 08. Resultados do problema.
Para as informações contidas na Figura 08, temos as seguintes interpretações:
 LP OPTIMUM FOUND AT STEP
Fundamentos de Programação Linear 15
o Significa que o algoritmo simplex utilizado pelo programa encontrou a solução ótima no
primeiro passo (um passo ou step corresponde a um vértice do método simplex).
 LUCRO) 1040.000
o Indica o valor ótimo encontrado para a função objetivo.
 VARIABLE VALUE REDUCED COST
ST 24.000000 0.000000
LX 8.000000 0.000000
o Temos aqui uma pequena tabela que apresenta os valores ótimos das variáveis básicas,
onde o valor das quantidades de ST e LX a serem produzidas são 24 e 8, respectivamente.
Quanto à coluna Reduced Cost, ela pode ter duas interpretações válidas. Na primeira
interpretação, o Custo Reduzido de uma variável com a quantidade pela qual o coeficiente
da função objetivo da variável deveria ser aumentado de modo que sua solução seja
diferente de zero. Portanto todas as variáveis cujas soluções já são diferentes de zero,
possuem um valor zero para o Custo Reduzido, que é o caso do exemplo. Numa segunda
interpretação, o Custo Reduzido de variável como penalidade que se deve pagar, no caso,
redução do lucro, para introduzir uma unidade daquela variável na solução. Deve-se
acrescentar que o Custo Reduzido somente é válido em uma determinada faixa de valores.
 ROW SLACK OR SURPLUS DUAL PRICES
MAXST) 0.000000 10.000000
MAXLX 8.000000 0.000000
CAPOPER) 0.000000 20.000000
Aqui também se tem uma tabela que apresenta os resultados das linhas no problema que será
analisado item por item.
o Slack = 0.000000: significa a folga, ou seja, que se atingiu o limite da restrição. Quando a
solução é ótima, como para o produto Standard que foi ST = 24, nesse caso se atingiu o limite
da restrição MAXST 24. No caso da restrição MAXLX 16, tem-se um Slack = 8 e a solução
ótima da variável LX foi igual a 8 (LX = 8), portanto temos uma folga (Slack = 16 - 8 = 8).
o Dual Price = 10.000000: esse valor representa o aumento ou diminuição na função objetivo se
aumentarmos ou diminuirmos de 1 unidade o limite da restrição. Portanto, se a restrição ST 24
for aumentada para 25 (ST 25) tem-se nova solução na qual o lucro será aumentado de R$
10,00 e, ao contrario, diminuirmos para 23 (ST 23), tem-se nova solução e o lucro diminuirá
em R$ 10,00.
Para imprimir os resultados de um modelo, tendo a tela de resultados ativada, basta ir ao menu
principal, em File e clique Print, ou simplesmente acione o ícone . Observe que é possível digitar no
texto da tela de resultados, possibilitando a inclusão de informações, além de marcar e copiar toda área que
Fundamentos de Programação Linear 16
se desejar, para depois colar o conteúdo num editor de texto com mais recursos, como o WinWord, WorPad
ou no Bloco de Notas do Windows.
Para se fazer alterações, como modificar os valores das restrições, ou incluir novas variáveis e/ou
restrições, basta acessar na tela de edição, fazer as modificações desejadas, gravar novamente, mas Salvar
como, alterando o nome original para se manter os dois problemas (o original e o alterado com o novo
nome) e executar o novo problema. Um detalhe importante nesse caso, após a solução é que o LINDO vai
colocar a nova solução na tela de resultados logo após a solução anterior, ou seja, tem as duas soluções na
mesma tela de resultados. Isso pode ser inconveniente, pois pode confundir. Se desejarmos apagar a
solução anterior, estando na tela de resultados basta clicar no ícone .
Após resolver um problema o LINDO pode efetuar uma análise de sensitividade, basta responder
YES após a pergunta Do Range (Sensitivity) Analisys? No momento em que esta tela surgir durante uma
solicitação de resultados (Solver) ou a qualquer momento, efetue essa analise através da tela de entrada de
dados e no Menu Principal, acione Reports e clique Range. O relatório de sensitividade tem o formato
mostrado na Figura 09.
Figura 09. Análise de sensitividade.
 RANGES IN WHICH THE BASIS IS UNCHANGED: faixas de valores para os quais a base fica
inalterada. Tem-se na análise de sensitividade um estudo para os coeficientes das variáveis da
função objetivo e dos limites das restrições.
o OBJ COEFFICIENT RANGES: neste grupo são analisados os coeficientes da função
objetivo, no caso LUCRO = 30ST + 40 LX. Considerando a linha para ST, temos a
informação que o coeficiente, isto é, o custo unitário de ST encontrado é de R$ 30,00 e, que
este coeficiente pode variar entre 30,00 – 10,00 = R$ 20,00 e infinito, que manterá a mesma
solução, ou seja: ST = 24 e LS = 8. Para a linha ou restrição LX, os limites estão entre R$
0,00 e R$ 40,00.
Fundamentos de Programação Linear 17
o RIGHTHAND SIDE RANGES: neste grupo tem-se uma análise dos limites das restrições,
também conhecida como RHS (Right Hand Side). Na linha CAPOPER, cuja inequação é ST
+ 2 LX 40, tem-se: CURRENT RHS = 40; ALLOWABLE INCREASE = 16. Neste caso
significa que se pode aumentar o limite em 40 + 16 = 56; ALLOWABLE DECREASE = 16, e
da mesma forma anterior, significa que se pode diminuir o limite em 40 – 16 = 24. Esses
limites indicam que mesmo que se alterem as restrições, dentro dos limites encontrados,
vamos obter outro valor para a função objetivo, com os novos valores das variáveis, mas a
base não será alterada.
7.3. TIPOS DE SOLUÇÃO DO PROGRAMA LINDO
Ao executarmos um modelo de programação linear podemos deparar com uma das situações:
 Problema viável
 Problema mal definido (unbounded)
 Problema não solúvel (infeaseable)
O primeiro caso (Solúvel ou viável) é o desejado e sobre esse caso é discutido neste capitulo. Sobre
os outros dois últimos temos:
PROBLEMA MAL DEFINIDO (unbounded): nesta categoria temos os modelos nos quais a função
objetivo pode atingir valores infinitos ou zero, incompatível com o resultado desejado. Um exemplo é um
modelo de minimização em que solicitamos, por engano, uma maximização ou vice-versa, ou ainda, quando
num modelo de maximização, asrestrições não formam uma região simplex (convexa), ou seja, forma uma
região aberta. Os softwares disponíveis, geralmente, fornecem informações de que o modelo está definido
de uma forma incompleta, no caso de maximização e, no caso de minimização, fornecem como resultado,
zero para todas as variáveis.
PROBLEMA NÃO SOLÚVEL (infeaseable): um problema é dito como não solúvel ou inviável
quando o conjunto de restrições é contraditório em si mesmo, como no modelo abaixo:
A + B ≤1
A + B ≥2
Em modelos reais e de grande porte, descobrir a causa desta contradição pode ser uma tarefa difícil
e é preciso muita prática e conhecimento do que se está fazendo (modelando) para encontrar alguma pista
da(s) possível(eis) contradição(ões).
7.4. INTERPRETAÇÃO E ANÁLISE DOS RESULTADOS DE UM PROGRAMA DE
PROGRAMAÇÃO LINEAR
Ao montarmos um modelo de PL não basta apenas encontrar o resultado, mas interpretá-lo
adequadamente e verificar o alcance dos dados obtidos.
Fundamentos de Programação Linear 18
Com base nos dados do problema do fabricante de rádios, pode-se aprofundar numa abordagem,
simulando alterações de alguns dados do problema.
Analisando novamente o problema exemplo mostrado na Figura 06, pode-se efetuar uma análise de
como seria modificada a solução pela alteração de alguns dados do problema. Essa técnica é chamada de
Análise de Sensitividade (Sensitivity Analysis). No exemplo, que é muito simples, essa análise pode ser mais
bem entendida com o auxílio de gráficos.
Os dados que constituem o modelo e que será objeto da análise de sensitividade são o lucro unitário
de cada modelo (ST e LX) e os limites de cada restrição.
O modelo é o seguinte:
Maximizar:
Lucro = 30 ST + 40 LX
Sujeito a:
ST ≤24
LX ≤24
ST + 2 LX ≤40
Figura 06. Ilustração gráfica do modelo da fábrica de rádios.
O que ocorreria se houvesse uma alteração na lucratividade de um dos componentes?
No exemplo, a equação do lucro é: Lucro = 30 ST + 40 LX. Se variássemos o lucro unitário dos
componentes, por exemplo, caso o lucro do produto Standard não fosse os R$ 30,00 como o proposto na
equação, mas se localizasse num intervalo entre R$ 25,00 e R$ 35,00.
Para relembrar, podemos escrever a equação do lucro como:
Fundamentos de Programação Linear 19
40
Lucro
ST
4
3
-LX 
Onde o coeficiente angular é = -3/4 e foi obtido da seguinte forma:
= - (Lucro unitário do produto Standard) / (Lucro do produto Luxo).
Caso este coeficiente assuma novo valor, tem-se uma outra família de retas paralelas entre si e a
solução pode ser alterada. Consideremos na Figura 07 que a solução está no ponto P0. Para qual valor do
coeficiente angular a solução ótima muda quando se varia um dos coeficientes, mantendo os demais fixos?
 Alterando o lucro unitário do produto ST e tendo o lucro unitário do produto LX fixo: neste caso a
Figura 06 mostra duas opções para a reta do lucro, mantendo o lucro unitário do LX em R$ 40,00. O
lucro unitário de ST passaria de R$ 30,00 para R$ 25,00, resultando um novo coeficiente angular
para a reta (ou função objetivo) onde = -25/40 = - 0,625 (portanto quando o lucro unitário do
produto ST decresce o coeficiente angular aumenta). O novo problema, que está sendo otimizado
ficaria:
Maximizar:
Lucro = 25 ST + 40 LX
Sujeito a:
ST 24
LX 16
ST + 2 LX 40
A solução do problema será: ST = 24; LX = 8 e o Lucro = R$ 920,00.
Figura 07. Comportamento da reta da função objetivo quando se altera o lucro unitário do produto ST.
Fundamentos de Programação Linear 20
Com esse resultado pode-se concluir que a solução continuou no mesmo ponto e convenciona-se
dizer que a solução não se alterou, embora o valor do lucro tenha se alterado.
Caso o lucro do produto ST continue abaixando, a solução pode ser transferida para outro ponto, P1.
Se o lucro do produto ST for de R$ 15,00 a nova solução será: ST = 8; LX = 16 e o Lucro = R$ 760,00, e
pode ser visualizada na Figura 08.
Figura 08. Função objetivo quando se altera o lucro unitário do produto ST para R$ 15,00.
Generalizando, quando o novo coeficiente angular da reta do lucro for igual à do segmento P0P1,
qualquer ponto deste segmento será uma solução ótima, e um pouco acima o ponto P1 passa a ser a
solução ótima. A inclinação do segmento P0P1 é o seguinte:
50,0
8-24
8-16
- 
Portanto, se -0,50 ou 0,50, a solução passa para o ponto P1. Visto que:
= - (Lucro unitário do produto ST) / (Lucro unitário do produto SX), tem-se:
 Lucro unitário do produto ST = (Lucro unitário do produto LX) x (0,50) ou
 Lucro unitário do produto ST = 0,50 x 40 = 20
Vê-se que se o lucro do produto ST ficar abaixo de R$ 20,00 (mantendo-se o lucro unitário do
produto LX em R$ 40,00), a solução passa para o ponto P1.
Quando o coeficiente angular da reta do lucro modificado for igual à do segmento P0P2, qualquer
ponto deste segmento será uma solução ótima e, um valor abaixo disto, o ponto P2 passa ser a solução
ótima. Note que a inclinação do segmento P0P2 é infinita e, portanto, se = , a solução passa para o
ponto P2, uma vez que:
 = (Lucro unitário do produto ST) / (Lucro unitário do produto LX), e temos que:
 Lucro unitário do produto LX (Lucro unitário do produto LX) x (), ou
Fundamentos de Programação Linear 21
 Lucro unitário do produto ST 
Temos aqui um caso particular: para qualquer valor alto do produto ST, sempre restará alguma mão de
obra excedente, visto que a linha LX não consegue absorver todos operários em sua linha de produção e
que poderá ser utilizado para a linha dos produtos ST e poderão ser vendidos a qualquer preço. Trata-se de
uma conclusão matemática a ser validada pela empresa, pois certamente o mercado não comprará os
produtos por preço exagerado.
Podes-se concluir que, mantido constante o lucro unitário do produto LX em R$ 40,00, se o lucro do
produto ST ficar entre R$ 20,00 e a solução continua sendo o ponto P0, para o qual o ST = 24 e o LX = 8.
De maneira análoga pode-se demonstrar que, mantido constante o lucro unitário do produto ST em R$
30,00, caso o lucro do produto LX fique entre R$ 0,00 e R$ 60,00, a solução continua no ponto P0, para o
qual a produção de ST = 24 e LX = 8. Com lucro unitário igual a R$ 0,00, a solução passa para o ponto P2 e
com lucro unitário maior que R$ 60,00 passa para o ponto P1 e, se a lucratividade do produto ST oscilar
entre R$ 25,00 e R$ 35,00, a solução não será alterada. Podem-se melhor visualizar os dados na Tabela 08.
Tabela 08. Análise de sensitividade para os custos unitários.
Faixa de Estabilidade da solução
Produto Lucro unitário atual
Mínima Máxima
ST R$ 30,00 R$ 20,00 
LX R$ 40,00 R$ 0,00 R$ 60,00
Outra análise importante é com respeito aos limites das restrições do problema, que envolve
conhecer o que ocorre com a função objetivo, quer caso se altere o valor de cada limite isoladamente, quer
se faça uma alteração unitária no valor do limite.
Inicialmente considere-se a restrição da capacidade máxima do produto LX ≤16. Observe pela
Figura 09, que se o limite desta restrição tiver uma pequena oscilação, por exemplo, entre 15 e 17, nada
ocorrerá com a solução ótima. Todavia, se o limite destra restrição cair para abaixo de 8 a solução será
alterada, tendo um novo ponto ótimo definido pela interseção do segmento ST = 24 com o novo segmento
para a restrição da capacidade máxima do produto LX.
Fundamentos de Programação Linear 22
Figura 09. Alterando o limite da restrição LX ≤16
Quanto a restrição ST ≤24, a situação é outra, visto que a solução do problema caiu no vértice
formado pela interseção de ST = 24 com restrição de limite de operários ST + 2LX = 40. Assim, para
qualquer alteração no limite, que implica em uma nova reta de restrição, tem-se um novo ponto de solução.
Se aumentarmos de 1 o limite desta restrição, ela se transforma em ST ≤25 e a solução passa a ser: ST =
25, LX = 7,50 e o Lucro = R$ 1.050,00.
Embora o lucro tenha aumentado em R$ 10,00, deve-se interpretar o valor fracionário para a
produção LX = 7,5, comosignificando um produto inacabado ou incompleto ao final do dia.
Observe-se na Figura 10 que pode-se aumentar esse limite até ST ≤40, quando a outra restrição, de
pessoal, se encontra com o eixo das ordenadas e, a partir daí, um aumento no limite do produto ST em nada
altera a solução ótima. Se diminuirmos de 1 o limite da restrição ST, ela se transforma em ST ≤23 e a nova
solução passa a ser: ST = 23; LX = 8,5 e Lucro = R$ 1.030,00, portanto com uma diminuição no lucro em R$
10,00.
Fundamentos de Programação Linear 23
Figura 10. Alterando o limite da restrição ST ≤24
Podemos observar que o valor absoluto do impacto no lucro é o mesmo, ou seja, R$ 10,00, e esta é
uma característica comum aos problemas de programação linear, ou seja, ao se aumentar ou diminuir uma
unidade numa restrição, o impacto na função objetivo terá o mesmo valor, para mais ou para menos.
Observando na Figura 10, verificamos que se pode ir diminuindo este limite até termos ST = 8, pois neste
ponto tem-se a interferência de outra restrição, LX = 16, fazendo com que o raciocínio anterior não seja mais
válido.
Por ultimo, vamos analisar a restrição da quantidade de operários: ST + 2 LX ≤40, que também é
uma das retas que participa do vértice da solução. Como se pode ver na Figura 11, se diminuirmos de 1
unidade o limite desta restrição ela se transforma em ST + 2 LX ≤39 e a solução passa a ser:
ST = 24; LX = 7,5 e o Lucro = R$ 1.020,00. Portanto o lucro diminuiu em R$ 20,00.
Podemos deduzir da Figura 11 que as diminuições sucessivas poderão continuar até ST + 2 LX =
12, visto que então esta reta encontra o ponto (24,0) onde está o eixo das ordenadas e a partir daí, o
raciocínio não é mais válido. Se aumentarmos de 1 unidade o limite desta restrição, ST + 2 LX ≤41, a
solução encontrada é a seguinte: ST = 24; LX = 8,5 o Lucro = R$ 1.060,00, com um aumento no lucro de R$
20,00.
Pode-se deduzir pela Figura 11 que os aumentos sucessivos poderão continuar até ST + 2 LX ≤56,
visto que então esta reta encontra o ponto (24,16) onde também se encontram as retas ST = 24 e LX = 16 e
a partir daí o raciocínio não é mais válido.
Fundamentos de Programação Linear 24
Figura 11. Alterando a restrição ST + LX ≤40
Podemos resumir na Tabela 09 as conclusões destas análises de sensitividade para os limites das
restrições.
Tabela 09. Comportamento da função objetivo para a variação de 1 unidade nas restrições.
Restrição e Limite Aumento de 1 unidade Diminuição de 1 unidade
Aumento no Lucro Validade Diminuição no Lucro Validade
ST 24 R$ 10,00 ST = 40 R$ 10,00 ST = 8
LX 16 R$ 0,00 LX =  R$ 0,00 LX = 8
ST + 2 LX 40 R$ 20,00 ST + 2 LX = 56 R$ 20,00 ST + 2 LX = 12
Na Tabela 09 vemos que ocorrem variações no lucro se efetuarmos alterações nos valores dos
limites das restrições. Chama-se de Preço Marginal (ou Shadow Price) aos valores da alteração no lucro
para variações unitárias nas restrições. Este item é mostrado pelo software LINDO no relatório Solution,
coluna Dual Prices e no relatório Sensitivity Analisys, seção Righthand Side Ranges.
Os dois relatórios (Figuras 12 e 13) que contém valores de preços marginais são bastante valiosos
ao se efetuarem decisões de investimentos. No exemplo discutido, nota-se claramente que é vantajoso
aumentar a capacidade máxima de produção do produto ST, e o mesmo não ocorre com o produto LX.
Os relatórios emitidos pelos programas de programação linear fornecem mais uma informação muito
importante para as decisões de investimento: o custo reduzido (Reduced Cost). Os valores da coluna
Reduced Cost da Figura 12 pode ser interpretado de duas maneiras: primeiramente pode-se interpretar que
o Custo Reduzido de uma variável que não entrou na solução como a quantidade pela qual o coeficiente da
função objetivo da variável deveria ser aumentado de modo a ela passe a participar da solução (para o caso
de maximização). Portanto, todas as variáveis cujos valores na solução já são diferentes de zero possuem
Fundamentos de Programação Linear 25
um valor zero para o Custo Reduzido, como neste exemplo. Em segundo lugar, pode-se interpretar o Custo
Reduzido de uma variável como a penalidade que se deve pagar, neste exemplo a redução do lucro, para
introduzir uma unidade daquela variável na solução.
Figura 12. Relatório da função objetivo (Solutions).
Para as variáveis que não participam da restrição, o Custo Reduzido nos fornece quais deveriam ser
seus respectivos custos unitários, no caso os lucros unitários, para que elas participassem da solução. Num
caso de formulação de ração, a matéria prima farinha de peixe pode não ter participado da solução (está
fora da base) porque seu custo está alto e o preço reduzido desta variável vai nos informar qual seria o
preço vantajoso para que a farinha de peixe viesse fazer parte da solução (entrar na base).
Figura 13. Análise de sensitividade.
Fundamentos de Programação Linear 26
8. MODELO MATEMÁTICO DO EXEMPLO DE FORMULAÇÃO DE RAÇÃO EXPOSTO NA PÁGINA 03.
Min
Custo) 0.21 Milho + 0.39FSoja + 0.17Ftrigo + 0.41 Fcarne + 0.95 Oleo + 0.18 Sorgo + 0.75 Fosbical + 0.09
Calcario + 2.35 LLys + 2.12 DLMet + 2.50 Premix + 0.45 Sal
Subject To
Peso) Milho + FSoja + Ftrigo + Fcarne + Óleo + Sorgo + Fosbical + Calcário + LLys + DLMet + Premix + Sal
= 100
EM) 34.4Milho+24.4FSoja+15.1Ftrigo+17.1Fcarne+87.8Oleo+31.7Sorgo+39.9LLys+50.2DLMet > 3000
PB) 0.09Milho+0.48FSoja+0.16Ftrigo+0.41Fcarne+0.0825Sorgo+0.956LLys+0.587DLMet > 21
CaMin) 0.0004Milho + 0.0036FSoja + 0.0012 Ftrigo + 0.118 Fcarne + 0.0003Sorgo + 0.24 Fosbical + 0.37
Calcario > 1
CaMax) 0.0004 Milho + 0.0036 FSoja + 0.0012 Ftrigo + 0.118 Fcarne + 0.0003 Sorgo + 0.24 Fosbical + 0.37
Calcario < 1.2
P) 0.0027 Milho + 0.0055 FSoja + 0.0088 Ftrigo + 0.056 Fcarne + 0.0025 Sorgo + 0.18 Fosbical > 0.50
Met) 0.0017Milho + 0.0065 FSoja + 0.0022 Ftrigo + 0.0039 Fcarne + 0.0016Sorgo + 0.99 DLMet > 0.48
Lys) 0.0023 Milho + 0.0287FSoja + 0.0057Ftrigo + 0.0177Fcarne + 0.0021 Sorgo + 0.784 LLys > 1.12
MaxTrigo) Ftrigo < 10
MaxOleo) Oleo < 5
MaxSorgo) Sorgo < 20
MinCarne) Fcarne > 2
QuaSal) Sal = 0.35
QuaPrem) Premix = 0.50
! OBSERVAÇÕES IMPORTANTES: Para editar no LINDO, o nome das variáveis, como Milho, Ftrigo, Óleo
por exemplo, bem como das restrições, como Peso, EM, PB por exemplo, devem ter no maximo 8 (oito)
caracteres e não devem ser separadas por espaço: MaxCarne e não Max Carne. Outro detalhe
importantíssimo, é que os nomes das variáveis, que são repetidos nas diversas restrições (linhas) devem ter
exatamente a mesma grafia e também, como foi frisado, não podem ser separadas por espaço ou sinal de
hífen, como DLMet e não DL Met ou DL-Met.
Fundamentos de Programação Linear 27
8.1. RELATÓRIO DO MODELO MATEMÁTICO PARA FORMULAÇÃO DE RAÇÃO PARA
FRANGOS DE CORTE
LP OPTIMUM FOUND AT STEP 0
OBJECTIVE FUNCTION VALUE
CUSTO) 28.07601
Tabela 10. Relatório da análise das variáveis e das restrições do problema.
VARIABLE Value Reduced Cost ROW Slack or Surplus Dual Prices
MILHO 55.256462 0.000000 PESO) 0.000000 0.169048
FSOJA 28.545303 0.000000 EM) 0.000000 -0.009314
FTRIGO 0.000000 0.086003 PB) 0.000000 -0.523396
FCARNE 2.984993 0.000000 CAMIN) 0.000000 -0.700130
OLEO 0.000000 0.301280 CAMAX) 0.200000 0.000000
SORGO 10.659505 0.000000 P) 0.000000 -1.418236
FOSBICAL 0.000000 0.495734 MET) 0.000000 -1.529548
CALCARIO 1.404614 0.000000 LYS) 0.000000 -2.100834
LLYS 0.125562 0.000000 MAXTRIGO) 10.000000 0.000000
DLMET 0.173558 0.000000 MAXOLEO) 5.000000 0.000000
PREMIX 0.500000 0.000000 MAXSORGO) 9.340495 0.000000
SAL 0.350000 0.000000 MINCARNE) 0.984993 0.000000
QUASAL) 0.000000 -0.619048
QUAPRE) 0.000000 -2.669048
Análise de sensitividade
Tabela 11. Relatório da análise de sensitividade das variáveis e das restrições do problema.
VARIABLE CURRENT
COEF
ALLOWABLE
INCREASE
ALLOWABEL
DECREASE
ROW CURRENT
RHS
ALLOWABLE
INCREASE
ALLOWBLE
DECREASE
MILHO 0.210000 0.015702 0.015980 PESO) 100.000000 0.738201 0.842445
FSOJA 0.390000 0.081094 0.157789 EM) 3000.00000 30.91532127.089851
FTRIGO 0.170000 INFINITY 0.086003 PB) 21.000000 1.097511 0.961704
FCARNE 0.440000 0.141637 0.072908 CAMIN) 1.000000 0.200000 0.273134
OLEO 0.950000 INFINITY 0.301280 CAMAX) 1.200000 INFINITY 0.200000
SORGO 0.180000 0.014087 0.017099 P) 0.500000 0.232823 0.050636
FOSBICAL 0.750000 INFINITY 0.495734 MET) 0.480000 0.892839 0.170307
CALCARIO 0.090000 0.235081 0.259945 LYS) 1.120000 0.704846 0.090925
LLYS 2.350000 5.691837 1.521299 MAXTRIGO) 10.000000 INFINITY 10.000000
DLMET 2,120000 37.193504 1.500898 MAXOLEO) 5.000000 INFINITY 5.000000
PREMIX 2.500000 INFINITY INFINITY MAXSORGO) 20.000000 INFINITY 9.340495
SAL 0.450000 INFINITY INFINITY MINCARNE) 2.000000 0.984993 INFINITY
QUASAL) 0.350000 0.842445 0.350000
QUAPRE) 0.500000 0.842445 0.500000
Fundamentos de Programação Linear 28
9. MATRIZ MPS - MATHEMATICAL PROGRAMMING SYSTEM
9.1. INTRODUÇÃO
Os modelos de programação linear foram apresentados na forma de um conjunto de equações e
inequações. Uma outra forma de representar um problema de PL é pelo uso da chamada Representação
Matricial MPS (Mathematical Programming System) que será chamada de matriz MPS.
No exemplo da fábrica de rádio temos o modelo de equações/inequações:
Maximizar:
Lucro = 30 ST + 40 LX
Sujeito a:
ST 24
LX 16
1 x ST + 2 x LX 40
O modelo MPS do exemplo acima pode ser estruturado e representado conforme a Tabela 12.
Tabela 12. Modelo de uma matriz MPS.
Variáveis ST LX RHS
Mínimo Máximo
Lucro 30 40
Produção ST 1 24
Produção LX 1 16
Pessoal 1 2 40
Consideremos a representação acima com sendo formada por três colunas, onde a primeira coluna
contém os nomes das equações/inequações do problema; a segunda coluna (espaço central) têm-se os
coeficientes das equações/inequações e na coluna da direita, têm-se os limites das equações/inequações,
ou RHS (Right Hand Side).
9.2. ESTRUTURAÇÃO DO MODELO MPS NA FORMULAÇÃO DE RAÇÕES
Para trabalhar com esta representação, consideremos um problema de formulação de ração, em
que se deseja balancear 100 kg de ração de mínimo custo para frango de corte inicial, com uma série de
ingredientes e que esta mistura atenda as exigências nutricionais preconizadas por Rostagno et al (2000) e
que os limites máximos e mínimos dos ingredientes ficam a critério do nutricionista. Os dados dos
ingredientes são apresentados na Tabela 13.
Fundamentos de Programação Linear 29
Tabela 13. Composição nutricional e custos dos ingredientes
Ingredientes EM PB Ca P Met Lys Custo Limites
kcal/kg % % % % % R$/kg Max Min
Milho 3440 9,00 0,04 0,27 0,17 0,23 0,21
Soja, farelo 2440 48,00 0,36 0,55 0,65 2,87 0,39
Trigo, farelo 1510 16,00 0,12 0,88 0,22 0,57 0,17 10,00
Óleo de soja 8780 - - - - - 0,95 5,00
Fosfato bicálcico - - 24,00 18,00 - - 0,75
Calcário - - 37,00 - - - 0,09
L-Lysina 3990 95,60 - - - 78,40 2,35
DL-Metionina 5020 58,70 - - 99,00 - 2,12
Premix - - - - - - 2,50 0,50 0,50
As exigências nutricionais estão na Tabela 14.
Tabela 14. Exigências nutricionais para frangos de corte de 1 a 21 dias de idade
Exigências nutricionais Unidade Mínimo Maximo
Quantidade % 100 100
Energia Metabolizável, (EM) kcal/kg 3000
Proteína bruta, (PB) % 21,00
Cálcio, (Ca) % 1,00 1,20
Fósforo, (P) % 0,50
Metionina, (Met) % 0,48
Lisina, (Lys) % 1,12
A representação deste problema na forma de equações e inequações é o seguinte:
Min
Custo) 0.21Milho + 0.39FSoja +0.17Ftrigo + 0.95Oleo + 0.75Fosbical +0.09Calcario + 2.35LLys + 2.12DLMet
+2.50 Premix
ST
Peso) Milho + FSoja + Ftrigo + Oleo + Fosbical + Calcário + LLys + DLMet + Premix = 100
EM) 34.4Milho + 24.4 FSoja + 15.1 Ftrigo + 87.8 Oleo + 39.9 LLys + 50.2 DLMet > 3000
PB) 0.09 Milho + 0.48 FSoja + 0.16 Ftrigo + 0.956 LLys + 0.587 DLMet > 21
CaMin) 0.0004 Milho + 0.0036 FSoja + 0.0012 Ftrigo + 0.24 Fosbical + 0.37 Calcario > 1
CaMax) 0.0004 Milho + 0.0036 FSoja + 0.0012 Ftrigo + 0.24 Fosbical + 0.37 Calcario < 1.2
P) 0.0027 Milho + 0.0055 FSoja + 0.0088 Ftrigo + 0.18 Fosbical > 0.50
Met) 0.0017 Milho + 0.0065 FSoja + 0.0022 Ftrigo + 0.99 DLMet > 0.48
Lys) 0.0023 Milho + 0.0287 FSoja + 0.0057 Ftrigo + 0.784 LLys > 1.12
MaxTrigo) Ftrigo < 10
MaxOleo) Oleo < 5
MinOleo) Oleo > 2
QuaPrem) Premix = 0.50
Fundamentos de Programação Linear 30
O mesmo problema apresentado na forma de matriz MPS pode ser visto na Tabela 15.
Tabela 15. Estruturação de uma matriz MPS.
Variáveis Milho Soja Trigo Oleo Fosbi Calc LLys DLMet Prem RHS
Custo 0.21 0.39 0.17 0.95 0.75 0.09 2.35 2.12 2.50 Min Max
Peso 1 1 1 1 1 1 1 1 1 100 100
EM 34.4 24.4 15.1 87.8 0 0 39.9 50.2 0 3000
PB 0.09 0.48 0.16 0 0 0 0.956 0.587 0 21.00
Ca 0.0004 0.0036 0.0012 0 0.24 0.37 0 0 0 1.00 1.20
P 0.0027 0.0055 0.0088 0 0.18 0 0 0 0 0.50
Met 0.0017 0.0065 0.0022 0 0 0 0 0.99 0 0.48
Lys 0.0023 0.0287 0.0057 0 0 0 0.78 0 0 1.12
Limites 0 0 0 2 0 0 0 0 0.50 Mín
100 100 10 5 100 100 100 100 0.50 Máx
A matriz pode ser chamada de quase matriz MPS porque para entrada dos dados numa restrição
que tem limites de maximo e mínimo, como o cálcio (Ca) por exemplo, repete-se a linha e, para cada uma
das linhas dá-se o sinal correspondente do valor RHS. Com relação às variáveis que têm limitações para
sua entrada na ração (valores maximo e/ou mínimo), acrescenta-se essa(s) variável(eis) como restrição e, a
matriz fica com a visualização mostrada na Tabela 16.
Tabela 16. Estruturação final de uma matriz MPS.
Variáveis Milho Soja Trigo Óleo Fosbi Calc LLys DLMet Prem RHS
Custo 0.21 0.39 0.17 0.95 0.75 0.09 2.35 2.12 2.50
Peso 1 1 1 1 1 1 1 1 1 = 100
EM 34.4 24.4 15.1 87.8 0 0 39.9 50.2 0  3000
PB 0.09 0.48 0.16 0 0 0 0.956 0.587 0  21.00
Ca Max 0.0004 0.0036 0.0012 0 0.24 0.37 0 0 0  1.20
Ca Min 0.0004 0.0036 0.0012 0 0.24 0.37 0 0 0  1.00
P 0.0027 0.0055 0.0088 0 0.18 0 0 0 0  0.50
Met 0.0017 0.0065 0.0022 0 0 0 0 0.99 0  0.48
Lys 0.0023 0.0287 0.0057 0 0 0 0.78 0 0  1.12
MaxOleo 1  5
MinOleo 1  2
MaxTrigo 1  10
QuaPrem 1 = 0.50
Fundamentos de Programação Linear 31
10. RECURSOS ADICIONAIS DO LINDO
10.1. ANÁLISE PARAMÉTRICA
Pode-se variar o valor de uma restrição e seu efeito na função objetivo. Ex.
Max  1) Z = 30 x1 + 40 x2
ST  2) x1 24
3) x2 16
4) x1 + x2 40
Pode-se alterar o atual limite da restrição x1 24 para valores entre 24 e 50. Para tanto deve-se seguir
este roteiro:
 Executar o Solve;
 Clicar em Reports;
 Clicar em Parametrics;
 Na tela, escolher a restrição a ser estudada (no caso a 2). Digitar o valor para o limite superior
(50);
 Escolher se o resultado deve ser na forma gráfica ou relatório;
 Clicar OK para encerrar.
10.2. RESUMO ESTATÍSTICO DOS DADOS (STATISTICS)
Dentro do Reports, clicar em Statistics para obter uma listagem contendo uma análise estatística dos
dados do modelo.
10.3. RESULTADO GRÁFICO (PERUSE)
Dentro do Reports, clicar em Peruse para obter uma visualização gráfica dos valores dos resultados das
linhas (restrições) ou das colunas (variáveis);
10.4. VISUALIZAÇÃO DA MATRIZ (PICTURE)
Dentro do Reports, clicar em Picture para se obter uma visualização gráfica da matriz de dados do
modelo.
10.5. INCLUSÃO DE DADOS NO RELATÓRIO DE SAÍDA (FORMULATION)
É possível incluir os dados do modelo no relatório, o qual é útil para se obter uma documentação mais
completa do modelo. Esta opção deve ser ativada antes de se solicitar a execução do modelo (Solve).
Fundamentos de Programação Linear 32
10.6. DEPURAÇÃO DE ERROS (DEBUG)
Quando o modelo apresenta erros ou inconsistências, o Lindo possui uma série de recursos capazes de
auxiliar o usuário encontrar a causa.
10.6.1. COMPILAÇÃO
Antes de resolver o problema o Lindo deve compila-lo. Somente quando o modelo está correto é que o
Solve poderá ser executado. Quando um erro de sintaxe é encontrado, será informado o número da
linha na qual ocorreu o erro e o cursor é posicionado nesta linha.
10.6.2. DEBUG
Quando o modelo apresenta uma situação de Infeasible ou Undbounded (modelo não-solúvel ou mal
definido), o Debug pode auxiliar o usuário a localizar o erro.
Depois de encontrado uma situação de erro:
Clicar Solve
Clicarem Debug
O resultado aparece no relatório.
10.6.2.1. INFEASIBLE SOLUTION
Quando o Debug encontrar o modelo com uma solução inexistente, ele tenta identificar uma ou mais
restrições cruciais. Uma restrição é crucial quando, sendo eliminada, o modelo restante possui solução.
Estas restrições são destacadas pelo Debug em seu relatório como Sufficient Set (Rows). Nem todo
modelo Infeasible possui uma restrição crucial.
Independentemente de encontrar ou não restrições cruciais, o comando Debug também destaca um
conjunto de restrições e de limites de colunas que constituem Necessary Set (Rows). Tal conjunto tem
como característica básica ser Infeasible, mas se torna Feasible. Assim é necessário efetuar no mínimo
uma correção Necessary Set (Rows) para tornar o modelo Feasible. No exemplo a seguir, o coeficiente
0.55 foi digitado errado, pois deveria ser 5.5 e não 0.55.
Max  3 x21 + 7 x2
ST  x1 + 2 x2 < 3
2 x1 + x2 < 2
0.55 x1 + x2 > 4
Ao executar o modelo, recebe-se a mensagem:
No Feasible Solution At Step 2. Ao acionar o comando Debug, tem-se:
Sufficient Set (Rows), correct one of:
4) 0.55 x1 + x2 > 4
Necessary Set (Rows), correct one of:
Fundamentos de Programação Linear 33
Subject to
2) x1 + 2 x2 < 3
O comando Debug identificou a restrição 4 como a causadora do problema.
10.6.2.2. UNBOUNDED MODEL
Quando o modelo está mal definido o programa tenta inicialmente identificar uma ou mais variáveis
cruciais. Estas variáveis são identificadas pelo Debug como Sufficient Set (Cols). Uma variável crucial
quando, sendo corrigida, é suficiente para tornar o modelo Bounded (corretamente definido).
Independentemente de encontrar ou não variáveis cruciais, o comando Debug também destaca um
conjunto de restrições e de limites de colunas que constituem o Necessary Set (Cols). Tal conjunto tem
como característica básica ser Unbouded, mas se qualquer variável deste conjunto for corrigida, então o
conjunto torna-se bounded.
No exemplo, a variável Z deveria ter o sinal positivo (+) mas por um erro de digitação, recebeu um sinal
negativo (-).
Max: 12 X1 + 13 X2 + 22 Y1 + 25 Y2 + 23 Z1 + 28 Y2 + X3 + Y3 + Z3
ST: X1 + X2 + Y3 – Z3 < 500
Z1 + Z2 < 500
Ao solicitar a solução do modelo, há uma mensagem de erro Unbounded Solution At Step 0. Acionado o
comando Debug, tem-se:
Sufficient Set (Cols), correct one of:
Z3
Necessary Set (Cols), correct one of:
Y2
De um modo geral, identificada a variável causadora do problema (Z3), deve-se fazer as seguintes
tentativas:
Modificar o coeficiente da variável na Função Objetivo;
Modificar o coeficiente da variável em algumas restrições;
Modificar o tipo de restrição em que a variável Z3 aparece (trocar o sinal da restrição);
Alterar o limite superior ou inferior da variável: por exemplo, num caso de X110 por X0.
11. PROGRAMA DE PROGRAMAÇÃO LINEAR PARA EXECUÇÃO DO FORMATO MPS
Um dos programas mais adequado para entrada dos dados de uma programação linear no formato de
matriz é o POM (Production and Operations Management) da Prentice-Hall’s Decision Science. Esse pacote
é composto de três programas: DS for Windows, POM for Windows e QM for Windows, contendo 30
módulos e mais de 60 sub-módulos, conforme pode-se ver na Figura 14. O programa exige um
Fundamentos de Programação Linear 34
equipamentos compatíveis com o IBM PC, Pentium com pelo menos 8 MB RAM e sistema operacional
Windows 95 ou superior.
O programa Decision Science é composto dos módulos mostrados na figura 14, onde no Programa POM
demonstrativo tem três módulos ativados, e um deles é o módulo de programação linear.
Figura 14. Módulos dos três softwares que compõem o Decision Science – DS
Na Figura 15 tem-se uma visão do painel de trabalho do programa, onde se podem fazer vários
ajustes na área de trabalho, como o tipo e tamanho da fonte, as cores do menu de trabalho, inserir ou
deletar linhas e colunas, auto-ajustes das colunas, calculadora e outros recursos.
Fundamentos de Programação Linear 35
Figura 15. Disposição dos menus do POM
Figura 16. Menu de abertura do POM com os módulos disponíveis
A Figura 16 mostra o inicio de um trabalho no POM, e neste programa demonstrativo há
possibilidade de utilizar três módulos, sendo o um deles o de programação linear, que é objeto do nosso
estudo. Uma vez selecionando o modulo da PL, pode-se abrir o menu File para a opção New para iniciar um
novo problema. Ao fazer esta escolha, aparecerá o seguinte menu, mostrado através da Figura 17.
Fundamentos de Programação Linear 36
Figura 17. Menu de criação de um problema de programação linear.
Neste menu de criação de um sistema de programação linear, na linha de Title, escrevemos o nome
da ração que desejamos calcular. Observe que este nome não é o nome do arquivo que será salvo, mas
sim, a identificação da ração. Na janela Number of Constraints, devemos introduzir o numero de contrastes
ou de restrições do problema. Em resumo, seria o número de linhas que a matriz contém, menos a linha da
função objetivo. Na segunda opção, Number of Variables, deve-se introduzir o número de variáveis ou
colunas da matriz. A entrada do número de linhas e de colunas através desses menus podem ser
simplesmente escrevendo o valor no espaço ou através das alças, que podem incrementar ou diminuir os
número default, que é 2.
O passo seguinte e muito importante, ainda nesse menu, é logo abaixo da introdução dos números
que comporão a matriz, é a escolha do tipo da função objetivo: maximizada ou minimizada. No caso de
formulação de rações, sempre será do tipo minimizada. Então, no menu Objective, clique no botão Minimize
e depois no botão OK para iniciar a entrada dos dados.
A próxima tela que aparecerá, mostrada na Figura 18, é a entrada dos dados do problema, que
inicialmente solicita a entrada dos nomes das variáveis X1 e X2 e posteriormente os nomes dos contrastes,
que são as restrições do problema.
Fundamentos de Programação Linear 37
Figura 18. Entrada dos dados do problema.
Identificadas as variáveis X1 e X2 como MILHO e SOJA, respectivamente e as restrições Constraint
1, Constraint 2 e Constraint 3 como PESO, EM e PB, respectivamente, pode-se introduzir os coeficientes
técnicos dessas variáveis, como os valores da energia metabolizável, da proteína bruta e do peso. A seguir
os tipos das restrições do RHS. Verifica-se na Figura 19, que ao se colocar o mouse em cima do sinal
padrão, que é >=, abre-se uma cortina com os demais sinais para as restrições.
Após a entrada dos coeficientes técnicos dos alimentos (das variáveis), dos tipos e valores das
restrições (RHS), pode-se solicitar ao programa que proceda a avaliação do sistema montado, através do
ícone Solve (verde) localizado no acima, no lado direito da tela.
Fundamentos de Programação Linear 38
Figura 19. Entrada dos dados, tipos e valores das restrições.
Acionado a opção Solver, o resultado do problema pode ser avaliado através de várias formas
através da janela Window e podem ser visualizados nas Figuras 20, 21 e 22. Na Figura 20, na última linha
temos os valores obtidos para as variáveis: MILHO = 0,6923 e SOJA = 0,3077 e o valor da função objetivo =
$ 0,27. A coluna RHS mostra os valores requeridos para as restrições PESO, EM e PB, além da coluna Dual
que será posteriormente discutida.
Figura 20. Menu de avaliação dos resultados do problema (Linear Programming Results).
Fundamentos de Programação Linear 39
Figura 21. Menu dos resultados adicionais da programação linear (Ranging).
O menu mostrado na Figura 21 tem-se os resultados adicionais, sendo que na primeira coluna estão
os nomes das variáveis (MILHO e SOJA) e das restrições (PESO, EM e PB); na segunda coluna, num
primeiro plano, os valores (Value) de cada variável, e num segundo plano, os valores duais (Dual Value) de
cada restrição. Da mesma forma, na terceira, quarta, quinta e sexta colunas, estão os valores do custo
reduzido (Reduced Cost ), valores originais (Original Value), limite inferior (Lower Bound) e limitesuperior
(Upper Bound) das variáveis e das restrições, respectivamente.
Analisando inicialmente os valores obtidos para as variáveis, a coluna Value, mostra as quantidades
de milho (0,69) e soja (0,31) que entrariam na ração. A coluna Reduced Cost mostra os valores que deveria
ser reduzido do custo original da variável para que a mesma pudesse fazer parte da solução do problema.
Como no exemplo os valores da coluna Value são maiores que zero, os valores da coluna Reduced Cost é
igual a zero. Na coluna Original Value são mostrados os valores originais da função objetivo, ou seja, os
custos dos ingredientes (variáveis) as próximas duas colunas têm estreita ligação com a coluna Original
Value, pois as colunas Lower Bound e Upper Bound, mostram respectivamente, os limites máximos e
mínimos que os custos das variáveis podem assumir para que elas continuem fazendo parte da solução do
problema. Por exemplo: a variável MILHO pode diminuir infinitamente seu valor que continuará fazendo
parte da solução com o valor de 0.6923 e se o seu custo ultrapassar o valor de 0.38, haverá mudança na
base, ou seja, os valores obtidos serão alterados.
No segundo plano destes resultados temos a análise das restrições. A coluna Dual Value mostra
em quanto a função objetivo (custo da ração) será alterado se aumentarmos ou diminuirmos de uma unidade
o valor original do RHS essa restrição. No caso da EM o valor é zero, pois foi solicitado uma ração com 2900
kcal EM/kg e a ração tem 2900 + 192.3076, ou seja tem mais do que o mínimo imposto nessa restrição. A
terceira coluna, Slack/Surplus, mostra quanto há de sobra ou falta em relação ao solicitado. Os valores
Fundamentos de Programação Linear 40
dessa coluna que forem iguais a zero significam que a restrição foi obtida exatamente como o solicitado,
como deveria ser para o PESO, cuja restrição era do tipo de igualdade (PESO = 1). No caso da PB o valor
mínimo solicitado (PB >= 21) foi obtido sem nenhuma folga, enquanto que para o valor mínimo de EM (EM
>= 2900) houve uma folga, ou sobra, de 192,3076 cal. A próxima coluna (Original Value) mostra os valores
requeridos no problema (valores do RHS) e as próximas colunas devem ser analisadas conjuntamente. As
colunas Lower Bound e Upper Bound, mostram os limites que, com os ingredientes (variáveis) que estão
fazendo parte da solução, no caso MILHO e SOJA, pode-se formular uma ração no máximo 3092.31 kcal e
um valor infinitamente baixo. Fora desses limites para a restrição EM, o problema torna-se inviável, desde
que as outras restrições, PESO e PB permaneçam como foram solicitadas, ou seja, 1 e 21, respectivamente
e, o mesmo raciocínio serve para as outras restrições.
Na Figura 22 é apresentado os resultados das variáveis que fazem parte da base ou da solução do
problema (Solution List), onde pode-se observar que as variáveis MILHO e SOJA são designadas de
variáveis básicas, pois os seus valores são maiores que zero, ou seja, fazem parte da solução e as variáveis
que tiverem valores iguais a zero, são designadas de variáveis não básicas. Nota-se nesta forma de
apresentação dos resultados, na coluna da variáveis, outras variáveis além daquelas introduzidas
inicialmente no problema: são as variáveis artificiais e as variáveis de folga, que seria um artificio a criação
de variáveis, que não farão parte da solução, com a finalidade de resolver o sistema de programação linear.
Figura 22. Menu dos resultados na forma solution list do programa POM.
Outro resultado que pode ser visualizado através do POM são as iterações, ou seja cada passo que
o programa trabalha para encontrar o resultado da função objetivo do problema proposto (no caso seria o
menor custa da ração) determinando os valores de cada variável, no caso de uma formulação de ração
Fundamentos de Programação Linear 41
seriam as quantidades de cada ingrediente, de maneira que satisfaça todas as restrições impostas. A Figura
23 mostra de maneira resumida os passos percorridos pelo programa para obter a solução do problema.
Figura 23. Menu das iterações do problema apresentado pelo POM.
Quando formulamos uma ração com apenas dois ingredientes (duas variáveis) é possível visualizar
o gráfico deste sistema conforme é mostrado na Figura 24. O eixo X representa a quantidade em que a
variável MILHO pode entrar na formulação da ração e o eixo Y, representa a variável SOJA. No lado direito
da Figura, pode-se ver as equações das restrições PESO, EM e PB, que unindo nos eixos X e Y configuram
a solução do problema. O segmento de reta que representa a restrição PESO, estabelece entre os eixos X e
Y, todas as possíveis mistura de MILHO e SOJA e que satisfaz essa restrição. Por sua vez, as equações da
EM e da PB, estabelecem as condições destas restrições. Pelos dados do problema, respeitando a restrição
PESO, que é do tipo: MILHO + SOJA = 1, a EM e a PB são inequações (3400 MILHO + 2400 SOJA ≥2900 e
9 MILHO + 48 SOJA ≥21) onde todas as possíveis respostas para estas restrições passam em cima destas
retas, que então seria exatamente igual ao valor do RHS (2900 e 21) ou ao lado direito delas, que então
seria maiores que os valores do RHS solicitados.
Fundamentos de Programação Linear 42
Outra reta, de cor púrpura, aparece na Figura 24, que é a Função Objetivo do problema, que vai
determinar o ponto de Mínimo Custo da ração. O ponto onde essa função corta a reta da restrição PESO
determinará a quantidade exata das variáveis MILHO e SOJA, que satisfaz todas as restrições do problema
pelo menor custo possível.
Se o valor dos custos das variáveis modificarem o suficiente, pois alteraria o ângulo, a intersecção
da Função Objetivo se deslocaria deste ponto e uma nova solução seria encontrada para este problema.
Figura 24. Representação gráfica do problema com duas variáveis.
A forma gráfica de apresentação de um problema de programação linear só estará disponibilizada se
o problema for composto de apenas duas variáveis, que seriam alocadas para os eixos X e Y do gráfico.
RESUMO DOS PROGRAMAS LINDO, MPL E POM
LINDO Linear, INteractive, and Discrete Optimizer
!! FFoorrmmuullaaccaaoo ddee rraaccaaoo ddee mmiinniimmoo ccuussttoo
! CUSTO: Funcao Objetivo
! PESO, EM, PB, Ca, P e PRE_QUA: Restricoes do sistema
! MILHO, SOJA, TRIGO, OLEO, FOSBI, CALC e PREMIX: Variaveis do sistema
MIN
CUSTO) 0.14MILHO+0.30SOJA+0.10TRIGO+0.67OLEO+0.45FOSBI+0.06CALC+2.00PREMIX
SUBJECT TO
PESO) MILHO+SOJA+TRIGO+OLEO+FOSBI+CALC+PREMIX = 1
EM) 3440MILHO+2440SOJA+1520TRIGO+8760OLEO > 3150
PB) 9MILHO+48SOJA+16TRIGO 21
Ca) 0.02MILHO+0.36SOJA+0.12TRIGO+23FOSBI+36CALC > 1
P) 0.09MILHO+0.18SOJA+0.33TRIGO+17FOSBI > 0.50
PRE_QUA) PREMIX = 0.0025
OOuu
!! FFoorrmmuullaaccaaoo ddee rraaccaaoo ddee mmiinniimmoo ccuussttoo
! CUSTO: Funcao Objetivo
! PESO, EM, PB, Ca, P e PRE_QUA: Restricoes do sistema
! MILHO, SOJA, TRIGO, OLEO, FOSBI, CALC e PREMIX: Variaveis do sistema
MIN
CUSTO) 0.14MILHO+0.30SOJA+0.10TRIGO+0.67OLEO+0.45FOSBI+0.06CALC+2.00PREMIX
ST
PESO) MILHO+SOJA+TRIGO+OLEO+FOSBI+CALC+PREMIX = 100
EM) 34.40MILHO+24.40SOJA+15.20TRIGO+87.60OLEO > 3150
PB) 0.09MILHO+0.48SOJA+0.16TRIGO > 21
Ca) 0.0002MILHO+0.0036SOJA+0.0012TRIGO+0.23FOSBI+0.36CALC > 1
P) 0.0009MILHO+0.0018SOJA+0.0033TRIGO+0.17FOSBI > 0.50
PRE_QUA) PREMIX = 0.25
MPL Maximal Programming Linear
{RACAO DE MINIMO CUSTO: MIN
FUNCAO OBJETIVO: CUSTO
RESTRICOES: PESO, EM, PB, Ca, P, Met, AAS, Lys, MAXPREM
VARIAVEIS: MILHO, SORGO, OLEO, SOJA, CARNE, TRIGO, DLMET, LLYS, FOSBICAL, CALC e
PREMIX}
MIN
Custo = 0.14 MILHO + 0.12 SORGO + 0.82 OLEO + 0.41 SOJA + 0.45 CARNE + 0.11 TRIGO + 3.21
DLMET + 3.90 LLYS + 0.45 FOSBICAL + 0.08 CALC + 2.34 PREMIX;
SSUUBBJJEECCTT TTOO
PESO: MILHO + SORGO + OLEO + SOJA + CARNE + TRIGO + DLMET + LLYS + FOSBICAL +
CALC + PREMIX=1;
EM: 3416 MILHO + 3168 SORGO + 8786 OLEO + 2283 SOJA + 1705 CARNE + 1526 TRIGO + 5020
DLMET + 3990LLYS >= 3200;
PB: 8.51 MILHO + 8.82 SORGO + 46.21 SOJA + 40.52 CARNE + 16.35 TRIGO + 58.70 DLMET
+95.6 LLYS >= 23.1;
Ca: 0.02 MILHO+ 0.03 SORGO+ 0.36SOJA + 11.78 CARNE + 0.12 TRIGO + 23 FOSBICAL + 37
CALC >=1;
P: 0.27 MILHO + 0.26 SORGO + 0.55 SOJA + 5.80 CARNE + 0.22 TRIGO + 18 FOSBICAL >= 0.50;
Met: 0.17 MILHO + 0.15 SORGO + 0.65 SOJA + 0.39 CARNE + 0.22 TRIGO + 99 DLMET >= 0.44;
AAS: 0.35 MILHO + 0.43 SORGO + 1.34 SOJA + 1.13 CARNE + 0.55 TRIGO + 99 DLMET >= 0.76;
Lys: 0.23 MILHO + 0.21 SORGO + 2.87 SOJA + 1.77 CARNE + 0.60 TRIGO + 78.4 LLYS > = 1.10;
MAXPREM: PREMIX = 0.004;
END
POM Production and Operations Management
TAB e SHIFT_TAB: Para movimentar-se na horizontal, no sentido da esquerda para a direita e no
sentido inverso.
SETAS    : Para movimentar-se nos quatro sentidos, passo a passo
CONSTRAINTS : Equações do sistema, ou restrições das variáveis ou equações das exigências
nutricionais.
VARIABLES: Variáveis do sistema ou ingredientes da ração
RHS – Right Hand Side: Valores atribuídos às restrições do sistema ou os valores das exigências
nutricionais
DUAL VALUE ou PRICE: Custo que uma restrição pode aumentar ou diminuir ao se variar em uma
unidade o RHS
SLACK/SURPLUS: Valor a mais ou a menos em relação ao valor original atribuído ao RHS
LOWER e UPPER BOUND: Para as variáveis significa o quanto o custo dessa variável que está na
base pode oscilar sem alterar o seu valor e para as restrições, significa o intervalo que essa restrição
pode ter com as mesmas variáveis que estão na base.
REDUCED: valor que se deve reduzir da variável na função objetivo para que esta possa participar
da
solução básica
SHADOW PRICE: para uma restrição significa em quanto aumentará ou diminuirá o custo da ração
se essa restrição sofrer uma variação de uma unidade e para as variáveis, significa o quanto
aumentará o valor da função objetivo se essa variável fosse forçada entrar em uma unidade na
solução básica.
UTILIZAÇÃO DO SOLVER – FUNDAMENTOS BÁSICOS
1. INSTALAÇÃO DO SOLVER
O Microsoft Excel Solver é uma ferramenta extremamente especializada, que auxilia a obtenção
de soluções de problemas matemáticos numa planilha em casos específicos, como:
 O problema deverá ter um único objetivo, como maximizar, minimizar ou atingir um valor
especificado.
 A célula com objetivo precisa conter uma fórmula que será afetada pela alteração das
células de entrada.
 Algumas células necessitam de restrições. Por exemplo, uma célula especifica não pode
exceder um determinado valor.
 A entrada de valores precisa contribuir, direta ou indiretamente, para a solução de um
único objetivo.
O Solver ajuda a otimizar a alocação de recursos. Isso poderá significar a maximização de lucros,
minimizar custos, combinar materiais para obter a melhor variedade de produtos ou estabelecer a
escala dos funcionários.
O Solver é um suplemento do Excel. Para liberar memória, pode-se desativar o Solver, ainda que
tenha sido instalado com o Excel.
Para fazer uso da ferramenta Solver é necessário que esteja instalada. Execute o comando
Ferramentas e verifique a existência da opção Solver, após a opção Auditoria. Caso não tenha esta
opção, será necessário providenciar a instalação da ferramenta, e neste caso, execute o comando:
 Ferramentas
 Suplementos
Selecione na Caixa de Diálogo Suplementos a opção Solver com um clique no pequeno quadro
situado à esquerda da opção, confirme OK.
Caso aconteça do Solver não estiver listado na Caixa de Diálogo Suplementos, clique no botão
Procurar ... e localize, em seu disco rígido (hard-disk) o arquivo Solver.xla armazenado na seqüência
de pastas: Arquivo de Programas/Microsoft Office/Bibliote/Solver ou execute novamente o programa
de instalação caso não consiga localizar o arquivo. Qualquer suplemento que seja ativado na Caixa
de Diálogo Suplementos permanecerá ativo até que seja removido.
2. UTILIZAÇÃO DO SOLVER
O Solver tem três termos chaves: célula destino, células variáveis e restrições. Compreender
estes três termos é importante, pois são utilizados para configurar as funções do Solver.
Célula Destino: também poderia ser chamada de Função Objetivo, é a única célula da
planilha onde a resposta será apresentada em termos de otimização e, essa resposta precisa ser um
valor de Maximo, Mínimo ou um Valor Específico. A Célula Destino ou Função Objetivo contém a
formula resultante da modificação das células variáveis.
Células Variáveis: também são chamadas de Variáveis de Decisão. O Solver altera os
valores desse grupo de células, afetando a resposta apresentada na Célula Destino. O Solver
modifica os valores dessas células variáveis até que uma resposta adequada apareça na célula
destino ou até decidir que não há uma resposta possível ao sistema.
Restrições: são especificações aplicadas às células (a célula de destino ou às células
variáveis) determinando que os valores se situem entre certos limites. Por exemplo, pode-se aplicar a
uma célula variável a restrição que o Solver use um número entre os valores Maximo e Mínimo
especificado.
Para trabalhar com o Solver é necessário estabelecer no mínimo dois pontos. Um é a célula
destino e o outro é a célula ou um conjunto de células variáveis.
Figura 01. Caixa de Dialogo dos Parâmetros do Solver
Tendo montado a planilha, execute o comando: Ferramentas/Solver que será apresentada a
Caixa de Diálogo dos Parâmetros do Solver como é mostrado na Figura 01.
Depois de indicar a Célula Destino, que no caso de uma formulação de rações seria a função
objetivo, depois as Células Variáveis, que seriam as quantidades de ingredientes, finalmente
submetendo às restrições, que seriam as limitações de impostas ao sistema, clique agora no botão
Resolver.
Assim que o botão Resolver é acionado, este apresenta a Caixa de Diálogo Resultados do
Solver como pode ser visto na Figura 02, na qual poderá ser escolhido Manter a Solução Solver ou
então Restaurar os Valores Originais.
Figura 02. Caixa de Diálogo Resultados do Solver
Dê um clique sobre o botão OK para obter o resultado final da ração otimizada.
3. OPÇÕES DO SOLVER
Outro recurso bastante útil da ferramenta Solver é a existência do botão Opções da Caixa de
Diálogo Parâmetros do Solver, que quando acionado apresenta a Caixa de Diálogo Opções do
Solver, como é mostrado na Figura 03.
Figura 03. Caixa de Diálogo Opções do Solver
Por meio das opções é possível controlar os recursos avançados do processo de solução,
carregar ou salvar definições de problemas e definir parâmetros para os problemas lineares e não
lineares. Cada opção tem uma definição padrão adequada à solução da maioria dos problemas.
 Tempo Máximo: neste campo é possível limitar o tempo usado pelo processo de solução.
Apesar de poder fornecer um valor tão alto quanto 32.767, o valor padrão de 100 (segundos)
é o mais indicado para a maior parte dos pequenos problemas.
 Iterações: neste campo é possível limitar o tempo utilizado pelo processo de soluções,
restringindo o número de cálculos provisórios. Apesar de poder fornecer um valor tão alto
quanto 32.767, o valor padrão de 100 (segundos) é o mais indicado para a maior parte dos
problemas.
 Precisão: por meio deste campo é possível controlar a precisão das soluções utilizando o
número fornecido para determinar se o valor de uma célula de restrição alcançou a meta ou
satisfez a um limite superior ou inferior. A precisão deve ser indicada por uma fração entre 0
(zero) e 1 (um). Uma precisão maior é indicada quando o número fornecido possui mais
casas decimais (por exemplo, 0,0001 tem mais precisão do que 0,01). Quanto maior for o
valor da precisão, mais tempo será gasto para atingir uma solução.
 Tolerância: neste campo é possível definir a porcentagem por meio da qual a célula de
destino de uma solução atendendo às restrições de número inteiro pode divergir do valor
ideal e ainda ser considerada aceitável. Esta opção é aplicada somente aos problemas com
restrições de número inteiro. Uma tolerância mais alta tende a acelerar o processo de
solução.
 Convergência: neste campo é possível definir a convergência que será aplicada apenas ao
problema não lineares e deve ser indicada por uma fração entre 0 (zero) e 1 (um). Umaconvergência menor é indicada quando o número fornecido tem mais casas decimais (por
exemplo, 0,0001 tem uma mudança relativa menor que 0,01). Quanto menor for o valor da
convergência, mais tempo será necessário para o Solver encontrar uma solução. Quando a
mudança relativa no valor da célula de destino é menor que o valor das cinco últimas
iterações na caixa Convergência, o Solver é interrompido.
 Presumir Modelo Linear: esta opção, quando selecionada possibilita acelerar o processo de
solução, quando todas as relações no modelo forem lineares e quando se deseja resolver um
problema de otimização linear ou uma aproximação linear para um problema não linear.
 Presumir Não Negativos: esta opção, quando selecionada instrui o Solver a presumir um
limite mínimo de 0 (zero) para todas as células variáveis.
 Usar Escala Automática: esta opção quando selecionada permite usar a escala automática
quando as entradas e saídas tiverem tamanhos muito diferentes, ou seja, quando a
maximização ou minimização de uma Função Objetivo estiver baseada em valores
extremamente altos.
 Mostrar Resultados de Iteração: esta opção, quando selecionada, instrui o Solver a
interromper e exibir os resultados de cada iteração.
 Estimativas: esta área possibilita especificar a abordagem a ser usada para obter as
estimativas iniciais das variáveis básicas em cada pesquisa unidimensional. É possível
selecionar uma de duas opções:
o Tangente: faz uso da extrapolação linear de um valor tangencial
o Quadrática: faz uso da extrapolação quadrática que pode melhorar os resultados em
problemas não lineares.
 Derivadas: esta área possibilita especificar a diferenciação usada para estimar derivadas
parciais das funções de objetivo e de restrição. É possível selecionar uma de duas opções:
o Adiante: usada na maioria dos problemas em que os valores de restrições são
alterados com relativa lentidão.
o Central: é usada em problemas em que as restrições são rapidamente alteradas,
principalmente perto dos limites. Embora essa opção requeira mais cálculos, pode
ser útil usa-la quando o Solver retornar uma mensagem informando que a solução
não pode ser melhorada.
 Pesquisar: esta área possibilita especificar o algoritmo que será utilizado em cada iteração
para decidir em que direção pesquisar. É possível estabelecer uma de duas formas de
pesquisa:
o Newton: este algoritmo faz uso do método quase-Newton, que geralmente exige mais
memória e bem menos iterações do que o método gradiente Conjugado.
o Conjugado: este algoritmo requer menos memória que o método Newton, mas
geralmente exige mais iterações para atingir determinado nível de precisão. Utilize
esta opção quando houver um problema grande e a quantidade de memória
disponível for uma preocupação ou quando as várias iterações do processo de
solução revelarem um progresso lento.
 Carregar Modelo: este botão quando acionado exibe a Caixa de Diálogo Carregar modelo, na
qual poderá ser especificada a referencia para o modelo que se deseja carregar.
 Salvar Modelo: este botão acionado exibe a Caixa de Diálogo Salvar modelo, na qual poderá
ser especificado onde se deseja salvar o modelo. Clique nessa caixa somente quando você
desejar salvar mais de um modelo com a planilha, pois o primeiro modelo é salvo
automaticamente.
Para um maior aprofundamento a respeito do estudo da ferramenta Solver, carregue o arquivo
Solvsamp (exemplos de solvers). Este arquivo encontra-se armazenado na seqüência de pastas:
 Arquivos de Programas/Microsoft Office/Office/Sample
Este arquivo de exemplos é bem completo em informações, contendo sete planilhas que
abordam os mais diferentes exemplos de aplacações para esta ferramenta.
TABELA DE COMPOSIÇÃO EM NUTRIENTES E DE ENERGIA DE ALGUNS INGREDIENTES
ENERGIA NUTRIENTESINGREDIENTES
Aves Suínos Coelhos Eqüinos Bovinos PB Ca P tot FB MET AAS LYS
Arroz, quirera 3273 3172 3165 3418 2,78 8,50 0,06 0,08 0,40 0,22 0,37 0,25
Algodão-30, farelo 1566 1828 2132 2132 1,87 32,40 0,32 1,05 25,00 0,48 0,95 1,20
Algodão-40, farelo 2081 2105 2600 2608 2,36 39,30 0,26 0,95 14,70 0,53 1,09 1,54
Arroz, farelo 2090 2616 2635 2846 2,40 13,12 0,11 1,59 8,50 0,25 0,47 0,58
Arroz desen, farelo 1903 2068 2245 2425 2,00 16,03 0,11 1,46 11,10 0,29 0,53 0,62
Amendoim, farelo 2253 3122 3277 2177 2,66 49,70 0,14 0,70 6,50 0,48 1,13 1,53
Carne-40, farinha 1705 1717 2058 2223 2,17 40,40 11,97 5,80 1,50 0,39 0,75 1,77
Carne-45, farinha 1744 2003 2238 2417 2,24 45,20 11,60 5,40 1,30 0,54 0,97 2,28
Citros, polpa 1830 3360 2493 2691 2,56 6,00 1,75 0,11 12,50 0,08 0,10 0,25
Cevada 3014 2963 2961 3213 2,85 9,70 0,08 0,42 6,20 0,23 0,95 1,20
Peixe, farinha 2180 2179 2546 2750 2,46 57,60 6,10 3,00 0,26 1,66 2,25 4,66
Penas, farinha 2183 2154 2382 2573 2,31 84,30 0,52 0,56 1,10 0,51 3,94 1,70
Sangue, farinha 1857 2513 2508 2709 2,15 84,30 0,20 0,15 0,42 0,82 1,89 6,57
Soja, farelo 2283 3081 3260 3240 2,64 45,60 0,36 0,55 6,46 0,65 1,34 2,87
Trigo, farelo 1526 1992 2190 2617 2,19 16,35 0,12 0,87 8,90 0,22 0,55 0,60
Milho, germe 2390 2143 2895 3127 2,78 20,20 0,50 0,51 9,00 0,33 0,63 1,20
Milho, grão 3416 3369 3260 3406 2,97 8,51 0,02 0,27 1,78 0,17 0,35 0,23
Levedura, cana 2947 2093 - - 2,89 30,62 0,48 0,64 1,12 0,49 0,80 1,98
Leite em pó desn. 2562 3524 - - 2,86 33,77 1,21 0,90 - 0,90 1,28 2,60
Melaço, pó 2153 2495 2761 2761 2,38 2,44 6,21 0,21 2,44 - - -
Melaço liquido 2079 2374 2550 2445 2,20 3,01 0,78 0,08 2,46 - - -
Soja, óleo bruto 8786 7674 8278 8278 7,67 - - - - - - -
Amido 3625 3538 3700 - - 0,55 0,13 - - - - -
Lecitina 6774 6375 - - - - - 1,41 - - - -
DL-Metionina 5020 5280 - - - 58,70 - - - 99,00 99,00 -
L-Lisina 3990 4250 - - - 95,60 - - - - - 78,40
Calcário calcítico - - - - - - 37,00 - - - - -
Osso, farinha - - - - - - 31,41 16,05 - - - -
Fosfato bicálcico - - - - - - 24,50 18,10 - - - -
Aves e suínos: EM / kcal/kg Coelhos e eqüinos: ED/ kcal/kg Bovinos: EM / Mcal/kg
TABELA DE COMPOSIÇÃO EM NUTRIENTES E DE ENERGIA DE ALGUNS ALIMENTOS (cont.)
ENERGIA NUTRIENTESINGREDIENTES
Aves Suínos Coelhos Eqüinos Bovinos PB Ca P tot FB MET AAS LYS
Aves, farinha mista 2987 3079 - - - 65,90 1,34 0,89 1,53 0,70 3,24 2,18
Aves, far. Resíduo 3523 3695 - - - 56,80 2,22 1,29 1,82 0,96 2,24 2,60
Mandioca, raspa 3138 2853 2850 2963 2,71 3,09 0,14 0,09 3,09 0,03 0,06 0,09
Soja, grão integral 3552 3745 3879 3686 3,40 37,50 0,25 0,58 5,50 0,56 1,15 2,35
Sorgo, B Tanino 3168 3278 3200 3168 2,72 8,82 0,03 0,25 2,20 0,15 0,32 0,21
Trigo, germe 3080 3420 3332 3600 2,89 27,30 0,50 1,06 3,00 0,43 0,81 1,60
Alfafa, feno 2160 1692 1830 2038 1,70 15,20 1,30 0,24 28,00 0,27 0,48 0,92
Aveia moída - - 2859 3006 2,57 10,90 0,11 0,35 10,60 0,30 0,77 0,40
Capim, feno - - 1500 1660 1,64 7,30 0,32 0,12 30,10 0,08 0,15 0,10
Rami, feno - - 1539 1539 - 11,10 0,36 0,36 23,90 0,09 0,20 0,15
Milho + espiga - 3022 2907 2836 1,95 7,00 0,01 0,25 10,50 0,19 0,30 0,15
Refinazil 1800 2850 2752 2972 2,96 22,01 0,25 0,93 8,50 0,38 0,85 0,63
Milho, rolão - - 1370 1548 1,95 6,80 0,02 0,14 21,80 0,08 0,17 0,11
Milho, sabugo - - 1083 1224 1,65 2,50 0,11 0,04 32,10 0,04 0,09 0,08
Aves, cama - 1728 - - 1,53 16,87 2,24 1,26 16,12 0,12 0,34 0,38
Aves, esterco - - - - 1,64 28,20 7,25 2,20 16,10 - - -
Arroz, casca - 2927 980 980 0,98 3,00 0,90 0,07 39,60 - - -
Milho, silagem - - - - 2,24 8,10 0,34 0,19 25,00 - - -
Napier, 66 dias - - - - 2,10 7,80 0,40 0,20 33,00 - - -
Gramínea, feno - - - - 1,88 6,50 0,33 0,20 35,00 - - -
Cana, picada - - - - 2,17 3,50 0,22 0,06 34,00 - - -
Cana, bagaço H - - - - 1,92 1,60 0,04 0,02 35,00 - - -
Colonião, 60 dias - - - - 1,89 6,95 0,42 0,21 36,20 - - -
Sorgo silagem - - - - 2,17 7,80 0,35 0,21 27,90 - - -
Soja, resíduo colh. - - - - 2,75 30,00 0,27 0,64 17,50 - - -
Uréia pecuária - - - - - 280 - - - - - -
Aves e suínos: EM / kcal/kg Coelhos e eqüinos: ED/ kcal/kg Bovinos: EM / Mcal/kg
TABELA – COMPOSIÇÃO NUTRITIVA E ENERGÉTICA DE ALIMENTOS PARA USO EM AQÜICULTURA
INGREDIENTES EM PB FB Ca P AAS Lys
Milho, grão 3350 8,50 2,10 0,02 0,18 0,37 0,25
Trigo, farelo 1930 15,00 18,00 0,15 0,55 0,35 0,50Arroz, farelo 3120 9,70 2,70 0,50 1,25 0,45 0,58
Milho, germe 2360 11,30 1,40 0,83 1,92 0,90 0,61
Milho, glúten 1670 25,00 4,00 0,20 0,21 0,87 0,80
Carne, farinha 1760 46,00 2,00 10,70 5,50 1,25 3,50
Peixe, farinha 2930 65,70 1,00 3,80 2,60 1,80 4,80
Levedura 2420 39,00 0,50 0,27 0,82 1,73 5,00
Sorgo 2810 10,00 4,40 0,03 0,15 0,33 0,22
Algodão, farelo 3240 51,10 8,70 1,20 2,04 1,27 1,61
Soja, farelo 2240 45,00 6,00 0,32 0,15 1,32 2,90
Mandioca 3250 4,30 2,50 0,13 0,09 0,06 0,09
Subprodutos de aves 2340 69,00 0,60 0,21 0,37 1,95 2,60
Sangue, farinha 1980 90,40 0,30 0,10 5,00 1,60 8,20
Óleo 8900 - - - - - -
Osso, farinha - - - 35,80 13,50 - -

Mais conteúdos dessa disciplina