Funzione di Dijkstra per la navigazione per persone svantaggiate

1

C'è un modo in cui possiamo scrivere una funzione per Dijkstra per determinare quale nodo accodare e quale scartare. Questo è per una soluzione di navigazione per persone con disabilità in cui il percorso per le scale può essere più breve ma non preferibile agli individui con sedia a rotelle. La soluzione di navigazione dovrebbe anche supportare tutti gli individui e solo dare un percorso scartando le scale se il gruppo di utenti specificato è qualcuno che è legato alla sedia a rotelle ecc. Quindi in pratica sto tentando di scrivere una funzione che controlla se il gruppo di utenti = rilegato in sedia a rotelle quindi rimuove il percorso più breve alle scale e dà il percorso all'ascensore più vicino. Sono abbastanza nuovo in questo modo qualsiasi assistenza sarebbe molto apprezzata.

    
posta Jason6916 24.05.2015 - 05:27
fonte

3 risposte

2

Il lotto di bordi (scale) sarà disabilitato nel grafico per le persone con disabilità. Puoi filtrarli prima di costruire il tuo grafico (raccolta di spigoli) o aggiungere logica al passo "calcolo delle distanze provvisorie". (Passaggio 3) in Algorithm

    
risposta data 24.05.2015 - 06:15
fonte
3

Dato che l'algoritmo di Dijkstra richiede un punto di partenza (solitamente considerato come la posizione corrente della persona), ogni esecuzione dell'algoritmo è già fatta in modo specifico per la richiesta della persona. Per questo motivo, puoi sfoltire il grafico per rimuovere i bordi inaccessibili a quella persona (come già rilevato da DanielS), prima di eseguire l'algoritmo.

Se prevedi di utilizzare un algoritmo di individuazione dei percorsi che utilizza una sorta di precomputazione, forse puoi fornire maggiori dettagli sul tuo piano, in modo che possano essere fornite risposte migliori.

    
risposta data 24.05.2015 - 06:42
fonte
0

Ogni volta che consideri un bordo per la prima volta nell'algoritmo, determini quale "distanza" deve essere assunta per quel bordo. Se il bordo contiene scale, si regola di conseguenza la "distanza", con regolazioni molto diverse per auto, biciclette, pedoni, utenti di sedie a rotelle.

Se la regolazione è difficile, puoi posticiparla e calcolare il percorso più breve ignorando le regolazioni. Quindi se il percorso più breve contiene un bordo difficile (come le scale), si regola la distanza per quel bordo e si ripete l'intero calcolo. Quindi, nel caso in cui ci siano molte scale che non si trovano sul percorso più breve, le ignori.

Non rimuoverò questi bordi dal grafico, ma darò loro una penalità ragionevole in lontananza. Considera la situazione in cui non c'è modo da A a B senza scale, ma una scala ha dieci gradini e una ha cinque gradini. O un percorso che è di dieci metri con le scale, e un altro che è di dieci miglia senza scale.

    
risposta data 24.05.2015 - 22:52
fonte

Leggi altre domande sui tag