ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 УДК 004.94 ЭВОЛЮЦИОННОЕ МОДЕЛИРОВАНИЕ В ЗАДАЧЕ «УМНЫЙ МУРАВЕЙ» НА ОСНОВЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ С.Е. Жуликов, В.А. Попов Ключевые слова: эволюционное моделирование; генетические алгоритмы; выбор родителей; скрещивание; мутация; отбор; «Умный муравей». Обсуждается применение принципов эволюционного моделирования для оптимизации автоматизированных объектов при решении задачи «Умный муравей». Результаты численного моделирования позволяют определить лучшие операторы генетического алгоритма, выявить влияние процесса мутации на конечный результат, определить лучшие варианты поля зрения «муравья», минимизировать количество состояний автомата. Программирование с использованием автоматов имеет достаточно богатую историю развития. Различные аспекты и понятия, связанные с этой идеей, рассматривались в работах многих авторов с самых разных точек зрения и применительно к различным конкретным вопросам. Программирование от состояний является одним из основных стилей программирования. Автоматное программирование используется в настоящее время при проектировании программного обеспечения систем автоматизации ответственных объектов управления, а в соответствии со стандартом, который предназначен для унификации правил создания распределенных управляющих систем, базовые функциональные блоки предлагается описывать с помощью конечных автоматов [1–3]. Одним из наиболее эффективных методов автоматизированного конструирования программ является генетическое программирование, основанное на построении программ путем применения генетических алгоритмов к некоторой модели вычисления [1; 4–5]. Применение принципов эволюционного моделирования для построения конечных автоматов на примере задачи «Умный муравей» впервые было описано в работе [6]. Для выполнения данной задачи было решено создать модель «муравья», который смог бы собрать все «пищу» с поля, которая расположена вдоль строго заданной ломаной. В рамках работы был создан «муравей», который за 200 ходов съедал все «яблоки». Конечный автомат, который управлял поведением объекта, имел 13 состояний. Поведение «муравья» должно было имитировать деятельность аппарата, производящего поиск и сбор распределенных по некоторой области объектов. Применение принципов эволюционного моделирования для построения конечных автоматов исследовано в работе [7]. Был получен более оптимальный автомат, содержащий 11 состояний и решающий поставленную задачу за 193 хода. Дальнейшее развитее данная проблема приобрела в работе [3]. Были рассмотрены модификации задачи, основанные на изменении поля зрения «муравья», и результаты говорят о том, что чем больше клеток мо- жет наблюдать «муравей», тем больше «яблок» он может собрать. Другим результатом стал вывод о том, что с увеличением количества «яблок» на поле автомату требуется меньшее количество состояний для вывода наиболее приспособленной особи. В статье С.И. Попова [8] задача о «муравье» была подвергнута детальному разбору. По сравнению с предыдущими трудами в ней большое внимание было уделено применению операторов генетических алгоритмов. Выявлены наилучшие оператор выбора родителей – «рулеточный отбор» и оператор скрещивания – «многоточечный кроссинговер». Во всех обсуждаемых работах рассматривались только стандартные операторы генетических алгоритмов, всего одно или два состояния поля зрения «муравья» и стандартное поле. Однако практическое применение аппарата на основе рассматриваемых алгоритмов (химическая или геологоразведка (в т. ч. и кометная, астероидная, инопланетная), разминирование и т. п.) предполагает различные условия для рабочего пространства (неровности, препятствия, условия расположения объектов), способов получения информации об объектах (в т. ч. и извне – спутники, летательные аппараты над зоной разведки). Поэтому возникает необходимость в исследовании дополнительных модификаций задачи, а также в разработке новых операторов, позволяющих получать более оптимальные результаты. В задаче «Умный муравей» объект исследования «живет» на поверхности тора размером 32 на 32 клетки. «Муравей» – это объект, управляемый конечным автоматом. В некоторых клетках поля находится «еда». Под едой подразумевается пища для «муравья» – «яблоки». Они заполняют тор случайным образом, на заданное количество процентов площади [1; 8]. Клетка, которая обозначена треугольником, является стартовой для муравья. Он занимает одну клетку и смотрит в одном из четырех направлений: север, юг, запад, восток. В начальный момент «муравей» смотрит на восток и занимает левую верхнюю клетку поля [9]. На вход автомата подается воздействие, которое получается в результате анализа клеток, которые видит объект. Муравей, в зависимости от того, какой режим выбран, может видеть восемь клеток, три или одну 1829 ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 дуумов в промежуточное поколение и с помощью полученных значений определить, какие именно особи станут родителями. Процесс выбора осуществляется N раз (N запусков рулетки), где N – размер популяции. Колесо рулетки содержит столько же секторов, каждый из которых соответствует определенной особи. Размер сектора прямо пропорционален вероятности Pi попадания в промежуточное поколение для скрещивания. Данная вероятность вычисляется по следующей формуле: , Рис. 1. Поле зрения «муравья» (рис. 1). Таким образом, он может определять, находится ли еда в зоне его видимости. За один игровой ход «муравей» может совершить одно из следующих действий: сделать шаг вперед, сделать шаг налево, сделать шаг направо, ничего не делать. Под шагом подразумевается переход в другую клетку с последующим съеданием еды, если таковая имеется. «Муравей», совершающий шаг в одну из сторон, поворачивает в эту сторону. «Яблоки» на всем протяжении игры не восполняются. Жизнь «муравья» никаким образом не зависит от количества съеденной еды. Это означает, что объект исследования не изменяет свою функциональность во время игры и не может «умереть». Все 1024 клетки могут использоваться «муравьем» для перемещения. Продолжительность игры составляет 200 ходов. Цель игры: за 200 ходов съесть наибольшее количество «яблок». Результатом игры является количество еды, которое за отведенное число ходов собрал «муравей» [8–9]. Чтобы оценить приспособленность особи к поставленной задаче, введем целевую функцию, важнейшей составляющей которой является количество «яблок», съеденных за 200 ходов. Но поскольку число ходов и размер поля не являются достаточно большими числами, то вполне возможно, что сразу несколько особей могут достигнуть одинакового результата. Следовательно, для того чтобы функция приспособленности таких особей была не идентична, необходимо дополнить ее значениями, которые смогли бы индивидуумам, съевшим одинаковое количество еды, сопоставить разные значения целевой функции. Так, для данной задачи вводится дополнительный параметр эффективности «муравья» – дробь, числитель которой содержит число съеденных «яблок», а знаменатель – ход, на котором было съедено последнее. Таким образом, целевая функция будет иметь следующий вид: где fi – целевая функция i-й особи. Ожидаемое количество особи в промежуточном поколении определяется по формуле: . Далее генерируется случайное число и определяется, в какой сектор оно попало. Для дальнейшего участия в генетическом алгоритме выбирается именно та особь, к интервалу которой относится число. При таком отборе особи с высокой пригодностью будут отбираться значительно чаще особей с низкой пригодностью, а те индивидуумы, функция приспособленности которых равна нулю, и вовсе не попадут в промежуточное поколение. Турнирный отбор. Селекция, основанная на турнирном отборе, заключается в том, что из популяции, содержащей N особей, выбирается t особей, причем этот выбор осуществляется случайно. В промежуточное поколение попадает тот индивидуум, целевая функция которого показала наилучший результат. Данная операция повторяется N раз. В данном методе под t подразумевается численность турнира. Это значение может быть любым числом, не превышающим N – 1. Преимущество турнирного метода заключается в том, что он не требует дополнительных вычислений, а работает с уже известными данными. В данной работе использовался турнирный отбор с численностью отбора t = 2. Следовательно, если неравенство fi > fj, где fi, fj – целевые функции i, j – особи, верно, то в промежуточное поколение попадает i-особь, в противном случае j-особь. Элитная селекция. В этом случае выбираются особи с лучшими целевыми функциями. В данной работе использовался несколько модифицированный вариант данного метода. Вначале с помощью заданной функции происходит отображение функции пригодности лучшей особи в число копий, попадающих в промежуточное поколение: , где Nyab – количество съеденных «яблок»; h – шаг, на котором было съедено последнее «яблоко». В данной работе использовались как самые эффективные типовые операторы выбора родителей в рамках поставленной задачи, так и новые, еще не применяемые ранее. Опишем каждый из них. Рулеточный (пропорциональный отбор). Метод рулетки основан на значениях функций приспособленности особи. Его основная идея заключается в том, чтобы вычислить вероятность попадания индиви1830 , , где n – число особей в популяции; – значение целевой функции i-й особи; fmax – значение целевой функции наиболее приспособленной особи; N – число особей в поколении; Nmax – число копий наиболее приспособленной особи. Таким образом, в поколении для скрещивания и мутации попадает 10 % копий лучшей особи. Далее Ni – 1 копий второй по пригодности особи, Ni – 2 копий ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 третьей по пригодности особи и т. д. Если получилось число меньше 1, то в промежуточное поколение переносится одна копия особи. Данная операция выполняется до тех пор, пока не будет отобрано заданное количество индивидуумов. Элитная селекция предотвращает попадание в промежуточное поколение особей с наименьшей пригодностью, а особи, целевая функция которых достигает определенного значения, отбираются более одного раза. Архимедова спираль. Предлагается новая модификация «рулеточного отбора» для оптимизации процесса отбора особей в промежуточное поколение. Поясним принцип его работы. Каждой особи сопоставляется отрезок, длина которого вычисляется по следующей формуле: Многоточечный кроссинговер. Данный оператор является обобщенным вариантом одноточечного кроссинговера. Для многоточечного скрещивания выбирается m точек разрыва , i = 1 : m, Nvar – количество генов в хромосоме. Каждая точка выбирается случайным образом, а затем сортируется по возрастанию. Далее происходит обмен хромосом участками генов, ограниченными точками разрыва, в результате чего образуются две новые особи. Так, предположим, что у нас имеются два родителя: A = a1, a2, ..., aj и B = b1, b2, ..., bj и m точек разрыва ki, тогда новые особи формируются по правилам, описанным ниже: a) для четного m: , , ; где Li – длина отрезка, соответствующая i-й особи; k – сумма всех значений функций приспособленности; pi – вероятности попадания в промежуточное поколение i-й особи. Далее все полученные отрезки складываются в один, причем каждый его участок соответствует некоторой особи. Случайным образом выбирается число, принадлежащее этому отрезку, на основании которого определяется, какая особь попадет в поколения для скрещивания и мутации. Данная операция повторяется n раз, где n – количество особей в популяции. Аналитическое представление метода получено в результате пересмотра параметров длины дуги архимедовой спирали. Рассмотрим операторы рекомбинации, которые применяются после операторов отбора родителей, их основная задача: получить новые особи. Рекомбинации необходимы для того, чтобы потомки смогли унаследовать генную информацию своих предков. Описанный процесс применительно к бинарным строкам имеет название кроссинговер, или скрещивание. Одноточечный (простой) кроссинговер. В начале работы данного оператора выбирается точка кроссинговера k (номер гена, после которого выполняется разрыв хромосомы). В данной работе она является центром хромосомы. Однако под центром понимается не фактическое разбиение закодированной строки на две равные части, а разбиение с некоторым сдвигом влево, точнее на 4 бита, это обусловлено правилами формирования хромосом. Далее две особи выбираются случайно из промежуточного поколения: A = a1, a2, ..., aj и B = b1, b2, ..., bj. После чего формируются две новые особи согласно правилу: , , где C, D – новые особи; a1, a2, …, aj, b1, b2, …, bj – элементы хромосом; k – точка разрыва. После применения данного оператора образуются две новые особи, которые несут в себе половину генов предков, причем их эффективность может быть совершенно разной, т. к. позиция генов в хромосоме имеет такое же значение, как и их наполнение. b) для нечетного m: , , где C, D – новые особи; a1, a2, ..., aj, b1, b2, ..., bj – элементы хромосом. Многоточечный кроссинговер дает большее разнообразие потомков по сравнению с одноточечным, это достигается за счет большего количества точек разрыва, а также их неравномерного распределения. Однородный кроссинговер. В начале работы оператора создается маска особи, в каждом локусе которой может находиться точка кроссинговера. Маска имеет одинаковое количество генов с родителями данного поколения. Создание схемы основано на значении некоторого числа p0, она выбирается из диапазона (в данной работе p0 = 0,5, что обеспечивает равномерное распределение 0 и 1 по маске). Далее случайным образом выбирается число из вышеуказанного диапазона, и если оно больше p0, то на n позицию схемы ставится 0, в противном случае – 1. В результате маска представляет собой множество случайных чисел (0 и 1). На основании значений схемы формируются новые особи по правилу: если на i-м месте маски стоит 0, тогда соответствующий ген первого родителя переходит потомку, в противном случае наследуется ген второго родителя. Для создания второго потомка первый родитель становится на место второго, а второй – на место первого. Триадный кроссинговер. Данный оператор скрещивания позаимствовал многое у однородного кроссинговера: в нем также используется маска, но выбор ее совершенно другой. Из множества особей случайно выбирается одна и подвергается 10 % мутации, что и дает схему для дальнейшей работы алгоритма. Затем маска сравнивается с первым родителем, и если их гены совпадают, то они переходят к потомку, иначе на соответствующие позиции хромосомы новой особи ставятся гены второго родителя. Генотип второго потомка отличается от генотипа первого тем, что на тех позициях, где у первого потомка стоят гены первого родителя, у второго потомка стоят гены второго родителя и наоборот [10]. Один из минусов данного подхо1831 ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 да формирования новых особей состоит в том, что маска может быть выбрана из числа родителей, в таком случае генотип потомков будет отличаться от генотипа предков лишь на 10 %. После отбора родителей и рекомбинации генетические алгоритмы предполагают отбор особей. Цель алгоритмов этого отбора выбрать из имеющегося множества потомков и предков определенное количество особей, которые в дальнейшем будут использоваться в процессе эволюционного моделирования. В работе рассматриваются следующие методы отбора. Элитарный отбор. Из самого названия данного метода вытекает, что в новую популяцию должны отбираться лучшие особи, т. е. те особи, функция пригодности которых выше. Для достижения этой цели формируется предварительная популяция из родителей и предков: Р = {p1, р2, …, pi, …, pn}, где pi – множество элементов, причем p1 < р2, …, < pn; n – размер популяции. Затем выбираются N наиболее приспособленных особей, которые собственно и составят новую популяцию, причем она будет состоять из уникальных элементов. Отбор усечением. Данный отбор работает с популяцией, которая состоит из предков и потомков, отсортированной в порядке возрастания целевой функции особей: Р = {p1, р2, …, pi, …, pn}, где pi – множество элементов, причем p1 < р2 ,…, < pn; n – размер популяции. Число особей для дальнейшего участия в алгоритме выбирается в соответствии c пороговым значением. Это значение представляет собой некоторое число T, которое определяет, какое количество особей, начиная с самой пригодной, будет участвовать в отборе. В данной работе использовалась следующая формула для определения порогового значения: , где Nob – общее количество особей. Далее из особей, которые попали под порог, выбирается случайным образом одна и записывается в новую популяцию. Данный процесс повторяется N раз, пока количество индивидуумов в новой популяции не станет равным количеству особей в исходной популяции. Стоит отметить, что вновь отобранная популяция может содержать несколько копий особей, попавших под порог, но существует вероятность, что особи с наилучшей пригодностью останутся вне популяции. Решить данную проблему можно с помощью смешанного отбора. Смешанный отбор (элитарный и отбор усечением). В этом методе действуют те же технологии, что и в предыдущих. Вначале применяется элитарный отбор, и 10 % особей отбираются на его принципах, остальные же индивидуумы дополняют новую популяцию на основе отбора усечением. Данный метод хорош тем, что он допускает некоторое разнообразие особей в новой популяции, но при этом не допускает потерю наилучших решений. Так, если популяция сошлась в локальных максимумах, а мутация смогла вывести одну из особей в область глобального, то, скорее всего, эта особь будет потеряна в результате скрещивания, однако данный подход не позволит сделать этого. Метод Больцмана. В данном операторе отбора в новую популяцию вероятность попадания особи в следующее поколение зависит от управляющего парамет1832 ра – T (температуры). Вероятность попадания особи в новую популяцию вычисляется по формуле: , где f(i) и f(j) – значения целевой функции i и j особей, соответственно; T – число, обратное номеру поколения. Номера особей i и j выбираются случайно из числа родителей и потомков. В случае если p будет больше некоторого случайного из интервала (0;1), то в новую популяцию попадает особь с функцией пригодности f(j), иначе – f(i). В методе Больцмана первым поколениям соответствуют высокие температуры, что означает большие значения вероятности отбора. С ростом поколений в генетическом алгоритме T постепенно уменьшается, а вместе с ней и вероятность отбора. Соответственно в новую популяцию начинает попадать большее количество особей с минимальной пригодностью. Быстрый метод. Данный метод для формирования нового поколения использует двойственный подход. Вначале он сортирует множество родителей Р = {p1, р2, …, pi, …, pn} по возрастанию целевой функции, где pi – предки. Для работы генетического алгоритма отбираются лучших особей, где N – количество элементов популяции. Затем вакантные места во множестве занимают потомки, которые выбираются случайным образом. Преимуществом данного оператора над своими конкурентами является то, что при отборе потомков не требуется пересчет функции приспособленности, что, в свою очередь, значительно ускоряет процесс работы алгоритма. Несомненно, это может привести к потере лучших решений, однако решения, близкие к лучшим, всегда попадут в новое поколение. Все описанные операторы генетических алгоритмов использованы для определения оптимальных параметров моделируемого объекта. Цель работы состоит в выявлении оптимальных операторов, приводящих к получению объекта, достигающего решения задачи за меньшее число ходов и с использованием меньшего количества состояний, что на практике означает более экономное использование топлива или заряда батарей исследовательского аппарата при проведении поисковых работ, а также уменьшение времени расчетов и поиска. В данной работе объектом – «муравьем» – управляет детерминированный конечный автомат типа Мили [3], т. е. пятерка: . Здесь Q, X, Y – конечные множества (множества состояний, входов и выходов, соответственно), f и g – отображения (функции переходов и выходов соответственно), причем: , . Равенство означает, что при входе x конечный автомат, который находится в состоянии q, перейдет в состояние q', а равенство означает, что на выходе появляется y. ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 В работе кодирование автомата, который определяет его поведение, в битовую строку (применительно к эволюционному моделированию: в особь генетического алгоритма) осуществляется следующим образом: каждому входному воздействию соответствуют 2 бита, а каждому состоянию – 4 бита. Рассмотрим формирование битовой строки (хромосомы) подробнее. Первым элементом хромосомы является начальное состояние конечного автомата q0. Остальными же элементами являются пары битовых символов: новое состояние, входное воздействие. Следовательно, основная часть особи представляет собой n частей равной длины, где n является числом состояний автомата. В свою очередь, эти части, как было сказано выше, содержат m пар чисел, где m – количество входных воздействий. Данные пары состоят из 2 элементов: нового состояния f и входного воздействия g. Резюмируя все вышесказанное, конечный автомат типа Мили, применительно к данной работе, можно представить в виде: . Для лучшего понимания кодирования автомата приведем пример формирования битой строки на основе таблицы состояний. Пусть имеется таблица перехода автомата в новые состояния (табл. 1). Из табл. 1 можно определить, что автомат имеет всего четыре состояния, а именно: 00, 01, 10, 11, и два входа: 0, 1. Также поскольку мы имеем дело с автоматом Мили, у нас имеются 4 выходных воздействия (применительно к задаче «Умный муравей»): 00 – стоять на месте, 11 – идти вперед, 01 – повернуть налево, 10 – повернуть направо. Теперь необходимо перевести эту таблицу в вид, который позволит применять к хромосоме операторы генетического алгоритма. Формируем битовую строку. Начальным состоянием q0 в данном случае является 00, именно эти два бита займут место в начале хромосомы. Далее записываются пары f, g – новое состояние, действие, соответственно. Содержимое двух первых полей не записывается, поскольку они будут повторяться для каждого автомата с фиксированным числом состояний. Итак, битовая строка, которая получилась в результате преобразования таблицы, имеет вид: 00 1101 0111 0011 1001 1110 1000 1010 0101 ляющего автомата возможны следующие количества входных воздействий: 21 = 2, 23 = 8 и 28 = 256, соответственно. Следовательно, входные воздействия кодируются одним битом в случае, если «муравей» видит 1 клетку, тремя – если 3 клетки, восемью – если 8 клеток. Максимальное количество состояний Q равняется 16. Это обусловлено тем, что в работе [9] говорится именно о таком количестве состояний, как предельное в рамках данной задачи. Исходя из этого, новые состояния кодируются с помощью 4 бит. Как уже говорилось, объект управления может совершать 4 действия, для представления этих действий в хромосоме каждое их них кодируется двумя битами. Проанализировав то, каким образом формируется хромосома, можно вывести формулу для определения ее длины: , где – количество бит, которыми кодируются начальное состояние, новые состояния и входные воздействия, соответственно; m – количество входных воздействий, n – число состояний автомата. Поскольку количество особей может достигать 200, формировать битовые строки вручную весьма проблематично как с точки зрения эффективности, так и с точки зрения временных затрат. Генерация хромосом осуществляется на основании динамических данных: значений числа состояний автомата (n) и количества клеток, которые видит «муравей», и статических: количества бит, которыми кодируются состояния и действия. Лучшие операторы выбора родителей выбирались из четырех операторов: «рулеточный отбор», «турнирный отбор», «элитная селекция», «архимедова спираль». Лучшим считался оператор, который позволял собрать наиболее приспособленной особи наибольшее количество «яблок». Для достижения чистоты эксперимента варьированными параметрами являлись только операторы выбора родителей. Остальные параметры были строго заданы (табл. 2). Проведение численных экспериментов позволило сделать следующие выводы. При использовании популяции в 100 особей на полях с разным процентным наполнением «яблок» лучшими оказались операторы «турнирный отбор», «архимедова спираль», «рулеточный отбор». При исполь- Автоматизированный объект по условию задачи может видеть 1, 3 и 8 клеток. Это означает, что у управТаблица 1 Таблица переходов автомата в новое состояние Состояние 00 00 01 01 10 10 11 11 Вход 0 1 0 1 0 1 0 1 Новое состояние 11 01 00 10 11 10 10 01 Действие 01 11 11 01 10 00 10 01 Таблица 2 Параметры экспериментов для определения лучших операторов выбора родителей Параметр эксперимента Ширина поля Высота поля Число шагов Размер поколения Количество поколений Наполненность «яблоками» Число состояний в автомате Поле зрения Оператор селекции Оператор отбора Значение 32 32 200 100; 200 100; 200 5 %; 10 %; 15 % 4 8 100-точечный кроссинговер смешанный отбор 1833 ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 зовании 200 особей во всех трех случаях лучшим был оператор «архимедова спираль», что говорит о его эффективности при большом размере популяции. «Турнирный отбор» показал хорошие результаты при наполненности поля на 5 и 10 %, в случае же 15 % его результаты оказались далеки от результатов лидеров. Оператор «элитная селекция» оказался наихудшим среди рассмотренных во всех случаях. Наиболее близким по результатам к лидеру оказался оператор «рулеточный отбор», что неслучайно, ведь именно он оказался лучшим в работе [8]. Модифицируя этот метод, мы смогли предложить более оптимальный оператор: «архимедова спираль». Лучшие операторы скрещивания выбирались из четырех операторов: «одноточечный кроссинговер», «многоточечный кроссинговер», «однородный кроссинговер», «триадный кроссинговер». Параметры экспериментов идентичны, за исключением того, что в этот раз операторы выбора родителя не варьировались, а использовался один «рулеточный отбор», а операторы скрещивания, напротив, чередовались. Во всех рассматриваемых случаях лучшим оператором скрещивания оказался «многоточечный кроссинговер». Наиболее близкие значения к данному оператору показал «однородный кроссинговер», стоит отметить, что с увеличением наполнения полей разница в результатах лидеров увеличивается. С наихудшей стороны себя показал «одноточечный кроссинговер»: во всех экспериментах он показал наихудший результат. Далее определим, какое количество точек скрещивания приведет к выводу наиболее приспособленной особи. Для этого были проведены 100 экспериментов: по 10 на 10 полях с использованием популяции размером в 200 особей. На основании полученных результатов можно заключить, что «Многоточечный кроссинговер» в случае наполнения поля на 5 % показывает лучший результат при 200 точках скрещивания: 31,39 «яблок». Также данный оператор показал неплохие результаты при 600 и 900 точках скрещивания, а именно 29,79 «яблок». На полях, наполненных «яблоками» на 10 %, оптимальным количеством точек оказалось 1600, что позволило вывести особь, которая способна съедать в среднем 51,17 «яблок» за отведенное количество попыток. Операторы с 900 и 200 точками скрещивания показали второй и третий результат, соответственно, 50,75 и 50,50 «яблок». При наполнении поля на 15 % лучшим оператором оказался 900 точечный оператор скрещивания с результатом 69,47 «яблок». Несколько меньший результат показали сразу 2 оператора с 200 и 500 точками: 69 «яблок». Лучшие операторы отбора особей в новую популяцию выбирались из четырех операторов: «отбор усечением», «элитарный отбор», «метод Больцмана», «быстрый отбор», «смешанный отбор». Параметры экспериментов идентичны, за исключением того, что операторы выбора родителя не варьировались, а использовался один «рулеточный отбор», а чередовались операторы отбора. Во всех рассматриваемых случаях лучшим оператором отбора оказался «элитный отбор», а «отбор усечением» показал вторые результаты, причем при наполнении поля на 15 % и количестве особей, равном 200, их показатели практически совпали. Остальные же операторы продемонстрировали результаты значительно ниже результатов лидеров, причем с увеличением количества «яблок» разрыв между ними только увели1834 чивался. «Смешанный отбор», на который первоначально возлагались большие надежды, во многих случаях показал худший результат и ни в одном не был близок к результатам лидеров. Лучшие варианты поля зрения «муравья» выявлялись среди 3 вариантов: «муравей» видит 1 клетку, 3 клетки, 8 клеток (рис. 1). Для достижения чистоты эксперимента варьируемым параметром являлось только поле зрения. Остальные параметры были строго заданы. Перечислим их и со значениями (табл. 3). Вместо «многоточечного кроссинговера» был выбран оператор скрещивания «однородный кроссинговер», т. к. в данных экспериментах изменяется количество клеток, которые видит «муравей», следовательно, меняется длина хромосом и возможное количество точек разрыва. С увеличением количества особей в поколении все три варианта поля зрения «муравья» улучшают свой результат. На основании проведенных экспериментов можно заключить, что чем больше клеток видит «муравей», тем больше «яблок» он собирает. Данный факт приближает данную модель к реальным задачам поиска, где от обзора объекта зависит его эффективность. Стоит отметить, что при работе программы в визуальном режиме был замечен интересный момент. Наиболее приспособленная особь в крайнем поколении в большинстве случаев съедает «яблоко», если оно попало в его поле зрения. На основании предварительных экспериментов и выводов из работы [8] было принято решение не рассматривать автоматы, состояния которых превышают 16. На основании проведенных экспериментов можно заключить, что при количестве состояний автомата в 2, 3, 4 и 5 особь, управляемая им, съедает наибольшее количество «яблок». В случае наполнения поля на 5 % оптимальное количество состояний равняется 5, при наполнении поля на 10 % – 4, при наполнении поля на 15 % – 3. Стоит отметить, что если автомат задан всего лишь одним состоянием, то он не дает возможности вырастить достаточно приспособленную особь. Данное утверждение можно применить также и ко всем состояниям, большим 5. Следующей целью является выявление влияния процесса мутации на формирование особей в рамках задачи «Умный муравей». Для того чтобы оценить, наТаблица 3 Параметры экспериментов для определения оптимального варианта поля зрения Параметр эксперимента Ширина поля Высота поля Число шагов Размер поколения Количество поколений Наполненность «яблоками» Число состояний в автомате Оператор выбора родителей Оператор селекции Оператор отбора Значение 32 32 200 100; 200 100; 200 5 %; 10 %; 15 % 4 рулеточный отбор однородный кроссинговер элитный отбор ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 сколько от мутации зависит конечный результат, (количество съеденных «яблок» лучшей особью), проведены эксперименты с учетом лучших операторов генетического алгоритма без мутационных процессов и с ними. Все результаты, полученные с применением процесса мутации на полях, наполненных «яблоками» на 5 %, оказались лучше результата, в котором не использовались локальные изменения. Стоит отметить, что в ряде случаев получилось вывести особи, которые собрали более чем на 2 «яблока» больше, в сравнении со своими конкурентами, которые не подверглись мутации. В случае наполнения поля на 10 % процесс мутации стал также оказывать и негативное влияние. Всего в 10 экспериментах из 18 удалось получить результат, превосходящий базовый. Однако при мутации генов в 25 % с любой из рассматриваемых вероятностей был показан результат более чем 63 «яблока», тогда как результат базового эксперимента всего 61,65. При наполнении поля на 15 %, как видно из экспериментов, всего лишь дважды мутация хромосом привела к улучшению результата и один раз повторила его. Таким образом, можно заключить, что процесс мутации оказывает положительное влияние при небольшом количестве «яблок», в нашем случае это 5 % от площади поля. Если же поле наполнено едой на 10 %, то мы можем ожидать как улучшение результата, так и его ухудшение. При наполнении поля в 15 % мутация, как правило, приводит к уменьшению съеденных «яблок» лучшей особью. На практике это означает, что если поисковые аппараты будут работать в условиях низкой плотности разыскиваемых объектов, то без механизмов мутации поиск будет менее эффективным. Таким образом, на основании описанных экспериментов выявлены наилучшие модели генетического алгоритма для автоматизированных объектов автономного поиска. При отборе родителей оптимальными являются оператор «турнирный отбор», а также предложенная нами модификация «рулеточного отбора» «архимедова спираль», оказавшаяся самой эффективной для большой популяции. Выявлено, что оптимальным оператором скрещивания является «многоточечный кроссинговер», а лучшим оператором отбора «элитный отбор». По полю зрения наиболее эффективным является вариант обзора на восемь клеток. Кроме того, при использовании предлагаемых алгоритмов поиска в условиях малого заполнения рабочего пространства разыскиваемыми ресурсами необходимо дополнительное применение операторов мутации. ЛИТЕРАТУРА Поликарпова Н.И., Шалыто А.А. Автоматное программирование. СПб., 2008. 2. Хокпрофт Джон. Введение в теорию автоматов. М., 2003. 3. Брауер В. Введение в теорию конечных автоматов. М.: Радио и связь, 1987. 4. Семенкин Е.С., Жукова М.Н., Жуков В.Г., Панфилов И.А., Тынченко В.В. Эволюционные методы моделирования и оптимизации сложных систем. Красноярск, 2007. 5. Панченко Т.В. Генетические алгоритмы. Астрахань: Издат. дом «Астраханский университет», 2007. 6. Jefferson D., Collins R., Cooper C., Dyer M., Flowers M., Korf R., Taylor C., Wang A. The Genesys System. 1992. URL: www.cs.ucla.edu/~dyer/Papers/AlifeTracker/Alife91Jefferson.html. Загл. с экрана. 7. Angeline P.J., Pollack J. Evolutionary Module Acquisition // Proceedings of the Second Annual Conference on Evolutionary Programming. 1993. P. 154-163. URL: http://www.demo.cs.brandeis.edu/papers/ep93.pdf (accessed: 20.09.2014). 8. Попов С.И. Многоэтапное обучение агентов, управляемых автоматами, с помощью генетических алгоритмов. СПб., 2010. 9. Бедный Ю.Д., Шалыто А.А. Применение генетических алгоритмов для построения автоматов в задаче «Умный муравей». СПб., 2007. 10. Емельянов В.В., Курейчик В.В., Курейчик В.М. Теория и практика эволюционного моделирования. М.: Физматлит, 2003. 1. Поступила в редакцию 27 октября 2014 г. Zhulikov S.E., Popov V.A. EVOLUTIONARY MODELING IN “SMART ANT” PROBLEM BASED ON GENETIC ALGORITHMS The application of the principles of evolutionary modeling to optimize automated objects to solve the problem of “Smart Ant” is considered. The results of numerical simulations allow us to determine the best operators of the genetic algorithm to identify the effect of the mutation process on the final result to determine the best field of vision “ant”, minimize the number of states of the automaton. Key words: evolutionary modeling; genetic algorithms; choice of parents; hybridization; mutation; selection; “Smart Ant”. Жуликов Сергей Евгеньевич, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, кандидат физико-математических наук, доцент кафедры компьютерного и математического моделирования, e-mail: [email protected] Zhulikov Sergey Evgenyevich, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Candidate of Physics and Mathematics, Associate Professor of Computer and Mathematical Simulation Department, e-mail: [email protected] Попов Владимир Александрович, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, студент Института математики, физики и информатики, e-mail: [email protected] Popov Vladimir Aleksandrovich, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Student of Institute of Mathematics, Physics and Informatics, e-mail: [email protected] 1835