中国邮递员网络解算器

chinesepostman的Python项目详细描述


#中国邮递员解决方案

我编写这个程序是为了解决
[中国邮递员问题](http://en.wikipedia.org/wiki/route-inspection-problem)。

无向图。

我需要找到最佳的eularian路径。否则,这将是一个真正的,真正的长跑!


确定图形是否有
[欧拉路径](http://en.wikipedia.org/wiki/eulerian_path)
(非常简单)
2。使非欧拉图欧拉,费用最低
(不太容易)
3。找到伪造的eularian路径
(相当简单)


然而,这是一种代价!然后,我们的目标是找出要重复的边,从而消除所有奇数节点,而
的代价是最小的。


1。找到奇数对节点的所有可能组合
2。使用dijkstra算法,找出

3之间最小路径的代价。找到哪一组路径(取决于您有多少奇数节点)
,这将导致最少的总开销
4。用这些新的平行边修改图

现在有一个只有偶数节点的eularian图,可以找到eularian
电路。


开始时,我只是随机地沿着边缘走,直到我碰巧找到了一条路径
,要么是死胡同,要么是一条电路。然后我实现了[fleury's
算法(http://en.wikipedia.org/wiki/eulerian挈path挈fleury.27s挈u算法)
,它说总是在桥上选择一个非桥(原因显而易见)。现在解决大多数电路只需要很少的尝试。

稍后我将实现另一种电路查找方法(hierholzer's?)

在“tests”目录中。您可以通过在根项目文件夹中键入


python tests/run戋tests.py


来运行这些测试。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在javaswing中使用进度条,同时函数在繁重的进程中工作   SWIG(Java):如何调用带有void*out参数的函数?   java帮助解决算法问题   java,但我不想用try/catch块来包围语句!   可以从java类调用安卓类吗?   java流拆分器实现细节   java组织。莫基托。例外情况。滥用。无效使用MatcherException   java如何显示接收到的字符串?   java为什么这段代码不像JSR133建议的那样进入无限循环?   java BufferedReader readLine()从socket获取数据时冻结   java如何使用html表单发送的XML?   java RxJava与观察者代码的并行执行   我想使用CoreJava基于文本输入动态创建一个jpg图像   java如何在Mockito中模拟注入的bean?   java我的程序突然停止工作,我没有改变我记得的任何东西,现在它给出了第二个错误:javafx。fxml。加载异常   java树集排序错误   java RSA加密解密AES密钥并存储在文件中   Java将变量字符串[]与字符串混合在一个字符串数组中   如何在鼠标移动时重新绘制Java SWT应用程序?