Меню

Компонент для улучшения работы искусственного интеллекта при управлении поездами

Введение.

Данный компонент позволяет частично изменить поведение искусственного интеллекта (AI) симулятора при автоматическом управлении составами.

К сожалению, симуляторы Auran (и 2004 и 2006) обладают довольно существенным недостатком - в том случае, если на карте находится два или более поездов управляемых с помощью AI этот AI начинает управлять ими, мягко говоря, некорректно. Особенно эти недостатки проявляются на трамвайных линиях, на которых, как правило, отсутствует полноценная система сигнализации. Все замечания можно свести к следующим:

  1. иногда поезда самовольно проезжают остановки (на которых они должны остановиться) без видимых на то причин, а затем могут часами разъезжать по карте, пока снова вернутся к требуемой остановке;
  2. иногда, особенно часто это проявляется сразу после отправления с очередного пункта маршрута, AI как бы "отпускает" поезд. Т.е. вагон не начинает движения, доступны органы управления, и в то же время считается, что AI управляет поездом (доступна команда "Остановить поезд"). В таком "отпущенном" состоянии поезд может находится и 10 секунд и 20 минут;
  3. иногда без каких-либо существенных причин поезда "пристыковываются" друг к другу, т.е. задний поезд вместо того, чтобы притормозить врезается в следующий перед ним поезд, хотя он бы должен был притормозить.

Особенно эти недостатки проявляются на больших картах, где одновременно задействовано большое число поездов. Причем, чем больше карта и чем больше поездов, тем "хуже" себя ведет AI. Данный компонент предназначен для устранения трех приведенных недостатков. К сожалению, невозможно "залезть" в код AI (это уже хакерство), но возможно ему немного "помочь". Компонент делает примерно следующее:

  1. Защита от столкновения. Каждую секунду просматриваются состояния всех поездов управляемых AI и проверяется, не находится ли впереди данных поездов (до 40 метров) какой-либо другой поезд или вагон и если таковые имеются, поезд управляемый AI останавливается.
  2. Защита от "Отсоединения". Примерно один раз в 5..7 секунд просматриваются состояния всех поездов на карте, и если имеются поезда, которые находятся в состоянии, описанном в п.2 (т.е. "отпущенные" AI), их снова "подсоединют" к AI.
  3. Защита от "проезда цели". Каждую секунду просматриваются состояния всех поездов управляемых AI и проверяется не находятся ли какой-либо из поездов в состоянии "Ожидает освобождения пути" и при этом его скорость больше нуля, а до цели его "автопилота" остается меньше 40 метров. Если это так, то поезд принудительно останавливается. К сожалению, компонент распознает только две оригинальные (от Auran) команды "автопилота": "следовать к станции" и "следовать к маркеру".

К сожалению, использование данного компонента приводит к появлению ряда побочных эффектов:

  1. Из-за того, что опрос состояния поездов выполняется очень часто, компонент приводит к замедлению работы TrainZ, но, к сожалению, уменьшить количество опросов нельзя т.к. иначе смысла в объекте нет - он будет пропускать некоторые "проблемные" ситуации. Т.е. использовать его нужно только на очень быстрых машинах. Кроме того, чем больше поездов, тем больше "замедление", причем эти замедления носят не регулярный, а эпизодический характер.
  2. Компонент не контролирует положение стрелок, по этому возможны ситуации, когда поезда управляемые AI будут ехать "не туда". Особенно часто такие ситуации возникают в местах "пробок". При свободном пути, как правило, такие проблемы не возникают.
  3. Иногда возможна "борьба" поездов управляемых AI на стрелках, когда одновременно два поезда с разных направлений пытаются выехать на общий путь. Как правило, в такой ситуации побеждает поезд, который первым подъехал к стрелке, но иногда возможны и проблемы. Самое худшее, что может произойти - поезда "пристыкуются" друг к другу.

Кроме этого, в игре есть еще один недостаток - симулятор очень сильно тормозит при высадке/посадке пассажиров на станциях (независимо от того, где высаживаются пассажиры). Данный недостаток проявляется не только на моих остановках, но и на встроенных в симулятор.

Установка

Для установки вам необходимо переписать на свой компьютер архив (архиватор WinRar 3.50) с установочным пакетом. После того, как вы перепишите архив распакуйте его содержимое и установите полученный пакет.

Компонент предназначен для симуляторов TRS2006 SP1. Версия alpha 0, дата публикации 31.10.2006.

В состав пакета включен один компонент - KT AI helper.

Краткое описание

Компонент выполнен в виде "промышленного объекта", который нужно установить на карте. Более одного объекта на карту ставить бессмысленно - только замедлите работу системы. Подсоединять его к основным путям можно, а можно этого и не делать.

Пока внешнее оформление отсутствует, но в дальнейшем я планирую сделать что-то вроде сарая, щелкнув по которому можно будет вызвать окно (именно по этому, я не стал делать объект в виде "правила"), в котором будет отображаться информация о текущем состоянии поездов, возможно, там же можно будет давать некоторые команды.

Designed by ASDF-SF. (C) ASDF-SF 2003-2004