これが問題です:
私はn個のポイント(p1、p2、p3、.. pn)を持っており、それぞれが決定されたコストxで他のポイントに接続できます。
各ポイントは、一連のポイントタイプの1つに属します(たとえば、「A」、「B」、「C」、「D」...)。
メソッドの入力は、「ABCADB」のように、私がたどりたいパスです。
出力は、入力で指定したタイプのポイントを接続する最短パスです。たとえば、「p1-p4-p32-p83-p43-p12」(p1はAタイプ、p4はBタイプ、p32はC-)です。タイプ、p83はAタイプ、p43はDタイプ、p12はBタイプです。
「簡単な」ソリューションは、可能なすべてのパスを計算することで構成されますが、計算コストは非常に高くなります。
誰かがより良いアルゴリズムを見つけることができますか?
タイトルで言ったように、それが存在するかどうかはわかりません!
アップデート:
ダイクストラや他の同様のアルゴリズムを使用できない重要な点は、タイプに応じてポイントをリンクする必要があることです。
入力として、型の配列があり、その順序でリンクする必要があります。
これは、初期の状況を説明するケントフレデリック(ありがとうございました)の画像です(赤い許可されたリンクで)!
実際の例:
男性は、午前中に教会を訪れ、レストランに行き、最終的に午後に美術館を訪れたいと考えています。
マップには、6つの教会、30のレストラン、4つの美術館があります。
彼は、教会-休憩-博物館の距離が可能な限り最小であることを望んでいます。