【发布时间】:2010-11-05 13:29:17
【问题描述】:
我做了很多遗传算法;他们工作(他们很快找到一个合理的解决方案)。但我现在发现了TDD。有没有办法以 TDD 方式编写 genetic algorithm(严重依赖随机数)?
为了更笼统地提出这个问题,您如何测试非确定性方法/功能。这是我的想法:
使用特定的种子。如果我首先在代码中犯了错误,这将无济于事,但有助于在重构时发现错误。
使用已知的数字列表。与上面类似,但我可以手动跟踪代码(这将非常乏味)。
使用常数。至少我知道会发生什么。当 RandomFloat(0,1) 总是返回 1 时,最好确保骰子的读数总是 6。
尝试将尽可能多的非确定性代码移出 GA。这似乎很愚蠢,因为这是其目的的核心。
非常好的测试书籍的链接也将不胜感激。
【问题讨论】:
标签: unit-testing language-agnostic genetic-algorithm non-deterministic