EverydayOneCat
Sunday!
🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️
🐈💨💨💨💨💨💨💨💨💨💨💨
💤💤💤💤💤💤💤💤💤💤💤💤
🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈
知识点
1.优化模型建立注意事项
- 决策变量尽量使通量,其标志是下标尽量的多
- 模型中尽量使用连加号
- 同类型的约束统一成一个表达式
- 优化模型尽量不要用数字,包括已知变量
- 决策变量宜多不宜少
- 模型不要用分式,更不能将变量放置分母
- 决策变量要全部或部分出现在目标函数以及所有约束条件当中
- 建立优化模型要顾及自己编程的能力
2.非线性规划
2.1下料问题
客户需求:4米50根、5米10根、6米20根、8米15根。现有19米的原钢管可以购买。由于采用不同切割模式太多,会增加生产和管理成本,规定切割模式不能超过3种。如何下料最节省?
对大规模问题,用模型的约束条件界定合理模式
决策变量:
xi ~按第i 种模式切割的原料钢管根数(i=1,2,3)
r1i, r2i, r3i, r4i ~ 第i 种切割模式下,每根原料钢管生产4米、5米、6米和8米长的钢管的数量
增加约束,缩小可行域,便于求解
根据模型编写Lingo代码:
1 | model: |
结果:用去原料钢管总根数为28根。
模式1:每根原料钢管切割成3根4米和1根6米钢管,共10根;
模式2:每根原料钢管切割成2根4米、1根5米和1根6米钢管,共10根;
模式3:每根原料钢管切割成2根8米钢管,共8根。原料钢管总根数为28根。
2.2料场的建立与运输
建筑工地的位置(用平面坐标a, b表示,距离单位:公里)及水泥日用量d(吨)下表给出。有两个临时料场位于P (5,1), Q (2, 7),日储量各有20吨。从A, B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。两个新的料场应建在何处,节省的吨公里数有多大?
这里的第一问就是典型的线性规划中的运输问题,上篇博文又讲,这里不过多赘述,我们主要来看第二问定点的问题。
我们设(ai,bi)为第i个工地的坐标,di为第i个工地的需求量。(xi,ji)为新的料场的坐标,cij为从第i个料场运到第j个工地的重量。
根据模型编写Lingo代码:(@bnd限定了范围)
1 | model: |
运行了一个小时中断得到的目前为止的最优解:
2.3投资组合问题
某三支股票在12年的收益如下:
解决如下问题:( 在希望风险小而获利大前提下考虑以上问题。)
(1)如果在1955年你有一笔资金投资这三种股票,并期望年收益率至少达到15%,那么你应当如何投资?
(2)如果还可以投资国库券,年收益率为5%,如何投资呢?分析投资组合与回报率以及风险的关系。
(3)如果你目前持有的股票比例为:A占50%,B占35%,C占15%,买卖股票按交易额的1%收取交易费,你会怎么办?
(1)如果在1955年你有一笔资金投资这三种股票,并期望年收益率至少达到15%,那么你应当如何投资?
第一问分析:
一种股票收益的均值衡量这种股票的平均收益状况
一种股票收益的方差衡量这种股票收益的波动幅度
两种股票收益的协方差表示他们之间的相关程度
假设股票A、B、C每年的收益率分别为R1,R2和R3
可计算数学期望:
ER1=0.0890833, ER2=0.213667, ER3=0.234583
协方差矩阵:
决策变量:x1投资股票A 、x2投资股票B 、x3投资股票C
约束条件:
- 资金全部用于投资这三种股票——x1, x2 , x3 ≥0,x1+x2 +x3 = 1
- 年收益率(的数学期望)不低于15%——x1ER1+x2ER2+x3ER3 ≥ 0.15
目标函数:年投资收益率的方差极小
根据模型编写Lingo代码:
1 | model: |
结论:A投53%,B投36%,C投11%。
(2)如果还可以投资国库券,年收益率为5%,如何投资呢?分析投资组合与回报率以及风险的关系。
第二问分析:
多了一种投资方式,总体思路还是第一问的,修改一下data中定义的即可
假设国库券的投资方式记为D,由于不变,方差为0
编写Lingo代码:
1 | model: |
投资A占8%,B占42%,C占14%,D占34%
要分析投资组合与回报率以及风险的关系,我们把期望收益:15%—>10%
投资A大约占4%,B占21%,C占7%,D(国库券)占67%
结果:
- 风险资产本身相互之间的比例不变
- 变化的只是投资于风险资产与无风险资产之间的比例
- 风险值随着期望值而降低
- 风险资产之间的投资比例与期望收益和风险偏好无关
(3)如果你目前持有的股票比例为:A占50%,B占35%,C占15%,买卖股票按交易额的1%收取交易费,你会怎么办?
第三问分析:
决策变量:
假设购买股票A、B、C的比例为y1 、y2和y3;假设卖出股票A、B、C的比例为z1 、z2和z3
最后持有状态:x1投资股票A 、x2投资股票B 、x3投资股票C
根据模型编写Lingo代码:
1 | model: |
结果:C卖出2.7%,然后把这个钱买2.6%A。
这里三种问题的解法其实还有另外一种思路,就是通过股票指数来分析。由于👴没看懂,这里就不写出来半二吊子的让大家笑话了
3.目标规划
思想:转化为单目标问题
3.1投资问题
建立模型:
对于上述多目标规划问题, 处理成单目标:
3.2生产安排问题
某企业生产甲、乙两种产品,需要用到A,B,C三种设备,关于产品的盈利与使用设备的工时及限制如下表所示。
问该企业应如何安排生产,使得在计划期内总利润最大?
设甲、乙产品的产量分别为x1, x2,建立线性规划模型:
普通的线性规划求解得到:x1=3、x2=3、z=1500
企业的经营目标不仅要考虑利润,还需要考虑多个方面,因此增加下列因素(目标):
• 力求使利润指标不低于1500元
• 考虑到市场需求,甲、乙两种产品的产量比应尽量保持1:2
• 设备A为贵重设备,严格禁止超时使用
• 设备C可以适当加班,但要控制;设备B既要求充分利用,又尽可能不加班,在重要性上,设备B是设备C的3倍
1、设置偏差变量
用偏差变量(Deviational variables)来表示实际值与目标值之间的差异,令
2、统一处理目标与约束
在目标规划中,约束可分两类,一类是对资源有严格限制的,称为刚性约束;例如刚刚条件中设备A禁止超时使用,则有刚性约束:
另一类是可以不严格限制的,连同原线性规划的目标,构成柔性约束;我们希望利润不低于1500元,则目标可表示为:
甲、乙两种产品的产量尽量保持1:2的比例,则目标可表示为
设备C可以适当加班,但要控制,则目标可表示为
设备B既要求充分利用,又尽可能不加班,则目标可表示为
从上面的分析可以看到:
- 如果希望不等式保持大于等于,则极小化负偏差
- 如果希望不等式保持小于等于,则极小化正偏差
- 如果希望保持等式,则同时极小化正、负偏差
3、目标的优先级与权系数
在目标规划模型中,目标的优先分为两个层次,第一个层次是目标分成不同的优先级,在计算目标规划时,必须先优化高优先级的目标,然后再优化低优先级的目标。通常以P1,P2,…表示不同的因子,并规定Pk>>Pk+1,第二个层次是目标处于同一优先级,但两个目标的权重不一样,因此两目标同时优化,用权系数的大小来表示目标重要性的差别。
推广到目标规划的一般模型:
编写Lingo代码:
1 | Model: |
一般都可以参照如上模板,只需要根据题目改变相应数值即可,很多都是固定的。
程序运行说明,分三次求解:
1、在做第一级目标计算时,P(1),P(2)和P(3)分别输入1,0和0,Goal(1)和Goal(2)输入两个较大的数(如10000),表示这两项约束不起作用;
2、在做第二级目标计算时,P(1),P(2)和P(3)分别输入0,1和0,由于第一级的偏差为0,因此Goal(1)为0,Goal(2)输入一个较大的数;
3、在做第三级计算时,P(1),P(2)和P(3)分别输入0,0和1,由于第一级、第二级的偏差为0,因此Goal(1)和Goal(2)的输入值也为0。
求出的目标函数的最优值为29,即第三级偏差为29,分析结果, x1为2, x2为4, DPLUS1 为100,因此目标规划的最优解为x *=(2,4),最优利润为1600.
3.3工作安排问题
某音像商店有5名全职售货员和4名兼职售货员。全职售货员每月工作160小时,兼职售货员每月工作80小时。根据过去的工作记录,全职售货员每小时销售CD25张,平均每小时工资15元,加班工资每小时22.5元。兼职售货员每小时销售CD10张,平均每小时工资10元,加班工资每小时10元。现在预测下月CD销售量为27500张,商店每周开门营业6天,所以可能要加班。另每出售一张CD盈利1.5元。
该商店经理认为,保持稳定的就业水平加上必要的加班,比不加班但就业水平不稳定要好。但全职售货员如果加班过多,就会因疲劳过度而造成效率下降,因此不允许每月加班超过100小时。
1、首先建立目标约束的优先级
P1:下月的CD销售量达到27500张;
P2: 限制全职售货员加班时间不超过100小时;
P3: 保持全体售货员充分就业,因为充分工作是良好劳资关系的重要因素,但对全职售货员要比兼职售货员加倍优先考虑;
P4: 尽量减少加班时间,但对两种售货员区别对待,优先权因子由他们对利润的贡献而定。
2、建立目标约束
(1) 销售目标约束:
希望下月的销售量超过27500张CD片,因此销售目标为
(2) 正常工作时间约束:
由于希望保持全体售货员充分就业,同时加倍优先考虑全职售货员,因此工作目标约束为
(3) 加班时间约束:
限制全职售货员加班时间不超过100小时,将加班约束看成正常上班约束,不同的是右端加上100小时,因此加班目标约束为
另外,全职售货员加班1小时,商店得到的利润为15元(25 1.5-22.5=15),兼职售货员加班1小时,商店得到的利润为5元(101.5-10=5),因此加班1小时全职售货员获得的利润是兼职售货员的3倍,故权因子之比为
3、按目标的优先级,写出相应的目标规划模型:
根据模型编写Lingo代码(其实就是再上一个的基础上进行修改)
1 | sets: |
程序运行说明,分四次求解:
在做第一级目标计算时,P(1),P(2),P(3)和P(4)分别输入1,0,0和0,Goal(1), Goal(2)和Goal(3)输入两个较大的数,表示这两项约束不起用;
在做第二级目标计算时,P(1),P(2),P(3)和P(4)分别输入0,1,0和0,由于第一级的偏差为0,因此Goal(1)为0,Goal(2)和Goal(3)输入一个较大的数;
在做第三级计算时,P(1),P(2),P(3)和P(4)分别输入0,0,1和0,由于第一级,第二级的偏差为0,因此Goal(1)和Goal(2)的输入值也为0, Goal(3)输入一个较大的数;
在做第四级计算时,P(1),P(2),P(3)和P(4)分别输入0,0,0和1,由于第一级,第二级和第三级的偏差为0,因此Goal(1),Goal(2)和Goal(3)输入值也为0;
全职售货员总工作时间为900小时(加班100小时),兼职售货员总工作时间500小时(加班180小时),下月共销售CD27500张,商店共获得利润27500 1.5-800 15-100 22.5-500 10=22000(元)
作业
1.下料问题
某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出.从钢管厂进货时得到的原料钢管长度都是1850mm.现有一客户需要15根290mm、28根315mm、21根350mm和30根455mm的钢管.为了简化生产过程,规定所使用的切割模式的种类不能超过4种,使用频率最高的一种切割模式按照一根原料钢管价值的1/10给予加工费用,使用频率次之的切割模式按照一根原料钢管价值的2/10给予加工费用,依此类推,且每种切割模式下的切割次数不能太多(一根原料钢管最多生产5根产品)。此外,为了减少余料浪费,每种切割模式下的余料浪费不能超过100mm.为了使总费用最小,应选择几种切割模式?如何下料?
解:
增加约束,缩小可行域便于求解。
① 需求:15 根290mm、28 根315mm、21 根350mm 和30 根455mm,每
根钢管长1850mm。
原料钢管总根数下界:
② 特殊生产方式,对每根钢管
模式1:切割成5 根290mm 钢管,共需要3 根原材料。
模式2:切割成5 根315mm 钢管,共需要6 根原材料。
模式3:切割成5 根350mm 钢管,共需要6 根原材料。
模式4:切割成4 根455mm 钢管,共需要8 根原材料。
原料钢管总根数上界:3+6+6+8=23 根。
根据模型编写Lingo代码:
1 | model: |
以上结果表明,只使用 3 种切割模式(X (1), X (2), X (3)),分别使用 14,4,1 根;第1 种模式生产四种产品为1,2,0,2(根),所用原始钢管根数为14根;第2 种模式生产四种产品为0,0,5,0(根),所用原始钢管根数为4 根;第3 种模式生产四种产品为2,0,1,2(根),所用原始钢管根数为1 根。综上,总共需要19 根原始钢管,最小总费用为21.5。
2.阿桑的计划
阿桑小姐是一个小学教师,她刚刚继承了一笔遗产,交纳税金后净得50,000美元。阿桑小姐感到她的工资已足够她每年的日常开支,但是还不能满足她暑假旅游的计划。因此,她打算把这笔遗产全部用去投资,利用投资的年息资助她的旅游。她的目标当然是在满足某些限制的条件下进行投资,使这些投资的年息最大。
阿桑小姐的目标优先等级是:第一,她希望至少投资20,000美元去购买年息为6%的政府公债;第二,她打算最少用5,000美元,至多用15,000美元购买利息为5%的信用卡;第三,她打算最多用10,000美元购买随时可兑换现款的股票,这些股票的平均利息为8%;第四,她希望给她的侄子的新企业至少投资30,000美元,她侄子允诺给她7%的利息。
+++
2.1分析模型
已知阿桑共有四种投资方案:政府公债、信用卡、股票、新企业投资,利率分别为6%、5%、8%、7%,现总投资额为50000 美元。在仅考虑第一个目标优先等级时,即50000 元全部投资方案一,此时得到得年利润为3600 美元。因此,我们把最大利润不小于3600 美元作为目标之一,使用目标规划法综合考虑其他目标。设其投资第i 种方案得金额数为i x 美元,第i 种方案得利率为i t 。
由于投资的总额为50000 美元,因此刚性约束条件为:
2.2建立目标约束的优先级
P1:年利润不小于3600 美元
P2 :至少投资20,000 美元购买年息为6%的政府公债
P3 :至少5,000 美元,至多用15,000 美元购买利息为5%的信用卡
P4 :至多10,000 美元购买随时可兑换现款平均利息为8%的股票
P5 :给侄子的新企业至少投资30,000 美元,利息7%。
2.3建立目标约束
(1)利润目标约束
(2) 投资约束
综上所述,相应的目标规划模型为:
套用目标规划Lingo代码模板:
1 | Model: |
使用lingo 软件对模型求解,程序运行说明,分五次求解:
在做第一级目标计算时,P(1),P(2),P(3),P(4)和P(5)分别输入1,0,0,0 和0,Goal(1), Goal(2)、Goal(3)和Goal(4)输入两个较大的数,表示这两项约束不起作用。
在做第二级目标计算时,P(1),P(2),P(3),P(4)和P(5)分别输入0,1,0,0 和0,由于第一级的偏差为0,因此Goal(1)为0,Goal(2)、Goal(3)和Goal(4)输入一个较大的数。
在做第三级计算时P(1),P(2),P(3),P(4)和P(5)分别输入0,0,1,0 和0,由于第一级,第二级的偏差为0,因此Goal(1)和Goal(2)的输入值也为0,Goal(3)和Goal(4)输入一个较大的数。
在做第四级计算时,P(1),P(2),P(3),P(4)和P(5)分别输入0,0,0,1 和1,由于第一级,第二级的偏差为0,,第三级的偏差为5000 因此Goal(1),Goal(2)输入值也为0,Goal(3)输入值为5000,Goal(4)输入一个较大的数。
在做第五级计算时,P(1),P(2),P(3),P(4)和P(5)分别输入0,0,0,0 和1,由于第一级,第二级偏差为0,第三级的偏差为5000,第四级的偏差为20000,的因此Goal(1),Goal(2),输入值为0,Goal(3)为5000,Goal(4)输入值为20000。
由最终计算结果可知, x1=20000、x4=30000时,年利润最大。即投资政府公债20000 美元,给侄子的企业投资30000 美元时,最大年利润为3300 美元。
结语
男生一个月总有那么几天。。。。效率极差🤣
这几天摸了不少🐟,虽然没咋学,但还是挺舒服的ฅʕ•̫͡•ʔฅ