【要約】AIエージェント初心者がポケカの知識を使ってルールベースAIを改善してみた [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
Kaggleのシミュレーション部門に参加した開発者が、公式のルールベースAIの不合理な挙動に直面した。ゲームのルールを理解しているプレイヤーの視点から、以下の課題が特定された。
- ・ダメージ増加アイテムを、不要な場面でも使用する。
- ・特性によりダメージを受けないポケモンに攻撃を行う。
- ・サイドレース(勝利条件)を考慮した判断ができていない。
// Approach
開発者は、パワープロテインの無駄打ちを防ぐため、スコアリングロジックに条件分岐を実装した。現在の盤面と、次に実行予定のアクションを組み合わせた判定手法を採用している。
- ・
power_pro_used変数を導入し、ターン内の使用枚数を管理する。 - ・
AttackPlanのremain_hpを用い、KOに必要な最小枚数を算出する。 - ・次に使用予定のサポートカード(ゼイユ、リーリエの決心等)を判定し、使用順序を制御する。
// Result
修正版をKaggleへ提出し、対戦ログを検証した結果、意図した挙動の実現を確認した。
- ・不要な場面でのアイテム温存や、ゼイユ使用前の先行使用を実現した。
- ・一方で、レーティングは625.6から624.1へと微減した。
- ・局所的な判断の改善だけでは、ゲーム全体の勝率向上には直結しないことが判明した。
Senior Engineer Insight
> ドメイン知識をルールに反映させる手法は、既存システムの迅速な改善に極めて有効である。しかし、変数が膨大で相互作用が複雑な環境では、手動の重み付けには限界がある。スケーラビリティを確保するには、強化学習を用いて重み自体を自動最適化するアプローチへの移行が不可欠である。