我试图解决的问题是:
给定一张由红色或蓝色着色的边构成的图:
a) 给出一个算法,产生一条经过最少红色边的、连接起点(s)和终点(t)的路径。
b) 给出一个算法,找到一条从s到t的路径,并且该路径上的红边最少,而蓝边最少(当选择重复数量的情况下)。
迄今为止: 对于a),我可以使用修改后的BFS算法。当查看节点v时,首先将所有通过蓝色边与v相连的节点放入队列中,然后将其余节点添加到队列的末尾。因此,算法第一次遇到t时,即为所求路径。
如何证明这个算法的正确性?它似乎非常贪心。如何扩展以回答b)?
感谢您的时间。
给定一张由红色或蓝色着色的边构成的图:
a) 给出一个算法,产生一条经过最少红色边的、连接起点(s)和终点(t)的路径。
b) 给出一个算法,找到一条从s到t的路径,并且该路径上的红边最少,而蓝边最少(当选择重复数量的情况下)。
迄今为止: 对于a),我可以使用修改后的BFS算法。当查看节点v时,首先将所有通过蓝色边与v相连的节点放入队列中,然后将其余节点添加到队列的末尾。因此,算法第一次遇到t时,即为所求路径。
如何证明这个算法的正确性?它似乎非常贪心。如何扩展以回答b)?
感谢您的时间。