非線型逆問題に対して有効な最適化法である遺伝的アルゴリズムを、震源メカニズム解の決定へ応用した。遺伝的アルゴリズムの導入によって、初期値の設定が不要になり、最適解のグローバルな探索が可能となった。この開発した方法を1993年釧路沖地震と1993年北海道南西沖地震に対して適用したところ、グローバルな最適解を短時間で得ることができ、実用的であることを示した。
遺伝的アルゴリズム(Genetic Algorithms, 以下GA)は最適化を行なう手法の1つである。グローバルな探索を行なうので、非線形問題に適している。これを震源メカニズム決定へ応用した。
例えば、変数 x 、適応関数 f(x) 、個体数20、染色体長10のとき、
図1は、変数 x (0 < x < 1)、適応関数 f(x)=x10、個体数30、染色体長30、予定世代数10のとき(Goldberg(1989))の個体の分布の移り変わりを示したものである。世代を経るにつれ、個体が適応度の高い方へ集まるのが分かる。
図1: 第0世代と第10世代での個体の分布。実線が適応関数、丸印が個体を示す。
GA にはいろいろなバリエーションがあるが、ここでは最も単純なGA (Simple GA, 以下 SGA) を適用した。
一変数あたりの染色体長を15にしたので、0.0027°〜0.0109°の精度がある。1世代あたりの個体数を50、最大世代数を300とした。交叉と突然変異の確率は、文献と経験を参考に、それぞれ 0.6 と 0.0333 とした。 もとのプログラムでは、適応度を計算する際に、P 波初動データに対して理論振幅によって重みをつけている。しかし、射出方向の分布の偏りのせいか、導き出した最適解が、真の最適解とずれていることが多かった。ここでは、重みをつけないことにした。すなわち、P波初動の押し引きが震源メカニズム解と合っているかどうかだけをみることにした。
図2: SGAを使って求められた震源メカニズム解。左が1993年1月15日の釧路沖地震、右が同年7月12日の北海道南西沖地震。最適解を実線で、上位10位に入る解を波線で示した。P波初動のデータは白丸が引きを、黒丸が押しを示している。
結果を図2に示す。SCORE はどれだけデータと解があっているかを0から1の間で示している。釧路沖地震ではP波初動のデータと全く矛盾のない最適解を得ることができた。
北海道南西沖地震ではやや矛盾を生じているが、北から170°の方位の付近で押しと引きのデータが混在していることによるので、最適化法には問題がない。すべてのグリッドで適応度を調べてみると 2つのピークがあったが、今回はそのうちの最大のピークに最適解が求められた。勾配法の場合、初期値が2番目のピークに近いと、2番目のピークに解が求まってしまう可能性があった。SGA がグローバルな探索に効果があったことを示している。
計算時間は Sun IPX で10分もかからなかった(現在のワークステーションならば、1分もかからないだろう)。適応度の計算だけに限れば、すべての変数を1°ごとに調べるときの計算量は、今回の方法の388.8倍かかる。もし同じ精度にすれば、2345624806倍になる。実際には SGA では染色体から変数に直したり、遺伝演算子「選択」「交叉」「突然変異」をする必要があるが、全体の計算量にはほとんど影響を及ぼさない。SGA が非常に効率の良い方法であることが分かる。