/* Boolean 3-majority on From John Koza's Lisp implementation ftp://cs.ucl.ac.uk/genetic/ftp.io.com/code/koza-book-gp-implementation.lisp Cf http://hakank.org/jgap/majority_on_3.conf Here is one solution from JGAP: ((a || (b && c)) && c) || ((b || b) && a) maxCount = 2 code = if_then_else(A == B, A,C) = [[[1,1,1],1],[[1,1,0],1],[[1,0,1],1],[[1,0,0],0],[[0,1,1],1],[[0,1,0],0],[[0,0,1],0]] = [[0,0,0] = 0] */ data(majority_on_3,Data,Vars,Unknown,Ops,Constants,MaxC) :- Data = [[[1,1,1],1], [[1,1,0],1], [[1,0,1],1], [[1,0,0],0], [[0,1,1],1], [[0,1,0],0], [[0,0,1],0] % , % [[0,0,0],0] % -> Unknown ], Unknown = [0,0,0], Vars = ["A","B","C"], % Ops = new_map([infix=["+","-","*","/","/\\","\\/","mod"]]), % Ops = new_map([infix=["+","*","mod"]]), % get_global_map().put("debug",true), Ops = new_map([infix=["/\\","\\/"], user3=["if_then_else"], conditions=["=="] ]), Constants = 0..1, MaxC = 3.