编写典型数据预测算法 流行算法类工具盘点一
名称: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求解结果有很大差别:
- 03-12上海网络房地产营销策划信息中心 网聚天下再创地级市商业地产营销新标杆
- 03-01天冷的问候语简短温馨:寒冷季节一句简短的问候
- 10-24给定ip地址怎么算子网掩码?实例讲解ip地址子网掩码
- 02-22痘痘肌饮食忌口哪些食物?痘痘肌肤为什么需要忌口吃辛辣食物
- 03-05电工知识分享常识,史上最全的电工知识必收藏
- 01-28石窟寺分区及其特点 从石窟寺开始漫谈
- 01-16周其仁怎么样?周其仁疫劫中怎样活下来
- 03-04红木家具收藏与鉴赏价值:一套只花一元钱的红木家具
- 05-07你不在我身边一切都是最好的,最痛的距离是你不在我身边
- 04-19韩信背水一战详细解析:被误解千年的背水一战
- 01-24世界摩天楼排行一览表最新:全球已开工未建成的超级摩天楼
- 03-06历代火影实力排行榜官方 论8位火影在任时的实力怎么排
- 04-23城市垃圾的资源化利用及处理:上海探索将湿垃圾变废为宝
- 02-02sony索尼ps-lx310bt:索尼PS-LX310BT黑胶唱片机体验
- 04-07英语高中必修3第九单元知识点整理:高中英语选修八unit3单元知识归纳
- 02-14十句顶级禅意短句:与其锦上添花不如雪中送炭
热门
推荐
- 1华硕笔记本搜不到无线网怎么解决496
- 2学习《关键在于落实》有感465
- 3汽车钣金维修技术论文范文487
- 4勿以善小而不为作文600字273
- 5什么是三国橄榄赛495
- 6关于江南的随笔美文147
- 7笔记本做系统找不到硬盘怎么办385
- 8给高三中等学生的班主任评语116