R中的优化:最大化和最小化许多变量

eleh915

我有一个包含70种食物的数据集,并提供有关每种食物的营养价值(蛋白质/盎司,脂肪/盎司,卡路里/盎司等)以及食品价格/盎司的信息。我想弄清楚(给定的预算为$),哪种食物(以及每种食物的适量)的最佳组合是最大程度地增加蛋白质,最小化脂肪,最小化卡路里等。我的目标是跨越一系列价格点,并绘制每个价格点。

我在这里找到了很多可以帮助解决此问题的软件包:http : //cran.r-project.org/web/views/Optimization.html但是,我是一个初学者,不确定什么是最有用的/从哪里开始-是否会喜欢熟悉解决这类优化问题的任何人的一些建议。

乔斯利伯

这被称为饮食问题,它是线性编程的流行介绍(例如,参见我发现的饮食问题的第一个Google命中)。通过诸如的程序包的线性编程求解器lpSolve可以用于解决饮食问题的许多变体。

例如,在上面的链接中考虑问题的版本,您可以从以下食物中进行选择:

(food <- data.frame(Food=c("Corn", "2% Milk", "Wheat Bread"), CostPerServing=c(.18, .23, .05), VitaminA=c(107, 500, 0), Calories=c(72, 121, 65)))
#          Food CostPerServing VitaminA Calories
# 1        Corn           0.18      107       72
# 2     2% Milk           0.23      500      121
# 3 Wheat Bread           0.05        0       65

假设您想查找每种食物的份数,以使总成本最小化,但要受总卡路里必须在2000到2500之间且维生素A的数量必须在5000到50000之间的限制。如果定义变量X1 ,X2和X2,则您的目标是.18 * X1 + .23 * X2 + .05 * X3,这是变量的线性函数。同样,您在变量的线性函数中的每个约束;例如,卡路里数量的下限是形式为72 * X1 + 121 * X2 + 65 * X3> = 2000的约束。

lp来自lpSolve程序包函数将指示目标值系数的向量和有关约束的信息(约束矩阵,每个约束的方向以及每个约束的右侧)作为输入。对于陈述的问题,这将是:

library(lpSolve)
mod <- lp("min",  # min/max
          food$CostPerServing,  # Objective
          rbind(food$VitaminA, food$VitaminA, food$Calories, food$Calories),  # Constraint matrix
          c(">=", "<=", ">=", "<="),  # Constraint directions
          c(5000, 50000, 2000, 2500))

模型解决后,您可以查看目标函数和值:

mod$objval
# [1] 2.907692
mod$solution
# [1]  0.00000 10.00000 12.15385
sum(food$VitaminA * mod$solution)
# [1] 5000
sum(food$Calories * mod$solution)
# [1] 2000

满足约束的最便宜的成本是$ 2.91,您可以通过使用0份玉米,10份2%牛奶和12.15份小麦面包来实现这一目标。这将产生5000单位的维生素A和2000卡路里的热量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

最小化盒子和最大化对象的算法

来自分类Dev

删除最小化和最大化按钮

来自分类Dev

WPF最小化和最大化

来自分类Dev

最小化和最大化<div>

来自分类Dev

如何在Ubuntu 18.04中删除最小化,最大化和关闭按钮?

来自分类Dev

删除GTK#中的最小化和最大化窗口按钮

来自分类Dev

如何在Gnome 3中恢复最小化和最大化按钮

来自分类Dev

如何在Gnome 3中恢复最小化和最大化按钮

来自分类Dev

如何在Ubuntu 18.04中删除最小化,最大化和关闭按钮?

来自分类Dev

在Gnome 3.8中添加最大化和最小化按钮

来自分类Dev

在Debian 8中添加最小化和最大化按钮

来自分类Dev

Windows 10中最大化和最小化的窗口

来自分类Dev

如何最大化和最小化 Swing 中 JPanel 内的 JTable?

来自分类Dev

R:在lpSolveAPI中,如何将目标函数从最小化更改为最大化?

来自分类Dev

从最大化状态还原窗口时,翡翠缺少关闭,最大化和最小化按钮

来自分类Dev

如何使标题栏,最小化按钮和最大化按钮在javascript中的网页上不可见?

来自分类Dev

什么事件用于最大化/最小化?

来自分类Dev

卸下意见最小化/最大化按钮

来自分类Dev

或工具最大化/最小化OR / XOR

来自分类Dev

如何最小化启动程序,并最大化还原?

来自分类Dev

FVWM的Windows按钮(最大化最小化...),主题

来自分类Dev

最小化最大化窗口后偏移鼠标

来自分类Dev

最小化最大化不起作用

来自分类Dev

自定义最大化、最小化按钮

来自分类Dev

R中的优化(最大化)

来自分类Dev

R中的约束最大化(优化)

来自分类Dev

HTML字符实体引用,用于最大化和最小化

来自分类Dev

如何最大化,最小化和使uib模式可拖动?

来自分类Dev

Windows 10关闭,最小化和最大化按钮

Related 相关文章

  1. 1

    最小化盒子和最大化对象的算法

  2. 2

    删除最小化和最大化按钮

  3. 3

    WPF最小化和最大化

  4. 4

    最小化和最大化<div>

  5. 5

    如何在Ubuntu 18.04中删除最小化,最大化和关闭按钮?

  6. 6

    删除GTK#中的最小化和最大化窗口按钮

  7. 7

    如何在Gnome 3中恢复最小化和最大化按钮

  8. 8

    如何在Gnome 3中恢复最小化和最大化按钮

  9. 9

    如何在Ubuntu 18.04中删除最小化,最大化和关闭按钮?

  10. 10

    在Gnome 3.8中添加最大化和最小化按钮

  11. 11

    在Debian 8中添加最小化和最大化按钮

  12. 12

    Windows 10中最大化和最小化的窗口

  13. 13

    如何最大化和最小化 Swing 中 JPanel 内的 JTable?

  14. 14

    R:在lpSolveAPI中,如何将目标函数从最小化更改为最大化?

  15. 15

    从最大化状态还原窗口时,翡翠缺少关闭,最大化和最小化按钮

  16. 16

    如何使标题栏,最小化按钮和最大化按钮在javascript中的网页上不可见?

  17. 17

    什么事件用于最大化/最小化?

  18. 18

    卸下意见最小化/最大化按钮

  19. 19

    或工具最大化/最小化OR / XOR

  20. 20

    如何最小化启动程序,并最大化还原?

  21. 21

    FVWM的Windows按钮(最大化最小化...),主题

  22. 22

    最小化最大化窗口后偏移鼠标

  23. 23

    最小化最大化不起作用

  24. 24

    自定义最大化、最小化按钮

  25. 25

    R中的优化(最大化)

  26. 26

    R中的约束最大化(优化)

  27. 27

    HTML字符实体引用,用于最大化和最小化

  28. 28

    如何最大化,最小化和使uib模式可拖动?

  29. 29

    Windows 10关闭,最小化和最大化按钮

热门标签

归档