与多名推销员一起旅行的推销员?

2024-06-22

我有一个问题已被有效地简化为具有多个推销员的旅行推销员问题。我有一个要从初始位置访问的城市列表,并且必须访问销售人员数量有限的所有城市。

我正在尝试想出一个启发式方法,想知道是否有人可以帮忙。例如,如果我有 20 个城市,有 2 名销售员,我想采取的方法是两步法。首先,将 20 个城市随机分为 10 个城市,每个城市有 2 个推销员,我会发现每个城市的旅行就好像它在几次迭代中是独立的一样。之后,我想交换或分配一个城市给另一个推销员并找到旅游团。实际上,这将是一个 TSP 问题,然后是最小完工时间问题。这样做的问题是速度太慢,并且交换或分配城市的良好邻域生成很困难。

任何人都可以就如何改进上述内容提出建议吗?

EDIT:

每个城市的地理位置都是已知的,推销员的起点和终点都是相同的。目标是最大限度地减少最大行驶时间,从而使此类问题成为最小完工时间问题。例如,如果 salesman1 需要 10 小时,salesman2 需要 20 小时,则最大行程时间将为 20 小时。


TSP是一个难题。多 TSP 可能更糟。我不确定您是否可以使用这样的临时方法找到好的解决方案。您尝试过元启发式方法吗?我首先尝试使用交叉熵方法:使用它来解决您的问题应该不会太难。否则寻找通用算法、蚁群优化、模拟退火......

请参阅 Boer 等人的“交叉熵方法教程”。他们解释了如何在 TSP 上使用 CE 方法。针对您的问题的一个简单调整可能是为每个推销员定义不同的矩阵。

您可能想假设您只想找到销售人员之间的最佳城市划分(并将每个销售人员的最短行程委托给经典的 TSP 实现)。在本例中,在交叉熵设置中,您考虑每个城市 Xi 出现在推销员 A 的旅行中的概率:P(A 中的 Xi) = pi。然后你在 p = (p1, ... pn) 的空间上工作。 (我不确定它是否会很好地工作,因为您必须解决许多 TSP 问题。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与多名推销员一起旅行的推销员? 的相关文章

  • 如何从单链表的末尾找到第n个元素?

    以下函数试图找到nth to last单链表的元素 例如 如果元素是8 gt 10 gt 5 gt 7 gt 2 gt 1 gt 5 gt 4 gt 10 gt 10那么结果是7th到最后一个节点是7 任何人都可以帮助我了解这段代码是如何工
  • 协作投票算法的用户分布

    我的应用程序 实际上是一个游戏 的用户回答问题即可获得积分 问题由其他用户提供 由于数量有限 我无法亲自检查所有内容 因此我决定将过滤过程众包给用户 玩家 规则很简单 每个用户都会看到一个问题来评价好 坏 不确定 当问题被评为 差 5 次时
  • 单调性和启发式的可接受性之间有什么区别?

    我正在阅读我的人工智能教科书 我很好奇启发式的单调性和可接受性之间有什么区别 我知道它们并不相互排斥 据我所知 可接受的启发式方法仅仅意味着您可以确保获得解决方案的最短路径 如果存在 我正在努力解决的是单调属性的概念 有人可以用我可以理解的
  • Python 中聚类相似字符串的算法?

    我正在编写一个脚本 该脚本当前包含多个 DNA 序列列表 每个列表都有不同数量的 DNA 序列 并且我需要根据汉明距离相似性对每个列表中的序列进行聚类 我当前的实现 目前非常粗糙 提取列表中的第一个序列并计算每个后续序列的汉明距离 如果它在
  • ASM 中从小端到大端的快速转换

    我在 C 中有一个 uint 类型数组 在检查程序是否在小端机器上运行后 我想将数据转换为大端类型 因为数据量可能会变得非常大 但总是均匀的 所以我想考虑将两个 uint 类型作为 ulong 类型 以获得更好的性能并在 ASM 中对其进行
  • 什么是日历队列?

    我正在致力于构建一个离散事件模拟器 维基百科提到有几种通用优先级队列非常适合在 DES 中使用 具体来说 它提到日历队列是一个很好的结构 我找到了一份 pdf 1988 年的 其中提到了日历队列 但在大多数情况下我找不到关于它们的任何其他内
  • 解决复发问题

    我被给予F 0 X and F i A F i 1 2 B F i 1 C 1000000 for 1 i N 现在给出N A B C and X 如何找到所有N元素有效吗 我需要将这 N 个元素分成 2 个集合 其中最大的元素在第一个集合
  • 匈牙利算法 - 系统分配

    我正在一个项目中实现匈牙利算法 我设法让它工作 直到所谓的步骤 4维基百科 http en wikipedia org wiki Hungarian algorithm Matrix 5Finterpretation 我确实设法让计算机创建
  • 位图中连续区域的计数是否可以比 O(r * c) 改进?

    您将获得一张由卫星拍摄的表面图像 该图像是一个位图 其中水用 标记 土地标记为 相邻组 形成一个岛屿 二 如果它们水平 垂直或对角相邻 则它们是相邻的 您的任务是打印位图中岛屿的数量 输入示例 输出 5 这是我的实现 需要O r c 空间和
  • 计算序列 1,3,8,22,60,164,448,1224... 的第 n 项? [复制]

    这个问题在这里已经有答案了 可能的重复 我想以 Order 1 或 nlogn 的顺序生成序列 1 3 8 22 60 164 的第 n 项 https stackoverflow com questions 11301992 i want
  • 递归最长递增子序列的记忆

    我为最长递增子序列提出了简单的以下递归解决方案 但是 您可以帮助将记忆包含到这个递归解决方案中吗 public int findLIS int a int maxSoFar int item int count if item a leng
  • 将数字 1 排列在二维矩阵中

    给定二维矩阵的行数和列数 初始矩阵所有元素均为0 给定每行中应该出现的 1 的数量 给定每列中应该出现的 1 的数量 确定是否可以形成这样的矩阵 例子 Input r 3 c 2 no of rows and columns 2 1 0 n
  • 如何规划庭院灯最有效的路线

    我正在尝试挂一些庭院灯 基于另一个问题 https cs stackexchange com questions 80134 christmas light route efficiency我问 我意识到我需要一种算法来解决路由检查问题 h
  • 带提示的二分查找

    我有一个简单的std vector包含一些已排序的数字 按升序 我想查找一个元素 到目前为止我使用 return std lower bound vec begin vec end needle Where needle是我寻找的元素 然而
  • 如何决定权重?

    对于我的工作 我需要某种具有以下输入和输出的算法 输入 一组日期 过去的日期 输出 一组权重 每个给定日期一个权重 所有权重的总和 1 基本思想是 距离今天日期最近的日期应该获得最高的权重 第二个最接近的日期将获得第二高的权重 依此类推 有
  • 如何随机打乱一个比 PRNG 周期更多排列的列表?

    我有一个包含大约 3900 个元素的列表 我需要对其进行随机排列以产生统计分布 我环顾四周 发现了这个使用 Python random shuffle 进行随机播放的列表的最大长度 https stackoverflow com quest
  • 从邻接表计算图的入度

    我遇到了这个问题 其中需要根据邻接列表表示来计算图的每个节点的入度 for each u for each Adj i where i u if i u E in degree u 1 现在根据我的说法 它的时间复杂度应该是O V E V
  • 缩小位图字体的算法

    这是后续这个问题 https stackoverflow com questions 4179414 low level c display text pixel by pixel 我正在开发一个低级 C 应用程序 我必须在其中绘制文本 我
  • 如何从文件中读取 N 随机行而不将文件存储在内存中?

    我熟悉从文件中读取单个随机行而不将整个文件读入内存的算法 http perldoc perl org perlfaq5 html How do I select a random line from a file 3f 我想知道这个技术是否
  • 什么是无锁多线程编程?

    我见过有人 文章 SO 帖子说他们已经设计了自己的 无锁 容器用于多线程使用 假设他们没有使用影响性能的模数技巧 即每个线程只能基于某个模数进行插入 数据结构如何能够是多线程的而且是无锁的 这个问题是针对C和C 的 无锁编程的关键是使用硬件

随机推荐

  • Emacs、R、Sweave:通过 Emacs 启动 Sweave 时无法识别 UTF-8 编码

    我在 Mac OS X 10 7 3 和 R 2 14 0 上使用 Emacs 24 我有一个文件foo Rnw含有 documentclass paper a4 210mm 297mm pagesize write page size t
  • Vuetify 数据表:item-class 不执行任何操作

    我对 Vuetify v 2 3 4 数据表中的 item class 属性感到非常困惑 即使我尝试添加静态文本类 它也不会执行任何操作
  • 字符串“G”未显示

    这就是 client cpp 文件 所以有什么问题 我声明这个字符串 G 我输入昵称 然后在这里 cout P S 我认为我不需要发布 server cpp 文件 是吗 pragma comment lib Ws2 32 lib inclu
  • 在 Google Play 控制台的预启动测试中提供自动登录凭据 [Ionic]

    我最近在 Google Play 上上传了我的第一个 ionic 应用程序 我开始探索 Google Play 控制台并遇到了预发布测试 我们需要为登录文本字段 密码和登录按钮提供 Android 资源名称 以使其正常工作 关于如何获取此
  • 使用新的自定义搜索 API 在 Google 图片上搜索图片?

    所以 我正在测试这段代码 import requests import json searchTerm parrot startIndex 0 searchUrl http ajax googleapis com ajax services
  • 将图像上传到服务器时图像方向发生变化

    我正在使用以下代码将图像上传到服务器 它已成功上传 但图像方向随 90 变化 我不明白如何解决这个问题 我在 SD 卡中的图像方向正确 但我不知道为什么该图像改变其方向 HttpClient httpClient new DefaultHt
  • 如何获取C/C++系统语言?

    如何获取C C 系统语言 例如 en US 或 en GB 在 POSIX 系统上 它看起来像 setlocale LC CTYPE NULL 将返回当前区域设置
  • 从包含 5 个以上项目的自定义选项卡栏的导航视图中删除“更多”按钮

    您好 我在 swift ui 中创建了一个自定义选项卡栏 其中包含 6 个选项卡 每个选项卡都嵌入 nivation 视图中 当我选择第五个或第六个选项卡时 我会在顶部看到一个 更多 按钮 这几乎就像导航链接的后退按钮 我怎样才能删除这个
  • 使用 Photoshop 脚本编写“Console.log” - ExtendScript Toolkit

    我第一次编写一些 Photoshop 脚本 如果有一个类似 console log 的函数来在 Javascript 控制台中输出数组和对象值 那肯定会很棒 ExtendScript 工具包应用程序 http www adobe com d
  • 查找 int 中的第 n 个 SET 位

    我想要找到的位置不仅仅是最低设置位n最低的设置但是 我是NOT谈论价值n第 位位置 例如 假设我有 0000 1101 1000 0100 1100 1000 1010 0000 我想找到设置的第四位 然后我希望它返回 0000 0000
  • 将 html 插入 div 并保持 ui-router ui-sref 属性正常工作

    这是我的案例 我有一个 div 需要从函数注入一些 html div div 在我的控制器中我有 this getMyLink function return a my link a 它有效 但根本不起作用 我的 html 最后只有 a m
  • 在 JSON 序列化之前更改对象

    我想在 JSON 序列化之前更改一个对象 为此 我创建了一个带有更改方法的接口 并且任何实现该接口的类都将 尝试 更改自身 是的 可能这样做不是最佳选择 但例如清酒就可以了 JsonSerialize using ChangesValues
  • 如何在一个网页上连接多个 MySQL 数据库?

    我的信息分布在多个数据库中 并且希望使用 PHP 将所有信息放到一个网页上 我想知道如何在单个 PHP 网页上连接到多个数据库 我知道如何使用以下方式连接到单个数据库 dbh mysql connect hostname username
  • PyMySQL 无法连接到本地主机上的 MySQL

    我正在尝试使用 PyMySQL 连接到本地主机上的 MySQL import pymysql conn pymysql connect db base user root passwd pwd host localhost 但是 在 Pyt
  • Protobuf.net 异常 - 检查元数据时超时

    I am 有时尝试使用 protobuf net 反序列化对象时收到以下异常 我很惊讶 因为我从来没有超过一个线程同时反序列化同一个对象 并且 protobuf net 源似乎没有使用任何静态对象进行反序列化 该异常确实提出了一个解决方案
  • jQuery 绑定事件触发事件

    我调用下面的第一个函数将第二个函数绑定到 onClick 事件 奇怪的是 调用第一个函数会导致触发第二个函数 第一个函数中的 LinkName 参数是表 td 元素的名称 可能不相关 function EnableExpand LinkNa
  • 在 main 方法中使用省略号?

    如果我在 main 方法中使用省略号会有什么不同吗 public static void main String args 没有不同 该 省略号 语法称为varargs http docs oracle com javase 1 5 0 d
  • 从 winforms picturebox 中的 url 加载的图像是否存储在缓存中?

    在 winform 应用程序的表单中 我必须显示存储在网络服务器上的图像 多个图像 显示图像没有问题 因为我可以简单地将 URL 分配给图片框 picturebox1 ImageLocation http example com Image
  • 如何用seaborn绘制阴影误差带?

    我希望创建如下图 其中显示一些值和标准差 我有两组值 包含通过两种不同方法获得的平均值和标准差 我想这样做seaborn https seaborn pydata org index html 但我不知道具体该怎么做 因为官方示例 http
  • 与多名推销员一起旅行的推销员?

    我有一个问题已被有效地简化为具有多个推销员的旅行推销员问题 我有一个要从初始位置访问的城市列表 并且必须访问销售人员数量有限的所有城市 我正在尝试想出一个启发式方法 想知道是否有人可以帮忙 例如 如果我有 20 个城市 有 2 名销售员 我