假设我有一个节点图(网络),权重如下: 1. 在两个节点之间的链接上单向行驶。2. 在两个节点之间的链接上以另一种方式行驶(这些可能不同)。3. 从一个链接更改为另一个链接。
此外,一些节点只是单向的。
在这种情况下,什么是最好的算法:a)找到最小生成树 b)找到两个节点之间的最短路径 c)找到“旅行推销员”路径(即,最短的路径去任何地方,重复最少) ?
另外,最好将双向事物视为两条单向路径,而不是在每个方向具有不同权重的双向路径?
- -一个例子 - -
3
A --<2/3>-- B --<3/2>-- C
| 1 2|3
| |
^1/4 ^4/3
| |
|3 4|
8 D --<3/5>-- E
|2
|
1 ^3/1
|
|
F
其中 <2/3> 表示 2 左行和 3 右行的重量。^1/4 表示 1 上行和 4 下行。两个链接之间的单个数字是更改链接的成本 - 例如,从 AD 到 DF 成本为 8,从 AB 到 BE 成本为 2。
希望这是有道理的...
西蒙
(ps 为不好的术语道歉 - “链接”,“边缘” - 无论你喜欢什么;))
为了更好地解释权重类型,假设边缘是火车轨道,节点是车站。边缘的成本是火车在两个车站之间的行程时间,节点的成本是换乘时间的长短(即使在同一节点,边缘之间也可能有所不同,具体取决于站台的距离,服务的定期性等)。