一、规划求解概述
规划是生产、经营、生活中经常遇到的问题。例如:
1.生产计划问题。在现有的生产条件下,通过规划,求在满足生产需求的产量,并控制最小的生产成本情况下,具体的生产计划。
2.生产调度问题。工厂车间每天需要一定的生产人员,各生产人员一星期5天工作制(轮休两天),通过调度,求在满足生产所需人员时,需要的生产人员数及其轮休方式。
3.运输调度问题:多个工厂可以向多个仓库运送产品,不同工厂到仓库之间的运费根据距离各不相同,工厂的供货能力有一定的限制,通过规划,求在控制最小总体运输成本的情况下,各工厂向各仓库的运输调度数量。
4.营销策略问题。营销的利润为营业额减去营业成本,而增加广告投入(营业成本), 会增加营业额,使用规划求解,可以求在获取最大营业利润的情况下,最大的广告投入额。
所谓规划求解,就是在满足所有的约束条件下,对直接或间接与目标单元格中公式才目关联的一组单元格中的数值进行调整,最终在目标单元格公式中求得期望的结果。规划求解包含三个部分内容。
1.规划变量即可变单元格,存放需要求解的未知数。例如季度计划生产量。
2.约束条件。对规划变量取值的约束。
3.目标。即目标单元格,存放规划求解的目标计算公式。例如:生产成本。
二、创建规划求解模型
下面举例说明使用规划求解的一般步骤。假设某工厂某车间每天(从星期日到星期六)需要的生产人员数分别为22、17、13、14、15、18、24;车间的生产人员分为A岗(轮休日为星期日、星期一)、B岗(轮休日为星期一、星期二)、C岗(轮休日为星期二、星期三)、D岗(轮休日为星期三、星期四)、E岗(轮休日为星期四、星期五)、F岗(轮休日为星期五、星期六)、G岗(轮休日为星期六、星期日)。求在满足生产所需人员时,所需各岗的生产人员数最少为多少人 。
1.创建用于规划求解的各参数单元格和目标单元格区域
在单元格区域(C3:C9)输入规划求解的变量(A岗到G岗的员工数头5(合理假设);在单元格区域(D3:J9)中输入对应岗位的标志(其中,工作日为:1;休息日为:0);在总计划数单元格C10中输入计算公式:"=SUM(C3:C9)", 即总员工数;在总计划数单元区域(D10:J10)中输入计算公式:"=各对应岗位人数*工作/休息标志之和”,计算各工作日的工作员总数,例如:星期日(D10)的计算公式为:'=$C$3*D3+$C$4*D4+$C$5*D5+$C$6*D6+$C$7*D7+$C$8*D8+$C$9*D9 ”;在总需求数单元格区域(D10:J10)中输入每天(从星期日到星期六)需要的生产人员数分别为:“ 22、17、13、14、15、18、24 ”。如图所示。
2.输入规划求解参数
选择目标单元格C10;通过“数据”选项卡“分析”组中的“规划求解”命令,打开“规划求解参数”对话框,如图所示。
(1)指定规划求解目标。在“设置目标单元格”文本框中指定目标单元格:$C$10;并设置规划求解的目标为:最小值。
(2)指定规划求解可变参数。在“通过更改可变单元格”文本框中指定参数可变单元格区域:$C$3: $C$9。
(3)添加规划求解的约束条件。单击“添加”按钮,添加相应的规划求解的约束条件。各岗的人数为整数:各岗的人数大于或等于0;每天的计划人数大于或等于实际需要的人数。
(4)设置具有整数约束的求解。单击“规划求解参数”对话框中的“选项”按钮,打开如图所示的规划求解“选项”对话框,确保取消选中“忽略整数约束”复选框。当然,也可以根据需要调整其他各控制参数的值。
3.进行规划求解
在“规划求解参数”对话框中,单击“求解”按钮,完成规划求解运算,并显示如图所示的“规划求解结果”对话框。
单击“确定”按钮,规划求解结果如图所示。
根据规划求解的目标公式和约束条件,最终的求解结果可分为两种状态。
1.当“规划求解”求得结果时,在“规划求解结果”对话框中显示的信息为下列信息之一:
(1)“规划求解找到一解,可满足所有的约束和最优状况”:规划求解找到一个满足所有条件的解。
(2)“规划求解收敛于当前结果,并满足所有约束条件”:目标单元格的结果满足“规划求解选项”对话框中的“收敛度”选项中设置的最小值,即规划求解找到一个近似解。
2.当“规划求解”得不到最优结果时,在“规划求解结果”对话框中显示的信息为下列信息之一:
(1)“规划求解不能改进当前解,所有约束条件都得到了满足”:迭代过程无法进一步提高精度,可以在“规划求解选项”对话框中设置较大的精度值,然后再运行一次。
(2)“求解达到最长运算时间后停止”:在达到最长运算时间限制时,没有得到满意的结果。可以在“规划求解选项”对话框中设置较大的最长运算时间,然后再运行次。
(3)“求解达到最大迭代次数后停止”:在达到最大迭代次数时,没有得到满意的结果。可以在“规划求解选项”对话框中设置较大的选代次数,然后再运行一次。
(4)“目标单元格中的数值不收敛”:目标单元格的数值上下振荡。可以检查目标单元格各计算公式和所有的约束条件的设置是否正确,然后再运行一次。
(5)“规划求解未找到合适结果”:规划求解无法得到合理的结果。可以检查约束条件的一致性,然后再运行一次。
(6)“规划求解应用户要求而中止”:用户中止了规划求解的运行。
(7)“无法满足设定的采用线性模型条件”:非线性模型采用了线性模型方式求解。可以在“规划求解选项”对话框中选中“自动按比例缩放”复选框,然后再运行一次。
(8)“规划求解在目标或约束条件单元格中发现错误值”:在最近的一次运算中,一个或多个公式的运算结果有误。可以通过寻找包含错误值的目标单元格或约束条件单元格,更改其中的公式或内容,以得到合理的运算结果。
(9)“内存不足以求解问题”:Excel 无法获得“规划求解”所需的内存。可以关闭一些文件或应用程序,然后再运行一次。
(10)“其他的 Microsoft Excel 实例正在使用 SOLVER.DLL”:规划求解时,需要用到SOLVER.DLL。这个问题说明有多个Microsoft Excel会话正在运行,其中一个会话正在使用SOLVER.DLL,但SOLVER.DLL同时只能供一个会话使用。
三、规划求解的结果报告
“规划求解对直接或间接与目标单元格中公式相关联的一组单元格中的数值进行调整
而且在满足约束条件下,最终求得满足目标单元格公式中期望值的最优化解。对于复杂的非线性公式,结果有可能只是一个近似值;如果给出的约束条件矛盾时,可能无解。通过分析规划求解的结果报眚,并调整规划求解的选项,可以控制规划求解,以获得更优化的结果。
在“规划求解结果”对话框中,在“报告”列表框中选择要创建的报告类型:“运算结果报告”、“敏感性报告”(office2010版不再提供)、“极限值报告”(office2010版不再提供)。单击“确定”按钮,将创建并显示选择的报告类型的规划求解结果报告。
注意:如果你的Excel的“数据”选项卡“分析”组中没有“规划求解”命令,需要执行“文件”选项卡中“选项”命令,打开“Excel选项”对话框,选择“加载项”类别,在“管理”下拉列表中选择“Excel加载项”,然后单击“转到”按钮,打开 “加载宏”对话框。在“可用加载宏”列表框中,选中要激活的加载项旁边的复选框,然后单击“确定”,即可激活Excel加载项。