algorithm - 如何为旅行商算法定义时间距离函数

标签 algorithm traveling-salesman

我写了一个程序来解决旅行商问题,最小化旅行距离。 现在我正在尝试创建一个权重函数,该函数采用距离和时间并输出一个我可以使用的值而不是 TSP 的距离。 我的想法是让用户输入一个百分比(比如 70%)并以某种方式对距离和时间进行加权。

问题是我不知道如何比较以米为单位的距离和以秒为单位的时间。

最佳答案

一种方法是指定广义成本函数,即您确定一个距离单位的成本(以货币单位表示)和一个时间单位的成本。例如,如果您的旅行推销员是真正的旅行推销员,则 costs_per_time_unit 可以近似为 wage_per_time_unit,cost_per_distance_unit 可以近似为 fuel_cost_per_distance_unit + ...

这会产生 c_generalized = cost_per_time_unit * time + cost_per_distance_unit * distance,你就完成了。

关于algorithm - 如何为旅行商算法定义时间距离函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26098362/

相关文章:

c - 如何接受一组数字,如 {301,102,99,202,198,103} 并丢弃 ~100?

algorithm - d-heap 如何在 O(log n) 中执行插入和删除?

arrays - 在一组树中找到正方形

algorithm - 多项式时间内精确的旅行商问题(TSP)解决方案?

traveling-salesman - 计算旅行推销员(TSP)的持有卡普下限

Java:本地搜索 TSP 错误

c++ - 查找总和等于 k ​​的子集的数量

algorithm - 除了哈夫曼树,还有其他最优前缀码树吗?它的高度会和哈夫曼树的高度一样吗?

java - 2 最优求解TSP的opt算法

algorithm - 具有已知全局最优值的旅行商示例