Itineraire le plus court

Soyez le premier à donner votre avis sur cette source.

Vue 39 347 fois - Téléchargée 20 234 fois

Description

Voici un logiciel fait dans le cadre d'un projet d'étude. C'est un logiciel qui permet de tester plusieurs algorithmes de recherche du plus court chemin dans un graphe de ville. Il possede une interface graphique trés complete et relativement aisée.

Les 4 derniers utilisent une heuristique a savoir la distance a vol d'oiseau entre une ville et l'arrivée
On peut évidemment rajouter ses propres algos, il suffit de créér une classe qui hérite de AlgoItineraire et de la placer dans le package Algos (voir les algos deja dispo)

Il y a 2 representations au choix du graphe : avec une matrice ou avec des listes d'adjacences. Voir le package Graphe.
    • L'Interface graphique : **


-Choix de l'algo et de la representation:
la liste des algos apparait dans la combo "Algo" et les representations du graphe dans "Repr."

-Chargement/Sauvegarde :
permet de sauvegarder son travail. 2 exemples sont fournis : la france et le sud de la france

-Carte :
C'est la representation graphique du graphe. On peut changer le style d'affichage en selectionnant la classe dans la combo box "Gfx".
On peut mettre une image de fond en cliquant sur "Fond"
Pour faire plus ou moins apparaitre le fond, faites glisser le slider sur la gauche de la carte
On peut deplacer la ville en cliquant une fois dessus avec le bouton droit et en recliquant dessus pour valider la nouvelle position
Pour selectionner une ville (voir edition des distances), cliquez avec le bouton gauche sur une ville

-Panel d'Edition :
Pour ajouter une ville, tapez son nom dans le champ "Nom" du panel edition puis cliquez sur "Ajoutez" puis placez sur la carte la ville a la position voulue
Pour supprimmer une ville, cliquez sur "Effacer" puis selectionnez la ville sur la carte

-Pour entrer les distances :
Cliquez sur une ville de la carte avec le bouton gauche. Dans la table Distances, modifiez les distances entre la ville selectionnée et les autres de la carte.
Note : si la distance est positive : veut dire qu'il existe un lien physique entre les 2 villes, c'est la distance exacte (un lien apparait sur la carte)
si la distance est negative : c'est l'estimation de la distance a vol d'oiseau entre les 2 villes non reliées physiquement (pas affiché sur la carte). C'est l'heuristique : utilisée par les 4 derniers algos

-Echelle :
pour ne pas s'embeter a entrer les distances a la main, on peut definir une echelle c'est a dire definir combien une distance en pixel sur la carte represente en réalité en km.
2 methodes :
-vous entrez manuellement combien x pixels representent de km dans les champs du panel Echelle puis vous validez en appuyant sur ok (calcule toutes les distances)
-vous étalonnez l'echelle : cliquez sur étalonner : cliquez ensuite avec le bouton gauche sur la carte et tracez une droite. Cette droite servira de reference pour l'echelle. Car en effet, en entrant la distance en km que represente cette droite en réalité dans le champ "representent" et en cliquant a la fin sur "ok", vous definissez l'echelle.

Voila

Conclusion :


Marche uniquement sous Java 5, pas encore testé sous Linux, si quelqu'un pouvait...

Pour compiler :
sous Windows lancez "compile.bat"

Pour lancer :
sous Windows : lancez "run.bat"
ou la commande java Projet.projet

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
17 février 2009

Bonjour,
je serai particulièrement intéressé par la source "complète", malheureusement le lien "http://gbouchon1.free.fr/down/PlusCourt.zip" ne fonctionne plus . Est il possible de le réactiver ?
D'avance un très grand merci
louidort
Messages postés
11
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
19 janvier 2011

Merci pour votre code je viens de le prendre je vais le tester dans le cadre de mon projet sur l'optimisation je crois que c'est une bonne source
Messages postés
10
Date d'inscription
dimanche 8 mai 2005
Statut
Membre
Dernière intervention
8 novembre 2011

salut, c'est une bonne source mais bon il y a quand même parfois des choses assez bizard. Par exemple la stacktrace ci-dessous :

Exception in thread "main" java.lang.NullPointerException
at javax.swing.DefaultComboBoxModel.(DefaultComboBoxModel.java:53)
at javax.swing.JComboBox.(JComboBox.java:177)
at UserInterface.ActionPanel.(ActionPanel.java:72)
at UserInterface.MainFrame.(MainFrame.java:52)
at Projet.Main.(Main.java:58)
at Projet.projet.main(projet.java:35)

Je soupçonne la fonction 'private String[] getAlgos()' d'être :S (incompréhensible), ensuite les exceptions gérées de la manière suivante, ne me semble pas une très bonne idée.

try{
...
}catch(Exception b) {}

En gros ce code est non réutilisable ! Vous avez réussit à vous en sortir à vous deux mais je vous défit de reprendre ce projet dans 1 an par exemple, je suis sur que vous seriez complètement perdus.

Mise à part ça, merci quand même pour cette source ;)
Messages postés
1
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
12 avril 2007

Ce code est très bon. Il m'est d'une très grande utilité puisque le projet qui m'a été donné est presque pareil. Mais j'ai envoyé un mail à Bouchon et il n'a pas repondu. Je dois rendre le projet dans une semaine, j'ai vraiment chaud.


Bouchon consulte un peu ta boite
Je suis à Abidjan
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

sympas la source, j'ai pas tous regardé (trop dur pour mes neurones vivement ce que je me couche :P) mais jusque la c'est complèt avec pas mal de commentaires.

1er ptit message perso : newtito evite de troller :P surtout en guise de premier message....

2eme ptit message perso : scusé les admin's mais c'est normal que l'édition des sources par le site merde casi tt le temps??? enfaite il ne reconnait pas les retours à la ligne donc comprenez que c'est assez désagréable à lire...
Afficher les 21 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.