Научная статья на тему 'Разработка библиотеки классов генетических алгоритмов для подбора наилучшей структуры ИНС'

Разработка библиотеки классов генетических алгоритмов для подбора наилучшей структуры ИНС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
172
45
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Истомина Ю. А., Тынченко В. В.

Рассматривается реализация библиотеки классов на языке С# для работы с генетическими алгоритмами, которые позволяют обучать ИНС и выбирать ее эффективную структуру.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Разработка библиотеки классов генетических алгоритмов для подбора наилучшей структуры ИНС»

- настройка устройств, в случае их подключения. Агентами сети в данном случае будет служить встроенное программное обеспечение (ПО) устройств, входящих в состав сети.

Для управления сетью 1В используются пакеты различных типов. Для того чтобы создать подобную систему для сети 8расе"^ге можно использовать ЯМЛР [3] - пакеты, так как они поддерживаются уже имеющимся встроенным ПО.

Создание системы мониторинга сети 8расе"^ге поможет сократить число сбоев в работе систем, за счет немедленного реагирования на отключение устройств, повысит скорость настройки сети, за счет распознавания подключаемых устройств, исключит

ошибки при настройке связанные с человеческим фактором.

Библиографические ссылки

1. InfiniBand Architecture Spacification Volume 1. October 2004.

2. ECSS-E-50-12C. Space Wire - Links, nodes, routers and networks. - European Cooperation for Space Standardization (ECSS). 2008. 31 July.

3. ECSS-E-ST-50-52C. Remote Memory Access Protocol - European Cooperation for Space Standartization (ECSS). 2010. February.

© Иванов М. А., Лыткин М. Б., 2013

УДК 004.032.26

Ю. А. Истомина Научный руководитель - В. В. Тынченко Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

РАЗРАБОТКА БИБЛИОТЕКИ КЛАССОВ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ ПОДБОРА НАИЛУЧШЕЙ СТРУКТУРЫ ИНС

Рассматривается реализация библиотеки классов на языке С# для работы с генетическими алгоритмами, которые позволяют обучать ИНС и выбирать ее эффективную структуру.

Сегодня для решения различных практических задач используются искусственные нейронные сети (ИНС). Такими задачами являются: моделирование фрагментов электрической цепи, определение злокачественности опухоли, классификация данных, полученных со спутников, распознавание типов текстур, прогноз стоимости недвижимости.

В связи с популярностью ИНС была спроектирована и реализована система нейросетевого моделирования NetworkModeler [1]. Система NetworkModeler предназначена для создания нейросетевых моделей полносвязной нейронной сети с прямым распространением сигнала. В систему встроена функция подбора наилучшей структуры ИНС под решаемую задачу. Подбор структуры осуществляется путем обучения всевозможных структур и выявления наилучшей. Так как процесс обучения ИНС занимает значительное количество времени, встала необходимость сократить количество обучаемых структур. Анализируя проблемы нейросетевого моделирования, был обоснован выбор эволюционного подхода для подбора наилучшей структуры ИНС [2].

Для реализации генетического алгоритма (ГА), автоматизирующего подбор наилучшей архитектуры ИНС, необходимо решить следующие задачи:

1. Познакомиться с существующими модификациями ГА.

2. Изучить программное обеспечение, реализующее ГА.

3. Выделить модификаций ГА для реализации.

4. Спроектировать библиотеку классов для работы с ГА.

5. Разработать библиотеку классов для работы с ГА.

6. Реализовать тестовое решение для оценки работоспособности ГА.

Самым популярным программным обеспечением, позволяющим реализовывать и использовать генетические алгоритмы, является Evolver (приложение к Microsoft Excel)[3] и Genetic Algorithm Tool (приложение Optimization Tool среды Matlab)[4].

Перед разработкой собственной библиотеки классов было проведено исследование модификаций ГА в указанном ПО с целью выявления наилучших методов селекции, мутации, скрещивания. По результатам исследования можно сделать следующие выводы:

1. Выбор метода селекции не влияет на надежность генетического алгоритма. Все методы нашли решение с заданной точностью. Самым эффективным методом селекции по количеству итераций и точности решения оказалась турнирная селекция (размерность турнира 4).

2. Сравнение методов мутации показало, что случайная мутация (выбор случайным образом компоненты векторов из допустимого диапазона) является наименее надежным - 80 процентов удачных запусков. Самая высокая точность у адаптивной мутации, однако, требуется наибольшее количество итераций для поиска оптимального решения.

3. Операторы скрещивания равномерное, одноточечное, двухточечное дают одинаковую точность порядка 10-2.

Тестирование ГА в рассмотренных программах дало хорошие результаты, однако, не смотря на это, будет трудно реализовать универсальный алгоритм

Актуальные проблемы авиации и космонавтики. Информационные технологии

автоматического подбора структуры ИНС для различных задач в данных программах.

Таким образом, для реализации в библиотеке классов были выбраны следующие методы:

Селекции - пропорциональная, ранговая, турнирная, элитарная.

Скрещивания - одноточечное, двухточечное, равномерное.

Мутации - случайная, адаптивная.

В библиотеке классов используется бинарное представление хромосом, основные классы представлены на рис. 1.

Основным классом является класс Genetic Algorithm, содержащий набор различных методов мутации, селекции и скрещивания.

Для инкапсуляции логики работы с классом Genetic Algorithm используется класс GA Manager, играющий роль интерфейса.

Чтобы работать с библиотекой классов, достаточно создать объект класса GA Manager, передать настройки генетического алгоритма и вызвать метод Start().

Настройки генетического алгоритма содержатся в классе GA Settings, поля которого включают в себя элементы различных перечислений - Mutation (мутация), Selection (селекция), Reproduction (скрещивание), Algorithm End (условие выхода из алгоритма).

Класс Common Delegate обеспечивает присвоение нужной ссылки на функцию из Genetic Algorithm в зависимости от выбранного элемента перечисления.

Algorithm End ©

Enum

Reproduction

Enum

г Converter ffl]

Class

Я j

г Genetic Algorithm

Class

1_.

M u tat ion ©

Епьт

Selection ©

EnLm

/ GASettings

Class

™ ш

с SearchElement sf

Class

v. _.

Functions ©

Enum

M athFunction ©)

Static Class

\_________

■ GAM anager

Class

Я J

r С omonDe legate

Delegate

J

Рис. 1. Диаграмма классов библиотеки для работы с ГА

Рис. 2. a - Задание области поиска; б - Настройка параметров ГА

Рис. 3. Оценка созданного ГА

Существует и вспомогательный класс Math Function с математическими функциями для тестирования генетических алгоритмов. Доступные функции собраны в перечисление Functions.

Класс Genetic Algorithm работает с другими важными классами Converter (обеспечивает перевод из генотипа в фенотип и обратно) и Search Element (элемент области поиска).

В состав библиотеки классов входит приложение для тестирования различных модификаций ГА. Использование тестового приложения составляет всего три шага:

1. Выбрать функцию для оптимизации и задать область поиска (рис. 2, а).

2. Настроить параметры ГА или оставить по умолчанию (рис. 2, б).

3. Запустить тестирование ГА и оценить результаты (рис. 3).

На рис. 3 изображен пример решения задачи минимизации аддитивной функции. График показывает зависимость функции приспособленности от номера поколения. Нижняя линия отображает изменение минимума, верхняя линия представляет максимальное значение функции приспособленности, средняя -среднее значение в поколении. Как видно из графика минимальное значение найдено в 17 поколении.

Использование библиотеки классов позволит подбирать структуру ИНС в автоматизированном режиме с помощью генетического алгоритма.

В дальнейшем планируется применять данную библиотеку для обучения нейронной сети произвольной архитектуры, что во многом увеличит функциональность системы нейросетевого моделирования

NetworkModeler.

Библиографические ссылки

1. Истомина Ю. А., Тынченко В. В. Система автоматизации проектирования искусственных нейронных сетей послойной архитектуры // Решетнев-ские чтения : материалы XVI Междунар. науч. конф. (10-12 нояб. 2011, г. Красноярск) : в 2 ч. / под общ. ред. Ю. Ю. Логинова ; Сиб. гос. аэрокосмич. ун-т. Красноярск, 2012. С. 611-612.

2. Истомина Ю. А. О проблематике моделирования нейронных сетей произвольной архитектуры // Решетневские чтения : материалы XVI Междунар. науч. конф. (10-12 нояб. 2011, г. Красноярск) : в 2 ч. / под общ. ред. Ю. Ю. Логинова ; Сиб. гос. аэрокосмич. ун-т. Красноярск, 2012. С. 609-610.

3. Evolver для оптимизации на основе генетических алгоритмов. URL: http://www.palisade.com/.

4. Genetic Algorithm and Direct Search Toolbox. URL: http://matlab.exponenta. ru/.

© Истомина Ю. А., 2013

УДК 681.3.06

С. В. Колесников. Научный руководитель - А. Г. Зотин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

АЛГОРИТМЫ ГЕНЕРАЦИИ ЛАНДШАФТА

Рассматриваются вопросы генерации алгоритм и оптимального алгоритма.

В настоящее время медиа и игровая индустрия очень развиты, и они пытаются использовать все возможности современных компьютеров в различных аспектах. Одной из задач является создание пейзажа или ландшафта, на котором происходят какие-либо события. Эта задача часто встречается при моделировании различных пространств. И Широко применима в кино или игровой индустрии, а также в программах моделирующих поведение различных объектов. Но каким образом формируется пространство?

Для генерации пространства существует три основных подхода: Холмовой, шум Перлина, Фрактальный. Холмовой алгоритм очень просто и заключается в конечном создании холмов в определённой области. В ходе чего и получается сформировано пространство. В зависимости от параметров создаваемых холмов можно создать как скалистую, так и долинистую поверхность. Шум Перлина основывается на функциях и закономерностях выведенных Перлином [2]. Его основная идея состоит в том, что можно брать какую

либо функцию изменять частоту и амплитуду для данной функции, а потом складывать результаты. Это математически очень сложный метод и требует много вычислительных ресурсов, но при выборе интересных функций можно получить наиболее приближенные пейзажи к реальности. Фрактальный метод основан на теории фракталов. В начале задаются точки пиков к верхних так и низких, после чего с каждым шагом рассчитываются значения для соседних точек между пиками с последующем разбиением пространства на более детальное [1]. И так до тех пор, пока не будет достигнута нужная дискретизация пространства. Данный метод очень хорошо подходит для создания карт пространств, при генерации самого пространства данным методом возникают математические сложности в устранение резких перепадов высот.

При сравнение всех методов между собой математической сложностью особо выделяется фрактальный алгоритм. Так как для его правильной работы необходимо разбивать пространство на равные части, что не

i Надоели баннеры? Вы всегда можете отключить рекламу.