我想要什么? 我希望能够从N代的排名人口中生成N + 2代的人口;而N + 1代仍在评估中。 N + 1代评估完成后,将用于生成N + 3代(此时将已经运行N + 2代评估)。
为什么要那样? 为了更好地利用计算资源。然后,我的评估线程可以以最小的同步和等待连续运行。为了进行快速评估和小批量生产,可以在非常短的时间内完成单代生产,然后评估线程就需要等待下一代产品。相反,它已经可以在其他地方工作了。
替代思想 另一种选择是让2个独立的GA运行并生成代,同时轮流访问评估线程。 这样可以更好地利用资源,但是显然并非总是我们想要做的(挖两个洞而不是挖一个洞并不意味着我可以更快地找到石油)