РАЗРАБОТКА СИСТЕМЫ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ ДВИЖЕНИЯ ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА НА ОСНОВЕ ИНТЕРАКТИВНО ЗАДАВАЕМЫХ ПРАВИЛ ОРГАНИЗАЦИИ ДВИЖЕНИЯ С.К. Дулин, А.С. Селецкий, В.И. Уманский В данной статье рассмотрена задача создания системы имитационного моделирования движения поездов на ж.д. участке, в которой логика организации движения задается пользователем интерактивно, вне кода программы. Предложен подход к проектированию системы моделирования как системы, основанной на знаниях. Описана реализация прототипа системы и представлены результаты вычислительных экспериментов. Введение Основой для организации движения ж.д. транспорта является составляемый заранее график движения, который выражает план эксплуатационной работы железных дорог. Однако составить расписание движение поездов на заданный период времени и запустить их точно по графику не получается. При составлении нормативного графика нельзя заранее учесть все факторы, влияющие на движение поездов. Отсюда возникает необходимость управления и контроля движением поездов, или в ж.д. терминологии оперативного управления перевозками. Принятие решений по оперативному управлению перевозками возлагается на поездных диспетчеров и дежурных по станциям. Поездной диспетчер руководит движением поездов на участке и отвечает за выполнение графика движения поездов на этом участке. Каждый дежурный по станции осуществляет мониторинг движения и контролирует прибытие, проследование и отправление всех поездов на этой станции. Дежурные подчиняются поездному диспетчеру. Особенностью управления перевозками на ж.д. транспорте является наличие большого количества нормативных правил и положений, которые регламентируют действия дежурных и диспетчеров при организации движения. Они сформулированы в ряде документов, таких как “Правила технической эксплуатации железных дорог Российской Федерации”. Эти правила определяют порядок организации движения поездов, логику перевозочного процесса. Они носят эвристический характер, учитывают разнообразные параметры и предписывают действия, которые дежурные должны выполнять в различных ситуациях. 1. Постановка задачи Поездной диспетчер, который руководит движением поездов на участке, должен проанализировать текущую обстановку, оценить возможные варианты ее развития, чтобы затем принять решение по организации эффективного движения. Однако часто выполнить точный оперативный прогноз развития поездной обстановки вручную, учитывая многочисленные ограничения и аспекты организации движения ж.д. транспорта, невозможно, особенно в условиях ограниченности времени на анализ ситуации и принятие решения. На сегодняшний день поездной диспетчер не располагает автоматизированными средствами оперативного прогнозирования, которые позволили бы ему адекватно оценить текущую ситуацию и принять обоснованное решение. В настоящий момент разрабатываются системы прогнозирования движения поездов на основе имитационного моделирования. Однако в этих системах технология работы и механизмы принятия решений дежурными по станциям “зашиты” в программном коде, и с этим связан ряд недостатков, которые существенны при практическом использовании такой системы: Система является “черным ящиком” для использующего его диспетчера. Она позволяет смоделировать движение поездов на участке, она не может пояснить полученный результат. Почему полученный при моделировании график движения поездов именно такой, какие решения дежурных привели к такому результату? Нерасширяемость модели организации движения. Механизмы принятия решений дежурными по станциям по организации движения зашиты в коде системы. При таком подходе учет нового фактора, введения нового правила организации движения приводит каждый раз к необходимости перепрограммирования системы. Логика принятия решений жестко задана в коде системы. Это исключает возможность изменять ее с целью проигрывания различных сценариев развития поездной обстановки. Такая возможность тестирования различных наборов правил организации движения позволила бы диспетчеру найти оптимальные управляющие решения. Таким образом, целесообразно создание системы моделирования движения ж.д. транспорта, в которой логика организации движения поездов, порядок принятия решений дежурными по станциям задается интерактивно. Интерактивное задание правил организации движения означает, что эти правила сформулированы в явном виде, все программного кода системы, и на основе этих правил осуществляется оперативный прогноз движения поездов. При работе с такой системой диспетчер имеет возможность “видеть” правила, на основе которых осуществляется моделирование перевозочного процесса, и тем самым возможно обоснование и объяснение результата прогнозирования набором используемых правил. Интерактивное задание набора правил, определяющих организации движения поездов, позволяет менять логику перевозочного процесса в моделировании без перепрограммирования самой системы. Это практически важно, когда надо быстро учесть какие-либо новые особенности организации движения поездов, а также учесть особенности перевозочного процесса на отдельных участках. 2. Выбор подхода к моделированию движения поездов Систему моделирования движения ж.д. транспорта предлагается проектировать как экспертную систему, БЗ которой содержит правила организации движения поездов. Это эвристические знания, которые определяются экспертом в области управления перевозками, с учетом возможной специфики участка моделирования. Механизм вывода, независимый от экспертных знаний, использует их для моделирования движения ж.д. транспорта на участке. Таким образом, моделирование движения поездов на участке осуществляется на основе интерактивно заданных эвристических знаний об организации движения. Данный подход оправдан в случае слабоформализованных предметных областей, где решение задач имеет эвристическую, а не алгоритмическую природу. При решении же задачи моделирования движения ж.д. транспорта центральную роль играют именно эвристические правила, согласно которым организуется движение, то есть знания об организации перевозочного процесса. Здесь сложно выделить формальный алгоритм решения, поскольку весь ход моделирования полностью определяет этим набором эвристических знаний. В системе моделирования движения ж.д. транспорта в качестве способа представления знаний об организации перевозочного процесса была выбрана продукционная модель (см. [4] и [7]). Знания о перевозочном процессе представляются в виде фактов и продукций. Факты для представления знаний используют концепцию “предикат - аргумент”, которую также иногда называют концепцией “объект-атрибут-значение”. Например, высказывание “Поезд №123 прибывает на станцию Люблино в 12:15” можно представить в виде факта Прибывает (№123, “Люблино”, 12:15). Совокупность фактов в рабочей памяти описывает текущее состояние перевозочного процесса. Правила продукции задаются в виде выражений вида: ЕСЛИ <условие> ТО <действие>. При этом условия в левой части описывают ситуацию, в которой данное правило организации движения может быть применимо. Правая часть определяет действие, которое предписывается выполнить в случае активации данного правила. Например, “ЕСЛИ поезд закончил стоянку на станции и следующий за станцией перегон свободен, ТО поезд отправляется по этому перегону”. Вся БЗ системы состоит из набора таких правил, описывающих в совокупности знания об организации перевозочного процесса. Использование продукционных правил наиболее удобным способом для представления знаний об организации перевозочного процесса, поскольку они являются естественным способом описания знаний о принятии решений. Эвристические знания об организации перевозочного процесса, которыми руководствуется ЛПР (диспетчер), будучи сформулированы неформально, уже имеют форму правил. Они предписывают диспетчеру решения, которые он должен принять в той или иной ситуации. С другой стороны, представление знаний в виде совокупности правил и фактов позволяет использовать их в вычислительной системе, используя формальный логический вывод. При проектировании системы моделирования движения ж.д. был выбран следующий вариант архитектуры ЭС (см. [4], [5]). ПОДСИСТЕМА ВВОДА ЗНАНИЙ ПОДСИСТЕМА ОБЪЯСНЕНИЯ БАЗА ЗНАНИЙ ИНТЕРПРЕТАТОР РАБОЧАЯ ПАМЯТЬ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ Рис. 1. Архитектура системы Основными компонентами системы являются база знаний (БЗ), интерпретатор и рабочая память (РП). БЗ содержит совокупность продукционных правил, описывающих организацию перевозочного процесса. Кроме самих правил в БЗ находятся факты, описывающие исходные знания о процессе моделирования участка, например, описывающие структуру участка, различные характеристики станций и перегонов, нормативные расписание поездов на участке. В РП содержатся факты, описывающие текущее состояние моделирования. Эти факты управляют активацией правил, а выполнение действий в правых частях правил приводит к изменению РП. Интерпретатор осуществляет моделирование перевозочного процесса путем применения правил в БЗ к текущему состоянию РП. 3. Разработка прототипа системы Прототип системы был реализован с использованием инструментальных средств CLIPS и JESS. Несмотря на доступность этих программных продуктов (CLIPS доступен бесплатно, а JESS – бесплатно для академического использования), они являются удобными и хорошо зарекомендовавшими себя оболочками. Вместе с тем, в отличие от коммерческих продуктов, таких как g2 фирмы gensym или iLog JRules фирмы iLog, в них отсутствуют продвинутые возможности, такие как средства создания и редактирования набора правил, проверки на целостность и непротиворечивость и т.п. Поскольку данная работа носит исследовательский характер, в ней использовались CLISP/JESS (См. [7], [9]). При концептуальном анализе перевозочного процесса на ж.д. участке была сформирована модель предметной области, включающая ряд понятий и отношений. Эти понятия и отношения были формализованы в виде фактов на языке CLIPS. Статические знания о перевозочном процессе включают описание структуры участка, характеристики ТТО (технико-технологического оснащения) участка, поездов в модели, нормативного графика движения. Так, например, для описания структуры участка используются следующие шаблоны фактов (на языке CLIPS). Станция на участке: (station (number ?) (name ?)) Перегон на участке: (span (number ?) (name ?)) Наряду со статическим знаниями, которые не изменяются в процессе моделирования, система оперирует динамическими знаниями о перевозочном процессе. Они появляются в процессе вывода и описывают текущее состояние моделирования. Они описывают операции, которые происходят в поездами в процессе движения. Например, стоянка поезда на станции: (stop (train ?) (station ?) (station-track ?) (start-time ?) (endtime ?)) Логика принятия решений при организации движения поездов на участке выражена в виде набора правил. Эти правила формализованы на языке CLIPS, однако легко интерпретируемы. Совокупность правил в БЗ системы описывает процесс движения поездов на участке. Конечная версия системы моделирования движения поездов реализована на языке Java с использованием инструментария JESS в виде одного программного модуля. Данный модуль представляет собой приложение с удобным графическим интерфейсом и включает подсистему отображения и объяснения результатов. Разработанный набор правил организации движения содержится в отдельном файле, вне кода программы. Таким образом, для изменения логики моделирования, для более адекватного описания перевозочного процесса не надо перепрограммировать систему, а достаточно изменить набор правил организации движения, и использовать эти правила при моделировании. 4. Тестирование и результаты Для подтверждения того, что реализованная система моделирования решает поставленную задачу, было проведено тестирование набора правил на различных исходных данных. Для тестирования выбирались разные по структуре участки, а также разные нормативные графики движения. Анализ результатов показал, что разработанный набор правил адекватно описывает организацию движения поездов на участке моделирования. Для демонстрации работы системы приведем следующий пример. Рассмотрим участок, состоящий из 14 станций, график движения поездов по которому задан приведен на рис.2. Поезд#1 Поезд#2 Поезд#3 Поезд#4 Поезд#5 120 100 ВРЕМЯ 80 60 40 20 М ос кв а С -Ку ер рс п ка и я Ка Мо ра ло ча т р Чу ов хл о ин к Н Кус а ов ко ог в ир о ее Ре во ут о С во тр ой Го ка ре Ба н л ки Н аш ик их о а С ал ль ты ско ко е Ж вс ел ка ез я но Куч до ин ро о жн ая 0 Рис.2. Нормативный график движения поездов на участке Поезд#1 Поезд#2 Поезд#3 Поезд#4 Поезд#5 140 120 ВРЕМЯ 100 80 60 40 20 М ос кв аС Кур ер п ска и я Ка Мол ра о ча т ро Чу во хл ин Ку ка Н ов ско в ог ир о ее Ре во ут о С во тр ой Го ка р Ба енк ла и ш Н ик их ол а С ал ь ты ско ко е вс Ж ка ел ез Ку я но ч до ин ро о жн ая 0 Рис.3. График движения поездов, полученный в результате моделирования В движении участвует 5 поездов. Из графика видно, что поезд#3 движется медленнее остальных, и согласно нормативному графику, поезда #4 и #5 должны его обогнать при движении по участку. Поскольку на данном участке каждый перегон имеет только по одному пути, то обгон должен произойти на одной из станций по запасному пути. Выполним оперативный прогноз движения поездов на участке при помощи разработанного модуля. Результаты моделирования изображены на рис. 3. Сравнивая исполненный график и смоделированный, мы видим, что хотя поезда #1-3 двигались по графику, остальные два поезда сильно опаздывали по сравнению с графиком. Так, поезд #4 пришел на станцию Железнодорожная в момент 118 вместо 85, запланированного по графику. Из графика видно, что поезда #4 и #5 двигались в хвосте более медленного поезда #3 и не могли его обогнать ни на одной из станций. Подсистема объяснения дает ответ на вопрос, почему так произошло. Анализируя процесс вывода, мы видим, что поезд#4 большую часть времени ждал на станциях, пока поезд#3 не освободит следующий перегон. Пока поезд#4 двигался по освобожденному перегону, поезд#3 успевал закончить стоянку на станции и начинал движение по следующему перегону. Таким образом, обгон не мог состояться, и поезд #4 двигался позади поезда #3. Анализ выявил причину: слишком короткие стоянки поезда#3 на станциях. Имея этот результат, диспетчер мог бы дать указание дежурному по станции задержать медленный поезд #3, чтобы пропустить идущие сзади поезда #4 и #5. В результате, расхождение с нормативным графиком у всех поездов было бы незначительным. В результате тестирования прототипа были получены следующие результаты: Разработанная система позволяет адекватно моделировать движение поездов на участке на основе интерактивно заданных правил организации движения. Набор правил, на основе которых осуществляется моделирование, можно оперативно уточнять и расширять, без перепрограммирования самой системы. Логика принятия решений, используемая при моделировании движения поездов, выделена в явном виде, а не зашита в коде. Благодаря этому пользователь системы может “видеть”, на основании каких правил происходит моделирование и система позволяет ему ответить на вопрос: почему результат прогнозирования движения поездов именно такой. Разработанная система позволяет использовать разные наборы правил для проигрывания различных сценариев возможного развития поездной ситуации. На основе анализа этих вариантов использующий данную систему диспетчер может принять оптимальное решение по организации движения на руководимом им участке. Заключение Предложенный в данной работе подход к моделированию движения ж.д. транспорта на основе интерактивно задаваемых правил организации движения позволяет задавать логику моделирования явно, вне программного кода. При работе с такой системой пользователь оперирует не с “черным ящиком”, в коде которого “зашита” логика движения поездов, а с явно заданными правилами. Интерактивное задание правил позволяет быстро корректировать логику моделирования, без перепрограммирования системы. Работоспособность данного подхода была проверена путем реализации прототипа системы и его последующего тестирования. В дальнейшем планируется продолжить работу в следующих направлениях: разработка интеллектуально подсистемы ввода и редактирования правил, верификация (проверка на непротиворечивость) используемого набора правил. Список литературы 1. “Правила технической эксплуатации железных дорог Российской Федерации”. М.: Омега-Л, 2008. 2. Девятков В.В. “Системы искусственного интеллекта”. М.: Изд-во МГТУ им. Н.Э.Баумана, 2001. 3. Афонин В.Л., Макушкин В.А. “Интеллектуальные робототехнические системы”. М.: Интернет-Университет Информационных Технологий, 2005. 4. “Экспертные системы. Электронный учебник. Курс лекций” http://256bit.ru/Expert/ 5. “Системы искусственного интеллекта. Курс лекций” http://www.mari-el.ru/mmlab/home/AI/ 6. С.Л.Сотник “Проектирование систем искусственного интеллекта”. М.: ИнтернетУниверситет Информационных технологий, 2005 7. Joseph Girratano, Gary Riley “Expert Systems: Principles and Programming”, 3rd Edition – PWS Publishing Company, 1998 8. Ernest Friedman-Hill “Jess in Action” – Manning Publishing, 2003 9. CLIPS Reference Manual, 2003 http://clipsrules.sourceforge.net/ 10. Charles L. Forgy “Rete: A Fast Algorithm for the Many Pattern / Many Object Pattern Match Problem” – Artificial Intelligence, 1982, pp. 17-37 11. Лорьер Ж.-Л. “Системы искусственного интеллекта”. М.: Мир, 1991