昨天讲到钢筋截断问题方案枚举,现在将问题扩展一下。如何根据各种条件找出最优切割方案。

目标一、要求余料最少。利用Excel自带【数据分析-规划求解】功能求解。

如下表,复制上表头至右侧,将【M3】中验证列改为目标列(余料最少),在【M4】中输入公式【=I2-SUMPRODUCT(I3:L3,I4:L4)】,即余料量。

excel的规划求解功能(Excel之道-规划求解问题)(1)

1、首先单击菜单栏【文件】-最下面【Excel选项】-【自定义功能区】,在右边【主选项卡】里勾选【开发工具】(office2013-2016),07、10版好像在【Excel选项】-【常规】里头。

excel的规划求解功能(Excel之道-规划求解问题)(2)

3、单击菜单栏【数据】-【分析】-【规划求解】,在【设置目标】栏输入或者选择【$M$4】单元格(即目标为余料最少),选择最小值;在【通过更改可变单元格】栏里输入或拖选【$I$4:$L$4】单元格区域(即切割根数是可变的,不确定,应选择为变量);单击【添加】,添加【遵守约束】。

excel的规划求解功能(Excel之道-规划求解问题)(3)

excel的规划求解功能(Excel之道-规划求解问题)(4)

条件一:余料必须大于或等于0,即引用单元格为【$M$4】,选择>=0,点击添加。

excel的规划求解功能(Excel之道-规划求解问题)(5)

条件二:切割根数须为整数,即引用变量区域【$I$4:$L$4】,选择int整数,单击添加

excel的规划求解功能(Excel之道-规划求解问题)(6)

条件三:切割根数必须>=0,即引用变量区域【$I$4:$L$4】,选择>=0,确定。

3、确定之后回到【规划求解参数】对话框,勾选【使无约束变量为非负数】,求解方法选择【非线性GRG】,单击【求解】。

excel的规划求解功能(Excel之道-规划求解问题)(7)

excel的规划求解功能(Excel之道-规划求解问题)(8)

等待计算,出现上面对话框,默认按上述选择,点击确定。

excel的规划求解功能(Excel之道-规划求解问题)(9)

即最优解为:将30米的钢筋切割为1根4.4m、2根5.6m和2跟7.2m的钢筋,余料为0,然而最优方案并不只有一种,显然左边有4种最优方案。。

目标二:要求余料最少且至少要求切割2根5.6m的钢筋。

添加一个约束条件即可。单击菜单栏【数据】-【分析】-【规划求解】,单击【添加】,添加【遵守约束】。添加【$J$4>=2】,确定。然后单击【求解】。

excel的规划求解功能(Excel之道-规划求解问题)(10)

excel的规划求解功能(Excel之道-规划求解问题)(11)

规划求解在于方便快捷的计算出符合所有条件的(一个)最优解,操作简单,其不足之处在于:如果最优解不止一个时,他并不能列出满足条件的所有解,所以最好上下方法配合使用。

,