数学建模——线性规划篇(lingo软件实现)

(线性规划)习题
1.某工厂利用两种原料甲、乙生产A1,A2,A3三种产品. 每月可供应的原料数量(单位:t)、每万件产品所需各种原料的数量及每万件产品的价格如下表所示:

原料

每万件产品所需原料/t

每月原料

供应量/t

A1

A2

A3

4

3

1

180

2

6

3

200

价格/万元

12

5

4

试制定每月最优生产计划,使得总收益最大;

代码:

model:

max=12*x1+5*x2+4*x3;

4*x1+3*x2+x3<180;

2*x1+6*x2+3*x3<200;

end

结果分析:

有结果报告可知当A1,A2,A3分别生产34万件,0万件,44万件时受益最大为584.00万元。

对求得的最优生产计划进行灵敏度分析.

由灵敏度分析可知当A1的价格在[2.78,16.00]范围内A2的价格在[5.00,10.80]范围内A3的价格在[3.00,16.00]范围内时最优解不变。甲原料的供应量在[66.78,400.00]时,乙原料在[90.00,540.00]时最优解不变。

2.某医院负责人每日至少需要下列数量的护士:

     班次

时间

最少护士数

      1

6时—10时

60

      2

10时—14时

70

      3

14时—18时

60

      4

18时—22时

50

      5

22时—02时

20

      6

02时—06时

30

每班的护士在职班开始时向病房报道,连续工作8个小时. 医院领导为满足每班所需要的护士数,最少需雇用多少护士?

代码:

min=x1+x2+x3+x4+x5+x6;

x1>=60;

x1+x2>=70;

x2+x3>=60;

x3+x4>=50;

x4+x5>=20;

x5+x6>=30;

结果分析:

有最优解可知至少要雇佣150个护士。

3.某工厂生产A1,A2两种型号的产品都必须经过零件装配和检验两道工序,如果每天可用于零件配件的工时只有100h,可用于检验的工时只有120h,各型号产品每件需占用各工序时数和可获得的利润如下表所示:

产品

可用工时

工序

A1

A2

A3

装配

2

3

4

100

检验

4

2

2

120

利润/元

6

4

5

试写出此问题的数学模型,并求出最优生产方案.

代码:

model:

max=6*x1+4*x2;

2*x1+3*x2<100;

4*x1+2*x2<120;

End

结果分析:

最优生产方案为A1,A2,产品各生产20件,20件,获益最大。

对产品A1的利润进行灵敏度分析.

当A1产品的利润价格控制在[2.67,8]范围内时最优解不变。

如果工厂试制了A3型产品,每件A3产品需装配工时4h,检验工时2h,可 获利5元,那么该产品是否应投入生产?

代码:

model:

max=6*x1+4*x2+5*x3;

2*x1+3*x2+4*x3<100;

4*x1+2*x2+2*x3<120;

End

结果分析:

当A3投入生产时最优解的目标值为206>200,所以应该投入生产。

4.有两个厂A、B,每月进煤分别不少于60t、100t,它们担负供应三个居民区用煤任务,这三个居民区每月需要用煤分别为45t、75t、40t. A厂离这三个居民区分别为10km、5km、6km,B厂离这三个居民区分别为4km、8km、15km,问这两煤矿厂如何分配供煤,才能使总运输量最小?

解:设A厂向三地分别供煤x1,x2,x3;B厂向三地送煤y1,y2,y3.

代码:

model:

min=10*x1+5*x2+6*x3+4*y1+8*y2+15*y3;

x1+x2+x3>60;

y1+y2+y3>100;

x1+y1=45;

x2+y2=75;

x3+y3=40;

End

结果分析:

即A厂分别送0t,20t,40t,,B厂分别送45t,55t,0t这样运输量最小。

补充:

Lingo是一种专业的线性和非线性优化软件,常用于解决复杂的优化问题。以下是一般使用Lingo软件的基本步骤:

安装Lingo软件:请按照官方提供的安装指南,下载并安装Lingo软件到您的计算机上。
启动Lingo软件:双击打开Lingo应用程序,在界面中选择或创建一个新的项目。
  1. 在Lingo软件的主界面上,您可以看到一系列菜单和工具栏选项。

  2. 点击菜单栏中的 "File"(文件)选项,然后选择 "New"(新建)。

  3. 在弹出的对话框中,您可以选择创建一个空项目或者打开一个现有项目。如果是首次使用Lingo,选择 "Empty Project"(空项目)。

  4. 接下来,您需要为项目指定一个名称。输入相应的名称,并确定保存位置。

  5. 完成上述步骤后,Lingo将为您创建一个新的项目,并在界面中显示项目名称和相关信息。

通过以上步骤,您已经成功创建了一个新的Lingo项目,接下来就可以开始定义变量、设定目标函数和添加约束条件,进行优化和分析了。请注意,具体操作可能会根据不同版本的Lingo软件略有不同,但大体思路应该是相似的。

定义变量:在Lingo中,您需要定义您要优化的变量。根据您的问题,可以是整数型、实数型、二元型等。
  1. 在Lingo的项目界面上,您可以看到一个"Variables"(变量)选项卡或类似的选项。

  2. 点击"Variables"选项卡,进入变量定义界面。

  3. 在变量定义界面,您可以看到现有变量列表(如果有的话)以及添加新变量的选项。

  4. 点击"Add"、"New Variable"或类似的按钮,以添加新的变量。

  5. 在弹出的对话框中,您需要为变量指定名称、选择变量类型和范围等属性。

    • 如果您的变量是整数型,您可以选择"Integer"。
    • 如果您的变量是实数型,您可以选择"Real"。
    • 如果您的变量是二元型,即只能取0或1的变量,您可以选择"Binary"。

    您还可以指定变量的上下限范围,以便约束变量的取值范围。

  6. 完成上述设置后,点击"OK"或"Add"按钮确认添加变量。

通过以上步骤,您已成功定义了一个变量。您可以根据需要添加更多变量并按照相同的方式进行设置。定义完所有变量后,您可以继续设定目标函数和添加约束条件,以完成问题的建模和优化。请注意,具体操作可能会根据不同版本的Lingo软件略有不同。

设定目标函数:制定您想要优化的目标函数。这是通过将变量和系数组合成一个数学表达式来实现的。
  1. 在Lingo的项目界面上,您可以看到一个"Objective"(目标函数)选项卡或类似的选项。

  2. 点击"Objective"选项卡,进入目标函数定义界面。

  3. 在目标函数定义界面,您可以看到现有的目标函数表达式(如果有的话)以及添加新目标函数的选项。

  4. 点击"Add"、"New Objective"或类似的按钮,以添加新的目标函数表达式。

  5. 在弹出的对话框中,您可以输入目标函数的数学表达式。您可以使用Lingo提供的数学运算符、函数和变量来构建目标函数。

  6. 根据您的优化问题,选择最大化或最小化目标函数。您可以在对话框中选择适当的选项以指示您的优化目标。

  7. 完成上述设置后,点击"OK"或"Add"按钮确认添加目标函数。

通过以上步骤,您已成功设定了一个目标函数。您可以根据需要添加多个目标函数,并按照相同的方式进行设置。添加完所有目标函数后,您可以继续添加约束条件和运行优化过程,以找到最佳的优化解。

添加约束条件:如果您的优化问题有限制条件,例如线性等式或不等式约束,您可以使用Lingo提供的约束语法将其添加进去。
  1. 在Lingo的项目界面上,您可以看到一个"Constraints"(约束条件)选项卡或类似的选项。

  2. 点击"Constraints"选项卡,进入约束条件定义界面。

  3. 在约束条件定义界面,您可以看到现有约束条件列表(如果有的话)以及添加新约束条件的选项。

  4. 点击"Add"、"New Constraint"或类似的按钮,以添加新的约束条件。

  5. 在弹出的对话框中,您可以输入约束条件的数学表达式。您可以使用Lingo提供的数学运算符、函数和变量来构建约束条件。

  6. 根据您的优化问题,选择约束条件的类型。例如,等式约束、不等式约束和范围约束等。

  7. 完成上述设置后,点击"OK"或"Add"按钮确认添加约束条件。

  8. 添加完所有约束条件后,您可以继续设定目标函数。请参考之前的回答中的步骤,定义您想要优化的目标函数。

通过以上步骤,您已成功设定了约束条件。然后,您可以继续设定目标函数并运行优化过程,以找到满足约束条件的最佳解。请注意,具体操作可能会根据不同版本的Lingo软件略有不同。

运行优化:设置好变量、目标函数和约束条件后,您可以运行优化过程,让Lingo寻找最优解。
  1. 在Lingo的项目界面上,找到"Objective"(目标函数)选项卡或类似的选项。

  2. 点击"Objective"选项卡,进入目标函数定义界面。

  3. 在目标函数定义界面,您可以看到现有的目标函数表达式(如果有的话),以及添加新目标函数的选项。

  4. 点击"Add"、"New Objective"或类似的按钮,以添加新的目标函数表达式。

  5. 在弹出的对话框中,您可以输入目标函数的数学表达式。您可以使用Lingo提供的数学运算符、函数和变量来构建目标函数。

  6. 根据您的优化问题,选择最大化或最小化目标函数。您可以在对话框中选择适当的选项来指示您的优化目标。

  7. 完成上述设置后,点击"OK"或"Add"按钮确认添加目标函数。

通过以上步骤,您已成功设定了一个目标函数。您可以根据需要添加多个目标函数,并按照相同的方式进行设置。添加完所有目标函数后,您可以继续运行优化过程,以找到满足约束条件并最优化目标函数的解。

分析结果:当优化过程完成后,您可以查看Lingo给出的最优解以及相应的目标函数值。您还可以分析其他相关输出,如灵敏度分析和报告。
  1. 在目标函数定义界面,根据您的优化问题,输入目标函数的数学表达式。

  2. 根据您的优化目标,选择最大化或最小化目标函数。在目标函数定义界面中,通常会有一个下拉菜单或选项来指定优化方向。

  3. 确保目标函数的表达式和优化方向设置正确无误。

  4. 点击"OK"或"Add"按钮,以确认添加目标函数。

通过以上操作,您已成功定义了目标函数,并将其纳入优化问题中。您可以继续设定其他约束条件和目标函数(如果有),然后运行优化过程以找到满足约束条件并最优化目标函数的解。请注意,具体操作可能会根据不同版本的Lingo软件略有不同。

 

  • 9
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值