|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1764
|
[Java] Ricercapercorsi in un multigrafo
![]() Il multigrafo qui sopra rappresenta un'ipotetica rete metropolitana. Le lettere sono i nomi delle stazioni, i numeri sono i nomi delle linee (bidirezionali). Date due stazioni qualsiasi, devo trovare tutti i percorsi possibili, scartando quelli che mi fanno usare la stessa linea alternata ad un'altra. Ad esempio da A a F il percorso A --(linea 1)--> B --(linea 1)--> C --(linea 2)--> F è un percorso buono, invece A --(linea 2)--> B --(linea 1)--> C --(linea 2)--> F andrebbe scartato Fin quando si tratta di un grafo semplice (quindi una sola linea tra due stazioni) non ho problemi, ho già scritto il codice e fa tutto quello che deve fare, uso una BFS per trovare i percorsi. Il problema è che non so come modificare l'algoritmo in modo che controlli tutti i percorsi tenendo in considerazione che si tratta di un multigrafo. Di seguito riporto la parte che mi fa la ricerca dei percorsi. Come già detto, in caso di grafo semplice funziona, con un multigrafo no. Qualcuno saprebbe indicarmi come modificare il codice? Se necessario posso fornire il codice di tutte e 5 le classi in modo che se volete potete testarlo. Codice PHP:
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 1764
|
Si, agli archi sono associati dei pesi.
Comunque il fatto di scartare il secondo percorso che ho indicato è perché ti fa partire da A prendendo la linea 2, arrivato in B ti fa cambiare e prendere la linea1, poi di nuovo alla fermata seguente ti fa prendere la linea iniziale. Tu da viaggiatore faresti mai una cosa simile? Non lo scarto perché è un percorso sbagliato, ma perché non è logicamente accettabile. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:44.




















