目次
使用説明書
加重積のダイクストラ アルゴリズムの改善
重み付けされたオブジェクトを使用した調整済みの Bellman-Ford アルゴリズムでは、ソース中心の荷重を 1 に設定し、他のすべての中心の荷重を無限大に設定することから始めます。各ループでは、現在のノードの重みと、ノードをターゲットの中心に接続するエッジの荷重とを比較することによって、すべてのエッジが解明されます。計算された重量がターゲットセンターの荷重より小さい場合、計算された重量だけターゲットセンターの重量を増加させます。このプロセスを V-1 回繰り返します。ここで、V は中心の総数であり、すべての可能なパスが確実に考慮されます。ターゲット中心の重みは、ソースからターゲットまでのパス上の最小の重みを表します。
ソース中心を除き、他のすべての中心の重みは無限である必要があります。
上記の手順を V-1 回繰り返します。ここで、V はノードの総数です:
ホームページ バックエンド開発 C++ 重みが 1 以上のエッジを含む最小プロダクト パス

重みが 1 以上のエッジを含む最小プロダクト パス

Aug 30, 2023 am 11:37 AM
重み パス

重みが 1 以上のエッジを含む最小プロダクト パス

重みが 1 以上の最小エッジを持つパスを見つけるには、ダイクストラのアルゴリズムを少し変更して使用できます。まず、ソース ノードの重みを 1 に設定し、他のノードの重みを無限大に設定します。アルゴリズムの実行中、距離は更新されず、重みの積が更新されます。これにより、重みが最小のパスが確実に選択されます。各ステップで最小の重みを持つノードを選択することで、ターゲット ノードに到達するまでの最短パスを繰り返し発見します。最終的に、このパスに沿った重みの積は最小となり、指定された条件を満たします。

使用説明書

  • 加重積を使用してダイクストラのアルゴリズムを修正しました

  • 重み付け積を使用した変更された Bellman-Ford アルゴリズム

加重積のダイクストラ アルゴリズムの改善

修正されたダイクストラ アルゴリズムでは、最初にソース ノードの重みを無限大に設定し、他のすべてのノードの重みを無限大に設定します。計算を実行する際、すべての重みで距離を更新するのではなく、これまでに発生した重みの積で距離を更新します。各ステップで、最小の重みを持つノードを選択し、同じ方法で隣接するノードの重みを更新します。このプロセスは、ターゲット ノードに到達するまで継続されます。最終的に、このパスに沿った重みの積は可能な最小値を表し、重みが 1 以上であるという条件を満たします。

###アルゴリズム###

    ウェイトが 0 に設定されているソース中心を除く、すべての中心ウェイトを無限大に初期化します。
  • 削除されたノードを追跡するクリーンアップ コレクションを作成します。
  • 未訪問のノードがある場合、
    • 未訪問のノードの中で最小の重みを持つ中心を選択します。
    • 選択したセンターを訪問済みとしてマークします。
    • 未訪問の隣接ハブごと:
    • 現在の中央ノードの重みとそれに接続されているエッジの重みを計算します。
    • 計算された項が隣接する中心の重みより小さい場合、その重みを計算された積で置き換えます。
  • ターゲットセンターが消えるか、すべてのセンターを訪問するまでステップ 3 を繰り返します。
  • ターゲット中心重量は、ソースからターゲット ポイントまでの途中での最小アイテム重量を反映します。
  • ###例### リーリー ###出力### リーリー
  • 重み付け積を使用した変更された Bellman-Ford アルゴリズム

重み付けされたオブジェクトを使用した調整済みの Bellman-Ford アルゴリズムでは、ソース中心の荷重を 1 に設定し、他のすべての中心の荷重を無限大に設定することから始めます。各ループでは、現在のノードの重みと、ノードをターゲットの中心に接続するエッジの荷重とを比較することによって、すべてのエッジが解明されます。計算された重量がターゲットセンターの荷重より小さい場合、計算された重量だけターゲットセンターの重量を増加させます。このプロセスを V-1 回繰り返します。ここで、V は中心の総数であり、すべての可能なパスが確実に考慮されます。ターゲット中心の重みは、ソースからターゲットまでのパス上の最小の重みを表します。

###アルゴリズム###

ソース中心を除き、他のすべての中心の重みは無限である必要があります。

上記の手順を V-1 回繰り返します。ここで、V はノードの総数です:

  • グラフの各エッジについて、現在の中心にあるアイテムの重みと、それらに接続されているエッジの重みを計算します。
  • 計算されたアイテムがターゲットセンターの重量より小さい場合、その重量は計算された製品でアップグレードされます。
    • V-1 期間の後、すべての中央ノードの重みが決定されます。
    • 計算中に、グラフ内に負の重みサイクルがある場合、追加のサイクルが識別されます。このプロセス中に重みが修正された場合、これは負の重みサイクルが存在することを示します。
  • ターゲット中心重量は、ソースからターゲット ポイントまでの途中での最小アイテム重量を反映します。

  • グリーディ シェーディング アルゴリズムは、利用可能な色と隣接する頂点で使用されている色に基づいて、貪欲な方法で頂点に色を割り当てます。グラフのシェーディングを実現するために常に最小数の色を使用するとは限りませんが、頂点シェーディングの高速かつ効率的な方法を提供します。

  • ###例### リーリー ###出力### リーリー ###結論は###

    この記事では、重みが 1 以上の最小エッジを持つパスを見つける方法を説明します。この問題を解決するために、改良されたダイクストラ アルゴリズムと改良されたベルマン フォード アルゴリズムという 2 つのアルゴリズムが導入されています。修正されたダイクストラ アルゴリズムは各ステップで最小の重みを持つノードを選択しますが、修正されたベルマン フォード アルゴリズムは反復的にエッジをアンラップして重みを更新します。この記事では、これら 2 つのアルゴリズムを C 言語で実装し、テスト入力での使用法を説明します。出力は、送信元ノードから宛先ノードまでのパス上の最小重みです。

以上が重みが 1 以上のエッジを含む最小プロダクト パスの詳細内容です。詳細については、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)

Windows 11 のテーマはどこにありますか? Windows 11 のテーマはどこにありますか? Aug 01, 2023 am 09:29 AM

Windows 11 には、さまざまなテーマや壁紙など、非常に多くのカスタマイズ オプションがあります。これらのテーマはそれなりに美しいものですが、Windows 11 のバックグラウンドでどのような位置にあるのか疑問に思うユーザーもいます。このガイドでは、Windows 11 テーマの場所にアクセスするさまざまな方法を説明します。 Windows 11 のデフォルトのテーマとは何ですか? Windows 11 のデフォルトのテーマの背景は、空色の背景に咲く抽象的なロイヤル ブルーの花です。この背景は、オペレーティング システムのリリース前の期待のおかげで、最も人気のあるものの 1 つです。ただし、オペレーティング システムには他のさまざまな背景もあります。したがって、Windows 11 デスクトップのテーマの背景はいつでも変更できます。テーマは Windo に保存されます

ファイルパスでのスラッシュとバックスラッシュのさまざまな使用法 ファイルパスでのスラッシュとバックスラッシュのさまざまな使用法 Feb 26, 2024 pm 04:36 PM

ファイル パスは、ファイルまたはフォルダーを識別して検索するためにオペレーティング システムによって使用される文字列です。ファイル パスには、パスを区切る 2 つの一般的な記号、つまりスラッシュ (/) とバックスラッシュ () があります。これら 2 つのシンボルは、オペレーティング システムごとに異なる用途と意味を持ちます。スラッシュ (/) は、Unix および Linux システムで一般的に使用されるパス区切り文字です。これらのシステムでは、ファイル パスはルート ディレクトリ (/) から始まり、各ディレクトリ間はスラッシュで区切られます。たとえば、パス /home/user/Document

エラーの修正方法: メインクラスが見つからないか、Java にロードされていません エラーの修正方法: メインクラスが見つからないか、Java にロードされていません Oct 26, 2023 pm 11:17 PM

技術的なエラーのため、このビデオは再生できません。 (エラー コード: 102006) このガイドでは、この一般的な問題に対する簡単な修正を提供し、コーディング作業を続行します。また、Java エラーの原因と、今後それを防ぐ方法についても説明します。 Java の「エラー: メインクラスが見つからないかロードされていません」とは何ですか? Java は、開発者が幅広いアプリケーションを作成できる強力なプログラミング言語です。ただし、その多用途性と効率性には、開発中に発生する可能性のある多くの一般的な間違いが伴います。割り込みの 1 つは、「エラー: メイン クラス user_jvm_args.txt が見つからないかロードされていません」です。これは、Java 仮想マシン (JVM) がプログラムを実行するメイン クラスを見つけられない場合に発生します。このエラーは、次の場合でも障害として機能します。

Win11 の「マイ コンピュータ」パスの違いは何ですか?すぐに見つけられる方法! Win11 の「マイ コンピュータ」パスの違いは何ですか?すぐに見つけられる方法! Mar 29, 2024 pm 12:33 PM

Win11 の「マイ コンピュータ」パスの違いは何ですか?すぐに見つけられる方法! Windows システムは常に更新されているため、最新の Windows 11 システムにもいくつかの新しい変更と機能が追加されています。よくある問題の 1 つは、Win11 システムでユーザーが「マイ コンピューター」へのパスを見つけられないことですが、これは通常、以前の Windows システムでは簡単な操作でした。この記事では、Win11 システムでの「マイ コンピュータ」のパスの違いと、それらをすばやく見つける方法を紹介します。 Windows1の場合

path/filepath.Dir 関数を使用して、ファイル パスのディレクトリ部分を取得します。 path/filepath.Dir 関数を使用して、ファイル パスのディレクトリ部分を取得します。 Jul 27, 2023 am 09:06 AM

path/filepath.Dir 関数を使用して、ファイル パスのディレクトリ部分を取得します。日常の開発プロセスでは、ファイル パスの処理が頻繁に行われます。場合によっては、ファイル パスのディレクトリ部分、つまりファイルが存在するフォルダーへのパスを取得する必要があります。 Go 言語では、path/filepath パッケージによって提供される Dir 関数を使用してこの関数を実装できます。 Dir 関数のシグネチャは次のとおりです。 funcDir(pathstring)string Dir 関数は単語を受け取ります。

Linux カーネルのソース コードのストレージ パスの分析 Linux カーネルのソース コードのストレージ パスの分析 Mar 14, 2024 am 11:45 AM

Linux カーネルは、ソース コードが専用のコード リポジトリに保存されているオープン ソース オペレーティング システム カーネルです。この記事では、Linux カーネル ソース コードのストレージ パスを詳細に分析し、読者の理解を助けるために具体的なコード例を使用します。 1. Linux カーネル ソース コードの保存パス Linux カーネル ソース コードは、[https://github.com/torvalds/linux](http) でホストされている linux という Git リポジトリに保存されます。

os.path モジュールを使用して Python 3.x でファイル パスのさまざまな部分を取得する方法 os.path モジュールを使用して Python 3.x でファイル パスのさまざまな部分を取得する方法 Jul 30, 2023 pm 02:57 PM

Python3.x の os.path モジュールを使用してファイル パスのさまざまな部分を取得する方法 日常の Python プログラミングでは、ファイル名、ファイル ディレクトリ、拡張子などの取得など、ファイル パスを操作する必要があることがよくあります。パスの。 Python では、os.path モジュールを使用してこれらの操作を実行できます。この記事では、ファイル操作を改善するために、os.path モジュールを使用してファイル パスのさまざまな部分を取得する方法を紹介します。 os.path モジュールは、一連の

LinuxシステムでRPMファイルのストレージパスを見つけるにはどうすればよいですか? LinuxシステムでRPMファイルのストレージパスを見つけるにはどうすればよいですか? Mar 14, 2024 pm 04:42 PM

Linux システムでは、RPM (RedHatPackageManager) は、ソフトウェア パッケージのインストール、アップグレード、削除に使用される一般的なソフトウェア パッケージ管理ツールです。検索やその他の操作のために、インストールされている RPM ファイルのストレージ パスを見つける必要がある場合があります。以下では、Linux システムで RPM ファイルの保存パスを見つける方法と、具体的なコード例を紹介します。まず、rpm コマンドを使用して、インストールされている RPM パッケージとそのストレージ パスを見つけます。開ける

See all articles