我应该如何对启发式算法进行单元测试?

2024-05-15 08:53:46 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我写了一个蚁群优化(ACO)元启发式的实现,我想写一些单元测试。但是,我不确定测试一个方法的最佳方法,该方法返回“正确”答案的能力因设置而异。在

一个单元如何测试一个启发式算法?在

顺便说一下,代码位于https://github.com/rhgrant10/pants。在


Tags: 方法答案代码httpsgithubcom算法能力
1条回答
网友
1楼 · 发布于 2024-05-15 08:53:46

我用this integration test class测试我的TSP实现,它执行两个测试:

  • 断言它在600秒内达到某个分数。我在我的机器上能在10秒内得到这个分数,所以长时间的超时只适用于速度非常慢的詹金斯奴隶。如果在这个期限内达不到这个分数,它可能永远也达不到。这个测试的重点是不会抛出异常(=烟雾测试),并且至少它在合理的时间内提高了分数。所以总比没有测试好:)
  • 将解算器置于assertionMode(FAST_ASSERT)中,并断言它在600秒内达到某个更容易的分数。在assertionMode中,解算器在其最深的循环中启用健全性检查(以性能为代价)。这是为了清除增量分数计算(=增量分数计算)等方面的错误

除此之外,我还有单元测试来测试我的算法的特定组件,以检查它们是否按预期运行,例如this unit test class。在

相关问题 更多 >