САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ
Инструкция по работе с
виртуальной лабораторией GlOpt.
Описание задач
2010 г.
Оглавление
ЗАДАЧА 1. ЗАДАЧА ОБ «УМНОМ МУРАВЬЕ» ................................................................................................ 2
ЗАДАЧА 2. ЗАДАЧА О РОБОТЕ, ОГИБАЮЩЕМ ПРЕПЯТСТВИЯ ............................................................ 4
ЗАДАЧА 3. ЗАДАЧА О РАССТАНОВКЕ N ФЕРЗЕЙ ........................................................................................ 6
ЗАДАЧА 4. ЗАДАЧА ОБ «УМНОМ МУРАВЬЕ - 3» ........................................................................................... 8
ЗАДАЧА 1. ЗАДАЧА ОБ «УМНОМ МУРАВЬЕ»
Действие задачи происходит на поверхности тора размером 32×32 клетки. В
некоторых клетках находится еда. Муравей начинает движение из фиксированной
стартовой клетки.
За ход муравей может выполнить следующие действия:

повернуть налево;

повернуть направо;

сделать шаг вперед и, если в новой клетке есть еда, съесть ее;

ничего не делать.
Продолжительность игры – 200 ходов. Целью игры является – создание конечного
автомата с минимальным числом состояний, управляющего муравьем, который за
минимальное число ходов съест как можно больше яблок. В качестве функции
приспособленности выступает количество съеденных муравьем яблок минус отношение
числа ходов до последнего съеденного яблока к допустимому числу ходов.
Рис. 1. Визуализатор особи в задаче об умном муравье среды GlOpt
Особи задачи об «умном муравье» представлены конечными автоматами Мили.
Выходное воздействие в этих автоматах определяется текущим состоянием и входным
воздействием. Число состояний автомата является настраиваемым параметром задачи, а
входным воздействием является наличие или отсутствие еды впереди муравья.
Мутация особей на основе конечного автомата заключается в одном из случайно
выбранных действий: либо в изменении начального состояния автомата на произвольно
определенное, либо в изменении выходного состояния на одном из переходов.
При кроссовере на основе двух родительских конечных автоматов порождаются
два дочерних. Для каждой пары состояния и входного воздействия автомата-потомка
случайным образом выбирается выходное состояние одного из родителей.
ЗАДАЧА 2. ЗАДАЧА О РОБОТЕ, ОГИБАЮЩЕМ ПРЕПЯТСТВИЯ
Данная задача представляет собой вариант задачи Obstacle-Avoiding Robot,
описанную Джоном Коза.
Игра происходит на ограниченном поле 32×32 клетки и длится 200 ходов. В
стартовой клетке поля находится робот, цель которого состоит в том, чтобы найти
конечную точку на поле, представляющем собой лабиринт из расставленных препятствий.
Как и в предыдущей задаче, роботу разрешается двигаться вперед на одну клетку,
выполнять повороты налево и направо, а также ничего не делать. Встречая на своем пути
препятствие, робот вынужден искать обходной путь.
Рис. 2. Визуализатор особи в задаче о роботе, огибающем препятствия
Как и в задаче об «умном муравье», особь представлена автоматом Мили,
задающим действия муравья в каждом состоянии в зависимости от наличия или
отсутствия перед ним препятствия.
В задаче о роботе, огибающем препятствия, лучшее решение означает меньшую
функция приспособленности, которая определяется следующим образом. В случае, если
робот находит цель, в качестве значения функции приспособленности выступает
количество действий, которое необходимо совершить роботу для ее достижения. Если же
по
истечении
200
ходов
цель
остается
ненайденной,
то
значение
функции
приспособленности вычисляется как минимальное расстояние между роботом и целью в
ходе игры плюс 200 – штраф за ненайденную цель.
ЗАДАЧА 3. ЗАДАЧА О РАССТАНОВКЕ N ФЕРЗЕЙ
Суть задачи заключается в том, что ферзи должны быть расставлены на доске
таким образом, чтобы ни один из них не бил другого. Ни на одной вертикали,
горизонтали или диагонали не могут находиться два ферзя одновременно. Иными
словами, функция приспособленности определяется в задаче о расстановке ферзей как
число коллизий на доске и должна принимать минимальное значение.
Пример решения задачи для размерности N = 20 показан на рис. 6.
Рис. 3. Визуализатор особи в задаче о расстановке N ферзей среды GlOpt
Данная задача в течение многих лет решалась известными математиками, такими
как Гаусс, однако оптимальное решение найдено не было. Задача может решаться
непосредственно алгоритмом полного перебора с возвратом, однако это не позволяет
решать данную задачу при достаточно больших N. В то же время с помощью метода
имитации отжига задача может достаточно эффективно решаться для значительно
большей размерности, однако при достаточно больших N решение может быть
приблизительным, то есть, содержать коллизии.
В задаче о расстановке N ферзей особью является вектор, задающий шахматную
доску с расставленными на ней ферзями. Элемент вектора board[i] показывает, в
какой строке i-ого столбца располагается ферзь (так как известно, что два ферзя не
могут находиться в одном столбце, то использовать матрицу не имеет смысла).
В частности, для использования генетических алгоритмов в данной задаче
требуется определить операторы мутации и кроссовера. Действие оператора мутации
заключается в случайной перестановке ферзей из двух произвольных столбцов.
Оператор скрещивания порождает две шахматные доски – потомка, у каждого из
которых в i-том столбце ферзь может стоять либо в той же строке, что у первого
родителя, либо в той же строке, что у второго.
ЗАДАЧА 4. ЗАДАЧА ОБ «УМНОМ МУРАВЬЕ - 3»
Условия задачи аналогичны задаче об «умном муравье», за исключением того, что
муравей видит впереди себя не одну, а восемь клеток.
Рис. 4. Визуализатор к задаче об «умном муравье - 3» среды GlOpt
Как и задача об «умном муравье», данная задача предлагается студентам в курсе
обучения генетическому и автоматному программированию для написания собственных
подключаемых к виртуальной лаборатории модулей (плагинов), реализующих один из
предложенных методов оптимизации.
Скачать

Инструкция по работе с виртуальной лабораторией GlOpt. Описание задач