DEAPを使用して型指定された遺伝的プログラミング ソリューションを構築しようとしています。
白黒の三角形の写真と別の三角形の 3 つの頂点からプログラムを開始します。プログラムが、与えられた三角形の頂点を写真の頂点に近づけるプログラムを考え出すことを願っています。ランダムな定数、算術プリミティブの加算、減算など、if-then-else を提供します。指定された座標で is_black と is_white をテストします。
すべてのプリミティブを設定しましたが、このエラーが発生し続けます。これは、写真を提供または消費するプリミティブをさらに追加するように指示しているようです (どちらかわかりません?!)。
次の理由により、エラーが難しいと思います。
- 写真を入力として使用するプリミティブがあります。
- 写真を出力として生成するプリミティブはありません。
- 私は写真を変形したくありません。ただ消費するだけです。
優勝プログラムは、「if (10,10) is black add (3,2) to vertex 1」のような長いコマンド シーケンスが幾分吐き気を催すように繰り返されると思います。
しかし、おそらく deap の仕組みについて正しく理解していないことがあります。このようなエラー メッセージを解決するにはどうすればよいですか?
File "/usr/local/Cellar/python3/3.4.1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/random.py", line 255, in choice
raise IndexError('Cannot choose from an empty sequence')
IndexError: The gp.generate function tried to add a primitive of type '<class 'triangles.Photo'>', but there is none available.
このエラーは通常gp.gengrow
、開始母集団を生成しようとしたときに発生します。
関連しているかもしれないし関連していないかもしれないのは、私がターミナルの邪魔をすることがあまりないということです.ターミナルが私の問題にどのように適用されるのかはっきりしていません.
コオロギが聞こえると思いますが、誰かが実際にこの質問に興味を持ち、コード、または少なくとも原始的なセットを見たいと思っている場合は、それをどこかに貼り付けたり貼り付けたりできます. それはすでに十分にとりとめのないものだと考えました。特定のエラー メッセージに焦点を当ててきましたが、それは、GP/DEAP の動作に対する私の一般的な (不適切な) 評価が原因であると思われます。