当前位置: 首页 > 知识库问答 >
问题:

OptaPlanner CVRPTW-容量问题解决方案

严言
2023-03-14

我有以下CVRPTW问题,我正在尝试使用OptaPlanner找到一个好的解决方案。时间为hh: mm: ss格式。

我的DRL文件是这样的。此外,我还定义了一个与准备时间之前到达相关的硬约束。我的解算器配置如下,但终止标记不同:

<termination>
    <terminationCompositionStyle>OR</terminationCompositionStyle>
    <maximumSecondsSpend>10</maximumSecondsSpend>
    <scoreAttained>0hard/-750000soft</scoreAttained>
</termination>

这是问题陈述:

PROBLEM STATEMENT:
CustID  ReadyTIME   DueTIME     ServiceDUR  DEMAND
1       20:38:18    20:44:18    00:05:00    2   
2       20:20:53    20:26:53    00:05:00    4   
3       20:51:39    20:57:39    00:05:00    3   
4       20:20:18    20:26:18    00:05:00    6   
5       20:34:15    20:40:15    00:05:00    5   
6       20:21:40    20:27:40    00:05:00    10  

我有2辆车,容量为10件物品和1个仓库。

这是解决方案(客户按车辆分组,按到达时间排序):

Vehicle 1   Capacity 10 - from Depot [1]
[6]     D: 10   Ar.T: 20:21:40  Prev.D: 00:02:21    Next.D: --:--:--

Vehicle 2   Capacity 10 - from Depot [1]
[4]     D: 6    Ar.T: 20:20:18  Prev.D: 00:01:08    Next.D: 00:02:21
[2]     D: 4    Ar.T: 20:27:42  Prev.D: 00:02:24    Next.D: 00:03:38
[5]     D: 5    Ar.T: 20:36:03  Prev.D: 00:03:21    Next.D: 00:02:09
[1]     D: 2    Ar.T: 20:43:26  Prev.D: 00:02:23    Next.D: 00:07:23
[3]     D: 3    Ar.T: 20:55:40  Prev.D: 00:07:14    Next.D: --:--:--

(D=需求,Ar.T=到达时间,上一个D=与上一个位置的距离,下一个D与下一个位置的距离)

如您所见,车辆2必须运输6 4 5 2 3=20个项目,这大于容量。如果配置中存在与容量相关的硬约束,我不理解解算器为什么建议我使用此解决方案。

考虑到我的规则,这不是一个可接受的解决方案。我错过什么了吗?难道不存在解算器不提供解的情况吗?是否考虑“解算器失败”终止?

共有1个答案

司徒高丽
2023-03-14

如果我错了,请更正,但您有:

>

总容量为20辆(2辆,每辆10辆)

当你的卡车只能运输20件物品时,你不可能运输30件物品。没有可行的解决方案(因此OptaPlanner提供了它找到的最佳不可行解决方案)。

注意:如果同一辆车可以多次使用,请添加额外的车辆实例并添加约束,以惩罚使用同一车牌的多个车辆实例。

 类似资料:
  • 本文向大家介绍Nginx tp3.2.3 404问题解决方案,包括了Nginx tp3.2.3 404问题解决方案的使用技巧和注意事项,需要的朋友参考一下 最近我把Apache给换成nginx,当我把tp项目搬过去运行的时候发现404 错误 ,原来是因为nginx不支持 pathinfo 模式,需要自己配置 下面我配置 在server配置里面 保存配置之后,重启 nginx ,配置成功 直接支持类

  • 解决方案常见问题 Windows Needing to re-target the Windows SDK XCode XCode PNG Compression issue It is possible that your PNG images contain incorrect color profiles. You can convert color profiles using Image

  • 我们已经探索了 Python 语言中的许多部分,现在我们将通过设计并编写一款程序来了解如何把这些部分组合到一起。这些程序一定是能做到一些有用的事情。这其中的方法就是去学习如何靠你自己来编写一份 Python 脚本。 问题 我们希望解决的问题如下: 我想要一款程序来备份我所有的重要文件。 虽然这是一个简单的问题,但是其中并没有足够的信息有助于让我们开始规划一份解决方案。我们需要进行一些分析(Anal

  • 我在独立的tomcat服务器上部署了broadleaf演示站点,mysql作为后端和独立的solr服务器。我可以通过8983端口访问solr服务器。我看到我的核心可以在http://localhost:8983/solr/#/catalog和catalog_reindex(注意url中的散列)。 vesion:Solr:Solr-7.5.0,阔叶商业:DemoSite-develop-5.2。十、

  • 10.10. 公共问题的解决方案 10.10.1. 对一个特定的 DataSource 使用错误的事务管理器 开发者需要按照需求仔细地选择正确的 PlatformTransactionManager 实现。理解Spring的事务抽象如何与JTA全局事务一起工作是非常重要的。使用得当,就不会有任何冲突:Spring仅仅提供一个直观的、可移植的抽象层。 如果你使用全局事务,你 必须 为你的所有事务操作

  • 当我们基本完成程序的设计,我们就可以编写代码了,它是对我们的解决方案的实施。 版本一 例10.1 备份脚本——版本一 #!/usr/bin/python # Filename: backup_ver1.py importos importtime # 1. The files and directories to be backed up are specified in a list. sour