首页 > 解决方案 > 使用 R 优化饮食

问题描述

我想做一种零食,尽可能接近观察到的零食(尽量减少与观察到的零食(qte_ob)的差异,同时尊重零食价格和营养价值的限制。我的数据库是:

食品编号 成本 Prot Fat Carb Cal Qte_ob 面包 1 0.1 2.5 1 15 90 150 牛奶 2 0.5 4.8 5 11.7 120 350 奶酪 3 1 8 9 0.4 106 20

Cost 是每种食物的价格,Prot 是每种食物的蛋白质含量,Fat 是每种食物的脂肪含量,Carb 是每种食物的碳水化合物含量,cal 是每种食物的钙含量,Qte_ob 是我通常食用的量。

我将变量命名为 Qte_m :它是一个带有测量数量的食物(面包、牛奶和奶酪)的向量。

objectif 函数可以写成: f(Qte_m) = sum (i to 1;3)

还有很多约束:

我已经开始以下代码:

Base_Alim<-read.csv(file = "Compo.csv",sep=";",header = TRUE)
head(Base_Alim)

#Variable
qte_m <-Variable(3)

#Objective
function_opti <- function(Base_Alim, qte_m){
  result = sum((qte_m - Base_Alim[qte_ob])^2)
  return(result)
}

# contrainte 
constraint_1 <-  sum(Base_alim[qte_m]*cost) <= 3.999999

constraint_2 <- sum(Base_alim[qte_m]*prot) >=10

constraint_3 <- qte_m(3)<=5*qte_m(2)

#problem
constraints <- list(constraint_1, constraint_2, constraint_3))
resultat=optim(fn=function_opti,Data=Base_alim, contraints, method="L-BFGS-B")

谢谢您的帮助!

标签: query-optimization

解决方案


推荐阅读