1
0

Pythonで〇×ゲームのAIを一から作成する その59 演繹法とヒューリスティックによる問題の解決

Last updated at Posted at 2024-03-04

目次と前回の記事

これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

これまでに作成した AI

これまでに作成した AI の アルゴリズム は以下の通りです。

ルール アルゴリズム
ルール1 左上から順空いているマス を探し、最初に見つかったマス着手 する
ルール2 ランダム なマスに 着手 する
ルール3 真ん中 のマスに 優先的着手 する
既に 埋まっていた場合ランダム なマスに 着手 する
ルール4 真ん中 のマスの 優先的着手 する
既に 埋まっていた場合ランダム なマスに 着手 する
ルール5 勝てる場合勝つ
そうでない場合は ランダム なマスに 着手 する
ルール6 勝てる場合勝つ
そうでない場合は 相手の勝利阻止 する
そうでない場合は ランダム なマスに 着手 する
ルール6改 勝てる場合勝つ
そうでない場合は 相手勝利できる 着手を 行わない
そうでない場合は ランダム なマスに 着手 する
ルール7 真ん中 のマスに 優先的着手 する
そうでない場合は 勝てる場合勝つ
そうでない場合は 相手の勝利阻止 する
そうでない場合は ランダム なマスに 着手 する
ルール7改 真ん中 のマスに 優先的着手 する
そうでない場合は 勝てる場合勝つ
そうでない場合は 相手勝利できる 着手を 行わない
そうでない場合は ランダム なマスに 着手 する
ルール8 真ん中 のマスに 優先的着手 する
そうでない場合は 勝てる場合勝つ
そうでない場合は 相手勝利できる 着手を 行わない
そうでない場合は、自分の手番勝利できる ように、「自 2 敵 0 空 1」が 1 つ以上 存在する 局面になる着手を行う
そうでない場合は ランダム なマスに 着手 する
ルール9 真ん中 のマスに 優先的着手 する
そうでない場合は 勝てる場合勝つ
そうでない場合は 相手勝利できる 着手を 行わない
そうでない場合は、自分の手番必ず勝利できる ように、「自 2 敵 0 空 1」が 2 つ以上存在する 局面になる着手を行う
そうでない場合は、自分の手番勝利できる ように、「自 2 敵 0 空 1」が 1 つ存在する 局面になる着手を行う
そうでない場合は ランダム なマスに 着手 する
ルール10 真ん中 のマスに 優先的着手 する
そうでない場合は 勝てる場合勝つ
そうでない場合は 相手勝利できる 着手を 行わない
そうでない場合は、自分の手番必ず勝利できる ように、「自 2 敵 0 空 1」が 2 つ以上存在する 局面になる着手を行う
そうでない場合は、以下 の 2 つを 総合的に判断 して着手を行う
  • 自分の手番勝利できる ように、「自 2 敵 0 空 1」が 1 つ存在する 局面になる着手を行う
  • 自分有利になる ように、「自 1 敵 0 空 2」が 最も多い 着手を行う
そうでない場合は ランダム なマスに 着手 する
ルール11 真ん中 のマスに 優先的着手 する
そうでない場合は 勝てる場合勝つ
そうでない場合は 相手勝利できる 着手を 行わない
そうでない場合は、自分の手番必ず勝利できる ように、「自 2 敵 0 空 1」が 2 つ以上存在する 局面になる着手を行う
そうでない場合は、以下 の 3 つを 総合的に判断 して着手を行う
  • 自分の手番勝利できる ように、「自 2 敵 0 空 1」が 1 つ存在する 局面になる着手を行う
  • 自分有利になる ように、「自 1 敵 0 空 2」が 最も多い 着手を行う
  • 相手不利になる ように、「自 0 敵 1 空 2」が 最も少ない 着手を行う
そうでない場合は ランダム なマスに 着手 する

基準となる ai2 との 対戦結果(単位は %)は以下の通りです。太字ai2 VS ai2 よりも 成績が良い 数値を表します。欠陥 の列は、アルゴリズム欠陥 があるため、ai2 との 対戦成績良くても強い とは 限らない ことを表します。欠陥の詳細については、関数名のリンク先の説明を見て下さい。

関数名 o 勝 o 負 o 分 x 勝 x 負 x 分 欠陥
ai1
ai1s
78.1 17.5 4.4 44.7 51.6 3.8 61.4 34.5 4.1 あり
ai2
ai2s
58.7 28.8 12.6 29.1 58.6 12.3 43.9 43.7 12.5
ai3
ai3s
69.3 19.2 11.5 38.9 47.6 13.5 54.1 33.4 12.5
ai4
ai4s
83.0 9.5 7.4 57.2 33.0 9.7 70.1 21.3 8.6 あり
ai5
ai5s
81.2 12.3 6.5 51.8 39.8 8.4 66.5 26.0 7.4
ai6 88.9 2.2 8.9 70.3 6.2 23.5 79.6 4.2 16.2
ai6s 88.6 1.9 9.5 69.4 9.1 21.5 79.0 5.5 15.5
ai7
ai7s
95.8 0.2 4.0 82.3 2.4 15.3 89.0 1.3 9.7
ai8s 98.2 0.1 1.6 89.4 2.5 8.1 93.8 1.3 4.9
ai9s 98.7 0.1 1.2 89.6 2.4 8.0 94.1 1.3 4.6
ai10s 97.4 0.0 2.6 85.6 2.6 11.7 91.5 1.3 7.2
ai11s 98.1 0.0 1.9 82.5 1.9 15.6 90.3 1.0 8.7 あり

今回の記事の内容

以前の記事で、〇×ゲーム強い AI作成 するための 条件 を、必要条件十分条件、その どれでもない条件分類 して 説明 を行いましたが、その際にはまだ 最強の AI とはどのようなものであるかの 説明行っていません でした。

そのため、これまでの記事行ってきたさまざまルールの条件考え、その 条件を処理 するプログラムを 記述 することで、強い AI作成 するという 方法 が、最強の AI作成つながる方法であるか どうかは 説明 していません。

前回の記事で、二人零和有限確定完全情報ゲーム における、最善手最強の AI下記 のように 定義 しました。

最善手 とは、お互い最善手選択し続けた 場合に、自分 にとって 最も有利 となる 合法手 のことである。

最強の AI とは、すべての局面 で、最善手選択する AI のことである。

今回の記事では、この定義基づいて〇×ゲーム最強の AI を作るための 条件 を説明し、これまでの手順 と、最強の AI作る手順関係 について 説明 します。

用語の定義

前回の記事で「最強の AI」の 定義 を行いましたが、これまでの記事 では、「これまでに作成 した 最強の AI」のように、全く同じ用語 を、異なる意味利用 してきました。後者 は、「これまでに作成 した AI の中」での 最も強い AI という 意味 なので、前者 の用語とは 意味が異なります。これでは 紛らわしい ので、以後は、後者の場合 は、これまでに作成 した中で「最も強い AI」のように、用語使い分ける ことにします。

用語 用語の意味
最強の AI 前回の記事で定義した、文字通り最強 の AI のことを表す
最も強い AI いくつかの AI の中最も強い AI という意味

〇×ゲームの最強の AI の再定義

これまで に行ってきた AI作成方法 によって、最強の AI作成できる ことを 示す ために、下記最強の AI定義 を、別の言い方再定義 することにします。

最強の AI とは、すべての局面 で、最善手選択する AI のことである」

前回の記事のノートで、下記 のような 説明 を行いました。

  • 最善手選択しない 場合は 局面の状況悪化 する
  • 〇×ゲーム の場合は、状況の悪化 には 「必勝 → 引き分け」、「必勝→必敗」、「引き分け→必敗」という 3 種類 がある
  • 合法手 を、状況何段階悪化するか によって 分類 すると、下記の表 のようになる

この表は、局面の状況 で、それぞれに 分類される着手行った場合 に、局面の状況どのように変化するか を表します。空欄合法手存在しない ことを表します。

局面の状況 最善手 1 段階悪化する着手 2 段階悪化する着手
必勝 必勝 引き分け 必敗
引き分け 引き分け 必敗
必敗 必敗

先程説明したように、最強の AI定義 は「すべての局面最善手選択 する」なので、上記の表 を使って 最強の AI再定義 を行うと、「すべての局面 で、下記の 太字の合法手選択 する」のようになります。

局面の状況 最善手 1 段階悪化する着手 2 段階悪化する着手
必勝 必勝 引き分け 必敗
引き分け 引き分け 必敗
必敗 必敗

表からわかるように、必敗の局面 では、すべて合法手最善手 になるので、すべての AI必敗の局面 では 最善手選択 します。従って、上記の表から 必敗の局面状況削除 することができます。

最強の AI とは、下記すべて局面の状況 で、太字合法手選択する AI である。

局面の状況 最善手 1 段階悪化する着手 2 段階悪化する着手
必勝 必勝 引き分け 必敗
引き分け 引き分け 必敗

これまでに作成したルールの条件の意味

これまで作成 した ルール条件 によって、最強の AI近づく ことができる 理由説明 します。

これまで の記事で 作成 した AIルールの条件 は、下記目指す ものです。

  1. 真ん中 のマスに 着手 する
  2. 自分勝利できる
  3. 相手勝利できない
  4. 自分勝利できそうになる
  5. 相手勝利できなさそうになる

上記の条件のうちの、条件 23 は、下記 のように 言い換える ことができます。

2. 自分の必勝局面最善手選択 する
3. 自分の必敗局面以外 で、必敗の局面 になるような 合法手選択しない

この 2 つそれぞれの条件 と、最強の AI定義 との 関係 について説明します。

自分が勝利できる条件

自分勝利できる条件 は、必勝の局面 で、最善手選択 するという 条件 です。従って、この条件 は、必勝の局面下記の表青字 の合法手を 選択 し、その結果 赤字 の合法手が 選択されなくなります。一方、この条件 は、引き分けの局面 では 適用されない ので、引き分けの局面 では すべての合法手選択 される 可能性あります

  • 太字最強の AI選択 する 必要がある 合法手
  • 下線ルールの条件 によって 選択される 合法手
  • 青字ルールの条件 によって、結果 として 選択行われる 合法手
  • 赤字ルールの条件 によって、結果 として 選択行われなくなる 合法手
  • 黒字:ルールの条件 とは 無関係 な合法手で、選択 が行われる 可能性がある 合法手
局面の状況 最善手 1 段階悪化する着手 2 段階悪化する着手
必勝 必勝 引き分け 必敗
引き分け 引き分け 必敗

表から、この条件引き分けの局面 で、最善手ではない必敗の局面 につながる 合法手選択 される 可能性がある という点が、最強の AI定義異なります

上記の場合は、「必勝」の部分に 青字下線両方が設定 されているので、青字下線違いわかりづらい と思います。次の例 では、青字下線別々設定される ので、その違い については 次の例説明 します。

相手が勝利できない条件

相手勝利できない」条件 は、必敗の局面つながる合法手選択しない という 条件 です。従って、この条件 によって、下図取り消し線引かれている必敗の局面つながる合法手選択されない ようにすることが できますその結果それ以外青字合法手選択される ようになります。

  • 取り消し線ルールの条件 によって 選択行わない 合法手
局面の状況 最善手 1 段階悪化する着手 2 段階悪化する着手
必勝 必勝 引き分け 必敗
引き分け 引き分け 必敗

表から、この条件必勝の局面 で、最善手ではない引き分けの局面 につながるの 合法手選択 される 可能性がある という点が、最強の AI定義異なります

先程 の場合と 異なり青字合法手 は、条件 によって 直接選択 される 合法手ではなく必敗の局面つながる合法手選択 から 除外する ことで、結果 として 選択される ようになった 合法手 です。そのため、上記 の表では、選択される 青字合法手 には 下線引きません

1 つ前自分が勝利できる 条件の 表で 、「必勝の局面」の 赤字合法手取り消し線引かれていない理由同様 で、赤字合法手 は、ルールの条件 によって 直接除外 されている わけではなく下線合法手選択する ことによって、結果 として 除外された からです。

最強の AI定義別の言い方再定義 した 理由 は、そのように定義し直すことで、ルールの条件選択 する 合法手 を、最強の AI定義 を使って 説明できるようになる からです。

2 つの条件の組み合わせ

自分勝利できる」条件と「相手勝利できない」条件を 組み合わせる ことで、下記 の表ように、選択 される 青字合法手 が、最善手 を表す 太字合法手のみ になるので、すべて局面の状況 で、最善手のみ選択される ようになります。従って、最強の AI作成する ためには、「自分勝利できる」条件と、「相手勝利できない」条件の 2 つの条件組み合わせればよい ことが わかります

局面の状況 最善手 1 段階悪化する着手 2 段階悪化する着手
必勝 必勝 引き分け 必敗
引き分け 引き分け 必敗

従って、最強の AI定義 を、以下 のように、さらに 再定義 することができます。

最強の AI とは、下記の 両方の条件満たす AI である。

  1. 必勝の局面 になる 合法手存在する場合 は、必ずその合法手選択する
  2. 必敗以外の局面 で、必敗の局面 につながる 合法手選択しない

上記の事から、これまでの 強い AI作成する ための ルール の中の 下記の条件 が、最強の AI作成 するための 正しい条件 であることが 分かります

  • 自分勝利できる
  • 相手勝利できない

上記で 両方の条件満たす と説明しましたが、1 つ目条件満たされた場合 は、必敗の局面 になる 合法手選択していない ので、2 つ目条件必ず満たされます。逆に 2 つ 目条件満たされた 場合に、1 つ目 の条件が 満たされる とは 限らない 点に 注意 して下さい。

他の条件の考察

最強の AI定義満たす条件 は、他にも存在 します。

例えば、「相手勝利できない」という 条件代わり に、「引き分けの局面 で、引き分けの局面つながる 合法手を 選択する」という 条件 はどうでしょうか。下記 は、そのような条件 によって 選択 される 合法手 です。

局面の状況 最善手 1 段階悪化する着手 2 段階悪化する着手
必勝 必勝 引き分け 必敗
引き分け 引き分け 必敗

この条件 と、「自分勝利できる」条件を 組み合わせる ことで、下記 の表のように、すべて局面の状況 で、最善手のみ選択される ようになります。

局面の状況 最善手 1 段階悪化する着手 2 段階悪化する着手
必勝 必勝 引き分け 必敗
引き分け 引き分け 必敗

従って、「引き分けの局面 で、引き分けの局面つながる 合法手を 選択する」という 条件 でも 最強の AI作成 すること 可能 ですが、この条件 には 大きな欠点あります。それは、この条件合法手選択する ためには、局面の状況 が「引き分けの局面であるか どうかを 判定 する 必要がある ことです。多くの局面 では 局面から、その 局面の状況どうなっているか判定する ことは 簡単 なこと ではありません。それに対し、「自分勝利できる」という 条件 や、「相手勝利できない」という 条件 は、局面の状況判定 する 必要がない 点が 優れています

もちろん、「引き分けの局面 で、引き分けの局面つながる 合法手を 選択する」という 条件を満たす 合法手を 見つける方法思いつく ことが できればその方法 を使って 最強の AI作成する ことは 可能 です。

必勝の局面につながる合法手が複数ある場合

実は 先程定義 した下記の 最強の AI定義 は、必勝の局面 になる 合法手数が 1 つ の場合は 正しい ですが、複数存在 する場合は 厳密 では ありません

最強の AI とは、下記の 両方の条件満たす AI である。

  1. 必勝の局面 になる 合法手存在する場合 は、必ずその合法手選択する
  2. 必敗以外の局面 で、必敗の局面 につながる 合法手選択しない

必勝の局面 になる 合法手複数存在 する場合は、その中どの合法手選択 しても、最善手を選択 したことになります。従って、上記の定義1 つ目の条件 は、厳密 には 下記 のようになります。

必勝の局面 になる 合法手存在する場合 は、必ずその合法手いずれか選択する

例えば、必勝の局面 になる 合法手複数ある 場合は、常に そのうちの 1 つのみを選択 する AI であっても、その中から ランダムに選択 する AI であっても、最強の AI定義満たします前回の記事で説明した、最善手複数存在 する場合は、最強の AI複数存在 するという 説明思い出してください

2 つ目の条件 は、特に 修正する必要ありません が、1 つ目2 つ目条件同時に満たされる 合法手が 複数存在した場合 に、その中の どの合法手選択 しても 構わない点上記と同様 です。

下記は、最強の AI定義修正 したものです。

最強の AI とは、下記の 両方の条件満たす AI である。

  1. 必勝の局面 になる 合法手存在する場合 は、必ずその合法手いずれか選択する
  2. 必敗以外の局面 で、必敗の局面 につながる 合法手選択しない

ところで、この 2 つの条件 は、ルール 8 の時点 ですでに ルール組み込まれている ので、ルール 8実装した時点最強の AIなっていない のは だと 思いませんか?実際には、それにもかかわらず、ルール 91011 のように 条件を追加 することで、AI強くなっています。そのようなことが起きる理由について少し考えてみて下さい。

これまでのルールの条件の問題点

これまでルール組み込んだ自分勝利できる」や「相手勝利できない」という 条件 には、特定の局面だけ でしか 適用できない という 問題あります

ルール 11 の自分が勝利できる条件の問題点

ルール 11 の「自分勝利できる」条件には 下記2 つの条件あります

1. 勝てる場合勝つ
2. 「自 2 敵 0 空 1」が 2 つ以上存在 する着手を行う

これらの条件 が、すべて必勝の局面最善手選択 することが できない ことを 示します。下記の 3 つの局面 は、いずれも 〇 の手番 で、〇 の必勝局面 です。

下記は、その 理由 です。

  • 左の局面(2, 2)着手 することで 勝利する
  • 真ん中の局面(0, 1) または (0, 2)着手 することで、「自 2 敵 0 空 1」が 2 つ以上存在 するようになるので、必勝の局面 である
  • 右の局面(0, 0)着手 すると、相手〇 の勝利阻止するため(2, 2)着手 する 必要 がある。その結果上記真ん中の局面になる ため、必勝の局面 である

実は、右の局面 は、(1, 2) 以外 は、すべて 必勝の局面 につながる 最善手 です。興味がある方はその理由を実際に確認してみて下さい。

下記は、上記の 3 つの局面 に対して、ルール 11 の「自分勝利できる2 つの条件最善手選択できるか どうかを表す表です。表から わかるように、右の局面 に対して、どちらの条件最善手選択 することは できません

左の局面 真ん中の局面 右の局面
勝てる場合勝つ × ×
自 2 敵 0 空 1」が 2 つ以上
存在 する着手を行う
× ×

つまり、ルール 11 の「自分勝利できる」2 つの 条件だけ では、すべて必勝の局面最善手を選択 するには、条件が足りない ということです。

ルール 11 の相手が勝利できない条件の問題点

ルール 11 の「相手勝利できない条件 は、具体的には『「自 0 敵 2 空 1」が 存在 する着手を 行わない』という条件ですが、この条件 だけでは、すべて必敗以外の局面必敗の局面つながる合法手選択しない ようにすることは できません具体例 として、下図の局面 があります。証明今後の記事 で行いますが、この局面の状況 は、「引き分けの状況」です。

この局面 では、(0, 0) などの 隅の合法手最善手 で、(1, 0) などの 辺の合法手最善手 では ありません(1, 0)最善手ではない理由 は、(1, 0)着手 すると 先程 の図の 右の局面 になり、その局面先程説明 したように、× の必敗の局面 であるからです。

しかし、『「自 0 敵 2 空 1」が 存在 する着手を 行わない』という 条件 だけでは、上記の局面(1, 0)着手選択阻止 することは できません

上記 から、ルール 11条件 は、最強の AI の定義満たさない ことがわかります。

これまでの AI の作成の手順の意味と問題点

これまで の記事で 作成 した、下記の AIルールの条件 のうち、23 は、最強の AI定義条件と同じもの です。従って、これまで強い AI作成の手順方針間違っていない ことが わかりました

  1. 真ん中 のマスに 着手 する
  2. 自分勝利できる
  3. 相手勝利できない
  4. 自分勝利できそうになる
  5. 相手勝利できなさそうになる

また、これまでに 作成 した ルールの条件 によって、最強の AI作れていない のは、それらが 最強の AI定義条件一部しか満たさない ことが 原因 です。

演繹法とヒューリスティックによる問題の解決

最強の AI作成 するための 条件 と、これまでに作成 してきた ルール問題点わかりました が、その 問題点解決 することは 簡単ではありません。その 理由を説明 するために、問題を解決 する 手法分類 し、それぞれの分類性質説明 します。

演繹法

演繹法 とは、問題解決方法 を、問題前提 から 論理的導き出す方法 です

参考までに、演繹の Wikipedia のリンクを下記に示します。

例えば、ルール 11 の「自分勝利できる合法手条件 である、『「自 2 敵 0 空 1」が 2 つ以上存在 する着手を行う』という条件は、以前の記事で、〇×ゲーム前提 となる ルールから筋道をたてて論理的1見つけた条件 です。このような 演繹法見つけた手順 には、下記 のような 性質 があります。

  • 前提正しければ演繹 によって 導き出された答え は、100 % 正しい
  • 手順に従う ことができれば、100 % 問題を解決する ことが できる
  • 手順の意味理解できなくても、手順を覚えれば 誰でも利用 することが できる

逆に言えば、前提間違っていれば正しい答え導き出す ことは できません。例えば、「私は万能の神である」という 間違った前提 からは、「私は 万能なので 空を飛べる」などの、間違った答え導くことできてしまいます。従って、演繹法 では 前提が正しい ことが 非常に重要 です。

演繹法代表例 としてよく取り上げられるのは、「A ならば B である」、「B ならば C である」という 事実 から「A ならば C」であるという 事実導く三段論法 があります。本記事 でこれまでに何度も行ってきた、何かを説明した後で、その 説明を元 に、「従って 〇〇である」のような 説明演繹法 を使った 説明 です。

他の 演繹法 としては、下記の $ax^2 + by + c = 0$ という 二次方程式解の公式 があります。この 公式 は、論理的手順導かれたもの であり、公式の意味理解しなくても誰でも この 公式を使って二次方程式の解求める ことが できます

$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$

二次方程式解の公式 は、複雑な問題 でも、答え計算する方法 さえ わかっていれば誰でも答えを求める ことが できる という として出したものです。

〇×ゲーム二次方程式解の公式必要ない ので、上記の公式の 意味使い方理解 する必要は ありません

演繹法問題点 は、世の中の 多くの問題 は、演繹法 を使って 答えを求める手順見つける ことが できない ことです。また、手順みつける ことが できても、それを 実際に行う ためには、時間がかかりすぎる ような 問題 もあります。

例えば、何らかの スポーツ世界最強のチーム見つける方法 として、総当たり戦 があります。総当たり戦 を行う 手順 は、全チーム全ての組み合わせ対戦を行う というものですが、実際に 総当たり戦を行う ためには、チーム数 が $x$ の場合は、$x(x-1)/2$ 回の 対戦を行う必要 があります。例えば、100 チーム総当たり戦 を行う場合は $100 * 99 / 2 =$ 4950 回 もの 対戦行う必要 があります。

問題解くための方法わからない例 としては、「金持ちになる」という問題があります。おそらく、誰でも この手順を行えば、金持ちになる ことができるという 手順存在しない でしょう。他にも、「嘘を見抜く」という問題に対する 確実な手順存在しない でしょう。一般的 に、現実の世界多くの問題 は、物事因果関係2複雑絡み合う 場合が 多い ため、問題を解く ための、方法みつける ことは 不可能 です。

近似解

100 % 正しい 答えを 得る手順わからなくても正解一定以上近い答え得る手順 であれば 知ることができる 場合があります。そのような答え の事を 近似解 と呼び、正しい答え近似解の差 の事を 誤差 と呼びます。例えば、鉛筆の長さ正確に求める ことは 不可能 ですが、定規 を使えば、最大で 1 mm誤差長さを測る ことが できます。なお、近似解求める方法 も、演繹法の一種 です。

近似解に対して、100 % 正しい答え の事を、最適解 と呼びます。

近似解 はには 必ず誤差あります が、正解より簡単に求める ことが できる 場合が多いので、誤差問題にならない ような 場合 などで 良く使われます

例えば、986 × 1023 という 計算を行う のは 面倒 ですが、大雑把な答え でも かまわない 場合は、どちらも 1000 に近い数字 であることから、1000 × 1000 = 100 万 という 簡単な計算 で求められる 近似解で代用 することが できます

先程100 チーム総当たり戦 を行う スポーツの例 では、下記の方法で、最も強いチーム近似解求める ことが できます

  • 100 チーム10 チームずつグループ分け する
  • グループごと10 チーム総当たり戦 を行う
  • グループで優勝 した 10 チーム総当たり戦 を行う

この方法 の場合の 試合数下記 の方法で 求める ことが できます

  • 10 チームの総当たり戦の 試合数 は、$10 × 9 / 2 =$ 45 試合 である
  • 10 チームの総当たり戦は、10 グループ と、決勝の総当たりで、11 回 行う
  • 従って、総試合数は、 $45 × 11 = $ 495 試合 である

このように、近似解 の場合の 試合数 は、先ほどの 100 チーム総当たり戦 を行った 場合 である 4950 試合1/10 になり、大幅に減らす ことが できます

一方、たまたま 強豪チーム多いグループ当たってしまった ため、強いチームグループリーグ戦勝ち残れない というようなことがあるため、優勝チーム本当世界一のチーム であるとは 限らない という 誤差 があります。

なお、最初から勝ち抜き戦優勝を決める 場合は、試合数99 試合 ですみますが、さらに精度が落ちる でしょう。夏の全国高校野球選手権 は、毎年 約 3500 もの チームが参加 するので、精度を犠牲 にして、最初から勝ち抜き戦採用 しています。

ルール 11 の 下記の 3 つの条件 は、いずれも、最強の AI定義条件一部を満たす 条件なので、ルール 11下記の条件 のみによって 作られた AI は、最強の AI近似解 ということができます。

  • 勝てる時勝つ
  • 自 1 敵 2 空 1が存在 する 着手行わない
  • 自 2 敵 0 空 1」が 2 つ以上存在 する 着手行う

一方、近似解 であっても 求める手順わからなかったり手順 を行うために 時間がかりすぎる 場合があります。また、近似解 では、精度低すぎる という場合もあります。そのような場合は、ヒューリスティック という 手法 が使われます。

ヒューリスティック

ヒューリスティック は、心理学 や、コンピュータ科学 などで使われる 用語 で、その 意味心理学コンピューター科学若干異なります

帰納法とは何か

いずれの場合 でも、経験基づく帰納法 に分類される 手法 です。帰納法 は、経験から 問題に関する 法則を推測 することで 問題を解く という方法なので、演繹法と異なり、100 % 正しい答え得られません が、理屈分からなくてもある程度正しい答え が得られると 考えられる方法求めることができる という 利点 があります。

たとえば、毎朝日の出観察 することで、その経験 から 太陽東から昇る という、おそらく正しい であろう 法則を知る ことができますが、その際に、太陽が東から昇る 理由はわかりません経験則 が必ずしも 正しいとは限らない例 として、中世まで は、太陽地球の周りをまわっている という、天動説信じられていた ことが挙げられます。これには 宗教的な理由 もありますが、太陽の動きを見た際 に、太陽 の方が 地球の周りをまわっている ように 見える という 経験か らの 間違った推測一因 でしょう。

一方、地球の自転太陽の位置 などの 法則調べ太陽東から昇る ことや、地球太陽の周りをまわっている ことを 論理的導き出す のが 演繹法 です。

参考までに、Wikipedia の帰納とヒューリスティックのリンクを示します。

心理学におけるヒューリスティック

心理学 における、ヒューリスティック とは、その手順問題を解く ことができる 保証はない が、自分の 経験など から 有効である可能性が高い と思われる 手順用いる という 手法 のことです。ヒューリスティック は日本語で、発見的手法 と呼ばれますが、経験を元問題を解決 することから、経験則呼ばれる こともあります。

ヒューリスティック は、問題厳密に解く ための 手法近似解求める ための 手法発見されていない場合 や、問題を解くため時間をかけることができない 場合などで 用いられます。なお、ヒューリスティック は、経験の少なさ や、間違った経験の解釈 を行うなどの 理由 で、正しい答え得られない可能性 がある点に 注意 が必要です。ヒューリスティック によって生まれる、認知上の偏り認知バイアス と呼びます。

ヒューリスティックの例 をいくつか挙げます。

正解を知らない クイズの 問題を解く 場合に、インターネットで検索 するなどの 方法 で、時間をかければ正解を求める ことが できます が、答えるまでの 制限時間 がある場合は その方法をとる ことは できません。そのような場合は、経験から答えを推測 して 解答する必要 があります。その際に、クイズの問題似た問題解いた経験豊富であれば正解可能性が高く なりますが、経験が乏しい場合正解可能性は低くなる でしょう。ただし、その方法で、100 % 正解答える ことは 不可能 です。

はじめて入ったレストラン で、最も美味しい メニューを 食べよう と思った場合に、メニューの中 から 最も美味しい ものを 100 % 正しく見つける方法 はおそらく ない でしょう。そのような場合は、メニュー の「名前」、「写真」、「値段」などを 手がかり に、それまで のさまざまな レストランでの食事の経験 から 選択 するしかありません。レストランに入った 経験が多い程美味しいメニューを選択 できる 可能性が高く なりますが、そのような方法で、最も美味しいメニュー100 % 選択 することは 不可能 です。

このように、ヒューリスティック は、必ず 正しい答え を得ることができる とは限りません が、短い時間判断を行う ことが できる という利点があります。世の中 には、正しい答え見つける方法分かっていない場合 や、選択するまで時間が限られている場合 の方が 多い ので、人間日々の生活の中 で行う 判断多く は、ヒューリスティック による 判断 であるといっても 間違いではない でしょう。

コンピューター科学におけるヒューリスティック

コンピュータ科学 における ヒューリスティック は、問題解くための方法分からない 場合や、問題を解くため時間がかかりすぎる 場合などで 利用される方法 で、下記 のような 手順 を、満足な結果 がでるまで 繰り返す ことで 問題を解きます

  1. 問題を解くため の、有望そうな方法 を考える
  2. 考えた方法問題を解き結果を検証 する
  3. 検証した結果 から、それまでの経験 を元に、以下の作業 を行い、手順 2 に戻る
    • それまでに考えた方法修正する
    • 新しい方法 を考えて 加える
    • 見込みがなさそうな方法破棄する

上記からわかるように、この方法は「様々な経験 を通じて 問題解決方法改良 する」という、試行錯誤 で問題を解く方法です。従って、経験問題を解決 する点は、心理学ヒューリスティックと同じ です。また、そのような作業 のことを一般的に 学習 と呼びます。実際に、辞書 では、学習下記 のように 説明 しています。

「人間も含めて動物が、生後に 経験を通じて知識や環境に適応 する 態度・行動 などを 身につけていくこと不安や嫌悪 など 好ましくないもの の体得も 含まれる

また、上記の説明からわかるように、学習 では、成功の経験 だけでなく、失敗の経験重要 です。「失敗から学ぶ」という ことわざ は、まさに そのことを示しています

学習を行う ためには、様々な方法問題を解く という 試み を、何度も行う ことが できる必要 があります。逆に言えば、一度 または、数回しか行えない ような 問題 は、ヒューリスティック で解決するには 向いていません

先程 コンピューター科学 における ヒューリスティック説明 しましたが、この手法 は、元々人間問題を解決 するために 普段行っている学習」を、コンピューター科学応用 したものです。従って、ヒューリスティック を用いて コンピュータ問題を解決 する 手法の事 を「機械学習」と呼びます。

下記は、現実の世界 での ヒューリスティックの例 です。

美味しいカレーレシピを考える という 問題 は、ヒューリスティック では 下記の手順 で行います。なお、調理の手順 まで 考慮 に入れると 問題複雑になる ので、問題簡単にする ため、調理の手順決まっている ものとします。

  1. 美味しいカレーを作るための 材料 と、その 分量考える
  2. 実際カレーを作り食べてみる
  3. カレーの味評価 し、以下 のような 改良方法を考え手順 2 に戻る
    1. 材料の量変える
    2. 新しい材料加える
    3. 不適切材料破棄する

他にも、人間 は「言葉覚える」、「自転車の乗り方覚える」など、さまざまなこと を、ヒューリスティック試行錯誤 による 学習身に付けていきます

コンピューター科学の ヒューリスティック は、得られた答え精度保証されません が、近似解 を求める より短い時間 で、平均的高い精度答えを求める ことが できる場合が多い という 特徴 があります。

2 つのヒューリスティックの違い

先程説明した、心理学 における ヒューリスティック と、コンピューター科学ヒューリスティック には 密接な関係 があります。心理学 における ヒューリスティック は、それまでの経験 で得られた 学習元に して 素早く判断を行う方法 のことですが、その 経験による学習行う のが、コンピューター科学ヒューリスティック です。

従って、それぞれヒューリスティック意味は 以下のようになります。心理学 の場合は、判断を行う際 に、新しい学習行わない点異なります

意味
心理学 それまでに行われた学習 にもとづいて 判断を行う こと
コンピューター科学 学習を行う方法含めて判断を行う こと

ヒューリスティックと評価指標

ヒューリスティック は、経験から学ぶ 手法ですが、そのためには、問題の解決 を試みた 結果良し悪しを判断 する 必要 があります。その理由は、結果の良し悪し判断できなければどこを改良するべきかわからない からです。結果良ければ その 長所を伸ばす という 改良 ができ、悪ければ その 短所を克服する という 改良 ができます。

この 結果良し悪し判断材料 の事を 評価指標 と呼びます。評価指標 には さまざまなものある ため、問題の性質適した 評価指標を 選択する必要 があります。

例えば、成績を上げる という 問題 の場合は、テストの点数評価指標 になります。スポーツ上達する という 問題 の場合は、試合の成績評価指標 になるでしょう。

ただし、状況 によって 同じ評価指標 でも 良いかどうか判断する基準変わる 点に 注意 して下さい。例えば、高校生 が、小学生のテスト100 点 をとったり、小学生相手試合で勝利 しても、特に良い結果 であるとは 言えない でしょう。

アルゴリズムという用語の意味の違い

心理学 では、アルゴリズム という 用語 は、問題100 % 解く とことができる 手順 の事を表し、ヒューリスティック対義語 として 使われます

一方、コンピューター科学 での アルゴリズム は、処理 を行うための 手順 のことを表し、その際に、アルゴリズム問題を 100 % 解く ことが できるか どうかは一般的に 区別しません。従って、ヒューリスティック対義語の意味 では 使われません。例えば、「ヒューリスティックアルゴリズム」のような 表記実際使われます

このように、アルゴリズム という 用語 は、心理学 と、コンピューター科学 では 異なる使われ方 がされる点に 注意 して下さい。本記事 では、もちろん アルゴリズム という 用語 を、コンピューター科学意味使います

演繹法とヒューリスティックの併用

問題を解く際に、演繹法ヒューリスティック両方組み合わせる ことが 良くあります。例えば、スポーツの練習 を行う際に、最初スポーツの入門書 を読んで、その通りに練習 するのが 一般的 ではないかと思います。多くの 入門書 に書かれている 内容 は、科学的な方法など演繹法 によって 検証 された、誰でも その方法で練習することで ある程度のレベル までは 上達できる 方法です。

しかし 一般的 には、誰でもスポーツの中級者 になることができる 手順あっても誰でも上級者 になるための 手順ありません上級者 になるためには 自分様々な経験 を積んで 試行錯誤を行う という ヒューリスティック な方法を 行う必要 があります。

下記は、そのことをまとめたものです。

  • 最初 は、演繹法 を使って、ある程度 までの 精度問題を解決 する
  • 演繹法 では 精度を上げられないレベル に到達したら、ヒューリスティック で、自分精度を上げる方法見つけていく

実は、これまでの記事〇×ゲーム強い AI作成する際 に、上記の手順 で作成を 行ってきましたルール 11下記の条件 は、演繹法 で求めた 条件 であり、下記の条件組み込む ことで、実際ある程度まで強い AI作成 することができました。

  • 自分勝利できる
  • 相手勝利できない

ただし、残念ながら、ルール 11上記の条件 では、すべての局面最善手選択 することは できません。また、すべての局面 で、最善手選択する方法わからない ので、ここから は、ヒューリスティック方法利用 する 必要あります

ai11s で行われたヒューリスティックの手順

ルール 11下記の条件 は、ヒューリスティック による 条件 です。

  • 真ん中 のマスに 着手 する
  • 自分勝利できそうになる
  • 相手勝利できなさそうになる

実際 に、上記の条件ai11s組み込む際 に、下記ヒューリスティック による 手順行っていた ことを示します。なお、真ん中 のマスに 着手する という条件は、演繹法条件より組み込んだ ので、下記の説明では 省略 します。

  1. 問題を解くため の、有望そうな方法 を考える
  2. 考えた方法問題を解き結果を検証 する
  3. 検証した結果 から、それまでの経験 を元に、以下の作業 を行い、手順 2 に戻る
    • それまでに考えた方法修正する
    • 新しい方法 を考えて 加える
    • 見込みがなさそうな方法破棄する

問題を解くための、有望そうな方法を考える

まず、すべての局面最善手選択する合法手見つけるため の、有望そう判断基準 として、下記の 3 つ を考えました。下記判断基準 は、いずれも それを満たすことで、すべての局面最善手100 % 見つける ことができることは 保証されていない ので、ヒューリスティック です。

  • 自分の手番勝利できる ように、「自 2 敵 0 空 1」が 1 つ存在する 局面になる着手を行う
  • 自分有利になる ように、「自 1 敵 0 空 2」が 最も多い 着手を行う
  • 相手不利になる ように、「自 0 敵 1 空 2」が 最も少ない 着手を行う

次に、上記の 3 つの条件総合的判断 するために、それぞれマークのパターン に対して 下記の表評価値割り当て ました。

評価値
「自 2 敵 0 空 1」が 1 つの場合の評価値 1
「自 1 敵 0 空 2」が 1 つあたりの評価値 1
「自 0 敵 1 空 2」が 1 つあたりの評価値 -1

考えた方法で問題を解き、結果を検証する

上記の方法 で、ai11s VS ai10s対戦 を行い、下記 のような 結果 になりました。

関数名 o 勝 o 負 o 分 x 勝 x 負 x 分
ai11s VS ai10s 22.2 0.0 77.8 0.0 50.5 49.5 11.1 25.3 63.6

結果 から、ai11s× を担当 した場合に、50 % の確率で 敗北する という 問題点がある ことが わかりました

検証した結果から修正を行う

何故 そのような結果になった かを 検証 し、評価値計算 するための パラメータ下記 のように 修正 しました。

修正前 修正後
「自 2 敵 0 空 1」が 1 つの場合の評価値 1 2
「自 1 敵 0 空 2」が 1 つあたりの評価値 1 1
「自 0 敵 1 空 2」が 1 つあたりの評価値 -1 -1

修正した方法で問題を解き、結果を検証する

修正 した方法で、ai11s VS ai10s対戦 を行い、下記 のような 結果 になりました。

関数名 o 勝 o 負 o 分 x 勝 x 負 x 分
修正前 22.2 0.0 77.8 0.0 50.5 49.5 11.1 25.3 63.6
修正後 0.0 0.0 100.0 0.0 0.0 100.0 0.0 0.0 100.0

修正 によって、先程の問題解消 されましたが、新しく 〇 を担当した際に、勝てなくなるという 問題が生じました。この問題を、検証した結果、勝てなくなっても 問題がない判断 し、このパラメータai11s作成する ことに 決めました

ヒューリスティックを用いる際の注意点

ヒューリスティック は、経験則 による 解決方法 なので、問題解決する方法修正 した 結果、常に 状況が好転する とは 限りません

例えば、ai11s評価値計算 する パラメータ下記 の表のように 修正 した際に、ai10s VS ai11s4 手目の局面のみ考慮 に入れて 修正 を行ったため、それ以外の局面パラメータ修正 による 悪影響生じる可能性 があります。

修正前 修正後
「自 2 敵 0 空 1」が 1 つの場合の評価値 1 2
「自 1 敵 0 空 2」が 1 つあたりの評価値 1 1
「自 0 敵 1 空 2」が 1 つあたりの評価値 -1 -1

上記の修正 によって、ai11s VS ai10s3 手目選択実際影響与えた ように、ai11s他の AI対戦 した際に、どこかの局面選択良い影響悪い影響 も含めて 何らかの影響 を与えている 可能性あります

他の局面良い影響のみ を与えているのであれば、問題はない のですが、悪い影響与えた場合問題 です。しかし、残念ながら ヒューリスティック条件 は、絶対に正しい という 明確根拠がない 条件なので、修正 することで、良い影響のみ を与えることを 保証 することは できません

また、ヒューリスティック問題を解決 する場合に、お互いに 矛盾する条件存在 することが 良くあります。例えば、成績をよくする ためには「勉強の時間増やす」と「適度休息をとる」という 条件考えられます が、この 2 つの条件 は、どちらか増やしすぎ ると、もう片方減ってしまう という、矛盾する要素 があります3。そのような場合は、それらの条件 を、バランスよく設定 する 必要 がありますが、適切なバランス見つける ためには、さまざまパラメータ実際問題の解決試みて、その中で 最もバランスの良い ものを 採用する という 試行錯誤必要 になります。

日本語の ことわざ に、「あちらを立てればこちらが立たず」というものがありますが、これは、まさに ヒューリスティック による 問題解決良く起きる状況表します

ヒューリスティック は、常に間違う可能性 があります。特に、特定の状況改善 するために パラメータを修正 したり 条件追加削除 した場合は、それ以外さまざまな状況状況が悪化していないか どうかを 必ず検証 する 必要 があります。

今回の記事のまとめ

今回の記事 では、最強の AI定義 を、下記のように 定義しなおし、本記事で これまで 行ってきた AI のルール条件 が、下記最強の AI定義一部を満たす ような 条件である ことを示しました。

最強の AI とは、下記の 両方の条件満たす AI である。

  1. 必勝の局面 になる 合法手存在する場合 は、必ずその合法手いずれか選択する
  2. 必敗以外の局面 で、必敗の局面 につながる 合法手選択しない

次に、問題解決する方法分類 として、演繹法ヒューリスティック を紹介し、これまで に行ってきた AI の作成方法 が、それらの方法基づいて行われてきた ことを 示しこれまで に行ってきた AI の作成方法 で、AI の強さ最強の AI近づけていく ことが できる ことを 示しました

本記事で入力したプログラム

今回の記事では入力したプログラムはありません。

次回の記事

  1. 論理 の事を英語で ロジック(logic)、論理的 を英語で ロジカル(logical)と呼びます

  2. 原因と結果関係 のことです

  3. このような、片方を増やす と、もう片方が減る ような、両立しない ようなもののことを、トレードオブ と呼びます。また、2 つ相反する要素 の中から 1 つを選択しなければならない ような 状況 のことを事を ジレンマ と呼びます

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0