2014-09-21 2 views
0

Я использую генетическую функцию алгоритмаMATLAB генетический алгоритм критерий остановки максимальное количество оценок функции

ga(fitnessfcn,nvars,.....,options) 

где можно задать различные параметры для алгоритмов, использующих gaoptimset(...). Однако я не могу понять, как установить максимальное количество оценок объективной функции в качестве критерия остановки для этой функции.

Я нашел параметр Generations для остановки критерия, но он устанавливает только максимальное количество поколений, и каждое поколение имеет более одной функции оценки.

Итак, может ли кто-нибудь помочь мне в этом?

ответ

0

Если вы говорите о стандартном генетическом алгоритме, скажем, у вас есть популяция N хромосом. В каждом поколении пригодность каждого антитела рассчитывается путем вызова функции оценки. Итак, для G-поколений общее число оценок функций в G * N. Таким образом, вместо того, чтобы количество оценок функции, установить количество поколений

G = (желаемое число оценок функции)/(размер популяции)

Число оценок функции, как правило, используется в сравнениях вместо от числа поколений, поскольку:

  • Различные алгоритмы выполняют различное количество оценок функций за поколение. Например, иммунные системы создают C-клоны для каждого антитела и оценивают клоны, поэтому число оценок функций равно G * N * C
  • Функция оценки обычно является самой вычислительной дорогостоящей частью алгоритма.
+0

, но не все хромосомы предыдущего поколения выживают до следующего поколения. Итак, эта формула не работает в моем случае. – megamind

+0

Даже если некоторые хромосомы отвергнуты, они все еще оцениваются. Поскольку размер популяции остается постоянным, N хромосом оценивается в каждом поколении. –

Смежные вопросы