УДК 004.588

Применение облачных технологий в обучающих тренажёрах

Кузьмин Константин Константинович — магистрант кафедры Вычислительной техники Новосибирского государственного технического университета. (НГТУ, г.Новосибирск)

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

Ключевые слова: Облачные технологии, обучающий тренажер, генетические алгоритмы оптимизации.

Генетические алгоритмы (ГА) широко применяются для решения множества задач: например, задач о кратчайшем пути, о размещении и др., а также поиска глобального экстремума функции многих переменных и решения многокритериальных задач, настройки искусственной нейронной сети, выбора игровых стратегий и т.д. [1]. Поэтому изучение ГА всё чаще включается в программы вузовских дисциплин.

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

На справочно-обучающий модуль возложена задача предоставления обучающемуся основных теоретических сведений о генетических алгоритмах, их возможностях при решении задач оптимизации и особенностях реализации алгоритмов в данном тренажёре.

Аналитико-экспериментальный модуль позволяет проводить различные эксперименты для изучения влияния начальных условий, параметров и некоторых модификаций ГА на эффективность работы алгоритма. Все возможные комбинации различных реализаций отдельных операций генетического алгоритма, доступные в базовой версии тренажёра представлены на рисунке 1.

Возможные комбинации, доступные в базовой версии тренажёра

Рисунок 1. Возможные комбинации, доступные в базовой версии тренажёра.

Набор операций ГА (мутации и скрещивания), доступный для эксперимента в базовой версии тренажёра, можно расширять, используя дополнительные плагины.

Модуль "Журнал" хранит данные обо всех проведённых экспериментах. Обучающийся может в любой момент посмотреть подробности любого эксперимента, в том числе и результат оптимизации — наилучший путь коммивояжера, а также график сходимости и другие подробности о каждом запуске алгоритма в рамках эксперимента.

Тренажер ориентирован на определенный тип задач оптимизации, а именно — задачу коммивояжера как широко распространенную в практике экспериментальных исследований качества оптимизационных алгоритмов тестовую задачу. Исходные данные задачи могут быть введены самостоятельно обучающимся или сгенерированы средствами самого тренажёра. Для поддержки обучающегося в процессе работы с экспериментальным модулем используются идеи инструктивного менеджмента, используемые в электронном обучении на основе шаблонов действий пользователя.

Для расширения аналитических возможностей тренажёра предполагается обмен результатами экспериментов. Это направление работы тренажера реализуется на основе клиент-серверной архитектуры. Клиенты — это тренажёры. На них происходит подготовка исходных данных и производятся все вычисления. На сервере хранятся исходные данные и результаты проведения экспериментов.

Каждому уникальному набору исходных данных присваивается уникальный идентификатор (ID эксперимента). Далее набор загружается на сервер, где хранится в свободном доступе. Любой обучающийся может его скачать и провести свой эксперимент. Все результаты загружаются на сервер и объединяются с остальными результатами по данному эксперименту, уже хранящимися на нём. Таким образом обеспечивается накопление базы данных по каждому эксперименту. На основе этих данных обучающиеся смогут извлекать новые знания об эффективности тех или иных модификаций ГА. Для реализации данного функционала было решено использовать облачный сервис.

В качестве облачной платформы был выбран Windows Azure от Microsoft, а именно сервис Azure Storage. В нём предусмотрены три типа хранилища: блочные BLOB-объекты, страничные BLOB-объекты и диски, таблицы и очереди [3]. Для реализации обмена результатами проведения экспериментов нам понадобится третий тип — таблицы. Такой подход позволяет значительно сократить затраты по сравнению со стандартной базой данных SQL.

Каждая таблица в Azure Storage представляет собой неограниченный набор сущностей. Сущность — это набор полей, похожий на строку в базе данных. Каждая сущность содержит обязательные поля раздела и строки. Для сущностей с одинаковым разделом быстрее выполняются операции запроса и вставки. Поле строки — это уникальный идентификатор сущности внутри раздела.

Для реализации требуемого функционала необходимо две таблицы: Data и Solutions. Первая предназначена для хранения различных наборов исходных данных задачи, таких как количество пунктов и матрица эффективности (расстояний между пунктами). Вторая таблица будет содержать результаты экспериментов, объединённые по разделам. Каждый раздел — это уникальный идентификатор набора исходных данных. Структура классов для данных сущностей представлена на рисунке 2.

Структура классов

Рисунок 2. Структура классов.

Разрабатываемый тренажёр проходил апробирование в рамках реальных лабораторных работ в программе бакалавриата. Результаты апробирования показали заинтересованность обучающихся и высокий уровень усвоения материала за отведенное время.

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

Список литературы

1. Гладков Л. А., Курейчик В. В., Курейчик В. М. Генетические алгоритмы: Учебное пособие. — 2-е изд.. — М.: Физматлит, 2006. — С. 320.

2. Технологии анализа данных: DataMining, VisualMining, TextMining, OLAP / Барсегян А.А., Куприянов М.С., Степаненко В.В., Холод И.И., — 2-е изд., перераб. и доп. —СПб.: БХВ-Петербург, 2007. — 384 с.

3. Служба хранения // WindowsAzureURL: http://www.windowsazure.com/ru-ru/services/storage/ (дата обращения: 13.11.13).

4. How to use table storage // Windows Azure feature guide URL: http://www.windowsazure.com/en-us/documentation/articles/storage-dotnet-how-to-use-table-storage-17/?fb=ru-ru (датаобращения: 15.12.13).