私は、含まれる最大多様体問題をブール充足可能性に還元し、この部分問題への依存によって NP 完全性を示すことができると信じています。このため、提供されるアルゴリズムspin_plateは、ヒューリスティック、事前計算、および機械学習が合理的であるため、合理的です。
次のようなボードを検討してください。
..S........
#.#..#..###
...........
...........
..........F
これには、貪欲でゲートバウンドなソリューションが失敗する原因となる多くの問題があります。その 2 行目を見ると、次のようになります。
#.#..#..###
私たちの論理ゲートは、次のように並べられた 0 ベースの 2D 配列[row][column]
です。
[1][4], [1][5], [1][6], [1][7], [1][8]
これを方程式として再レンダリングして、ブロックを満たすことができます。
if ([1][9] AND ([1][10] AND [1][11]) AND ([1][12] AND [1][13]):
traversal_cost = INFINITY; longest = False # Infinity does not qualify
満たされないケースとしての無限を除いて、これをバックトラックして次のように再レンダリングします。
if ([1][14] AND ([1][15] AND [1][16]) AND [1][17]:
traversal_cost = 6; longest = True
そして、私たちの隠されたブーリアン関係は、これらすべてのゲートに当てはまります。また、幾何学的証明が再帰的にフラクタル化できないことを示すこともできます。N-1
これは、幅または高さの長さが正確な壁を常に作成できるためです。これは、すべての場合においてソリューションの重要な部分を表します (したがって、分割統治法は役に立ちません)。 )。
さらに、異なる行にまたがる摂動は重要であるため、次のようになります。
..S........
#.#........
...#..#....
.......#..#
..........F
計算可能な幾何学的恒等式の完全なセットがなければ、完全な検索空間は N-SAT に縮小されることを示すことができます。
拡張により、ゲート数が無限大に近づくにつれて、これは検証が簡単で、解決が非多項式であることを示すこともできます。当然のことながら、これがタワー ディフェンス ゲームが人間にとって非常に楽しいものであり続けている理由です。明らかに、より厳密な証明が望まれますが、これは基本的なスタートです。
n-choose-k 関係で n 項を大幅に減らすことができることに注意してください。各摂動がクリティカル パス上になければならないことを再帰的に示すことができ、クリティカル パスは常に O(V+E) 時間で計算できるため (各摂動の処理を高速化するためにいくつかの最適化を行うことで)、ボードに追加された追加のタワーごとに幅優先検索を犠牲にしてスペースを検索します。
O(n^k) を決定論的解として許容できると想定できるため、ヒューリスティックなアプローチが合理的です。したがって、私のアドバイスは、問題に適用可能な機械学習技術に目を向けて、spinning_plate の回答とSoravux の回答の間のどこかに当てはまります。
0 番目の解決策:許容できるが最適ではない AI を使用します。この AI では、spinning_plate が 2 つの使用可能なアルゴリズムを提供します。実際、これらはゲームにアプローチするナイーブ プレイヤーの数を概算しており、高度な悪用可能性はあるものの、単純なプレイにはこれで十分なはずです。
一次解決策:データベースを使用します。問題の定式化を考えると、その場で最適解を計算する必要性が十分に実証されていません。したがって、情報なしでランダムなボードにアプローチするという制約を緩和すると、K
各ボードの許容可能なすべての最適値を単純に事前計算できます。明らかに、これは少数のボードでのみ機能します。各構成の潜在的なボード状態では、非常に大きくなるV!
ため、すべての最適値を許容できるように事前計算することはできません。V
二次的な解決策:機械学習ステップを使用します。アルゴリズムが収束するか、貪欲以外の最適なソリューションが見つからなくなるまで、非常に高いトラバーサル コストが発生するギャップを埋めるように、各ステップを進めます。ここでは非常に多くのアルゴリズムを適用できるため、プログラムの制約内で機能する正しいアルゴリズムを選択するために、古典と文献を追跡することをお勧めします。
最良のヒューリスティックは、O(V^2) トラバーサルの後に最も一般的にトラバースされたものから最も一般的でないものへと結果をソートする、局所的に状態を認識する、再帰的な深さ優先トラバーサルによって生成される単純なヒート マップである可能性があります。この出力を処理することで、すべてのボトルネックを貪欲に特定できます。パスを不可能にせずにそれを行うことは完全に可能です (これを確認するのは O(V+E) です)。
すべてをまとめると、ヒート マップとクリティカル パスの ID を組み合わせて、これらのアプローチを交差させてみることにします。ここには、問題のすべての制約を満たす優れた機能的な幾何学的証明を考え出すのに十分なものがあると思います。