問題タブ [genetic]

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

algorithm - ルーレット選択とランク選択の違い

遺伝的アルゴリズムにおけるルーレットホイールの選択とランクベースの選択の違いは何ですか.

私は今、どちらが自分に最適か混乱しています。そのため、違いを知りたいだけです。

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

python - Python 'NoneType' オブジェクト クエリ

私はPython初心者です。学ぶために私は自然選択シミュレーターを作っていますが、少し行き詰まっています。

背景のビット:

次のように、ランダムなビット パターンで生物のリストを作成します。

生物は繁殖するので、次のように@classmethod、親のビット パターンの組み合わせに基づいて生物を作成できるようにする必要があります。

ある時点で、次のように生物から遺伝子を返します。

def returngene(self): """遺伝子を返す"""
return self.gene

これは、 によって作成された生物では機能しますが、 で作成された生物では機能しchromosone.Chromosone(chromosoneSize)ませんchromosone.Chromosone.makeChromo(newOrganism)。次のエラーが表示されます。

更新: 次のように、makeChromo() を返しました。

しかし、私は今、このエラーが発生します:

returngene() は、遺伝子 (文字列) を返す単純なメソッドです。

私の誤解は、@classmethodPython が型とオブジェクトをどのように扱うのかにあると思いますか?

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

algorithm - クラススケジュール構成のための遺伝的アルゴリズム

大学の自動スケジュール作成用のアプリケーションを作成し、この遺伝的アルゴリズムに使用しています。しかし今、私は実現に関していくつかの問題に直面しました。

最初は、期間が1タイムスロット(タイムスロット= 1時間)のクラスがあり、それを単純に配列(スケジュールグリッドを表す:numberOfRooms * numberOfDays * numberOfTimeslotsの容量を持つ1-d配列)に配置できると想定しました。ミューテーションやクロスオーバーも問題なく実行できます。

しかし、私がアプリケーションを改善し、いくつかのタイムスロットの期間を持つクラスを持つことを許可したいことを知っています。ここに多くの問題があります:

1つのクラスオブジェクトを配列に入れて、クラスが占有する必要のあるすべてのスロット(複数の配列セル)(1つのオブジェクト-複数のセル)を埋めるにはどうすればよいですか?そして、それを配列に配置する方法に従って、突然変異とクロスオーバー操作をどのように実行できますか?前もって感謝します!私は本当にあなたの助けに感謝します!

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

algorithm - 遺伝的アルゴリズムとヒューリスティックを組み合わせる方法

私は大学のスケジューリング問題に取り組んでおり、これには単純な遺伝的アルゴリズムを使用しています。実際には、それはうまく機能し、0%から90%(約)まで1時間の目的関数値を最適化します。しかし、その後、プロセスは劇的に遅くなり、最良の解決策を得るのに数日かかります。他のアルゴとジェネティックアルゴを混ぜるのが合理的であるという論文をたくさん見ました。どのアルゴリズムを遺伝的アルゴリズムと混合できるか、そしてこのアルゴリズムをどのように適用して解決プロセスをスピードアップできるかについて、アドバイスをお願いします。主な問題は、このような複雑な構造の問題にヒューリスティックをどのように適用できるかということです。たとえば、貪欲なヒューリスティックなど、そこでどのように適用できるかわかりません。

よろしくお願いします!本当にあなたの助けに感謝します!


問題の説明:

  1. 私は持っています:

    • ScheduleSlotオブジェクトで埋められた配列
    • レッスンオブジェクトで埋められた配列
  2. そうです:

    • スタンダート2点クロスオーバー
    • 突然変異(ランダムなレッスンをランダムな位置に移動する)
    • 大まかな選択(次の母集団に対してn人の最良の個人のみを選択)

@Dougal@izomorphiusの追加情報:
私は大学のスケジュールを作成しようとしています。これにより、グループや教授向けのレッスン、重複、地理的に分散したレッスンの間に休憩がなくなります。
適応度関数は本当に単純です:fitness = -1000 * numberOfOverlaps-1000 * numberOfDistrebutedLessons-20*numberOfBreaks。(またはそのようなもので、変数の前の係数を単純に変更できます)
非常に最初に、ランダムな部屋、時間、曜日にレッスンを配置するだけで個人を生成します。
上記のように、突然変異とクロスオーバーは本当に些細なことです。

  1. クロスオーバー-親のスケジュールを取得し、クロスオーバーのポイントと範囲をランダムに選択し、親のスケジュールの一部を交換するだけで、2つの子のスケジュールが生成されます。
  2. 突然変異-子のスケジュールを取り、n個のランダムなレッスンをランダムな位置に移動します。
0 投票する
1 に答える
348 参照

r - R の関数、ベクトル、およびループ

私は最近、遺伝的プログラミングに使用する言語として R の実験を始めました。R の仕組みとそのコーディングのベスト プラクティスについて、ゆっくりと、しかし確実に学んでいます。それでも、私は障害物にぶつかりました。これが私の状況です。約 700 行のデータセットがあり、各行には 400 ほどの列があります。列の数と同じ数のパラメーターを持つ関数がパラメーターとして評価 (フィットネス スコアリング) 関数に送信されるように、すべての設定を行いました。データセットの行ごとに移動し、行の各列の値を評価される関数に渡したいと思います。最初の問題は、パラメーターを個別に関数に渡す方法を考え出すことでした。「別々に」とは、関数が長さ 400 のベクトルではなく、400 個のパラメーターを想定していることを意味します。これを行うには、次を使用しました。

parameters は、データセット内の行の値に追加される月変数 (1 ~ 12) のベクトルです。これは問題なく動作します。for ループを使用してデータセット内の 700 行を反復し、次に 12 か月間別のループを使用し、上記を使用して出力のベクトルを蓄積しました。問題は、これが非常に遅く、関数ごとに約 24 ~ 28 秒かかることです。そして、進化の世代ごとに 100 ~ 500 個の関数をこの評価に送りました。肝心なのは、これは行くべき道ではないということです。次に、以下のように sapply メソッドを使用しようとしました。

これは (1-12) を月として適用し、次に (1-700) をデータセットの行として適用しました。これには同じくらい時間がかかりました。解決策に関するアイデアは役に立ちます。

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

genetic-algorithm - JGAPで可変長染色体を持つことはできますか?

JGAPを使用して回路図面のテストベクトルを生成しています。染色体の遺伝子をビットに設定することで、単一のテストベクトルを最大限にカバーできました。ここで、最小数のテストベクトルで100%のカバレッジを取得する必要があります。

各遺伝子をテストベクターとして設計する場合、idは遺伝子の数と総カバレッジに基づいて適応度関数を計算する必要があり、idは染色体の長さと各testvectors(遺伝子)ビットの両方を進化させる必要もあります。

可変長の染色体を持つことさえ可能ですか?

このタイプのタスクの標準設計はありますか?

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

algorithm - 線形フィットのためにデータを組み合わせるアルゴリズム?

ここがこれを尋ねるのに最適な場所かどうかはわかりませんが、皆さんは過去に私のCSの宿題をたくさん手伝ってくれたので、試してみようと思います。

いくつかの従属変数を盲目的に組み合わせて、外部変数との最適な線形フィットを生成するインデックスを作成するアルゴリズムを探しています。基本的に、外部変数と最もよく相関するインデックスが作成されるまで、さまざまな数学演算子を使用して従属変数を組み合わせたり、それぞれを含めるか含めないかなどを行います。

誰かが以前にこのようなものを見たり聞いたりしたことがありますか?正しい方向や質問する場所を教えていただければ幸いです。ありがとう。

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

algorithm - 遺伝的アルゴリズムとMATLABを使用したリソース割り当て

私はリソース割り当ての問題に取り組んでいます。これには合計50000のリソースがあり、6つのモジュールに分散させたいと考えています。目的は

a(i)、b(i)、c1、c2、c3およびv(i)は既知です

そしてconsrtaontは

w(i)<= w whare i=1から6

w(i)>=0および

r(i)= 1-exp(-b(i)* w(i))/ 1 + 2 * exp(-b(i)* w(i))> = 0.9; つまり、各モジュールのr(i)は> = 0.9

したがって、W(i)i = 1から6が必要で、合計wは50000です。

遺伝的アルゴリズムを使ってどうするか教えてください。

ありがとうございました。

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

c - Cで関数ツリーを作る

次のような C の関数ツリーを作成したい: http://scr.hu/5rq/vdja0

したがって、基本的には結果を次のようにしたい: http://scr.hu/5rq/f04uu

wherexは私が提供できる変数です (float)。F0 から F6 は、2 つの引数を取るランダム関数です (乗算、加算、乱数の付与などの関数)。だから私の正確な質問は次のとおりです。どうすればそれを行うことができますか? 各関数によって与えられた正確な値を配列に格納することで、簡単に実行できることを私は知っています。しかし、異なる「x」値を取得することになると、複雑になります。私の最初の考えは、ツリーの各ノードにランダムな関数を追加する関数を作成することでしたが、そのツリーを作成する構造をどのように行うべきかわかりません。

「float *value;」という行をどうにか変更したいと思います。のような関数を格納できるFunction1(left->value,right->value);が実行されず、指定された引数を持つ関数の正確な値ではなく、Function1()またはFunction2()両方の引数を除算または乗算する関数などを意味するものに変換します。

いいえ、学校向けではありません。はい、これは遺伝的プログラミングを使用しようとする私の惨めな試みです。

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

r - Rで平均化された加重のステートメントの場合

数百万行の長さのデータファイルがあり、多くのグループからの情報が含まれています。以下は省略されたセクションです:

頻度(FREQ)変数の加重平均(それ自体は簡単です)を作成したいのですが、この場合、一部の行が一致していません(行3と4)。文字が並んでいない場合は、そのマーカーの加重平均を計算する前に、2番目のグループの頻度を1で引く必要があります。

簡単なIFステートメントを設定したいのですが、そのようなタスクの構文がわかりません。

洞察や方向性は大歓迎です!