最小全域ツリーの例の詳細な説明
最小スパニング ツリー - プリムのアルゴリズムとクラスカルのアルゴリズム
グラフのスパニング ツリーは、すべての頂点を含む非巡回接続サブグラフであり、重み付きグラフの最小スパニング ツリーは、最小の重みスパニング ツリーを持つグラフです。
プリムアルゴリズム
アルゴリズムの簡単な説明
1) 入力: 頂点セットが V でエッジセットが E である重み付き接続グラフ。 2). 初期化: Vnew
= {x}、x は集合 V 内の任意のノード (開始点)、Enew = {} は空です。3) 以下の操作を繰り返します。 V new = V まで:
a. 集合 E 内の最小の重みを持つエッジを選択します。ここで、u は集合 Vnew 内の要素であり、v は集合 E に含まれていません。 set Vnew、および v∈V (上記の条件を満たし、同じ重みを持つエッジが複数ある場合は、そのうちの 1 つを任意に選択できます)
b をセット Vnew に追加します。 、edge がセット Enew に追加されます 4) 出力: セット Vnew
と Enew を使用して、結果の最小スパニング ツリーを記述します。
以下はアルゴリズムの凡例の説明です
凡例
説明
オプション | 選択済み (V新規) | )|||
---|---|---|---|---|
は開始点として恣意的に選択されました。頂点 A、 B、 | は単一のエッジによって D に接続されています。 A | はDに最も近い頂点であるため、A | と対応するエッジADが強調表示されます。次へ 頂点は距離 D | またはA で最も近い頂点です。 B | は
A から7、E | FはDまたはAに最も近いため、頂点Fと対応するエッジDFが強調表示されます。アルゴリズムは引き続き上記のステップを繰り返します。距離Aが7である頂点Bが強調表示されます。 CB、E、G | A、D、F | 現在の状況では、C、E、Gから選択できます。 CはBからの8、EはBからの7、GはFからの11です。 Eが最も近いので、頂点Eと対応するエッジBEが強調表示されます。 | なし | C、E、G | A、D、F、B |
|
ここで、選択できる頂点は のみです。 CとG。 CとEの間の距離は5、GとEの間の距離は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を選択します。このようにして、私たちの写真は右側の写真になります
次に、BC または EF の選択を続けますが、長さ 8 の辺が選択されていない最小の辺になります。しかし、現在は接続されています (BC は CE、EB、同様の EF は EB、BA、AD、DF を介して接続できます)。したがって、それらを選択する必要はありません。同様の BD も接続されています (上の図の接続線は赤で示されています)。
🎜結局、EGとFGだけが残りました。もちろんEGを選びました。 🎜🎜🎜🎜🎜🎜🎜🎜アルゴリズムの実装については、『アルゴリズム』第4版のコードを参照してください。 🎜🎜🎜以上が最小全域ツリーの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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