lihongxun945/gobang

javascript gobang AI,JS五子棋AI,源码+教程,基于Alpha-Beta剪枝算法(不是神经网络)

何を解決するか

このプロジェクトは、ブラウザ上で動作する五目並べ(Five in a Row)用のAI対戦相手を提供し、サーバーサイドのバックエンドを必要とせずに、リアルタイムで最善手を計算するコンピュータ相手と対戦できるようにします。

動作方法

現代のニューラルネットワークとは異なり、このAIは古典的なゲーム理論に基づくMinimaxアルゴリズムを使用しています。可能な将来のゲーム状態を特定の深さまで探索することで、各手の評価を行います。パフォーマンスと効率を向上させるために、以下の最適化を実装しています:

  • Alpha-Beta Pruning:探索木における評価ノード数を削減します。
  • Iterative Deepening:時間制約内で最善手を見つけるために、徐々に探索深さを増加させます。
  • Zobrist Hashing:置換表を使用して、以前に評価された局面をキャッシュします。
  • Killer Move Ordering:他の分岐でカットオフを引き起こした手を優先して探索します。
  • PVS (Principal Variation Search):探索プロセスをさらに最適化します。

対象ユーザー

  • ブラウザ上でAIと五目並べを楽しみたい一般ユーザー。
  • 古典的なゲームAI、探索アルゴリズム、ヒューリスティック評価関数の実装方法を学びたい開発者。

特徴

  • 完全なフロントエンド実装:AIはJavaScriptでブラウザ内で完全に動作し、初期ページ読み込み後はオフラインでも利用可能。
  • 包括的なテストスイート:独立したプロセスを使用してElo評価、勝率、ノード処理速度を測定する専用のAI評価ツールを備えています。
  • 戦術的問題セット:AIの手選びに「漏れ」やエラーがないかを検出するための組み込み戦術パズルライブラリ。
  • 難易度のカスタマイズ:探索深さを調整することで、AIの強さと処理時間のバランスを自在に変更可能。

関連

  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト