用語の整理、Grammatical evolutionとその周辺



  • 日英の用語のどちらも、用いられている単語が少なく、それらを組み合わせて使っているのでわかりにくい。わかりにくいだけでなく相互にオーバーラップした定義になっていることも多いさらにわかりにくい。すっきり定義するとうそが入ることは承知の上で、自分で覚えておくための核となる定義、という意味でのメモ。
  • 進化的計算 Evolutionary computation
    • 進化という現象は生物の遺伝物質の変化と生物個体の形質変化と生物個体集団の質的・量的変化に関する生物学的知見をシミュレートした計算手法を指す。組合せ最適化などに適用する。次項の進化的アルゴリズムを含むが、進化的アルゴリズム以外にも進化的計算に属する手法がある。
    • 進化的アルゴリズム Evolutionary algorithm
      • 進化的計算の1つ。核酸配列とそれがコードした形質とを用いて生物進化を模したアルゴリズム。どのように実装するかによってさらに分類される。
      • 進化的プログラミング Evolutionary programming
        • 進化的アルゴリズムの1つ。「進化的計算」「進化的アルゴリズム」「進化的プログラミング」という流れで記載するが、ある1方法につけられた名称であって、その方法は次世代作成における方法とも言える。
      • 遺伝的プログラミング Genetic programming
        • 進化的アルゴリズムの1つ。核酸配列に相当する遺伝コード情報から(2)分岐木構造を作り、その木構造をプログラムに相当させる。プログラムの出来を評価しながら進化を進める。特徴は何かと問われたら、(2)分岐木構造を作るということ。
  • この「定義」の流れの中で、Grammatical evolutionがどこに位置するか、というと・・・
    • 進化的計算の1つ。遺伝的プログラミングと似ている部分がある。それは、進化していくのがプログラムであること。
    • 遺伝的プログラミングと異なるのは、Grammatical evolutionではプログラムの引数・返り値(など)にルール(文法)を任意に持ち込むことができる点。これにより、従来の遺伝的プログラミングにおいては、すべてのプログラムピースが有理数扱い(浮動小数点?)であったこと、そのために探索空間が広かったが、Grammatical evolutionではその制限ができることになった。