9
votes

Façon efficace de pratiquer des algorithmes de théorie des graphes

Je viens de lire sur le First-première recherche algorithme dans l'introduction aux algorithmes livre et j'ai simulé l'algorithme sur papier. Ce que j'aimerais faire maintenant, c'est de la mettre en œuvre en code pour une pratique supplémentaire.

Je pensais à mettre en œuvre toutes les structures de données à partir de zéro (le liste de adjacence , la "Couleur", "Distance" et "Parent" Tableaux) Mais alors je me suis rappelé qu'il y a actuellement des bibliothèques de graphique, comme le Boost Bibliothèque de graphique et d'autres graphique API en Python. J'ai également essayé de rechercher des problèmes liés à BFS sur uva et SPHERE JUGE Online Mais je ne peux pas dire quels problèmes nécessiteraient une solution BFS.

Ma question est ce qui serait la voie la plus indolore de pratiquer ces algorithmes de graphes (non seulement limitées à BFS, mais sera également utile lorsque je souhaite mettre en œuvre DFS , Dijkstra < / a>, Floyd-Warshall , etc.). Les sites avec des problèmes de pratique sont les bienvenus.


0 commentaires

5 Réponses :


9
votes

Je pense personnellement que le meilleur moyen de comprendre ceux qui mettraient la représentation graphique vous-même de zéro.

D'une part, cela vous montrerait des mises entière de mise en œuvre réelles à partir desquelles vous apprenez pourquoi ou pourquoi pas un algorithme particulier pourrait être intéressant / bon / efficace / efficace / quoi que ce soit. D'autre part, je pense que comprendre des graphiques et leur utilisation réelle de la vie, y compris ses implications (récursivité, performance / évolutivité, applications, alternatives, ...), est facilitée à travers l'approche ascendante.

Mais peut-être que c'est juste moi. Ce qui précède est un goût très personnel.


0 commentaires


1
votes

Je suis d'accord avec Balpha. La meilleure façon de vraiment apprendre et comprendre des algorithmes est de faire la mise en œuvre. Il suffit de choisir un algorithme et de le mettre en œuvre. Lorsque vous atteignez un point où vous êtes coincé ou êtes incertain, consultez un certain nombre d'exemples existants. Vous serez alors en mesure de comparer votre propre pensée avec celle des autres d'un poste de compréhension au lieu d'accepter simplement ce qui est offert.

Une fois que vous avez appris ce que vous voulez, le meilleur moyen de consolider votre compréhension est d'essayer d'en apprendre ou de la décrire à quelqu'un d'autre. Vous pourriez avoir des personnes prêtes à vous écouter ou à tout le moins que vous pourriez écrire une entrée de blog pour les personnes nouvelles de l'algorithme que vous venez d'étudier.

Mais si vous recherchez «indolore», vous devriez peut-être rester dégagés d'algorithmes; -)


1 commentaires

Juste pour le compte rendu, la citation devrait être autour de "la plus indolore"



0
votes

Ce site pourrait vous aider

Vous avez une description de chaque problème sur les problèmes d'ACM. Vous pouvez voir la catégorie de chaque problème et indiquer pour le résoudre. Juste parcourir les problèmes liés au graphique. Bon conseil est d'utiliser ces conseils que si vous avez essayé de résoudre le problème vous-même et a échoué.


0 commentaires

0
votes

Visualisation de certains algorithmes de chemin les plus courts sur des données réelles, où la zone explorée est affichée en jaune:


0 commentaires