假设我们有一个简单的连通和无向图G(V,E)。该游戏由两名玩家玩。对于每个游戏,玩家A在节点t处开始,而玩家B在节点v处开始。还有一个节点d,每个游戏都相同。
在游戏中,玩家A总是最先玩。他的目标是在玩家B到达节点d之前到达节点d(玩家B不能到达节点d)。另一方面,玩家B的目标是到达A所在的节点。如果玩家A,B在上一轮分别位于节点x,y,并且再次重复这些位置,则比赛以平局结束。在每一回合中,拥有优先权的玩家必须移至相邻节点。
我需要做一个算法,为每个可能的起始组合t,v∈V(其中t≠v)给出游戏结果。
到目前为止,我所做的是一个动态编程O(| V | 3)解决方案。我们可以将该游戏的所有可能状态记录为(玩家A的位置,玩家B的位置,下一个要移动的玩家),并找到每个状态的所有可能结果状态。
这能做得更好吗?