Algorithme de parcours - Algo - Programmation
Marsh Posté le 28-12-2003 à 10:17:23
Regarde du coté de la recherche operationnelle (algo du parcours le plus court). Désolé, j'ai plus l'algo en tete, t'as pas fait ca en cours des fois ? (avec les files d'attentes etc...)
Marsh Posté le 28-12-2003 à 11:27:36
Ben si on a fait des parcours de graphes en info; Mais il ne s'agissait de parcours ou on avait le droit de sauter d'un sommet a n'importe quel autre ( depth-first, breadth-first, etc... ). Dans mon cas tu ne peux aller d'un sommet a l'autre que s'ils sont reliés par une arete.
Pour comprendre le probleme il faut s'imaginer un robot mobile qui parcourt le terrain. La il devient évident que ces algorithmes la ne me sont d'aucun secours.
Marsh Posté le 28-12-2003 à 11:43:11
ReplyMarsh Posté le 28-12-2003 à 11:44:24
Ace17 a écrit : Ben si on a fait des parcours de graphes en info; Mais il ne s'agissait de parcours ou on avait le droit de sauter d'un sommet a n'importe quel autre ( depth-first, breadth-first, etc... ). Dans mon cas tu ne peux aller d'un sommet a l'autre que s'ils sont reliés par une arete. |
Ouais non, je parlais pas de ca... désolé, j'ai al flemme de rechercher mes cours
Marsh Posté le 28-12-2003 à 11:48:00
cherrytree a écrit : A vue de nez c'est NP Complet ton pb. |
Ouais mais je cherche pas un algo de calcul direct de la meilleure solution, je cherche des idées pour optimiser une solution naive.
Marsh Posté le 28-12-2003 à 11:50:00
Quelles hypothèses a-t-on sur les obstacles ?
Tu peux avoir des terrains comme ça ?
0 0 0 0 1 1 0 |
?
Marsh Posté le 28-12-2003 à 11:55:32
Les obstacles peuvent avoir n'importe quelle forme, tant que la zone a parcourir reste connexe.
Marsh Posté le 28-12-2003 à 11:55:39
Sur de petites dimensions, tu dois pouvoir décomposer ton problème comme un arbre (assez explosif, je l'accorde), où tu ne considères le retour arrière que si tu as marqué tous les noeuds connexes de ton noeud courant. Si tu as plus d'une possibilité tu débutes un nouveau sous graphe. Si tu es coincé, tu repars en arrière. Bon, c'est une heuristique pourrie... Surtout qu'elle risque de foirer.
Marsh Posté le 28-12-2003 à 11:56:07
Ace17 a écrit : Les obstacles peuvent avoir n'importe quelle forme, tant que la zone a parcourir reste connexe. |
OK, donc il existe toujours un chemin (et donc un chemin optimal).
Marsh Posté le 28-12-2003 à 12:00:53
cherrytree a écrit : Sur de petites dimensions, tu dois pouvoir décomposer ton problème comme un arbre (assez explosif, je l'accorde), où tu ne considères le retour arrière que si tu as marqué tous les noeuds connexes de ton noeud courant. Si tu as plus d'une possibilité tu débutes un nouveau sous graphe. Si tu es coincé, tu repars en arrière. Bon, c'est une heuristique pourrie... Surtout qu'elle risque de foirer. |
|
Si je commence en X, ton heuristique arrive à un résultat impossible.
Marsh Posté le 28-12-2003 à 12:01:51
Ace17 a écrit : |
Adapter l'algo de Floyd Djikstra?? En considerant chaque point de ta matrice comme le sommet d'un graphe de taille n*n...
A+,
Marsh Posté le 28-12-2003 à 12:08:09
gizmo a écrit :
|
Parce qu'il manque la condition d'arrêt.
Mais je suis d'accord que c'est pas génial.
Marsh Posté le 28-12-2003 à 13:23:19
gilou a écrit : |
Ah voila, c'est celui la que je cherchait. Y'en a un autre aussi je crois
Marsh Posté le 02-01-2004 à 18:28:49
Bon je viens de lire dans un bouquin qu'il n'existe pas d'algorithme efficace qui résolve le probleme du parcours hamiltonien...
Marsh Posté le 02-01-2004 à 18:30:36
cherrytree a écrit : |
Oui mais il s'agit de passer au moins une fois sur chaque case ( d'ou le coté Hamiltonien ) et pas seulement d'aller d'un point a un autre...
Marsh Posté le 28-12-2003 à 08:45:56
J'ai un tableau a deux dimensions qui represente ma zone a parcourir, avec certaines cases a 0 ( franchissables ) et d'autres a 1 ( infranchissables ). On représente ainsi un rectangle de terrain comportant des obstacles.
Mon but est de passer au moins une fois sur chaque case franchissable, en un trajet minimum.
J'arrive a parcourir entierement mon tableau tout en évitant les obstacles, mais le trajet obtenu est loin d'etre optimal... Quelqu'un a-t-il une idée ou connait-il un algorithme d'optimisation pour un tel parcours?