遺伝的プログラミングとは? わかりやすく解説

Weblio 辞書 > 同じ種類の言葉 > 情報 > コンピュータ > プログラミング > 遺伝的プログラミングの意味・解説 

いでんてき‐プログラミング〔ヰデンテキ‐〕【遺伝的プログラミング】

読み方:いでんてきぷろぐらみんぐ

genetic programming遺伝的アルゴリズム利用して、より効率的なプログラム作成すること。


遺伝的プログラミング

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2014/10/01 03:19 UTC 版)

遺伝的プログラミング(いでんてきプログラミング、: Genetic Programming, GP)は、メタヒューリスティックアルゴリズムである遺伝的アルゴリズムを拡張したもので、進化的アルゴリズムの四つの主要な方法論の内の一つでもある。

概要

遺伝的プログラミングは1990年にジョン・コザ(John Koza)によって提案された。他の進化的アルゴリズムの主要な方法論が同時期に提案され独立して研究が進められていたのに対し、遺伝的プログラミングは最初から遺伝的アルゴリズムの拡張として提案されており、他の三つの方法とは大きく立場を異にする。具体的な内容としては、遺伝的アルゴリズムにおける遺伝子型の表現が主に配列であるのに対し、遺伝的プログラミングでは木構造を用いる。このため、遺伝的アルゴリズムでは表現できなかった数式プログラムのコードなど、構造を持ったデータを表現することができる。大きな違いとしてはこれだけであるが、遺伝的アルゴリズムとはの探索の傾向が異なり、また独自の現象や問題点が発生する。現在、それに対する改善案などが非常に活発に研究されており、遺伝的アルゴリズムからはほとんど独立して研究が進められている。遺伝的プログラミングのみを扱った書籍も増えている。なお、コザが発表したシステムは Lisp で書かれていたため、現在はあらゆるプログラミング言語実装されているにもかかわらず解を Lisp のS式で表現することが一種の慣例になっている。

アルゴリズムの内容

遺伝的プログラミングの探索の流れは遺伝的アルゴリズムと全く同じである(遺伝的アルゴリズム#アルゴリズムの流れ参照)。ただし遺伝子型の表現方法が違うため、交叉や突然変異の方法が若干異なったものになっている。

解の表現方法

遺伝的プログラミングでは遺伝子型の表現に木構造を使うため、取り扱う問題が自然と遺伝的アルゴリズムとは異なってくる。遺伝的プログラミングの適用分野としては関数の同定問題やニューラルネットワーク電子回路の設計、あるいはロボットの制御プログラミングの作成などがある。解の表現は、例えば関数同定問題なら解は関数であるために、配列でこれを表現することは難しい。ところが、例えば

という木構造なら を表しているというふうに、容易にこれを表現することができる。

解個体を表す木にどういった関数記号を用いるかは事前に決めておくのが一般的で、{+, −, ×, ÷}など一般的な演算子の他に{sin, cos, tan, exp, logex, x2}といった単項の初等関数などを扱わせることもある。また、2つの枝の持つ値の最大値や最小値をとる関数max, minのほか、無条件で片方の枝の値のみを利用しもう一方は無視する関数を設定することもある。

交叉

交叉は主に部分木の取り換えで行われる。具体的には下記の画像のような操作が行われる。

この例では関数 と関数 になる木を交叉させて、関数 と関数 となる木が生成されたことを表している。交叉を行う部分木の場所は、一般的にはランダムに決定する。

参考文献

  • 伊庭斉志、『遺伝的プログラミング入門』、東京大学出版会、2001年、ISBN 4-13-061402-9

関連項目

外部リンク


遺伝的プログラミング

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/18 06:17 UTC 版)

進化的アルゴリズム」の記事における「遺伝的プログラミング」の解説

基本遺伝的アルゴリズム同じだが、解は木構造形式表し数式プログラムコード表現する適応度関数はその計算能力などで評価する

※この「遺伝的プログラミング」の解説は、「進化的アルゴリズム」の解説の一部です。
「遺伝的プログラミング」を含む「進化的アルゴリズム」の記事については、「進化的アルゴリズム」の概要を参照ください。

ウィキペディア小見出し辞書の「遺伝的プログラミング」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



遺伝的プログラミングと同じ種類の言葉


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「遺伝的プログラミング」の関連用語

遺伝的プログラミングのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



遺伝的プログラミングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの遺伝的プログラミング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの進化的アルゴリズム (改訂履歴)、機械学習 (改訂履歴)、遺伝的アルゴリズム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS