Excel:简单的例子,但Excel Solver无法找到可行的解决方案

gr8qqesn  于 2023-05-30  发布在  其他
关注(0)|答案(1)|浏览(313)

我想使用Excel Solver制定一个旅行计划,以决定按顺序访问哪个城市以及停留多长时间。我打算从A市出发,然后回到A市。
下表显示了从一个城市到另一个城市的机票,以及在每个城市停留的每天住宿费用。
enter image description here
目标(蓝色单元格):为了最小化总费用(N17),需要更换的电池(绿色电池):在一个城市停留的天数($D$17:$F$19)
例如,F17细胞中的9意味着从A移动到C,并在C停留9天。'From count'(H列)检查每个城市的出发次数=COUNTIF(D18:G18,">0”)
'To count'(第22行)检查您到达每个城市的次数=COUNTIF(D18:D21,">0”)
'necessary?'(K列)检查你是否曾经到达过这个城市(因为如果你已经到达,你也必须离开)=HLOOKUP(C19,$D$17:$G$22,6,FALSE)
“总公平”(M列)计算总公平=IFERROR(SUMPRODUCT(D5:G5,D18:G18)/SUM(D18:G18),0)
总住宿费成本'(N列)计算总住宿成本=SUMPRODUCT($D$13:$G$13,D18:G18)
约束包括以下内容

  • 我们不会搬到同一个城市

D18 = 0 E19 = 0 F20 = 0 G21 = 0

  • 停留次数应为整数D18:G21 =整数
  • 行程从城市A开始H18 = 1
  • 返回城市A D22 = 1
  • 我们不会在一个城市停留超过一次

H19:H21 <= 1 E22:G22 <= 1

  • 如果你到了一个城市,你也必须离开

H19:H21 >= K19:K21

  • 总停留天数(除了返回A并停留)应为10天

D26 =总和(E18:G21)= 10

  • 访问城市总数(A除外)应为2

D27 =总和(E22:G22)= 2

  • 返回A并在A停留的天数随机指定为1

D19:D21 <= 1
我想在五个城市的例子中使用这个逻辑,但Excel甚至在这个玩具例子中也找不到可行的解决方案。
原因是什么,我如何才能使它工作?

  • 我刚刚发现我无法附加Excel文件。可以在这里安装吗?如果你愿意,我可以发电子邮件给你。

我认为拍摄的图像上显示的数字将是最好的旅行计划。如果我输入这个数字并运行solver,我会找到一个解,但是如果我清除所有数字并运行它,我不会找到一个解。

  • 我听说solver不能识别countif函数,所以我尝试使用iferror,例如,在单元格H18 =IFERROR(D18/D18,0)+IFERROR(E18/E18,0)+IFERROR(F18/F18,0)+IFERROR(G18/G18,0)代替countif,但我也找不到解决方案。
rhfm7lfc

rhfm7lfc1#

好了,想出了这个,但你需要考虑一下有什么要改进的:

我没有使用二进制,因为from count保持为1。
请注意,你可以在C市住7天,因为它是最便宜的。因此,添加持续时间单元D22:F22必须>=2…至少住两天。

相关问题