我正在使用终端客户端与大型计算机进行交互。整个界面基于屏幕的概念。示例工作流可能如下所示:
我编写了一个python应用程序,通过这个终端界面自动处理记录。我遇到的困难之一是有很多不同的屏幕,我现在的应用程序对于如何从一个屏幕到另一个屏幕非常愚蠢。它可以从登录屏幕转到添加备忘录。但是,如果它发现自己在备忘录屏幕上并且需要取消激活帐户,它必须退出并再次登录,因为它只知道如何从登录屏幕进入停用屏幕,而不是从添加备忘录屏幕。< / p>
所以,我想在我的应用程序中创建一个“地图”,将每个屏幕链接到“下一个”屏幕。然后,我需要一种能够以最短的方式告诉如何从任何屏幕A到达任何屏幕B的算法。
我已经设置了一些屏幕对象并将它们“关联”到它们旁边的屏幕上。所以,我正在寻找一些我可以实现的算法或我可以使用的python库,它将完成从一个屏幕到另一个屏幕的路径计算工作。
编辑:我意识到我正在寻找某种最短路径图算法。目前扔给我的是我没有“距离”,我只有节点。所以,我真的不想要最短距离,我想要最少的节点。
答案 0 :(得分:0)
如果您已创建屏幕拓扑,则A *算法应该可以正常工作。
答案 1 :(得分:0)
由于我使用的是未加权的图形,看起来最简单的方法是广度优先搜索:
http://en.wikipedia.org/wiki/Breadth-first_search
编辑:我找到了一个可以完成所需工作的库: