无法理解我如何利用 PAGMO 的批量适应度评估来解决繁重的单目标差分进化问题。
我想使用 BFE 形式的多线程来加快进程。
代码:
int main()
{
// Construct a pagmo::problem from our example problem.
problem p{problemClass{}};
p.fitness({ 1, 2, 3, 4, 5, 6 });
// Algorithm
algorithm algo{de(100, 0.5, 0.7, 6u, 0.01, 0, pagmo::random_device::next())};
//populate
population pop{p, 10};
//evolve population
//pop = algo.evolve(pop);
//BFE
bfe b;
b.operator()(p, <set of vectors (how to generate this?)>);
std::cout << "The population: \n" << b;
}
以上是我尝试过的 BFE 实现,但它没有按预期正常工作。
我已经看到了 Python 的实现,这基本上只是将 bfe 应用于算法。
根据 C++文档,我们提供了问题和向量列表。这让我有点困惑。
- BFE 如何知道应该使用什么算法?
- 如何生成一组向量以传递给 BFE?