問題タブ [genetic-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2856 参照

genetic-programming - 遺伝子発現プログラミングとデカルト遺伝的プログラミングの違い

進化的計算でかなり厄介なのは、わずかに異なり、重複する概念が劇的に異なる名前を選択する傾向があることです。このための私の最近の混乱は、遺伝子発現プログラミングがデカルト遺伝的プログラミングと非常に似ているように見えることです。

  1. (どのように)これらの根本的に異なる概念ですか?
  2. GP命令の間接エンコーディングが効果的な手法であることを読みました(GEPとCGPの両方がそれを行います)。間接エンコーディングには時代遅れの古典的なツリーベースGPがあるというある種のコンセンサスに達しましたか?
0 投票する
1 に答える
591 参照

artificial-intelligence - マンデルブロ集合による遺伝的プログラミング

この魅力的な本の中で、遺伝的プログラミングを使用して画像をインタラクティブに進化させる方法についての章を読んでいます。関数セットのほとんどは、単純な算術関数と三角関数 (実際には画像を操作して返す関数) で構成されています。これらの関数は、画像をエンコードする解析ツリーの内部ノードを構成します。ツリーの葉、または最終値は、乱数と x、y 座標です。

複素平面の反復関数を関数セットに追加するセクションがあります。

遺伝学が特定のマンデルブロ集合を茂みのある木のどこかにノードとして挿入するとします。この関数は 2 つの引数を必要とします: mandel(cReal, cImag) で、それらを複素平面の実座標と虚座標として扱います。ゲノムがたまたまピクセル座標 (x,y) を提供し、mandel() がルート ノードであった場合、おなじみの Mset が得られます。しかし、cReal と cImag 自体が関数の分岐全体の結果である可能性が高く、座標 x、y の多くのインスタンスが葉の間に散らばっています。反復ループに入り、しばらく周回し、最後に Mset アトラクタまでの距離 (反復回数など) を測定して脱出します。

私の質問は、複素平面上の点の実座標と虚座標を引数として取り、マンデルブロ集合のレンダリングを返す関数として、マンデルブロ集合レンダラーをどのように作成しますか?

0 投票する
1 に答える
836 参照

genetic-algorithm - 非線形連立方程式の遺伝的アルゴリズムのコード

3 つの非線形連立方程式を解く必要があります

y1、およびは既知であり、見つけることをy2目指しています... 。遺伝的アルゴリズムを使用してこれを行う必要があります。誰か私に codz を提供してくれませんか。y3tir1r2r6

0 投票する
6 に答える
28996 参照

terminology - 遺伝的アルゴリズムと遺伝的プログラミングの違いは何ですか?

遺伝的アルゴリズムと遺伝的プログラミングの違いについて簡単に説明したいと思います (プログラミングの専門用語はあまり使わずに)。例も高く評価されます。

どうやら、遺伝的プログラミングでは、ソリューションはコンピュータープログラムです。一方、遺伝的アルゴリズムは解を一連の数値として表します。他に違いはありますか?

0 投票する
1 に答える
112 参照

genetic-algorithm - 下水道設計の最も経済的な方法

遺伝的アルゴリズムを適用した下水道システム レイアウトの最適化モデルの確立を手伝ってもらえますか

0 投票する
6 に答える
5461 参照

java - Java 用の遺伝的プログラミング ライブラリ

JVM 用の優れた遺伝的プログラミング ライブラリを探しています。(遺伝的アルゴリズムではなく、遺伝的プログラミング) JGAP (jgap.sourceforge.net) と Watchmaker (watchmaker.uncommons.org) を試しました。残念ながら、これらのツールは遺伝的プログラミングを実験的かつ未熟にしかサポートしていません (主に遺伝的アルゴリズムに焦点を当てています)。

おそらく、JVM用の遺伝的プログラミングのためのより良いツールを知っていますか(JavaまたはJVM用の他のコンパイル済み言語で記述できます)。

私は GP ツールの包括的なリストを探しているのではなく、優れた人気のあるツールを探しています (一般的なオペレーティング システムが Windows、Linux、Mac であり、一般的な Java IDE が Eclipse、IDEA、および NetBeans であるように)。

それは、遺伝的プログラミング ライブラリ (GP) である必要はなく、遺伝子発現プログラミング ライブラリ (GEP) であってもかまいません (そのほうがよいでしょう)。

編集(質問から2か月後):あなたが投稿した、Wikiで利用可能なほとんどのリンクを分析しました。これらのライブラリのそれぞれに、次の問題の少なくとも1つがあると言わざるを得ません。

  • オープンソースではない、またはオープンソースですが、非常に制限されています (GPL)。

  • ドキュメントがない(または非常に貧弱なもの)。

  • 遺伝的プログラミングまたは遺伝子発現プログラミング(または実験的なもの)の組み込みサポートはありません。

  • 使い方が複雑すぎるものもあります。

この状況で、プロジェクト用に独自の単純なライブラリを作成することになりました (遺伝子発現プログラミング アプローチを使用するため、非常に単純になります)。

0 投票する
5 に答える
690 参照

evolutionary-algorithm - ダーウィン進化論をプログラミングに適用する

しばらく前に、ダーウィンの進化をプログラムに適用してより良いプログラムを作成することについての雑誌記事(Wiredで私は信じています)を読んだことを思い出します。基本的に、プログラムの複数のミューテーションが生成され、パフォーマンスが最も優れたものが次のミューテーションラウンドに選択されます。

残念ながら、記事のように主題を面白くすることはできませんが、記事を見つけることができません。

これは私にとってこれまでで最もクールなことのように聞こえるので、プログラム内でどのような突然変異が発生する可能性があるのか​​疑問に思いました。

0 投票する
2 に答える
399 参照

clojure - Clojure のジッパーで動作するようにツリーをフォーマットするにはどうすればよいですか?

遺伝的プログラミングの問題のために s 式のツリーを作成していますが、進化の過程でツリーの一部を変更する必要があります。完璧なClojureのジッパー機能に出会いましたが、私の人生では使い方がわかりません。

たとえば、ジッパーを作成するとします

これは、ルートに + があるツリーを表していると理解しています。次のようなものです。

ただし、私のジッパーはこれに同意しません。最初のノードを要求すると、(-> zipped zip/down zip/node)(+正しい) が返されますが、 に(-> zipped zip/down zip/down)移動せず-、代わりに が返されますnil。確かに(-> zipped zip/down zip/rights)、ツリーの残りの部分をルートの右側に兄弟として与えます。これは、ツリーがまったくないことを示唆しています。

ツリーを実行すると正しい答えが得られるため、ツリーを正しく表現していると確信しています。ジッパーは別のレイアウトを期待していますか?

0 投票する
1 に答える
1002 参照

objective-c - Objective-Cでの遺伝的プログラミング(GP)の実装?

Objective-cでのオープンソースGPの実装を探しています。obj-cプロジェクトに埋め込むことができるC++実装をいくつか見つけましたが、GPのネイティブobj-c実装があるかどうか疑問に思いました。

ありがとう

0 投票する
2 に答える
6709 参照

genetic-algorithm - 遺伝的アルゴリズムにおける最適な個体数、突然変異率、交配率

私は、約16個の浮動小数点「定数」に依存する競技用のゲームプレイプログラムを作成しました。定数を変更すると、プレイスタイルと成功率に劇的な影響を与える可能性があります。

また、定数の最適値を生成するための簡単な遺伝的アルゴリズムを作成しました。ただし、アルゴリズムは「最適な」定数を生成しません。

考えられる理由:

  • アルゴリズムにエラーがあります(当面はこれを除外してください!)
  • 人口が少ない
  • 変異率が高すぎる
  • 配偶者率はもっと良いかもしれません

アルゴリズムは次のようになります。

  • 最初に初期母集団が作成されます
  • 各メンバーの初期定数が割り当てられます(私のバイアスに0.75から1.25の間のランダムな係数を掛けたものに基づいて)
  • 世代ごとに、人口のメンバーはゲームの試合のためにペアになります
  • ドロー両方が1回クローンされる場合、勝者は2回クローンされます。
  • random()が変異率よりも小さい場合、クローニングは1つの遺伝子を変異させます
  • 突然変異は、ランダム定数を0.75〜1.25のランダム係数で乗算します
  • 一定の間隔で、交尾率に応じて、メンバーはペアになり、遺伝子は混合されます

私の現在の設定:

  • 母集団:40(低)
  • 変異率0.10(10%)
  • 交配率0.20(5世代ごと)

個体数の大きさ、突然変異率、配偶者率のより良い値は何でしょうか?

推測は大歓迎です、正確な値は期待されていません!また、同様の遺伝的アルゴリズムに関する洞察がある場合は、共有したいと思います。そうしてください。

PS:誰かが興味を持っているなら、問題のゲームプレイ競争:http: //ai-contest.com/