Предположим, что у нас есть генетический алгоритм канонического острова с кольцевой топологией. Я использую C ++, PPL и MS Visual Studio 2010.
Удобно работать с parallel_for из библиотеки PPL. Какие программные примитивы мне следует использовать, если остров должен получить лучшего текущего человека от своего соседа, когда включен флаг стагнации? Я не хочу проверять массив флагов стагнации после завершения цикла parallel_for, я хочу кормить «голодные» острова на лету. Есть ли у PPL средства для этого? У каждого острова есть указатель на свой сосед. Мне нужен какой-то критический раздел в методе Evolve () для блокировки метода GetBestIndividual (). Evolve () вызывается параллельно (параллель_ для цикла для островов).