34
Genetic Programming in 開開開 K.C.L.C 33 開開開開 開開開開

Genetic programming

Embed Size (px)

Citation preview

Page 1: Genetic programming

Genetic Programmingin 開成祭

K.C.L.C 33 代副部長 藤井陽介

Page 2: Genetic programming

自己紹介

HN: touyou現副部長現高2総合クリエイターTwitter:@touyoubuntuSkype:grouse-scorpionFacebook,mixi,Google+

発表者の簡単な仕様書

こんなアイコン

Page 3: Genetic programming

今までにつくったものAndroid アプリ・ Web サービス– 災害ったー ,Nintori,n33t など– 組の用語集サイト

部活・個人でゲームとかソフトとか部誌・運動会組パンフレット(来年)作曲入門中(エール作曲係)ひとり墓地 final の PV

Page 4: Genetic programming

まぁようするに…

Page 5: Genetic programming

ホームページ見といてね

URL はhttp://beta.touyoubuntu.zatunen.com/

まぁ「 touyoubuntu 」で調べれば出てきます。

Page 6: Genetic programming

では、本題。今日話す事

テーマを選んだわけ遺伝的プログラミング(以降 GP と表記)とはな

んなのか?GP の仕組みGP のプログラムデモ応用されている分野GP の未来

Page 7: Genetic programming

まずこれテーマを選んだわけ遺伝的プログラミング(以降 GP と表記)とはな

んなのか?GP の仕組みGP のプログラムデモ応用されている分野GP の未来

Page 8: Genetic programming

理由今年情報オリンピック夏季セミナーに行ってき

たそこでこのことを学んだそれが楽しかった

という安直な理由です。こんなので勉強しました。

Page 9: Genetic programming

続いて…テーマを選んだわけ遺伝的プログラミング(以降 GP と表記)とはな

んなのか?GP の仕組みGP のプログラムデモ応用されている分野GP の未来

Page 10: Genetic programming

遺伝的プログラミングとは遺伝子の進化を応用した、様々な問題に対する

解法を導き出すためのプログラムわかりにくいよね←

Page 11: Genetic programming

例を見てみようたとえばいくつかの点の情報があってそれのす

べてを通るようなグラフの数式を出したいそんな時

GP すると、その数式を自動生成してくれます。

Page 12: Genetic programming

ふぁ!?

Page 13: Genetic programming

そんなんできるわけ無いだろ。数式考えるのなんて人間のほうが得意に決まってるじゃないか。人工知能が開発されたとでも?大体数式考えるのになんで遺伝子の進化の仕組みが必要になるんだよ、このホラ吹きめ。

とりあえず仕組みを解説します。

Page 14: Genetic programming

GP の仕組みわかりやすくなるように最大限努力します。

Page 15: Genetic programming

まず個体をランダムに生成します。先ほどの例だと個体≒数式です大体 50 ~ 500 個体ぐらい最初に作ります通常の GP だとこの個体を木構造で表現します

Page 16: Genetic programming

おい、木構造ってなんぞ?プログラミングでよく使うデータを管理するため

の構造のこと

1 ×

4 3

ここが根( root )

線の上の方が親

線の下の方が子

Page 17: Genetic programming

GP の用語では…

1 ×

4 3

黒いのが非終端記号

白いのが終端記号

Page 18: Genetic programming

その他の GP 用語

適合度– 各個体の価値

パラメータ– GP の操作のための各種数値

終了条件– GP の操作を終える基準

Page 19: Genetic programming

続いて、各操作を行います。適合度計算– 各個体の適合度を計算します

選択– 様々な手法で個体を選びます

交叉– 選んだ2個体を混ぜて新しい個体を作ります

突然変異– 個体の一部を変えて新しい個体を作ります

Page 20: Genetic programming

適合度計算より正解に近い結果を出す個体複雑さ(例:数式の長さ)が少ない個体

上の2つを満たす個体がより優良な個体と判断されるような基準をつくって計算します。ここの工夫で GP の最終結果の良し悪しが決まります。

Page 21: Genetic programming

選択

文字通り例:– トーナメント選択:ランダムにいくつかの個体を選

んでその中でもっとも優良な個体を選択する方法

Page 22: Genetic programming

交叉2つの個体を選択する例えば一点交叉という手法は…

1 ÷

4 3

×

2

-

6 41

÷

Page 23: Genetic programming

一個選んだ

1 ÷

4 3

×

2

-

6 41

÷

Page 24: Genetic programming

交換した

1 -

6 4

×

2

÷

4 31

÷

Page 25: Genetic programming

完成 (^^)v

Page 26: Genetic programming

突然変異は…突然一部が変わる(そのまま)

1 -

4 3

2

-

4 31

÷

Page 27: Genetic programming

これらを駆使していくのだ!

Page 28: Genetic programming

GP デモ失敗したらごめんなさい(訳:場合によっては省略)

Page 29: Genetic programming

GP の応用例日常に潜む GP

Page 30: Genetic programming

とりあえず列挙人工知能金融予想医学産業機械

Page 31: Genetic programming

GP の未来成熟しかけている分野ではあるが…

Page 32: Genetic programming

僕が考えました。遺伝的プログラミングが発展していったら…より精巧なプログラムが作れる数学の未解決問題がとけるかもそれどころか様々な難問への適切なアプローチ

を見つけられるかも…!

Page 33: Genetic programming

小並感なまとめGP は難しいGP は奥深いGP は未知だでも…いや、だからこそ

GP って楽しい!

Page 34: Genetic programming

ご清聴ありがとうございました。