В рамках своей диссертации я написал общую Java-среду для многоцелевого алгоритма оптимизации mPOEMS (многоцелевая оптимизация прототипа с развитыми шагами улучшения), которая представляет собой GA с использованием эволюционных концепций. Он является общим в том смысле, что все проблемно-независимые части были отделены от проблемно-зависимых частей, и интерфейс должен использовать платформу только с добавлением проблемно-зависимых частей. Таким образом, тот, кто хочет использовать алгоритм, не должен начинать с нуля, и это сильно облегчает работу.
Вы можете найти код здесь .
Решения, которые вы можете найти с помощью этого алгоритма, сравнивались в научной работе с современными алгоритмами SPEA-2 и NSGA, и было доказано, что
алгоритм работает сравнимо или даже лучше, в зависимости от показателей, которые вы используете для измерения производительности, и особенно в зависимости от проблемы оптимизации, которую вы ищете.
Вы можете найти его здесь .
Также в рамках своей диссертации и доказательства работы я применил эту структуру к проблеме выбора проекта, обнаруженной в управлении портфелем. Речь идет о выборе проектов, которые добавляют наибольшую ценность компании, поддерживают большинство стратегии компании или поддерживают любую другую произвольную цель. Например. выбор определенного количества проектов из определенной категории или максимизация синергии проектов, ...
Мой тезис, который применяет эту структуру к проблеме выбора проекта:
http://www.ub.tuwien.ac.at/dipl/2008/AC05038968.pdf
После этого я работал в отделе управления портфелем в одном из Fortune 500, где они использовали коммерческое программное обеспечение, которое также применило GA к проблеме выбора проекта / оптимизации портфеля.
Дополнительные ресурсы:
Документация по каркасу:
http://thomaskremmel.com/mpoems/mpoems_in_java_documentation.pdf
презентационная бумага mPOEMS:
http://portal.acm.org/citation.cfm?id=1792634.1792653
На самом деле, с небольшим энтузиазмом, каждый мог легко адаптировать код универсального фреймворка к произвольной многоцелевой задаче оптимизации.