我正在使用终端客户机与大型机进行交互。整个界面基于屏幕的概念。示例工作流可能如下所示:
我已经编写了一个python应用程序,通过这个终端接口自动处理记录。我遇到的一个困难是,有很多不同的屏幕,而我的应用程序现在对于如何从一个屏幕到另一个屏幕相当愚蠢。它可以从登录屏幕转到添加备忘录。但是,如果它发现自己在备忘录屏幕上,需要停用一个帐户,它必须注销并再次登录,因为它只知道如何从登录屏幕进入停用屏幕,而不知道如何从添加备忘录屏幕进入停用屏幕。你知道吗
因此,我想在我的应用程序中创建一个“地图”,将每个屏幕链接到它旁边的屏幕。然后,我需要一个算法,可以告诉如何从任何屏幕A到任何屏幕B在尽可能短的方式。你知道吗
我已经设置了一些屏幕对象,并将它们“关联”到旁边的屏幕。所以,我正在寻找某种我可以实现的算法,或者我可以使用的python库来计算从一个屏幕到另一个屏幕的路由。你知道吗
编辑:我意识到我在寻找某种最短路径图算法。现在让我困惑的是,我并没有真正的“距离”,我只有节点。所以,我真的不想要最短的距离,我想要最少的节点。你知道吗
因为我使用的是未加权图,所以看起来最简单的方法是广度优先搜索:
http://en.wikipedia.org/wiki/Breadth-first_search
编辑:我找到了一个库,可以做我需要的一切:
http://networkx.lanl.gov/reference/generated/networkx.algorithms.shortest_paths.generic.shortest_path.html
如果已经创建了屏幕的拓扑结构,那么a*算法应该可以正常工作。你知道吗
相关问题 更多 >
编程相关推荐