Explication détaillée d'exemples d'arbres couvrant minimum
Arbre couvrant minimum - Algorithme Prim et algorithme de Kruskal
L'arbre couvrant minimum d'un graphe est un sous-graphe connexe acyclique contenant tous les sommets, un graphe pondéré L'arbre couvrant minimum de est son arbre couvrant avec le plus petit poids.
Algorithme Prim
Une brève description de l'algorithme
1). Entrée : un graphe connecté pondéré, où l'ensemble des sommets est V et l'ensemble des arêtes est E
2). new = {x}, où x est n'importe quel nœud (point de départ) dans l'ensemble V, Enew = {}, est vide
; 3). Répéter Les opérations suivantes sont effectuées jusqu'à ce que Vnouveau = V :
a Sélectionnez le bord ensemble E, où u est l'ensemble des éléments dans Vnouveau, et v n'est pas dans l'ensemble Vnouveau, et v∈V (s'il y a plusieurs arêtes qui remplissent les conditions susmentionnées , c'est-à-dire avoir le même poids, alors n'importe lequel d'entre eux
b Ajoutez v à l'ensemble Vnouveau et ajoutez le < u, v> bord à l'ensemble Enouveau
4). new pour décrire l'arbre couvrant minimum résultant.
L'illustration suivante décrit l'algorithme
Description | Pas facultatif | Facultatif | Sélectionné (Vnouveau | )|
---|---|---|---|---|
|
- | - | - | |
| est arbitrairement choisi comme point de départ. Les sommets A, B, E et F sont reliés à D par une seule arête. A est le sommet le plus proche de D, donc A et l'arête correspondante AD sont mises en surbrillance. C, G | A, B, E, F | D | |
| ou A sommet le plus proche. B est 9 de D, 7 de A, E est 15 et F est 6. Par conséquent, F est le plus proche de D ou A, donc le sommet F et l'arête correspondante DF sont souligné express. C, G | B, E, F | A, D | |
![]() | avec une distance de 7 de A est mis en évidence. C | B, E, G | A, D, F | |
Dans la situation actuelle, vous pouvez choisir entre C, E et G. La distance entre C et B est de 8, la distance entre E et B est de 7, et la distance entre G et F vaut 11. E est le plus proche, donc le sommet E et l'arête correspondante BE sont mis en évidence. | Aucun | C, E, G | A, D, F, B | |
|
Ici, il y a des options pour choisissez parmi Les sommets sont uniquement C et G. La distance entre C et E est de 5, et la distance entre G et E est de 9, alors sélectionnez C et fusionnez-le avec le côté EC sont mis en évidence ensemble. | Aucun | C, G | A, D, F, B, E |
VertexG est le seul gauche Le sommet est 11 de F, 9 de E, et E est le plus proche, il est donc mis en surbrillance pour indiquer G et le bord correspondantEG. | Aucun | G | A, D, F, B, E, C | |
Maintenant, tous les sommets ont été sélectionnés, verts dans le photo La partie est l'arbre couvrant minimum du graphe connecté. Dans cet exemple, la somme des poids de l'arbre couvrant minimum est de 39. | Aucun | Aucun | A, D, F, B, E, C, G |
Pour l'implémentation de l'algorithme, veuillez vous référer à la quatrième édition de "Algorithm", ou "Data Structure - Java Language Implementation" de Tsinghua Publishing House (la méthode d'implémentation est plus claire et plus simple)
Algorithme de Kruskal
1. 🎜>
L'algorithme de Kruskal est un algorithme utilisé pour trouver l'arbre couvrant minimum, publié par Joseph Kruskal en 1956. Il existe également l'algorithme Prim et l'algorithme Boruvka utilisés pour résoudre le même problème. Les trois algorithmes sont des applications d’algorithmes gloutons. La différence avec l'algorithme de Boruvka est que l'algorithme de Kruskal est également efficace lorsqu'il y a des arêtes de même poids dans le graphique.
2. Description simple de l'algorithme
1. ). N'oubliez pas qu'il y a v sommets et e arêtes dans Graph
2). Créez un nouveau graphe Graphnew, et Graphnew. a le graphe d'origine Les mêmes e sommets, mais pas d'arêtes
3). Trier toutes les e arêtes du graphe d'origine Graphique de petit à grand par poids
4). Boucle : commencez par l'arête ayant le plus petit poids et parcourez chaque arête jusqu'à ce que tous les nœuds du graphe soient dans le même composant connexe
si cette arête est connectée. Les deux nœuds du graphe Graphnouveau ne sont pas dans le même composant connexe
Description de la légende :
Tout d'abord, dans la première étape, nous avons un graphe Graphique avec plusieurs points et arêtes
Trier les longueurs de tous les arêtes et utiliser les résultats triés comme base pour notre sélection d’arêtes. Ici encore l’idée d’un algorithme glouton se reflète.
Le tri des ressources sélectionne les ressources locales optimales. Une fois le tri terminé, nous prenons les devants dans la sélection du bord AD. De cette façon, notre image devient l'image de droite
Recherchez les changements restants. Nous avons trouvé CE. Le poids ici est également de 5
et ainsi de suite on trouve 6, 7, 7, c'est-à-dire DF, AB, BE.
Continuez à sélectionner BC ou EF bien que le côté de longueur 8 soit maintenant le plus petit côté non sélectionné. Mais maintenant, ils sont connectés (BC peut être connecté via CE, EB, un EF similaire peut être connecté via EB, BA, AD, DF). Inutile donc de les sélectionner. Des BD similaires sont également connectés (les lignes de connexion dans l'image ci-dessus sont représentées en rouge).
Au final, il ne reste que EG et FG. Bien sûr, nous avons choisi EG.
Pour l'implémentation de l'algorithme, veuillez vous référer au code de la quatrième édition de "Algorithm".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser PHP pour générer des codes de vérification d'image actualisables. Avec le développement d'Internet, afin de prévenir les attaques malveillantes et les opérations automatiques des machines, de nombreux sites Web utilisent des codes de vérification pour la vérification des utilisateurs. Un type courant de code de vérification est le code de vérification d'image, qui génère une image contenant des caractères aléatoires et oblige l'utilisateur à saisir les caractères corrects avant de continuer. Cet article explique comment utiliser PHP pour générer des codes de vérification d'image actualisables et fournit des exemples de code spécifiques. Étape 1 : Créer une image de code de vérification Tout d'abord, nous devons créer une image de code de vérification

La génération de données aléatoires est très importante dans le domaine de la science des données. Lors de la création de prévisions de réseaux neuronaux, de données boursières, etc., la date est généralement utilisée comme l'un des paramètres. Nous devrons peut-être générer des nombres aléatoires entre deux dates à des fins d'analyse statistique. Cet article montrera comment générer k dates aléatoires entre deux dates données à l'aide des modules random et datetime. Datetime est la bibliothèque intégrée de Python pour la gestion du temps. D'un autre côté, le module aléatoire aide à générer des nombres aléatoires. On peut donc combiner les modules random et datetime pour générer une date aléatoire entre deux dates. La syntaxe random.randint (start, end, k) random fait ici référence à la bibliothèque aléatoire Python. La méthode Randint utilise trois éléments importants

iFlytek a mis à niveau la fonction de procès-verbal de réunion, qui peut directement convertir les expressions orales en brouillons écrits, et l'IA peut résumer les procès-verbaux de réunion en fonction des enregistrements. L'IA peut vous aider à terminer la rédaction des procès-verbaux de réunion. Le 31 août, la version Web d'iFlytek a été mise à niveau, ajoutant une fonction d'enregistrement en temps réel côté PC, qui peut utiliser l'intelligence artificielle pour générer intelligemment des procès-verbaux de réunion. Le lancement de cette fonction améliorera considérablement l'efficacité des utilisateurs dans l'organisation du contenu et le suivi des éléments de travail clés après les réunions. Pour les personnes qui assistent souvent à des réunions, cette fonction est sans aucun doute un outil très pratique qui peut économiser beaucoup de temps et d'énergie. Le scénario d'application de cette fonction consiste principalement à convertir les enregistrements sur le PC en texte et à générer automatiquement des procès-verbaux de réunion, dans le but de fournir. utilisateurs avec la meilleure qualité des produits avec d'excellents services et la technologie la plus avancée pour améliorer rapidement l'efficacité du bureau.

La génération de langage naturel est une technologie d'intelligence artificielle qui convertit les données en texte en langage naturel. À l’ère actuelle du Big Data, de plus en plus d’entreprises ont besoin de visualiser ou de présenter des données aux utilisateurs, et la génération de langage naturel est une méthode très efficace. PHP est un langage de script côté serveur très populaire qui peut être utilisé pour développer des applications Web. Cet article présentera brièvement comment utiliser PHP pour la génération de base de langage naturel. Présentation de la bibliothèque de génération de langage naturel La bibliothèque de fonctions fournie avec PHP n'inclut pas les fonctions requises pour la génération de langage naturel, donc

La visualisation des données est essentielle pour une compréhension et une présentation efficaces des informations. Parmi les nombreux types de graphiques disponibles, les graphiques gaufrés constituent une nouvelle manière d'afficher des données dans une structure en forme de grille avec des tuiles carrées. Le puissant module Python PyWaffle facilite le développement de graphiques gaufrés, similaires à de nombreuses méthodes de calcul et d'analyse de données. Dans cet article, nous verrons comment créer un graphique gaufré à l'aide du module Python sophistiqué PyWaffle. Installons PyWafle et voyons comment l'utiliser pour visualiser des données catégorielles. Exécutez la commande suivante dans votre cmd pour installer la bibliothèque, puis importez-la dans votre code. La traduction chinoise de pipinstallpywaffleExample1 est : Exemple 1 Dans cet exemple, nous

Comment générer un code QR avec limite de temps en utilisant PHP ? Avec la popularité des paiements mobiles et des billets électroniques, les codes QR sont devenus une technologie courante. Dans de nombreux scénarios, nous pouvons avoir besoin de générer un code QR avec une limite de temps, qui deviendra invalide même après un certain temps. Cet article explique comment utiliser PHP pour générer un code QR à durée limitée et fournit des exemples de code à titre de référence. Installation de la bibliothèque PHPQRCode Pour utiliser PHP pour générer des codes QR, nous devons d'abord installer la bibliothèque PHPQRCode. Cette bibliothèque

Que faire si la table des matières Word est générée de manière incorrecte Avec le développement de la technologie, les documents électroniques sont devenus un élément indispensable de notre travail et de nos études quotidiens. Lors de l'édition de documents électroniques, notamment d'articles ou de documents longs, la génération d'une table des matières est une étape très importante. La table des matières peut permettre aux lecteurs de trouver plus facilement le contenu et la structure de l'article et d'améliorer l'efficacité de la lecture. Cependant, nous rencontrons parfois des problèmes lors du processus de génération du catalogue, tels que des erreurs de génération de catalogue, un ordre désordonné, etc. Alors, si le répertoire de mots est généré de manière incorrecte, comment devons-nous le résoudre ? tête

Comment générer un livre d'erreurs pour répondre aux questions en ligne À l'ère de l'information d'aujourd'hui, répondre aux questions en ligne est devenu une tâche courante pour de nombreux étudiants et enseignants. Les mauvaises questions ont toujours été l'un des problèmes du processus d'apprentissage. De nombreuses personnes espèrent pouvoir générer facilement de mauvais livres de questions pour les réponses en ligne afin de mieux réviser et maîtriser leurs connaissances. Cet article expliquera comment réaliser la fonction de génération du livre d'erreurs de réponses en ligne via la programmation et fournira des exemples de code spécifiques. Étape 1 : Créez une interface Web pour générer des livrets de réponses et d'erreurs en ligne. Vous avez besoin d'une interface Web pour afficher les questions et réponses. Peut utiliser HTML
