数日前にパズルに出会った。手で簡単に解決できます。しかし、私はそれを解決するためのアルゴリズムを構築しようとしていました。しかし、私はどのように進めるべきかわかりません。 検索アルゴリズムを使ってパズルを解く
ここでは、すべての色の点のペアを接続する必要があることがわかります。例えば、私は黄色の点を別の黄色の点に、緑色を他の緑色、青色を青色に接続する必要があります。
ここでは、その解決方法の例を示します。説明が明確でない場合。
これで、黄色の点と別の黄色の点が接続されていることがわかります。そしてもう一つの青と青。しかし、これは問題を引き起こす。私はあなたが見ることができるようにアクアカラーのパスをブロックしました。私はあなたがそのアイデアを得ることを望みます。
だから私はそれを解決したい。ブルートフォースのアプローチはうまくいくだろうが、それは長い時間がかかり、私はそれに興味がない。幅広い検索、深さ優先検索、ダイクストラアルゴリズムの実装について試しました。しかし、私は彼らがこの場合には良くないと思う。私が間違っていれば私を訂正してください。 A *検索は機能しますが、ヒューリスティックは何ですか?
誰も私にこの問題を解決する方法のいくつかの直感を与えることができますか?
を取得するために一緒に5以上の重複色論理
このタイプのパズルはNumberlinkまたはArukoneと呼ばれています。 [Wikipedia](https://en.wikipedia.org/wiki/Numberlink)によれば、この問題はNP完全であるため、一般的なケースでは無差別な力よりもはるかに優れたことはできません。いくつかのアルゴリズムは、特定のアレンジメントでよりうまくいくかもしれませんが。 [検索](https://www.google.com/search?q=arukone&ie=utf-8&oe=utf-8#q=numberlink+solver)を使用すると、いくつかのソルバーを見つけることができます。 – interjay
A *はBFSよりもすばやく動作します。ヒューリスティックを理解する必要があります。有効な解決策を採点する方法。このようにして、A *は最高のスコアに向かって動くことができます。現在のボード状態を追跡する状態オブジェクトを使用する必要があります。それぞれの動きは、ヒューリスティックによって得点される新しい状態になるでしょう – element11