Ceci est une question de devoirs et je serais heureux pour quelques conseils. Soit G = (V, E) un graphe non orienté où chaque sommet représente une ville, et les arêtes ont des poids qui représentent les distances de déplacement. Certaines villes ont des stations-service. Une voiture commence à partir des sommets avec un réservoir de gaz suffisant pour parcourir la longueur L. J'ai besoin de trouver le chemin le plus court entre s et t afin que la voiture ne manquera pas de gaz.Le plus court chemin avec un réservoir de carburant
Ma pensée principale était d'utiliser l'algorithme de Floyd-Warshall avec quelques changements. Lorsque nous calculons shortestPath (i, j, 0), nous affectons w (i, j) si i a une station d'essence et L-w (i, j)> 0, et l'infini sinon. Cependant, pour les prochaines étapes, je ne sais pas comment ajouter l'état actuel du carburant dans les calculs.
Merci.
Il serait vraiment utile si vous montriez [ce que vous avez déjà essayé] (http://whathaveyoutried.com) afin que nous ne perdions pas de temps à suggérer des idées que vous savez déjà ne fonctionnent pas. Vous pouvez également trouver [entrée de blog de Jon] (http://tinyurl.com/so-hints) utile. –
@DanPichelman: Ma pensée principale était d'utiliser l'algorithme de Floyd-Warshall avec quelques changements. Lorsque nous calculons shortestPath (i, j, 0), nous affectons w (i, j) si i a une station d'essence et L-w (i, j)> 0, et infnity autrement. Cependant, pour les prochaines étapes, je ne sais pas comment ajouter l'état actuel du carburant dans les calculs. – Roy
Je me demande si [Dijkstra] (http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm) pourrait être un meilleur ajustement, étant donné que vous avez un point de départ et de fin connu. Lors de l'analyse de la distance au "nœud suivant", tout ce qui est sur L - "longueur depuis la dernière station-service" serait l'infini. Si le nœud actuel a du gaz, alors la "longueur depuis la dernière station-service" serait remise à zéro. (Vous devez suivre à la fois "longueur depuis la dernière station-service" et "longueur totale du trajet" séparément). Je ne sais pas si c'est juste - je n'ai pas fait cela depuis un moment. Bonne chance cependant, cela ressemble à un problème amusant. –