問題タブ [game-theory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 効率的なアルファベータ剪定ゲーム検索ツリーを実装する方法は?
人工知能とそれをプログラムに実装する方法について学ぼうとしています。最も簡単に開始できるのは、単純なゲーム (この場合は Tic-Tac-Toe) とゲーム検索ツリー (再帰呼び出しであり、実際のデータ構造ではありません) です。このトピックに関する講義で、この非常に役立つビデオを見つけました。
私が抱えている問題は、アルゴリズムへの最初の呼び出しの実行に非常に長い時間 (約 15 秒) がかかっていることです。コード全体にデバッグ ログ出力を配置しましたが、アルゴリズムの一部を過度に呼び出しているようです。
コンピューターに最適な動きを選択する方法は次のとおりです。
スポットが空の場合にmakeMove
メソッドが移動し、値を返す場所 (-1 - 人間の勝利、0 - 引き分け、1 - コンピュータの勝利、-2 または 2 - それ以外)。エラーはgetAllLegalMoves
メソッドにある可能性があると思いますが:
すべてを要約すると:最適な動きを選択するのに時間がかかる原因は何ですか? 私は何が欠けていますか?このアルゴリズムを実装する簡単な方法はありますか? どんな助けや提案も大歓迎です、ありがとう!
c# - ゲームプログラミング初心者 -- 必要に応じてゲームオブジェクトで
過去に MUD のために LPC でボランティア ゲーム プログラミングを行ったことがありますが、すべてが簡単でした。新しいアイテムが必要な場合は、関数を使用して (NPC など) を何度でもロードします。今、私は自分自身の小さなゲームをプログラムしたいと思っています。自分の研究をさらに進めるためにやりたいことの名前だけが得られれば、それで十分です。そのすべてについてとりとめのない、私の質問に:
ゲーム内オブジェクト (人など) のインスタンスをオンザフライで作成したいと考えています。一部はコンピューターによって処理され、その他はプレイヤーによって処理されます。私が見つけたゲーム プログラミングのヘルプの多くは、スプライトの移動と衝突検出の処理に関するものでした。これはすべて素晴らしいことですが、戦略ゲームをコーディングしたいので、ゲーム内にサンドボックスの柔軟性を作成し、AI をコーディングして興味を提供することに関心があります。ランダムに生成されたさまざまな人数のプレイヤーと対話するゲーム。これまでのところ、人を処理するクラスを作成しましたが、クラスの各インスタンスには一意の名前が必要であり、プログラミングすると番号にランダム性がないため、行き詰まりました。
私が求めているものを達成するために何を調べる必要がありますか? それは何と呼ばれるでしょうか?ある程度の雄弁さで自分自身を説明しましたか?
私の道に来るかもしれない潜在的な助けを前もって感謝します。
マット。
algorithm - 与えられたゲームの勝者
アリスとボブがゲームをしています。1 から 1000 までの n (<50) 個の数字が与えられています。1回のターンで、彼らは次のいずれかを行うことができます
。 1.
数字を1減らす。
0になった数字は自動的に消去されます。プレーヤーは、2 つの動きのいずれかを実行できない場合に負けます。アリスが最初にプレイした場合、両方が最適にプレイした場合、どちらがゲームに勝つかをどのように判断できますか?
ゲーム理論のアルゴリズムを知らなくても、この質問はできますか?
java - 非常に単純な無制限のシンプレックス
この線形計画法の問題を解決しようとしました:
max cx : Ax <= b, x >= 0
以下は、この優れたLPP ソルバーのスニペットです。
ここで、3 番目のパラメータは「c」、4 番目のパラメータは「A」、6 番目のパラメータは「b」です。5 番目は方向 '<=' を示します。
私もこれらを試しました:
http://algs4.cs.princeton.edu/65reductions/Simplex.java.html
と
私の評判が低すぎるのでここに書くことはできません (http: スラッシュ スラッシュ lpsolve ドット ソースフォージ ドット ネット スラッシュ 5.5 スラッシュ)
最初のものは、「指定された LPP は無制限です」というエラーをスローしました。最後の 2 つの結果は次のとおりです。
プライマル:{0.0, 0.1, 0.1, 0.0, 0.0, 0.3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3}
および値: 0.8
。
これらを他のさまざまな例に使用しましたが、同じ結果が得られました。
正しい解決策は何ですか?私は何を取りこぼしたか?
c++ - setbits に基づく数値とゲームの setbits の数
私はビット操作でこの問題を試していましたが、これが原因でした:
数の美しさは、その数に設定されたビットの数です。AさんとBさんが盤面に数字Nが書かれたゲームを始め、手番のプレイヤーが盤面に行き、k<=NでKの美しさが1である新しい数字NKを書きます。これも重要です。 NK の美しさは、N の美しさと等しくなければなりません。最後に自分の動きを成功させたプレイヤーがゲームに勝ちます。
どちらも最適にゲームをプレイします。
PS私はここでコードを探していません.これにアプローチする方法を知りたいですか?
game-theory - スプレイグのグランディ定理
http://www.spoj.com/problems/MATGAME/ spoj に関するこの質問を解決しようとしています。この問題は、スプラーグの汚れた定理を使用して行うことができます。各行のスプラーグ グランディ ナンバーが計算され、これらの値の XOR(^) が 0 の場合、2 番目のプレイヤーが最初に勝ちます。各行の汚れた番号を取得する方法がわかりません。
algorithm - Nim のようなゲームの戦略
最近、興味深い問題に出会いました。石の山がいくつかあります。2 人のプレーヤーが順番にランダムな山から 1 つの石だけを拾います。プレーヤーの移動後に山が 1 つしか残っていない場合、プレーヤーはゲームに勝ちます。ここに例があります。3つの山があるとします。
これが質問です。両方のプレーヤーが賢い場合、最初のプレーヤーの勝利戦略はありますか?
この質問は Nim ゲームの問題のように聞こえますが、ルールは異なります。私はゲーム理論に慣れていないので、明確でわかりやすい答えを期待しています。
お時間とご関心をお寄せいただきありがとうございます。