Autor Wątek:  Pomysł wprowadzenia automatyki sterowania ruchem  (Przeczytany 9483 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline jumo81e

  • Wiadomości: 3
    • Zobacz profil
  • Otrzymane polubienia: 0
Pomysł wprowadzenia automatyki sterowania ruchem
« dnia: 30 Marca 2012, 22:07:57 »
Witam wszystkich.

Zdanie wstępu - w tematach kolejowych szczególnie interesuje mnie automatyka sterowania i zabezpieczania ruchu (jako hobby).

Jeżdżąc na scenariuszu "bałtyk_zima" w sm42 kilka razy zostałem zaatakowany przez inne składy wjeżdżające na mój tor. Prawdopodobnie z powodu mojego ociągania się zostały niepoprawnie skierowane, bo zakładam że u autora działa właściwie. Obejrzenie źródeł scenariusza wskazuje na potencjalnego źródło dziwnego zachowania - eventy używane do indywidualnego sterowania wszystkimi elementami infrastruktury kolejowej, bez żadnego globalnego nadzorcy i koordynatora.

W rzeczywistości takie zdarzenia nie mogą mieć miejsca. Większość sytuacji ruchowych opiera się na określeniu skąd i dokąd dana lokomotywa/skład ma się przemieścić.

Stąd też pomysł dodania modułów realizujących logicznie bardziej zaawansowane funkcje.


"Układacz przebiegów" - zajmujący się automatycznym wytyczaniem trasy przebiegu z zadanego miejsca początkowego (nazwy toru, nazwy semafora spod którego startuje skład) do zadanego miejsca docelowego (jw.) opcjonalnie przez określone miejsce(a) pośrednie - jeśli zachodzi potrzeba wybrania nieoczywistego przebiegu wariantowego.

W procesie tym następuje:
- odnalezienie drogi w grafie, łączącej punkt początkowy i końcowy
- sprawdzenie że cała droga jest niezajęta innym przebiegiem oraz wszystkie jej elementy nie wchodzą w sposób kolizyjny z np. ochroną boczną innego przebiegu
- dla przebiegów pociągowych, sprawdzenie czy żaden odcinek nie jest już zajęty taborem
- przestawienie wymaganych rozjazdów i wykolejnic (wszystkie na raz lub jedna po drugiej - bardziej realistycznie, aby nie robić przeciążeń włączeniem wszystkich napędów na raz),
- automatyczne wyszukanie ochrony bocznej dla rozjazdów (inny rozjazd, semafor, wykolejnica, ewentualnie pewna odległość od innych obiektów np. 200m),
- ustalenie przebiegu - "zawłaszczenie" wszystkich elementów dla danego przebiegu
- zamknięcie rogatek przecinających przebieg
- wyświetlenie odpowiednich wskazań na semaforach (uwzględnienie ograniczeń prędkości po drodze np. 40km/h dla jazdy w bok, informacji o wskazaniu następnego semafora oraz miłe dla oka drobiazgi typu oświetlenie kształtowej tarczy ostrzegawczej stojącej tuż przed kształtowym semaforem zapala się tylko wtedy gdy semafor dopuszcza przejazd)

Po utwierdzeniu drogi następuje przejazd składu. W trakcie przejazdu składu następuje sukcesywne zwalnianie "zawłaszczonych" elementów, które powracają do położenia zasadniczego. Można w prosty sposób uwzględnić drobne niuanse typu: dla przebiegów pociągowych powrót do S1 następuje (upraszczając) po minięciu lokomotywą semafora, a dla manewrów dopiero po opuszczeniu całego składu (aby maszynista realizujący popych miał cały czas Ms2). Dla kształtowych można upraszczająco założyć, że wszystkie mają sprzęgła sygnałowe i dzięki temu mogą reagować podobnie do świetlnych. Oczywiście dla przypadku gdy pojazd nie dojedzie do końca zarezerwowanego przebiegu (np. nie ma potrzeby cofać się aż tak daleko) - następuje zwolnienie niezrealizowanej części przebiegu.

Dzięki takiemu rozwiązaniu można by wprowadzić bardziej realistyczny, a przede wszystkim zdecydowanie prostszy dla tworzących scenariusze, sposób prowadzenia ruchu - zamiast przestawiać w eventach ręcznie wszystkie rozjazdy i podawać sygnały, można zgłosić po prostu przebieg do realizacji. Nic nie stoi na przeszkodzie, żeby zakończenie procesu ustawiania przebiegu wyzwalało kolejne zdarzenia.

Zadania do realizacji na tym etapie: automatyczne określenie typu i "przynależności torowej" (którego toru i kierunku ruchu dotyczy wskazanie) semaforów i innych nietorowych obiektów, określenie sposobu reprezentacji obiektów w grafie (do poszukiwań przebiegów i ich rezerwacji), budowanie grafu opisującego zależności ruchowe na podstawie scenerii, testy poprawności reprezentacji, implementacja szukania drogi w grafie (przebieg i jego ochrona boczna) ze zwróceniem uwagi na różne nieoczywiste szczegóły (choćby wyjazd dwóch składów w przeciwne strony z jednego toru), implementacja zwalniania przebiegu. Do celów ładnej prezentacji oraz pomocy w zadaniach deweloperskich można pokusić się o syntezowanie widoku pulpitu zawiadowcy z obrazem sytuacji ruchowej na podstawie wygenerowanego grafu. Stąd już tylko krok do opcji przejęcia sterowania przez żywego operatora.

Część z tych zadań już widziałem na filmie zaimplementowaną w module AI (też musi wiedzieć, który semafor jest "jego" i z jaką prędkością może go minąć).


Po wspomnianym opanowaniu przebiegów w obrębie stacji, kolejnym krokiem automatyzacji prowadzenia ruchu jest obsługa komunikacji pomiędzy sąsiadującymi stacjami. W to wchodzi automatyczna i półautomatyczna blokada liniowa (oczywiście realizowana samoczynnie przez program - "scenerzysta" musi tylko postawić semafory na szlaku i ew. dla SBL określić że zamiast domyślnie trzystawnych są czterostawne), zagadnienia kierunku ruchu na danym torze, obsługa SSP.


Dysponując takim rozwiązaniem, można na jego podstawie zbudować moduł wyższego rzędu - "dyżurnego ruchu" pilnującego ruchu pociągów. I tu znowu jest szerokie pole do kreatywności: skład może mieć określony rozkład (konkretne godziny odjazdów), określony czas postoju, losowy (w podanym zakresie) czas postoju, oczekiwania na skomunikowanie z innym składem, itp. W sytuacji opóźnienia priorytetowanie kolejności wyjazdu na szlak w zależności od typu pociągu (np. najpierw pospieszne, potem osobowe a na końcu towarowe - wystarczy przeanalizować wagony). Dysponując wiedzą o krawędziach peronowych można realizować kierowanie pociągów pasażerskich na tory przy peronach, a towarowych w miarę możliwości poza perony. Można także zrealizować formowanie, przejazd i rozformowanie składu.


Oczywiście, żeby nie było że tylko po próżnicy piszę posty - jako, że ten temat mnie interesuje i trochę doskwiera obecna postać, chętnie dołożę swój wkład w rozwój symulatora i zrealizuję wspomniane pomysły lub pomogę w ich realizacji. C, python, perl, rozproszone systemy wersjonowania kodu, a także po części C++, nie są mi obce.
« Ostatnia zmiana: 31 Marca 2012, 12:39:29 wysłana przez jumo81e »

Offline Quark-t

  • Administrator
  • Wiadomości: 3590
  • Automaty liczą...
    • Zobacz profil
  • Otrzymane polubienia: 47
Odp: pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #1 dnia: 30 Marca 2012, 22:13:39 »
"Virtual Dispatcher"
Pozdrawiam, dr inż. Quark-t

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6343
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 374
Odp: pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #2 dnia: 30 Marca 2012, 22:28:48 »
Są dwa osobne zagadnienia: ustalenie trasy oraz bieżące ustawianie przebiegów. A póki co to nikomu się nie chce używać rozkładów, bo trzeba by przypisywać W4 do torów i ustalić czasy przejazdów... Ale zawsze możesz też zaangażować się w SPT.
« Ostatnia zmiana: 31 Marca 2012, 11:30:06 wysłana przez Ra »
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline sektor 77

  • Wiadomości: 212
  • Muzyka łagodzi obyczaje.
    • Zobacz profil
    • rock
  • Otrzymane polubienia: 0
Odp: pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #3 dnia: 30 Marca 2012, 23:06:49 »
Pomysł jest bardzo ciekawy, tylko czy każdy zwykły user nie wnikając w strukturę danej scenerii - będzie mógł w sposób taki jak obecnie prowadzić i cieszyć się symulatorem? To pytanie skierowane jest do autora wątku.

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #4 dnia: 31 Marca 2012, 10:58:38 »
"Utknąć w SPT" ?

Offline jumo81e

  • Wiadomości: 3
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #5 dnia: 31 Marca 2012, 11:14:55 »
"Virtual Dispatcher"

A można więcej szczegółów - czy taki pomysł jest zrealizowany, w realizacji, w planach, nie planowany?


Są dwa osobne zagadnienia: ustalenie trasy oraz bieżące ustawianie przebiegów. A póki co to nikomu się nie chce używać rozkładów, bo trzeba by przypisywać W4 do torów i ustalić czasy przejazdów... Ale zawsze możesz też utknąć w SPT.

Tak, oczywiście. Trzeba rozpocząć od rzeczy najniższego rzędu aby potem móc na ich podstawie budować coś większego. Stąd też wstępna wizja kroków, od których należy zacząć.

Jak rozumiem W4 służy głównie jako informacja dla AI od prowadzenia pociągu.


Pomysł jest bardzo ciekawy, tylko czy każdy zwykły user nie wnikając w strukturę danej scenerii - będzie mógł w sposób taki jak obecnie prowadzić i cieszyć się symulatorem? To pytanie skierowane jest do autora wątku.

Dla zwykłego usera nic się nie powinno zmienić - dalej powinien jeździć wedle planu ustalonego przez autora scenariusza, dalej ruszać po podaniu zezwolenia. Oczywiście symulacja powinna być bardziej realna - żadnych atakujących składów, sygnalizacja działająca nawet w przypadku większego zagęszczenia ruchu. Jak każdy pomysł dotyczący "wnętrzności" największy zysk widzę tutaj dla tworzących scenariusze. Ludzie robiący przy tym projekcie są różni, każdy ma swoje zainteresowania i rzeczy, które mu najlepiej wychodzą. Nie sądzę, że wszyscy się interesują urządzeniami SRK. Na szczęście nie muszą - wydaje mi się, że sytuacje ruchowe można zautomatyzować i nie trzeba będzie już ręcznie wpisywać wszystkich zależności dla każdego obiektu osobno. Należy pozwolić robić komputerom to, do czego zostały stworzone - efektywnie wykonywać powtarzalne, automatyczne operacje. A dla twórców scenerii opracować proste informacje, aby mogli sprawnie wykorzystywać dobrodziejstwa automatyki.

Offline youBy

  • Deweloper
  • Wiadomości: 6167
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 876
Odp: pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #6 dnia: 31 Marca 2012, 12:33:29 »
A można więcej szczegółów - czy taki pomysł jest zrealizowany, w realizacji, w planach, nie planowany?
Jest w planach od wielu lat. Informacji w ogólnodostępnych miejscach jest raczej niewiele.
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline Paul

  • Zasłużony dla Symulatora
  • Wiadomości: 523
    • Zobacz profil
    • Beskidzka Strona Kolejowa
  • Otrzymane polubienia: 16
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #7 dnia: 31 Marca 2012, 21:12:48 »
Program przeznaczony do realizacji zależności, sterowania i kierowania ruchem według rozkładu jazdy (automatyczne układanie przebiegów) który miałby współpracować z EU07 zacząłem tworzyć już kawałek czasu temu i postęp prac był dość zaawansowany. Działanie opierało się na geograficznym połączeniu obiektów, ruch pokazywany był w formie typowego zobrazowania komputerowego z możliwością ręcznego sterowania.

Pomysł został zarzucony z powodu kompletnego braku zainteresowania oraz zarzucenia przeze mnie prac nad scenerią linia 139, w której miał być zastosowany (oczywiście powstał edytor umożliwiający stworzenie dowolnego modelu urządzeń i zobrazowania). Jedną z przeszkód był brak kontroli niezajętości torów w EU07 - o ile mi wiadomo zostało to zrobione, jeżeli komuś przeszkadza brak systemu sterowania ruchem w symulatorze (narazie chyba nie był to problem), to mogę projekt odgrzebać.
automatyka sterowania ruchem kolejowym rox
www.isdr.pl | www.bsk.isdr.pl | pokrzesik.wytnij@gmail.com

Offline Sawi

  • Zasłużony dla Symulatora
  • Wiadomości: 9228
  • O.M.D - Electricity, O.M.D - Enola Gay. 01.09.2012
    • Zobacz profil
  • Otrzymane polubienia: 751
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #8 dnia: 31 Marca 2012, 21:21:39 »
@Paul pamiętam o tyle o ile tą linię, nawet chyba gdzieś o niej pisałeś. Moim zdaniem warto być odgrzebał ten projekt, bo czasy się zdecydowanie zmieniły :).
Życie jest bardzo kruche i w najmniej oczekiwanym momencie tracisz bliskich. Nie widzisz kogoś lata i nagle już tej osoby nie ma :(. Jedynie co tobie zostaje, to wspomnienia http://www.youtube.com/watch?v=Rk_sAHh9s08 "Co mnie nie zabije, to mnie wzmocni".

Offline pkp.

  • Wiadomości: 144
  • ECCO RAIL Maszynista
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #9 dnia: 31 Marca 2012, 23:39:19 »
Co do nie zajętości torów to w exe już to jest bo miało to pracować w multiplayerze ale komunikacja między serwerem a rainstedem się zawieszała i prace nad poprawnością tego elementu jak i całego multiplayera stanęły z nie wiadomych przyczyn.

Offline sektor 77

  • Wiadomości: 212
  • Muzyka łagodzi obyczaje.
    • Zobacz profil
    • rock
  • Otrzymane polubienia: 0
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #10 dnia: 01 Kwietnia 2012, 11:42:56 »
Co do nie zajętości torów to w exe już to jest bo miało to pracować w multiplayerze ale komunikacja między serwerem a rainstedem się zawieszała i prace nad poprawnością tego elementu jak i całego multiplayera stanęły z nie wiadomych przyczyn.
Pytanko: gdzie tkwi problem - na serwerze, czy w programie Rainstad i czy w najbliższym czasie jest szansa, aby się z tym uporać?

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5925
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 445
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #11 dnia: 01 Kwietnia 2012, 11:53:23 »
@Paul pamiętam o tyle o ile tą linię, nawet chyba gdzieś o niej pisałeś. Moim zdaniem warto być odgrzebał ten projekt, bo czasy się zdecydowanie zmieniły :).
Taki scenariusz został popełniony, tylko mało kto miał możliwość zapoznania się z nim.
http://eu07.pl/forum/index.php/topic,5385.msg56547.html#msg56547
W tej scenerii nie ma możliwości "zaatakowany przez inne składy" Sceneria Bałtyk (zimowa to tylko klon tej podstawowej) jest jedyną w której scenariusz został napisany w niefortunny sposób. W prosty sposób można uzależnić jazdę pozostałych składów, odpowiednio modyfikując eventy.
Cytuj
eventy używane do indywidualnego sterowania wszystkimi elementami infrastruktury kolejowej, bez żadnego globalnego nadzorcy i koordynatora.
Zbudowanie czegoś takiego pewnie nie ma priorytetu, sądzę po odpowiedziach w tym wątku. Priorytet jest, aby AI jeździło po sceneriach poprawnie, stosownie do napisanych eventów , sygnalizacji, rozkładów i t.p.
Od tego momentu: http://eu07.pl/forum/index.php/topic,2854.msg46489.html#msg46489 ja byłem odpowiedzialny za to, co w Bałtyku było zrobione, za co dziękuję autorowi i pomysłodawcy scenerii. Dziękuję też wszystkim, którzy pomogli ogarnąć i pomóc w pracy.
« Ostatnia zmiana: 01 Kwietnia 2012, 12:24:17 wysłana przez Krzysiek626 »

Offline pkp.

  • Wiadomości: 144
  • ECCO RAIL Maszynista
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #12 dnia: 01 Kwietnia 2012, 13:03:28 »
Pytanko: gdzie tkwi problem - na serwerze, czy w programie Rainstad i czy w najbliższym czasie jest szansa, aby się z tym uporać?
Na to pytanie nie da się odpowiedzieć bo serwer jest zaszyty w rainstedzie. Wiadomo jedynie tyle że do exe komendy dochodzą ale powiadomienia o wykonaniu komend już tylko do pewnego momentu do serwera dochodzą później coś się wiesza w połączeniu czy to na odległość czy na localhost i serwer wywala brak wykonania rozkazów u klientów zajętości torów też się wieszają a w rzeczywistości wszystkie rozkazy wykonane a że serwer i klient jest w ranstedzie wiec tam jest problem.
A jeżeli chodzi o czas i szanse te pytania kierować do kolegi @Ra.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6343
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 374
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #13 dnia: 01 Kwietnia 2012, 13:04:26 »
Pytanko: gdzie tkwi problem - na serwerze, czy w programie Rainstad i czy w najbliższym czasie jest szansa, aby się z tym uporać?
Jednym z problemów jest indeksowanie torów po nazwach - wyszukiwanie liniowe skutecznie ścina FPS. Drugi problem, to brak przystosowanych scenerii - chociażby przypisanie W4 do toru i nadanie mu odpowiedniej nazwy jest traktowane jako mało istotne. Jest też problem w komunikacji Rainsted - EU07.EXE, podobno się zacina. Nie wiem dlaczego, bo u mnie się to nie dzieje. Kolejna rzecz to brak zainteresowania użytkowników. Wg mojej ankiety multiplayer znalazł się na 38. miejscu, z aż trzema głosami na 802 oddanych.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Benek

  • Moderator
  • Wiadomości: 4504
  • fb.com/benek.maszyna
    • Zobacz profil
    • Moja strona o MaSzynie
  • Otrzymane polubienia: 17
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #14 dnia: 01 Kwietnia 2012, 13:27:13 »
Drugi problem, to brak przystosowanych scenerii - chociażby przypisanie W4 do toru i nadanie mu odpowiedniej nazwy jest traktowane jako mało istotne.
No nie do końca. Kiedyś przygotowywałem całą Krzyżową pod multiplayer, a Libertyn tworzył wszystkie możliwe przebiegi wg przepisu, który krąży po forum. I to miało być przygotowane na jakąś wystawę na 11.11.11? Już nie pamiętam, jednak robota poszła na marne.

Offline sektor 77

  • Wiadomości: 212
  • Muzyka łagodzi obyczaje.
    • Zobacz profil
    • rock
  • Otrzymane polubienia: 0
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #15 dnia: 01 Kwietnia 2012, 14:13:08 »
Panowie, więc może jeszcze raz wspólnymi siłami spróbujcie to postawić na nogi. Multiplayer to super sprawa i dziwi mnie, że było małe zainteresowanie. Jestem przekonany, że potraficie to zrobić, skoro stworzyliście w ogóle SYMULATOR EU07. W imieniu własnym i innych bardzo mocno Was zachęcam :) Dodając jeszcze zupełnie od siebie, że to co robicie - to jesteście na prawdę w tym świetni.
« Ostatnia zmiana: 01 Kwietnia 2012, 14:24:27 wysłana przez sektor 77 »

Offline pkp.

  • Wiadomości: 144
  • ECCO RAIL Maszynista
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #16 dnia: 01 Kwietnia 2012, 14:50:50 »
Kolejna rzecz to brak zainteresowania użytkowników. Wg mojej ankiety multiplayer znalazł się na 38. miejscu, z aż trzema głosami na 802 oddanych.
Nie zgadzam się z tym twierdzeniem.
Podstawowa rzecz nazwa wątku "Co jest obecnie największą wadą MaSzyny?" Ta ankieta nie była ukierunkowana w celu jakie nowości chciałbyś aby były wprowadzone tylko tak jak wyżej jest napisane co jest w maszynie do bani że w oczy kole i to trzeba natychmiast poprawić. Więc uważam że kierowanie się tą ankietą w pracach nad pewnymi rzeczami nie powinno mieć miejsca.
Co do kwestii samego zainteresowania mam informacje i wiem że jest dużo wiecej osób niż myślisz które czekają na multiplayera.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6343
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 374
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #17 dnia: 02 Kwietnia 2012, 11:45:30 »
OK, następną ankietę ukierunkuję inaczej, ale można ją będzie zrobić dopiero kilka miesięcy po wydaniu paczki całościowej.

Na razie udało mi się zrobić w kodzie obiekt sortujący nazwy torów (w formie drzewa na statycznym obszarze pamięci). Sortuje dobrze. Pozostaje jeszcze do zrobienia optymalizacja tego drzewa tak, aby było możliwie symetryczne, wtedy wyszukiwanie będzie najszybsze.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline jumo81e

  • Wiadomości: 3
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #18 dnia: 03 Kwietnia 2012, 08:43:41 »
[...]
Na razie udało mi się zrobić w kodzie obiekt sortujący nazwy torów (w formie drzewa na statycznym obszarze pamięci). Sortuje dobrze. Pozostaje jeszcze do zrobienia optymalizacja tego drzewa tak, aby było możliwie symetryczne, wtedy wyszukiwanie będzie najszybsze.

A może coś prostszego: posortowana tablica z nazwami, w końcu po wczytaniu scenerii nazwy torów już się nie zmieniają - więc wystarczy to zrobić raz. Binarne szukanie na posortowanej tablicy to O(log2(N)) - czyli identycznie jak dla zrównoważonego drzewa binarnego.

Ewentualnie coś jeszcze bardziej odjechanego - w Pythonie jest typ 'dict' (słownik, czyli tablica asocjacyjna) - tam wyszukiwanie jest O(1).

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6343
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 374
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #19 dnia: 03 Kwietnia 2012, 10:05:33 »
Właśnie zrobiłem optymalizację drzewa.

w końcu po wczytaniu scenerii nazwy torów już się nie zmieniają
Póki co nie, ale to nic pewnego.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: Pomysł wprowadzenia automatyki sterowania ruchem
« Odpowiedź #20 dnia: 03 Kwietnia 2012, 10:08:52 »
@jumo81e, @Ra: Z tego co wiem w BCB jest dostepny niestandardowy kontener std::hash_map - baaardzo szybki, znacznie szybszy od drzew, oferuje czas wyszukiwania O(1) właśnie.