lingo实现 建立选课策略多目标模型

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学模型实验—实验报告9

一、实验项目:选课策略模型建立和求解

二、实验目的和要求

a.根据题目要求建立优化模型

b.通过Lingo软件求解模型

三、实验内容

1.根据教材4.4节内容建立选课策略多目标模型。

目标一:课程数最少;目标二:学分最多,

1)课程数最少前提下,学分最多模型.即在选修6门课的条件下使得总学分尽可能的多,这样应在原规划问题中增加约束条件x1+x2+x3+x4+x5+x6+x7+x8+x9=6;

2)引入权重将两目标转化为单目标模型

一般的,将权重记为λ1,λ2,且令λ1+ λ2=1, 0≤λ1,λ2≤1,则0—1规划模型的新目标为 min Y= λ1Z-λ2W

2. 编写lingo程序求解:

1)以课程数最少为单目标的优化模型(注意xi为0-1变量)

min x1+x2+x3+x4+x5+x6+x7+x8+x9

x1+x2+x3+x4+x5>=2;

x3+x5+x6+x8+x9>=3;

x4+x6+x7+x9>=2;

2*x3-x1-x2<=0;

x4-x7<=0;

2*x5-x1-x2<=0;

x6-x7<=0;

x8-x5<=0;

2*x9-x1-x2<=0;

@BIN(X1);@BIN(X2);@BIN(X3);@BIN(X4);@BIN(X5);@BIN(X6);@BIN(X7);@BIN(X8);@BIN(X9);

运行结果如下:

Global optimal solution found.

Objective value: 6.000000

Objective bound: 6.000000

Infeasibilities: 0.000000

Extended solver steps: 0

Total solver iterations: 0

Variable Value Reduced Cost

X1 1.000000 1.000000

X2 1.000000 1.000000

X3 1.000000 1.000000

X4 0.000000 1.000000

X5 0.000000 1.000000

X6 1.000000 1.000000

X7 1.000000 1.000000

X8 0.000000 1.000000

X9 1.000000 1.000000

Row Slack or Surplus Dual Price

1 6.000000 -1.000000

2 1.000000 0.000000

3 0.000000 0.000000

4 1.000000 0.000000

5 0.000000 0.000000

6 1.000000 0.000000

7 2.000000 0.000000

8 0.000000 0.000000

9 0.000000 0.000000

10 0.000000 0.000000

2)求解以上方法建立的多目标模型,并调整权重值,观察模型结果的变化。

学分数和课程数三七开时代码如下:

min-0.8x1-0.5x2-0.5x3-0.2x4-0.5x5-0.2x6+0.1x7+0.1x8-0.2x9

x1+x2+x3+x4+x5>=2;

x3+x5+x6+x8+x9>=3;

x4+x6+x7+x9>=2;

2*x3-x1-x2<=0;

x4-x7<=0;

2*x5-x1-x2<=0;

x6-x7<=0;

x8-x5<=0;

2*x9-x1-x2<=0;

@BIN(X1);@BIN(X2);@BIN(X3);@BIN(X4);@BIN(X5);@BIN(X6);@BIN(X7);@BIN(X8);@BIN(X9);

模型求解结果如下:

Global optimal solution found.

Objective value: -2.800000

Objective bound: -2.800000

Infeasibilities: 0.000000

Extended solver steps: 0

Total solver iterations: 0

Variable Value Reduced Cost

X1 1.000000 -0.8000000

X2 1.000000 -0.5000000

X3 1.000000 -0.5000000

X4 1.000000 -0.2000000

X5 1.000000 -0.5000000

X6 1.000000 -0.2000000

X7 1.000000 0.1000000

X8 0.000000 0.1000000

X9 1.000000 -0.2000000

Row Slack or Surplus Dual Price

1 -2.800000 -1.000000

2 1.000000 0.000000

3 2.000000 0.000000

4 0.000000 0.000000

5 0.000000 0.000000

6 0.000000 0.000000

7 0.000000 0.000000

8 1.000000 0.000000

9 0.000000 0.000000

由于将两个权重记作λ1,λ2,且λ1+λ2=1,λ1,λ2均属于[0,1];通过调整权重值λ1,λ2

进行计算,可以发现当λ1<2/3时,结果与只考虑学分多的情况相同;当λ1>3/4时,结果与只考虑课程最少的情况是一样的。

相关文档
最新文档