問題タブ [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.
java - 遺伝的アルゴリズムの問題を解決するのに助けが必要
2 チーム間のサッカー ペナルティ キックをシミュレートするこのプログラムがあります。
-目標は、左下隅に座標 (0,0) を持つ 24 x 8 です。
-各チームにはキッカーが5人、ゴールキーパーが1人います(便宜上、2チームをチームAとチームBと呼びます)
- チーム A - キッカーには 5 つの戦略 (それぞれに 1 つ) があり、ゴールキーパーには 5 つの戦略があります (チーム B の各キッカーに戦略が必要なため)。
- チーム B - キッカーには 5 つの戦略 (それぞれに 1 つ) があり、ゴールキーパーには 5 つの戦略があります (チーム A の各キッカーに戦略が必要なため)。
キッカーの戦略は、座標 (x,y) とパワー値です。座標はキックの位置で、パワーはキックの強さです。( Power 属性については後で詳しく説明します)。たとえば、各キッカー入力戦略は次のようになります: (1,2) 100 または (24,7) 25
ゴールキーパーの戦略は、座標と +Width および +Height の値です。ゴールキーパーのカバレッジ領域は、左下隅が (x,y) 位置で、右上隅が (x+幅、y+高さ) の長方形です。たとえば、(3,4) 5 5 彼の左下の座標は (3,4) であり、(3+5,4+5) は長方形 (カバレッジ エリア) の右上隅です。
カバレッジエリアの最大範囲は目標エリアの25%です(プログラムはこれをチェックします)
パワー: 0-24; キックにはエラーはありません。キック ヒット ゴールキーパーのカバレッジ エリア 100% セーブ パワー: 24-49 キックは 10% のエラー (-/+10% の範囲) を持ちます。90% セーブ パワー: 50-75 キックで 20% のエラーが発生します。80% セーブ パワー: 76-100 キックで 30% のエラーが発生します。50% 割引
入力例: パワーは 0 ~ 100 でなければならず、他のすべての値は 0 ~ (2^7-1) の正の整数でなければなりません チーム A キッカー: (14,3) 25 ゴールキーパー: (2,3) 4 4 (3,5 ) 50 ゴールキーパー: (1,1) 5,5 など ...
チーム B: キッカー: (9,3) 75 ゴールキーパー: (1,2) 5 5 (3,13) 100 ゴールキーパー: (2,3) 6 6 (これがゴール エリアの 25% を超えないと仮定すると、の上 ....
わかりました、それはシミュレータープログラムでした
次に、シミュレーターに最適なチーム戦略を考え出す GA を作成する必要があります。
問題を単純化して、誰もが概念化できるようにしましょう。
入力: -population (n チームのランダムな作成。たとえば、n=5 の場合、5 つのランダムなチームが作成され、各チームの属性には 5 つのキッカーの戦略、5 つのゴールキーパーの戦略が含まれます)
アウトプット: - 最良のチーム戦略 (各チームは互いにプレーし、次の反復のために最良のものが選択されます。各チームには 5 つのキッカーの戦略と 5 つのゴールキーパーの戦略があることに注意してください)
だから私は結局n人口の分野で1つの解決策を探しています
私の問題は、ソリューションのエンコードを開始する方法です。チームとして、またはプレーヤー/ゴールキーパーのペアとしてソリューションをエンコードする必要がありますか?
たとえば、チームとしてエンコードします: 染色体:= [プレーヤー1, プレーヤー2, プレーヤー3, プレーヤー4, プレーヤー5, ゴールキーパー1, ゴールキーパー2, ゴールキーパー3, ゴールキーパー4, ゴールキーパー5]
または、プレーヤー/ゴールキーパーのペアとしてエンコードします:
このようなエンコーディングの問題は、チームを構成するために最後に 5 人の最高のプレーヤー/ゴールキーパーのペアを取得する必要があることです。
もう 1 つの問題は、バイナリと値のエンコードです。プレーヤー/ゴールキーパーのペアで行くとしましょう。このような値のエンコードは[x,y,power,x,y,weight,height] = [2,3,100,3,3,4,5]
、バイナリ表現よりも理にかなっ[0010, 0011, 1100100, 0011, 0011, 0100, 0101] = [0010 0011 1100100 0011 0011 0100 0101].
ていますか?クロスオーバーを行う方が簡単であり、突然変異はそれをバイナリとして表現しますね?
アイデアを集めようとしているだけなので、どこかから始めましょう。
前もって感謝します
algorithm - 遺伝的プログラミングを妨げているのは何ですか?
私は遺伝的アルゴリズムを使ってかなりの量の仕事を成功させてきましたが、これまでのところ遺伝的プログラミングを無視しています。私の知る限り、ほとんどのプログラムはプログラマーによって書かれたままですが、遺伝的プログラミングを妨げているものを知りたいのですが。
私が考えたいくつかの可能な説明は次のとおりです。
- 検索スペースが大きすぎて、ノイズの中から有用なプログラムを見つけることができません
- ほとんどの実際のアプリケーションは、そのようなスペースの適合性評価を可能にするのに十分なデータを提供できません。
- 多くの実際のアプリケーションの有効性を単一のフィットネス指標にまで減らすことは困難です。言い換えれば、適切な適応度関数を作成するには、実際のプログラムを作成するのと同じ量の作業が必要になる可能性があります。
何か案は?
c# - 配車ルート問題におけるグラフ理論の使用
私は単一のデポで配車ルートの問題に取り組んでいます。問題の定義は次のとおりです。m個のサイトに移動する必要のある車両はn個あります。各サイトには、特定の容量の車両のみがサイトにサービスを提供できるなど、特定の制約があります。一部のサイトは、1日の特定の時間にサービスを提供する必要があります。また、車両の容量は異なり、開始時間と終了時間も異なります。
アイデアは、デポからの車両の移動時間を最小限に抑えることです。
私は問題のコストマトリックスを作成しているところです。グラフ理論の専門家ではありませんが、古典的な巡回セールスマン問題に陥った場合、ハミルトン閉路を使用して問題を解決できることを私は知っています。しかし、それは複数の巡回セールスマン問題に該当するため、ハミルトンサイクルを使用して問題に対処する方法を知りたいのですが、それとも、そのような問題を対象とするように特別に設計された別のプロセスがあるのでしょうか。
どんな助けでも大歓迎です。
c++ - C++ での遺伝的アルゴリズムの最適化
遺伝的アルゴリズム プログラムがより迅速に結果を返せるようにするために、コードを追加または省略する効果的な方法を探しています。プログラムの目標は、文字列を受け入れて、できるだけ一致する他の文字列を作成することです。新しく作成された文字列が最も近いもの (上位 5 つ) と一致し、子孫を生成します (そのうちのいくつかは、長さに影響を与えずに新しい乱数を文字列に入れる突然変異を持っています)。すべて正常に動作しますが、長い文字列 (4 以上) を完全に一致させるには、計り知れないほどの世代が必要です。tl;drの長さについて申し訳ありませんが、これが私の現在のコードです。批判しろ!
operators - 遺伝的アルゴリズムのさまざまな低レベル演算子は何ですか?
私の試験では、さまざまな低レベル GA 演算子について詳しく説明したいと思います。しかし、さまざまなテキストがさまざまな低レベル演算子について述べていることがわかりました。
David E. Goldbergリストによる検索、最適化、および機械学習における遺伝的アルゴリズム
- 優勢
- 逆転
- 染色体内重複
- 消す
- 転座
- 分離
low-level
オペレーターとして。
そして、移住、婚姻制限、人種差別をhigher level population oriented operators
.
ただし、S. Rajashekaran と GA Vijayalksmi による Neural Networks、Fuzzy Logic and Genetic Algorithms: Synthesis and Applications などの他のテキストには、低レベル オペレーターの移行が含まれています。
low-level
これとhigh-level
演算子の違いは何ですか。
java - 遺伝的アルゴリズム:リクエストの最適化
私は遺伝的アルゴリズムに不慣れで、薬局の平日あたりのリクエストの順序を最適化するために遺伝的アルゴリズムを実装するように割り当てられています。まず、問題を説明しましょう。
週のどの曜日(月曜日から金曜日)にも出席を要求する家族が9つあります。薬局は1日に1〜3家族しか出席できず、それ以上でも同じ週に家族を繰り返すこともできません。主な目標は、各家族が参加するのに最適な日を最適化することです。このようにして、薬局は、問題に課せられた制約の下で、週あたりの最大リクエストに対応します。最適化アルゴリズムへの入力は、各ファミリによって発行されたリクエストの各数の年平均です。例えば:
(例を単純化するために、3つのファミリのみで作業してみましょう):
入力:
| 月| 火| 水| 木| 金
F1| 10 | 20 | 2 | 0 | 7
F2 | 20 | 12 | 0 | 1 | 2
F3 | 2 | 0 | 0 | 19 | 3
考えられる解決策:
| 月| 火| 水| 木| 金
| | F2 | F1 | F3 |
これまで私は遺伝学と遺伝的アルゴリズムの概念全体を研究してきました。粒子群最適化を検討しましたが、時間がかなり短いため、フレームワークを使用することにしました。私はJGAPを使用していますが、私の主な問題は、どのようにして潜在的な解決策を提示するかということです。つまり、交配や繁殖などに使用される染色体上の遺伝子をどのように整理すればよいのでしょうか... すでに適応度関数を開発しましたが、遺伝子を思い通りにエンコードできません。助言がありますか?
c++ - C++ でさまざまなタイプの関数ポインタを保持するコンテナを作成する方法は?
私は線形遺伝的プログラミング プロジェクトを行っています。このプロジェクトでは、自然な進化メカニズムによってプログラムが繁殖および進化します。彼らの「DNA」は基本的に、利用可能な関数のセットへの関数ポインタを含むコンテナです(私は配列とベクトルをうまく使用しました)。ここで、数学の問題などの単純な問題の場合、1 つの型定義関数ポインターを使用して、すべてが double を返し、すべてが 2 つの double をパラメーターとして受け取る関数を指すことができます。
残念ながら、これはあまり実用的ではありません。さまざまな種類の関数ポインターを持つことができるコンテナーを持つことができる必要があります。たとえば、引数を取らない関数への関数ポインター、引数を 1 つ取る関数、何かを返す関数などです (考え)...
任意の種類のコンテナを使用してこれを行う方法はありますか? さまざまな種類の関数ポインターを持つポリモーフィック クラスを含むコンテナーを使用してそれを行うことはできますか? これまでに行ったすべてを再設計するのは苦痛になるため、誰かが私を解決策に向けてくれることを願っています.
simulation - 興味深い/驚くべき結果を生成し、退屈/明白な終点を持たない遺伝的アルゴリズムは何ですか?
このような遺伝的アルゴリズムのシミュレーションは非常に魅力的で、自分で作成するのも楽しいと思います。しかし、このようなほとんどのシミュレーションの問題は、通常、人間の指導で非常に簡単に作成できる予測可能な理想的な結果に向けて山登りをしているだけだということです。興味深いシミュレーションには、互いに大きく異なる無数の異なる解があり、それらを観察している人間にとって驚くべきものです。
では、そのようなものを作成するにはどうすればよいでしょうか。私が説明していることを達成することを期待するのは合理的ですか? インスピレーションを得ることができる「標準的な」シミュレーション (ライフ ゲームが標準化されているという意味で) はありますか?
c++ - Visual Studio 2010 での C++ プログラムのコンパイル エラー
次の C++ プログラムを Visual Studio 2010 でコンパイルできません。既に同じコードの作業ビルドがあるので、コードが正しいことはわかっています。しかし、私はそれが何をどのようにコンパイルしたのかわかりません。
そのため、誰かがコードをコピーして VS 2010 でコンパイルしていただければ幸いです。
コード:
新しい:
わかりました、以下のコメントに従って編集を行いました。現在残っていると思われる唯一の問題は、オーバーロードされた関数の呼び出しに関連しています。では、どうすればいいのでしょうか?
algorithm - 遺伝的プログラミングと検索アルゴリズム
遺伝的プログラミングは現在、あるタイプの検索アルゴリズムを別のタイプに進化させることができますか? たとえば、これまでに QuickSort から BubbleSort を繁殖/変異させた実験はありますか ( http://en.wikipedia.org/wiki/Sorting_algorithmを参照) 。