Quanto influiscono i semafori in città? Modellizzazione con grafi
(nota: non sono sicuro del se questa sia la sezione giusta, ero indeciso con quella di Ricerca Operativa. Nel caso chiedo ai moderatori di spostare direttamente il thread)
Salve a tutti,
Da un po' stavo pensando a un piccolo progetto a scopo di ricerca, riguardo un concetto apparentemente banale: in città, quanto conviene superare i limiti di velocità, se poi inevitabilmente ci si ritrova a doversi fermare ai vari semafori rossi?
In paesi piccoli la cosa può essere marginale, ma in una città come Milano, con migliaia di incroci semaforizzati, la situazione cambia drasticamente.
Volevo allora scrivere un piccolo programma per andare a simulare le varie situazioni possibili. Da informatico, a livello tecnico ho già qualche idea, ma volevo chiedere consigli a voi in merito all'aspetto matematico/logico del tutto, prima di cominciare a scrivere codice.
La mia idea era quella di modellizzare la città con un grafo non orientato (o orientato, se vogliamo prendere in considerazione anche i sensi unici), dove i nodi sono gli incroci semaforizzati, e ogni incrocio ha come elemento interno un contatore intero decrescente, ovvero i secondi che passano al cambio di stato, e due stati: rosso o verde, ovviamente.
Gli archi invece hanno peso pari alla loro lunghezza, in metri (quindi la distanza tra un semaforo e l'altro).
Il grafo, inoltre, è aperto: gli archi "morti" rappresentano le interconnessioni con autostrade e strade extraurbane.
L'idea a livello tecnico era di sfruttare un approccio probabilistico: creo una rete con i vari contatori dei nodi inizializzati casualmente (idem gli stati), e la faccio evolvere simulando il "passaggio" di un veicolo da un nodo A a un nodo B di destinazione, scegliendo i nodi intermedi con l'algoritmo di Dijkstra o l'A*. Quindi, calcolo il tempo effettivo, simulando varie velocità del veicolo.
L'ultimo punto è quello forse più spinoso, perché non vorrei incartarmi con qualche soluzione "inutilmente" complicata.
Cosa ne pensate? Un grazie in anticipo a chiunque possa darmi un consiglio in merito.
Salve a tutti,
Da un po' stavo pensando a un piccolo progetto a scopo di ricerca, riguardo un concetto apparentemente banale: in città, quanto conviene superare i limiti di velocità, se poi inevitabilmente ci si ritrova a doversi fermare ai vari semafori rossi?
In paesi piccoli la cosa può essere marginale, ma in una città come Milano, con migliaia di incroci semaforizzati, la situazione cambia drasticamente.
Volevo allora scrivere un piccolo programma per andare a simulare le varie situazioni possibili. Da informatico, a livello tecnico ho già qualche idea, ma volevo chiedere consigli a voi in merito all'aspetto matematico/logico del tutto, prima di cominciare a scrivere codice.
La mia idea era quella di modellizzare la città con un grafo non orientato (o orientato, se vogliamo prendere in considerazione anche i sensi unici), dove i nodi sono gli incroci semaforizzati, e ogni incrocio ha come elemento interno un contatore intero decrescente, ovvero i secondi che passano al cambio di stato, e due stati: rosso o verde, ovviamente.
Gli archi invece hanno peso pari alla loro lunghezza, in metri (quindi la distanza tra un semaforo e l'altro).
Il grafo, inoltre, è aperto: gli archi "morti" rappresentano le interconnessioni con autostrade e strade extraurbane.
L'idea a livello tecnico era di sfruttare un approccio probabilistico: creo una rete con i vari contatori dei nodi inizializzati casualmente (idem gli stati), e la faccio evolvere simulando il "passaggio" di un veicolo da un nodo A a un nodo B di destinazione, scegliendo i nodi intermedi con l'algoritmo di Dijkstra o l'A*. Quindi, calcolo il tempo effettivo, simulando varie velocità del veicolo.
L'ultimo punto è quello forse più spinoso, perché non vorrei incartarmi con qualche soluzione "inutilmente" complicata.
Cosa ne pensate? Un grazie in anticipo a chiunque possa darmi un consiglio in merito.
Risposte