Я сделал немного GP (note:very мало), работают в колледже и играли вокруг с ним недавно. Мой вопрос в отношении начальных настроек выполнения (численность населения, количество поколений, минимальной глубины / макс. глубины деревьев, минимальной глубины / макс. глубины начальных деревьев, проценты для использования для различных операций воспроизведения, и т.д.). Какова нормальная практика для установки этих параметров? Какие бумаги/сайты люди используют в качестве хорошего руководства?
Вы обнаружите, что это очень сильно зависит от вашей проблемной области - в частности, от характера фитнес-функции, вашей реализации DSL и т. Д.
Из личного опыта:
Взгляните на объемные фолианты Козы по этим вопросам.
Когда я начал изучать генетические алгоритмы, у меня возник тот же вопрос.
Я хотел собрать данные, изменяющие параметры по очень простой задаче, и связать заданные значения операторов и параметров (например, частоту мутаций и т. Д.) С заданными результатами в зависимости от размера популяции и т. Д.
Как только я начал изучать GA a немного больше. Затем я понял, что с учетом огромного количества переменных это огромная задача, а обобщение - чрезвычайно трудное.
исходя из моего (ограниченного) опыта, если вы решите упростить задачу и использовать фиксированный способ реализации кроссовера, отбора и просто поиграть с размером популяции и скоростью мутации (реализованными определенным образом), пытаясь придумать общие результаты вы скоро поймете, что слишком много переменных все еще используется, потому что в конце дня количество поколений, после которых статистически вы получите достойный результат (как бы вы ни хотели определить достойный ), все еще очевидно, в первую очередь зависят от решаемой проблемы и, следовательно, от размера генома (представление одной и той же проблемы разными способами, очевидно, приведет к разным результатам с точки зрения влияния данных параметров GA!).
Безусловно, можно составить набор руководящих принципов - как это доказывает (редкая, но хорошая) литература - но вы сможете эффективно обобщить результаты в статистических терминах только тогда, когда рассматриваемая проблема может быть закодирована точно таким же Таким образом, пригодность оценивается в некотором роде эквивалентным образом (что чаще всего означает, что вы сталкиваетесь с очень похожей проблемой).
Почему бы вам не попробовать использовать генетический алгоритм для оптимизации этих параметров для вас? :)
Любую проблему в информатике можно решить с помощью другого уровня косвенного обращения (за исключением слишком большого количества уровней косвенного обращения.)
-Дэвид Дж. Уиллер