РАЗВИТИЕ ИНТЕГРИРОВАННОЙ ИНТЕЛЛЕКТУАЛЬНОЙ СРЕДЫ РДО В МГТУ ИМ.Н.Э.БАУМАНА: ИСТОКИ И ПЕРСПЕКТИВЫ1 Урусов А.В., ст. преподаватель МГТУ им.Н.Э.Баумана rdo@rk9.bmstu.ru Лущан Д.Н., студент МГТУ им.Н.Э.Баумана 1. ВВЕДЕНИЕ Метод и язык РДО (Ресурсы-Действия-Операции) были предложены известным ученым в области искусственного интеллекта, родоначальником интеллектуального имитационного моделирования в России В.В.Емельяновым [1,2]. Статья посвящена описанию развития интегрированной программной cреды РДО учениками и последователями В.В.Емельянова на кафедре «Компьютерные системы автоматизации производства» МГТУ им. Н.Э.Баумана. 2. ОТ СИМУЛЯТОРА К РЕДАКТОРУ Первые версии системы моделирования РДО (RAO-Simulator) не обладали встроенным редактором моделей. Приходилось пользоваться средством Norton Commander, а позже Notepad’ом. Переключаться между файлами модели было неудобно. Поэтому в 1995 г. появился редактор моделей (RAO-Editor), который отображал все файлы модели в виде закладок, и обладал буквально парой дополнительных функций: запуск модели на исполнение и отображение результатов моделирования после прогона. Со временем он обзавелся функциями подсветки синтаксиса, остановки моделей, обработки ошибок и встроенной документацией. В 2002-м году вышла вторая и последняя версия редактора, потому что было принято решение о разработке интегрированной системы моделирования. 3. ОТ РЕДАКТОРА К СТУДИИ Редактор, работая в паре с симулятором, не мог раскрыть потенциал последнего, потому что интеграция между ними была 1 Работа выполнена при финансовой поддержке РФФИ, проект №10-07-00727 изначально ограниченной, а сами они являлись отдельными исполняемыми модулями. Чтобы качественно изменить ситуацию, было принято решение о разработке интегрированной системы моделирования, которая должна включаться в себя: редактор моделей, компилятор, симулятор, модули построения графиков, анимации, вывода результатов. И в 2003-м году такая система было создана и названа RAO-Studio. В 2004-м году вышел компакт-диск. 4. ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ RAO-STUDIO Можно выделить две основные цели программного комплекса RAO-Studio: предоставить пользователю средство редактирования текстов моделей и возможность проведения имитационных экспериментов с последующей обработкой результатов. В соответствии с основными целями можно выделить решаемые задачи (рис.1): синтаксический разбор текста модели и настраиваемая подсветка синтаксических конструкций языка РДО; автоматическое завершение ключевых слов языка; поиск и замена фрагментов текста; навигация по тексту моделей с помощью закладок; вставка синтаксических конструкций языка и заготовок (шаблонов) для написания элементов модели; настройка отображения текста моделей, в том числе. скрытие фрагментов текста и масштабирование; запуск и остановка процесса моделирования; изменение режима моделирования; изменение скорости работающей модели; переключение между кадрами анимации в процессе моделирования; отображение хода работы модели в режиме реального времени; построение графиков изменения интересующих разработчика характеристик в режиме реального времени; обработка синтаксических ошибок при запуске процесса моделирования; обработка ошибок во время выполнения модели; обеспечение пользователя справочной информацией. Все они реализованы в единой интегрированной среде. Например, появилась возможность строить график наблюдаемой переменной в процессе моделирования (рис.2), трассировка приобрела цветовую раскраску, основанную на типе трассируемой информации, а в режиме анимации стало возможным отображение сразу нескольких кадров (рис.3). Pис. 1 Экранные формы некоторых функций Pис. 2 Построение графиков Pис. 3 Анимация 5. РЕЖИМЫ МОДЕЛИРОВАНИЯ В системе имеется возможность управлять режимами моделирования. Режим дискретной имитации был добавлен в новой версии. Максимальная производительность - Режим максимальной производительности. Скорость моделирования определяется производительностью компьютера. Масштабный коэффициент не учитывается, регулятор скорости тоже. Отключается вывод анимации, графиков и трассировки на экран (данные по трассировке продолжают собираться). Дискретная имитация (новый режм) - В режиме дискретной имитации переходы между событиями осуществляются как можно быстрее без синхронизации с таймером операционной системы, т.е. интервалы времени между событиями в модели учитываются в расчетах модельного времени, но никак не проявляются в анимации и считаются равными друг другу (с точностью до сложности расчета каждого события). Скорость моделирования определяется производительностью компьютера и регулятором скорости имитатора. Если модель содержит кадры анимации, то они могут быть выведены на экран. Доступно построение графиков и просмотр данных трассировки в режиме реального времени. Если сравнивать с режимом синхронной имитации, то для дискретной имитации масштабный коэффициент времени равен бесконечности. Таким образом, модель в этом режиме работает с максимальным быстродействием, учитывающим регулятор скорости имитатора, и позволяет отображать анимацию. Синхронная имитация - В режиме синхронной имитации переходы между событиями осуществляются по синхронизации с таймером операционной системы, т.е. интервалы времени между событиями в модели учитываются не только в расчетах, но и при выводе анимации. Скорость моделирования определяется пользователем через масштабный коэффициент. Масштабный коэффициент устанавливает отношение единицы модельного времени к одному часу реального времени, который рассчитывается по таймеру операционной системы. Изменяется с помощью соответствующих команд. Регулятор скорости работы имитатора тоже учитывается. Если модель содержит кадры анимации, то они могут быть выведены на экран. Доступно построение графиков и просмотр данных трассировки в режиме реального времени. При большом значении масштабного коэффициента стирается разница между дискретным и синхронным режимами моделирования, и быстродействие модели начинает определяться мощностью компьютера. Пауза - Режим паузы. Процесс моделирования приостанавливается. Чтобы его продолжить, достаточно переключиться на любой другой режим моделирования. 6. РЕГУЛИРОВАНИЕ СКОРОСТИ В режиме синхронной имитации можно управлять сокростью прогона, меняя масштабный коэффициент, который определает отношение единицы модельного времени к единицы системного времени компьютера. Для это предусмотрены команды Увеличить масштаб - увеличивает скорость анимации на 50% процентов. Увеличить масштаб в 4-ре раза - увеличивает скорость анимации в 4 раза. Уменьшить масштаб в 4-ре раза - уменьшает скорость анимации в 4 раза. Уменьшить масштаб – уменьшает скорость анимации на 50% процентов. К этим командам была добавлено новая, которая называется Скорость имитатора. По сути это логарифмическая шкала, регулирующая общую скорость имитатор. Используется в моделях, основанных на продукционных правилах, в которых модельное время остается равным нулю, но имеется анимация. Снизив значение скорости можно подробнее рассмотреть процесс моделирования. Используется в режимах дискретной и синхронной имитации, не используется в режиме максимального быстродействия. 7. СТРУКТУРА СИСТЕМЫ Интегрированная система моделирования состоит из нескольких взаимосвязанных модулей. Дадим им краткую характеристику. RAO-Simulator – осуществляет непосредственное моделирование имитационной модели и логический вывод на правилах продукции. Так же содержит компилятор и систему диагностики ошибок. RAO-Studio (IDE) – объединяет в себе все визуальные средства системы, такие как редактор модели, подсистемы анимации, построения графиков и отображения результатов моделирования. RAO-Repository – модуль, обеспечивающий хранение и доступ к исходным файлам модели. Взаимодействие между модулями происходит с помощью обмена сообщениями. Например, в процессе имитации, RAO-Simulator’ом формируется новая строка трассировки. Она ‘выбрасывается’ в систему обмена сообщениями и доставляется до подписчиков. Один из них (RAO-Studio (IDE)) выводит её на экран, а другой (RAORepository) – записывает в файл. При этом источник сообщений может ничего не знать о получателях. Данный подход позволяет наращивать функциональные возможности интегрированной системы без внесения изменений в логику обработки существующих сообщений. 8. МЕТОДЫ ИМИТАТОРА В основе системы моделирования РДО лежит гибридизация нескольких методов: дискретной имитации на основе событийного подхода [5], и механизма прямого логического вывода на основе продукционных и модифицированных продукционных правил [1,2]. Так же в системе существует модуль поиска решений по неявно заданному графу состояний, реализующего алгоритм обхода A*[3,4]. В данной статье хочется отметить изменения в методах, появившихся в РДО в последнее время: процессно-ориентированный подход имитационного моделирования, самодостаточный подход сканирования активностей, приоритетный вывод, иерархическая база знаний. 9. ПРОЦЕССНО-ОРИЕНТИРОВАННЫЙ ПОДХОД Для разработки имитационных моделей систем класса Системы массового обслуживания (СМО), широко и очень успешно используются процессно-ориентированные языки моделирования. В СМО возникают такие понятия как потоки заявок, каналы обслуживания, дисциплины очереди и д.р. Разработать имитационную модель СМО можно и с помощью существующего синтаксиса языка РДО. Но более удачным видится решение, которое позволяет описать элементы реальной системы наиболее близкими к ним синтаксическими конструкциями. И такая работа было проделана. За основу выбран синтаксис языка GPSS [6]. Интеграция нового метода в систему (гибридизация) происходит за счет использования единой базы данных (БД) модели, в которой хранятся текущие значения параметров ресурсов РДО. Т.е. любые изменения параметров в процессной части модели могут быть отслежены продукциями механизма логического вывода и наоборот. Так, например, разработана модель участка, в которой процесс обработки описан процессно-ориентированным языком, а поломка и ремонт оборудования – клавиатурной операцией РДО. Для представленного примера рассчитана оценка эффективности использования подхода. Для этого было разработано две модели одной системы. При написании первой использовался только классический синтаксис РДО, для второй – представленный подход. Некоторые части обеих моделей были одинаковые, например, анимация, файл прогона, часть функций и др. При расчёте оценки эффективности они не учитывались. Сравнение показало, что вторая модель содержит в 4,5 раза меньше строк кода. А если считать не строки, а в символы, то уменьшение достигло 7 раз. На текущий момент поддерживаются команды: GENERATE, TERMINATE, SEIZE, RELEASE, ADVANCE, QUEUE, DEPART. 10. СОБЫТИЙНЫЙ ПОДХОД Исторически РДО-Метод основывается на подходе сканирования активностей, дополненного нерегулярными событиями для моделирования различных повторяющихся внешних воздействий на моделируемую систему. Такими событиями могут быть поступление в систему массового обслуживания новой заявки, поломка обслуживающего устройства и др. Этого было достаточно для разработки моделей различной сложности. Но отсутствие механизма управления планированием событий в явной форме лишает РДО-Метод гибкости, присущей событийному подходу имитационного моделирования. Для того чтобы реализовать полноценный событийный подход на РДО необходимо модернизировать существующее событие так, чтобы оно позволяла планировать себя в явном виде с помощью инструкции: <название_события>.planning(<время_наступления_события> [,<параметры_события>]); Причем для интеграции событийного и подхода сканирования активностей достаточно разрешить планирование событий не только в теле событий, но и в теле активностей. Помимо этого, было решено отказаться от механизма самопланирования нерегулярных событий, и, как следствие, от самого понятия "нерегулярное событие". Т.е. теперь повторяющиеся события необходимо планировать внутри себя в явном виде. По этой причине термин “нерегулярное событие” был заменён на “собыие”. В результате в систему имитационного моделирования РДО был внедрен полноценный событийный подход, полностью интегрированный с подходом сканирования активностей. 11. ПРИОРИТЕТЫ ОПЕРАЦИЙ Система логического вывода РДО выполняет первую найденную активность, у которой выполняются условия запуска. Такой подход не всегда позволяет написать адекватную модель, да и просто лишает язык РДО некоторой гибкости. Пользователю может быть полезен инструмент, с помощью которого назначается приоритет для каждой активности. Это позволит из нескольких готовых к выполнению активностей выбрать одну ‘наилучшую’. Приоритет операции (активности) указыватся сразу после списка параметров в виде: <имя_активности> “:” <имя_образца> [<значения_параметров_образца>] [CF=<приоритет_активности>] Приоритет активности – арифметическое выражение целого или вещественного типа, значение которого ограничено диапазоном [0..1]. 12. ИЕРАРХИЯ КЛАССОВ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ Знания в РДО могут быть сгруппированы по признакам в точки принятия решений Search, Some, Prior. При этом, каждая такая точка имеет логическое выражение активации, что позволяет включать или отключать сразу все продукции внутри неё. Последнее весьма эффективно экономит производительность ресурсоемкого подхода сканирования активностей. На рис.4 приведена иерархия классов знаний продукционного имитатора. На ней видно, что знания могут быть представлены в иерархическом виде, т.к. любая РДО-логика одновременно является как потомком базовой операции, так и контейнером операций. Этот принцип внутреннёй организации знаний имитатора был расширен и до компилятора модели. В текущей версии системы у разработчика появилась возможность описывать вложенность точек. Pис.4. Иерархия классов описания знаний 13 ИЗМЕНЕНИЯ В СИСТЕМЕ СБОРА ПОКАЗАТЕЛЕЙ У разработчика модели есть возможность описать собираемые в процессе моделирования показатели. Система собирает по ним необходимую статистическую информацию, а в конце прогона её обрабатывает и выдаёт окончательный результат. Очень часто разработчика интересуют такие показатели, как коэффициент использования оборудования. Специфика их расчета в том, что итоговая величина рассчитывается на основе временного интервала наблюдения за показателем. И таким интервалом является модельное время конца моделирования, точнее интервал [0, модельное_время_конца_ моделирования]. Эта традиционная для РДО схема имеет недостаток: даже если в модели удаётся выделить и обработать переходные процессы, то подсистема сбора показателей будет собирать статистику не только по интересующему нас установившемуся режиму, но и учтёт все переходные процессы. Например, начальные условия модели производственного участка могут предполагать отсутствие заготовок на станках. Заготовки будут поступать в систему постепенно, переходя по цепочке обработки от одного станка к другому. Установившейся режим наступит, когда первая заготовка поступит на обработку к последнему станку. А если рассчитать его коэффициент использования с нулевого момента времени, то он окажется заниженным. Для решения это проблемы было предложено добавить управление моментами запуска и остановки подсистемы сбора показателей. А это потребовало разбить показатели на группы, т.к. нас могут интересовать различные временные интервалы наблюдения за моделью. Команды запуска и остановки наблюдения вызываются из активностей. Это именно то место, где имеется возможность контролировать логику моделируемой системы. На текущий момент предложенный механизм добавлен и проходит тестирование. Традиционные для РДО показатели, в режиме обратной совместимости, автоматически объединяются в группу, наблюдение за которой ведётся на протяжении всего моделирования. 14. ИЗМЕНЕНИЯ В ЯЗЫКЕ Было сделано несколько изменений в синтаксисе языка РДО: Добавлен оператор логического отрицания: ‘!’ или not. Добавлена команда Select, которая позволяет отобрать только часть ресурсов указанного типа и проверить их состояния. Добавлена операция унарного минуса. Ключевые слова Choice NoCheck или Choice from 1 = 1 необязательно указывать, они используется по-умолчанию. Ключевое слово first необязательно указывать, оно используется по-умолчанию. Для удаляемого ресурса (Erase) можно описать конвертор. Временный ресурс можно использовать для сбора статистики по watch_par и в анимации по его имени. Сокращен синтаксис алгоритмической функции. Добавлены локальные переменные и простейший алгоритмический язык с такими операторами, как if и for (в стадии тестирования) Добавлены новые типы данных: bool, string, array (в стадии тестирования) Литература 1. Емельянов В.В., Ясиновский С.И. Введение в интеллектуальное имитационное моделирование сложных дискретных систем и процессов. Язык РДО. – М.: АНВИК, 1998. 2. Емельянов В.В., Ясиновский С.И. Имитационное моделирование систем. Допущено УМО вузов по университетскому политехническому образованию в качестве учебного пособия для студентов вузов, 3. 4. 5. 6. обучающихся по направлениям «Информатика и вычислительная техника» и «Информационные системы». – М.: Изд-во МГТУ им. Н.Э.Баумана, 2009. Люгер Дж. Ф. Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание: Пер. с англ. – М.: Издательский дом "Вильямс", 2005. Принятие оптимальных решений в интеллектуальных имитационных системах: Учебное пособие по курсам «Методы системного анализа и синтеза» и «Моделирование технологических и производственных процессов»/ В.В. Емельянов, В.И. Майорова, Ю.В. Разумцова и др. – М.: Изд-во МГТУ им. Н.Э. Баумана., 2002. Прицкер А. Введение в имитационное моделирование и язык СЛАМ II. – М.: Мир, 1987. Томашевский В.Н., Жданова Е.Г.Имитационное моделирование в среде GPSS. – М.: Бестселлер, 2003.