我正在嘗試使用 Excel 2007 中的求解器,但我沒有在其中找到“all different”約束,例如:
我可以看到“整數”“二進位”,但沒有“all different”。
有人可以幫我找到它嗎?謝謝!
答案1
Excel 2010 中新增了 all different 約束。
您可以透過在 Excel 2007 中使用附加公式和限制來施加所有不同的約束。
設定的螢幕截圖...
這裡,Eqn1 是=A2*10+A3*9+A4*8+A5*7+A6*6
,Eqn2 是=A6*10+A5*9+A4*8+A3*7+A2*6
您可以看到儲存格 B2 包含 CSE 方程式{=MIN(ABS(A2-A3:$A$6))}
。這被拖到 B5,其中方程式為{=MIN(ABS(A5-A6:$A$6))}
。
例如,求解器設定為:
- 設定目標:$F$2
- 致:分鐘
- 透過更改:$A$2:$A$6
- 受約束條件:
- $A$2:$A$6 <= $D$2:$D$6
- $A$2:$A$6 >= $C$2:$C$6
- $B$2:$B$5 >= $E$2:$E$5
- $A$2:$A$6 = 整數
- 選擇求解法:演化
下面是截圖...
下面是解決方案的螢幕截圖。
它找到了預期的答案 1,2,3,4,5。
將 SetObjective 改為 $G$2 會得到答案 5,4,3,2,1。