零時館
研究紹介

遺伝的アルゴリズムの震源メカニズム解決定への応用


非線型逆問題に対して有効な最適化法である遺伝的アルゴリズムを、震源メカニズム解の決定へ応用した。遺伝的アルゴリズムの導入によって、初期値の設定が不要になり、最適解のグローバルな探索が可能となった。

この開発した方法を1993年釧路沖地震と1993年北海道南西沖地震に対して適用したところ、グローバルな最適解を短時間で得ることができ、実用的であることを示した。


遺伝的アルゴリズム(Genetic Algorithms, 以下GA)は最適化を行なう手法の1つである。グローバルな探索を行なうので、非線形問題に適している。これを震源メカニズム決定へ応用した。

■ 遺伝的アルゴリズム

GA は生物の進化をモデルとしている (Goldberg, 1989)。0 と 1 で表された遺伝子で構成される染色体を持つ個体が、問題の解の1候補に対応する。まず最初の世代の個体集合(解の候補の集合)をランダムに発生させ、適応関数で各個体の適応度をはかり、適応度に合わせて自然淘汰させ、個体集合の世代を更新する。自然淘汰を繰り返して世代を進化させ、最終的に優秀な個体(最適解)を残そうというのがこの方法である。

例えば、変数 x 、適応関数 f(x) 、個体数20、染色体長10のとき、

1) まず第 0 世代 t = 0 の個体集合を発生させる。0111010110 といった染色体をもつ個体を20だけランダムに生成する。

2) 各個体の適応度を計算する。染色体を2進数と見て10進数に変換し、さらに変数 x に直して適応関数 f(x) から適応度を計算する。

3) 世代 t に対し、次に挙げる3つの遺伝演算子選択交叉突然変異をかけ、世代 t+1 に更新する。

3a) まず世代 t から個体を、ランダムに、しかしなるべく適応度の高いものを、2つ選ぶ(選択)。実際には、適応度に比例して重みをつけてからランダムに選ぶ(ルーレット式選択)。

3b) 次に、この2つの個体のランダムに選んだ同一の点を境に確率 pc で遺伝子列を入れ換える(交叉)。たとえば、

011101|0100
110100|1001

011101|1001
110100|0100

といった具合である。

3c) できた個体に対してランダムに選んだ 1 点で、確率 pm で 0/1 反転をさせ(突然変異)、世代 t+1 の個体を得る。t+1 世代が20個体になるまで演算を繰り返す。

4) 予定世代数になるまで2)、3)を繰り返したのち、適応度の高い個体(最適解)を取り出して終わる。

図1は、変数 x (0 < x < 1)、適応関数 f(x)=x10、個体数30、染色体長30、予定世代数10のとき(Goldberg(1989))の個体の分布の移り変わりを示したものである。世代を経るにつれ、個体が適応度の高い方へ集まるのが分かる。


図1: 第0世代と第10世代での個体の分布。実線が適応関数、丸印が個体を示す。

GA にはいろいろなバリエーションがあるが、ここでは最も単純なGA (Simple GA, 以下 SGA) を適用した。

■ 震源メカニズム解の決定

震源メカニズム決定法には Udias and Buforn (1988) が開発した P 波初動から解を求める求めるプログラムを採用した。このうち最適化の部分を SGA に変更した。震源メカニズムの決定には 3 つの独立変数が必要となる。そこで、染色体長を 90 にし、変数変換時に 3 等分して 3 変数(今回は、T 軸の trend と plunge、P 軸の trend )を得ることにした。

一変数あたりの染色体長を15にしたので、0.0027°〜0.0109°の精度がある。1世代あたりの個体数を50、最大世代数を300とした。交叉と突然変異の確率は、文献と経験を参考に、それぞれ 0.6 と 0.0333 とした。 もとのプログラムでは、適応度を計算する際に、P 波初動データに対して理論振幅によって重みをつけている。しかし、射出方向の分布の偏りのせいか、導き出した最適解が、真の最適解とずれていることが多かった。ここでは、重みをつけないことにした。すなわち、P波初動の押し引きが震源メカニズム解と合っているかどうかだけをみることにした。

■ 解析例

このプログラムを1993年1月15日の釧路沖地震、同年7月12日の北海道南西沖地震に対して実行した。押し引きデータは北大、弘前大、東北大、気象庁、pre-POSEIDON、IRIS、中国国家地震局によった。射出角の計算には、近地は2層の速度構造、遠地は Jeffreys and Bullen の走時表を用いた。


図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 が非常に効率の良い方法であることが分かる。


E-mail : reijikan-kanshu@hotmail.co.jp
研究紹介に戻る
ホームへ戻る