ホームページ Java &#&チュートリアル 最小全域ツリーの例の詳細な説明

最小全域ツリーの例の詳細な説明

Jun 25, 2017 pm 01:30 PM
最小 生成する

最小スパニング ツリー - プリムのアルゴリズムとクラスカルのアルゴリズム

グラフのスパニング ツリーは、すべての頂点を含む非巡回接続サブグラフであり、重み付きグラフの最小スパニング ツリーは、最小の重みスパニング ツリーを持つグラフです。

プリムアルゴリズム

アルゴリズムの簡単な説明

1) 入力: 頂点セットが V でエッジセットが E である重み付き接続グラフ。 2). 初期化: Vnew

= {x}、x は集合 V 内の任意のノード (開始点)、E

new = {} は空です。3) 以下の操作を繰り返します。 V new = V まで:

a. 集合 E 内の最小の重みを持つエッジを選択します。ここで、u は集合 V

new 内の要素であり、v は集合 E に含まれていません。 set Vnew、および v∈V (上記の条件を満たし、同じ重みを持つエッジが複数ある場合は、そのうちの 1 つを任意に選択できます)

b をセット Vnew に追加します。 edge がセット Enew に追加されます 4) 出力: セット Vnew

と E

new を使用して、結果の最小スパニング ツリーを記述します。

以下はアルゴリズムの凡例の説明です

凡例

説明

オプションではありません)これは、元の加重接続グラフです。各エッジの片側にある数字は重量を表します。頂点 D は単一のエッジによって はと対応するエッジ または はDから9、F
オプション 選択済み (V新規)
は開始点として恣意的に選択されました。頂点 A

BE

F
D に接続されています。 ADに最も近い頂点であるため、AADが強調表示されます。次へ 頂点は距離 DA で最も近い頂点です。 B
A

から7、Eは15、F

は6です。したがって、
DまたはAに最も近いため、頂点Fと対応するエッジDFが強調表示されます。アルゴリズムは引き続き上記のステップを繰り返します。距離Aが7である頂点Bが強調表示されます。 CB、E、G A、D、F
現在の状況では、CEGから選択できます。 CBからの8、EBからの7、GFからの11です。 Eが最も近いので、頂点Eと対応するエッジBEが強調表示されます。 なし C、E、G A、D、F、B

ここで、選択できる頂点は のみです。 CGCEの間の距離は5、GEの間の距離は9であるため、Cが選択され、エッジECとともに強調表示されます。 なし C、G A、D、F、B、E

頂点G は唯一残っている頂点です。 Fからの距離は11、Eからの距離は9、そしてEが最も近いので、Gと対応するエッジEGが強調表示されます。 None G A、D、F、B、E、C

これで、すべての頂点が選択されました、写真の緑色部分は、接続されたグラフの最小スパニング ツリーです。この例では、最小スパニング ツリーの重みの合計は 39 です。 なし なし A、D、F、B、E、C、G

アルゴリズムの実装については、『アルゴリズム』の第 4 版、または清華出版社の『データ構造 - Java 言語実装』を参照してください (実装方法はより明確で簡単です)

クラスカル アルゴリズム

1. 概要

クラスカルのアルゴリズムは、1956 年に Joseph Kruskal によって公開された、最小スパニング ツリーを見つけるために使用されるアルゴリズムです。同じ問題を解決するために使用される Prim アルゴリズムと Boruvka アルゴリズムもあります。 3 つのアルゴリズムはすべて、貪欲アルゴリズムの応用です。 Boruvka のアルゴリズムとの違いは、Kruskal のアルゴリズムはグラフ内に同じ重みを持つエッジが存在する場合にも有効であることです。

2. アルゴリズムの簡単な説明

1) Graph

2) に v 個の頂点と e 個のエッジがあることを思い出してください。 , Graphnew には元のグラフに同じ e 頂点がありますが、エッジはありません

3)。元のグラフ内のすべての e エッジを重みで小さいものから大きいものに並べ替えます

4)。最小のエッジは、グラフ内のすべてのノードが同じ連結コンポーネント内に収まるまで、各エッジを横断し始めます。辺のエッジに接続されている 2 つのノードが、Graph

new

内に存在しません。

到 このエッジをグラフに追加してグラフにします

凡例の説明:

まず最初に、絵グラフがあります。いくつかの点とエッジです

すべてのエッジのすべてのエッジ 長さによって並べ替え、並べ替えられた結果をエッジの選択の基礎として使用します。ここでも貪欲なアルゴリズムの考え方が反映されています。

用用到综合合) 局所最適リソースの選択 ソートが完了したら、最初にエッジADを選択します。このようにして、私たちの写真は右側の写真になります

残りの変更を探してください。 CEを見つけました。ここの重みも 5

などとすると、6、7、7、つまり DF、AB、BE が見つかります。

次に、BC または EF の選択を続けますが、長さ 8 の辺が選択されていない最小の辺になります。しかし、現在は接続されています (BC は CE、EB、同様の EF は EB、BA、AD、DF を介して接続できます)。したがって、それらを選択する必要はありません。同様の BD も接続されています (上の図の接続線は赤で示されています)。

🎜結局、EGとFGだけが残りました。もちろんEGを選びました。 🎜🎜🎜🎜🎜🎜🎜🎜アルゴリズムの実装については、『アルゴリズム』第4版のコードを参照してください。 🎜🎜🎜

以上が最小全域ツリーの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP を使用して更新可能なイメージ検証コードを生成する方法 PHP を使用して更新可能なイメージ検証コードを生成する方法 Sep 13, 2023 am 11:54 AM

PHP を使用して更新可能な画像検証コードを生成する方法 インターネットの発展に伴い、悪意のある攻撃や機械の自動動作を防ぐために、多くの Web サイトでユーザー認証に検証コードが使用されています。確認コードの一般的なタイプの 1 つは画像確認コードです。これは、ランダムな文字を含む画像を生成し、続行する前にユーザーに正しい文字を入力するように要求します。この記事では、PHP を使用して更新可能なイメージ検証コードを生成する方法を紹介し、具体的なコード例を示します。ステップ 1: 確認コード イメージを作成する まず、確認コード イメージを作成する必要があります。

Python を使用して 2 つの日付の間で k 個のランダムな日付を生成するにはどうすればよいですか? Python を使用して 2 つの日付の間で k 個のランダムな日付を生成するにはどうすればよいですか? Sep 09, 2023 pm 08:17 PM

ランダム データの生成は、データ サイエンスの分野において非常に重要です。ニューラル ネットワークの予測や株式市場データなどの構築では、通常、日付がパラメーターの 1 つとして使用されます。統計分析のために 2 つの日付の間で乱数を生成する必要がある場合があります。この記事では、random モジュールと datetime モジュールを使用して、指定された 2 つの日付の間で k 個のランダムな日付を生成する方法を示します。Datetime は、時刻を処理するための Python の組み込みライブラリです。一方、random モジュールは乱数の生成に役立ちます。したがって、random モジュールと datetime モジュールを組み合わせて、2 つの日付の間のランダムな日付を生成できます。構文random.randint (start, end, k) ここでのrandomは、Pythonのランダムライブラリを指します。 randint メソッドでは 3 つの重要なメソッドを使用します。

退社前にちょっとした会議のために上司に呼び止められる心配はもうありません。AI アシスタントが自動的に議事録を作成するのに役立ちます。 退社前にちょっとした会議のために上司に呼び止められる心配はもうありません。AI アシスタントが自動的に議事録を作成するのに役立ちます。 Sep 04, 2023 pm 11:21 PM

iFlytekは、話し言葉を直接草稿に変換できる議事録機能をアップグレードし、録音に基づいてAIが議事録を要約できるようにした。 AI で議事録作成を完全サポート 8 月 31 日、iFlytek Web 版がバージョンアップされ、人工知能を活用してインテリジェントに議事録を作成できる PC 側のリアルタイム記録機能が追加されました。この機能の開始により、ユーザーはコンテンツの整理や会議後の重要な作業項目のフォローの効率が大幅に向上します。会議に頻繁に参加する人にとって、この機能は時間とエネルギーを大幅に節約できる非常に実用的なツールであることは間違いありません。この機能の適用シナリオは、主に PC 上の録音をテキスト化し、議事録を自動的に作成することです。優れたサービスと最先端のテクノロジーを備えた製品で、オフィスの効率を迅速に向上させます。

PHP を使用して基本的な自然言語生成を行う方法 PHP を使用して基本的な自然言語生成を行う方法 Jun 22, 2023 am 11:05 AM

自然言語生成は、データを自然言語テキストに変換する人工知能テクノロジーです。今日のビッグデータ時代では、データを視覚化したり、ユーザーに提示したりする必要がある企業がますます増えており、自然言語生成は非常に効果的な方法です。 PHP は、Web アプリケーションの開発に使用できる非常に人気のあるサーバー側スクリプト言語です。この記事では、PHP を使用して基本的な自然言語を生成する方法を簡単に紹介します。自然言語生成ライブラリの紹介 PHPに付属している関数ライブラリには自然言語生成に必要な関数が含まれていないため、

Python で pyWaffle を使用してワッフル チャートを生成する Python で pyWaffle を使用してワッフル チャートを生成する Aug 17, 2023 am 11:49 AM

データの視覚化は、情報を効率的に理解してプレゼンテーションするために不可欠です。利用可能な多くのチャート タイプの中でも、ワッフル チャートは、正方形のタイルを使用したグリッド状の構造でデータを表示する新しい方法です。強力な Python モジュール PyWaffle を使用すると、多くの計算およびデータ分析手法と同様に、ワッフル チャートの開発が容易になります。この記事では、洗練された Python モジュール PyWaffle を使用してワッフル チャートを作成する方法を見ていきます。 PyWafle をインストールし、それを使用してカテゴリデータを視覚化する方法を見てみましょう。 cmd で次のコマンドを実行してライブラリをインストールし、それをコードにインポートします。pipinstallpywaffleExample1 の中国語訳は次のとおりです。例 1 この例では、

PHPを使用して時間制限付きのQRコードを生成するにはどうすればよいですか? PHPを使用して時間制限付きのQRコードを生成するにはどうすればよいですか? Aug 26, 2023 pm 04:34 PM

PHPを使用して時間制限付きのQRコードを生成するにはどうすればよいですか?モバイル決済や電子チケットの普及により、QR コードは一般的なテクノロジーになりました。多くのシナリオでは、一定期間が経過しても無効になる期限付きの QR コードを生成する必要がある場合があります。この記事では、PHP を使用して時間制限のある QR コードを生成する方法と、参考となるコード例を紹介します。 PHPQRCode ライブラリのインストール PHP を使用して QR コードを生成するには、まず PHPQRCode ライブラリをインストールする必要があります。この図書館

Word ディレクトリが正しく生成されなかった場合の対処方法 Word ディレクトリが正しく生成されなかった場合の対処方法 Feb 20, 2024 am 08:08 AM

Word の目次が正しく生成されない場合の対処法 テクノロジーの発展に伴い、電子文書は私たちの日常の仕事や学習に不可欠な部分になりました。電子文書、特に長い記事や論文を編集する場合、目次の作成は非常に重要な手順です。目次を使用すると、読者が記事の内容や構造を見つけやすくなり、読書効率が向上します。ただし、カタログの生成中に、カタログ生成エラーや順序の乱れなどの問題が発生することがあります。では、ワードディレクトリが正しく生成されない場合、どのように解決すればよいでしょうか?頭

オンラインクイズの間違った解答集を生成する方法 オンラインクイズの間違った解答集を生成する方法 Sep 25, 2023 am 10:24 AM

オンラインで質問に回答するためのエラー ブックを生成する方法 今日の情報化時代において、オンラインで質問に回答することは、多くの学生や教育者にとって一般的なタスクとなっています。間違った問題は学習プロセスにおいて常に問題の 1 つであり、多くの人がオンラインの解答に対する間違った解答集を簡単に生成して、知識をよりよく確認して習得できるようにしたいと考えています。この記事では、オンライン解答エラーブックの生成機能をプログラミングで実現する方法と、具体的なコード例を紹介します。ステップ 1: Web インターフェイスを構築して、オンラインの回答とエラーの小冊子を生成する 質問と回答を表示するには、Web インターフェイスが必要です。 HTMLを使用できる

See all articles