76
Найти необходимые решения можно с помощью генетического алгоритма
поиска. В пользу применения генетического отбора говорят следующие
факторы.
1.
Очень большое пространство решений, экспоненциально увеличи-
вающееся с увеличением размера входа.
2.
Решение можно оптимизировать локально.
3.
Можно сформулировать критерий оценки решения и время оценки
решения сравнительно мало.
4.
Сильная пересеченность поверхности пространства решений.
5.
Невозможность применения градиентных методов оптимизации.
6.
Нет необходимости в нахождении оптимального решения, достаточ-
но решений близких к оптимальным.
Для реализации генетического алгоритма необходимо реализовать сле-
дующие механизмы.
1.
Генерация случайного решения задачи (хромосомы).
2.
Скрещивание решений (кроссинговер).
3.
Случайные изменения при скрещивании решений (мутации).
4.
Оценка схожести фрагментов входящих в решение.
5.
Итеративная процедура генетического отбора решений.
Генерация случайного решения задачи (хромосомы). Для создания
стартовой популяции необходимо сгенерировать набор случайных решений.
Решением может быть не каждая последовательность из отобранных ранее
фрагментов. Фрагменты должны быть непересекающимися и, по возможности,
максимально покрывать всю длину исходного контура, поэтому закодировать
решение битовым полем фиксированной длины, как это традиционно делается
в генетических алгоритмах, в данном случае не
представляется возможным,
решение (хромосома) будет представлено последовательностью номеров фраг-
ментов произвольной длины (рис. 3.9).
Для реализации этого механизма удобно составить матрицу смежности
фрагментов, в каждой ячейке которой указывать 1, если фрагмент
i может в од-
ном решении рядом с фрагментом
j, и 0 в противном случае.
Если фрагменты нумеровать по возрастанию точки начала фрагмента, то
для задания матрицы смежности достаточно для каждого фрагмента хранить
только номер первого смежного соседа и их количество.