or-tools
文章平均质量分 96
-派神-
每天进步一点点……
展开
-
利用or-tools实现带时间窗口车辆路径规划(VRPTW)
之前解释了TSP、VRP、带容量限制的VRP、取货送货VRP ,今天我们再来介绍一种带时间限制的VPR,所谓带时间限制的VRP顾名思义是指车辆需要访问的每一个地点都有一个时间创建,车辆必须在指定的时间窗口内到底指定的地点,这个时间窗口对于我们的算法来说是一个硬约束是不可用违法的。带时间限制的 VRP 示例这里的地点和之前我们介绍的CVRP案例中的地点相同,只不过我们在此基础上我们在每一个地点上方都加上了一个时间窗口,车辆必须在指定的时间窗口内到达该地点。下图显示了蓝色的点代表车辆需要访问地点和黑..翻译 2021-12-24 15:55:57 · 2212 阅读 · 11 评论 -
利用or-tools实现带提货和送货的车辆路径规划(VRP with Pickups and Deliveries)
之前我们已经介绍了TSP、VRP、CVRP,今天我们再介绍另一种VRP的应用场景:带提货和送货的VRP,之前的CVRP是只提货不送货的场景。带取货和送货的 VRP 示例这里我们的每辆车需要在不同的地点提取货物并在其他地点交付货物。我们的要求是为车辆分配路线以提取和交付所有货物,同时最小化所有访问路线的总长度。下图显示了网格上的取货和送货地点,类似于上一个VRP 示例中的地点,这里从取货地点到交货地点都有一条有向边。使用 OR-Tools 解决示例以下部分描述了如何通过取货和送货解决 VR翻译 2021-12-20 16:30:49 · 1799 阅读 · 8 评论 -
利用or-tools来求解带容量限制的路径规划问题(CVRP)
之前我们解释了TSP、VRP问题,使大家都车辆路径规划问题有了初步的了解,今天我们对VRP问题进一步扩展,我们今天来探讨带容量限制的车辆路径规划问题:CVRP(capacitated vehicle routing problem)。CVRP是VRP的另一种应用,车辆具有承载能力,每辆车在有限的承载能力的情况下需要在不同地点取货或送货。货物具有数量,重量或体积,并且车辆具有它们可以承载的最大容量。我们要做的是以最低的成本提货或送货,同时不能超过车辆的容量。下面我们来讲一个具体例子,在讲这个例子之前我们先假.翻译 2021-12-15 14:37:56 · 2804 阅读 · 5 评论 -
利用or-tools来求解路径规划问题(VRP)
在之前的博客中我们介绍了用or-tools来求解旅行商问题(TSP),一般来说VRP问题的复杂度要大于TSP, 也可以认为TSP是一个简化版的VRP,今天我们先讨论一下更为复杂一点的的VRP问题.车辆路径规划问题(VRP)在车辆路线规划问题 (VRP) 中,我们的目标是让多辆车访问多个地点,因此要为每辆车找到访问各个地点的最佳路线(当只有一辆车时,它简化为旅行商TSP问题),这种应用场景主要集中在交通运输、物流、快递等行业中。这里的最佳路线指的是每辆车访问各个不同地点的成本最低,成本最低可以是指翻译 2021-12-05 20:30:33 · 7594 阅读 · 5 评论 -
利用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 · 3331 阅读 · 3 评论 -
google or-tools的复杂排班程序深度解读
在google or-tools的官方例子中有一个复杂的员工排班程序(shift_scheduling_sat.py), 由于官方没有给出问题的需求说明及代码的含义,所以读者对源代码的理解上可能会出现困难,今天我们就来试着解读一下这个复杂的排班程序(shift_scheduling_sat.py),由于我在jupyter notebook中运行源代码,为了能够更加好的理解源代码的含义,我将源代码中的部分代码段的出现的顺序做了调整。第一次接触排班程序的读者可以先理解一下or-tools官方提供的一个简单版的.原创 2020-12-08 15:35:24 · 10619 阅读 · 11 评论 -
利用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 · 945 阅读 · 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 · 3172 阅读 · 6 评论