View Single Post
Old 19-08-2012, 14:41   #2
Varilion
Member
 
Iscritto dal: Oct 2005
Messaggi: 68
La prima cosa che mi viene in mente è vedere il Treno che impegna i binari X,Y,Z come oggetto diciamo. E la strutture della stazione come un set di vincoli. In questo modo usando un qualsiasi tool di model checking si dovrebbe poter giungere ad una soluzione ed essere in grado di gestire N treni simultaneamente...ma forse è un "overkill".


Se tu devi gestire esclusivamente il fatto che UN treno arrivi e debba essere mandato tramite un apposita configurazione di scambi su di UN binario vuoto la cosa è più semplice.

Ipotizziamo che il grafo che rappresenta i binari della stazione sia aciclico (quindi hai un albero) si potrebbe fare una struttura dati piuttosto banale in cui hai come radice il binario in cui sta arrivando il treno e poi tutto l'albero binario a cascata sapendo che i nodi hanno due uscite. (In realtà hai più nodi in ingresso, ma non ti interessa perché il treno è su di uno di essi).
Quindi ti limiti ad esplorare sto grafo fino a che non trovi un percorso "valido", puoi usare l'algoritmo che più preferisci...deep-first (ti devi però memorizzare da qualche parte una pila con il tuo percorso di esplorazione, che costituisce la tua soluzione) o altro. Se ogni nodo conosce il suo "padre" puoi anche fare un po' di pruning rimuovendo i binari occupati..ma..non saprei..

Non sono 100% sicuro di aver capito il problema però.
Varilion è offline   Rispondi citando il messaggio o parte di esso