#
# Odd parity using the Double version of And, Not, Or
#
# From http://www.dtreg.com/gep.htm
# """
# The output parity value should be 1 if there are an odd number of 
# inputs with the value 1, and the output should be 0 if there are 
# an even number of inputs with the value 1. 
# """
#
# The solution should be something like:
#
#   (In3||(!(In1&&In2)))&&((!(In1||In2))||(In1&In2)||!In3)&&In2||(In1||In3) 
#
# Notes:
#  - we use the Double version of the boolean operators
#    which should probably be considered experimental.
#  - we allow 0 (false) and 1 (true) to be able to use a single 
#    variable in the solution
#  - we don't use XorD, just AndD, NotD, and OrD
#
# Here is one solution:
#   ((In2 || (In2 || (!(In1 && In3)))) && (In1 || (In2 || ((In1 || In3) && In3)))) && ((!((In1 || In3) && In2)) || (In1 && In3))
# 
presentation: Odd parity
return_type: DoubleClass
num_input_variables: 2
variable_names: In1 In2 Parity
functions: AndD,NotD,OrD
terminal_range: 0 1
terminal_wholenumbers: true
max_init_depth: 4
population_size: 100
max_crossover_depth: 4
num_evolutions: 100
max_nodes: 21
adf_arity: 0
adf_type: boolean
adf_functions: Not,And,Or
show_similiar: true
data
0 0 0
0 1 1
1 0 1
1 1 0
