![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线性规划
文章平均质量分 96
-派神-
每天进步一点点……
展开
-
利用or-tools来求解路径规划问题(TSP)
今天我们来学习利用google的or-tools算法框架来求解路径规划问题,路径规划问题大体上可以分为两类,一类是TSP(Traveling Salesperson Problem),即旅行商问题,另一类是VRP(Vehicle Routing Problem)即车辆路径规划问题。一般来说VRP问题的复杂度要大于TSP, 也可以任务TSP是一个简化版的VRP,今天我们先讨论一下最简单的TSP问题,后续会对VRP问题进行深入研究。...原创 2021-10-24 15:24:54 · 3185 阅读 · 3 评论 -
or-tools 整数规划案例分析:工作车间排班问题
之前我们介绍了利用or-tools进行复杂的人员排班问题,今天我们再介绍一种对机器排班的问题,对机器的排班和对人员的排班在业务逻辑和优化目标上有所不同,原创 2021-06-13 11:53:01 · 4291 阅读 · 6 评论 -
google or-tools的复杂排班程序深度解读
在google or-tools的官方例子中有一个复杂的员工排班程序(shift_scheduling_sat.py), 由于官方没有给出问题的需求说明及代码的含义,所以读者对源代码的理解上可能会出现困难,今天我们就来试着解读一下这个复杂的排班程序(shift_scheduling_sat.py),由于我在jupyter notebook中运行源代码,为了能够更加好的理解源代码的含义,我将源代码中的部分代码段的出现的顺序做了调整。第一次接触排班程序的读者可以先理解一下or-tools官方提供的一个简单版的.原创 2020-12-08 15:35:24 · 10082 阅读 · 9 评论 -
利用google or-tools 求解数独难题
数独是一种常见的智力游戏,它的规则是:在一个9×9的方格内填入81个1至9的数字,要求每一行的数字不能出现重复,每一列的数字不能出现重新,同时在9×9的大方格内又划分为9个3×3的小方格要求每个小方格内的数字也不能出现重复。游戏开始时在大方格内已填入若干个数字,要求游戏的参与者填充剩余的数字如下图所示:今天我们用google or-tools的建模语言cp_model来破解以上的数独难题。在建模之前,我们首先要明确数独游戏的规则,我们只需把游戏规则告诉cp_model,至于如何破解则不需要我们操心原创 2020-11-27 11:58:49 · 895 阅读 · 1 评论 -
利用google or-tools 求解逻辑难题:斑马问题
今天我们利用or-tools的cp_model建模语言来求解一个著名的逻辑问题:斑马问题。斑马问题1. 一条街上有五座不同颜色的房子,每座房子住着不同国籍的人,每个人抽不同的烟,喝不同的饮料,养不同的宠物。2. 英国人住在红房子里。3. 西班牙人养狗。4. 住在绿房子里的人喝咖啡。5. 乌克兰人喝茶。6. 绿房子就在乳白色房子的右边。7. 抽流金岁月(烟名)的人养蜗牛。8. 抽薄荷烟的住在黄房子里。9. 住在中间的房子里的人喝牛奶。10. 挪威人住在第一座房子里。11. 抽契斯特原创 2020-11-26 19:25:27 · 3053 阅读 · 6 评论 -
线性规划之Google OR-Tools 简介与实战
最近我一直在从事线性规划方面的约束编程,主要使用的工具是google的or-tools,因此我在互联网上收集了一些有趣的优化问题的例子想给大家分享一下,这是or-tools的官网,里面有许许多多的例子,感兴趣的朋友可以自己去学习一下,我这里不再重复了。下面我先对or-tools的建模语言cp_model及其求解器CP-SAT Solver的使用技巧做一下简单介绍,随后对一些复杂的建模语法通过几个例子对大家详细讲解,以下素材均来自于互联网。OR-Tools官网https://github...原创 2020-11-15 15:47:18 · 13743 阅读 · 24 评论