Comments 16
Всегда удивляло, как эти вещи работают. Вроде-бы притянутый за уши концепт, но он работает. И при этом более-менее стабильно.
Так-то некоторые может и знают как выглядит Химмельблау, но было бы лучше добавить в визуализацию рельеф целевой функции. А на счет выглядит как живое из простого кода это да, это бывает действительно потрясно
for I := 0 to 17-3 do begin
result:=result+sin(x[i]*i+x[i+1]+2*x[i+2])*sqr(x[i]);
end;
(в этом случае каждый x[i] последовательно применяется с разными множителями).
Более сложный вариант:
for I := 0 to 17-3 do begin
result:=result+sin(Round(x[i]*i)+x[i+1]+2*x[i+2])*sqr(x[i]);
end;
lit999.narod.ru/soft/ga/index.html
В моих экспериментах, чем сложнее функция, тем больше ощущается выигрыш от использования генетических алгоритмов (речь идет об ускорении на несколько порядков).
А потом была их 2я статья где они подтвердили простую идею. Метаалгоритм управления множеством метаалгоритмов создает узкоспециализированный алгоритм под каждую задачу.
Ну тут цимес в том, что мы ищем не по всем возможным задачам (там большинство функций бессмысленные всюду разрывные), а лишь по некоторому подмножеству "разумных" задач (с +/- аналитически выглящящими функциями)
А вот на рузмных задачах эвристики уже имеют смысл
Ты Крут!
А есть информация, на которой итерации каждый алгоритм нашел ближайшее к оптимальному решению?
Или график отклонения от экстремума по времени.
Понятно, что в связи с особенностями генетического алгоритма все точки никогда не соберутся в экстремуме.
Но нам нужны не все точки, а только лучшая из них
Даниил, а что вы думаете про применение алгоритма роя для задачи рассмотренной в этой публикации: https://habr.com/ru/post/664766/
Генетический алгоритм vs алгоритм роя частиц