2015年3月5日木曜日

測量の分類(測量法,作業規定)

 測量に関する次の文章で間違っているものはどれか

    1. 測地学的測量とは,地球をGRS80回転楕円体として行う測量をいう.

    2. 平面測量とは,地球をへいめんと考えて行う測量をいう.

    3. 測地学的測量では,地球表面の曲率を考慮しない.

    4. 基本測量,公共測量は,測量法の規定に基づいて行う.

    5. 公共測量は,作業規定の準則に基づいて行う.

-----


2015年3月4日水曜日

[Statistics] 統計学の大別

統計学では,データを平均や分散などの統計量にまとめて,その法則性や特徴を捉えます.
統計学は,以下のように分類することができます.

  1. 記述統計学:手元にあるデータの特徴を捉える.e.g.テストの点数をAクラスとBクラスで比較する際に,クラスの平均点という指標を用いて比較する.
  2. 推計統計学:データの背景にある母集団の特徴を捉える.e.g. 日本人全体の平均年収を求める際に,必要最低限の数(標本数)を集め,母集団を推定する.
  3. 分類統計学:データを複数のクラス(グループ)に分類することを目的とする.

2015年3月3日火曜日

[Machine Learning] 順序付け(move ordering)

順序付け(move ordering):次の局面を,より良さそうな局面の順番に並べ直して,その先頭から先読みすること.

順序付けを行うことで,αβ法の利点を最大限に発揮することができます.

順序付けにおいては,最善の局面を先頭に調べるようにすることがベストです.完全な順序付けをした場合のαβ法によるゲーム木の計算量は min-max戦略の平方根 + 若干になることが知られています.

問題としては,どのような局面(もしくは着手)が良いと判断するのか?どのような順番に並べるのか?という事柄が挙げられます.

解決法:

  1. 1手の深さで探索評価して,その評価値を使って順番に並べる.
  2. 駒を取る手や,チェックメイトなどの重要手を先頭に持ってくる.
  3. 探索木の中で,それ以前に別の枝で最善であった着手を先頭にする(ただし,その着手が現在局面で合法であることの確認が必要).この方法のうち,同じ深さで示された最善てをとっておいて使う方法をキラー理スティックという.
  4. トランスポーテーションテーブル*を参照して,そこに書かれている局面の評価値を使って良い評価順にする.
* トランスポーテーションテーブル:そこまでに訪れた局面の,その時に求めた評価値が入っている表.


関連する投稿

2015年3月2日月曜日

[Machine Learning] アルファ・ベーター法 (alpha-beta method)

前回の投稿(min-max法)に続いて,アルファ・ベーター法 (αβ method)に関する投稿です.

前回の投稿のmin-max法では,木を全て探索し,末端局面の評価値を求めた上で指手を決定しました.αβ法を用いると木の枝刈りをすることで計算量を減らすことができます.前回の投稿で示した木は以下のようなものでした.

まず,枝刈りができるのはJの評価値を求めるところです.今,Cの評価値が3に決定したとします.Cが決まった後にはDを求めるので,Iの評価値を求めます.その結果は4となりました.この時点でJの評価値の計算は不要になり,枝刈りができます.

枝刈りのできる理由を以下に示します.
Bは後手が指手を選ぶ場面なので,小さな評価値の法を選びます.Cの評価値は3に決まったので,ここで選択される手の評価値が3より大きくなった場合は,Dは選択されません(Cが選択されます).
ところが,Iの評価値が4になった時点でDの評価値として先手は4以下の評価値を選びません(IとJのどちらかを選ぶのは先手なので,より大きな評価値の指手を選ぶ).従って,Jが3より小さい値になったとしても,Dの評価値は4になります.また,Jの評価値がIより大きくなった場合はDの評価値として選ばれますが,Cの評価値3よりも大きな値なので,結局Aの評価値としては選ばれず,Cの評価値が選ばれます.よって,Rの評価値を決めるためには,Jの評価値を求める必要が無くなります.

このようなタイプの枝かりをベータ・カット(β cut)と言い,基準となる値をβ値といいます.

上記のベータ・カット(β cut)について再度まとめます.


  1. Cの評価値が3(= β)なので,Aの評価値は3以下になる.
  2. Iの評価値が4になったので,Dの評価値は4以上になる.
  3. 4 > 3(= β)なので,Dは選択されない.
  4. Jを枝刈りする.
次にBの評価値を求める場合を見てみます.
今,Rは先手局面なので,AとBの大きな評価値の方を選びます.Aの評価値は3なので,Bが選ばれるには,3より大きな値にならなければなりません.
Bの評価値を求めるためには,まず,Eの評価値を求めます.Eは先手局面なので,KとLの評価値の大きい方を選択します.よって,K = 2 > L = 1なので,Eの評価値としては2(K)が選ばれます.
Eの評価値が2に決まると,Fの評価値の計算は不要になり,枝刈りができます.

枝刈りのできる理由を以下に示します.
EとFは,後手局面なので,評価値の小さな指手を選び,その値がBの評価値になります.従って,局面Bの評価値は2より小さい値にしかなりません.AとBのどちらを選択するかは,先手なので,より大きな評価値の指手を選びます.Aの評価値は3で,Bの評価値は2以下の値にしかならないので,Fの評価値を調べる必要が無くなります.

このようなタイプの枝かりをアルファ・カット(α cut)といい,基準となる値をα値といいます.

上記のアルファ・カット(α cut)について再度まとめます.
  1. Aの評価値が3(= α)なので,Rの値は3以上になる.
  2. Eの評価値が2なので,Bの評価値は3以下になる.
  3. 2 < 3 (= α) なので,Bは選択されない.
  4. Fは選択されないので枝刈りをする.

2015年3月1日日曜日

[Machine Learning] ミニマックス法 (min-max method)

二人零和有限確定完全情報ゲームにおけるミニマックス法(mini-max method)の基本は
  • 自分にとって良い指手は相手にとって都合が悪い(自分の指手は評価が最大になるように選択する)
  • 相手は自分にとって最悪の指手を選択する(相手の指手は評価値が最小になるように選択する)
という考え方を基本として,先読みした結果から次の自分の手を決めるのがミニマックス法(min-max method)です.

ミニマックス法(min-max method)を使う場合,局面の評価値が必要となります.その評価値は評価関数によって得ることになりますが,評価関数は
  • 先手が有利(後手が不利)な局面ほど大きな値(例えば正の値)
  • 後手が有利(先手が不利)な局面ほど小さな値(例えば負の値)
  • 互角の場合は0
となるように作るのが一般的です.

二人零和有限確定完全情報ゲームでミニマックス法(min-max method)で指手を決める例
この例では指手は常に2通りの差し手があるとし,探索を行うのに,先手,後手,先手の三手先まで読むこととします.

評価値は最も深いレベル(この場合は,三手指した後手の局面で計算するレベル3まで探索すると8通りの評価値が計算されます.この評価値を使ってA,Bどちらかの手を指すべきかをミニマックス法(min-max method)で決定する手順を示します.

まずは上図のR - A - Cの局面に着目すると,この局面では先手はGとHの2通りの差し手があり,この評価値はそれぞれ1と3だとします.ここでは,先手の手番なので,評価値が最大になる差し手(H - 3)を選択します.従って,局面Cの評価値は3になります.
同様にR - A - Dの局面を計算すると,局面DではIとJの指手があり,それらの評価値はそれぞれ4と2だとします.なので,Dの局面の評価値は4になります.

局面Aは後手の手番なので,評価値が最小になるようにCとDの小さい法(C - 3)を選ぶので,局面Aの評価値は3になります.

3手レベルまでの,G - Nの全ての探索を行って,下図のように8通りの評価値が得られたとすると,Bの評価値は2隣,局面Rは先手の手番なので,評価値の大きい指手(A - 3)が有利であることになります.

このように先手番では評価値が最大(max)になる指手を選び,後手番では評価値が最小(min)となる指手を選んで,最終的に次の指手を決定する方法がミニマックス法(min-max method)です.

ただし,この例のように,三手先までしか読んでいない結果から得られた差し手が,最善手である保証はありません.上記の例ではゲーム木を3レベルまで探索してAを選びましたが,もう1レベル深く探索したら,Bの方が有利になる可能性があるからです.一方で,ゲーム木を最後まで探索できれば,常に最善手を指すことができます.