リスト構造を使わないschemeが可能か?
http://www.pkan.org/~ufo/wiliki.cgi?ufo
の遺伝的アルゴリズムの資料をヒントに思いついた。
具体的には
http://www.miv.t.u-tokyo.ac.jp/ibalab/papers/98/tokui98.pdf
この文献の「2.システムの概要」と
http://save.k.u-tokyo.ac.jp/jsces/trans/trans2004/No20040026.pdf
この文献の「4.並列分散線形GP」
prefix型の式を stack counter を使って解く。 ターゲット 3xy+y これを prefix で表現すると + * 3 * x y y -1 -1 1 -1 1 1 1 (stack count) となる。S式では ( + (* 3 ( * x y))y) -1 -1 1 -1 1 1 1 (stack count) (部分木の stack count の総和は1になる。) 見やすくするため、1を+、-1を-で表す。 prefix表現 + * 3 * x y y - - + - + + + S式 (+ (* 3 (* x y))y) - - + - + + + ()内が1になるか計算 (- - + - + + +) = 1 - (- + - + +) + = 1 - - + (- + +) + = 1 基点は必ず - となる。 どの基点から開始しても必ず1となる終点がある。 + が示すノードは終端ノードという。 - が示すノードは非終端ノードという。 全ての非終端ノードは2項演算子である。 右側の非終端ノードから計算する。