Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Load Balancer
#1
Problem
Jak rozwieźć dany towar równo po kilku stacjach?

[Obrazek: 331o9km.png]

Powyżej nasza zwykła stacja. Po prawej (in) wjeżdża metal, po środku (out) wychodzą narzędzia rolnicze.
Problem polega na tym, aby nie dopuścić do sytuacji w której narzędzia jadą kilkoma pociągami pod rząd do danej fabryki.
Założenie jest następujące. Pociągi mają wjeżdżać na stację po jednym dla każdej docelowej fabryki, po ostatnim znowu pierwsza i tak w kółko.
Pociągi ładowane są w takiej kolejności w jakiej wjadą na stację więc może być kilka peronów.

[Obrazek: i5rrrl.png]

Pierwszą rzeczą jaką robimy jest rozdzielenie przed stacją pociągów z podziałem na docelowe stacje.
W tym przypadku mamy 6 docelowych stacji (dla narzędzi) więc zrobiliśmy 6 waypointów.
Na każdy waypoint dajemy początkowo 2-3 pociągi.
Ważne aby ich pojemność nie była zbyt duża. Wystarczy tyle, aby dana fabryka zwiększyła swoją produkcję czterokrotnie.
Dosyłanie większej ilości towaru spowoduje jego zmarnowanie.

[Obrazek: 290pqok.png]

Tutaj pociągi czekają na swoją kolej.
Proszę zauważyć, że tylko jeden tor ma zielone światło. Oznacza to, że dany pociąg jest następny w kolejności. Gdy przejedzie przez światła linia zostanie przestawiona.
Na następnej zapali się zielone a na aktualnej czerwone.
Mosty oraz tory zbudowane prostopadle do linii pociągów stanowią linie logiczne dla naszego load balancera.
Każda linia zbudowana jest tak samo, czyli 6 kratek bez świateł, block-signal-start, "kabel" odblokowujący pociąg, zwykły sygnał, "kabel" badający czy dany pociąg przejechał, 4 kratki bez świateł.

[Obrazek: fz0rcl.png]

To co widzimy powyżej to zwykłe bramki logiczne OR.
Każdy tor potrzebuje 2 bramek. Jednej z wynikiem w kierunku toru oraz drugiej w przeciwnym kierunku.

[Obrazek: jqqlw1.png]

Wszystkie bramki podłączone są do "wybieraka". Gwoli wyjaśnienia użytej terminologii:
Lokomotywa - to co widzimy na ekranie.
Pociąg - jeden z pociągów który rozwozi towary.
Lokomotywa stoi na torze który jest poddawany logicznemu OR zapalając przy tym światło na liniach gdzie stoją nasze pociągi.
Jako, że jest jedna lokomotywa to tylko jeden tor może mieć zielone światło w danej chwili.
Lokomotywa jest blokowana przez światło, którego rezultat stanowi logiczny OR dla kabla podłączonego zaraz za odblokowanym torem.
Czyli lokomotywa stojąc na pierwszym kablu daje zielone dla danej linii ale czeka na zmianę światła, która nastąpi jak tylko pociąg przejedzie przez tę linię.

Dodawanie pociągów nie jest takie jak w przypadku zwykłych stacji.
W pierwszej kolejności patrzymy czy na stacji załadunkowej są pociągi.
Jeżeli nie to patrzymy na naszą poczekalnię. Jak jest pusto do dokupujemy ten pociąg na której linii jest aktualnie zielone (i może następny w kolejności).
Jeżeli w poczekalni jest trochę pociągów a stacja pusta to szukamy pociągu który blokuje pozostałe (pali się zielone ale pociągu brak). Jeżeli jest daleko to dokupujemy, jak nie to spokojnie czekamy aż dojedzie i puści kolejne.
Gdy w poczekalnie jest za dużo (2-3) pociągów na jednej linii to je sprzedajemy. Najlepiej zrobić to puszczając pociąg ignorując światła i sprzedając przed stacją.

Mam nadzieję, że opisałem w miarę przejrzyście.
Jakby co proszę pytać, uzupełnię tekst.
#2
Wczoraj mówiłeś, że lokomotywy na bramkach są za wolne. Rozgryzłeś to?
#3
Miło, że ktoś gra jeszcze na wersji ENG oprócz mnie Big Grin Mam kaca głowa nie pracuje w miare dobrze bo projektowałem wczoraj nowy dział na forum.

Co do pomysłu bardzo fajny, tylko może spróbować po prostu jakoś to rozwiązać depotami + semafory, po prostu uprościć Wink
#4
(12-02-2013, 13:31)niemiec napisał(a): Wczoraj mówiłeś, że lokomotywy na bramkach są za wolne. Rozgryzłeś to?
Zmieniłem bramki OR na inną implementację - problemy ustąpiły.
#5
I tak jesteś n00bem D: Ja nie potrzebowałem takich mechanizmów.
#6
(12-02-2013, 16:54)Malix napisał(a): I tak jesteś n00bem D: Ja nie potrzebowałem takich mechanizmów.

Ja bym był ostorżny z takimi tezami Tongue sądzę za Mike nawet nie grał na 5% Swoich możliwości Smile
#7
bramki logiczne w openttd? nie wiedziałem że takie coś jest możliwe Tongue chociaż to i tak zbytnio nie ma sensu bo im więcej się kombinuje tym więcej ma się potem problemów Wink chyba każdy wie o co mi chodzi Smile
#8
Ja właśnie dzięki Mike'owi ogarnąłem troche temat logicznych bramek.
Konstrukcja ORa,ANDa oraz NOTa ściągnieta z neta Big Grin. Tylko myśle nad zastosowaniem jakimś dogłębniejszym ...
#9
szkoda, że nie da rady tego ogarnąć prostrzym sposobem Sad
#10
hmm...
tak sobię myślę czy nie prościej by nie było gdyby zrobić jeden tor? znaczy się bez żadnych mijanek i z pojedynczymi peronami Wink wydajność takiego systemu była by mała ale nie bolała by przy tym głowa Wink
#11
(18-02-2013, 23:03)saunter napisał(a): hmm...
tak sobię myślę czy nie prościej by nie było gdyby zrobić jeden tor? znaczy się bez żadnych mijanek i z pojedynczymi peronami Wink wydajność takiego systemu była by mała ale nie bolała by przy tym głowa Wink
Nie rozwiąże to podstawowego problemu polegającego na tym, że pojawi się sytuacja w której wszystkie pociągi do danej stacji docelowej będą jechały w kolumnie.
Potrzebujemy wysyłać narzędzia w określonych odstępach - wysyłanie za dużo powoduje ich marnowanie.
Dlatego pociągi z narzędziami mają pojemność w okolicach wymaganej do zwiększenia czterokrotnie wydajności kopalni.
#12
[Obrazek: k9sGGKf.png]
ja tam robię najprostszą metodą.
Trzeba tylko dobrze zrobić stacje dla ciężarówek i można dostarczać tyle maszyn ile chcemy.
Przy budowanie stacji docelowej trzeba pamiętać żeby:
a) była tylko jedno kratkowa, przelotowa.
b) był na nią tylko wjazd z jednej strony.
c) zawsze musi być kolejka samochodów.
A rozkład i czas w trzecim rozkazie ustawiamy tak by było maksimum wydajne.
#13
(19-02-2013, 01:24)Mike napisał(a):
(18-02-2013, 23:03)saunter napisał(a): hmm...
tak sobię myślę czy nie prościej by nie było gdyby zrobić jeden tor? znaczy się bez żadnych mijanek i z pojedynczymi peronami Wink wydajność takiego systemu była by mała ale nie bolała by przy tym głowa Wink
Nie rozwiąże to podstawowego problemu polegającego na tym, że pojawi się sytuacja w której wszystkie pociągi do danej stacji docelowej będą jechały w kolumnie.
Potrzebujemy wysyłać narzędzia w określonych odstępach - wysyłanie za dużo powoduje ich marnowanie.
Dlatego pociągi z narzędziami mają pojemność w okolicach wymaganej do zwiększenia czterokrotnie wydajności kopalni.

Teoretycznie tak ale wiadomo że zawsze można jakoś pomyśleć nad czymś takim Wink Może kiedyś spróbuję Smile
#14
(19-02-2013, 08:45)Alkomat napisał(a): ja tam robię najprostszą metodą.
Trzeba tylko dobrze zrobić stacje dla ciężarówek i można dostarczać tyle maszyn ile chcemy.
Przy budowanie stacji docelowej trzeba pamiętać żeby:
a) była tylko jedno kratkowa, przelotowa.
b) był na nią tylko wjazd z jednej strony.
c) zawsze musi być kolejka samochodów.
A rozkład i czas w trzecim rozkazie ustawiamy tak by było maksimum wydajne.

No tak ale ten pociąg wydaje mi się, że nie ma przychodów Tongue Pozatym niemiec taz mi tak zrobił, ja tam wole jednak woźić pociągami 1x3. Zresztą patrzać na raiting na Firsie i tak się kokosów nie wyciśnie. Trzeba po prostu zbudować dobry łańcuch a późneij tylko klon za klonem Wink
#15
Rozwiązanie z busami jest o tyle fajne, że można robić duże pociągi i wrzucać na stację pośredniczącą mnóstwo towaru. Następnie użyć ciężarówek do kalibrowania dystrybucji.
Potem patrzymy czy na stacji pośredniczącej jest za dużo/mało i dodać/odjąć pociągi.
Sprawdzę jak to się ma w praktyce przy kolejnej rozgrywce jak mnie Król Julian wpuści :)


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości