CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Dijkstra particulier en Java

Raphy55
Raphy55
Niveau 10
02 avril 2013 à 12:58:05

Bonjour. :hap:

Je viens solliciter votre aide pour coder en Java l'algorithme de Dijkstra, mais pas celui qu'on trouve partout sur Google avec les distances en fait. Moi j'ai un graphe, où les noeuds représentent les pages d'un livre. Et sur chaque noeud j'attribue un poids : 0 pour la 1ère page (la page mère), 1 pour les pages filles, 2 ... etc... jusqu'à la dernière page : la page 350. Et je dois sortir le chemin le plus court pour arriver à la page 350.

Avec mes collègues nous avons déjà la liste des pages ainsi que l'attribution correcte des poids par noeud, il nous reste plus qu'à faire la méthode pour sortir le chemin le plus court, mais on n'y arrive pas.

Merci d'avance pour votre aide. :hap:

Pseudo supprimé
Pseudo supprimé 02 avril 2013 à 13:48:48

C'est quoi la différence entre un poids et une distance, d'un point de vue algorithmique ?! Qu'est-ce qui change entre appliquer une "distance" représentant le poids d'une page n vers n+1 et une distance "normale" ?
C'est quoi en fait ton problème ?

Raphy55
Raphy55
Niveau 10
02 avril 2013 à 14:44:46

En fait c'est au niveau du code que je sais pas trop comment faire. Une fois que j'ai le poids pour un chemin, comment lui faire comprendre que je veux maintenant calculer le poids pour le chemin à partir du noeud frère ? Je sais pas si tu vois ce que je veux dire...

Pseudo supprimé
Pseudo supprimé 02 avril 2013 à 15:20:33

Tu as bien compris le fonctionnement de l'algo, pour commencer ? C'est plutôt simple de le transcrire une fois que tu as saisi le principe. N'hésite pas à relire ton cours/la page wikipédia :)

Sinon, si tu galères, tu peux toujours utiliser une classe qui le fera à ta place : http://www.cs.nyu.edu/~vs667/development/~DijkstraAlgorithm/

Raphy55
Raphy55
Niveau 10
02 avril 2013 à 15:33:32

J'ai pas de cours là-dessus, et la page Wikipedia... c'est justement elle que je n'arrive pas bien à comprendre, enfin... je comprends le principe mais pour mon post précédent je ne comprends pas. Merci pour le lien, mais c'est assez dur de comprendre un code étranger...

Rikkel
Rikkel
Niveau 9
02 avril 2013 à 20:25:28

C'est quoi la différence fondamentale entre dijkstra et A*? :question:

godrik
godrik
Niveau 30
02 avril 2013 à 20:35:50

Rikkel, dijkstra calcule la distance (et le plus court chemin) entre un point et tous les autres points du graphe.

A* est utile pour calculer la distance (et le plus court chemin) entre un point et un point destination. A* est plus rapide que dijkstra si tu as une bonne estimation (borne inferieur) de la distance a la destination. Cela permet de ne pas considerer les chemin "qui s'eloigne" de la destination au debut de la recherche.

Rikkel
Rikkel
Niveau 9
02 avril 2013 à 21:09:21

D'accord merci ! Je sais que jpourris un peu le topic avec mon HS mais... Si ça gène l'auteur vous pouvez supprimer mon post, mais est-ce que A* est efficace pour calculer la distance entre deux points qui changent de positions à chaque fois? (par exemple une course poursuite entre deux agents virtuels dans un labyrinthe)

godrik
godrik
Niveau 30
02 avril 2013 à 21:18:53

rikkel, oui. La prochaine fois, fais un autre topic!

Raphy55
Raphy55
Niveau 10
03 avril 2013 à 13:39:10

En fait, que ce soit avec Dijkstra ou un autre algorithme, mon but reste le même :

:d) Sortir la liste de pages constituant le chemin le plus court pour arriver à la page 350. :g)

Le graphe c'est celui-là : http://www.projectaon.org/en/svg/lw/01fftd.svgz
Donc la page 001 a un poids de 0. Les pages 141, 085 et 275 ont un poids de 1 etc...

Pour l'instant quand on exécute notre code, on a la liste des pages qui défilent, avec les poids correspondants. Et là il nous manque la méthode qui sort le chemin le plus court. Sur internet je n'ai trouvé que des trucs compliqués, où ils mettent TOUT leur code, avec leur graphe et tout... Personne ne donne juste la méthode vous voyez. C'est ça que j'aimerais avoir.

Help please. :cute:

Pseudo supprimé
Pseudo supprimé 03 avril 2013 à 15:08:49

La méthode est expliquée dans le premier paragraphe de la page wikipédia. L'alogrithme est donné dans le dernier paragraphe. Et il n'est pas compliqué du tout.

Raphy55
Raphy55
Niveau 10
03 avril 2013 à 17:19:06

Quand je disais méthode c'était pour fonction (en Java quoi). :hap:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment