科目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 の公開問題。図・数式・下線などはテキストに直して掲載。解説は当サイト作成)

科目Bの解き方と全問の一覧

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:ア

覚える知識

ミニマックス法による評価値

ミニマックス法では、自分の手番の節は子の最大値を、相手の手番の節は子の最小値を評価値にして、葉から根へさかのぼる。

この問題で必要なこと

A の子は相手の手番なので、子の評価値の最小を取る。その子はそれぞれ自分の手番で、子は 0 と 10。min なので a=0。B の子も相手の手番で、子は −10 と(葉が 0 の節なので)0。min なので b=−10。正解はア。

ひっかけ

A の節で最大を取ると 10(ウ・エ)になる。B 側で引き分け 0 の枝だけを見ると b=0(イ・エ)になる。手番の取り違えを誘う。