Autor Wątek: AI dyżurnego  (Przeczytany 23308 razy)

Offline Ra

  • Użytkownik
  • Wiadomości: 26
    • Zobacz profil
  • Skąd: Polska
AI dyżurnego
« dnia: 10 Luty 2016, 01:02:59 »
Chciałbym na potrzeby sterowania linią 61 od Stradomia (Częstochowy Osobowej) do Fosowskich (i dalej do Opola) zrobić jakieś automatyczne zarządzanie stacjami. Zakładam, że wszystkie pociągi będą jeździć z rozkładami, więc na podstawie numeru pociągu powinno się dać ustalić, jak ma być układany przejazd i czy jest postój. Na początek chcę się skupić na prostych stacjach (nie węzłowych: Gnaszyn, Blachownia, Liswarta, Lisów, Kochanowice, Pawonków, Pludry, Ozimek). Chciałbym zapytać, jakie istotne rzeczy powinienem uwzględnić. Wstępnie planuję tak:

1. Przeloty torami głównymi zasadniczymi bez zatrzymania.
2. Przeloty torami głównymi zasadniczymi z zatrzymaniem przy peronie.
3. Przejazd przez stację innym torem, jeśli tor na wprost jest zajęty/zamknięty.
4. Wyjazd na tor lewy, jeśli tor prawy jest zamknięty.
5. Wyprzedzanie pociągu towarowego przez osobowy.
6. Sygnały podawane z pewną losowością, tzn. sporadycznie będzie Sz.

Zakładam, że blokada liniowa będzie uproszczona, tzn. nie będzie miała usterek. Czekam na uwagi i propozycje. Na ile wcześniej stacja powinna być informowana o nadjeżdżającym pociągu?

Offline jageer

  • Projektant
  • Użytkownik
  • Wiadomości: 1395
  • Podg. Papago
    • Zobacz profil
  • Skąd: wieś Papago.
Odp: AI dyżurnego
« Odpowiedź #1 dnia: 10 Luty 2016, 11:46:35 »
Czekam na uwagi i propozycje. Na ile wcześniej stacja powinna być informowana o nadjeżdżającym pociągu?

Jest to szeroki temat, zależy co mamy na myśli "o nadjeżdżającym pociągu". Jeżeli dobrze kojarzę, to tam, są jednotorówki? No to, pierwszą informacją, że będzie jechał "interesujący nas pociąg" to jest telefonogram z pytaniem "o wolną", jeżeli trzeba to obsługa bloku "poz", następnie odjazd "od sąsiada" to zmiana stanu blokady liniowej - zablokowanie Po lub świecenie czerwonej strzałki (blokada "C" i "Eap" odpowiednio). Znając rozkładowy czas jazdy wiemy +/- za ile mechanik będzie wołał "wjazd na stój". Jeżeli szlak jest krótki, to podaje się przypuszczalny czas odjazdu z odpowiednim wyprzedzeniem (do 5 minut).
Często też Regulamin Techniczny Stacji w swoich działkach zawiera informacje, że np należy powiadomić wcześniej itp itd.... Czas przerwania manewrów, przed "przelotem/wjazdem/wyjazdem", to najczęściej 5 minut <- więc mamy już jedną odpowiedź.

I najważniejsze - kwestia SRK. bo jeżeli jest stacja, gdzie ma X ręcznych do obrócenia, to wiadomo, że troszkę wcześniej też musi wiedzieć ;)

Jeżeli jest sytuacja, gdzie mamy linię jednotorową i np stacja-podg-podg-stacja, to te 2 podg, muszą wiedzieć wcześniej, ustalić ze stacjami i dopiero można jechać z przelotem przez 3 posterunki. Tak samo, gdyby skład był dłuższy i nie mógł zostać wykrzyżowany na posterunku po drodze.
« Ostatnia zmiana: 10 Luty 2016, 11:48:27 wysłana przez jageer »
Tak też można mili moi.
Tor zajęty, a wjazd stoi.

Offline EN57-002

  • Użytkownik
  • Wiadomości: 770
    • Zobacz profil
  • Skąd: Chorzów
Odp: AI dyżurnego
« Odpowiedź #2 dnia: 10 Luty 2016, 15:47:56 »
Chciałbym na potrzeby sterowania linią 61 od Stradomia (Częstochowy Osobowej) do Fosowskich (i dalej do Opola) zrobić jakieś automatyczne zarządzanie stacjami.
W tytule jest AI ISDR. To jedna osoba ma sterować przelotem przez wszystkie stacje, czy jak obecnie jest w EU07, poc. jadący sam inicjuje działanie urządzeń, a nasze odpowiedzi mają dot. na ile wcześniej w torach przed stacją umiejscowić skrypt, który zainicjuje działanie?

Zakładam, że blokada liniowa będzie uproszczona, tzn. nie będzie miała usterek. Czekam na uwagi i propozycje. Na ile wcześniej stacja powinna być informowana o nadjeżdżającym pociągu?
W zasadzie to najprościej, to uproszczona blokada informuje o odjeździe poc. z tylnej stacji jazdy składu oraz powiadomienie telefoniczne o nr poc.
Chcesz ujednolicić rodzaj blokady na całej linii, czy odwzorować to co stosuje się (stosowało) na szlakach? Z tego wynika również informacja o jeździe poc. Po za tym Na odcinku Stradom-Lubliniec dwutorówka - inna blokada; Lubliniec-Fosowskie jednotorówka, też inna blokada

Offline Ra

  • Użytkownik
  • Wiadomości: 26
    • Zobacz profil
  • Skąd: Polska
Odp: AI dyżurnego
« Odpowiedź #3 dnia: 10 Luty 2016, 17:21:58 »
Chcę wstawić potrzebne pociągi osobowe z rozkładami wziętymi z Hafasa na całą dobę i żeby to jeździło sobie samo. Do tego wstawiam pociągi towarowe i jeśli mogą jechać, to jadą, a jak nie mogą, to są brane na bok i przepuszczają osobowe w pierwszej kolejności. Jeśli na którymś osobowym zrobi się opóźnienie, to poprzez skomunikowania ma się przenieść na inne i też to ma jeździć, a towarowe się mają dostosować.

Wstępnie myślałem o tym, że dana stacja powinna mieć listę spodziewanych pociągów na około godzinę do przodu. Tzn. może zmieniać priorytety innym pociągom, jeśli dojdzie informacja, że pociąg, który ma być za tę godzinę, będzie opóźniony. Ale nie mam żadnej praktyki w zakresie ruchu pociągów i być może o czymś nie wiem, co jeszcze trzeba by uwzględnić. Na pewno na szlaku jednotorowym albo w przypadku zamknięcia jednego z torów musi być brane pod uwagę unikanie zatkania, czyli stacja musi aktywnie odmawiać wysyłania do niej kolejnych pociągów, jeśli nie ma ich gdzie odstawiać, albo potrzebuje dwa tory na mijankę.

Nie jest moim celem symulowanie poszczególnych typów urządzeń, a jedynie operacji wykonywanych z ich użyciem. Parę lat temu zrobiłem taki ruch na Quarku, ale wyszedł wtedy problem z priorytetowaniem pociągów (no i ogólnie układy torowe oraz rozkłady były od czapy).

Offline jageer

  • Projektant
  • Użytkownik
  • Wiadomości: 1395
  • Podg. Papago
    • Zobacz profil
  • Skąd: wieś Papago.
Odp: AI dyżurnego
« Odpowiedź #4 dnia: 10 Luty 2016, 19:00:35 »
Jeżeli by się "zaczęło korkorkować", to zrobić "stójkę" np. dla towarów, a prowadzić ruch pasażerski. Tak jak piszesz priorytet to 1 pasażerskie 2 towarowe. Jeżeli masz rozkład dla pasażerów to zrobić je "na cacy", ewentualnie jakieś tam opóźnienia itp. A algorytm, że jeżeli towarowy wyrobi się (czas rozruchu + jazdy + jakaś tam luka) no to go puszczać, chyba, że jest np 1 tor wolny, no to wiadomo, że ruch pasażerski dalej :)
Tak też można mili moi.
Tor zajęty, a wjazd stoi.

Offline Paweł

  • Administrator
  • Użytkownik
  • Wiadomości: 1022
    • Zobacz profil
  • Skąd: Kęty
Odp: AI dyżurnego
« Odpowiedź #5 dnia: 10 Luty 2016, 20:19:27 »
"AI dyżurnego ruchu" stosowane jest w praktyce jako automatyczne nastawianie przebiegów (automatic route setting, ARS). Problem "korkowania", a dokładniej zakleszczenia (deadlock) jest dość złożony i można znaleźć na ten temat kilka publikacji naukowych. Zaawansowane systemy ARS stosowane są w Wielkiej Brytanii, o ile mi wiadomo opierają się na optymalizacji kolejności pociągów ze względu na ważone opóźnienia (różne pociągi mają różne priorytety).

Przy braku większych opóźnień w symulatorze powinno wystarczyć proste automatyczne nastawianie według rozkładu jazdy (oczywiście z uwzględnieniem położenia pociągów i dostępności przebiegów), z dodatkowymi warunkami dla mijanek, minimalizującymi ryzyko zakleszczenia - np. zakaz wyjazdu w stronę mijanki, na której nie ma wolnych torów ani torów zajętych przez pociągi, które mogą wyjechać w stronę drugiego szlaku (może to jednak powodować niepotrzebne opóźnienia). Coś podobnego testowałem już kiedyś w SCS, planuję wrócić do tego tematu. Jednak jeżeli całość ma sprawnie działać przy opóźnieniach, algorytm musi brać pod uwagę sytuację na całej sieci i prognozować co będzie się działo dalej, a nie tylko ustawiać przebiegi według lokalnych warunków.

Offline EN57-002

  • Użytkownik
  • Wiadomości: 770
    • Zobacz profil
  • Skąd: Chorzów
Odp: AI dyżurnego
« Odpowiedź #6 dnia: 11 Luty 2016, 09:39:42 »
Co do priorytetyzacji pociągów, to obecnie w tym symulatorze mamy 6 kategorii. Skrypt rozróżnia je po numerach choć niektóre towarowe AI wysyła mi jak osobowe. Opieranie się na dwu (1-pasażery, 2-towary) już na wstępie należało by przerobić, bo co jak program przepuści osobówkę, a pośpiecha będzie trzymał na boku? (wiem, dyspozytor mógł polecić)

Offline Ra

  • Użytkownik
  • Wiadomości: 26
    • Zobacz profil
  • Skąd: Polska
Odp: AI dyżurnego
« Odpowiedź #7 dnia: 12 Luty 2016, 00:14:20 »
Na optymalizowanie opóźnienia na całej sieci to póki co nie mam ambicji. Będę zadowolony, jeśli w razie opóźnienia jakiegoś osobowego da się wepchnąć jakiś towarowy. Co do priorytetów:
1. Pociąg kończy bieg na danej stacji.
2. Pociąg specjalny o wysokim priorytecie.
3. Pociąg pośpieszny osobowy.
4. Pociąg osobowy o długiej trasie, pośpieszny towarowy.
5. Pociąg osobowy.
6. Reszta.

Offline EN57-002

  • Użytkownik
  • Wiadomości: 770
    • Zobacz profil
  • Skąd: Chorzów
Odp: AI dyżurnego
« Odpowiedź #8 dnia: 12 Luty 2016, 10:02:13 »
W tym założeniu, które napisałeś priorytetyzacja będzie musiała wyglądać odwrotnie jak DNS w internecie. Tzn. pod danym numerem poc. widnieć winna nazwa, która enumeratywnie  będzie wymieniona w katalogu. Jak system rozróżni poc. 44118 od 44120, który kończy bieg na danej stacji? I jeszcze co też istotne, RJ z którego roku będzie brany na warsztat? Założenia numeracji poc. w PLK okresowo się zmieniają, a i natężenie ruchu w różnych latach wyglądało inaczej.
Poc. kończący bieg na danej stacji - czasem może to być towarowy.

Offline jageer

  • Projektant
  • Użytkownik
  • Wiadomości: 1395
  • Podg. Papago
    • Zobacz profil
  • Skąd: wieś Papago.
Odp: AI dyżurnego
« Odpowiedź #9 dnia: 12 Luty 2016, 11:02:50 »
Zawsze można nadać po 2 cechy. I - kończy/nie kończy bieg na danej stacji. II - 1 pośpiechy 2 towary itp itd....
Tak to zrobić i zrobić jakiś współczynnik, który "mnoży" obie rzeczy i z większą wartością ma pierwszeństwo :)
Tak też można mili moi.
Tor zajęty, a wjazd stoi.

Offline Droznik

  • Użytkownik
  • Wiadomości: 283
    • Zobacz profil
  • Skąd: Pandionowo
Odp: AI dyżurnego
« Odpowiedź #10 dnia: 12 Luty 2016, 14:08:30 »
A nie lepiej
EIE - pierwszeństwo nie zależnie od przebiegu leci przodem
MPE - drugi - ustępuje EIE
MPJ - trzeci - ustępuje EIE na równi z MPE ale w opoź MPE on jest ważny
ROJ - czwarty - ustępuje reszcie
APJ - piąty  - to co kończy bieg
TME - szósty
TKS - siódmy - co kończy bieg
ZXS - ostatni
Pracuję w firmie, która wstydzi się swoich pracowników.

Offline Ra

  • Użytkownik
  • Wiadomości: 26
    • Zobacz profil
  • Skąd: Polska
Odp: AI dyżurnego
« Odpowiedź #11 dnia: 13 Luty 2016, 03:47:18 »
Czasem w pierwszej kolejności trzeba wpuścić towarowego z awarią, bo gdy stanie pod wjazdowym, to już sam się nie ruszy... Z ustaleniem, czy kończy bieg nie ma większego problemu. Rozkład robię na początek z 2011, ale pewnie 2010 też się załapie, a 2008 jest ciekawszy z innych względów (ale WOS już raczej nie ten).