MATLAB使用蒙特卡洛算法求解线性整数规划和01规划
蒙特卡洛方法是一种利用计算机的随机数理论模拟实际的情况的一种方法。今天主要是以实例讲解蒙特卡洛方法的MATLAB编程实现求解线性整数规划和01规划。
实例1
首先使用intlinprog线性整数规划求解函数对该线性规划进行求解,该函数的语法如下:xintlinprog(f,intcon,A,b)xintlinprog(f,intcon,A,b,Aeq,beq)xintlinprog(f,intcon,A,b,Aeq,beq,lb,ub)xintlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0)xintlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0,options)xintlinprog(problem)〔x,fval,exitflag,output〕intlinprog()intlinprog函数标准型xintlinprog(f,intcon,A,b,Aeq,beq,lb,ub)f系数阵intcon变量个数A,b:不等式限制条件Axb中的A和bAeq,beq:等式限制条件中的Aeqxbeq中的Aeq和beqlb,ub:自变量的最小值和最大值用x,Fval代替上述各命令行中左边的x,则可得到在最优解x处的函数值Fval〔x,fval〕intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
程序clc;clearall;f〔58〕;A〔11;59〕;b〔645〕;lbzeros(2,1);intcon〔12〕;〔x,fval〕intlinprog(f,intcon,A,b,〔〕,〔〕,lb,〔〕);fprintf(maxf(x)在x1fx2f处取得最大值:f,x(1),x(2),fval);
运行结果LP:Optimalobjectivevalueis41。250000。Heuristics:Found1solutionusingZIround。Upperboundis39。000000。Relativegapis2。50。CutGeneration:Applied1Gomorycut。Lowerboundis40。000000。Relativegapis0。00。Optimalsolutionfound。Intlinprogstoppedattherootnodebecausetheobjectivevalueiswithinagaptoleranceoftheoptimalvalue,options。AbsoluteGapTolerance0(thedefaultvalue)。Theintconvariablesareintegerwithintolerance,options。IntegerTolerance1e05(thedefaultvalue)。maxf(x)在x10。000000x25。000000处取得最大值:40。000000
蒙特卡洛求解线性整数规划程序
主程序(使用floor向下取整函数)
floor函数floor朝负无穷大四舍五入此MATLAB函数将X的每个元素四舍五入到小于或等于该元素的最接近整数。Yfloor(X)Yfloor(t)Yfloor(t,unit)clc;clearall;rand(state,sum(clock));初始化随机数发生器f0inf;x0〔〕;num1e7;tic计时开始fori1:numx06rand(2,1);随机产生初始解x1floor(x);向下取整函数〔f,g〕mengte3(x1);调用自定义函数计算ifsum(g0)2iff0f求最大值如果当前值更优,则更新值x0x1;f0f;endendendtoc计时结束fprintf(maxf(x)在x1fx2f处取得最大值:f,x0(1),x0(2),f0);
自定义函数mengte3。mfunction〔f,g〕mengte3(x)f是目标函数g(x)0f5x(1)8x(2);x1x(1);x2x(2);g〔x1x26;5x19x245〕;end
运行结果历时10。114315秒。maxf(x)在x10。000000x25。000000处取得最大值:40。000000
使用ceil向上取整函数求解ceil朝正无穷大四舍五入此MATLAB函数将X的每个元素四舍五入到大于或等于该元素的最接近整数。Yceil(X)Yceil(t)Yceil(t,unit)
主程序clc;clearall;rand(state,sum(clock));初始化随机数发生器f0inf;x0〔〕;num1e7;tic计时开始fori1:numx06rand(2,1);随机产生初始解x1ceil(x);〔f,g〕mengte3(x1);调用自定义函数计算ifsum(g0)2iff0f求最大值如果当前值更优,则更新值x0x1;f0f;endendendtoc计时结束fprintf(maxf(x)在x1fx2f处取得最大值:f,x0(1),x0(2),f0);
运行结果历时11。714213秒。maxf(x)在x13。000000x23。000000处取得最大值:39。000000
实例2
首先使用intlinprog线性整数规划求解函数对该线性规划进行求解:
程序clc;clearall;f〔6235〕;A〔3516;2111;1245〕;b〔4310〕;intcon〔1234〕;lbzeros(4,1);ubones(4,1);〔x,fval〕intlinprog(f,intcon,A,b,〔〕,〔〕,lb,ub);fprintf(maxf(x)在x1fx2fx3fx4f处取得最大值:f,x(1),x(2),x(3),x(4),fval);
运行结果LP:Optimalobjectivevalueis14。500000。Heuristics:Found1solutionusingZIround。Upperboundis13。000000。Relativegapis0。00。Optimalsolutionfound。Intlinprogstoppedattherootnodebecausetheobjectivevalueiswithinagaptoleranceoftheoptimalvalue,options。AbsoluteGapTolerance0(thedefaultvalue)。Theintconvariablesareintegerwithintolerance,options。IntegerTolerance1e05(thedefaultvalue)。maxf(x)在x11。000000x20。000000x31。000000x41。000000处取得最大值:14。000000
蒙特卡洛求解01规划程序
主程序(四舍五入round函数)clc;clearall;rand(state,sum(clock));初始化随机数发生器f0inf;x0〔〕;num1e7;tic计时开始fori1:numx01rand(4,1);随机产生初始解x1round(x);利用四舍五入round函数01变量〔f,g〕mengte4(x1);调用自定义函数计算ifsum(g0)3iff0f求最大值如果当前值更优,则更新值x0x1;f0f;endendendtoc计时结束fprintf(maxf(x)在x1fx2fx3fx4f处取得最大值:f,x0(1),x0(2),x0(3),x0(4),f0);
自定义函数mengte4。mfunction〔f,g〕mengte4(x)f是目标函数g(x)0f6x(1)2x(2)3x(3)5x(4);x1x(1);x2x(2);x3x(3);x4x(4);g〔3x15x2x36x44;2x1x2x3x43;x12x24x35x410〕;end
运行结果历时11。086100秒。maxf(x)在x11。000000x20。000000x31。000000x41。000000处取得最大值:14。0
本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。
作者郭志龙
编辑郭志龙
校对郭志龙
4w左右,有什么二手车推荐?10年左右,我相信你说的是一零年左右。距离现在七年,那些爱坏的车也差不多开始坏了,剩下的大部分都是不怎么爱坏的车。开一两年再卖,估计你是想开了再卖二手吧,卖的时候再能少亏……
使用手动对焦镜头是一种什么样的体验?使用手动对焦镜头是一种什么样的体验?我个人是比较喜欢玩手动镜头的,手动镜头大多都是一些比较老旧的镜头,价格相对比较便宜,可玩性也非常高。我记得我第一次使用手动镜头,……
特斯拉涨价2万,小鹏P7涨价2万,这是割韭菜,还是真没办法?个人开油车,但是去试驾了特斯拉,小鹏,还有几何,还有华为,比亚迪新能源汽车。虽然新能源大局已定,老大永远是老大,特斯拉不可否认依旧是新能源的领头羊,很多人又说特斯拉不好,……
骑新买的摩托车去上牌的路上被交警拦下会如何处罚?很荣幸能够回答你的这个问题。新买的摩托车在去上牌的路上被查,一般是不会对你进行处理的。我们都知道,机动车上牌是需要带着一些手续的,包括购车发票、合格证等等,当交警拦下后,……
30万左右的家用suv,哪款比较好?我是唐DM车主,我为唐DM带盐。30万,家用的话推荐唐DM。这个车是你不用不知道,一开就入坑。首先实话实说我是被忽悠入坑的,前期想买车预算30左右,父辈们各种主意,……
国产车到底输在哪里,为什么现在还被很多人看不起?你这问题问的太带有偏向性,如果你觉得国产车输了,那就说明你已经输了。因为现在的国产车如果说输的话,就只是输在了国人的固有思维上!市场的认可度,还有消费者的偏见如果你……
新能源汽车集体涨价原因何在?惯的,电动爹,跑不远,修不起,保不起对于因油价太贵想买新能源汽车的车主而言,此次新能源汽车厂商的集体提价,或使其陷入开不起燃油车,买不起新能源的两难窘境。自3月以来……
成都自驾到海南怎么走最合理?黑妹的一个朋友正好自驾走过这一段,跟大家分享下。从成都到海南海口,大约有2000公里左右的距离。所谓自驾,就是边走边玩,和自己的家人朋友,途中在自己想去的城市停留,惬意玩……
福特探险者三十周年纪念版来袭,预计北京车展上市,你期待吗?首先我个人是非常期待这款车的日前,福特探险者推出了一款三十周年纪念版车型,新车售价33。98万,限量发售600台。官方还赠送包含电动踏板和车顶行李架在内的价值11000元的原厂……
智能投影面临新机遇游戏投影仪团体标准发布新京报贝壳财经讯(记者陈维城)今年以来,智能投影玩家涌入,市场不断扩容。11月3日,在2022第二届CSPC中国智能投影产业高峰论坛上,中国电子视像行业协会副秘书长董敏认为,智……
德媒拜登正在激怒其盟友日本和韩国德国《商报》网站10月14日发表马丁克林的文章认为,随着最近通过的《通胀削减法案》,美国总统拜登正在激怒其盟友日本和韩国。现在,韩国政府甚至考虑向世界贸易组织(WTO)起诉美国……
百胜中国2022年净利润4。42亿美元,今年将净增1100至【大河财立方记者吴海舒文马腾飞摄影】2月8日,百胜中国发布2022年第四季度及全年财务业绩报告。2022年全年,百胜中国实现营业收入95。7亿美元,较2021年下降3;净利润4……