重新发布|《运筹优化常用模型算法及案例实战:Python+Java实现》 代码手册 开始预购啦!!!
Posted 运小筹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重新发布|《运筹优化常用模型算法及案例实战:Python+Java实现》 代码手册 开始预购啦!!!相关的知识,希望对你有一定的参考价值。
◆ ◆ ◆ ◆
《运筹优化常用模型、算法及案例实战:Python+Java实现》
【代码手册】
开始预购啦!!!
---------------------------------
之前预定过的无需再次预定
(大家手速也忒快了,好多人都没来得及备注)
----------------------------------------
订购链接见文末
6月15日24:00前订购的读者将会享受85折!!!!!
另:之后可能会从订购的小伙伴中选取一小部分免费赠送哦
2021
◆ ◆ ◆ ◆
昨天推文里提醒了多次,大家手速还是太快,没有备注转账信息。小编的锅,小编的锅。一会儿功夫收到了70多个预定,小编也是受宠若惊,但是这来来回回确认可给小编累坏了,哈哈哈
今天重新发一下,改成
微店购买链接+调查问卷
的形式,之前预定过的无需再次预定(但是如果想在微店拍,能看到成功与否的话,可以联系小编退款重新去微店拍,这个so easy)
各位从事运筹优化的小伙伴们
您是否对运筹优化非常感兴趣,准备要系统的学习时,却发现没有较系统的进阶版中文资料?
中文的没有,英文的论文很多。但是看文献的时候你引他,他引他,为了追溯一个源头,花了一下午,最后还是无功而返?很多论文自解释性不强,这让初学者极为头疼。
不看文献,那就去看看英文课本呗,看了课本,理解了原理,但,是不是又会苦于只了解理论,到编程阶段却又无从下手?学了一大堆理论,但还是停留在纸上谈兵的阶段。
那行,那咱就去Github上呗,但是你又会发现,为了学习一个精确算法的代码,在github上找了又找,犹如大海捞针,即使找到了,别人的代码多数时候也是无头无尾,学习困难?
.....
.....
哎。。。 • 太难了,该怎么办呢
如果你有以上任何一种困惑,那么,你的解决方案来啦!!!
我们通过几年的积累和不懈的努力,终于将运筹优化领域常用的模型、算法、常用的求解器的使用以及经典案例及实战,整理成了一系列的教程,并编成了一本书,准备出版啦!想要系统的学习运筹优化建模、算法、编程实现的小伙伴们到时候阔以有很好的解决方案啦。
整套教程内容太多
我们只能将其分成
三个大的部分
01.
在出版社出版的教材部分
本部分手稿有560+页
内容简介
本书主要介绍了运筹优化领域常用的数学模型、精确算法以及相应的代码实现。本书首先简要介绍了大量基本理论,然后用丰富的配套案例讲解了多个经典的精确算法框架,最后结合常用的优化求解器(CPLEX和Gurobi),介绍了如何用Python和Java语言实现书中提到的所有精确算法。
全书共分为3部分。第1部分(第1-4章)为运筹优化常用模型及建模技巧。该部分着重介绍了整数规划的建模技巧和常见的经典模型。第2部分(第5-7章)为常用求解器API详解及应用案例。该部分主要介绍了两款常用的商业求解器(CPLEX和Gurobi)的使用方法,包括Python和Java的API详解、简单案例以及复杂案例。第3部分(第8-17章)为运筹优化常用算法及实战。该部分详细的介绍了几个经典的精确算法的理论、相关案例、伪代码以及相应的代码实现。
本书适合作为高等院校工业工程、管理科学与工程、信息管理与信息系统、数学与应用数学、物流工程、物流管理、控制科学与工程等开设运筹学相关课程的高年级本科生、研究生教材,同时可供在物流与供应链、交通、互联网、制造业、医疗、金融、能源等相关企业中从事有关运筹优化的开发人员、以及广大科技工作者和研究人员参考。
本书的三个部分更具体的介绍如下。
运筹优化常用模型及建模技巧部分不需要读者有任何的编程基础,只需要掌握本科的运筹学线性规划相关理论和基本的对偶理论以及整数规划基础知识即可顺利读懂。本部分分为4章。第1章介绍了一些数学规划模型的分类和后面章节的精确算法会涉及到的一些凸优化领域的概念,包括凸集、凸包等。由于本书的重点不在此,因此本章介绍的非常简略。第2章介绍了一些非常常见的运筹学问题,例如指派问题、旅行商问题、车辆路径规划问题和多商品网络流问题。这些问题非常经典,并且具有代表性,当下很多实际问题都可以转化为这些问题的变种和拓展。第3章讲解了整数规划中常用的建模技巧,包括逻辑约束等约束的写法、非线性项的线性化方法等,这些技巧频繁的出现在业内顶级期刊发表的论文中,因此本书专门设置了一章来介绍这些内容。第4章讲解了运筹优化中一个非常重要的理论——对偶理论。不同于其他教材,本书中这一章主要聚焦如何写出大规模线性规划的对偶问题,是作者通过自己探索总结出的方法,目前国内外的各种教材和网站,鲜有看到类似的方法介绍。
第一部分是为后续的算法部分做铺垫,之后章节中会多次用到这一章介绍的概念和模型。
常用优化求解器API详解及应用案例部分分为3章,主要是介绍常用优化求解器(CPLEX和Gurobi)及其应用案例。这部分将为之后的算法实战作好技术铺垫,本书第三部分的章节,都需要用到这一章的内容。要顺利读懂这一部分,需要读者有一定的编程基础,至少需要掌握Java或者Python中的一门语言。第5章详细地介绍了CPLEX的Java接口的用法。这部分的主要内容是根据CPLEX提供的用户手册整理而来,包括基本的类、callback、以及例子库中部分例子代码的解读。该章能够帮助读者快速的掌握CPLEX的Java接口的使用,读者无需直接去研读厚厚的英文版用户手册,可以通过该部分快速入门。第6章系统的介绍了Gurobi的算法框架以及其Python接口的用法。包括常用类、Python调用Gurobi的完整建模过程、日志信息、callback等部分。最后还附以简单的案例帮助读者理解。第7章提供了带时间窗的车辆路径规划(VRPTW)的代码实现。详细的给出了如何调用求解器,建立VRPTW的模型并求解。这个案例略微复杂,掌握了这个案例,其余更高难度的案例也就可以迎刃而解。但是本章的案例都是直接调用求解器得到模型的解,并没有涉及到自己实现精确算法的内容。
运筹优化常用算法及实战部分是本书最为重要,干货最多的部分。该部分全面、系统的将运筹优化中常用的精确算法以通俗易懂的方式讲解给读者,尽量避免晦涩的解读。为了方便读者自己实现算法,我们为每一个算法,都提供了详细完整的伪代码,这些伪代码可以帮助读者自己从0到1动手实现相应的算法。在第8章,我们简要回顾了单纯形法,并给出了伪代码和Python代码实现。第9章,我们介绍了求解最短路问题的Dijkstra算法及其实现。Dijkstra算法也是一个非常常用的基础算法。第10章到第17章,我们以理论+详细小案例+伪代码+复杂大案例+完整代码实现的方式,为读者介绍了Branch and Bound, Branch and Cut,Column Generation, Dynamic Programming,Branch and Price, Dantzig-Wolfe Decomposition, Benders Decomposition,Lagrangian Relaxation这8个经典且常用的精确算法。这些算法经常出现在运筹学领域各个期刊的文章中,以及在工业界的具体项目之中。为了便于读者理解,我们尽量避免复杂的数学推导,着重讲解基本原理和算法迭代步骤,真正意义上帮助读者从理论到实践,一步到位,无需到处寻找零散资料,做重复性的整合工作。
相信认真研读这本教材的读者,一定会大有收获。尤其是对刚入门的硕士生和博士生们,
可以凭借这本教材,系统的掌握本领域的精确算法,更好的胜任自己的科研工作。对于
已经从业的运筹优化算法工程师,本书也可以作为一本非常详尽的学习工具书。
书的暂定目录
(出版社的版本最终会删减部分目录及内容)
是不是内容比较系统呢,嘿嘿,有没有心动
02.
随书附赠代码手册
本部分手稿有200+页
内容简介
本部分内容基本全部是较长的代码,不便放入书的正文中,因此我们将做成PDF提供给出版社,随书附赠给读者。
本部分附赠代码主要作者为本书作者,以及华中科技大学博士生黄楠同学、杉树科技算法工程师伍健、华中科技大学邓发珩同学。
再次对他们表示衷心的感谢!
章 |
章节名称 |
内容 |
第10章 |
分支定界算法 |
10.11 Java 调用CPLEX 实现分支定界算法求解VRPTW |
第11章 |
分支切割算法 |
11.5.3 Java 调用CPLEX 实现分支切割算法求解VRPTW 完整代码 |
第12章 |
拉格朗日松驰 |
12.7.2 Python 代码实现:版本1 |
|
|
12.7.3 Python 代码实现:版本2 |
第13章 |
列生成算法 |
13.3.4 Java 调用CPLEX 实现列生成求解下料问题:官方文档示例代码解读 |
章 |
章节名称 |
内容 |
第17章 |
Benders 分解算法 |
17.4 Java 调用CPLEX 实现Benders 分解求解FCTP(Fixed-cost transportation problem) |
|
|
17.7 Python 调用Gurobi 实现Benders 分解求解FLP(Facility location problem) |
内容样例
下面是随书赠送的代码部分截图。
这些代码是配套书中的理论和解释的。在理解书中理论和算法、伪代码、详细案例的基础上学习这些进阶版本的代码,效果会更显著。
是不是更加心动了 :)
03.
拓展/进阶代码手册
敲重点:这部分才是我们自己要卖的
声明
拓展/进阶版本的代码手册,虽然是配套书中的理论和代码的,但是没有这些,并不影响原书的学习。
这些代码是给读者进一步学习使用,在学习了书本的内容基础上,再学习这些,会对能力的增长有非常大的帮助。
本部分代码主要由本书作者完成。
为了保护书的销量,代码手册的代码的配套模型、理论、算法介绍都在出版社出版的书中。
但是要说明的是,本部分是作者自行售卖的,与出版社无关。本部分代码的版权归作者所有,之后如果出现任何版权问题,代码的原作者将追究法律责任。
另外,本书的代码,作者很有可能会在1年或者2年后全部开源。在此先跟各位读者说明一下。
代码手册作者
本代码手册的作者如下。
刘兴禄:硕士毕业于清华大学工业工程系,目前为清华大学深圳国际研究生院,清华-伯克利深圳学院博士生。
熊望祺:硕士毕业于清华大学工业工程系。
臧永森:硕士毕业于清华大学工业工程系,目前为清华大学工业工程系博士生。
段宏达:目前为清华大学工业工程系博士生。
曾文佳:目前为清华大学工业工程系硕士生。
四位在读研究生目前的研究领域均为运筹优化,具体包括鲁棒优化、大规模整数规划、港口运作优化、共享出行优化、车辆路径规划、服务网络设计、仓库运作优化、智慧交通等。
代码手册内容简介
章 |
章节名称 |
内容 |
第10章 |
分支定界算法 |
10.12 Java 调用CPLEX 实现分支定界算法求解VRPTW(callback实现版本) |
章 |
章节名称 |
内容 |
第11章 |
分支切割算法 |
11.6 Python 调用Gurobi 实现分支切割算法求解 VRPTW 完整代码 |
|
|
11.7.3 Java 调用CPLEX 实现分支切割算法求解CVRP 完整代码 |
第13章 |
列生成算法 |
13.3.5 Java 调用CPLEX 实现列生成求解下料问题:版本2 |
|
|
13.4.4 Python 调用Gurobi 实现列生成求解TSP |
|
|
13.5.4 Java 调用CPLEX 实现列生成求解VRPTW |
章 |
章节名称 |
内容 |
|
|
13.5.5 Python 调用Gurobi 实现列生成求解VRPTW |
第14章 |
动态规划 |
14.4.7 Java 实现标签算法求解ESPPRC |
|
|
14.5.3 Python 实现标签算法结合列生成求解VRPTW 完整代码 |
第15章 |
分支定价算法 |
15.3 Python 调用Gurobi 实现分支定价算法求解VRPTW |
|
|
15.4 Java 调用CPLEX 实现分支定价算法求解VRPTW |
章 |
章节名称 |
内容 |
第17章 |
Benders分解算法 |
17.5 Java 调用CPLEX 实现Benders 分解求解FCTP:版本2 (FCTP: fixed-charge transportation problem) |
|
|
17.6 Java 调用CPLEX 实现Benders 分解求解UFLP (Uncapacitated Facility Location Problem) |
目录
目录如下。
为了与原书的目录保持一致,方便读者对应,我们保留了目录结构。
用红框框起来的部分是代码手册中的完整内容。
代码手册部分内容截图
具体以实物为准。
这里需要声明的一点,代码手册的代码主要是为读者自己实现这些算法提供一个参考,并不保证100%没有Bug,也不保证代码的效率。
追求效率,要发论文的小伙伴们需要自己做针对性的优化和重构哦。
啰嗦了那么多
直接进入订购环节
订购环节
微店订购+问卷
注意
本次订购的对象是我们这本书的拓展/进阶版本的《代码手册》(纸质打印版)。
这本代码手册的价格预计在100元到300元之间,视打印成本而定。
我们将定金设置为40元。我们将利用定金提前联系打印厂家打印,因此定金一旦支付,若无特殊情况(如重复支付等),我们不接受退款。请读者悉知。
等书出版后我们会尽快将代码手册邮寄给您。
订购问卷
声明:本书的拓展/进阶代码手册,版权归作者所有,任何其他单位和个人不得将其用作商业用途,且不得扫描并发布在网络上,也不得进行其他其他侵权活动。一旦我们发现有侵权的单位或者个人,我们将追究其法律责任。
为了保护版权,我们会在每本手册中不定地点对购买信息进行加密标注,一旦发现有人扫描上传至网上,我们可以迅速得知侵权者。请悉知。
订购方法:
微店购买链接支付定金+填写问卷
支付完定金,待我们定好最终价格,且出版社
正式出版后,订购的读者通过补齐差价
获取代码手册。届时我们会通知大家。
微店购买链接预付定金
(定金40元,似乎只能微信支付)
订购链接(扫描下图即可):
商品介绍
支付完后,一定要填写下面的问卷哦!不然我们无法提前印制手册。
订购信息问卷链接
https://www.wjx.cn/vj/rfWheKu.aspx
或者扫描二维码
本代码手册接受手册封面投稿投稿!!!
有兴趣的读者可以投稿至
hsinglul@163.com
封面被录用的读者将不用补齐差价即可获得代码手册,并且我们将在代码手册致谢中提及此事。欢迎大家积极投稿呀。
我们接受LaTeX版本和PDF等版本的投稿,前提是封面中的元素均为原创且清晰度足够。
致谢
非常感谢各位读者的支持和鼓励!!!
感谢本书的各位校稿人。
(感谢老师等的内容还是 就放在书里吧,不在这里说了)
感谢伍健在DW-分解算法、拉格朗日松弛算法方面提供的资源。也非常感激在算法实现过程中,伍健对我诸多疑惑的耐心解答,同时也非常感谢伍健对这本书出版的大力支持。
感谢华中科技大学博士生黄楠同学和华中科技大学邓发珩同学。他们的代码对本书的完成提供了莫大帮助。
感谢本书中所有参考文献的作者,是你们的研究成果让我学到了许多新的知识,获得了不少新的启发。本书中部分内容参考或者翻译自这些文献,在此向这些研究者们致以崇高的 敬意。
本书的最新进展
以及本书内涉及到的理论的拓展
运小筹
以及读者微信群
以上是关于重新发布|《运筹优化常用模型算法及案例实战:Python+Java实现》 代码手册 开始预购啦!!!的主要内容,如果未能解决你的问题,请参考以下文章
机器学习实战应用案例100篇(二十八)-神经网络算法应用案例