- 运筹学基础(第二版)
- 王晓丽 闫洪林
- 954字
- 2021-03-31 14:38:52
任务五 整数规划的软件求解
用WinQSB求解整数规划,主要使用到的是该软件的“Linear and Integer Programming”(线性和整数规划)模块。
5.1 整数规划
接下来,用WinQSB的Linear and Integer Programming模块求解一下例3-1-1的问题。
(1)首先,点击WinQSB中的“Linear and Integer Programming”,进入初始界面。点击“新建”按钮(即快捷栏中印有网格状的按钮)或“files”里的“New problem”,屏幕出现名为“LP-ILP Problem Specification”(问题描述)的工作界面。填入Problem Title(问题名称):例3-1-1;Number of Variables(变量个数):2;Number of Constrains(约束条件个数):2,这里的约束条件仍然不包括非负约束和整数约束,所以原模型的约束条件为2个;选择Objective Criterion(目标函数的类型),因为我们题目是求最大值,所以在这里选择Maximization;选择Data Entry Format(数据输入格式),我们可以选择Spreadsheet Matrix Form,即表格输入;最后选择Default Variable Type(系统默认的变量类型),变量类型与线性规划不同,在这里,我们选择Nonnegative integer,具体参数见图3-5-1。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc351.jpg?sign=1739148222-vPvZ9LT57G0Y9nMT9A0i1bBK1byXbxrd-0-86ef84ab2d1f1f17a7bc590a9e060675)
图3-5-1
(2)在弹出的窗口中输入数据,见图3-5-2。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc352.jpg?sign=1739148222-NOUktqGdRnH0hFkRSEt8MRN7TFY6KSau-0-ae3b8feaa0c6766078800c234931cb61)
图3-5-2
(3)求解。单击“Solve and Analyze—Solve the problem”,弹出对话框如图3-5-3所示,点击“确定”。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc353.jpg?sign=1739148222-zkOFSO32ZjT1BUOub0EAKhsG1NLWoccM-0-49bc5c28792e25e93325d01b6b8ffdca)
图3-5-3
这时,就可以得到计算结果,如图3-5-4所示。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc354.jpg?sign=1739148222-l4iby7FnzP1Ss3JmVGWzVz6p79e2Z3ta-0-6fca08bd2948cc22e80aad997cbf1958)
图3-5-4
所以最优解为(0,5),最优值maxz=40。
5.2 0—1规划
下面,我们用WinQSB求解例3-3-2的0—1规划。
(1)首先,点击WinQSB中的“Linear and Integer Programming”,进入初始界面。点击“新建”按钮或“files”里的“New problem”,填入Problem Title、Number of Variables、Number of Constrains,选择Objective Criterion,选择数据输入格式Data Entry Format中的Spreadsheet Matrix Form,最后选择Default Variable Type(系统默认的变量类型),在这里,我们选择Binary[0,1],如图3-5-5所示。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc355.jpg?sign=1739148222-RV3z7LjCmbutUxELkdIebPh33eR25nCD-0-9c38f7aedd8b3a24cea054bb0df36ee8)
图3-5-5
(2)在弹出的窗口中输入数据,如图3-5-6所示。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc356.jpg?sign=1739148222-F116cl4qxWL7ZHLC6S6ZoIJrwqnXLmpm-0-0378906bbc27f7eeac5b7e1185cbe229)
图3-5-6
(3)求解。单击“Solve and Analyze—Solve the problem”,在弹出的对话框点击确定,得到分析结果,如图3-5-7所示。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc357.jpg?sign=1739148222-zSoYmk3VHBQ0sXXTMvlVTS3JXdYA32uy-0-8f58bed84b056a8b6eac1141a6602201)
图3-5-7
5.3 指派问题
下面,我们用WinQSB求解例3-4-1的指派问题。指派问题和整数规划、0—1规划的求解不同,它的求解是使用“Network Modeling”(网络建模)模块求解的。
(1)首先,点击WinQSB中的“Network Modeling”,进入初始界面。点击“新建”按钮或“files”里的“New problem”,在弹出的工作界面中选择Assignment Problem(分配问题),填入Problem Title、Number of Objects(人数)、Number of Assignments(任务数),选择Objective Criterion(目标函数的类型),选择数据输入格式Data Entry Format中的Spreadsheet Matrix Form,单击“OK”,如图3-5-8所示。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc358.jpg?sign=1739148222-9qWcvdug0VMnWXM5qChdqZo2S1PcvUfK-0-1bec7856ec8d34ba5dea4ebb2e521694)
图3-5-8
在这里,人数和任务数可以不相等。对于最大化指派问题,目标函数的类型要选择Maximization。
(2)在弹出的窗口中输入数据,如图3-5-9所示。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc359.jpg?sign=1739148222-VfCI40eEf1tHaPDVKL6TZP6W6oJs2tcQ-0-7ba8dd5f4c32cec428fc4e6e7da9a3ad)
图3-5-9
(3)求解。单击“Solve and Analyze—Solve the problem”,得到分析结果,如图3-5-10所示。
![](https://epubservercos.yuewen.com/493C8B/17770366907633006/epubprivate/OEBPS/Images/image-jc3510.jpg?sign=1739148222-DaAUZa90Vco3fKK61eQNNrj2VK0mbxsR-0-07e6f9da630c33693c4c46c3fd3bd6fe)
图3-5-10