我是这个网站的新手,所以我希望我不会在这里违反任何不成文的规则...... ;-)
我为旅行推销员问题编写了一个启发式算法,它首先创建一个最小生成树,将其扩展以创建一个欧拉环,然后从该欧拉环推导出一个哈密顿圈。
该程序对于最多约 3700 个顶点的图形运行良好(尽管它需要一些时间,在我的笔记本电脑上大约需要三个小时),但现在当我尝试解决约 4300 个顶点的图形时似乎出现了问题。
MST 像往常一样创建,但在创建 Euler-Tour 时,CPU 似乎在我的程序中“失去兴趣”。根据 Windows 任务管理器,java.exe 进程在解决较小的图形时使用了大约 25% 的 CPU(四个内核之一),但现在已降至 0 - 1%。根据 Netbeans IDE,该程序仍在运行,但我不确定如何处理这些信息。
也许与我必须克服一些 OutOfMemory-Errors(堆空间)有关,我通过蛮力的组合解决了这些问题 - 我允许项目创建一个 4090 MB 堆(4 GB RAM) - 并对代码进行了一些更改这可能与这里无关。
如果有人可以给我一个提示可能是什么问题,我会很高兴。
问候,菲尔