目录1.关于“规划求解”2.如何加载“规划求解”3.“规划求解”各参数解释和设置4.“规划求解”的步骤5.“规划求解”疑难解答6.利用“规划求解”解线性规划问题7.利用“规划求解”解整数规划问题8.利用“规划求解”解目标规划问题9.利用“规划求解”解运输问题10.利用“规划求解”解最短路径问题11.利用“规划求解”解最大流问题12.利用“规划求解”解数据包络分析(DEA)问题13.利用“规划求解”解其他运筹学问题1、关于“规划求解”“规划求解”是Excel中的一个加载宏,借助“规划求解”,可求得工作表上某个单元格(被称为目标单元格)中公式(公式:单元格中的一系列值、单元格引用、名称或运算符的组合,可生成新的值。公式总是以等号(=)开始。)的最优值。“规划求解”将对直接或间接与目标单元格中公式相关联的一组单元格中的数值进行调整,最终在目标单元格公式中求得期望的结果。“规划求解”通过调整所指定的可更改的单元格(可变单元格)中的值,从目标单元格公式中求得所需的结果。在创建模型过程中,可以对“规划求解”模型中的可变单元格数值应用约束条件(约束条件:“规划求解”中设置的限制条件。可以将约束条件应用于可变单元格、目标单元格或其他与目标单元格直接或间接相关的单元格。而且约束条件可以引用其他影响目标单元格公式的单元格。使用“规划求解”可通过更改其他单元格来确定某个单元格的最大值或最小值。MicrosoftExcel的“规划求解”工具取自德克萨斯大学奥斯汀分校的LeonLasdon和克里夫兰州立大学的AllanWaren共同开发的GeneralizedReducedGradient(GRG2)非线性最优化代码。线性和整数规划问题取自FrontlineSystems公司的JohnWatson和DanFylstra提供的有界变量单纯形法和分支边界法。2、如何加载“规划求解”安装office的时候,系统默认的安装方式不会安装宏程序,需要用户根据自己的需求选择安装。下面是加载“规划求解”宏的步骤:1)在“工具”菜单上,单击“加载宏”。2)在弹出的对话框中的“可用加载宏”列表框中,选定待添加的加载宏“规划求解”选项旁的复选框,然后单击“确定”。单击“确定”以后,“工具”菜单下就会出现一项“规划求解”。如果需要其他功能,也可以用鼠标勾选。提醒一句,加载的宏越多,excel启动的时候就会越慢,所以请根据自己的需要选择。3)如果要卸载已经加载的宏,请在“可用加载宏”列表框中,选定待添加的加载宏选项旁的复选框,然后单击“确定”。3、“规划求解”各参数解释和设置单击“规划求解”按钮,将会出现以下的规划求解参数的对话框。设置目标单元格:一些单元格、具体数值、运算符号的组合。注意:目标单元格一定要是公式,即一定是以“=”开始。类似于线性规划中的目标函数。最大值、最小值:在此指定是否希望目标单元格为最大值、最小值或某一特定数值。如果需要指定数值,请在右侧编辑框中键入该值。可变单元格:在此指定可变单元格。求解时其中的数值不断调整,直到满足约束条件并且“设置目标单元格”框中指定的单元格达到目标值。可变单元格必须直接或间接地与目标单元格相关联。类似于线性规划中的变量。推测:单击此按钮,自动推测“设置目标单元格”框中的公式所引用的所有非公式单元格,并在“可变单元格”框中定位这些单元格的引用。约束:在此列出了规划求解的所有约束条件。添加:显示“添加约束”对话框。更改:显示“更改约束”对话框。注意:单击此按钮的时候,要先选择需要更改的约束。删除:删除选定的约束条件。同样单击此按钮前,要先选择需要删除的约束。求解:对定义好的问题进行求解。关闭:关闭对话框,不进行规划求解。但保留通过“选项”、“添加”、“更改”或“删除”按钮所做的更改。也就是说,当你下次再次单击“规划求解”按钮后,对话框显示上回所设置的参数。选项:显示“规划求解选项”对话框。在其中可加载或保存规划求解模型,并对求解过程的高级属性进行控制。最长运算时间:在此设定求解过程的时间。可输入的最大值为32767(秒),默认值100(秒)可以满足大多数小型规划求解要求。迭代次数:在此设定求解过程中迭代运算的次数,限制求解过程的时间。可输入的最大值为32767,默认值100次可满足大多数小型规划求解要求。精度:在此输入用于控制求解精度的数字,以确定约束条件单元格中的数值是否满足目标值或上下限。精度值必须表示为小数(0到1之间),输入数字的小数位越多,精度越高。例如,0.0001比0.01的精度高。允许误差:在此输入满足整数约束条件并可被接受的目标单元格求解结果与真实的最佳结果间的百分偏差。这个选项只应用于具有整数约束条件的问题。设置的允许误差值越大,求解过程就越快。收敛度:在此输入收敛度数值,当最近五次迭代后目标单元格中数值的变化小于“收敛度”框中设置的数值时,“规划求解”停止运行。收敛度只应用于非线性规划求解问题,并且必须表示为小数(0到1之间)。设置的数值越小,收敛度就越高。例如,0.0001表示比0.01更小的相对差别。收敛度越小,“规划求解”得到结果所需的时间就越长。采用线性模型:当模型中的所有关系都是线性的,并且希望解决线性优化问题时,选中此复选框可加速求解进程。显示迭代结果:如果选中此复选框,每进行一次迭代后都将中断“规划求解”,并显示当前的迭代结果。自动按比例缩放:如果选中此复选框,当输入和输出值量级差别很大时,可自动按比例缩放数值。例如,基于百万美元的投资将利润百分比最大化。假定非负:如果选中此复选框,则对于在“添加约束”对话框的“约束值”框中没有设置下限的所有可变单元格,假定其下限为0(零)。估计:指定在每个一维搜索中用来得到基本变量初始估计值的逼近方案。正切函数:使用正切向量线性外推二次方程:用二次方程外推法,提高非线性规划问题的计算精度。导数:指定用于估计目标函数和约束函数偏导数的差分方案。向前差分:用于大多数约束条件数值变化相对缓慢的问题。中心差分:用于约束条件变化迅速,特别是接近限定值的问题。虽然此选项要求更多的计算,但在“规划求解”不能返回有效解时也许会有帮助。搜索:指定每次的迭代算法,以确定搜索方向。牛顿法:用准牛顿法迭代需要的内存比共轭法多,但所需的迭代次数少。共轭法:比牛顿法需要的内存少,但要达到指定精度需要较多次的迭代运算。当问题较大和内存有限,或步进迭代进程缓慢时,可用此选项。装入模型:显示“装入模型”对话框,输入对所要加载的模型的引用。保存模型:显示“保存模型”对话框,在其中可指定保存模型的位置。只有需要在工作表上保存多个模型时,才单击此命令。第一个模型会自动保存。4、“规划求解”的步骤1)首先在表格上建立模型,然后单击“规划求解”按钮,出现“规划求解参数”的对话框。2)在“设置目标单元格”框中,输入目标单元格的单元格引用(单元格引用:用于表示单元格在工作表上所处位置的坐标集。例如,显示在第B列和第3行交叉处的单元格,其引用形式为“B3”。)或名称(名称:代表单元格、单元格区域、公式或常量值的单词或字符串。名称更易于理解,例如,“产品”可以引用难于理解的区域“Sales!C20:C30”。)。目标单元格必须包含公式(公式:单元格中的一系列值、单元格引用、名称或运算符的组合,可生成新的值。公式总是以等号(=)开始。)。可以单击选择单元格。3)若要使目标单元格中数值最大,请单击“最大值”。若要使目标单元格中数值最小,请单击“最小值”。若要使目标单元格中数值为确定值,请单击“值为”,再在编辑框中键入数值。4)在“可变单元格”框中,输入每个可变单元格的名称或引用,用逗号分隔不相邻的引用。可变单元格必须直接或间接与目标单元格相联系。最多可以指定200个可变单元格。若要使“规划求解”基于目标单元格自动设定可变单元格,请单击“推测”。5)在“规划求解参数”对话框的“约束”下,单击“添加”。6)在“单元格引用位置”框中,输入需要对其中数值进行约束的单元格引用(单元格引用:用于表示单元格在工作表上所处位置的坐标集。例如,显示在第B列和第3行交叉处的单元格,其引用形式为“B3”。)或单元格区域的名称(名称:代表单元格、单元格区域、公式或常量值的单词或字符串。名称更易于理解,例如,“产品”可以引用难于理解的区域“Sales!C20:C30”。)。7)单击希望在引用单元格和约束条件(约束条件:“规划求解”中设置的限制条件。可以将约束条件应用于可变单元格、目标单元格或其他与目标单元格直接或间接相关的单元格。)之间使用的关系(“=”、“=”、“=”、“Int”或“Bin”)。如果单击“Int”,则“约束值”框中会显示“整数”;如果单击“Bin”,则“约束值”框中会显示“二进制”。8)在“约束值”框中,键入数字、单元格引用或名称,或键入公式(公式:单元格中的一系列值、单元格引用、名称或运算符的组合,可生成新的值。公式总是以等号(=)开始。)。9)若要接受约束条件并要添加其他的约束条件,请单击“添加”。若要接受约束条件并返回“规划求解参数”对话框,请单击“确定”。10)注意:只能在对可变单元格的约束条件中应用“Int”和“Bin”关系。当“规划求解选项”对话框中的“采用线性模型”复选框被选中时,对约束条件的数量没有限制。对于非线性问题,每个可变单元格除了变量的范围和整数限制外,还可以有多达100个约束。11)更改或者删除约束。在“规划求解参数”对话框的“约束”下,单击要更改或删除的约束条件(约束条件:“规划求解”中设置的限制条件。可以将约束条件应用于可变单元格、目标单元格或其他与目标单元格直接或间接相关的单元格。)。单击“更改”,并进行所需的更改,或单击“删除”。12)单击“求解”,再执行下列操作之一:若要在工作表中保存求解后的数值,请在“规划求解结果”对话框中,单击“保存规划求解结果”;若要恢复原始数据,请单击“恢复为原值”。注意:按Esc可以中止求解过程,MicrosoftExcel将按最后找到的可变单元格的数值重新计算工作表。若求出解,请在“报告”框中单击一种报表类型,再单击“确定”。报表保存在工作簿中新生成的工作表上。5、“规划求解”疑难解答尚未找到满足要求的结果,“规划求解”即停止了运行。由于下列任意一个原因,“规划求解”在找到答案前,可能停止运行:中断了求解过程。在单击“求解”之前,选中了“规划求解选项”对话框中的“显示迭代结果”选项。在单步迭代过程中,或达到最长运算时间或最大迭代次数时,单击了“停止”按钮。选中了“规划求解选项”对话框中的“采用线性模型”复选框,但问题是非线性的。在“规划求解参数”对话框的“设置目标单元格”框中指定的数值不收敛地增加或减少。需要让“规划求解”运行更长的时间以求得结果。请调整“规划求解选项”对话框中的“最长运算时间”或“迭代次数”的设置。对于具有整数约束条件的问题,应该减小“规划求解选项”对话框中的“允许误差”的设置,使“规划求解”找到更好的整数解。对于非线性问题,应该减小“规划求解选项”对话框中的“收敛度”的设置,使目标单元格数值变化缓慢时,“规划求解”仍可以运行,最终找到较好的结果。应该选中“规划求解选项”对话框中的“自动按比例缩放”复选框,可能一些输入数值相差几个数量级,或输入和输出数值相差几个数量级。当“规划求解”停止运行时,在“规划求解结果”对话框中显示出完成信息。单击“保存规划求解结果”或“恢复为原值”,进行所需的更改,然后再运行一次。可变单元格与约束条件或目标单元格中的数值差别很大。当可变单元格的典型数值与约束单元格或目标单元格中的数值相差几个数量级时,请选中“规划求解选项”对话框中的“自动按比例缩放”复选框。对于非线性问题,在单击“规划求解参数”对话框中的“求解”之前,请确认可变单元格的初始数值与期望的最终数值的数量级相同。未得到预期的结果。对于非线性问题,在可变单元格中尝试不同的初始值可能会有帮助,特别是在“规划求解”结果与期望的数值差别很大时。预先将可变单元格的数值设置为预期的最优值,可以减少求解时间。对于线性模型(也就是当“规划求解选项”