某农场有3万亩农田,欲种植玉米、大豆和小麦三种农作物.各种作物每亩需施化肥分别为 吨、吨、 吨.预计秋后玉米每亩可收获500千克,售价为 元/千克,
大豆每亩可收获200千克,售价为 元/千克,小麦每亩可收获350 千克,售价为 元
/千克.农场年初规划时考虑如下几个方面:
第一目标:年终收益不低于350万元;
第二目标:总产量不低于万吨;
第三目标:玉米产量不超过万吨,大豆产量不少于万吨,小麦产量以 万吨为宜,同时根据三种农作物的售价分配权重;
第四目标:农场现能提供5000 吨化肥;若不够,可在市场高价购买,但希望高价采购量愈少愈好.
模型假设与建立
模型假设:
1、假设农作物的收成不会受天灾的影响
2、假设农作物不受市场影响,价格既定
用分别表示用于种植玉米、大豆、小麦的农田(单位:亩)
整理数据列表如下所示:
物种 | 玉米 | 大豆 | 小麦 |
亩产量(千克) | 500 | 200 | 350 |
售价(元/千克) | |||
售价(元/亩) | 100 | 240 | 245 |
施肥量(亩/吨) | |||
变量设置(亩) |
模型建立
约束条件
(1)刚性约束
(2)柔性约束
第一目标:年终收益不低于350万元;
第二目标:总产量不低于万吨;
第三目标:玉米产量不超过万吨,大豆产量不少于万吨,小麦产量以 万吨为宜,
第四目标:农场现能提供5000 吨化肥;若不够,可在市场高价购买,但希望高价采购量愈少愈好.
模型求解:(见附件)
种植面积:
玉米:亩
土豆:亩
小麦:亩
能够得到一个满足条件的种植计划
附件:
model:
sets:
L/1..4/:p,z,goal;
V/1..3/:x;
HN/1..1/:b;
SN/1..6/:g,dp,dm;
HC(HN,V):a;
SC(SN,V):c;
Obj(L,SN):wp,wm;
endsets
data:
p=;
goal=?0;
b=30000;
g=3500000 6000000 2000000 5000000 5000000;
a=1,1,1;
c=120 240 245
500 200 350
500 0 0
0 200 0
0 0 350
120 200 150;
wp=0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0
0 0 0 0 0 1;
wm=1 0 0 0 0 0
0 1 0 0 0 0
0 0 0 0
0 0 0 0 0 0;
enddata
min=@sum(L(i):p(i)*z(i));
@for(L(i):z(i)=@sum(SN(j):wp(i,j)*dp(j)+wm(i,j)*dm(j)));
@for(HN(i):@sum(V(j):a(i,j)*x(j))<=b(i));
@for(SN(i):@sum(V(j):c(i,j)*x(j))+dm(i)-dp(i)=g(i));
@for(L(i)|i#lt#@size(L):@bnd(0,z(i),goal(i)));
No feasible solution found.
Total solver iterations: 10
Variable Value Reduced Cost
P( 1)
P( 2)
P( 3)
P( 4)
Z( 1)
Z( 2) +09
Z( 3) 2417143. -3125000.
Z( 4)
GOAL( 1)
GOAL( 2)
GOAL( 3) 2417143.
GOAL( 4)
X( 1)
X( 2)
X( 3)
B( 1)
G( 1) 3500000.
G( 2) +08
G( 3) 6000000.
G( 4) 2000000.
G( 5) 5000000.
G( 6) 5000000.
DP( 1) 3061543.
DP( 2) -2582429. +09
DP( 3) +08
DP( 4) +09
DP( 5) +09
DP( 6)
DM( 1)
DM( 2)
DM( 3) 3042143.
DM( 4)
DM( 5) +08
DM( 6)
A( 1, 1)
A( 1, 2)
A( 1, 3)
C( 1, 1)
C( 1, 2)
C( 1, 3)
C( 2, 1)
C( 2, 2)
C( 2, 3)
C( 3, 1)
C( 3, 2)
C( 3, 3)
C( 4, 1)
C( 4, 2)
C( 4, 3)
C( 5, 1)
C( 5, 2)
C( 5, 3)
C( 6, 1)
C( 6, 2)
C( 6, 3)
WP( 1, 1)
WP( 1, 2)
WP( 1, 3)
WP( 1, 4)
WP( 1, 5)
WP( 1, 6)
WP( 2, 1)
WP( 2, 2)
WP( 2, 3)
WP( 2, 4)
WP( 2, 5)
WP( 2, 6)
WP( 3, 1)
WP( 3, 2)
WP( 3, 3)
WP( 3, 4)
WP( 3, 5)
WP( 3, 6)
WP( 4, 1)
WP( 4, 2)
WP( 4, 3)
WP( 4, 4)
WP( 4, 5)
WP( 4, 6)
WM( 1, 1)
WM( 1, 2)
WM( 1, 3)
WM( 1, 4)
WM( 1, 5)
WM( 1, 6)
WM( 2, 1)
WM( 2, 2)
WM( 2, 3)
WM( 2, 4)
WM( 2, 5)
WM( 2, 6)
WM( 3, 1)
WM( 3, 2)
WM( 3, 3)
WM( 3, 4)
WM( 3, 5)
WM( 3, 6)
WM( 4, 1)
WM( 4, 2)
WM( 4, 3)
WM( 4, 4)
WM( 4, 5)
WM( 4, 6)
Row Slack or Surplus Dual Price
1
2
3 +09
4 -3125000.
5
6 +11
7
8 +09
9
10 +09
11 +08
12