この記事はWeChatの公開アカウント「Beta Learns JAVA」から転載したもので、著者はSilently9527です。この記事を転載する場合は、Beta Learning JAVA パブリック アカウントにお問い合わせください。 序文この記事から、グラフ関連のアルゴリズムを一緒に学習します。グラフ コンピューティングには、ガベージ コレクターのマーク アンド スイープ アルゴリズム、マップ上のパスの最短距離、トポロジカル ソートなど、非常に実用的なアルゴリズムが多数あります。これらのアルゴリズムを学習する前に、まずグラフの基本的な定義と、グラフを表すために使用されるデータ構造を理解する必要があります。この記事では、無向グラフから始めます。 グラフの定義グラフ: 頂点の集合と、2 つの順序を接続できる順序の集合で構成されます。 2 つの頂点を結ぶ辺には方向がなく、このようなグラフは無向グラフと呼ばれます。 グラフ用語同じ辺で接続された 2 つの頂点は隣接していると呼ばれます。 頂点の次数とは、この頂点を結ぶ辺の総数です。上図に示すように、頂点1の次数は3です。 頂点をそれ自身に接続する辺は自己ループと呼ばれます。 同じ頂点のペアを結ぶ辺は平行辺と呼ばれる。 他にもたくさんの用語があります。今のところ、この記事で使用する必要のある用語のみをリストします。他の用語については後で説明します。用語が多すぎると覚えるのは簡単ではありません。 グラフの表現方法グラフを表現するために使用されるデータ構造は、主に次の 2 つの要件を指します。
これら 2 つの要件を考慮した後、専門家は次の 3 つの選択方法を提案しました。
無向グラフのAPI定義
無向グラフAPIの実装上記で定義した API を実装するには、3 つのメンバー変数が必要です。v はグラフ内の頂点の数を表し、e はグラフの合計エッジ データを表し、LinkedListQueue 配列は頂点 v の隣接ノードを格納するために使用されます。 コンストラクタは空の隣接リスト配列を初期化する これは無向グラフなので、addEdge メソッドはグラフに v->w エッジと w->v エッジの両方を追加する必要があります。
グラフの一般的なツールと方法グラフデータ構造の実装に基づいて、いくつかのツールと方法を提供することができます。 頂点 v の次数を計算します。頂点の次数は、その頂点に接続されている頂点の数に等しくなります。
すべての頂点の最大次数を計算する
すべての頂点の平均次数を計算します。各辺には 2 つの頂点があるため、グラフ内のすべての頂点の合計次数は辺の 2 倍になります。
グラフ内の自己ループの数を計算します。頂点 v について、v が v の隣接リストにも表示される場合、v には自己ループがあります。無向グラフであるため、各エッジは 2 回記録されます (理解しにくい場合は、グラフの toString を出力して理解することができます)
要約するこの記事では、主にグラフを表現するために使用するデータ構造について学習し、このデータ構造に基づいていくつかの簡単なツールとメソッドを実装します。次の記事では、グラフの最初の検索アルゴリズムである深さ優先検索について学習します。 この記事のすべてのソースコードは、github リポジトリに保存されています: https://github.com/silently9527/JavaCore |
<<: Nvidia の新しいブラック テクノロジーが「Minecraft」のモザイクをリアルな大ヒット作に変える
>>: ElasticSearch はどのようにして TDigest アルゴリズムを使用して数十億のデータのパーセンタイルを計算するのでしょうか?
2009 年以来、雲奇会議は、最も初期のローカル ウェブサイト サミットから、アリババの年次戦略およ...
2009年、当時プリンストン大学に勤務していたコンピューター科学者のフェイフェイ・リー氏が、人工知...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人工知能の分野における画像分類問題に関して言えば、トレーニングとテストに最もよく使用されるデータセッ...
導入ソートとは、データのセットを指定された順序で並べるプロセスです。分類カテゴリ内部ソート: ソート...
今日では、盗作された記事や作品が出版され、盗作者がそれを無料で使用したり、利益を得たりすることは珍し...
AIワークロードをエッジで実行することで、経済性の向上、意思決定の迅速化、自動化が可能になります。誇...
[[377158]]研究によれば、コロナウイルスのパンデミック中に組織が確立したビジネス規範は、パン...
近年、需要の増加、エネルギーコストの高騰、持続可能性の問題が続く中、データセンターが注目を集めていま...
人工知能技術が成熟するにつれ、この技術のより広範な社会的、倫理的影響に十分な注意が払われていないので...
[[392763]]コンセプト簡単に言うと、再帰とは、毎回異なる変数を渡しながら、自身を呼び出すメ...
「人工知能はすべての仕事を自動化し、人間を失業させるだろう。」 「人工知能は単なる架空の技術だ。」 ...
ResearchAndMarkets が発表した最新のレポートによると、2027 年までに世界の人...