Sei sulla pagina 1di 8

Programacao Linear

Alexandre Salles da Cunha

DCC-UFMG, Marco 2010

Alexandre Salles da Cunha

Programac
ao Linear

Vamos considerar o seguinte problema


Pedro deseja saber conhecer o mnimo orcamento que precisa gastar
diariamente para satisfazer suas necessidades di
arias de nutrientes, a
saber:
Protenas: 55 g
Calcio: 800 mg
Energia: 2000 Kcal.
Para obter estas fontes de nutrientes, Pedro disp
oe dos seguintes
alimentos:
Alimento

Tamanho da
porcao

Energia
(kcal)

Proteina
(g)

Calcio
(mg)

Cereais
Frango
Ovos
Leite
Carne porco

28 g
100 g
2 grandes
237 cc
260 g

110
205
160
160
260

4
32
13
8
14

2
12
54
285
80

Alexandre Salles da Cunha

Programac
ao Linear

Preco da
porcao
(centavos)
3
24
13
9
19

O problema a resolver

Dentre todas as dietas (combinac


oes de alimentos) que garantam a
satisfacao da ingestao mnima de nutrientes, apresente uma cujo custo
seja mnimo.
Identificar uma estrutura linear entre o custo e a satisfacao das
necessidades nutricionais com a ingest
ao de nutrientes.
Formular um Problema de Otimizac
ao adequado.
Resolver o Problema.

Alexandre Salles da Cunha

Programac
ao Linear

Formulando o problema

Separando os dados do problema dos valores atribudos `a instancia do


problema.
Conjunto de nutrientes a satisfazer: I .
Necessidade diaria de cada nutriente: {di : i I }
Conjunto de alimentos considerados na dieta: J
Preco da porcao do alimento j: pj
Quantidade do nutriente i fornecido por porc
ao do alimento j:
{Qij , i I , j J}

Alexandre Salles da Cunha

Programac
ao Linear

Formulando o problema
1

Variaveis de decisao: xj ir
a representar a quantidade de porcoes do
alimento j que devera ser ingerida diariamente.

Funcao objetivo: minimizar o custo da dieta:


X
min
pj xj
jJ

Restricoes do problema:
1

Satisfacao das necessidades diarias de cada nutriente:


X
Qij xj di , i I
jJ

Nao negatividade da quantidade ingerida de cada alimento:


xj 0, j J.

Alexandre Salles da Cunha

Programac
ao Linear

Resolvendo o Problema

Trata-se de um Problema de Programac


ao Linear
Para fins ilustrativos, usaremos o pacote GLPK para sua resolucao e a
linguagem de modelagem AMPL do GLPK.
glpsol --model dieta.mod --output dieta.out

Alexandre Salles da Cunha

Programac
ao Linear

Solucao do problema da dieta

Status: OPTIMAL Objective: CustoTotal = 67.09635836 (MINimum)


No. Row name St Activity Lower bound Upper bound Marginal
------ ------------ -- ------------- ------------- ------------- ------------1 CustoTotal B 67.0964
2 MinNutrientes[Energia]
NL 2000 2000 0.0269739
3 MinNutrientes[Proteina]
B 78.6336 55
4 MinNutrientes[Calcio]
NL 800 800 0.0164357
No. Column name St Activity Lower bound Upper bound Marginal
------ ------------ -- ------------- ------------- ------------- ------------1 x[Cereal] B 14.2443 0
2 x[Frango] NL 0 0 18.2731
3 x[Ovos] NL 0 0 7.79665
4 x[Leite] B 2.70706 0
5 x[Porco] NL 0 0 11.6745

Alexandre Salles da Cunha

Programac
ao Linear

Resolvendo um pequeno problema graficamente

max

x1 + x2
x1 + 2x2 3
2x1 + x2 3
x1 , x2 0

Alexandre Salles da Cunha

Programac
ao Linear

Potrebbero piacerti anche