情 ★報 ★科 ★学
遣伝的 プログラミング 伊庭斉志 著
東京電機大学 出版 局
R 〈日本複 写 権 セ ン ター 委 託 出版 物 ・特 別扱 い〉 本 書 の 無 断複 写 は,著 作権 法上 での 例 外 を除 き,禁 ...
33 downloads
544 Views
31MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
情 ★報 ★科 ★学
遣伝的 プログラミング 伊庭斉志 著
東京電機大学 出版 局
R 〈日本複 写 権 セ ン ター 委 託 出版 物 ・特 別扱 い〉 本 書 の 無 断複 写 は,著 作権 法上 での 例 外 を除 き,禁 じられ て い ます 。 本 書 は,日 本 複 写権 セ ン ター 「出版 物 の複 写 利 用 規程 」 で 定 め る特 別 許諾 を必要 とす る出版 物 で す。 本 書 を複写 さ れ る場合 は,す で に 日本 複 写 権 セ ン ター と包括 契 約 を され て い る方 も事 前 に 日本 複 写権 セ ン タ ー(03-3401-2382)の 許 諾 を得 て くだ さい。
まえ が き
研 究 の 客 観 性,理
解,自
え た と し た ら,こ
れ ほ ど ば か げ た こ と は な い.む
ど,人
然 の 連 係 の 知 識 と い う もの が,自
間 は 自然 の 生 き た 事 実 に 対 し て よ り深 く,よ
ラ ー ト ・ロ ー レ ン ツ 著,日
高 敏 隆 訳:ソ
然 の 驚異 へ の 喜 び をそ こ な うな ど と考
しろ そ の 逆 な の だ.自
然 につ い て知 れ ば知 る ほ
り 永 続 的 な 感 動 を お ぼ え る よ う に な る.(コ ン
ロ モ ン の 指 輪,早
川 書 房,1982)
筆 者 が 遺 伝 的 プ ロ グ ラ ミ ン グ(の 前 身)を 知 り,興 味 を覚 え た の は 遺 伝 的 ア ル ゴ リズ ム(GA)を
知 って ま もな くの こ と,1990年
的 プ ロ グ ラ ミ ン グ(GP)と GAな
頃 で あ っ た .当 時 は まだ 遺 伝
い う用 語 は定 着 して お らず,構 造 的GA,木
ど と呼 ば れ て い た.人 工 知 能 を研 究 して い た 筆 者 に は,「GAは
を 目指 して い る」 と見 て い た た め(今 は そ うで は な い),GAが な く思 え た.そ
こ で,GAで
知 識 表 現,プ
考 え て,拡 張 を試 み て い た の で あ る.ち て来 られ てい たNASAのPhilip
最適化 のみ
い さ さか 飽 きた ら
ロ グ ラ ム,概 念 木 な ど を扱 え ない か と ょ う ど そ の 頃,電 総 研 の 客 員 研 究 員 と し
D. Laird氏
らス タ ン フ ォー ド大 学 のJohn Koza氏
型表 現 の
に筆 者 の研 究 を話 した と こ ろ,氏 か
を紹 介 され た. 1991年 の 正 月休 み にKoza
の テ ク ニ カ ル レポ ー トを読 ん だ と きの 感 動 を今 も覚 え て い る.そ の レポ ー トは 後 にJohn Kozaの
大 著 に つ な が る もの で あ っ た.
John KozaをGPの
創 始 者(KozaのGPと
唱 え る む き が な い こ と も な い.GP的 た し,ま
た,AIの
分 野 で もGP的
か 提 案 さ れ て い る.た
し て,現
な 発 想 は す で にGAの な 発 見 学 習 手 法 はAMを
だ し,Kozaが
シ ス テ ム の 配 布 な ど でGPの
言 う 人 も い る)と
す る に は異 論 を
研 究 の 当 初 か らあ っ は じめ と し て い く つ
研 究 者 間 の ネ ッ ト ワ ー ク 作 り やFTPに
よる
研 究 発 展 の 一 翼 を に な っ た こ と は ま ち が い な い .そ
在 で はGPはGAやEC(evolutionary
computation)の
中で一大勢力
に な りつ つ あ る.そ
の 中 心 の 1 つ はKoozaが
教 授 を つ と め る ス タ ン フ ォ ー ド大 学
で あ る.
本 書 で は こ う した背 景 をふ まえ て,GPの GPの
基 礎 か ら応 用 に至 る まで を解 説 す る.
特 徴 を ま と め る と,次 の よ う に な る.
1 .
GPは
プ ロ グ ラ ム を進 化 させ る もの で あ る.
2.
GPに
よ って,ロ
ボ ッ トの プ ロ グ ラ ム や 人 工 知 能 の 問題 解 決 ・推 論 ・学 習 の
た め の プ ロ グ ラ ム が 進 化 的 に(創 発 的 に)自 動 生 成 され る. 3.
GPはGAの
考 え方 に 基 づ い て い る.そ の 違 い は, GAが
指 す の に対 し,GPは 4.
主 に最 適 化 を 目
記 号 処 理 的 な プ ロ グ ラ ム 生 成 を 目的 と して い る.
ニ ュ ー ラル ネ ッ トワー ク は数 値 的 な処 理 を行 うの に 対 し,GPは
記号 的なプ
ロ グ ラ ム に よ る処 理 を実 現 す る. 現 在 日本 で は,GAが
あ る程 度 認 知 され た に もか か わ らず, GPは
及 して は い な い.こ れ は 欧 米 や ヨ ー ロ ッパ のGA/GPの
まだ 広 く普
研 究 比 率 か ら考 え る と不
思 議 な こ とで あ る.そ の 一 因 は,日 本 語 に よ る指 導 書 が あ ま りない こ とに あ ろ う. ま た,GPの
説 明 を す る と よ く聞 か れ るの は次 の よ う な 質 問 ・批 判 で あ る.
1.
GPはLISPで
2.
GPで
な くて は解 け ない もの が あ る の か?
3.
GPは
探 索 効 率 が悪 い.
4.
GPの
理 論 は あ るの か?
これ に対 して,筆
あ り, LISPを
1.
知 ら な い か ら で き な い.
GPはLISPを
者 は次 の よ う に答 え る こ と に し て い る. 知 ら な く と も十 分 使 え る.本 書 の 第 1部 で は C 言 語 に よ る
入 門が あ る.そ の他 の 言 語 に よ るGPも 2.
入手 可 能 で あ る.
プ ロ グ ラ ム の 自動 合 成 を大 規 模 に行 え る手 法 は 今 の とこ ろGP以 と思 わ れ る.第
2部 の応 用 例 を 見 れ ば,決
してGPが
外 に ない
オ モ チ ャ 問題 の み を
扱 っ て い る の で は な い こ とが 理 解 で き よ う. 3.
GPの
探 索 能 力 向 上 の た め の 拡 張,並
列 化 な どが 提 案 さ れ,初 期 のGPに
比 べ て 能 力 は 飛 躍 的 に 向 上 して い る. 4.
これ は確 か に問 題 で あ る.し か しな が ら,GAの
場 合 と同様 に,い
くつ か の
理 論 的 研 究 が な され つ つ あ る. 本 年 は ち ょ う どGP元 会 議(Genetic
年 と い っ て も よ い.そ
Programming
れ はGPに
1996 Conference,
関 す る は じめ て の国 際
GP96)が
で 開 催 さ れ る か ら で あ る.こ
れ に よ り,ま
ち ろ ん,多
関 心 を 持 っ て も ら え る こ と を 期 待 す る.そ
く の 人 々 がGPに
も本 書 に よ っ てGPへ
こ で は,C 言 語 とLISP言
1部 はGPの
れ ば,そ
のため に
語 で のGPシ
シス テ ム を実 際 に使 う実 習 で あ ス テ ム の詳 細 な動 作 例,応
へ の 解 決 例 を説 明 して あ る.ぜ ひ 自 分 でGPを さて,実 際 にGPの
研 究が進展 する ことは も
の 読 者 の 興 味 が 喚 起 さ れ れ ば 幸 い で あ る.
本 書 は 2部構 成 とな って い る.第 る.そ
す ま すGPの
ス タ ン フ ォ ー ド大 学
用問題
動 か して試 して ほ しい.
プ ロ グ ラ ム を動 か して み て,次 の よ う な疑 問 が 生 じた とす
れ は 当 然 の こ とで あ る.
●GPで
は どの よ うな 問 題 が 解 け る の か?
●GPを
実 世 界 の 問 題(Real-world
●GPの
効 率 は ど の くらい(他
pr0blem)に
応 用 で き る の か?
の手 法 に比 べ て)よ
い の か?
こ の こ とに対 す る解 答 の い くつ か は 第 2部 で 目 にす る こ とが で き るで あ ろ う.そ こ で はGPの Kozaは
さ ま ざ ま な応 用 例 題,お 新 し く拡 張 さ れ たGP(多
Next Generationと と な っ て い る.言
呼 び,自
の よ う なThird れ る.
分 筆 者 ら の を ふ く め た 現 在 のGP研
2弾)の
究 に お い て もThird Generationを
究)を
ら の 2冊 目 の 本 の ビ デ オ の 副 題 もNext Generation
う ま で も な く,Next Generati0nと
ト レ ッ ク 」 の 新 シ リ ー ズ(第 て い る.GP研
よ び,最 近 の研 究 例 を紹 介 して い る.
は 人 気 テ レ ビ ドラ マ 「ス タ ー ・
こ と で あ る.現 Generationが
育 て る こ と,こ
在 で は 第 3弾 が 人 気 を博 し
活 躍 す る こ と を 期 待 す る.そ れ こ そ が 本 書 の使 命 で あ る と思 わ
次
目
まえが き
序章
は じめ に
1
0.1
本書 の構 成
1
0.2
付 録GPシ
0.3
FTPと
3
ニ ュ ー ス グ ル ー プ に つ い て
4
遺 伝 的 プ ログ ラ ミ ング の基礎
第 1部 第 1章
ス テ ム の 動 か し方
GP入
門
13
1.1
GAの 基礎 知識
13
1.2
GAか
らGPへ
18
1.3
GPの
実 行 例
27
第 2章
C言 語 に よるGPシ
2.1
概 要
2.2
sgpcの
ス テ ム
43
43 ア ル ゴ リズ ム
2.2.1
startup
2.2.2
run
_gp_system
47
47 48
2.2.3
generations
49
2.2.4
集団 の初 期化
52
2.2.5
適合度 の計算
58
2.2.6
終了条件 の判定
2.2.7
checkpoint処
2.2.8
breed
60' 62
理
_new_populationと
世 代 交代
例題 への適 用
2.3
2.3.1
REGRESSION
2.3.2
SIN
62 66
67 70
2.4
応 用例 題 ―人工蟻 の探 索
72
2.5
拡 張機 能
87
2.5.1
複 数の集 団の処 理
2.5.2
steady
2.5.3
demes
LISP言
第 3章
88 88
state
89
語 に よ るGPシ
ステム
91
3.1
概 要
91
3.2
GPシ
94
3.3
ス テ ム の ア ル ゴ リズ ム
3.2.1
kernel.lisp-GP本
3.2.2
editオ
96
体
108
ペ レー タ
110
例 題へ の適用 3.3.1
REGRESSION
3.3.2
MAJORITY-ON
111 115
3.4
応用例題 ―人工蟻 の探 索
118
3.5
拡張機 能
124
3.5.1
自動 的関数定義(ADF)
3.5.2
高 速 化eval
136
124
第 2部
遺 伝 的 プ ログ ラ ミング の応 用
第 4章
GPの
応 用 にあ た って
第 5章
GPの
応 用
147
ロ ボ ッ ト プ ロ グ ラ ミ ン グ へ の 応 用
5.1
147
5.1.1
ロ ボ ッ トの プ ロ グ ラ ム とGP
5.1.2
頑 強 な ロ ボ ッ ト ・プ ログ ラム の生 成
147 148
人工生命 へ の応 用
5.2
156
5.2.1
人工 生命 と創発
5.2.2
餌 を巣 に運 ぶ蟻の行動 の進 化
5.2.3
餌集 め行動 の進 化
156 157
164
シ ス テ ム 同 定 問 題 へ の応 用
5.3
シ ス テ ム 同 定 問題 と は
5.3.2
時系列 予測問題
5.3.3
GPを
169
5.3.1
169 170
拡 張 した シス テム:STROGANOFF
分子生物 学へ の応用
5.4
分 子生物学 入門
5.4.2
膜 貫通領域 の分類
5.4.3
メ モ リ付 きGP
5.4.4
評価 方法
5.4.5
GPに
181 182 185 186
よ る分 類 実 験
GPの 最近の研究 自動 的関数 定義
174 181
5.4.1
第 6章 6.1
141
187
193
193
6.2
6.3
6.4
6.1.1
自動 的関数定義 とは
6.1.2
Automatically
6.1.3
Module
6.1.4
ADFとMAの
6.1.5
Collective
MDLに
193
Defined
197
Acquisition:MA
198
性能比 較 ADF
195
Functions:ADF
for subroutine
acquisition:COAST
199 204
基 づ くGP
6.2.1
MDL基
準 に よ る適 合 度 評 価
6.2.2
GPに
よ る決 定 木 の探 索
6.2.3
MDL基
準 に よ るGPの
204 206
適 合度計算
212 213
型 付 きGP 6.3.1
デ ー タ型 と は
6.3.2
GPに
213
お け る型
215
並列GP
220
6.4.1
並列GA
6.4.2
並列GPの
6.4.3
AP 1000+上
6.4.4
並列GPの
6.4.5
構 造的 多様 性 に よる検 証
220
実装例
222
で の 並 列GP
比較 実験
223 226 228
演習問題 の解答
235
参考文献
246
索引
254
付 録:CD-ROMに
あ とが き
つ い て
258 261
序章 は じめ に
0.1
本書 の構成
第 1部 で は 遺 伝 的 プ ロ グ ラ ミ ン グ(Genetic 基 礎 に つ い て,実
Programming,以
際 の シ ス テ ム を 動 か す こ と を とお して 説 明 す る.こ
1.GPの
ア ル ゴ リ ズ ム に つ い て 理 解 す る.
2.GPの
実 際 の シ ス テ ム の 操 作 法 お よび 動 き方 を理 解 す る.
3.さ ま ざ ま な応 用 にGPを とい う こ とで あ る.本 に 示 した.第
下GPと
略 す)の
こ で の 目 的 は,
適 用 す る技 法 を 身 に つ け る.
書 を読 み 進 め るべ き順 番 を,フ
ロ ー チ ャ ー トに して 図0.1
1部 を読 む た め の必 要 最小 限 の条 件 は,C 言 語 お よ び そ の 開 発 環 境
に つ い て ひ と通 り理 解 して い る か,も
し くはLISPに
つ い て の 基 礎 知 識 を有 して
い る こ とで あ る.こ の い ず れ に も該 当 しな い場 合 は,適 切 な 参 考 書 に よ り,C ま た はLISPの
基 礎 知 識 を 身 に つ け る こ とを お勧 め す る.
第 1部 で はCD-ROMの LISP版
のGPシ
す るの か,も
版 のGPシ
ス テ ムお よび
ス テ ム)に 基 づ い て 説 明 を行 う.読 者 は 自分 が C で プ ロ グ ラ ム し くはLISPで
とす る か で),第 LISPお
中 に収 め られ て い るGP(C
2章,も
よ び C でGPを
プ ロ グ ラ ム す るの か に 応 じて(ま
た は ど ち らを得 意
し くは 第 3章 に進 まれ る の が よ い.た
だ し,実 際 に は
行 う場 合 に そ れ ぞ れ の 長 所 お よ び欠 点 が あ る(表0.1).
図0.1
本 書 を読 む た め の フ ロ ー チ ャ ー ト
表0.1
C でGPシ
C 版 のGPとLISP版
のGPの
比較
ス テ ム を開 発 す る と,そ の 処 理 ス ピー ドが 速 い とい う利 点 が あ るが,
プ ロ グ ラム の進 化 を扱 う よ う な高 度 な プ ロ グ ラ ミ ング は 困 難 で あ る と い う欠 点 を 持 つ.一 方,も
と も とGPがLISPの
こ とか ら もわ か る よ う に,LISPは
プ ロ グ ラ ム の進 化 シ ス テ ム と して 誕 生 した 高 度 な プ ロ グ ラ ミン グ に適 して い る 一 方 で,処
理 ス ピー ドが コ ン パ イ ル し て も C に比 べ て 遅 い とい う欠 点 を持 つ.し い ず れ か 一 方 のGPシ
ス テ ム を 学 習 した後 で,も
たが って,
う一 方 の 言 語 でGPシ
ス テムを
習 得 す る こ と を強 く推 奨 す る.そ れ に よ り両 方 の 長 所 が 理 解 で き,読 者 自 らGP を応 用 ・開発 す る場 合 に役 立 つ で あ ろ う.
0.2
付 録GPシ
GPに
限 ら ず,コ
ス テム の動 か し方
ン ピ ュ ー タ の シ ス テ ム や ア ル ゴ リ ズ ム を 理 解 す る に は,実
に 使 っ て み る の が 一 番 で あ る.そ
こ で,付
属 のCD-ROMか
らGPの
シ ス テ ム を,
手 元 に あ る コ ン ピ ュ ー タ に 読 み 出 し て 動 か し て み て ほ し い.CD-ROMの C 版 のGPシ
ス テ ム と, LISP版
のGPシ
際
ス テ ム が 収 め ら れ て い る.そ
中に は れぞれの
シ ス テ ム の 詳 し い 説 明 は 後 の 章 に 譲 る と して,こ
こ で は まず,適
パ イ ル な ど行 っ て 実 行 し て み て ほ しい.ま
デ ィ レ ク ト リの 中 に あ るReadme
た,各
と い う フ ァ イ ル や そ の 他 の ド キ ュ メ ン トを 読 ん で み よ う.こ の エ ラ ー が 起 こ っ た り,イ はCD-ROMが
コン
の時 点 で コ ンパ イ ル
ン タ プ リ タ で 正 常 に 動 か な くて も,あ
正 し く動 作 す る こ と を 確 認 し て み よ う(な
当 にmakeや
わ て ず に,ま
お, CD-ROMの
ず 詳細
は258ペ
ー ジ を 参 照 して ほ し い).
例 え ば,C
版 のGPに
を 実 行 し て み る.こ
お い てREGRESSIONと
の と き コ ン パ イ ル が 正 常 に 終 わ っ た 後 に,gpcと
ク ト コ ー ドが で き る は ず で あ る.こ
gpc
1 4 none
い う デ ィ レ ク ト リ に 行 き, make い うオ ブ ジ ェ
のgpcを,
99
と し て実 行 す る と,結 果 は 図0.2の
よ うに な る で あ ろ う.た だ し,図 は 実 行 の 一
例 で あ り,必 ず し も同 じ表 示 で は な い(計 算 機 や 乱 数 の 発 生 状 況 に よ り結 果 は 異 な る はず で あ る).な セ ミ コ ロ ン(;)の
お 図 で は,ユ ー ザ が 入 力 した コマ ン ドに下 線 を引 い て い る. 後 ろは 説 明 の た め に後 に 筆 者 が 付 け 加 え た もの で あ る.コ メ
ン トは 必 要 に 応 じて,コ い.こ
メ ン トす べ き箇 所 の 前 か 後 ろ に 付 け る の で注 意 して ほ し
の 説 明 法 は以 下 で も同 様 に用 い る.
図0.2は 何 が しかGPが
行 っ て い る処 理 を示 す.な お, LISP版
のGPの
み を学
び た い 読 者 も,こ の C の 部 分 に 関 して は 同 じ よ う に実 行 して い た だ きた い.な ぜ な ら ば,こ の 例 をGPの
ア ル ゴ リズ ム の 説 明(第
1章)に
用 い る か らで あ る.た
だ し,そ れ は概 念 的 な説 明 で あ る の で,C の こ と を知 らな くて も安 心 して ほ しい. 正 常 に 付 属 のGPシ
ス テ ム が 読 者 の コ ン ピ ュ ー タで 動 作 す る こ とが わ か れ ば,
そ れ で こ の 節 は終 わ りで あ る.こ
こで 実 行 した 複 雑 な振 舞 い,そ
れがGPの
エッ
セ ンス で あ る.こ の 意 味 を次 章 か ら説 明 す る.
0.3
FTPと
ニ ュー ス グル ー プにつ い て
ネ ッ トワ ー ク に加 入 して い る ユ ー ザ は,GPに
つ い て の最 新 の 話 題 をニ ュ ー ス
グ ル ー プ に加 入 し て手 に 入 れ る こ とが で き る.さ
ら に,ア
て い る 共 用 の コ ン ピュ ー タ にFTPす
る こ とに よ って,有
フ トを手 に入 れ る こ とが で き るで あ ろ う.も う した機 会 を活 用 す る こ とを お勧 め す る.
メ リ カ の大 学 で 管 理 し 用 な情 報 やPDSの
ソ
し上 の こ とが 可 能 な読 者 は,ぜ
ひこ
図0.2
GPの
実 行例
. まず,FTPに
つ い て 説 明 す る. GPの
ソ ー ス,論
文,最
新 の 情 報 の た め のFTP
サ イ トの ア ド レ ス は, ftp.io.com で あ る.こ
こ の,
/pub/genet
ic-programming
と い う デ ィ レ ク ト リ に,GPに い う デ ィ レ ク ト リ に はGPに め ら れ て い る の は,こ 版)で
あ る.お
も な 入 手 可 能 な ソ ー ス を 表0.2に
示 す.さ
で あ ろ う.さ 問 さ れ,専
ら に,こ
変形
ら に,papersと
関 連 し た 最 近 の 論 文 が 収 め られ て い る.ま
見 る こ と で, GPに
収
の プ ロ グ ラ ム(の
関 し て の し ば しば よ く尋 ね ら れ る 質 問(Frequent
あ る.FAQを
の 下 のcodeと
関 連 し た い くつ か の ソ ー ス が あ る.CD-ROMに
こ か ら入 手 し た C 版 お よ びLISP版
デ ィ レ ク ト リ に は,GPに はGPに
関 連 し た 情 報 が 収 め ら れ て い る.こ
い う
た, FAQ-GP
Asked Questions)で
関 す る 疑 問 の い くつ か を 解 決 す る こ と が で き る
の よ う なFAQは
し ば し ばGPの
ニ ュ ー ス グ ル ー プ で も質
門 家 が 解 答 し て い る.
【 演 習 問題 1】 FTPに
よ り, papersの
ア ウ ト し な さ い.こ
デ ィ レク トリか ら次 の フ ァ イ ル を取 っ て きて プ リ ン ト
の 論 文 は ど う い う も の か.
1.GP.feature.discovery.ps.Z 2.ICGA93.Donut.ps.Z
GPの
ニ ュ ー ス グ ルー プ は ス タ ン フ ォー ド大 学 で 管 理 さ れ て い る.こ
の メ ー リ ン グ リス トへ の 参 加 方 法 を 簡単 に書 い て お く.こ う したGPの
こでGP メー ル グ
ル ー プ に参 加 す る こ とで,日 夜 交 わ され て い る盛 ん な 議 論 や 最 新 の研 究 の 話 題 な ど の情 報 が 手 に 入 る と思 わ れ る.ま
た,GPに
関 す る ソー ス や さ ま ざ まな マ シ ン
で の 実 行 方 法 な どの 情 報 も入 手 で き る.GPの
メ ー リ ン グ リ ス トに加 入 した い 場
合 は,電 子 メ ー ル に よ り,
表0.2
FTPサ
イ トにあ るGP関
連 の ソ ース例(96年
genetic-programming-REQUEST〓cs.stanford.edu
と い う ア ド レ ス あ て に, subscribe
genetic-programming
end と い う メ ッ セ ー ジ を(他
に 何 もつ け ず に)送
メ ー ル グ ル ー プ を や め た い 場 合 は, unsubscribe
genetic-programming
end を 送 る.こ help
の ほ か に,
る.
4月現 在)
end
を送 る と利 用 可 能 な コ マ ン ドの一 覧が 送 られ て くる.こ れ らの 処 理 は い ず れ も 自 動 的 に な さ れ て い る. な お,GPに ucla.edu,
関 連 し てAlife(人 UCLAで
管 理)やGA(遺
Request〓AIC.NRL.NAVY.MIL)の
工 生 命,ア
ド レ ス はalife-request〓cognet.
伝 的 ア ル ゴ リ ズ ム,ア
ド レ ス はGA-List-
メ ー リ ン グ リ ス ト も 存 在 す る.こ
し て 加 入 で き る の で 試 み て い た だ き た い. ま た,GPに edu/ koza/で
関 す る ホ ー ム ペ ー ジ のURLはhttp://www-cs-faculty.stanford. あ る.可
能 な 読 者 は 利 用 し て 情 報 を 得 て ほ し い.
れ ら も同様 に
第 1部
遺 伝 的プログラミングの基 礎
第 1章 GP入 GAの
1.1 GA(遺
門
基礎知識
伝 的 ア ル ゴ リズ ム, Genetic Algorithms)は,進
化 論 的 な 考 え方 に基
づ い て デ ー タ を操 作 し,最 適 化 の 問題 や 学 習,推 論 を扱 う手 法 で あ り,近 年 盛 ん に研 究 され て い る.GPはGAの 本 節 で はGPの
理 解 に必 要 なGAの
み を解 説 す る の で,よ 94]な GAで
拡 張 とい う意 味 で, GAの
考 え 方 を多 く用 い る.
基 礎 知 識 を説 明 す る.こ こ で は 必 要 最 小 限 の
り詳 し く知 りた い 読 者 はGAの
教 科 書(例
え ば拙 著[伊 庭
ど)を 参 照 して い た だ き たい. 扱 う情 報 は, PTYPEとGTYPEの
伝 子 コ ー ドと もい い,細
胞 内 の 染 色 体 に 相 当す る)は 遺 伝 子 型 の ア ナ ロ ジ ー で,
低 レベ ル の局 所 規 則 の 集 合 で あ り,GAの は表 現 型(発
現 型)で
造 の 発 現 を表 す.環
二層 構 造 か らな る. GTYPE(遺
あ り,GTYPEの
境 に 応 じてPTYPEか
そ の た め適 合 選 択 はPTYPEに
オ ペ レー タの操 作 対 象 とな る. PTYPE 環 境 内 で の発 達 に伴 う大 域 的 な行 動 や構 ら適 合 度(fitness value)が
依 存 す る(図1.1).表1.1は
生 物 とGAで
決 ま り, の 表現
の 対 応 で あ る.こ こ で は,GAのGTYPEと
して 1次 元 の ビ ッ ト列 を考 え,そ れ
をバ イ ナ リ表 現 で 変 換 し た もの をPTYPEと
して い る.
こ の 表 現 を も と に,GAの
基 本 的 な 仕 組 み を説 明 し よ う(図1.2).何
匹 か の魚
図1.1GTYPEとPTYPE
生物
GA
遺伝子型(染 色体 の集 まり) 例:TT,Tt,tt,…
伝 子 コ ー ド)
例:000,001,010,011,…
表 現 型(遺 伝 子 型 の発 現) 例:高 性(TT,Ttの 個 体) 倭性(ttの
GTYPE(遺
個 体)
PTYPE(GTYPEの
変 換 結 果)
例:0,1,2,3,… バ イ ナ リ表 現 の 変換 値
適合度 例:生
適合度
き残 りや す さ
例:目
遺伝子
的関数値
遺伝子
例:T,t
例:0,1
表1.1
生 物 とGAの
比較
が い て集 団 を構 成 す る.こ れ を世代 tの 魚 とす る.こ の 魚 は各 々GTYPEと 遺 伝 子 コー ドを有 し,そ れ が 発 現 したPTYPEに
応 じて 適 合 度 が 決 ま っ て い る.
適 合 度 は 図 で は 四 角 の な か の数 値 と して示 され て い る.こ
こで は適 合 度 は大 きい
もの ほ ど良 い と し よ う.こ れ らの 魚 は生 殖 活 動(recombination, を行 い,次 の 世 代t+1の
して
reproduction)
子 孫 をつ く り出 す.生 殖 に際 して は適 合 度 の 大 きい もの
ほ ど よ りた くさ ん の子 孫 をつ く りや す い よ うに,そ
して適 合 度 の小 さい もの ほ ど
死 滅 しや す い よ う にす る(こ れ を生 物 学 用 語 で選 択 も し くは淘 汰 とい う).図 で は 生 殖 に よ っ て 表 現 型 が 少 し変 わ っ て い く よ うす が 摸 式 的 に 描 か れ て い る.こ の 結 果,次
の 世代t+1で
の各 個 体 の 適 合 度 は,前 の世 代 よ り も良 い こ とが 期 待 され,
集 団 全体 と して見 た と きの 適 合 度 が 上 が っ て い る で あ ろ う.同 様 に して,t+1世 代 の 魚 た ちが 親 と な っ てt+2世
代 の 子 孫 を生 む.こ
れ を 繰 り返 して い く と,世
代 が 進 む につ れ しだ い に 集 団 全 体 が 良 くな っ て い く,と い うの がGAの
基 本的 な
仕 組 み で あ る. こ こで,選 択 につ い て 簡 単 に 説 明 し よ う.適 合度 の 大 きい もの ほ ど よ り多 産 で あ り,適 合 度 の小 さい もの ほ ど死 に や す い よ うに 選 び た い.そ れ を 実 現 す る 最 も 単 純 な 方 法 は,適 合 度 に比 例 した面 積 を有 す る ルー レ ッ ト(重 み 付 け ル ー レ ッ ト と呼 ぶ)を つ く り,そ の ル ー レ ッ トを回 して 当 た っ た 場 所 の個 体 を 選 択 す る とい う もの で あ る.こ の 方 式 をル ー レ ッ ト方 式 とい う. 生 殖 の 際 に は,GTYPEに
対 して 図1.3に
示 す オ ペ レ ー タ が 適 用 さ れ,次
の世
図1.2GAの
し くみ
代 のGTYPEを
生 成 す る.こ こで は 簡 単 の た め に, GTYPEを
1次 元 の 配列 と し
て表 現 してい る.各 オペ レ ー タ は遺 伝 子 の 組 み 換 え,突 然 変 異 な どの ア ナ ロ ジー で あ る . これ らの オ ペ レ ー タの適 用 頻 度,適 用 部 位 は 一 般 に ラ ンダ ム に 決 定 され る.
図1.3GAオ
ペ レー タ
ラ ンダ ムに初 期 世代 の集 団M(0) を生成 す る.
現 在 の 集 団M(t)内
の 各 個 体mに
対 して適 合 度 μ(m)を 計 算 す る.
μ(m)に 比例 す る確 率 分 布 を用 い て, M(t)か
ら個 体mを
選 び 出 す.
選 び 出 され た 個 体 にGAオ を作 用 させ て,次 M(t+1)を
図1.4GAの
適合度 計算
選択
ペ レー タ
の世 代 の集 団
生 成 す る.
ア ル ゴ リズ ム
生殖
GAの
基 本 的 な 流 れ を ま とめ る と,次 の よ う に な る(図1.4).
GTYPEの
合M(t)={gt(m)}を
あ る世 代 tに お け る個 体 群 とす る.各
現 型PTYPE
対 して,環 境 内 にお け る適 合 度(fitness)ut(m)が
pt(m)に
さ れ る.GAオ
ペ レー タ は,一 般 に 適 合 度 の大 き なGTYPEに
結 果 生 成 され た 新 た なGTYPEは
適 合 度 の 小 さ なGTYPEと
々のgt(m)の
表 決定
適 用 され,そ
の
置 き換 え られ る.
以 上 に よ り,適 合 度 に よ る 選 択 を 実現 し,次 の 世 代(t+1)のGTYPEの M(t+1)={gt+1(m)}が
集
集合
生 成 され る.以 下 同様 に して これ らの 過 程 は 繰 り返 さ
れ る.
【 演 習 問題 2】 GAの
技 法 と して,次 の もの を説 明(理 解)し
な さい.な
お,こ れ ら はGPに
お い て も 同 様 に用 い られ る. トー ナ メ ン ト選 択 方 式
1.
2.
ラ ン ク選 択方 式
3.
エ リー ト戦 略
GAか
1.2 GPは,
GAの
らGPへ 遺 伝 子 型(GTYPE)を
し た もの で あ る.こ
拡 張 し,構 造 的 な 表 現 を扱 え る よ う に
こで の 構 造 的 表 現 とは,グ
ラ フ構 造 や 木 構 造 の こ と を い う.
まず は じめ に,な ぜ こ の よ う な表 現 を扱 う必 要 が あ る の か を考 え て み よ う. 例 と して,エ
キ スパ ー トシ ス テ ム や 学 習 な どの 人 工 知 能 の 問題 に,GAを
す る こ と を考 え よ う.そ の た め に は ど うす れ ば よい で あ ろ う か? 能 で は 記 号 的 な 構 造 表 現,特 目す る.こ 図1.5と
応用
まず,人 工 知
に グ ラ フ構 造 や 木 構 造 が しば しば 登 場 す る こ と に注
れ は知 識 表 現 と して グ ラ フ構 造 が 便 利 で あ る か らで あ ろ う.例 え ば,
図1.6に
人 工 知 能 の シ ス テ ム で しば し ば 用 い ら れ る 知 識 表 現 を示 す.図
1.5は フ レー ム(Frame)と
呼 ば れ る概 念 を表 現 す る言 語 に よ って,ジ
人 の 関 係 を 記 述 した もの で あ る[Winston92,p.188].こ
こ で, akoは
ャッ ク と変 集合 間の包
図1.5
フ レー ムに よ る概念 木
図1.6 構 文解 析 の木
含 関 係(akind
of), isaは 要 素 が 集 合 に 帰 属 す る こ と(isa)を
れ を 用 い て 人 工 知 能 で は さ ま ざ ま な 推 論,学 い ら れ る 導 出 木 で あ る[Barr81,p.308],“the
習 を 試 み る.図1.6は
は こ れ は0.2節
で 実 行 し たsgpc1.1の
した が っ て,複 雑 な数 式 や 概 念,関 こ の こ とか ら,グ ラ フ構 造(特
ら に,図1.7は
出 力(図0.2)の
い う文 章 を
数式 の木表現 で 一 部 で あ る.
係 な どを 木構 造 で 表 現 で きる こ とが わか る.
に 木 構 造)を 扱 え る よ うにGAの
こ とは 意 義 の あ る こ とで あ り,GAの
機 械 翻訳 で用
boy ate the apples"と
句 構 造 文 法 で 解 釈 し た 結 果 が 記 述 さ れ て い る.さ あ る.実
述 べ て い る.こ
手 法 を拡 張 す る
適 用 範 囲 の 拡 大 につ な が る と思 わ れ る.
(b)
(a)
図1.7 数式 の木 構 造
GAを ぶ.つ
構 造 的 表 現 に拡 張 した 枠 組 の こ と をGP(遺 ま りGPは,従
来 のGAの
伝 的 プ ロ グ ラ ミ ン グ)と 呼
欠 点 を次 の よ うに 補 う こ と を試 み る もの で あ る
[伊庭93]. 1.探 索 の た め の 的 確 な 部 分 構 造 の 把 握 2.問 題 の 表 現 形 式 に基 づ い た 効 果 的 な探 索 の 実 現 3.よ り高 次 の 知 識 の適 応 的 な学 習 シ ス テ ム の 構 築 構 造 的 表 現 の た め のGA手 はJohn
Kozaで
の ぼ る)大
述 べ た よ う に,GPの て い る.こ
GPで で あ り,
あ る. GPの
著[Koza92]と
研 究 者 が 参 集 し,本
法 を,“Genetic
Programming”
基 本 的 な 枠 組 み は 1冊 の 分 厚 い(800ペ
し て ま とめ ら れ て い る,現
家 のGAを
と して確 立 した の
在, Kozaの
も と に 多 数 のGP
凌 駕 す る に ぎ わ い を 見 せ て い る.ま
メ ー リ ン グ リ ス トが 作 成 さ れ,日
の よ う な 背 景 を ふ ま え て,以
下 で はGPの
ー ジに も
た,0.3節
で
夜 盛 ん な論 議 が 交 わ され 基 礎 に つ い て 説 明 す る.
は 木 と呼 ば れ る構造 表 現 を扱 う.木 は サ イ ク ル を持 た ない グ ラ フの こ と
の よ う な構 造 をい う.木 構 造 は か っ こ つ きの 表 現 で 記 述 で き,例 え ば 上 の 木 は,
(A(B) (C(D))) も し くは 簡略 化 して,
(AB (CD)) とな る.こ の 表 記 法 を(LISPの)S
式 表 現 とい う.以 下 で は 木 構 造 と S式 を同
一 視 す る.な お この よ うな 木構 造 に 関 して,以 ● ノ ー
ド:記
● 根(ル
号A,B,
C, Dの
こ と
ー ト):A
● 終 端 ノ ー ド:B,D(終
端 記 号,葉
● 非 終 端 ノ ー ド:A,C(非 ● 子 供:A ● 親:C
下 の 用 語 を用 い る.
と も い う)
終 端 記 号, S 式 の 関 数 記 号 と もい う)
に とっ て の 子 供 はB,C(関
数 A の 引 数 と もい う)
に と って の 親 は A
「子 供 の数 」,「引 数 の数 」,「 孫 」,「 子 孫」,「先 祖 」 な ど とい う言 葉 も適 宜 使 用 して い く.そ れ らの 意 味 は容 易 に想 像 が つ くの で説 明 は 省 略 す る.詳 は グ ラ フ 理 論 の 用 語解 説(例 木 に対 す るGAの
し く知 りた い 読 者
え ば[伊 庭93]の 付 録 な ど)を 参 照 して ほ しい.
オペ レー タ と して,以 下 を導 入 す る(図1.8).こ
ト列 を対 象 とす る従 来 のGAオ
ペ レー タの 自然 な拡 張 で あ る.
Gmutation
ノ ー ドの ラ ベ ル の 変 更
Ginversion
兄弟 の並 べ換 え
Gcrossover
部分木 の取 り換 え
これ らの オ ペ レー タ を木 構 造 に適 用 した例 を図1.9に 記 述 す る と次 の よ うに な る.た
れ らは ビ ッ
示 す.こ の 適 用 を S式 で
だ し,オ ペ レー タの 適 用 部 位 には 下 線 を付 した.
(a)Gmutation
(b)Ginversion(兄
(c)Gcrossover
図1.8木
(ノ ー ドの ラ ベ ル の 変 更)
弟 の 並 べ 換 え)
(部 分 木 の 取 り 換 え)
構 造 上 のGAオ
ペ レ― タ
(a)Gmutation
(b)Ginversion
(c)Gcrossover
図1.9
LISPの
S 式 への適 用 例
Gmutation
(+xy) (+xz)
Ginversion
(progn(incfx)(setqx2)(print
(progn(setqx2)(incf
Gcrossover
な お,厳
x))
x)(print
x))
(progn(incf
x)(setq
x 2)(setq
y x))
(progn(decf
x)(setq
x(*(sqrt
x)x)(print
(progn(incf
x)(sqrt
x)(setq
(progn(decf
x)(setq
x(*(setq
密 に 言 え ばGmutationに
x))
y x)) x 2)x)(print
x))
は 次 の 種 類 が あ る(図1.10).
1.終 端 ノ ー ドか ら非 終 端 ノ ー ドへ の 突 然 変 異(図1.10(a))
新 しい部 分 木 の生 成 を伴 う 2.終 端 ノ ー ドか ら終 端 ノ ー ドへ の 突 然 変 異(図1.10(b))
ノ ー ドラ ベ ル の付 け換 えの み 3.非 終 端 ノ ー ドか ら終 端 ノ ー ドへ の 突 然 変 異(図1.10(c))
部分木 の削除 を伴 う 4.非 終 端 ノ ー ドか ら非 終 端 ノ ー ドへ の 突 然 変 異 Case
1
新 しい 非 終 端 ノ ー ドと,古 い 非 終 端 ノ ー ドの 子 の 数 が 同 じ場 合 (図1.10(d))
ノ ー ドラベ ル の付 け 換 えの み Case 2
新 しい 非 終 端 ノ ー ドと,古 い 非 終 端 ノー ドの 子 の 数 が 異 な る場 合 (図1.10(e))
部 分 木 の 生 成 ・削 除 を伴 う オペ レー タの適 用 の割 合 は 確 率 的 に制 御 され る.
(a)
(b)
(c)
(d)
(e)
図1.10Gmutationオ
以 上 の 準 備 の も とにGPの
ペ レ ー タ
ア ル ゴ リズ ム は次 の よ う に な る.
Step1
ラ ン ダム に木 構 造GTYPE{gt(i)}を
Step2
各GTYPE{gt(i)}の {ft(i)}を
表 現 型PTYPE{pt(i)}に
適 合 度 の 大 きなGTYPEに
Step4
取 り 出 し た ペ ア に 対 し てGcrossoverを
Step5
対 して 適 合 度
求 め る.
Step3
GTYPEと
構 成 す る.
対 して 一 定 数 の ペ ア を取 り出 す. 適 用 し,適
合 度 の小 さ な
置 き換 え る.
各GTYPEに
関 し て,ラ
ン ダ ム にGinversion,
Gmutationを
適 用 す る. Step6
以 上 に よ っ て 求 め られ た新 しいGTYPEを,次 と し て,Step2へ
戻 る.
の 世 代 の{gt+1(i)}
た だ し,適
合 度 は 大 き い も の ほ ど 良 い と し て い る.こ
タ の 違 い を 除 い て1.1節 て い た だ き た い.し
で 述 べ たGAの
の ア ル ゴ リ ズ ム は,オ
ペ レー
た が っ て,GPで
ア ル ゴ リズ ム と同 一 で あ る こ と に注 意 し はGAの
知 見 の 多 くをそ の ま ま用 い る こ と
が で き る.
GPで
は 次 の 5 つ の 基 本 要 素 を設 計 す る こ とで,さ
ま ざ まな応 用 例 題 へ の 適 用
が 可 能 に な る. 1.
非 終端 記 号(以 下 F で表す) 非 終 端 ノ ー ドで 使 う 記 号.LISPの
2.
終 端 記号(以 下 T で表 す) 終 端 ノ ー ド(葉)で
3.
適合度
4.
パ ラ メー タ
交 叉,突 5.
S式 で の 関 数.
使 う 記 号.LISPの
然 変 異 の起 こ る確 率,集
S式 で の ア トム.
団 サ イズ な ど.
終 了条件
Step1の SUBTREEを
ラ ン ダム な 木 構 造 の 生 成 は, T と F が 与 え られ た と き,次 の 手 続 き 呼 ぶ こ とで な され る.
手続 きSUBTREE: 1.TUFか
ら 1つ の ノ ー ド x を ラ ン ダ ム に 取 り出 す.
2.x∈Tな
ら x を 返 し て 終 わ り.
3.x∈Fな
ら x の 引 数 の 数 を n と す る.そ
し て,
SUBTREEをcallし
て そ の 結 果 をa1と
す る.
SUBTREEをcallし
て そ の 結 果 をa2と
す る.
SUBTREEをcallし
て そ の 結 果 をanと
す る.
最 後 に(xa1a2…an)と
い う 部 分 木 を 返 し て 終 わ り.
した が っ て,木 構 造 は再 帰 的 に生 成 され る こ とが わ か る.た だ し,こ の ま まで は 非 常 に深 い 木 を得 る こ とが あ る た め,後 述 の よ うに木 の 生 成 を適 切 に制 御 す る
必 要 が あ る. 次 節 で は,GPの
1.3 GPの
実 行 例 を簡 単 な例 題 に よ りみ て み よ う.
GP の 実 行例 実 行 を 記 号 当 て は め(Symbolic
Regression)を
記 号 当 て は め 問 題 と は 次 の よ う に 定 義 さ れ る.未 力 変 数 を{x1,…,xn},出
例 に し て 説 明 す る. 知 の 関 数 f が あ る.f
力 変 数 を y とす る.
(1.1)
y=f(x1,…,xn)
こ の と き,入
力 と 出 力 値 の ペ ア ー(x1,x2,…,xn;y)を
か を 知 り た い(同 1.2の
定 し た い),も
い く つ か 観 測 し, f が 何
し く は f を 近 似 し た い(図1.11).例
よ う な 観 測 値 を 得 た と し よ う.た
りn=1,x1=X)と
の入
だ し,こ
え ば,表
の 場 合 入 力 変 数 は X の み(つ
ま
す る.
y=f(X) こ の と き,f ば,+2,-2,*2,%2な
を 近 似(同
定)す ど.こ
る の に,使
っ て よ い 関 数 が 与 え ら れ て い る.例
こ で,+,-,*,%は
子 の 後 の 数 字 は 引 数 の 数 で あ る.た す よ う に 拡 張 し て あ る.ま
(1.2)
だ し,%は
通 常 の 四 則 演 算 を 示 す.演
え 算
0で割 っ た 場 合 に 1を値 と して 返
た 変 数 や 定 数 と し て は,
{X,R}
(1.3)
を用 い る.た だ し,X は 入力 変 数, R は乱 数 発 生 器 に よ り与 え られ る何 らか の実 数 値 で あ る.し た が っ て,
や
図1.11
表1.2
y=f(x1,…,xn)の
イ メ ー ジ
記 号当 て はめ問 題の デ ー タ
な ど は 正 しい 式 で あ る(こ
れ ら の 木 表 現 は 図1.7に
示 さ れ て い る).一
方,
や
は 誤 っ た式 で あ る.第 数COSを
1の 式 で は-の
用 い て い る.
で は,GPを
用 い て 記 号 当 て は め 問 題 を 解 い て み よ う.式
こ と を 考 え る と,GPの る.ま
た,適
ま,入
力Xiに
をyiと
引数 が 違法 で あ り,第 2の 式 で は未 定 義 関
で はN=10と
探 索 オ ペ レー タ を そ の ま ま当 て は め 式 の 探 索 に適 用 で き
合 度 は 式 の 当 て は め の 誤 差E(error-of-fit)と
す る.た
対 す る S 式(つ
ま りGPの
だ し,i=1,2,…,Nで な る.以
が 木 表 現 で 表 され る
遺 伝 子)の
し て 定 義 で き る.い
予 測 出 力 をyi,正
しい 出 力
あ る. N は デ ー タ の 数 で あ り,こ
の例
下 で は 次 の 式 を適 合 度 計 算 に採 用 す る.
(1.4) 当然 小 さい もの ほ ど成 績 が よい.E=0.0と
な る もの が 正 解 で あ る.た だ し,実
際 に は デ ー タ を訓 練 例 とテ ス ト例 に分 け,学 習 を訓 練 例 で行 い,学 習 結 果 を テ ス
ト例 の 成 績 で 評 価 す る.こ れ は過 学 習 を避 け,で
きる だ け 一 般 的 な 式 を獲 得 した
いか らで あ る.
【 演 習 問題 3】 図1.7(a)の
木 構 造 に つ い て 適 合 度 を 計 算 し な さ い.
さ て,GPで
記 号 当 て は め を 実 行 し て み よ う.GPで
る た め に,sgpc(C
版 の ソ ー ス)を
1.REGRESSIONデ
次 の よ う に 変 更 し て ほ しい.
ィ レ ク ト リ 内 のdefault.inと
population_size
の 実 行 の よ うす を 詳 し く見
い う フ ァ イ ル の 変 更.
= 1024
と い う 行 を, population_size
とす る.こ 2.makeの
= 8
れ はGPの
集 団 数 を 8 と 設 定 し て い る(以
前 は1024で
あ っ た).
再 実 行.
まず,REGRESSIONデ
ィ レ ク ト リ と,そ
の 親 の デ ィ レ ク ト リ か ら 見 え るlib
デ ィ レ ク ト リ 内 の オ ブ ジ ェ ク ト コ ー ド を す べ て 消 去 す る(rm*.oコ ド).そ make
の 後 でREGRESSIONデ
マ ン
ィ レ ク ト リ に 戻 り,
DEBUG=1
の よ う にmakeを
しな おす.こ れ は 各個 体 を すべ て 表 示 して実 行 す るモ ー ド
の指 定 で あ る. こ の 間 の 修 正 例 を 図1.12に
gpc
14none
示 す.こ
の 後 でgpcを0.2節
と 同 じ く,
99
と して 実 行 して み よ う.こ こ で,2 番 目 のパ ラ メ ー タ ④
は,何 世 代 目 までGP
を実 行 す る か を指 定 す る.ま た,最 後 のパ ラ メ ー タ(99)は,乱
数 発 生 器 に与 え
る シ ー ドで あ る.実 験 を 繰 り返 す に は 適 切 に シー ドを変 え る必 要 が あ る.
図 1.12
実 行 し て み る と,今 Generation
修 正例
度 は 詳 細 な 実 行 過 程 が 表 示 さ れ る(図1.13).こ
0 Population
Best-of-gen
fitness:
Best-of-gen
tree:
は,世
sgpcの
代 0(初 期 世 代)で
0 Avg
Std
Fitness:
こで
1218.625854
1.429165
の 平 均 適 合 度(Avg
た 個 体 の 適 合 度(Best-of-gen
fitness)お
Std Fitness),一 よ び,そ
番成績 の良 かっ
の 木 構 造(Best-of-gen
tree)を
pop=
は,こ
示 し て い る.ま
た,
0 standardized
= 1.429165,
adjusted
= 0.411664,
の 世 代 で の 個 体 の 適 合 度(standardized)な
体 は 適 合 度 の 良 い(小 き た い.他
さい)順
た め テ ス トデ ー タ は 訓 練 デ ー タ そ の も の(つ Fitnessと
たValidation
た,実
今 ま で に 得 ら れ た 最 良 個 体 の デ ー タ(何
time= Best
よ び 木 構 造)が
6.790000 tree
だ し,こ
ま り表1.2)と
し て 表 示 さ れ る も の は,そ
同 じ値 の は ず で あ る.ま
fitness,お
れ らの個
に ソ ー ト して 表 示 さ れ て い る こ と に 注 意 して い た だ
各 世 代 で の 最 良 個 体 の テ ス トデ ー タ で の 成 績 を 示 す.た
fitnessと
= 0.587093
ど の 情 報 で あ る.こ
の 表 示 に つ い て は 次 章 で 説 明 し よ う.ま
て,Validation
norm
Fitnessは, の 例 で は簡 単 の
し て い る.し
たが っ
の 世 代 のBest-of-gen
行 の 最 後 に は,実
行 に か か っ た 時 間 と,
世 代 目 に 得 ら れ た かgen,そ
の適合 度
次 の よ う に 表 示 さ れ る.
seconds
for pop#0
found
こ の 実 験 を とお して,木
on gen
1, VALIDATED
構 造 が 変 形 され,世
fitness
= 0.443806:
代 か ら世 代 へ と受 け継 が れ て い
くの が わ か る で あ ろ う.そ し て,世 代 ご との 最 良 個 体 の 適 合 度(Best-of-gen fitness)を
見 て い る と,次 第 に成 績 が 良 くな っ て い くの が 観 察 で き る,残 念 な
が ら この シ ス テ ム に は,ど の よ うなGPオ れ な い.そ
ペ レー タが 適 用 され た か の 表 示 は な さ
れ で も各 世 代 の木 の よ うす を 見 て い る と,成 績 の 良 い 木(の 一 部)が
次 第 に受 け 継 が れ,広 こ こ で,第
ま っ て い くの が 見 て とれ る.
t世 代 の 個 体 の う ち適 合 度 が 第 i番 目 に 良 い もの をGt(i)と
この と き,例 え ば 第 0世 代 の 個 体 のG0(1)とG0(2)を 体G1(1)とG1(8)が G0(2)の
親 と して,第
書 く.
1世 代 の個
交 叉 に よ り生 み 出 され て い る.交 叉 の箇 所 は 図 のG0(1)と
部 分 に示 して あ る.ま
た,G1(3)はG0(1)の
コ ピ ー で あ る.こ れ は 交
叉 や 突 然 変 異 の 適 用 を受 け ず に,そ の ま ま次 世 代 に受 け継 が れ た個 体 で あ る.こ の ほか に も突 然 変 異 の み を受 け た個 体 な どが 見 い 出 せ る で あ ろ う. 次 章 以 降 で このGPシ
ス テ ム の 振 舞 い につ い て詳 し く説 明 しよ う.
図1.13
sgpcで
の 実 行例
【 演習 問題 4】 1.
以 下 の パ ラ メー タ を さ ま ざ まに変 えて,記 号 当 て は め の実 験 を観 察 しな さい. (a) 集 団 数(default.inフ (b) 最 大 世 代 数(gpcコ
ァ イ ル 内 のpopulation_size)
マ ン ドの 第 2引数)
(c) 乱 数 の シ ー ド(gpcコ
合 度 が0.0と
マ ン ドの 第 4 引 数)
2.
解 答 の 表 現(適
な る 木)を 得 る こ とが あ る か.
3.
木 構 造 内 の 実 数 値 R は どの よ う に生 成 さ れ,受 け 継 が れ て い くの か.実 行 結 果 の観 察 か ら推 定 しな さい.
第 2章 C 言 語 に よ るGPシ
2.1
ステム
概要
本 章 で は,C
言 語 に よ るGPシ
に よ り構 築 さ れ たPDSシ
ス テ ムsgpc1.1を
ス テ ム(正
説 明 す る.こ
確 に は フ リ ー ウ エ ア)で
本 的 な 動 作 は す で に 前 章 ま で に 説 明 し た.makeに
れ はWalterら
あ る. sgpc1.1の
よ りで き たgpcと
基
い う オブ ジェ
ク ト コ ー ドに ,
gpc lnnonem
の よ う にパ ラ メ ー タ を与 え てGPを
実 行 す る . こ こで n は実 行 す べ き世 代 数, m
は乱 数 発 生 器 に与 え る シー ドで あ る. 他 の パ ラ メ ー タ はdefault.inフ 容 を 図2.1に はdefault.inを 味 で あ る.他
デ フ ォー ル ト と し て(他 の フ ァ イ ル(例
たい場合 は
gpc
ァ イ ル に 納 め ら れ て い る. default.inの
示 す . こ の フ ァ イ ル は 各 々 の 問 題 ご と に 作 成 す る.gpcの
l n myparam
m
え ばmyparam)を
に 指 定 が な い の で)読
内
引 数 のnone み 込 む と い う意
パ ラ メ ー タ フ ァ イ ル と して 指 定 し