MATLAB小试牛刀系列(2)
问题描述
捷运公司在下一年度 1 - 4 月的 4 个月内拟租用仓库堆放物资。已知各月所需仓库面积列于表 1.1。仓库租借费用随合同期而定,期限越长,折扣越大,具体数字见表 1.1。租借合同每月初都可办理,每份合同具体规定租用面积和期限。因此,该公司可根据需要,在任何一个月初办理租借合同。每次办理时可签一份合同,也可签若干份租用面积和租借期限不同的合同,试确定该公司签订租借合同的最优决策,目的是使所付租借费用最小。
表 1.1 所需仓库面积和租借仓库费用
月份 | 1 | 2 | 3 | 4 |
所需仓库面积 / 100m² | 15 | 10 | 20 | 12 |
合同租借期限 | 一个月 | 两个月 | 三个月 | 四个月 |
金额 | 2800 | 4500 | 6000 | 7300 |
模型建立
设变量表示捷运公司在第
个月初签订的租借期为
个月的仓库面积 (单位为
)。因 5 月起该公司不需要租借仓库,故
均为零。该公司希望总的租借费用最小,故有如下数学模型:
这个模型中的约束条件分别表示当月初签订的租借合同的面积加上该月前签订的未到期的合同的租借面积总和,应不少于该月所需的仓库面积。
开始手搓
C = [2800 * ones(4, 1), [4500 * ones(3, 1); 0], [6000; 6000; 0; 0], [7300; 0; 0; 0]];
intcon = 1: 16;
A = -[1, 1, 1, 1, zeros(1, 12);0, ones(1, 6), zeros(1, 9);0, 0, 1, 1, 0, 1, 1, 0, 1, 1, zeros(1, 6);zeros(1, 3), 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, zeros(1, 3)];
b = -[15; 10; 20; 12];
lb = zeros(1, 16);
[x, y] = intlinprog(C, intcon, A, b, [], [], lb, []);
求解情况
Over!
题目来源:《数学建模算法与应用》——司守奎