数建---优化建模

优化建模

一、最优化模型

例题1:

  • 小明同学,烧一壶水要8分钟,灌开水要1分钟,取牛奶 和报纸要5分钟,整理书包要6分钟,为了尽快做完这些事,怎样 安排才能使时间最少?最少需要几分钟?
  • 如果没有优化处理:5 + 6 + 8 + 1 = 20 min
  • 优化处理(如果烧开必须马上灌水): 8 + 1 + 5 = 14 分钟
  • 优化处理(如果烧开不需马上灌水): 5 + 6 + 1 = 12 min

例题2:

  • 有一天晚上,有四个人需要通过架在山谷间的危桥,任 意时刻最多只能有两个人在桥上,过桥需要一盏闪光灯,这些人 只有一盏闪光灯。如果单独过桥他们分别需要1,2,5,10分钟, 如果两人同时过桥则所需时间是较慢者所需的时间。18分钟后, 沿山谷滚滚而下的山洪将把这座桥冲毁。这四个人能及时过桥吗?
  • 一般优化处理:2 + 1 + 5 + 1 + 10 = 19 min
  • 最优化处理:2 + 1 + 10 + 2 + 2 = 17 min ( 即 1,2 先去,1回,3,4 去,2 回,1,2 在去)

最优化方法: 是值在一系列客观或主观限制条件下,寻求合理分配有限资源使所关注的某个或多个指标达到最大(或者最小)的数学理论和方法,是 运筹学 里一个十分重要的分支。

最优化模型的一般形式:

在这里插入图片描述

  • 三个要素:
    • 决策变量 decision bariable 关键
    • 目标函数 objective function 求最优解
    • 约束条件 constraints
  • 在这里插入图片描述

最优化模型的分类:

  • 按约束
    • 无约束优化 (微积分中的求导问题)
    • 约束优化
  • 按变量
    • 连续优化
    • 组合优化
  • 按求解
    • 目标规划
    • 动态规划
    • 多层规划
    • 网络优化……
  • 按参数
    • 确定性规划
    • 随机规划
  • 按目标
    • 单目标规划
    • 多目标规划
  • 图示:
    在这里插入图片描述

最优化模型的求解:
在这里插入图片描述

无需搜索最优解的问题可以使用 LINGO 软件

需要搜索最优解的问题可以使用 MATLAS 软件(不方便建立最优化模型的问题)

二、运输问题

模型:

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

-在这里插入图片描述

-在这里插入图片描述

例题1:
在这里插入图片描述

求解:

  • 程序(LINGO)

    model:
    title 运输问题;
    stes:
    s1/1..3/a; !定义产地;
    s2/1..4/:b;!定义销地;
    ss(s1,s2):x,c; !定义运量和单价;
    endsets
    data:
    c = 
    3 11 3 10
    1 9 2 8
    7 4 10 5 ! 单价
    a = 7 4 9; !产地限量
    b = 3 6 5 6; ! 销地需求量
    enddata
    min = @sum(ss:c*x);
    !产地上限的约束
    @for(s1(i):
    @sum(s2(j):x(i,j)) < a(i)
    );
    !销地下限的约束
    @for(s2(j)
    @sum(s1(i):x(i,j)) > b(j)
    );
    end
    
  • 结果:在这里插入图片描述

转运问题:
在这里插入图片描述
在这里插入图片描述

求解:

  • 由于问题中所有产地、中间转运站、销地都可以看作产地, 又可看作销地。因此把整个问题当作有11个产地和11个销地的扩大 的运输问题。
  • 所有中间转运站的产量等于销量。由于运费最少时不可能出现 一批物资来回倒运的现象,所以每个转运站的转运数不超过20吨。 可以规定T1,T2,T3,T4的产量和销量均为20吨。
  • 扩大的运输问题中原来的产地与销地因为也有转运站的作用, 所以原来产量与销量的数字上加20吨,即三个厂每天糖果产量改成 27,24,29吨,销量均为20吨;四个销售点的每天销量改为23, 26,25,26吨
  • 在这里插入图片描述

例题3:

在这里插入图片描述

求解:

在这里插入图片描述

三、下料问题

下料问题: 生产中通过切割、剪裁、冲压等手段,将原材料加工成所需大小按照工艺要求,确定下料方案,使所用材料最省,或利润更大。

例一:
在这里插入图片描述

求解:

在这里插入图片描述
在这里插入图片描述

一般下料问题的最优解法:

  • 决策变量 𝑥𝑖~ 按第i 种模式切割的原料钢管根数 (𝑖 = 1,2, ⋯ , 7)
  • 目标函数两种标准:
    • 1.原料钢管剩余总量最小 𝑚𝑖𝑛 𝑍1 = 3𝑥1 +𝑥2 +3𝑥3 + 𝑥4 + 𝑥5 +𝑥6 +3𝑥7
    • 2.所有原料钢管总根数最少 𝑚𝑖𝑛 𝑍2 = 𝑥1 +𝑥2 +𝑥3 + 𝑥4 + 𝑥5 +𝑥6 +𝑥7
      在这里插入图片描述
# LINGO 程序
model:
Title 钢管下料;
Min = 3*x1+x2+3*x3+3*x4+x5+x6+3*x7;
4*x1+3*x2+2*x3+x4+x5>50;
x2+2*x4+x5+3*x6 > 20;
x3+x5+2*x7 > 15;
@gin(x1);
@gin(x2);
@gin(x3);
@gin(x4);
@gin(x5);
@gin(x6);
@gin(x7);
end

例二:
在这里插入图片描述

求解:

  • 现有4种需求:4米50根,5米10根,6米20根,8 米15根,由搜索算法确定有16种合理切割模式。
  • 决策变量: xi ~按第i 种模式切割的原料钢管根数(i=1,2,3) r1i , r2i , r3i , r4i ~ 第i 种切割模式下,每根原料钢管 生产4米、5米、6米和8米长的钢管的数量
  • 目标函数(总根数): 𝒎𝒊𝒏 𝒙𝟏 + 𝒙𝟐 + 𝒙𝟑
  • 约束条件:
    • 满足需求:
      • 𝒓𝟏𝟏 𝒙𝟏 + 𝒓𝟏𝟐 𝒙𝟐 + 𝒓𝟏𝟑 𝒙𝟑 ≥ 𝟓𝟎
      • 𝒓𝟐𝟏 𝒙𝟏 + 𝒓𝟐𝟐 𝒙𝟐 + 𝒓𝟐𝟑 𝒙𝟑 ≥ 𝟏𝟎
      • 𝒓𝟑𝟏 𝒙𝟏 + 𝒓𝟑𝟐 𝒙𝟐 + 𝒓𝟑𝟑 𝒙𝟑 ≥ 𝟐𝟎
      • 𝒓𝟒𝟏 𝒙𝟏 + 𝒓𝟒𝟐 𝒙𝟐 + 𝒓𝟒𝟑 𝒙𝟑 ≥ 𝟏𝟓
    • 模式合理:
      • 𝟏𝟔 ≤ 𝟒 𝒓𝟏𝟏 + 𝟓 𝒓𝟐𝟏 + 𝟔 𝒓𝟑𝟏 + 𝟖 𝒓𝟒𝟏 ≤ 𝟏𝟗
      • 𝟏𝟔 ≤ 𝟒 𝒓𝟏𝟐 + 𝟓 𝒓𝟐𝟐 + 𝟔 𝒓𝟑𝟐 + 𝟖 𝒓𝟒𝟐 ≤ 𝟏𝟗
      • 𝟏𝟔 ≤ 𝟒 𝒓𝟏𝟑 + 𝟓 𝒓𝟐𝟑 + 𝟔 𝒓𝟑𝟑 + 𝟖 𝒓𝟒𝟑 ≤ 𝟏𝟗

例三:

  • 题目:单一原材料的长度为 3000 mm, 需要完成一项有53种不 同长度零件的下料任务(下料方式一千万种). 具体数据见表一,在每个切割点处由 于锯缝所产生的损耗为5 mm. 据估计,该企业每天最大下料能 力是100块 ,要求在4天内完成的零件标号为: 为:5,7,9,12,15,18,20,25, 28,36,48; 要求不迟于6天完成的零件 标为:4,11,24,29,32,38,40,46,5
  • 在这里插入图片描述

求解:

  • 法1: 先下料最长的零件,直至下完,再下料次长的零件,尽量利用余料。。。。
  • 法2: 从零件的所有下料方式中挑选1种下料,完成部分零件的下料任务,再从剩余零件的所有下料方式中挑选一种下料。。。
  • 法3: 将零件分成n 组,每组分别搜索所有的下料方式,利用线性规划模型求最优解,可改变组数,以及每组的零件种类,得到多种情况下的最优解,在综合取最优。
  • 法4: 以上方法组合使用。

四、指派问题

**例题:**有一份中文说明书,需译成英、日、德、俄 四种文字。分别记作E、J、G、R。现有甲、乙、丙、丁四 人。他们将中文说明书翻译成不同语种的说明书所需时间 如表所示。问应指派何人去完成何工作,使所需总时间最 少?
在这里插入图片描述

求解:

法一: 矩阵覆盖法
在这里插入图片描述

  • step 1: 求等价分配矩阵(每行每列减最小元素)
  • step 2 : 求独立零元,画上框。(非 同行同列的零)
  • step 3: 最优判别:达到n个独立零元。停,
  • step 4: 求覆盖线:
    • 1 )封锁没有画框零元的,封锁就打√
    • 2 )在封锁行中未画框零元的列 也封锁
    • 3)在封锁列中画框零元的行也封锁
    • 4)未封锁行与封锁列画上覆盖线
  • step 5: 调节分配矩阵:在未覆盖元中选取最小元 k, 未覆盖行减 k ,覆盖列加 k 。转 step 2
    在这里插入图片描述
    在这里插入图片描述

例题:选拔队员 某班准备从5名游泳员中选择4人组成接 力队,参加学校的4 × 100 m混合泳接力比赛,5名队员4种 泳姿的百米平均成绩如表,问如何选拔队员。
在这里插入图片描述

求解:(LINGO 求解)
在这里插入图片描述

model:
stes:
s1/1..4/:;
s2/1..5/:;
ss(s1,s2):c,x;
endsets
data:
c = 
66 57 78 70 77
65 61 74 64 71
87 66 69 69 84
59 53 59 57 62
;
enddata
min = @sum(ss:c*x);
@for(s1(i):@sum(s2(j):x(i,j)) = 1);
@for(s2(j):@sum(s1(j):x(i,j)) < 1);
@for(ss:@bin(x));

在这里插入图片描述

在这里插入图片描述

五、目标规划

目标规划与线性规划的区别

在这里插入图片描述
线性规划存在局限性

例题:

某企业生产甲、乙两种产品,需要用到A,B,C三种设备, 关于产品的盈利与使用设备的工时及限制如下表所示。

在这里插入图片描述

设甲、乙产品的产量分别为x1, x2 ,建立线性规划模型:

𝑚𝑎𝑥 𝑧 = 200𝑥1 + 300𝑥2
𝑠.𝑡. 2𝑥1 + 2𝑥2 ≤ 12
          4𝑥1 ≤ 16
          5𝑥2 ≤ 15
       𝑥1, 𝑥2 ≥ 0
        
用Lingo软件求解,得到最优解 𝑥1 = 3, 𝑥2 = 3, 𝑧∗ = 150

在例一中,企业的经营目标不仅仅要考虑利润,还要考虑多个方面:

  • 力求是利润指标不低于 1500 元
  • 考虑到市场需求,甲、乙 两种产品的产量比应尽量保持 1 : 2
  • 设备A为贵重设备,严格禁止超时使用
  • 设备C 可以适当加班,但要控制
  • 设备B 既要求充分利用又尽可能不加班,在重要性上,设备B是设备C的3倍
目标规划模型
  • 1.设置偏差变量

    d+ ---- 超出目标的差值,称为正偏差变量

    d- ---- 未达到目标的差值,称为负偏差变量

    约定如下:

    • 当实际值超过目标值时,有 d - = 0,d+ > 0
    • 当实际值未达到目标值时,有 d+ = 0 ,d- > 0
    • 当实际值与 目标值一致时,有 d+ = d- = 0
  • 2.统一处理目标与约束

    在目标规划中,约束可分为两类,一类是对资源有严格限制的,称为 刚性约束 ;另一类是可以不严格限制的,连同原线性规划的目标,构成 柔性约束

    设备A禁止超时使用 : 2𝑥1 + 2𝑥2 ≤ 12 (刚性约束)

    希望利润不低于1500元 : min { d-} and 𝟐𝟎𝟎𝒙𝟏 + 𝟑𝟎𝟎𝒙𝟐 +𝒅− − 𝒅+ = 1500

    甲乙两种产品的产量尽量保持1:2的比例

    • min { d- + d+}
    • 𝟐𝒙𝟏 − 𝒙𝟐 +𝒅− − 𝒅+ = 0

    设备C可以适当加班,但要控制:

    • min{d+}
    • 𝟓𝒙𝟏 +𝒅− − 𝒅+ = 𝟏5

    设备B既要求充分利用,又尽可能不加班

    • min{d- + d+}
    • 𝟒𝒙𝟏 + 𝒅− − 𝒅+ = 𝟏6

    总结如下:

    • 如果希望不等式保持大于等于,则极小化负偏差
    • 如果希望不等式保持小于等于,则极小化正偏差
    • 如果希望保持等式,则同时极小化正、负偏差
  • 3.目标的优先级与权系数

    • 第一个层次:是目标分成不同的 优先级,在计算目标规划时,必须先优化高优先的目标,然后再优化低优先级的目标。通常以 P1 ,P2 ,…表示不同的因子,并规定 Pk >> Pk+1
    • 第二个层次: 是目标处于同一优先级,但两个目标的 权重 不一样,因此两目标同时优化,用权系数的大小来表示目标重要性的差别。
  • 4.目标规划的一般模型
    在这里插入图片描述

求解目标规划的序贯式算法

  • step 1:求解第一级单目标问题
  • step 2:将第一级目标等于其最优目标值添加到约束中,求解第二级目标
  • step 3:将第二级目标等于其最优值添加到约束中,求解第三级目标。

本例求得目标规划的最优解为x *=(2,4),最优利润为1600

六、装箱问题

例一:

美国1988年数学竞赛B题 有7种规格的包装箱要装到两辆铁路 平板车上。包装箱的高和宽是一样的,但厚度(t,以厘米计)及重量 (g,以千克计)是不同的。下表给出来了每种包装箱的厚度,重量 以及数量。每辆平板车有10.2 m长的地方可以用来装包装箱(像面 包片那样),载重为40 t。由于当地货运的限制,对C5,C6,C7类 的包装箱的总数有一个特别的限制:这类箱子所占的空间(厚度) 不能超过302.7 cm。试把包装箱装到平板车上去使得浪费的空间最小。
在这里插入图片描述

求解:
在这里插入图片描述
在这里插入图片描述

例二: 选择装箱问题

某厂拟用集装箱托运甲乙两种货物,每箱的体积、重量、 可获利润以及托运所受限制如表5-1所示。问两种货物各托运 多少箱,可使获得利润为最大?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题3

文件保存问题 在出发去度假之前,你希望将你的一些最重 要的文件备份到软盘上。每个空白软盘的容量是 1.44 MB。你需 要备份的16个文件的大小分别为:46 KB,55 KB,62 KB,87 KB, 108 KB,114 KB,137 KB,164 KB,253 KB,364 KB,372 KB, 388 KB,406 KB,432 KB,461 KB,851 KB。假定你无法使用压 缩软件,但软盘数量足够,那么应如何将这些文件分配到每一 张软盘上才能使使用的软盘数目最少?
在这里插入图片描述

七、生产计划问题

例:

生产计划问题 某公司生产某产品,最大生产能力为 10000单位,每单位存储费2元,预定的销售量与单位成本如下:
在这里插入图片描述

求一生产计划, 使 1)满足需求; 2)不超过生产能力;3)成本(生产成本与存储费之和)最低。

解 假定1月初无库存,4月底卖完,当月生产的不库存,库 存量无限制

模型 I在这里插入图片描述

model:
title 生产计划程序1;
Sets:
yuefen/1..4/:c,x,e,d;
endsets
data:
c = 70 71 80 76;
d = 6000 7000 12000 6000;
e = 2 2 2 2;
a = 10000;
enddata
min = @sum(yuefen:c*x) + @sum(yuefen(j) | j#1t#4:
@sum(yuefen(i) | i#le#j:
x-d) * e(j+1));
@for(yuefen(j) | j#lt#4:@sum(yuefen(i)
>@sum(yuefen(i) | i#le#j:d));
@sum(yuefen:x) = @sum(yuefen:d);
@for(yuefen:x<a);
end

模型II
在这里插入图片描述

model:
title 生产计划程序2;
Sets:
yuefen/1..4/:c,x,e,d,s;
endsets
data:
c = 70 71 80 86;
d = 6000 7000 12000 6000;
e = 2 2 2 2;
a = 10000;
enddata
min = @sum(yuefen:c*x+e*s);
@for(yuefen(i)|i#lt#4:
s(i+1) = s(i) + x(i) - d(i));
s(4) + x(4) - d(4) = 0;
s(1) = 0;
@for(yuefen:x<a);
End

模型三
在这里插入图片描述
在这里插入图片描述
建模如下:
在这里插入图片描述

model:
title 生产计划程序3;
sets:
yuefen/1..4/:a,d,xx;
!定义上三角矩阵;
link(yuefen,yuefen) |&2#ge# &1 : c,x;
endsets
data:
c = 70 72 74 76
       71 73 75
           80 82
              76 ;
              
d = 6000 7000 12000 6000;
a = 10000 10000 1000 10000;
enddata
min=@sum(link:c*x);
@for(yuefen(i):
@sum(yuefen(j)|j#ge#i:
x(i,j)) < a(i););
@for(yuefen(j):
@sum(yuefen(i)|j#ge#i:
x(i,j)) > d(j););
!得到每个月的生产量;
@for(yuefen(i) :
xx = @sum(yuefen(j) | j#ge#i: 
x(i,j)));
End

八、非线性规划

例题:

料场的建立与运输 建筑工地的位置(用平面坐标a, b表示, 距离单位:公里)及水泥日用量d(吨),下表给出。有两个临时料场 位于P(5,1),Q(2, 7),日储量各有20吨。

(1)从A,B两料场分别向各工地运送多少吨水泥,使总的吨公 里数最小。

(2)如果新建两个料场,两个新的料场应建在何处,节省的 吨公里数有多大?
在这里插入图片描述

求解:
在这里插入图片描述

model:
Title 第二小问;
sets:
demand/1..6/:a,b,d;
supply/1..2/:x,y,e;
link(supply,demand):c;,
endsets
data:
a = 1.25,8.75,0.5,5.75,3,7.25;
b = 1.25,0.75,4.75,5,6.5,7.75;
d = 3,5,4,7,6,11;
e = 20,20;
enddata
! 初始段:对集合属性定义初值(迭代算法的迭代初值);
init:
!初始点;
x,y = 5,1,2,7;
endinit
min = @sum(link(i,j):c(i,j)*((x(i)-a(j)) ^ 2 + (y(i)-b(j))^2 (1/2) );
@for(demand(j):@sum(supply(i):c(i,j)) = d(j) ; ) ;
@for(supply(i): @sum(deamnd(j):c(i,j)) <= e(i););
@for(supply: @bnd(0.5,x,8.75);
@bnd(0.75,Y,7.75) ;);
END !比@free(x);@free(y);要好,可减少计算工作量

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

例题二:

饮酒驾车CUMCM2004C

请你参考下面给出的数据 (或自己收集资料)建立饮酒后血液中酒精含量的数学模型,并讨 论以下问题:

  1. 对大李碰到的情况做出解释;
  2. 2.。。。

参考数据

  1. 。。。
  2. 体重约 70 kg的某人在短时间内喝下2瓶啤酒后,隔一定时 间测量他的血液中酒精含量(毫克/百毫升),得到数据如下:
    在这里插入图片描述

求解:

分析:把人体内酒精的吸收,代谢,排除过程分成两个“室”, 胃是第一个室,血液为第二室,酒精先进入胃,然后被吸收进入血 液,由循环到达体液内,再通过代谢,分解及排泄,出汗,呼气等 方式排除。

假设胃里的酒精被吸收进入血液的速度与胃中的酒量x(t)成正比, 比例常数为 k1,血液中的酒被排除的速度与血液的酒量y(t)成正比, 比例系数为 k2,G0为短时间内喝入胃的酒精总量, 则可以建立微分方程:
在这里插入图片描述

# LINGO 程序
model:
sets:
BAC/R1..R23/:T,Y;
endsets
data:
T = 0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14  15 16;
Y = 30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4;
enddata
min = @sum(BAC:(A1*(@EXP(-A2*T)-@EXP(-A3*T))-Y)^2);
end

九、多目标规划

例子:

第29届奥运会明年8月将在北京举行,大部分人将会乘坐公共交通 工具到现场观看奥运比赛,这些年来,城市的公交系统有了很大发展, 北京市的公交线路已达800条以上,使得公众的出行更加通畅、便利, 但同时也面临多条线路的选择问题。请你们解决如下问题:

1、仅考虑公汽线路,给出任意两公汽站点之间线路选择问题的 一般数学模型与算法。 (其它略) 花费最小,时间最短,转车次数最小,堵车程度弱。
在这里插入图片描述

数学模型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

求解方法:
在这里插入图片描述

  • 加权法:在这里插入图片描述

  • 极大极小(min-max)法在这里插入图片描述

  • 偏差函数法在这里插入图片描述

  • 测度法(去掉量纲)在这里插入图片描述

  • 约束法在这里插入图片描述

  • 分层序列法在这里插入图片描述

  • 费效比函数
    在这里插入图片描述

十、敏感性分析

对目标函数系数的敏感性分析

例题:例1 生产计划问题

某工厂计划安排生产Ⅰ,Ⅱ两种产品, 已知每种单位产品的利润,生产单位产品所需设备台时及A,B 两种原材料的消耗,现有原材料和设备台时的定额如表所示, 问: 1)怎么安排生产使得工厂获利最大?

2)产品Ⅰ的单位利润降低到1.8万元,要不要改变生产计划, 如果降低到1万元呢?

3)原材料A的市场价为1元/kg,要不要购买?买多少?
在这里插入图片描述

求解:
在这里插入图片描述

model
title 生产计划问题;
[maxf]max = 2*x1+3*x2;
[TIME]x1+2*x2<8;
[A]4*x1<16;
[B]4*x2<12;
end
    1. 怎么安排生产使得工厂获利最大? 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 2)产品 I 的单位利润降到1.8万元,要不要改变生产计划,如果降到1万元呢?
    在这里插入图片描述
    在这里插入图片描述

    • 对偶最优解即 影子价格,或者 对偶价格
    • 经济含义: 在资源得到最优配置时,该资源投入量每增加一个单位所带来总收益的增加量。
    • 影子价格不是价格,适用于和市场价格对比的一个量
    • 如果影子价格高于市场价格,可购买原材料用于生产,可增加利润;
    • 如果影子价格低于市场价格,出售原材料可获得更大的利润
  • 3)原材料A 的市场价为 1元/kg 要不要购买?买多少?

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值