流行算法类工具盘点(一):混合整数线性规划(MILP)解算器lpsolve

2017-01-17  by:CAE仿真在线  来源:互联网

名称:lpsolve
解决问题:纯线性问题,混合的整型和二进制问题,半蝉联性与特别命令集(SOS) 板型
应用平台:由ANSI C编著,可应用于Linux和WINDOWS等不一样平台。
使役案例:解决下图所示的最大流问题(这幅图已经标注出求解结果了):
lpsolve IDE背景中只需输入如次的文本,是不是十分简单直观:
而后按一个运行按键(红框标注),出现以下的求解结果,红框标注的是结果,蓝框标注的是求解信息,涵盖浪费时间等等:
关于lpsolve IDE背景的详细使役申说可以参考其使役手册(lpsolve下载主页上可自由下载),看见这搭或许有人会问,上头的例子很简单,假如对于复杂的网络拓扑,自个儿手动输入这些表现式显然是不事实的, 那该怎么办,好在lpsolve可以集成在别的开发背景中,它提供了一全副API,可供调用,具体也请参考使役手册,上头提到的博客里对于matlab调用lpsolve有简单的申说,这搭补给说一下,mxlpsolve('write_lp',lp,'a.lp')这个语句可以生成IDE背景里可直接执行的脚本文件(C,JAVA等接口也有类似语句),这么复杂的问题可以用高级编程语言建模,而后生成LP脚本文件单独在IDE中运行,是不是很便捷。
以上这个Max Flow的例子直接用matlab自带的linprog工具箱求解,开具代码是:
f = [ -1 -1 -1 0 0 0 0 0 0 0 0 0 ]; A = ; b = ; Aeq = [1 0 0 -1 -1 0 0 0 0 0 0 0 0 1 0 0 0 -1 -1 -1 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 1 0 1 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 -1 ]; beq = zeros(6,1); lb = zeros(12,1); ub = [3;2;2;5;1;1;3;1;1;4;2;4]; x = linprog(f,A,b,Aeq,beq,lb,ub);求解结果如次,可以看见虽然最大流的值是不错的,但其他边上的流却与lpsolve求解结果有巨大差异:

原文地址(转载请注明):体育比分直播 www.a9988.net

开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:流行算法类工具盘点(一):混合整数线性规划(MILP)解算器lpsolve MatLab培训 MatLab培训课程 MatLab在线视频教程 MatLab技术学习教程 MatLab软件教程 MatLab资料下载 MatLab代做 MatLab基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 Abaqus培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com