2012-04-20 9 views
2

遺伝的プログラミング論文を見ると、テストケースの数は常に固定されているようです。しかし、ほとんどの突然変異は、実行のあらゆる段階で(?)非常に有害であるべきである。 e。 1つのテストケースの後で、突然変異したプログラムが以前のものよりもはるかに悪いことを明らかにします。最初に、ほんの少数(1つ)のテストケースを試して、突然変異が意味をなさないかどうかを調べるとどうなりますか?遺伝的プログラミングにおけるテストケースの動的数は?

さまざまなテストケースでソリューションのさまざまな機能がテストされ、1つの突然変異がおそらくこれらの機能の1つだけを改善するのでしょうか?

+0

「テストケース」とはどういう意味ですか? 「フィットネス機能」を意味しますか? – Kiril

答えて

0

ほとんどの突然変異は非常に有害であるはずですが、であっても、には注意しないでください。あなたの目標は個人を最適化することではなく、人口を最適化することです。したがって、「突然変異が意味をなさせる」かどうかを判断しようとするのは、まさに遺伝子プログラミングが想定していることです。すなわち、「意味がない」突然変異を排除します。アルゴリズムのための唯一の "ガイダンス"は、フィットネス機能を使用する必要があります。

0

「テストケース」とは何を意味するのかよく分かりませんが、多目的最適化(MOO)に関連するものを探しているようです。つまり、問題のさまざまな側面に関するソリューションを最適化しようとします。そのため、特定のテストケースの人口を変更/評価する必要はなく、多目的フィットネス機能を見つける必要があります。 "MOOの主なアイデアはパレート支配の概念です"(http://www.gp-field-guide.org.uk

0

私はこれは理論的には良いアイデアだと思っていますが、実践するのは難しいと思います。私はこのアプローチが実際に使用されているのを覚えていませんが、それがあれば驚くことはありません。

私は、フィットネス機能を適用する効率を向上させることをあなたのモチベーションと考えています。テストが完了するように見える場合、評価を早期に中止し、個人を捨てる(または0に設定する)ひどい。

1つの課題は、適用するテストケースの数を決定することです。 1つのランダムなテストケースの後に個人を捨てることは、テストケースが実際の外れ値かもしれないので、確かに良い考えではありません。おそらく、個人の適性が<の場合、テストケースの50%後に評価を終了すると、ベストの10%が非常に良い個人を捨てることはないでしょう。他方では、多くの個人が中高年のフィットネスになることを考えれば価値がないかもしれないし、計算のほんの一部を節約するだけかもしれない。あなたは数字を調整してより多くの労力を節約することができますが、本当に良い人が偶然に捨てられる可能性をより多く節約しようと努力すれば努力します。

これや可能性のあるバグなどをコード化するのに余分な時間を要する要因であり、利益が価値があるとは思わないはずです(この場合、それを試してみると興味深い研究プロジェクトでない限り) 。

0

私はそれをお勧めします。フィットネス評価は、GPで最も計算量の多いプロセスであるため、実際にフィットネスを計算する際の計算コストを削減するために、個人のフィットネス値を見積もることが重要な最適化となります。

あなたのアイデアはフィットネス近似の一種です。怠惰な評価と呼ばれることもあります(これらの単語を検索してみると、いくつかの研究論文があります)。

も例えば明確なやや重複スキームがあります。

  • ダイナミックサブセットの選択(クリスGathercole、ピーター・ロス)がその上に設定されたトレーニングデータの小さなサブセットを選択するための方法であり、実際にGPアルゴリズムを実行します。
  • セグメントベースの遺伝的プログラミング(Nailah Al-Madi、Simone Ludwig)は、データセットをセグメントに分割し、フィットネス評価プロセスでセグメントを使用することによってGPの実行時間を短縮する技術です。

また、Brood Recombination Crossover(Tackett)の子プログラムは、限られた数のテストケースで評価され、クロスオーバをスピードアップします。

関連する問題