Algorithme de parcours

Algorithme de parcours - Algo - Programmation

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?

Reply

Marsh Posté le 28-12-2003 à 08:45:56   

Reply

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...)

Reply

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.

Reply

Marsh Posté le 28-12-2003 à 11:43:11    

A vue de nez c'est NP Complet ton pb.


---------------
Le site de ma maman
Reply

Marsh 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.
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.


 
Ouais non, je parlais pas de ca... désolé, j'ai al flemme de rechercher mes cours :p

Reply

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.

Reply

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
1 1 0 0 1 1 1
1 1 1 0 0 1 1
1 1 0 0 0 0 0
0 0 0 1 1 0 0

?


---------------
Le site de ma maman
Reply

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.

Reply

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.


Message édité par Cherrytree le 28-12-2003 à 11:56:58

---------------
Le site de ma maman
Reply

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).


---------------
Le site de ma maman
Reply

Marsh Posté le 28-12-2003 à 11:56:07   

Reply

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.


 


1 1 1 1 1 x
1 0 0 0 1 0
1 0 1 0 0 0
1 0 0 0 1 0
1 1 1 1 1 0


 
Si je commence en X, ton heuristique arrive à un résultat impossible.

Reply

Marsh Posté le 28-12-2003 à 12:01:51    

Ace17 a écrit :


 
Ouais mais je cherche pas un algo de calcul direct de la meilleure solution, je cherche des idées pour optimiser une solution naive.


Adapter l'algo de Floyd Djikstra?? En considerant chaque point de ta matrice comme le sommet d'un graphe de taille n*n...
 
 
A+,


Message édité par gilou le 28-12-2003 à 12:11:18

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 28-12-2003 à 12:08:09    

gizmo a écrit :


 


1 1 1 1 1 x
1 0 0 0 1 0
1 0 1 0 0 0
1 0 0 0 1 0
1 1 1 1 1 0


 
Si je commence en X, ton heuristique arrive à un résultat impossible.


Parce qu'il manque la condition d'arrêt.
 
Mais je suis d'accord que c'est pas génial.


Message édité par Cherrytree le 28-12-2003 à 12:08:35

---------------
Le site de ma maman
Reply

Marsh Posté le 28-12-2003 à 13:23:19    

gilou 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+,


 
Ah voila, c'est celui la que je cherchait. Y'en a un autre aussi je crois  [:zebra33]

Reply

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...

Reply

Marsh Posté le 02-01-2004 à 18:30:36    

cherrytree a écrit :


OK, donc il existe toujours un chemin (et donc un chemin optimal).


 
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...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed