Расчеты эволюции на C#

ОГЛАВЛЕНИЕ

В данной статье будет рассмотрена библиотека C# для расчета эволюции. Применение библиотеки показано на четырех примерах: оптимизация функции, символическая регрессия (приближение), предсказание временного ряда, задача коммивояжёра.

•    Скачать исходники - 113 Кб
•    Скачать демонстрационный проект - 97 Kb

Введение

Было проведено много разных исследований в области расчета эволюции, обусловивших появление ряда различных эволюционных алгоритмов. Много исследователей тщательно изучило эти методы и пыталось применить их к большому диапазону задач. Известно, что имеется много разных задач, которые невозможно решить точно за приемлемый период времени с помощью традиционных методов. Также есть много задач, не имеющих формального пути решения, что делает их решение очень трудным или даже невозможным с помощью традиционных методов. Примером является задача коммивояжёра (TSP), где требуется найти кратчайший путь вокруг заданного количества городов, посетив их все всего однажды и вернувшись к начальному городу в конце. Применение к некоторым из таких задач расчетов эволюции зачастую позволяет найти хорошее решение за приемлемый период времени. Эти методы не гарантируют отыскание точного решения конкретной задачи, но они находят очень хорошее решение, близкое к лучшему решению. Вот почему эти методы широко используются для решения множества разных задач, которые нельзя решить (или их решение слишком трудное) традиционными методами.

В данной статье будет рассмотрена библиотека C# для расчета эволюции. Библиотека реализует несколько известных эволюционных алгоритмов, таких как генетические алгоритмы (GA), генетическое программирование (GP) и программирование выражений генов (GEP), и может применяться для решения множества разных задач. Применение библиотеки показано на четырех примерах: оптимизация функции, символическая регрессия (приближение), предсказание временного ряда, задача коммивояжёра. Библиотека гибкая и повторно применимая, что позволяет решать разные задачи с ее помощью. В статье нет подробного описания эволюционных алгоритмов. Вместо этого статья кратко знакомит с идеей этих алгоритмов и дает список ссылок, позволяющий детально изучить эти методы.