提问人:Chouette 提问时间:7/24/2022 最后编辑:Chouette 更新时间:7/24/2022 访问量:60
是否可以使用 12 个变量进行双目标线性规划?
Is it possible to conduct bi-objective linear programming with 12 variables?
问:
我有 12 个变量 (x1-x12),我想在这 12 个变量和 2 个因变量 (y1,y2) 之间进行线性规划。
这是我的原始数据:
df<-structure(list(Crop = c("Vegetable A", "Vegetable B", "Maize",
"Barley", "Potato", "Fruit A", "Fruit B", "Rice", "Tabacco",
"Rape crop", "Faba bean", "Other beans"), `Nutrient surplus (kg/ha)` = c(495,
495, 287, 269, 330, 355, 355, 226, 194, 203, 130, 137), `Output value (k yuan/ha)` = c(1234.5,
1234.5, 260.637180923077, 160.344827586207, 798.39552631579,
1085, 1085, 385.188901345292, 1075.6125, 216.65625, 196.511045454545,
909), Type = c("A", "B", "A", "B", "B", "A", "B", "A", "C", "B",
"B", "B"), Area = c("x1", "x2", "x3", "x4", "x5", "x6", "x7",
"x8", "x9", "x10", "x11", "x12")), class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -12L))
12 个变量和 2 个因变量之间的关系是:
y1=495*x1+495*x2+287*x3+269*x4+330*x5+355*x6+355*x7+226*x8+194*x9+203*x10+130*x11+137*x12
y2=123450*x1+123450*x2+26063.7*x3+16034.5*x4+79839.6*x5+108500*x6+108500*x7+38518.9*x8+107561.25*x9+21665.6*x10+19651.1*x11+90900*x12
有限制:
x1+x3+x6+x8+x9<=22666.67
x2+x4+x5+x7+x10+x11+x12<=22666.67
x9<=3333.33
我希望我能有低的 y1 但高的 y2。但是 y1 和 y2 是相互联系的,所以我希望在它们之间找到平衡。也许类似于帕累托原理?
答:
2赞
Erwin Kalvelagen
7/24/2022
#1
这是我要开始的。
将输出 y2 缩放一点。(选择单位1000元/公顷)。现在我们在 y1 和 y2 之间有相似的星等。
第一个有趣的实验是找到 y1 和 y2 的下限和上限。下限为零,上限由 LP 确定。所以需要解决 2 个 LP。
使用加权目标和表格:
min z = w*y1 - (1-w)*y2 subject to constraints
改变 w (0.1,0.2,...,0.9) 并求解。从 2.我们已经知道 w=0 和 w=1。为每个 w 画一张 y1 与 y2 的图片。这是你的有效曲线。
评论
0赞
Chouette
7/24/2022
我完成了第 1 步(原始数据已更新)。对于步骤 2,y1 的上限为 19266669.5,y2 的上限为 52575341.065;两者的下限均为 0。但是我不知道如何进行步骤3,尤其是图片部分。也许如果可以推荐任何软件包?谢谢!
0赞
Erwin Kalvelagen
7/24/2022
在 R 中绘制点(散点图)是一个基本步骤。如果你不知道该怎么做,我建议你停下来,先学习R的基础知识。
0赞
Chouette
7/24/2022
还行!我会努力学习的。无论如何谢谢你!
0赞
Erwin Kalvelagen
7/24/2022
因为你说你想最大化 y2。我希望这是显而易见的。
评论