プログラマの皆さん、
車両の通行をシミュレートするソフトウェアを開発しています。「割り当て」と呼ばれるプロセスの一部は、ルートへの車両の割り当てに関係しており、ある種の最短経路探索アルゴリズムを使用する必要があります。
伝統的に、人々はダイクストラでこれを行っており、特定の科学文献は、おそらくグラフの性質のために、A *や他の代替案は大幅な改善をもたらさないことを示しているようです。
したがって、ダイクストラも使用しています。小さな問題が発生しました。交通リンク(交差点間の道路のスパン)をエッジとして扱い、交差点をノードとして扱う場合、古典的な単方向グラフを取得できません。交差点に近づくと、頻繁に方向転換できるかどうかは従来のグラフでは、ノードから任意のエッジを取得できますが、
この問題は、リンクと交差のペア(「ラス」と呼ばれます)をノードとして表すことで簡単に解決できました。後続の「ラス」または選択したポイントに到達するにはリンクをたどる必要があるため、エッジがこのトラバーサルとして定義され、典型的なグラフが得られます。
次に、結果は単純なテーブルN x Nに格納されます。ここで、Nは「ラス」の数です。
これは(避けられない?)欠点です。シミュレーションの一般的なネットワークに2000の交差点がある場合、約6000リンク、つまりN = 3Vになります。明らかに、交差(V)で数えると、O(log(3V)*(3V + E))になります。
3(または9)は一定の要素であると主張するかもしれませんが、実際の観点からは、処理速度がかなり遅くなり、ストレージスペースが3V x 3Vに増加します。
これを再構成してパフォーマンスを向上させる方法を誰かが知っていますか?必ずしも別のアルゴリズムである必要はありません。おそらく、他の方法でグラフに合うようにデータ構造を再形成しますか?