0

私はまだアンデッド投稿のために古いルビーをハッキングしています(私は知っています、私は知っています、死んだチャックから投稿を取り戻そうとするのをやめます)。しかし、コードは少し手に負えなくなってきており、現在、遺伝的アルゴリズムに取り組んでおり、生と死の究極の戦いを作成しており、フィットネスは戦いが続く時間です.

それで、私はそれの基本を理解しました。ゲームの属性を調整する方法とソリューションの適合度を取得する方法、私が理解できないのは、以前に組み合わせを試したことがわかるように適合度を保存する方法です。

私は、何が起こっているのかを理解するのに十分なほどよく読めるコードは言うまでもなく、調べるための多くの遺伝子コードを見つけることができませんでした. これが通常どのように行われるか、または単に私を正しい方向に向けるのに役立つアルゴリズムを知っている人はいますか?

4

3 に答える 3

1

GA では、適合性テストに長い時間がかかる場合、ソリューションを再評価したくありません。ハッシュ テーブルを使用してフィットネス スコアを保存し、ハッシュ キーを染色体にします。「オークの作戦」を使用してください。最初にキャッシュをチェックし、そこにある場合はそれを取得して続行し、そうでない場合はそれを計算して次回のためにハッシュに入れます。

于 2009-12-09T05:11:43.507 に答える
1

GA の完全な例が必要な場合は、英国のシェフィールド大学の進化的コンピューティング チームから無料のオープン ソースの Matlab GA ツールボックスを入手できます。

http://www.sheffield.ac.uk/acse/research/ecrg/gat.html

matlab コードを見たくない場合でも、ツールボックスに付属のマニュアルには、Ruby コードの作成に役立つ GA の正確な動作に関する非常に適切でアクセスしやすい説明があります。

于 2011-04-20T22:44:05.227 に答える
1

私が理解できないのは、以前に組み合わせを試したことがわかるように、フィットネスを保存する方法です。

通常、GA ソリューションでは、同じ「ソリューション」を生成することに関心はありません。関心があるのは、「スコア」の改善率が安定するときです。

「ソリューション」の履歴を記録/追跡したい場合、後で再表示されるタイミングを知りたいと思う人が多いでしょうが、「ゲーム」にはランダムな性質があると想定しているため、オブジェクトを繰り返し実行する必要があります。

于 2009-12-06T06:32:48.477 に答える