重みが 1 以上のエッジを含む最小プロダクト パス
重みが 1 以上の最小エッジを持つパスを見つけるには、ダイクストラのアルゴリズムを少し変更して使用できます。まず、ソース ノードの重みを 1 に設定し、他のノードの重みを無限大に設定します。アルゴリズムの実行中、距離は更新されず、重みの積が更新されます。これにより、重みが最小のパスが確実に選択されます。各ステップで最小の重みを持つノードを選択することで、ターゲット ノードに到達するまでの最短パスを繰り返し発見します。最終的に、このパスに沿った重みの積は最小となり、指定された条件を満たします。
使用説明書
加重積を使用してダイクストラのアルゴリズムを修正しました
重み付け積を使用した変更された Bellman-Ford アルゴリズム
加重積のダイクストラ アルゴリズムの改善
修正されたダイクストラ アルゴリズムでは、最初にソース ノードの重みを無限大に設定し、他のすべてのノードの重みを無限大に設定します。計算を実行する際、すべての重みで距離を更新するのではなく、これまでに発生した重みの積で距離を更新します。各ステップで、最小の重みを持つノードを選択し、同じ方法で隣接するノードの重みを更新します。このプロセスは、ターゲット ノードに到達するまで継続されます。最終的に、このパスに沿った重みの積は可能な最小値を表し、重みが 1 以上であるという条件を満たします。
###アルゴリズム###- ウェイトが 0 に設定されているソース中心を除く、すべての中心ウェイトを無限大に初期化します。
-
- 未訪問のノードの中で最小の重みを持つ中心を選択します。
- 現在の中央ノードの重みとそれに接続されているエッジの重みを計算します。
ターゲットセンターが消えるか、すべてのセンターを訪問するまでステップ 3 を繰り返します。 -
重み付けされたオブジェクトを使用した調整済みの Bellman-Ford アルゴリズムでは、ソース中心の荷重を 1 に設定し、他のすべての中心の荷重を無限大に設定することから始めます。各ループでは、現在のノードの重みと、ノードをターゲットの中心に接続するエッジの荷重とを比較することによって、すべてのエッジが解明されます。計算された重量がターゲットセンターの荷重より小さい場合、計算された重量だけターゲットセンターの重量を増加させます。このプロセスを V-1 回繰り返します。ここで、V は中心の総数であり、すべての可能なパスが確実に考慮されます。ターゲット中心の重みは、ソースからターゲットまでのパス上の最小の重みを表します。
###アルゴリズム###ソース中心を除き、他のすべての中心の重みは無限である必要があります。
上記の手順を V-1 回繰り返します。ここで、V はノードの総数です:
-
ターゲット中心重量は、ソースからターゲット ポイントまでの途中での最小アイテム重量を反映します。
グリーディ シェーディング アルゴリズムは、利用可能な色と隣接する頂点で使用されている色に基づいて、貪欲な方法で頂点に色を割り当てます。グラフのシェーディングを実現するために常に最小数の色を使用するとは限りませんが、頂点シェーディングの高速かつ効率的な方法を提供します。
-
###例###
リーリー
###出力###
リーリー
###結論は###
この記事では、重みが 1 以上の最小エッジを持つパスを見つける方法を説明します。この問題を解決するために、改良されたダイクストラ アルゴリズムと改良されたベルマン フォード アルゴリズムという 2 つのアルゴリズムが導入されています。修正されたダイクストラ アルゴリズムは各ステップで最小の重みを持つノードを選択しますが、修正されたベルマン フォード アルゴリズムは反復的にエッジをアンラップして重みを更新します。この記事では、これら 2 つのアルゴリズムを C 言語で実装し、テスト入力での使用法を説明します。出力は、送信元ノードから宛先ノードまでのパス上の最小重みです。
以上が重みが 1 以上のエッジを含む最小プロダクト パスの詳細内容です。詳細については、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)

ホットトピック









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

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

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

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

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

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

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

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