Семафорные головоломки

OpenTTD - современная игра, клон Transport Tycoon Deluxe с открытым исходным кодом, написанный на C и С++. Содержит ряд ключевых улучшений и возможность игры по сети. На данный момент это главное направление развития игры.

Модераторы: eraserkry, Mihamster, Smoky555, Группа модераторов

Семафорные головоломки

Сообщение Edd.Dragon » Сб янв 14, 2012 13:01

Вот она - нирвана! Понимаешь, что почти познал дзен семафоростроения, запускаешь толпу локомотивов в доведенный до ума макет. Уже готов загрузить ранее сохраненную карту и, наконец-то, воплотить его в полевых условиях. Но... не тут-то было :roll:

Принцип построения следующий:
- локализую развязки, определяя входными и выходными семафорами все входы и выходы на них;
- для односторонних путей использую односторонние (на скрине обозначены 1-in и 1-out), для двусторонних путей - двухстронние комбинированные (2-in/out);
- перед тупиковыми 2-путейными станциями ставлю так же 2-in/out;
- длинные пролеты разбиваю обычными односторонними семафорами.

В процессе расстановки подписей на скриншоте обнаружил недостачу двух выходных светофоров (желтые круги) :mrgreen:. Их добавление решило проблему! Тем не менее, вопрос остался.

Изображение

1. У меня получилась зона с одними входами? Т.е. зеленые 1-in, разрешающие движение в подходящем направлении в качестве выходов не считаются и строить цепочку из нескольких односторонних входных нельзя?

2. Поставив недостающие выходные светфоры, я дал всем приказ направляться в депо (на станции №1). Все благополучно разъехались, кроме поезда №3 (обведен красным). Он даже не заблудился, а попросту "Невозможно найти маршрут в депо". Почему не учитывается возможность разворота в тупиках (конечных станциях)?

Вернув локомотивы в депо, я выдал всем одинаковое задание, в результате чего произошла следующая ситуация:

Изображение

3. Почему локомотив вообще развернулся и пошел против движения (а не пошел, например, на станцию №3 вместе с сообщением, что заблудился), если
- расширенные настройки / поезда / автоматический разворот у сигналов = нет;
- настройки сложности / разворот поездов = только в конце линий?

4. Понятно, что ситуация, когда стоит 6 составов в очереди на однолинейку "туда-обратно", сама по себе глупая. Их не нужно там столько. Но тем не менее, какие есть способы разрулить ситуацию? Т.е. задача - денег или места на серьезную реконструкцию нет, а очередь ждет. Станция должна оставаться двухлинейной (например, один состав на погрузке, второй пришел/ушел). Как реализовать беспроблемный проход по этому ответвлению, чтобы не вышло "два барана на мосту"?

-------------------------------

P.S.: Ну и если кому интересно, как бы вы реализовали подобную схему (что на первом скрине). Вариантов то масса - другие развязки помасштабнее с мостами, может где можно маршрутные светофоры применить или еще какие-то хинты не очевидные?
Аватара пользователя
Edd.Dragon
Директор
Директор
 
Сообщения: 266
Зарегистрирован: Сб янв 14, 2012 06:09

Re: Семафорные головоломки

Сообщение Mihamster » Сб янв 14, 2012 14:45

читаем топик "светофоры" пункт "сигналы ПБС" (входной, выходной, комбо)", подпункт "случай четвертый (кружком обведено слева)"
из подписи....
Табито?Мэитадору
.....свобода каждого заканчивается там.. где начинается несвобода другого...
"Осваиваем Опен"
Аватара пользователя
Mihamster
Президент
Президент
 
Сообщения: 949
Зарегистрирован: Вт апр 29, 2008 23:06
Откуда: Москва

Re: Семафорные головоломки

Сообщение дворник » Сб янв 14, 2012 16:24

Лучше всего для понимания светофорной модели опена ввести понятия блока. Блок - это совокупность рельс, соединённых под любым (в т.ч. непроездным) углом, без каких-либо светофоров. Светофоры разделяют блоки друг от друга. Т.е. если на ЖД полотне нет ни одного светофора - оно состоит из одного блока. Поставили первый светофор -- поделили полотно на два блока. И т.п.

На скриншоте 1 перекрёсток линий ст. 8 - ст. 7 и ст. 1 - ст. 4 представляет собой 1 блок с 3-мя вх. и 3-мя вых, притом, скажем вход 1-in со ст. 1 будет открыт, если в блоке не будет ПС (сейчас там висит паровоз на выходе из блока к ст. 4, и если будет открыт любой из трёх вых. светофоров, в т.ч. тот выход, что ведёт обратно к ст. 1. Это важно, надо понимать. Перекрёсток предназначен для проезда со ст. 1 на стт. 8, 7 и 4 (ст. 5 и 6 игнорируем намеренно, считая их за ст. 4). если выходы к этим станциям будут закрыты, то блок всё равно откроется и пропустит ПС, если будет зелёным вых. к ст. 1.

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

Что же до вопроса 3, то это такая фишка есть в алгоритме поиска путей, позволяющая выбрать др. путь при упирании в закрытый двусторонний светофор. И настройка соответствующая:
yapf.rail_firstred_twoway_eol = true

Подробнее про это пенальти тут (англ.).
Как резюме, не стоит её делать false, иначе поезда будут тупо ждать в двусторонки не пытаясь найти иной путь. На этом пенальти основаны многие схемы автоматизации разводки поездов и приоритетизации линий.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Семафорные головоломки

Сообщение Mihamster » Сб янв 14, 2012 17:20

дворник писал(а):Лучше всего для понимания светофорной модели опена ввести понятия блока. Блок - это совокупность рельс, соединённых под любым (в т.ч. непроездным) углом, без каких-либо светофоров. Светофоры разделяют блоки друг от друга. Т.е. если на ЖД полотне нет ни одного светофора - оно состоит из одного блока. Поставили первый светофор -- поделили полотно на два блока. И т.п.

На скриншоте 1 перекрёсток линий ст. 8 - ст. 7 и ст. 1 - ст. 4 представляет собой 1 блок с 3-мя вх. и 3-мя вых, притом, скажем вход 1-in со ст. 1 будет открыт, если в блоке не будет ПС (сейчас там висит паровоз на выходе из блока к ст. 4, и если будет открыт любой из трёх вых. светофоров, в т.ч. тот выход, что ведёт обратно к ст. 1. Это важно, надо понимать. Перекрёсток предназначен для проезда со ст. 1 на стт. 8, 7 и 4 (ст. 5 и 6 игнорируем намеренно, считая их за ст. 4). если выходы к этим станциям будут закрыты, то блок всё равно откроется и пропустит ПС, если будет зелёным вых. к ст. 1.

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

Что же до вопроса 3, то это такая фишка есть в алгоритме поиска путей, позволяющая выбрать др. путь при упирании в закрытый двусторонний светофор. И настройка соответствующая:
yapf.rail_firstred_twoway_eol = true

Подробнее про это пенальти тут (англ.).
Как резюме, не стоит её делать false, иначе поезда будут тупо ждать в двусторонки не пытаясь найти иной путь. На этом пенальти основаны многие схемы автоматизации разводки поездов и приоритетизации линий.

дело там не в перемычках... это "пример-схема", их назначение в оригинале может и имеет смысл... смысл не в этом.
смысл в том что:
1. у станций комбо не ставятся, ставятся только выходные.
2. светофор на мини-схеме в крайнем левом углу (односторонний выходной) не правильный.
Табито?Мэитадору
.....свобода каждого заканчивается там.. где начинается несвобода другого...
"Осваиваем Опен"
Аватара пользователя
Mihamster
Президент
Президент
 
Сообщения: 949
Зарегистрирован: Вт апр 29, 2008 23:06
Откуда: Москва

Re: Семафорные головоломки

Сообщение Edd.Dragon » Сб янв 14, 2012 17:22

А затем ты им добавил поперечную перемычку, связав это всё в один блок. Специально или по незнанию?

От баловства ))
Поигрался - лучше прочувствовал. В том числе и факт бесполезности такой станции ))

И настройка соответствующая:
yapf.rail_firstred_twoway_eol = true

Ага, понятно. Сеньк.

А вот что при поиске разворота (вопрос 2) не использует возможность развернуться в тупике - жаль. Точнее, он то в тупике и разворачивается. Только сначала тупит, потом вопит, что заблудился, потом едет куда глаза глядят и, оппа, тупичок, разворот, в депо.

Ну это, конечно, тоже решаемо более толковым дизайном. Те же круговые развязки на перекрестках позволят разворачиваться на любом из них.
Аватара пользователя
Edd.Dragon
Директор
Директор
 
Сообщения: 266
Зарегистрирован: Сб янв 14, 2012 06:09

Re: Семафорные головоломки

Сообщение дворник » Сб янв 14, 2012 17:41

Mihamster писал(а):дело там не в перемычках... это "пример-схема", их назначение в оригинале может и имеет смысл... смысл не в этом.
смысл в том что:
1. у станций комбо не ставятся, ставятся только выходные.
2. светофор на мини-схеме в крайнем левом углу (односторонний выходной) не правильный.


Перемычки объединяют горловины в один блок. И поведение блока меняется. Иногда люди этого сразу не замечают. Для людей бывает непонятно, что связь и логика блока меняется, даже если по этим рельсам проезда нет.

Ставить можно любые светофоры, если понимаешь, как работает модель, и знаешь, чего хочешь добиться.
Понимать модель лучше всего на блоках, воображая их в уме. Выше я как мог написал, почему так понимать лучше. :)

Правильность или неправильность тех или иных светофоров зависит от цели, которой добиваются.

У разных светофоров разные пенальти в секции pf параметрах yapf.rail*, отсюда алгоритм поиска пути выбирает путь.

Edd.Dragon писал(а):А вот что при поиске разворота (вопрос 2) не использует возможность развернуться в тупике - жаль. Точнее, он то в тупике и разворачивается.


Вот именно та настройка позволяет проходить мимо двусторонних закрытых. А тупики надо делать "лапкой", и м.б. даже ещё добавить двусторонний обычный светофор. "Лапкой" это посмотри на букву Ж, у которой снизу по центру вход на тупиковый путь, а нижние правый и левый хвостики буквы отсутствуют. Впрочем, обычно достаточно одного отвода (просто фрагмент диагонального рельса). Алгоритм поиска пути считает, что там типа есть развилка, и по др. считает пенальти.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Семафорные головоломки

Сообщение дворник » Сб янв 14, 2012 17:56

Edd.Dragon писал(а): кроме поезда №3 (обведен красным).


По моему, красным обведён номер 7.

Edd.Dragon писал(а): Он даже не заблудился, а попросту "Невозможно найти маршрут в депо". Почему не учитывается возможность разворота в тупиках (конечных станциях)?


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

Депо в прямой видимости нет, вот и сообщение по этому.

Возможность разворота учитывается, но у этого есть свой пенальти, у каждого рельсового сегмента он есть, на этом основана работа АПП. Где-то у буржуев находил описание, как оно работает и считает, само собой урывками и на англ. Ещё можно исходник глянуть, там будет точно, но надо понимать немного C++.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Семафорные головоломки

Сообщение Edd.Dragon » Сб янв 14, 2012 18:32

Mihamster писал(а):смысл в том что:
1. у станций комбо не ставятся, ставятся только выходные.
2. светофор на мини-схеме в крайнем левом углу (односторонний выходной) не правильный.

Там 2 оказалось не правильно:

Изображение


дворник писал(а):По моему, красным обведён номер 7.

Да, опечатался
Аватара пользователя
Edd.Dragon
Директор
Директор
 
Сообщения: 266
Зарегистрирован: Сб янв 14, 2012 06:09

Re: Семафорные головоломки

Сообщение Mihamster » Сб янв 14, 2012 18:58

дворник писал(а):
Mihamster писал(а):Правильность или неправильность тех или иных светофоров зависит от цели, которой добиваются.

если цель создать заторы... то конечно))
Табито?Мэитадору
.....свобода каждого заканчивается там.. где начинается несвобода другого...
"Осваиваем Опен"
Аватара пользователя
Mihamster
Президент
Президент
 
Сообщения: 949
Зарегистрирован: Вт апр 29, 2008 23:06
Откуда: Москва

Re: Семафорные головоломки

Сообщение Mihamster » Сб янв 14, 2012 19:55

Edd.Dragon писал(а):
Mihamster писал(а):смысл в том что:
1. у станций комбо не ставятся, ставятся только выходные.
2. светофор на мини-схеме в крайнем левом углу (односторонний выходной) не правильный.

Там 2 оказалось не правильно:

нет... так тоже не правильно...

обратите внимание на выходной с перекрестка у станции "1 или 1-in" и "1-in"(тот которой левее и при условии данной компоновки светофоров)
Табито?Мэитадору
.....свобода каждого заканчивается там.. где начинается несвобода другого...
"Осваиваем Опен"
Аватара пользователя
Mihamster
Президент
Президент
 
Сообщения: 949
Зарегистрирован: Вт апр 29, 2008 23:06
Откуда: Москва

Re: Семафорные головоломки

Сообщение дворник » Сб янв 14, 2012 20:18

Edd.Dragon писал(а):Там 2 оказалось не правильно:


На этом скриншоте блок образует тройник-перекрёсток с магистрали до стт. 2 и 3.
При этом в случае наличия ПС на одиночном пути от ст. 2 перекрёсток будет закрыт как для проезда с магистрали (на ст. 2 и 3), так и для проезда со ст. 3 на магистраль или ст 2. Соответственно, задан приоритет выезду со ст. 2. Но и при въезде на ст. 2 будет то же самое, пока ПС не уйдёт на платформу, перекрёсток будет непроездной. Ещё вх. светофор на ст. 2 слишком близко к перекрёстку, что обычно в игре чревато остановкой ПС хвостом на перекрёстке и потенциальном местом пробки. Там желательно иметь 2 светофора, и чтобы ПС помещался между ними и не торчал, разрыв связи обеспечит обычный светофор.
дворник
Президент
Президент
 
Сообщения: 563
Зарегистрирован: Сб дек 05, 2009 22:57

Re: Семафорные головоломки

Сообщение Edd.Dragon » Сб янв 14, 2012 22:47

Главная задача решена - разрулить очередь и делать ноги!
А права на жизнь в таком виде этот перекресток все-равно не имеет. Либо отрезать одну платформу, либо подводить второй путь напрямую к встречке ))

нет... так тоже не правильно...

Ну не знаю, меняя лишь один светофор - красный не загорается ни в какую. Надо либо убирать "перемычку" дающую проезд на встречку (вот тогда будет ситуация как по ссылке в ФАКе), либо вот как-то так через зад ))
Аватара пользователя
Edd.Dragon
Директор
Директор
 
Сообщения: 266
Зарегистрирован: Сб янв 14, 2012 06:09

Re: Семафорные головоломки

Сообщение Mihamster » Вс янв 15, 2012 10:36

Безимени-1.png
Табито?Мэитадору
.....свобода каждого заканчивается там.. где начинается несвобода другого...
"Осваиваем Опен"
Аватара пользователя
Mihamster
Президент
Президент
 
Сообщения: 949
Зарегистрирован: Вт апр 29, 2008 23:06
Откуда: Москва

Re: Семафорные головоломки

Сообщение Edd.Dragon » Вс янв 15, 2012 18:20

Ну да, так же и я сделал выше.

А на исходном неправильном скрине вместо двух обычных были два выходных.
Аватара пользователя
Edd.Dragon
Директор
Директор
 
Сообщения: 266
Зарегистрирован: Сб янв 14, 2012 06:09

Re: Семафорные головоломки

Сообщение keeper13 » Пн янв 16, 2012 05:47

Я конечно не познал дзен семафоростроения)), но имхо семафоры которые использованы, в данных развязках ущербны. Ущербны в плане алгоритмов поиска путей, или они у них на столько сложны, что не могут подходит для концепций строительства в данной игре.
Просто сколько я не пробовал строить развязки с их помощью, заторы были.
Если заменит семафоры на "маршрутные семафоры" и "Односторонние маршрутные семафоры" то все получится, будет проще и удобнее.
А так, господа выше все написали))
Лучшее - ВРАГ Хорошему!
keeper13
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 23
Зарегистрирован: Пн апр 28, 2008 08:25
Откуда: Irkutsk

След.

Вернуться в Общие вопросы по OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26