- •Решение задачи метаногенеза с использованием параллельной реализации генетического алгоритма
- •2014 Содержание
- •Введение
- •1. Параллельные вычислительные системы
- •1.1 Классификация вычислительных систем
- •1.2 Стандарты для распараллеливания программ
- •1.3 Описание схемы параллельного выполнения алгоритма
- •2. Генетические алгоритмы
- •2.1 Генетический алгоритм и его особенности
- •2.2 Постановка задачи
- •3.1 Параллельные вычисления в решении задач составления расписания
- •Заключение
- •Список литературы
2. Генетические алгоритмы
Генетические алгоритмы в настоящее время широко используются для интеллектуальной обработки данных и решения задач оптимизации и поиска. Они успешно используются для решения ряда экономически значимых задач в бизнесе и инженерных разработках. Финансовые компании широко используют генетические алгоритмы для прогнозирования развития финансовых рынков.
Задачи оптимизации – один из самых важных классов задач практического характера, с которыми мы сталкиваемся ежедневно на работе, или в быту.
2.1 Генетический алгоритм и его особенности
Генетические алгоритмы возникли в результате наблюдения и попыток копирования естественных процессов, происходящих в мире живых организмов, в частности, эволюции и связанной с ней селекции (естественного отбора) популяций живых существ.
Идею генетических алгоритмов высказал Джон Холланд в 1975 году. Он заинтересовался свойствами процессов естественной эволюции, в том числе фактом, что эволюционируют хромосомы, а не сами живые существа.
Так же, как и в природе, генетические алгоритмы осуществляли поиск "хороших" хромосом без использования какой-либо информации о характере решаемой задачи. Требовалась только некая оценка каждой хромосомы, отражающая ее приспособленность [4].
Работа генетического алгоритма представляет собой итерационный процесс, который продолжается до тех пор, пока не выполнятся заданное число поколений или какой-либо иной критерий останова. На каждом поколении генетическим алгоритмом реализуется отбор пропорционально приспособленности, кроссовер и мутация.
Схематичное описание функционирования генетического алгоритма представлено на рисунке 2.1:
Рисунок 2.1 Алгоритм работы классического генетического алгоритма
Функционирование генетического алгоритма можно описать следующими шагами:
Инициировать начальный момент времени t=0. Случайным образом сформировать начальную популяцию, состоящую из k-особей.
Вычислить приспособленность каждой особи и популяции в целом. Значение этой функции определяет насколько хорошо подходит особь, описанная данной хромосомой, для решения задачи.
Выбрать особь из популяции;
С определенной вероятностью (вероятностью кроссовера) выбрать вторую особь из популяции и произвести оператор кроссовера;
С определенной вероятностью (вероятностью мутации) выполнить оператор мутации;
С определенной вероятностью (вероятностью инверсии) выполнить оператор инверсии;
Поместить полученную хромосому в новую популяцию;
Выполнить операции, начиная с пункта 3, k-раз;
Увеличить номер текущей эпохи t=t+1;
Если выполнилось условие остановки, то завершить работу, иначе переход на шаг 2;
Однако применение генетических алгоритмов сопряжено с определенными сложностями. Во-первых, возникает проблема представления решения. В большинстве случаев в качестве представления используют многомерную матрицу. Такие матрицы на реальных данных занимают значительный объем памяти (108-1010 элементов), что приводит к повышению сложности алгоритма как с точки зрения затрат памяти, так и с точки зрения времени выполнения операций над такими структурами данных. Во-вторых, многочисленные ограничения и критерии оптимизации увеличивают сложность вычисления фитнесс-функции, что также увеличивает итоговую сложность алгоритма.
Тем не менее, генетические алгоритмы довольно широко и успешно используются для решения задач (7).