10

遺伝的アルゴリズムを使用して Tetris プレーヤーを作成し、いくつかの問題に直面しています。私は多くの関連作品を読みましたが、GA について十分な詳細が得られません。

問題は、私のエージェントが非常に速く動けなくなることです...評価関数を使用して、高さ、覆われた穴、平坦度、およびクリアされた行の数の 4 つの機能をカバーしています。同じ評価を使用し、何千行も実行できる論文を読みました。

600 世代後、100 エージェントの人口で、最高のエージェントは平均で 260 行しか実行できません。これは不十分です。すべてのエージェントが同じ曲のシークエンスを演奏しています。

私のGAの詳細:

世代:600 人口:100

遺伝子: 0 から 1 までの 4 つの float 値の配列。

一様交叉は一定の確率で起こり、一定の確率で 2 つの親の間で遺伝子を交換します。

突然変異は特定の確率で発生します。ここでは、遺伝子を交換する、遺伝子をランダムな値に置き換える、または遺伝子にノイズ値を追加するという 3 つの異なるアプローチを試しました。

私は 50% のエリート率を持っていますが、一部の優れたエージェントが選択されて、より悪いエージェントを生み出し、人口を汚染していることに気付きました。

選択はルーレット…

誰かがクロスオーバーと突然変異の最良の方法について詳しく教えてくれたら、感謝します!

ありがとう、そして長い投稿でごめんなさい!

4

2 に答える 2

3

評価関数に多少の違いがあるようです。次の4つの機能について説明します。

  1. 身長、
  2. 覆われた穴、
  3. 平坦度と
  4. クリアされた行の数

ただし、参照するペーパーでは、次の5つの機能について説明しています。

エージェントがボードの状態の効用を決定するために使用する関数は、状態から計算された数値的特徴の加重線形和です。Colin Faheyのエージェントは、パイルの高さ閉じた穴の数、ウェルの数などの機能を使用しました(Fahey2003)。追加した機能は、作成されたばかりの行の数と、パイルがどれだけ「でこぼこ」であるかを表す数です。

(強調鉱山)

したがって、評価関数と遺伝子の構成に「ウェル」機能が欠けているようです。

于 2011-10-14T18:26:37.327 に答える
0

ペーパーとは異なり、ゲームの「次のピース」の側面を実装する必要があります。

「ユーティリティ」を計算する前に、すべての可能な「現在のピース」の配置とそれに続く「次のピース」をシミュレートします。

パフォーマンスのために、最適な「ユーティリティ」のために「次のピース」の配置をキャッシュして、「現在のピース」の配置として再計算する必要がないようにすることができます。

計算は遅くなりますが、エージェントはより速く/より賢く進化すると思います。

于 2011-10-14T13:05:27.050 に答える