Генетическое программирование в C++, предложениях библиотеки?

Слишком поздно реагировать, но мы решили поделиться.

Я боролся с Дженкинсом, развернутым на Tomcat, пытался выполнить скрипт, он помогает, но уходит, если tomcat перезагружен.

Сделано постоянное исправление, установив свойство в catalina.properties в tomcat.

Файл свойств: tomcat_installation_dir / conf / catalina.properties Просто скопируйте в конец ссылку в каталинии. Свойства в последний раз (вы можете установить это где угодно, просто чтобы не возиться с существующими свойствами)

-Dhudson.model.DirectoryBrowserSupport.CSP = ""

9
задан shuttle87 18 May 2010 в 04:57
поделиться

3 ответа

Я бы рекомендовал сделать свой собственный. 90% работы в GP - это кодирование генотипа, того, как с ним работают, и вычисление пригодности. Эти части меняются для каждой конкретной задачи/проекта. Сама часть эволюционного алгоритма обычно довольно проста.

Существует несколько библиотек GP ( http://en.wikipedia.org/wiki/Symbolic_Regression#Implementations ). Я бы использовал их в качестве примеров и ссылок.

C++ - хороший выбор для GP, потому что они имеют тенденцию быть очень интенсивными в вычислениях. Обычно функция пригодности является узким местом, поэтому стоит сделать хотя бы эту часть компилируемой/оптимизированной.

3
ответ дан 3 November 2019 в 07:46
поделиться

У меня были подобные проблемы. Я раньше имел сложную проблему, и определение решения с точки зрения вектора фиксированной длины не было желательно. Даже вектор переменной длины не выглядит привлекательным. Большинство библиотек фокусируется на случаях, где функция стоимости является дешевой для вычисления, который не соответствовал моей проблеме. Отсутствие параллелизма является их другой ловушкой. Ожидание, что пользователь выделяет память для того, чтобы использоваться библиотекой, добавляет оскорбление в травму. Мои случаи были еще более сложными, потому что большинство библиотек проверяет нелинейные условия перед оценкой. В то время как, я должен был проверить нелинейное условие во время или после оценки на основе результата оценки. Это - также нежелательный, когда я должен был оценить решение вычислить его стоимость, и затем я должен был повторно вычислить решение представить его. В большинстве случаев я должен был записать функцию стоимости два раза. Однажды для GA и однажды для презентации.

Наличие всех этих проблем, я в конечном счете, разработало мое собственное библиотека openGA , которая является теперь сформировавшейся.

  • Эта библиотека основана на C++ и распределенный с бесплатной Лицензией 2.0 Общественности Mozilla. Это гарантирует, что пользование этой библиотекой не ограничивает Ваш проект, и это может использоваться для коммерческого или ни одного коммерческие цели бесплатно, не прося разрешение. Не все библиотеки прозрачны в этом смысле.
  • Это поддерживает три режима единственной цели, несколько цель (NSGA-III) и Интерактивный генетический алгоритм (IGA).
  • решение не получает мандат быть вектором. Это может быть любая структура с любым специализированным дизайном, содержащим любые дополнительные значения с переменной длиной. Эта функция делает эту библиотеку подходящей для приложений Генетического программирования (GP).
  • C++ 11 используется. Шаблонная функция позволяет гибкость дизайна структуры решения.
  • стандартной библиотеки достаточно для пользований этой библиотекой. Кроме того нет никакой зависимости. Вся библиотека является также единственным заголовочным файлом для простоты использования.
  • библиотека поддерживает параллелизм по умолчанию, если Вы не выключаете его. Если у Вас есть N-ядро-процессора, количество потоков установлены на N по умолчанию. Можно изменить настройки. Можно также установить, если оценки решения распределяются между потоками одинаково, или они присвоены любому потоку, который закончил его задание и в настоящее время неактивен.
  • оценка решения разделяется от вычисления окончательной стоимости. Это означает, что Ваша функция оценки может моделировать систему и хранить большую информацию. Вашу функцию стоимости называют позже и сообщает о стоимости на основе оценки. В то время как Ваши результаты оценки сведены использоваться позже пользователем. Вы не должны повторно вычислять его снова.
  • можно отклонить решение в любое время во время оценки. Никакая пустая трата времени. На самом деле, проверка оценки и ограничения интегрируются.
  • GA assist функция помогает Вам произвести кодовую базу C++ из информации, которую Вы предоставляете.

, Если эти функции соответствуют тому, в чем Вы нуждаетесь, я рекомендую взглянуть на руководство пользователя и примеры openGA.

число читателей и цитата связанной публикации, а также ее меток фаворита GitHub увеличиваются, и ее использование является ростом содержания.

0
ответ дан 3 November 2019 в 07:46
поделиться

Я предлагаю вам взглянуть на инструментарий оптимизации Matlab - он поставляется с GA. коробки , вам нужно только кодировать функцию пригодности (и функцию для генерации начального населения в конечном итоге), и я считаю, что Matlab имеет некоторую совместимость с C ++, поэтому вы можете кодировать свои функции на C ++. Я использую его для своих экспериментов, и очень приятной особенностью является то, что вы также получаете все виды диаграмм прямо из коробки.

Так и сказано - если ваша цель - узнать о генетических алгоритмах, вам лучше их кодировать, но если вы просто хотите проводить эксперименты, Matlab и C ++ (или даже просто Matlab) - хороший вариант.

-1
ответ дан 3 November 2019 в 07:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: