Rechercher : dans
Par :

Chemin minimale entre deux ville

Dernière réponse le 18 nov 2009 à 20:09:15 zineb_iga, le 10 nov 2009 à 21:27:28 
 Signaler ce message aux modérateurs

Bonjour,
j'ai un mini projet de l'intelligence artificielle, ce projet consiste d'une recherche du chemin minimale entre deux villes sur une carte routière par les algorithmes de recherche aveugles et heuristique.
si vous avez une idée sur ça aidez moi SVP merci d'avance

Configuration: Windows XP
Safari 532.0

Meilleures réponses pour « chemin minimale entre deux ville » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
[Windows] Modifier le chemin de Mes documents, Mes images, etc. Voir1 - Mes documents, mes images, ma musique, etc. 2 - Autres répertoires 2.1 Avec le logiciel TweakUI (Sous XP seulement) 2.2 À la main 1 - Mes documents, mes images, ma musique, etc. Sous XP, pour changer l'adresse de "Mes documents" : ...
[Windows XP] Configuration minimale VoirQuelle est réellement la configuration minimale nécessaire pour l'installation de Windows XP sur un PC, qui permettrait de travailler confortablement avec une suite bureautique et surfer sur le web ? La réponse est ICI
Télécharger Microsoft .NET Framework 2.0 (x86) VoirLe package redistribuable de Microsoft .NET Framework 2.0 installe le runtime .NET Framework et les fichiers associés requis pour l'exécution d'applications développées pour le .NET Framework 2.0. Le .NET Framework 2.0 fournit une évolutivité et...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...
Connecteur PS/2 VoirConnecteur PS/2 Le connecteur PS/2 (au format mini-DIN6) est principalement utilisé sur les ordinateur pour la connexion du clavier et de la souris. Brochage Broche Désignation 1 Horloge 2 Masse 3 ...

1

mamiemando, le 10 nov 2009 à 23:49:47
  • +1

En fait c'est un peu dommage de faire de la recherche pour un problème qui se résout en temps polynomial avec l'algorithme de dijkstra.
http://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra

Une première approche peut être de s'inspirer d'un algorithme de path finding (utilisé par exemple dans les jeux vidéos pour déplacer une unité entre deux points).
http://fr.wikipedia.org/wiki/Recherche_de_chemin

En recherche aveugle il faut pouvoir calculer à chaque fois qu'on atteint un carrefour :
- la direction globale de chaque route qui part de ce carrefour
- la direction globale à suivre pour atteindre la destination (direction cible = objectif de l'heuristique)
- choisir la route qui se rapproche le plus de la direction cible (heuristique)

Tu peux déterminer la direction (l'angle sur la boussole) d'une route à partir de la position du carrefour courant (x,y) et de la position du carrefour qui suit (x',y') : si x != x' : angle = tan((y'-y)/(x'-x)) : cette formule calcule l'angle par rapport à la ligne ouest/est.

Tu peux ainsi calculer l'angle suivi par chaque route et calculer celui qui se rapproche le plus de l'angle cible. Une fois ce choix fait tu fais un mouvement (au sens propre et au sens "méta heuristique"). Ceci signifie que tu fais évoluer les variables de sorte à te rapprocher de ton objectif. On peut en outre mémoriser les positions (les carrefours) par lesquelles on est passé.

À ce stade, ça risque de marcher la plupart du temps si la carte n'est pas trop un "labyrinthe". Mais supposons qu'on applique une telle heuristique dans un labyrinthe, tu risques rapidement de tourner en rond. C'est là qu'il faut utiliser des ruses provenant du monde des méta heuristiques, par exemple un mécanisme tabou. Cela consiste à mémoriser une liste de choix faits par le passé en vue de ne pas les refaire par la suite. Ainsi si tu tournes en rond, quand tu tomberas sur un carrefour que tu as déjà croisé, tu prendras une autre direction (sous entendu : la direction qui paraît la meilleure sera taboue).

En espérant que ça t'aide,
Bonne chance

Répondre à mamiemando

2

zineb_iga, le 11 nov 2009 à 00:25:07

Merci de votre réponse, les 2 liens sont bcp très intéressants mais il y a quelque difficulté pour commencer, je sais pas vraiment par quoi je vais commencer, si possible vous m'expliqué brièvement les étapes que je vais suivre pour réussir mon mini projet car je viens de commancer l'etude de la matiere d'inteligence artificielle j'ai pas bien avancé.
merci infiniment

Répondre à zineb_iga

3

mamiemando, le 11 nov 2009 à 23:09:02
  • +1

Un algorithme de Dijkstra est la manière idéale de répondre au problème mais ne répond pas à la question car il n'est pas aveugle (il se base sur la carte complète si tu préfères), donc même si c'est la manière la plus efficace de calculer le chemin optimal entre deux points, ça ne répond pas exactement à la question.

Je t'ai déjà donné un début d'algorithme dans mon message précédent. Lui se base sur la position du carrefour auquel on se trouve et le prochain carrefour où l'on arrivera. Il est donc aveugle dans la mesure ou il ne voit qu'à un bond là ou il va arriver. Il est heuristique car il part du principe que "plus une route est dans la bonne direction, plus on elle a de chance de nous emmener à destination".

Bonne chance

Répondre à mamiemando

4

zinbe_iga, le 18 nov 2009 à 18:42:45

Ok Merci de votre aide :)

Répondre à zinbe_iga

5

 mamiemando, le 18 nov 2009 à 20:09:15

Eh bien, de rien, et bonne continuation :-)

Répondre à mamiemando