b1: OK, ale já naprosto vůbec nemám představu, jak to tam bylo. Ečerova mi byla, je a doufám (:-D) že i bude dost vzdálená. ZXS.91: Aha. To je škoda, novější verze přináší dobrý vylepšení, měl bys je vyzkoušet. Zajímavý. Myslím, že děláme v podstatě to samé. Osobně mám ale asi jiný postup. Prvotní je parametrická tvorba JŘ. Tzn. od kdy do kdy a v jakém intervalu (existuje povolená množina intervalů, založená na dělitelnosti čísel). To je v podstatě hned. JŘ používám souměrné, tzn. z obou konečných jsou naprosto stejné. Proč? Nemám výpočetní sílu na to, abych to v rozumném čase vypočítal pro něco nesouměrného. Stále se to děje v Excelu a hlavě. Jakmile budu mít program, je mi to jedno. 8 jader procesoru se s tím nějak popere. Mám tam něco jako kurzový sled. Ten začíná prvním výskytem nejkratšího intervalu a zároveň na konečné, která má nejnižší číslo (konečné označuji písmenem T, následuje číslo, od 00 do N). To je obvykle v 6 ráno. Dále dělám ještě jednu věc. Celá linka je hostovaná právě jednou vozovnou (u historického Sokolova mám stejně jen jednu, tak co… :-D). Ne, že bych nevěděl, jak tam zařadit víc vozoven, ale jde spíš opět o to, že nemám svůj program, z hlavy to počítat nechci, Excel mi „pomáhá“ opravdu skvěle, ale hlavně mám prostě raději, že celá linka je pod jedinou vozovnou. Když linka vyjíždí, je za jejím číslem V, když zatahuje, je tam Z. Výjezdová a zátahová část. Zejména kvůli signalizacím a křížením. Na začátku mi vyjede nějaká množina spojů, podle toho, jaký je interval, jak jsem stanovil periodu (konečná – konečná). Prvotní spoje obvykle vyjíždí o 5 minut dřív, protože co kdyby… Každý z těch kurzů nejspíš stihne udělat kolo nebo 2 (záleží, jak brzo linka začíná). Pak se mezi ně musí trefit další kurzy. Díky tomu jsem zavedl pojem setkávací bod (SB). Je několik variant, kudy a jak trasovat výjezd, zatím jsem ale používal nejjednodušší. Vezmu si trasu linky a podívám se, na jakých kříženích je nejblíž vozovně. Pokud jich je víc, tak beru to, co je blíž ke středu trasy linky. Teď potřebuji vědět, jak dlouho to trvá z vozovny na SB a odtama na jednotlivé konečné. Pak mohu vypočítat, kdy musí kurz N vyjíždět tak, aby se trefil přesně mezi N-1 a N+1. Což je i můj požadavek na algoritmus. Najít přesně čas mezi nimi. Už se mi stalo, že tam těch kurzů bylo i několik, takže těch středových časů je víc (a z hlavy se to fakt blbě počítá, Excel nepomáhá naprosto vůbec). Ty doplňující kurzy vyjíždí přesně na čas, nemají rezervu. Když je pak všechno venku, tak mi stačí jen pohled na to, jak jezdí za sebou, a pokud jdou čísla právě vzestupně nebo sestupně, tak vím, jestli jsem to udělal dobře. Pokud ne, a že se stává (numerická chyba, tu stroje nedělají), tak se pak dívám, co jelo pozdě nebo brzo. Na to, jaké kurzy mají vyjet a kdy, přicházím pomocí toho, že zpětně dopočítávám, kdy jaký pojede. Např. vím, že od 6 je kurzový sled. Takže si to zanesu do JŘ, zpětně pak odčítám ty časy, a zjišťuji, kde ten kurz má být před tím. A tohle chci implementovat do programu. Ze začátku jen základní verze, později podpora více vozoven, výjezdu pomocí rozjezdového bodu a dvojicí setkávacích, apod. Všechno to jde popsat algoritmem. Tak mě právě napadlo, jestli by někdo o takový program měl zájem (jeho dokončení je ale NESKUTEČNĚ daleko). Co se týče zátahů, tak ty jsou jednoduché. Stačí jen najít volné časové okno ve složeném JŘ, pokud je z konečné více linek, a tam to dát. Ukončuji kurzy, na které to prostě vyjde podle časů. Nechci, aby mi tam něco čekalo půl hodiny na to, aby to mohlo zatáhnout. Možná nevýhoda, ale tím platí rovnost počtu linek a kolejích na konečných. Víc linek na jednu konečnou, na to upřímně nemám koule. :-D Obdivuju každého, kdo jo. Linka z konečné jede tak, že nahodí za svoje číslo Z, a jede po trase až do setkávacího bodu, a odtam do vozovny. Režijních zátahů je minimum (pouze ty, co jsou velmi blízko vozovny). Tenhle systém funguje, založil jsem ho na matematické přesnosti, nezklamal mě, jeho výtvory jsou pěkné. U jedné sítě mám takhle už hotový provoz pro PD. Sokolov, léta páně 1977, samé T3, K2 a K3. Je to vcelku jednoduchá síť, ale i tak mi to docela dalo zabrat, a pomohlo mi to uvědomit si, že tohle doopravdy nejde dělat z hlavy.
_________________________________ BANH síť fiktivního MHD Sokolov: Metro: A, B, C, D; Tram: 0–19; Trol: 20–49; Ebus: 50–99.
|