我正在编写一个模拟退火程序,并且在调试它时遇到了一些麻烦。任何的建议都受欢迎。
首先,输出不是确定性的,所以我已经开始运行它一百次并查看平均值和标准差。
但是完成一个测试用例需要很长时间(> 30 分钟)。
通常,我会尝试减少输入,但减少迭代次数会以无法完全预测的方式直接降低结果的准确性。例如,冷却计划是与迭代次数成比例的指数衰减。减少单独运行的数量会使输出非常不可靠(我试图寻找的错误之一是运行之间的巨大差异)。
我知道过早的优化是万恶之源,在程序甚至正确之前进行优化肯定还为时过早,但我正在认真考虑重写这是一种更快的语言(Cython 或 C),因为我知道我必须这样做最后将其移植回 Python 进行提交。
那么,有什么方法可以比我现在更好地测试模拟退火算法吗?或者我应该在测试之间做其他事情吗?
披露:这是课程作业,但我并不是要您帮助我进行实际模拟。