Кто-нибудь видел убедительные результаты использования Genetic Algorithm Framework .Net?
Я вижу плохую рандомизацию в демо-версии задачи коммивояжера, предоставленной с помощью Genetic Algorithm Framework. Следующий вызов генерирует один и тот же порядок перетасовки генов в популяции исходных хромосом x 100:
chromosome.Genes.ShuffleFast();
Если я выполняю один шаг по коду, порядок генов выглядит случайным, поэтому я подозреваю, что в ShuffleFast() есть ошибка time/Rdn(), или же я пропускаю шаг настройки.
Я попытался обойти эту проблему путем предварительной перетасовки последовательностей хромосомных генов, и это привело к незначительным изменениям в результатах TSP. Однако консольный журнал запуска по-прежнему показывает, что GAF обнаружил только 4 потенциальных решения для 400 поколений населения. Это противоречит видеороликам GA на YouTube, показывающим реализации генетического алгоритма, ориентирующиеся на предлагаемое решение с большим дрожанием. Я цитирую это как еще одно указание на то, что у GAF есть системная внутренняя проблема с генерацией случайных чисел.
Структура генетического алгоритма очень хорошо задокументирована в блоге авторов, поэтому я стараюсь быть непредвзятым в качестве причины.
Шаги для воспроизведения = загрузите GAF из nuget, скомпилируйте и отладьте проект по умолчанию с точкой останова после цикла создания хромосом for, проверьте популяцию. Решения. Windows 7, VS2015, .Net 4.5 и 4.61. Отладка или выпуск.