1、某公司从事一种中药材的订购与销售业务它有一个最大可存放 500 t中药材的仓库。它于每月15 日提出订货并于下个月的1日收到该批货。已知该种中药材各月的每吨进货价和销售价如下表1所示。已知该公司年初有库存200 t年末需库存 300 t试确定该公司各个月的订购、销售及库存的量使全年收益为最大。用lingo求解写出代码 表1
首先,我们需要定义一些参数和变量。
参数:
- Max_Storage:仓库的最大存储量,单位为吨,值为500。
- Initial_Inventory:年初的库存量,单位为吨,值为200。
- Final_Inventory:年末的库存量,单位为吨,值为300。
- Purchase_Price:每吨中药材的进货价,单位为百元。
- Sale_Price:每吨中药材的销售价,单位为百元。
变量:
- Purchase[1..12]:每个月的订购量,单位为吨。
- Sale[1..12]:每个月的销售量,单位为吨。
- Inventory[1..12]:每个月的库存量,单位为吨。
目标函数: 目标是最大化全年的收益。收益等于销售额减去进货额。
约束条件:
- 仓库存储量不超过最大存储量:Inventory[i] <= Max_Storage,其中i为月份。
- 年初的库存量等于初始库存量:Inventory[1] = Initial_Inventory。
- 年末的库存量等于最终库存量:Inventory[12] = Final_Inventory。
- 每个月的库存量等于上个月的库存量加上订购量减去销售量:Inventory[i] = Inventory[i-1] + Purchase[i] - Sale[i],其中i为月份。
现在,我们可以使用LINGO编写代码来求解问题。
sets:
MONTHS /1..12/;
parameters:
Max_Storage = 500,
Initial_Inventory = 200,
Final_Inventory = 300;
table Purchase_Price(MONTHS) '每吨中药材的进货价':
1 2 3 4 5 6 7 8 9 10 11 12
100 110 120 130 140 150 160 170 180 190 200 210;
table Sale_Price(MONTHS) '每吨中药材的销售价':
1 2 3 4 5 6 7 8 9 10 11 12
150 160 170 180 190 200 210 220 230 240 250 260;
variables:
Purchase(MONTHS) '每个月的订购量' >= 0,
Sale(MONTHS) '每个月的销售量' >= 0,
Inventory(MONTHS) '每个月的库存量';
equations:
Max_Storage_Constraint(MONTHS) '仓库存储量不超过最大存储量',
Initial_Inventory_Constraint '年初的库存量等于初始库存量',
Final_Inventory_Constraint '年末的库存量等于最终库存量',
Inventory_Constraint(MONTHS) '每个月的库存量等于上个月的库存量加上订购量减去销售量';
Max_Storage_Constraint(MONTHS).. Inventory(MONTHS) =L= Max_Storage;
Initial_Inventory_Constraint.. Inventory(1) =E= Initial_Inventory;
Final_Inventory_Constraint.. Inventory(12) =E= Final_Inventory;
Inventory_Constraint(MONTHS).. Inventory(MONTHS) =E= Inventory(MONTHS-1) + Purchase(MONTHS) - Sale(MONTHS);
model:
maximize Profit '最大化全年收益':
Profit = sum(MONTHS, Sale_Price(MONTHS) * Sale(MONTHS) - Purchase_Price(MONTHS) * Purchase(MONTHS));
solve;
display Purchase, Sale, Inventory, Profit;
这段代码定义了参数、变量、目标函数和约束条件,并使用maximize关键字来指定最大化全年收益。最后使用solve关键字求解模型,并使用display关键字显示结果
原文地址: https://www.cveoy.top/t/topic/h2TC 著作权归作者所有。请勿转载和采集!