genetic algorithm - ネットワーク利用技術研究会lionfan/ga.pdfgenetic algorithm 略して...

13
Genetic Algorithm 略して と呼びます 青山学院大学理工学部経営工学科佐久間研究室 竹内俊彦 本資料のイラストは、すべて筆者のオリジナルではなく、無断転載を固く禁止できるわけがない

Upload: trinhtuyen

Post on 23-Mar-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Genetic Algorithm

略して

と呼びます

青山学院大学理工学部経営工学科佐久間研究室 竹内俊彦

本資料のイラストは、すべて筆者のオリジナルではなく、無断転載を固く禁止できるわけがない

遺伝的アルゴリズム(GA)とは、組み合わせ問題を解く手法の1つです。GAは「いちばん良い答えという保証はないが」「かなり良い答えを」「すばやく出す」

手法です。このような手法全般をヒューリスティック手法といいます。

GAでは1つの答えを「1匹の生物」とみなします。手順は以下です。

 

具体例として「集合被覆問題」を解きます。集合被覆問題とは、ある01行列と、各列のコストが与えられたときに、

すべての行の行和を1以上にするような最小コストを計算する問題です。 まあ次ページの実例を読んだほうが、わかりやすいです。

GAの手順

 (1)まずn匹の「生物」をランダムに発生させ、 (2)生物同士で競争させて1位からn位までならべ、 (3)ある程度以下(たとえば下位50%)の生物は削除し、

 (4)生き残った生物のクジをつくり(高順位ほど当たる確率が高い) (5)両親を決めるために、クジを2本、引きます。 (6)当たった生物どうしで結婚し、子供を産んでもらいます。 (7)(4)~(6)を繰り返し、(3)で削除した分だけ子供を産みます。 (8)子供を突然変異させて大人にします。

(9)成長した子供と、旧世代の生き残りを合わせ、新世代にします。 (10)終了条件が来るまで(2)~(9)を繰り返します。

いい答えといい答えの子供は、もっとよい答えになりやすいので、繰り返すと、答えがどんどん良くなるのです。

ひふく

31 円

01

りんご

タンパク質

脂質

繊維

糖質

カルシウム

リン

ビタミンB

ビタミンA

ビタミンC

いま32個の食品があり、それぞれに

値段と栄養(赤丸)が与えられています。

10個の栄養素を、なるべく安く採るには、どれを買えばいいでしょうか?

カードを重ねて、向こうが見えなければいいわけです。

集合被覆問題の説明

この問題は、32個の果物それぞれを買うか買わないか、

つまり232≒43億の組み合わせから、いい答えを探す問題です。

片っ端から力づくで探すと、時間がかかりすぎます。

毎秒100個ずつ探しても、1年4ヶ月かかります。食品があと10個ふえれば、探索時間はその1024倍になってしまいます。

そこで遺伝的アルゴリズムの登場です!

32個 

りんご  買う 買わない

オレンジ  買う 買わない

さくらんぼ  買う 買わない

たまご  買う 買わない

・・・

1つの解

100・・・1

5分で200円を切れれば、あなたは天才!

32個の食品

穴がすこし右寄りなので、裏返しのカードがあってもすぐわかります。

合計を概算しやすいように、四捨五入の値をコインで表示しています。

「ベターホームの食品成分表」を参考にしたので、栄養は現実に即しています。ですが問題を面白くするため、価格はデタラメです。栄養素が多いほど、高くしています。

1つの解を、1つの遺伝子〔数字列〕にします。

この作業を「コーディング」と呼びます。

いまは1つの遺伝子を32個の01にしています。

GAの手順・その1

100・・・1

110・・・0

101・・・0

110・・・1

010・・・0

110・・・1

101・・・1

110・・・1

101・・・0

010・・・1

110・・・1

000・・・0

n個の答えをランダムに発生させる手順1

1位からn位まで、良い順に並べる手順2

6 5 4 35 4 3

4 33

2111111

2222

1位12位

235円

317円

326円

356円

360円

398円

405円485円500円568円875円961円

集団の匹数を個体数といいます。

いま個体数は12です。

通常、個体数は20~100くらいです。

このプロセスを評価といい、点数づけする関数を

評価関数と言います。

いま評価関数は価格そのものです。

通常、評価プロセスに計算時間の8~9割がかかります。

GAの手順・その2

ある程度以下の解を削除する手順3

6 5 4 35 4 3

4 33

22222

1

1

111

1

生き残りの動物でクジをつくり手順4

オレだけ先に入れちゃった…

6 5 4 35 4 3

4 33

2111111

2222

楽勝!

うれしーえへへ…

ぷおー

ひどいね

危い…

うわーあーれー

え? オレが?

さよーならー

おや

きゃー

削除には

トップだけ残す、全員入れかえる、上位k%だけ残す

など、いろんな方法があります。個人的には上位50%を残す方法が好きです。

第k位の個体に(n/2)-k+1点を割り当てます。生き残ったなら、最低でも1票は割りあてようという発想です。

GAの手順・その3

クジをひく手順5

選ばれた親に子供をつくってもらう手順6

6

5

4

3

5

34

3

3

2

2

2

2

11

1

1

11

1 0 0 1 0 1 0 1

0 1 0 1 1 1 0 0 1

0

0 1

0 1

0

10

1

0 1

1 1

0

0

子供1をつくるために、確率0.5で、遺伝子をどちらかの親からもらいます。子供2は、子供1の取りのこした遺伝子を寄せあつめて作ります。

2枚とも同じ番号を引いちゃったら?

普通、クジを引きなおします。

4 2

6

5

4

3

5

4

34

3

3

2

2

2

2

2

11

1

1

11

確率は1/21か…

がおー

合同結婚式みたい…

ドキドキ…これって恋?

神の見えざる手か…

見えてるって

引いたクジは戻します

ラッキー ハッピー

本当は32個です本当は32個です

親1

親2

子1

子2

GAの手順・その4突然変異によって、子供を大人にする手順8

0 0 1 10 0 1 0

1 0 0 10 0 1 1

削除した分だけ子供を産む手順7

1回目の子供

2回目の子供

3回目の子供

消えてしまった6匹分を産む

なぜ「突然変異」が「成長」なんだ?

両親の教えを、自分なりにアレンジすることが「成長」だからさ!

突然変異とは、たとえば0.01などの低い確率で、

ある遺伝子の内容を書きかえることです。平均して1つの遺伝子に1つの突然変異が起きるくらいが最適です。この場合なら1/32。

クジ引きは何回だ?

(n / 4)回です。1回の結婚で2匹の子供が産まれ、全部で (n / 2)匹の子供を産むからです。だから集団の匹数nは、4の倍数にしてください。今は12匹にしています。

=6匹

=6匹

終了条件に

なるまで

繰り返す

GAの手順・その5新世代を挿入する手順9 (2)~(9)の繰り返し手順10

6 5 4 35 4 3

4 33

2111111

2222

1位12位

235円

317円

326円

356円

360円

398円

405円485円500円568円875円961円

良い順に並べ

悪い解を削り

親を決め 子供を産み

突然変異で育て

新世代を作り

終了条件はどんなのが普通?

1000世代までとか、

いちばんいい答えが100世代連続で、改善されない時とか…。

成長した子供

旧世代の生き残り

=

新たな世代

6 5 4 3

5 4 34 3

32

11111

1

222

2

楽勝!

うれしー

えへへ…

ぷおー

ひどいね

危い…

うわーあーれー

え? オレが?

さよーならー

おや

きゃー

6 5 4 3

5 4 34 3

32

11111

1

222

2

楽勝!

うれしー

えへへ…

ぷおー

ひどいね

危い…

うわーあーれー

え? オレが?

さよーならー

おや

きゃー

6

5

4

3

5

4

34

3

3

2

2

2

2

2

11

1

1

11

確率は1/21か …

がおー

合同結婚式みたい…

ドキドキ…これって恋?

神の

見えざる手か …

見えてるって6

5

4

3

5

4

34

3

3

2

2

2

2

2

11

1

1

11

確率は1/21か …

がおー

合同結婚式みたい…

ドキドキ…これって恋?

神の

見えざる手か …

見えてるって

成長した

子供

旧世代の

生き残り

=

新たな

世代

成長した

子供

旧世代の

生き残り

=

新たな

世代

0

100

200

300

400

500

600

700

0 10 20 30 40 50 60 70 80 90 100

161 円237 円 205 円 192 円238 円293 円297 円

キウイをなすと

じゃがいもに

バナナは

なくていい

エビをレモンと

西洋なしに

じゃがいもは

なくていい

西洋なしも

なくていい

りんごも不要

三百円を

切りました

レモンの時代じゃがいもの時代キウイの時代

バナナの時代

ベスト解 改善の様子個体数20、100世代までのGAを見せます。

実はこの解が

最適解なので、これ以上の改善は起こりません

今回は161円が

いちばん安い答えでした。

最終世代の遺伝子

これが最終世代の遺伝子の上位50%、つまり1位~10位です。どの遺伝子にも

「レモン・パイナップル・なす・チーズ」が含まれています。

これをスキーマといいます。良い答えに必要な部品のことです。

1位 161円 レモン パイナップル なす チーズ2位 174円 レモン パイナップル なす チーズ 西洋なし3位 179円 レモン パイナップル なす チーズ ビール4位 192円 レモン パイナップル なす チーズ りんご5位 192円 レモン パイナップル なす チーズ 西洋なし ビール6位 193円 レモン パイナップル なす チーズ じゃがいも7位 195円 レモン パイナップル なす チーズ すいか8位 201円レモン パイナップル なす チーズ しいたけ9位 205円 レモン パイナップル なす チーズ りんご 西洋なし

10位 206円 レモン パイナップル なす チーズ 西洋なし じゃがいも

1 位 206 円

2 位 235 円

3 位 237 円

4 位 250 円

5 位 268 円

6 位 272 円

上の例はつまらないので、個体数12、世代50、突然変異率 1/32 の例を見せます。

どの遺伝子にも「レモン・タマネギ」がありますね?

これもスキーマです。

GAには3つの長所があります。

(1)スキーマ解析で、良い答えの特徴がわかる(2)代案を探すのがカンタン(1位がダメなら2位を)

(3)ユーザーが改良した答えを入れるのも容易の3点です。

(3)を補足します。たとえばユーザが「レモン・たまねぎ・パイナップル・すいか・パン」はどうだろう? と考えたとします。その解をGAに取りこむのはカンタンです。最下位の遺伝子をユーザの解に置きかえるのです。

ユーザーの解が良ければ、次世代に生き残りますし、悪い解なら淘汰されるだけです。この場合は225円と良い解なので、生き残ることでしょう。

スキーマ

GAの魅力

1 円

33コ ー ヒ ー

タンパク質

脂質

繊維

糖質

カルシウム

リン

ビタミンB

ビタミンA

ビタミンC

1 円

33コ ー ヒ ー

タンパク質

脂質

繊維

糖質

カルシウム

リン

ビタミンB

ビタミンA

ビタミンC

261 円

34カ ロ リ ー

メ イ ト

タンパク質

脂質

繊維

糖質

カルシウム

リン

ビタミンB

ビタミンA

ビタミンC

261 円

34カ ロ リ ー

メ イ ト

タンパク質

脂質

繊維

糖質

カルシウム

リン

ビタミンB

ビタミンA

ビタミンC

0

100

200

300

400

500

600

700

0 10 20 30 40 50 60 70 80 90 100

0

100

200

300

400

500

600

700

0 10 20 30 40 50 60 70 80 90 100

1位 183円 レモン パイナップル たまご2位 184円 レモン パイナップル たまご コーヒー3位 196円 レモン パイナップル 西洋なし たまご4位 197円 レモン パイナップル 西洋なし たまご コーヒー5位 198円 レモン パイナップル なす たまご6位 199円 レモン パイナップル なす たまご コーヒー7位 211円 レモン パイナップル 西洋なし なす たまご8位 212円 レモン パイナップル 西洋なし なす たまご コーヒー9位 215円 いちごパイナップル たまご10位 215円 レモン パイナップル じゃがいもたまご

GAには生物界の面白さがあります。たとえば、1円でまったく栄養を含まない「コーヒー」と、261円で全栄養素を含む「カロリーメイト」を入れてみましょう。

普通にシミュレーションすれば、カロリーメイトは世代の最初から最後まで、まったく現れません。

ところが、カロリーメイトを人為的に最初に集団に入れると、何世代たってもベスト解は261円、つまり「カロリーメイトだけ」になります。

いわばカロリーメイトは「ブラックバス」です。

コーヒーは栄養ゼロなので、決して生き残れない、と思いませんか? ところがシミュレーションすると、

いい解に取りつくことで、つねに生き残るのです。

コーヒーはたった1円なので、1位の解+コーヒーで、必ず2位になってしまうからです。3位の解ー+コーヒーで、必ず4位…。

ですからコーヒーを入れると、個体数を半減させたも同様です。

いわばコーヒーは「ウイルス」です。

コーヒー入り

カロリーメイト入り

最終世代の遺伝子(上位50%)

黒線…コーヒーなしの場合

黒線…カロリーメイトなしの場合

GAの欠点

GAの欠点も言いましょう。それは次の3つです。

〔1〕GAは大きな見落としはしないが、最後のツメが甘い。

〔2〕個体数、突然変異率などを、ユーザがカンと経験で決める必要がある。〔3〕GAの答えは、最適解という保証がなく、その上界しか教えない。

それぞれについて説明します。

GAは、たとえばSA〔シミュレーテッド・

アニーリング〕などにくらべ、「ほとんど最適解」を見落とすことは少ないのですが、そこから「最適解」にたどりつくまでの時間はSAに劣ると

言われています。

ですから、前半はGA、後半はSAで探索する

研究が多く行われています。

ツメが甘い

GAは自由度が高いのが魅力ですが、

個体数、コーディング方法、突然変異率、子供作りの方法などを、すべて決める必要があります。

どの場合にどの方法が良いかは、問題によって異なるので、ある程度、遺伝的アルゴリズムの経験が必要です。

経験が必要

たとえば一年間、プログラムを走らせて、それでも「161円」以下にはならないとします。

では、最適解は161円なのでしょうか?あるいは161円の付近なのでしょうか?せめて、最適解のk%以内なのでしょうか?

なんと、その答えは「わからない」です。GAは経験上、うまくいくのですが、

最適解については上界しか教えません。

上界しかわからない

上界

最適解

GA

200円

190円

180円

170円

160円

上界とは、「最適解はこれ以下」と言いきれる値のことです。

たとえばGAで179円という答えがみつかったら、最適解は179円か

それ以下と言い切れます。

GAは問題を「上から攻める」手法と言ってもいいでしょう。

上界とは

GAのいい本

もっとGAを知りたい人に、よい本を3冊、紹介して終わりにします。

スティープン・レビー「人工生命」朝日出版社、1996.4.5、3000円。

ISDN4-02-256957-3

全米初のコンピュータ博士、ホランドがGAを発明する話など全9章。

「劣等生」ラングトン、「ワガママ坊主」ウルフラム、「ケンカ博士」ブルックスなど、変人がいっぱい!

J・H・ホランド

人工生命-デジタル生物の創造者たち-

北野宏明「遺伝的アルゴリズム」産業図書、1993.6.3、4100円、ISBN4-782-85136-7

GA入門は、この本以外

にありえません。

日本で最高の研究者が、豊富な実例をバランス良く紹介した、GAの決定版。現在、3巻まで出ていますが、最初の1巻だけでOKです。

遺伝的アルゴリズム

Colin R.Reeves編「モダン・ヒューリスティックス」日刊工業新聞社、1997.6.30、4400円。

ISDN4-526-04027-4

GA、SA、TS〔タブーサー

チ〕、ニューロ、ラグランジュ緩和などを手際よく一冊にまとめた本。

この一冊でヒューリスティック手法のプロに!

モダン・ヒューリスティックス-組合せ最適化の先端手法-