コンテンツにスキップ

Features Modules

対象: pca.features

Purpose

CABT observation、ログ、盤面、legal option を、NN と探索が使える token / object 表現に変換する。動的 action space を扱うため、state と action は分離して encode する。

Modules

Module Role Implementation Details
pca.features.encoder observation encoder encode_observation() が中心。state tokens、history tokens、action tokens、card ids、unified object rows、min_count/max_count をまとめた EncodedObservation を返す。
pca.features.vocab vocabulary token kind/value から安定 token id を作る。static card / attack feature token もここで vocabulary を共有する。

Public API

API Usage
encode_observation(obs, card_db=None) policy/value model と search の入力を作る。
token(kind, value) テストや static feature で明示 token を作る。
get_value(obj, name, default=None) dict/dataclass/attribute 混在の CABT object から値を読む。
encode_static_card_features(card, vocab) card metadata を token 化する。
encode_static_attack_features(attack, vocab) attack metadata を token 化する。

EncodedObservation Contract

Field Meaning
state_tokens 公開盤面 token。
history_tokens log history token。
action_tokens legal option ごとの token。
state_card_ids / action_card_ids / history_card_ids static card embedding 用 ID。
state_objects / action_objects / history_objects unified model 用 object rows。
min_count / max_count CABT selection の選択数制約。

Usage

from pca.features.encoder import encode_observation

encoded = encode_observation(obs)
if encoded.action_count:
    first_action_tokens = encoded.action_tokens[0]

Notes

  • fixed action class は使わない。select.option の順番に合わせた action-conditioned model を前提にする。
  • hidden zone は public information として見える範囲だけ encode する。full observation labels は training target 側でのみ使う。