English 中文(简体)
测试汉密尔顿 开拓者执行
原标题:Testing a Hamiltonian Path finder implementation

我正在执行一项算法,在直线图表中找到汉密尔顿的最佳途径。 我已经实施了一个算法,似乎工作得较好,但我并不完全相信在某些情况下存在微妙的 b或其他问题。 因此,我需要几个了解解决办法的多样化网络,以检查我的执行情况是否也解决了这些问题。

由于Wikipedia意味着汉密尔顿的道路只是不直接的图表的一个适当术语,假设“Hamiltonian路”是指一条直线或以其他方式在某个特定网络上每 no一次访问的道路。

简而言之,我们可以假定,每一条连接(或“对面”)都有积极的分类价值(或“宽度”)。 我们还可以认为,噪音与自己有关,在任何两点之间,每一方向都不会有一个优势。

我对总长度最高的道路感兴趣,因此,“最佳”是指最长的,尽管如果我想到最短的时间(如传统TSP)的话,可能没有什么变化。 我也正在使用贪.算法。

我在什么地方或如何获得解决了TSP的定向网络? 如果能够找到实际解决办法和贪 gr(或其他冷漠)解决办法,情况甚至更好。 这些网络应当足够庞大,足以进行信息丰富的测试,但对于我来说,小到能够人工检查解决办法(如果最初没有找到解决办法)。 这些网络在地理上应具有多样性,既包括“海洋”网络,也包括“问题”网络。

对于寻求这种帮助的人来说,我最好的是以下网络:

  A B C D E
A 0 1 2 0 1
B 1 0 0 0 1
C 0 3 0 1 2
D 4 0 0 0 0
E 1 0 0 2 0

这是一项紧急清单,各行各为后方,各栏为目的地。 这些数字是每一对口的长度,0表示“无对口”。 例如,4个显示,从到的边缘时间。 Dto A is 4, and there is no connection from A to D (length 0).

这个网络的最大长途是E->D->A->C->B。 其总长度为2+3+3+3=11。 我认为,一种贪 gr的算法能够找到本案的最佳解决办法,而且可以明显看出,它是一种最佳的解决办法。

问题回答

你在汉密尔顿道路上读到Wiki入口时,应该注意到,找到汉密尔顿的道路是国家硬的(确切地说,你重新解决的是普惠制,但是这并没有多大变化)。 这一单一事实表明,一种贪.的算法给你解决问题的最佳办法。

如果贵重算法与贵重算法一样发挥作用,

取走价值/宽度决定的对冲,

在施工道路上加边,除非是

(a) 建立周期

(b) 在施工道路上创造出一条折射线3

否则,它就会ski。

here s the minimal counter-example I can think of where the greediness makes it fail:

  A B C D E F
A 0 5 4 0 0 0
B 5 0 5 0 4 0
C 4 5 0 1 0 0
D 0 0 1 0 5 4
E 0 4 0 5 0 5
F 0 0 0 4 5 0

Greedy algorithm finds a path A-B-C-D-E-F with total length of 21, while the optimal path is A-C-B-E-D-F with total length of 22 (there s more of them with the same length).

如果你的算法不同,它可能很好地发挥作用,但如果它贪 gr的话,还会有一个反面的例子。 如果是这样的话,你就会重新表示兴趣。





相关问题
Selenium not working with Firefox 3.x on linux

I am using selenium-server , selenium rc for UI testing in my application . My dev box is Windows with FireFox 3.5 and every thing is running fine and cool. But when i try to run selenium tests on my ...

Best browser for testing under Safari Mobile on Linux?

I have an iPhone web app I m producing on a Linux machine. What s the best browser I can use to most closely mimic the feature-limited version of Safari present on the iPhone? (It s a "slimmed down" ...

Code Coverage Tools & Visual Studio 2008 Pro

Just wondering what people are using for code coverage tools when using MS Visual Studio 2008 Pro. We are using the built-in MS test project and unit testing tool (the one that come pre-installed ...

Is there any error checking web app cralwers out there?

Wondering if there was some sort of crawler we could use to test and re-test everything when changes are made to the web app so we know some new change didn t error out any existing pages. Or maybe a ...