Как узнать, слишком ли я навязываю конвергенцию, если мой GA быстро сходится к ПРАВОМУ решению?
Я разрабатываю генетический алгоритм для решения двумерной задачи о ранце. В настоящее время я тестирую с 50 itens, каждый из которых имеет вес, объем и стоимость. Каждый цикл 10(из моей популяции 500) лучших людей выживают до следующего цикла, и в моих тестах в конце эти 10 всегда являются наилучшим возможным решением, и очень небольшая часть других 490 разделяет это решение, Анализируя график пригодности, мне кажется, что он слишком быстро сходится к оптимальному решению. Тем не менее, как мне определить, хорош ли мой алгоритм, и проблему, которую я тестирую, просто решить, или я слишком сильно навязываю сходимость, что может привести к преждевременной сходимости к неоптимальному решению в более сложном случаи? Фитнес-график ниже.
1 ответ
По этому вопросу много книг. Вы не можете сказать, является ли что-то "чрезмерно связанным". Вы можете использовать инъекцию, чтобы быть уверенным. Это означает, что, например, если у вас есть 5000 петель (в идеальном мире) на каждую 1000-ю петлю, вы вводите новый материал для населения. Это сработало для меня, и это также написано везде (я думаю)