問題タブ [genetic-algorithm]

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 投票する
5 に答える
5880 参照

c++ - C ++での遺伝的プログラミング、ライブラリの提案?

私が関わってきた運用研究プロジェクトにいくつかの遺伝的アルゴリズムを追加しようとしています。現在、スケジューリングの最適化を支援するプログラムがあり、遺伝的アルゴリズムの形でいくつかのヒューリスティックを追加したいと考えています。C ++での一般的な遺伝的プログラミング/アルゴリズムに適したライブラリはありますか? それとも、自分でコーディングすることをお勧めしますか?

私は c++ は初めてではありませんが、以前一緒に働いていたグループは独自の最適化パッケージを使用する傾向があったため、c++ でこの種の数学的最適化作業を行うのはかなり初めてです。

評価するのにかなり計算量の多いフィットネス関数があり、これを実行するクラスターがあるため、並列化されたコードが非常に望ましいです。

では、c++ はこれに適した言語でしょうか? そうでない場合は、他の言語をお勧めしてください.

ありがとう!

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

genetic-algorithm - 遺伝的アルゴリズムまたは遺伝的プログラミングにおけるクロスオーバー確率と突然変異確率とは何ですか?

遺伝的アルゴリズムまたは遺伝的プログラミングにおけるクロスオーバー確率と突然変異確率とは何ですか?誰かが実装の観点からそれらを説明できますか?

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

algorithm - 遺伝的アルゴリズムと進化的アルゴリズムの違いは何ですか?

遺伝的アルゴリズム進化的アルゴリズムに違いはありますか?

遺伝的または進化的アルゴリズムについて話している複数の論文を読みましたが、非常に似ていますが、同じものではない可能性があると思います。

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

optimization - マルチナップザック問題の遺伝的アルゴリズムの改善

最近、マルチナップザック問題の伝統的な遺伝的アルゴリズムを改善しています。したがって、私の改良された遺伝的アルゴリズムは、従来の遺伝的アルゴリズムよりもうまく機能しています。テストしました。(私は OR-Library ( http://people.brunel.ac.uk/~mastjjb/jeb/orlib/mknapinfo.html ) から公開されているものを使用して GA をテストしました。) 他の改善された GA を知っている人はいますか? 他の改良された遺伝的アルゴリズムと比較したかったのです。実はネットで調べました。しかし、比較するのに適したアルゴリズムが見つかりませんでした。

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

genetic-algorithm - ヒューリスティックのバランスをとる (時刻表問題用)

タイムテーブルを生成するための遺伝的アルゴリズムを書いています。

現時点では、次の 2 つのヒューリスティックを使用しています。

  1. 1 日のレクチャー間のホール数 (関連) (ホール数が少ない -> スコアが大きい)
  2. 各時間には何らかの値があるため、時間割ごとに、講義が行われている時間の値を合計します。(より適切な時間に講義 -> より高いスコア)

これら 2 つのヒューリスティックのバランスをとりたいので、アルゴリズムはどちらも優先しません。これを達成するための最良の方法は何ですか?

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

probability - 非一様確率分布を実装する方法は?

遺伝的アルゴリズムで不均一な確率分布を実装しようとしています。

遺伝的プログラムの実装では、3つの結果を持つ実験があり、各結果には異なる確率があります。たとえば、ある結果の確率が 0.85、別の結果が 0.01、最後の結果が 0.14 だとします。

PS: 最近、それが不均一な確率分布と呼ばれることを知りました。私はそれをJavaで実装していますが、誰でも不均一な確率の背後にある理論を教えてもらえますか? ディストリビューションとそれを実装する Java パッケージ。

問題についてさらに情報が必要な場合は、お気軽にお問い合わせください。

前もって感謝します!

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

algorithm - 興味深いグラフ走査最適化問題

1つのルートノードを持つツリー構造に接続されたノードのセットがあり、任意のノードに任意の数の子ノードがあるとします。

ルートノードから開始するか、直接接続に沿って現在の位置からツリーをトラバースすることしかできません。つまり、特定のノードへのランダムアクセスはありませんが、グラフの構造はすでにわかっており、メモリに収まります。

各ノードには、あなたに明らかにされていない再訪する必要のある時間があります。再訪問が必要な時間は、[ここでi =最後の訪問からの時間間隔]として(now + a + i * b +(i * c)^ 2)として計算されます。パラメータa、b、およびcは、ノードごとに異なる値を持ちますが、それぞれは通常、異なるノード間で常に同じ桁内にあります。

再訪問が必要な時間が経過した後にノードを再訪問すると、ノードはリセットされるため、その訪問後の再訪問は、上記の式に従って(now + a)として計算されます。ノードにトラバースすると、再訪する必要のある時間を過ぎたかどうかが明らかになりますが、それが何であったか、またはa、b、cの値が何であるかはわかりません。

あなたの目標は、ツリー内の各ノードにトラバースして再訪問する戦略を選択し、ノードが再訪問する必要のある時間を超えないようにし、全体的なトラバース操作の数を最小限に抑えることです。早すぎるノードの再訪問は非効率的ですが、再訪問が必要な時間を過ぎてノードを再訪問することは非常に非効率的です。理想的には、再訪問が必要な時間の直前、または別のノードに移動するために必要な場合は、各ノードをヒットする必要があります。

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

graph - applying crossover and mutation to a graph (genetic algorithm)

I'm playing arround with a Genetic Algorithm in which I want to evolve graphs. Do you know a way to apply crossover and mutation when the chromosomes are graphs?

Or am I missing a coding for the graphs that let me apply "regular" crossover and mutation over bit strings?

thanks a lot! Any help, even if it is not directly related to my problem, is appreciated!

Manuel

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

vb.net - VB.NET-遺伝的アルゴリズム-ナップサック問題

私は遺伝的アルゴリズムを使用してナップサック問題に取り組んできました。しかし、私はいくつかの困難に遭遇しました...

まず、ユーザーはテキストドキュメントに保存されるデータセットを生成します。そこからデータをプログラムに読み込みます。

私は、フィットネス値を計算し、親を選択し、子供を産み、そして子供を突然変異させるプログラムをうまく取得しています。しかし、何らかの理由で、人口が少ない場合にのみ機能します。私のプログラムは、人口が少ない場合は一貫して進化しますが、人口が多い場合は非常に一貫性がありません。

例:人口が約10〜200人の場合、遺伝的アルゴリズムは問題なく実行されます。しかし、人口が増えると(約300人以上)、[実行]をクリックしても何も起こりません。次に、プログラムを再起動し、まったく同じデータセットを使用すると、プログラムは正常に実行されます。

コードのどの部分が問題を引き起こしているのかわからないので、サンプルコードが必要な場合は、コードのどの部分(親の選択、データセットの読み込みなど)を教えてください。

どうもありがとう!

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

algorithm - 遺伝的アルゴリズムのオープン ソース ライブラリには、cellularGA 機能などのすべてのトリミングが含まれています

次のように動作する SGI UV システム (コア = 512、共有メモリ = 4TB) 用の GA ベースの機能選択プログラムを実装したいと思います。元の機能セットを使用するよりも、または指定されたデータに対して同じことを使用するよりも優れた出力クラス間の識別。たとえば、データは独立変数として {大気圧、温度、myShoeSize} で構成され、出力は降雨であり、機能の可能な結果です。選択は {Atm.Pressure, Temperature} になります)。

GA は、それぞれが異なる機能サブセットを表す親のプールを保持します。これらの親は、サポート ベクター マシンまたはその他の機械学習方法 (ニューラル ネットワークなど) を使用して評価する必要があるため、各親を次に使用可能な CPU コアに送信し、任意のプログラムを使用して評価し、フィットネスをに送り返す必要があります。 GA。したがって、GA は各親の評価 (適合度) を除くすべての責任を負います。代わりに、GA は親を使用可能なコアに送信し、適合度の結果を待ちます。これは、メソッドの分散機能がある場所です (したがって、さまざまなコアでさまざまな GA を実行したくありません。1 つのコアで 1 つの GA を実行し、異なるコアでフィットネス エバリュエーターを生成するだけです)。

私のハードウェアの分散コンピューティング機能を利用するために、GA を非同期モードで動作させたいと考えていますが、親には 2 つのグループ、フィットネスを評価したグループとそれを待っているグループがあります。空きコアがある場合、GA は未評価のプールから親を取得し、それをコアに送信します。その間、GAは評価されたプールから親を取得し、それらを変異させます。それらをクロスオーバーし、その子を未評価のプールなどに送信します。

そこで、私の考えは、オープンソースの GA ライブラリを入手し、その評価関数に関する限り、少し変更することです。ライブラリがこの「非同期」モードを提供している場合は、それで問題ありません。これらすべてに加えて、このライブラリには、cellularGA などの多くの機能を提供してもらいたいと考えています。何が出てくるかは、オープンソースでもあります。

誰か提案はありますか?ところで、この「非同期」モードに関する出版物への言及を知っている人はいますか?それとも欠点がありますか?