問題タブ [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 投票する
1 に答える
155 参照

specifications - 仕様言語からの遺伝的プログラミング?

仕様に一致するプログラムを進化させるために、遺伝的プログラミングの適合度関数を z 記法などの仕様言語を使用する方法について説明している論文を探しています。関連する研究や実装を知っている人はいますか?

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

javascript - シンプルな AI - JavaScript (アニメーションに jQuery を使用)

最初に、趣味として数年間プログラミング (主に C ベースの言語、iOS 開発、Web など) を行っており、現在は単純な AI (ほとんどの人々は三目並べゲームから始めますが、私は遺伝子プログラミングの原理を使って何かを作ることに興味があります)。読者にこれを知ってもらいたいのは、答えが複雑すぎない (私はまだ大学のコンピューター サイエンスのコースに参加したことがないので、子供が理解するのが難しすぎない) ことを感謝しているからです。

これが私の目標です:

条項

organsim: CSS div
個体群:生物のグループ (5 または 10)
食料源:別の CSS div

プロセス

  1. 集団が生成され、それぞれが最初は同じ表現型属性を持っているように見えますが、スキルが異なります (この場合、速度)
  2. 単一の食料源が生成されます(毎回同じ)
  3. 環境が設定されてから約 5 秒後 (ステップ 1 と 2)、生物の個体群は競争的に食料源に到達する方法を見つける必要があります。
  4. 食品に到達できる生物は 1 つだけです。それに到達すると、環境はリセットされますが、前回食料品を見つけた生物は恩恵を受け、その速度レベルが増加する可能性がありますが、特にひどいことをした他の生物はさらに遅くなるか、終了する可能性があります
  5. プロセスが繰り返されます。ユーザーは集団の特徴を観察し、どれが進化的に成功しているかなどを確認できます。

追加情報

ご覧のとおり、上記の手順は進化をほぼシミュレートしていますが、非常に単純な方法です (動物の実際の状況に比べて条件が少ない)。ここで私がここで尋ねている理由は次のとおりです。私は完全に道に迷っています。どこから始めればよいか本当にわかりません (母集団の生成を除いて、jQuery アニメーションを介してそれらを動かすだけでなく、母集団を生成することもできます)。しかし、それらを食料源に引き寄せることができるのは、今私ができないことです. ですから、これを正しい方向に向ける手助けをしたいと思います。

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

haskell - Haskell プログラムは Lisp の S 式として表現できますか?

これは、通常、プログラムの表現として Lisp サブセットを使用する遺伝的プログラミングに役立ちます。

Web で Liskell (Lisp 構文、内部に Haskell) と呼ばれるものを見つけましたが、リンクが壊れていて、その論文が見つかりません...

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

ruby - Ruby でリッチな GA フレームワークに出くわした人はいますか?

おそらくJGAPフレームワーク(Java用)と同じくらいリッチですが、Ruby環境用のものを探しています。これまで見てきたものはかなり単純化されており、カスタマイズできるようには設計されていません (既存のフレームワーク クラスを変更することは、拡張する良い方法だとは考えていません)。どんな提案でも大歓迎です。ありがとう。

0 投票する
4 に答える
3184 参照

c - Cでの遺伝的プログラミング?

遺伝的プログラミングを用いて、シンボリック回帰に基づくアルゴリズムを作成したいと思います。

私はそれについてのいくつかの記事、javaまたはc++で書かれたいくつかの例を読みました。

OOPではないのでもっと難しいかもしれませんが、Cで遺伝的プログラミングを開発することは可能ですか?

プログラミングを始めるために私に何を提案しますか?読むべき本/記事/例はありますか?それについてグーグルで調べてみましたが、面白いものは何も見つかりませんでした。

ありがとう、乾杯。

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

python - 方程式を変更する ast.NodeTransformer の例

これは私の最後の質問の続きです。私は方程式を解析し、取得した ast で作業したいと考えています。私がやりたいことは、基本的にそれをランダムにスクランブルして、有効な関数でなければならない新しい方程式を取得することです。これは、遺伝的アルゴリズムで使用されます。

ここから始めます:

私が取り出したいのは次のようなものです:

または何らかの種類の別の有効なランダム方程式。これは Fortran プログラムで使用されるので、結果の方程式も Fortran に転送できるとよいでしょう。コードにコメントを付けて、テスト サンプル/ユニット テストを提供してください。

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

python - 単純なGA(Python)で時期尚早の収束を修正する方法は?

昨日私は遺伝的アルゴリズムの探求を始めました、そして私がいくつかの基本的な理論にたどり着いたとき、私はディオファントス方程式を解くPythonで簡単なGAを書こうとしました。私はPythonとGAを初めて使用するので、コードを厳密に判断しないでください。

問題

収束が早すぎるため、結果を得ることができません(いくつかのノーリターンポイント(n-population)、population [n] ==population [n + i]があります。ここで、iは任意の整数です。ランダムな変異要素でさえこれを変更できません、世代は非常に急速に劣化しています)

GAは交配を使用して繁殖し、親の選択を重視しています。

  • Q1:私のコード(下記)にデザインミスはありますか?
  • Q1.2:エリート主義を追加する必要がありますか?
  • Q1.3:ブリードロジックを変更する必要がありますか?
  • Q2:本当に必要なディープコピーはありますか?

コード:

品種と加重ランダム選択ロジックを変更しようとしましたが、結果がありませんでしたこのGAは機能するはずですが、何が問題なのかわかりません。PythonにはいくつかのGAライブラリがあることを知っています。現在、それらを理解しようとしています。それらは私には非常に複雑なようです。間違いで申し訳ありませんが、英語は私の母国語ではありません。ご理解のほどよろしくお願いいたします。

NECROUPDATE: 染色体を整数ではなくグレイコードで保存します。

0 投票する
4 に答える
575 参照

behavior - 遺伝的アルゴリズムやその他の機械学習を理解するには、どこから始めればよいでしょうか?

最初に、なぜ私がこの質問をするのかを簡単に説明します。現在、私は大学生で、デジタル メディア デザインの優等学位の最後の割り当てを開始しています。私は最近、人工知能に非常に興味を持つようになり、その課題にいくつか気の利いたものを含めたいと考えています。

私がカバーしたい主なトピックは、ユーザーがこのプロジェクトと対話するときに視覚的に伝えられる緊急の行動です。とにかく、私は機械学習と呼ばれる Stephen Marsland による素晴らしいテキストを読んでいます。トピックについてまだ多くを知っているふりをすることはできませんが、多くの機械学習のトピックとテクニックの中級レベルへのガイドであるかのように感じます.

Stephen Marsland による機械学習

私はこの本を戦略的にカバーからカバーまで読んでおり、半分ほど進んでいます。線形、分類、および時系列の問題/状況を解決するために使用される、多層知覚や放射基底ネットワークなどのニューラル ネットワークについて学びました。その後、サポート ベクター マシンに関するいくつかのアイデアに取り組み、ゆっくりと、高次元性とカーネル トリックに頭を悩ませていました。

しかし、今は悲しいことに、私はいくつかのコンテンツに自分自身を引きずり始めており、提示されているテクニックと数学を意識的に理解するのに本当に苦労しています. さらに、例をプログラムしようとすると、空白をつなぎ合わせるのにますます時間がかかります (いわば)。今、私は単純で困難で迅速な解決策を探しているわけではありませんが、このプロジェクトをまとめるために残された時間も意識しています.

他の誰かが似たような経験をしたことがあり、現在は反対側にいる場合は、いくつかのことについて私と意見を共有できますか. 遺伝的アルゴリズムに飛び込んで、経験を積むにつれて他のトピックに戻って作業することをお勧めしますか? それとも、遺伝的アルゴリズムにつながるうまく機能する別のトピックでしょうか? 私は数学とプログラミングの概念をかなり理解していますが、完全に独学です (私の学位はコンピューター サイエンスとソフトウェア エンジニアリングではなくデザインに焦点を当てています)。

もしそうなら、私と共有できるリソースやアドバイスの断片はありますか? 大変感謝しております。

TL;DR緊急行動プロジェクトの遺伝的アルゴリズムを使用して、正しい方向へのプッシュが必要です。良いリソースを共有してください。

(初めての質問者で、長い質問で申し訳ありません)。

0 投票する
4 に答える
282 参照

genetic-algorithm - メタバイオロジー: 新しいバージョンが有効で停止することを確実にするために、アルゴリズムをランダムに変更する方法は?

Gregory Chaitin のメタバイオロジー モデルに従って、進化のシミュレーションをハックしようとしています。

整数を返すアルゴリズムが与えられた場合、構文的に正しく、最終的に停止する別のアルゴリズムを取得しようとしてランダムに変更する必要があります。突然変異が本当にランダムである場合、取得したものが停止する有効なアルゴリズムであることを確認することは不可能です。

私の質問は次のとおりです。

  • これを行うのに最適なチューリング完全言語は何ですか?
  • この問題にすでに取り組んでいる遺伝的プログラミングの技術はありますか?

前もって感謝します


私は次のようなことを考えていました:

これは完全なチューリングであり、変更は非常に簡単です。どう思いますか?

0 投票する
4 に答える
1675 参照

cryptography - 保護された部門とは何ですか?(遺伝的プログラミングと暗号化に関して)

遺伝的プログラミングに関する論文で、「保護された除算」操作への参照を取得しています。私がこれをグーグルで検索すると、遺伝的プログラミングと暗号化に関連するさまざまな結果に関する論文がほとんどですが、それが実際に何であるかを説明するものはありません。誰か知っていますか?