工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Equipment >> 産業用ロボット

遺伝的プログラミング入門:それ自体をプログラムするシステム?

おそらく、コンピュータサイエンスの「聖杯」は、私たちのマシンが独自のプログラムを作成できる日に発見されるでしょう。遺伝的プログラミング(GP)は、その方向への一歩を表す比較的新しい機械学習パラダイムです。

GPは、制御工学の分野で大きな期待を抱いています。この記事では、遺伝的プログラミングとは何か、それをどのように表現できるかについて説明し、プログラムの例を見ていきます。

この記事はシリーズの最初の記事です。次のエントリにジャンプするには、以下から1つ選択してください:

遺伝的プログラミングと遺伝的アルゴリズム

GPは本質的に、ジョン・ホランドによって最初に考案された遺伝的アルゴリズム(GA)のバリエーションです。 GAと同様に、GPは、適応度に比例した繁殖、交叉、突然変異などの遺伝的演算子に依存する進化的アルゴリズムであり、コード化されたプログラムの母集団、つまり「個人」を、世代を超えて解決に向けて推進します。

ただし、通常は固定長のビット文字列エンコーディングを使用するGAとは異なり、GPは実際のプログラムの可変サイズのツリーベースの表現を採用しています。したがって、GPの実行が成功すると、コンピュータプログラムが生成され、適切な入力を与えて実行すると、目的の結果が得られます。

NichaelCramerとJohnKozaは、GPの基礎を築いたことで知られています。ジョン・コーザ(GPの特許も取得)はGPについてかなりの量の研究を行っており、彼の画期的な本「遺伝的プログラミング」はこの主題に関する独創的な研究と見なされています。現在の研究では、ロボットナビゲーション、ゲーム戦略の取得、シンボリック回帰分析、制御システムなど、幅広いアプリケーションでGPのいくつかの有望な成功が実証されています。

遺伝的プログラミング表現

事実上すべてのコンピュータプログラムがこのように表現される可能性があるため、前述のツリーベースの表現はGPテーマの中心です。実際には、LISPなどの関数型言語はこの形式に適していて、LISPのS式をツリーとして図式化する方法を簡単に確認できます(図1)。

以下に、同じ情報の3つの別々の表現を示します。

 単純なプログラムフラグメント: 始める IF a  LISPに相当するもの: (progn(if(a  

図1。 プログラムのツリー表現。 (progn arg1 arg2 arg3 ... argn)は、各引数を順番に評価することに注意してください。

ツリーの内部ノードは関数で構成されていますが、リーフノードはターミナルで構成されています。関数は、少なくとも1つの引数カウント(一般にアリティと呼ばれる)を持っている必要があります。これにより、関数を他の関数または端末に接続できるようになり、ツリー内のブランチに「接着剤」が提供されます。

端末には通常、定数や変数などが含まれます。端子は木の葉を形成するため、常にゼロのアリティを持ちます。解決しようとしている問題に対して、機能と端末のセットを選択する必要があります。たとえば、2つのブール入力変数を表す論理関数AND、OR、NOT、および端子X1とX2は、XORブール関数を合成できるプログラムを検出しようとする場合に適しています。あるプログラムが特定の問題の解決に優れているという意味で、あるプログラムを別のプログラムに対して測定する手段を提供する必要があるため、適応度関数も必要です。

たとえば、XORの場合、X1とX2の4つの可能なブール入力(0 0、0 1、1 0、1 1)に対応する各フィットネスケースに対してプログラムを1回実行することにより、プログラムのフィットネスをテストできます。テストケースごとに、それぞれ正しい応答の数(0、1、1、0)を合計します。

明らかに、リスト1に示すように、完全なスコアが4になるプログラムは、XOR問題の解決策と見なされます。

  GPによって発見されたXOR問題の完璧な解決策: (defunプログラム() (AND(またはX1 X2) (NOT(およびX1 X2)) )。 )。 
リスト1。 XOR結果

次へ:遺伝演算子

次の記事では、進化的アルゴリズムを可能にする遺伝子演算子を見ていきます。また、より複雑なアルゴリズム例でそれらを使用します。

推奨読書

  • Kinnear、Jr.、K。E.(ed。) 遺伝子プログラミングの進歩 。マサチューセッツ州ケンブリッジ:MIT Press、1994年。
  • Knuth、D。E. The Art of Computer Programming、Volume 3、Sorting and Searching 。マサチューセッツ州レディング:アディソン-ウェスリー、1973年
  • Koza、J。R. 遺伝的プログラミング 。マサチューセッツ州ケンブリッジ:MIT Press、1992年。
  • Koza、J。R. Genetic Programming II 。マサチューセッツ州ケンブリッジ:MIT Press、1994年。
  • モンタナ、D。J。「強く型付けされた遺伝的プログラミング」。 BBNテクニカルレポート#7866、1993年5月。
  • ミッチェル、メラニー、遺伝的アルゴリズムの紹介 、MIT Press、1998年。

産業用ロボット

  1. マイクロプロセッサプログラミング
  2. 組み込みシステムプログラミングとその言語とは
  3. Cプログラミング言語とは?基礎、紹介、歴史
  4. 例を使用した C プログラミングの関数:再帰とインライン
  5. 電力を必要としない安価なパッシブ冷却システム
  6. 製造業見習いプログラムを実施する方法
  7. 機械加工の基礎:作業座標系の概要
  8. Arduinoとは何ですか?それをプログラムする方法は? –Arduinoプログラミング
  9. ハイデンハインがオンラインCNCトレーニングプログラムをリリース
  10. リーン生産方式を成功させる5つのツール
  11. 油圧機器の修理が必要な兆候