Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
[Alexandre] 1. Introducao
1. Programa¸˜o Linear
ca
Alexandre Salles da Cunha
DCC-UFMG, Mar¸o 2010
c
Alexandre Salles da Cunha Programa¸˜o Linear
ca
2. Vamos considerar o seguinte problema
Pedro deseja saber conhecer o m´ ınimo or¸amento que precisa gastar
c
diariamente para satisfazer suas necessidades di´rias de nutrientes, a
a
saber:
Prote´ınas: 55 g
C´lcio: 800 mg
a
Energia: 2000 Kcal.
Para obter estas fontes de nutrientes, Pedro disp˜e dos seguintes
o
alimentos:
Alimento Tamanho da Energia Proteina C´lcio
a Pre¸o da
c
por¸˜o
ca (kcal) (g) (mg) por¸˜o
ca
(centavos)
Cereais 28 g 110 4 2 3
Frango 100 g 205 32 12 24
Ovos 2 grandes 160 13 54 13
Leite 237 cc 160 8 285 9
Carne porco 260 g 260 14 80 19
Alexandre Salles da Cunha Programa¸˜o Linear
ca
3. O problema a resolver
Dentre todas as dietas (combina¸˜es de alimentos) que garantam a
co
satisfa¸˜o da ingest˜o m´
ca a ınima de nutrientes, apresente uma cujo custo
seja m´ınimo.
Identificar uma estrutura linear entre o custo e a satisfa¸ao das
c˜
necessidades nutricionais com a ingest˜o de nutrientes.
a
Formular um Problema de Otimiza¸˜o adequado.
ca
Resolver o Problema.
Alexandre Salles da Cunha Programa¸˜o Linear
ca
4. Formulando o problema
Separando os dados do problema dos valores atribu´
ıdos ` instˆncia do
a a
problema.
Conjunto de nutrientes a satisfazer: I .
Necessidade di´ria de cada nutriente: {di : ∀i ∈ I }
a
Conjunto de alimentos considerados na dieta: J
Pre¸o da por¸˜o do alimento j: pj
c ca
Quantidade do nutriente i fornecido por por¸˜o do alimento j:
ca
{Qij , ∀i ∈ I , ∀j ∈ J}
Alexandre Salles da Cunha Programa¸˜o Linear
ca
5. Formulando o problema
1 Vari´veis de decis˜o: xj ir´ representar a quantidade de por¸oes do
a a a c
alimento j que dever´ ser ingerida diariamente.
a
2 Fun¸˜o objetivo: minimizar o custo da dieta:
ca
min pj xj
j∈J
3 Restri¸˜es do problema:
co
1 Satisfa¸˜o das necessidades di´rias de cada nutriente:
ca a
Qij xj ≥ di , ∀i ∈ I
j∈J
2 N˜o negatividade da quantidade ingerida de cada alimento:
a
xj ≥ 0, ∀j ∈ J.
Alexandre Salles da Cunha Programa¸˜o Linear
ca
6. Resolvendo o Problema
Trata-se de um Problema de Programa¸˜o Linear
ca
Para fins ilustrativos, usaremos o pacote GLPK para sua resolu¸˜o e a
ca
linguagem de modelagem AMPL do GLPK.
glpsol --model dieta.mod --output dieta.out
Alexandre Salles da Cunha Programa¸˜o Linear
ca
7. Solu¸˜o do problema da dieta
ca
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 Programa¸˜o Linear
ca
8. Resolvendo um pequeno problema graficamente
max x1 + x2
x1 + 2x2 ≤ 3
2x1 + x2 ≤ 3
x1 , x2 ≥ 0
Alexandre Salles da Cunha Programa¸˜o Linear
ca