实验一
一、实验目的
1) 了解Excel的基本功能,熟悉界面,掌握基本的操作命令;
2) 熟悉Matlab编程环境,了解Matlab的基本功能,掌握基本的编程语言; 3) 用Excel和Matlab求解话务排班线性规划问题。
二、实验器材
1) PC机:20台。
2) Microsoft Excel软件(具备规划求解工具模块):20用户。 3) Matlab软件(具备优化工具箱):20用户。
三、实验原理:
话务排班属于线性规划问题,通过对问题建立数学模型,根据Excel自身特
点把数学模型在电子表格中进行清晰的描述,再利用规划求解工具设定相应的约束条件,最终完成对问题的寻优过程,具体可参见1.2;在Matlab中,根据Matlab提供的线性规划求解函数,将数学模型转换成线性规划求解函数可传递的数值参数,最终实现对问题的寻优求解过程,具体可参见2中linprog函数描述和示例。
四、实验内容和步骤:
某寻呼公司雇佣了多名话务员工作,他们每天工作3节,每节3小时,每节开始时间为午夜、凌晨3点钟、凌晨6点钟,上午9点、中午12点,下午3点、6点、9点,为方便话务员上下班,管理层安排每位话务员每天连续工作3节,根据调查,对于不同的时间,由于业务量不同,需要的话务员的人数也不相同,公司付的薪水也不相同,有关数据如下表所示。
问:如何安排话务员才能保证服务人数,又使总成本最低?
第一步:建立线性规划模型
设x1为0点开始工作的人数,x2是3点开始工作的人数,x3是6点开始工作的人数,x4??,x8是21点开始工作的人数。Z为所支付的总薪水。算出每个时间段的最低需求人数,如x1+x2+x3为6-9点工作的人数。由题意列出约束方程为:
x1 + x7+x8 ≥8 x1+x2+ x8≥6 x1+x2+x3 ≥15
x2+x3+x4 ≥20 x3+x4+x5 ≥25 x4+x5+x6 ≥23 x5+x6+x7 ≥18
x6+x7+x8 ≥10 xi≥0(i=1,.....8) 目标函数minz=84x1+80x2+70x3+62x4+62x5+66x6+72x7+80x8
Excel求解过程描述
打开Excel,选择“Excel选项”通过“工具”菜单的“加载宏”选项打开“加载宏”对话框来添加“规划求解”。将约束条件的系数矩阵输入Excel中,如下图所示,然后将目标函数的系数输入约束矩阵下方,最下方为最优解的值,输入“0”或不输入。系数矩阵的右端一列为合计栏,点击合计栏中单元格并在其中
输入“=sumproduct(”,用鼠标左键拖动合计栏所在行的系数,选定后输入“,”,然后拖拉选定最下方的空白行,输入“)”,输入“Enter”。用此方法依次处理整个系数矩阵每一行和目标函数行,合计栏右端输入约束条件右端项,在合计栏和约束条件右端项之间可以输入“≧”符号,也可以不输入。
上述步骤完成后,在菜单栏点击“数据”菜单,选择最右端“规划求解”选项,弹出“规划求解参数”对话框,目标单元格选择目标函数系数所在行和合计栏交叉处的单元格,选择求最小值,可变单元格选择解所在行。点击“添加约束条件”按钮,单元格引用位置选择合计那一列,约束关系选择“≧”,约束值选择右端项系数所在列,点击确定。在“选项”中勾选“采用线性模型”和“假定非负”,如果是用EXCEL2010操作,步骤与基本相同,个别界面会有些区别。
极限值报告:
敏感性报告:

