咨询大家一个优化问题
版主: Softfist
-
- 见习点评
- 帖子: 1334
- 注册时间: 2022年 10月 8日 22:33
- 昵称(选填): leecode
#43 Re: 咨询大家一个优化问题
我估计另外一个条件是10年后哪个组合涨价多?
-
- 论坛精英
- 帖子: 5602
- 注册时间: 2022年 8月 21日 14:20
#45 Re: 咨询大家一个优化问题
你的目标函数是什么?aka "这六个正整数变量在什么情况达到最大值"这句话不清楚
假设目标函数为x1+x2+...+x6,要其最大化的话,matlab可以这么写。其它情况自己修改f
---------------------------------
% https://www.mathworks.com/help/optim/ug/linprog.html
A = [90.5, 81, 120, 325, 15, 43.5]
A = [A
-eye(6)]
b = [100000, zeros(1, 6)]'
f = -ones(6,1)
sol = linprog(f,A,b)
---------------------------------
结果是x5 = 6.67E3,其它为0,原因很简单,x5最便宜
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46
#46 Re: 咨询大家一个优化问题
x1,x2,x3....x6均不为零,均为正整数。
分别为多少的时候实现既满足90.5x_1+81x_2+120x_3+325x_4+15x_5+43.5x_6<= 100000,
又能达到最接近100000的最大值。
分别为多少的时候实现既满足90.5x_1+81x_2+120x_3+325x_4+15x_5+43.5x_6<= 100000,
又能达到最接近100000的最大值。
(ヅ) 写了: ↑2024年 5月 7日 23:54 你的目标函数是什么?aka "这六个正整数变量在什么情况达到最大值"这句话不清楚
假设目标函数为x1+x2+...+x6,要其最大化的话,matlab可以这么写。其它情况自己修改f
---------------------------------
% https://www.mathworks.com/help/optim/ug/linprog.html
A = [90.5, 81, 120, 325, 15, 43.5]
A = [A
-eye(6)]
b = [100000, zeros(1, 6)]'
f = -ones(6,1)
sol = linprog(f,A,b)
---------------------------------
结果是x5 = 6.67E3,其它为0,原因很简单,x5最便宜
-
- 论坛精英
- 帖子: 5602
- 注册时间: 2022年 8月 21日 14:20
#47 Re: 咨询大家一个优化问题
那用intlinprog
=========================
% https://www.mathworks.com/help/optim/ug/linprog.html
% https://www.mathworks.com/help/optim/ug ... f9f-intcon
f = -[90.5, 81, 120, 325, 15, 43.5]
A = [-f
-eye(6)]
b = [100000, -ones(1, 6)]'
intcon = 1:6
% sol = linprog(f,A,b)
x = intlinprog(f, intcon, A, b)
val = -f * x
==========================
x = [3, 1, 2, 1, 8, 2275]
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46
#48 Re: 咨询大家一个优化问题
好的,谢谢。等会我试一下
(ヅ) 写了: ↑2024年 5月 8日 00:15 那用intlinprog
=========================
% https://www.mathworks.com/help/optim/ug/linprog.html
% https://www.mathworks.com/help/optim/ug ... f9f-intcon
f = -[90.5, 81, 120, 325, 15, 43.5]
A = [-f
-eye(6)]
b = [100000, -ones(1, 6)]'
intcon = 1:6
% sol = linprog(f,A,b)
x = intlinprog(f, intcon, A, b)
val = -f * x
==========================
x = [3, 1, 2, 1, 8, 2275]
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46
#49 Re: 咨询大家一个优化问题
前面你给的那个链接怎么限定变量为正整数?
(ヅ) 写了: ↑2024年 5月 8日 00:15 那用intlinprog
=========================
% https://www.mathworks.com/help/optim/ug/linprog.html
% https://www.mathworks.com/help/optim/ug ... f9f-intcon
f = -[90.5, 81, 120, 325, 15, 43.5]
A = [-f
-eye(6)]
b = [100000, -ones(1, 6)]'
intcon = 1:6
% sol = linprog(f,A,b)
x = intlinprog(f, intcon, A, b)
val = -f * x
==========================
x = [3, 1, 2, 1, 8, 2275]
-
- 论坛精英
- 帖子: 5602
- 注册时间: 2022年 8月 21日 14:20
#50 Re: 咨询大家一个优化问题
intcon变量限制整数,参考文档
正整数限制是在Ax<=b里面第2-7行, -I x <= -[1 1 1 1 1 1]^T
https://www.mathworks.com/help/optim/ug ... f9f-intcon
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46
#51 Re: 咨询大家一个优化问题
是问下面这个链接,其他的我看着有点烧脑,得专门花时间学习一下:
https://www.wolframalpha.com/widgets/vi ... 7d6d496120
https://www.wolframalpha.com/widgets/vi ... 7d6d496120
(ヅ) 写了: ↑2024年 5月 8日 00:44 intcon变量限制整数,参考文档
正整数限制是在Ax<=b里面第2-7行, -I x <= -[1 1 1 1 1 1]^T
https://www.mathworks.com/help/optim/ug ... f9f-intcon
-
- 见习写手
- 帖子: 106
- 注册时间: 2023年 6月 20日 16:49
- 昵称(选填): papapp
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46
#53 Re: 咨询大家一个优化问题
这个问题我最后还是通过Excel来解决的。
(1)在Excel里加载“规划求解”:
https://jingyan.baidu.com/article/fa412 ... 0928d.html
(2)在Excel里使用“规划求解”:
https://www.excel22.com/1143.html
(1)在Excel里加载“规划求解”:
https://jingyan.baidu.com/article/fa412 ... 0928d.html
(2)在Excel里使用“规划求解”:
https://www.excel22.com/1143.html
-
- 论坛元老
- 帖子: 16083
- 注册时间: 2022年 7月 21日 23:33
- 昵称(选填): 众傻之傻
#54 Re: 咨询大家一个优化问题
没有光子;也没有量子能级,量子跃迁,量子叠加,量子塌缩和量子纠缠。
-
- 职业作家
- 帖子: 519
- 注册时间: 2022年 7月 21日 09:24
#55 Re: 咨询大家一个优化问题
我好奇试了一下,Excel的结果居然是错的。None你的结果是多少?我得到的总花费居然小于100000,而这个问题显然有一个结果是正好等于100000的。前面有人用MatLab已经算出来了。当然这个最优解不是唯一的,有多种组合。none 写了: ↑2024年 5月 8日 08:01 这个问题我最后还是通过Excel来解决的。
(1)在Excel里加载“规划求解”:
https://jingyan.baidu.com/article/fa412 ... 0928d.html
(2)在Excel里使用“规划求解”:
https://www.excel22.com/1143.html
上次由 LightFast 在 2024年 5月 8日 14:46,总共编辑 1 次。
-
- 论坛点评
- 帖子: 2844
- 注册时间: 2022年 7月 23日 14:04
#57 Re: 咨询大家一个优化问题
尼玛,本版一个学过经济101的都没有吗?
楼主这是个什么题目?用数学语言描述,总金额m。假如有K种商品,价格是p1,..., pK。购买量是x1,..., xK
要求(总金额-总花费)最小化?这是说 m - p1× x1 - p2 × x2 -...- pK × xK 最小化?
x1 和 xK 要整数吗?不要整数有无数解。这都什么没逻辑的问题?
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46
-
- 职业作家
- 帖子: 519
- 注册时间: 2022年 7月 21日 09:24
#60 Re: 咨询大家一个优化问题
根据初始条件不同会得到不同的结果,比如这个结果:
【0,0,833,0,2,0】, 对应总数99990.
改一下初始条件又会得到另一个结果:
【1,1,826,2,1,1】,对应总数为100000. 这才是一个正确的结果。
前面【zi】用matlab找到的一组结果: [3, 1, 2, 1, 8, 2275]也是正确的。
另外,python 的scipy.optimize.linprog 及scipy.optimize.milp缺省用的都是
一个很有名软件包highs,居然得到的解也是错的。
后来试了一下只有cvxpy用的GLPK_MI还比较可靠,不同的初始值都能找到
最优解。比如:【0, 75, 0,289, 0, 0】, 81*75+325*289=100000,
或者【1,3,1,302,9,29】也是100000.
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46
#61 Re: 咨询大家一个优化问题
哇,真的呀:
【1,1,826,2,1,1】,对应总数为100000. 这才是一个正确的结果。
【1,1,826,2,1,1】,对应总数为100000. 这才是一个正确的结果。
LightFast 写了: ↑2024年 5月 8日 21:22 根据初始条件不同会得到不同的结果,比如这个结果:
【0,0,833,0,2,0】, 对应总数99990.
改一下初始条件又会得到另一个结果:
【1,1,826,2,1,1】,对应总数为100000. 这才是一个正确的结果。
前面【zi】用matlab找到的一组结果: [3, 1, 2, 1, 8, 2275]也是正确的。
另外,python 的scipy.optimize.linprog 及scipy.optimize.milp缺省用的都是
一个很有名软件包highs,居然得到的解也是错的。
后来试了一下只有cvxpy用的GLPK_MI还比较可靠,不同的初始值都能找到
最优解。比如:【0, 75, 0,289, 0, 0】, 81*75+325*289=100000,
或者【1,3,1,302,9,29】也是100000.
-
- 著名点评
- 帖子: 5147
- 注册时间: 2022年 8月 2日 16:22
- 昵称(选填): 恓惶的反革命家
-
- 著名点评
- 帖子: 5147
- 注册时间: 2022年 8月 2日 16:22
- 昵称(选填): 恓惶的反革命家
-
- 论坛支柱
- 帖子: 11670
- 注册时间: 2022年 7月 22日 13:46