科目B
基本情報技術者試験 科目B サンプル問題セット(2022年12月公表) 問15
次の記述中のaとbに入れる正しい答えの組合せを,解答群の中から選べ。
三目並べにおいて自分が勝利する可能性が最も高い手を決定する。次の手順で,ゲームの状態遷移を木構造として表現し,根以外の各節の評価値を求める。その結果,根の子の中で最も評価値が高い手を,最も勝利する可能性が高い手とする。自分が選択した手を○で表し,相手が選択した手を×で表す。
〔手順〕
(1) 現在の盤面の状態を根とし,勝敗がつくか,引き分けとなるまでの考えられる全ての手を木構造で表現する。
(2) 葉の状態を次のように評価する。
① 自分が勝ちの場合は 10
② 自分が負けの場合は-10
③ 引き分けの場合は 0
(3) 葉以外の節の評価値は,その節の全ての子の評価値を基に決定する。
① 自分の手番の節である場合,子の評価値で最大の評価値を節の評価値とする。
② 相手の手番の節である場合,子の評価値で最小の評価値を節の評価値とする。
ゲームが図の最上部にある根の状態のとき,自分が選択できる手は三つある。そのうち A が指す子の評価値はaであり,B が指す子の評価値はbである。
〔図〕三目並べの状態遷移(盤面は上の行から順に「/」で区切り,空きマスは「・」で示す。段の右端に手番を記載)
第1段(自分の手番): 根の状態 ×○×/×○○/・・・
根から3本の枝: 左の枝に A,中央の枝はラベルなし,右の枝に B
第2段(相手の手番):
A の子: ×○×/×○○/○・・
中央の子: ×○×/×○○/・○・(勝ち 評価値 10)
B の子: ×○×/×○○/・・○
第3段(自分の手番):
A の子の子1: ×○×/×○○/○×・
A の子の子2: ×○×/×○○/○・×
B の子の子1: ×○×/×○○/×・○(負け 評価値 -10)
B の子の子2: ×○×/×○○/・×○
第4段:
A の子の子1 の子: ×○×/×○○/○×○(引き分け 評価値 0)
A の子の子2 の子: ×○×/×○○/○○×(勝ち 評価値 10)
B の子の子2 の子: ×○×/×○○/○×○(引き分け 評価値 0)
図 三目並べの状態遷移
答えを選ぶ
出典:基本情報技術者試験 科目B サンプル問題セット(2022年12月公表) 問15(問題文は IPA の公開問題。図・数式・下線などはテキストに直して掲載。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:ア
覚える知識
ミニマックス法による評価値
ミニマックス法では、自分の手番の節は子の最大値を、相手の手番の節は子の最小値を評価値にして、葉から根へさかのぼる。
この問題で必要なこと
A の子は相手の手番なので、子の評価値の最小を取る。その子はそれぞれ自分の手番で、子は 0 と 10。min なので a=0。B の子も相手の手番で、子は −10 と(葉が 0 の節なので)0。min なので b=−10。正解はア。
ひっかけ
A の節で最大を取ると 10(ウ・エ)になる。B 側で引き分け 0 の枝だけを見ると b=0(イ・エ)になる。手番の取り違えを誘う。