Пример моделирования перекрестка на базе разработанной библиотеки классов
 

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

Автомобили представляют собой красные кружки, передвигающиеся в пределах построенной дороге. Это объекты класса Auto. Каждый объект является агентом и спо-собен реагировать на изменения в окружающей среде. С помощью метода класса TrafficGenerator генерируются интервалы времени поступления автомобиля, имеющие экспоненциальное распределение. Начальная скорость у машин разная, как и начальное значение ускорения. Если оказывается, что нет возможности дальнейшего перемеще-ния по прямому маршруту, то автомобиль может (приняв такое решение) перестроить-ся на соседнюю полосу.
Также одними из компонентов классов являются светофоры – объекты класса Traffic_Light. Данные объекты следят за определённой клеткой, и при занятии объектом Автомобиль дороги переопределяются переменные объекта Дорога, которые отобра-жают возможность перемещения по данной области. Так автомобили определяют, мо-гут ли они ехать дальше или нет. Для синхронного переключения светофоров сущест-вует класс Tr_LightControler.
Знаки являются экземплярами классов OnlyTurn, mainRoadSign, SpeedSign. Знаки устанавливаются на определённых клетках, и если это повороты, то определяют воз-можный дальнейший маршрут. Знак “Stop” не позволяет съезд на второстепенную до-рогу. Знаки скорости определяют переменные разрешённой скорости на последующем участке дороги.
За статистику отвечает класс Info1. Всё, что необходимо, это разместить его в том месте, где надо снять статистику.
Было проведено несколько экспериментов с варьированием интенсивности по-тока автомобилей. Результаты сбора статистики выводятся в таблице и на графике. Пример вывода результатов моделирования приведен в табл.1 и на рис. 5.


 
назад

вперед