#format python # Python NeuralNetwork sample for andgate. # See andgate.py >>> def f(x1,x2,w1,w2): return x1*w1 + x2*w2 >>> thres = 0.5 >>> w1 = 0.3 >>> w2 = -0.2 >>> x1,x1 = 0,0 >>> >>> f(x1,x2,w1,w2) Traceback (most recent call last): File "", line 1, in f(x1,x2,w1,w2) NameError: name 'x2' is not defined >>> x1,x1 = 0,0 >>> x1,x2 = 0,0 >>> f(x1,x2,w1,w2) 0.0 >>> x1,x2 = 0,1 >>> f(x1,x2,w1,w2) -0.20000000000000001 >>> isOver=lambda x1,x2,w1,w2:f(x1,x2,w1,w2)>thres >>> isOver(x1,x2,w1,w2) 0 >>> result=isOver >>> result(x1,x2,w1,w2) 0 >>> expected=0 >>> isSame=lambda x1,x2,w1,w2,expected:result(x1,x2,w1,w2)==expected >>> isSame(x1,x2,w1,w2,0) 1 >>> x1,x2=1,0 >>> isSame(x1,x2,w1,w2,0) 1 >>> x1,x2=1,1 >>> isSame(x1,x2,w1,w2,1) 0 >>> result(x1,x2,w1,w2) 0 >>> f(x1,x2,w1,w2) 0.099999999999999978 >>> f(x1,x2,w1+w1delta,w2+w2delta) Traceback (most recent call last): File "", line 1, in f(x1,x2,w1+w1delta,w2+w2delta) NameError: name 'w1delta' is not defined >>> w1delta,w2delta=0.2,0.2 >>> f(x1,x2,w1+w1delta,w2+w2delta) 0.5 >>> w1delta,w2delta=0.3,0.3 >>> f(x1,x2,w1+w1delta,w2+w2delta) 0.69999999999999996 >>> isSame(x1,x2,w1+w1delta,w2+w2delta,1) 1 >>> x1,x2=0,0 >>> w1prime=w1+w1delta >>> w2prime=w2+w2delta >>> isSame(x1,x2,w1prime,w2prime,0) 1 >>> x1,x2=0,1 >>> isSame(x1,x2,w1prime,w2prime,0) 1 >>> isSame(1,0,w1prime,w2prime,0) 0 >>> f(1,0,w1prime,w2prime) 0.59999999999999998 >>> >>> >>> import andgate >>> andgate.printGenerations() 0.0 -0.2 0.3 0.1 >>> reload(andgate) >>> andgate.printGenerations() (0,0) : 0.000000 (0,1) : -0.200000 (1,0) : 0.300000 (1,1) : 0.100000 >>> reload(andgate) >>> andgate.printGenerations() Traceback (most recent call last): File "", line 1, in andgate.printGenerations() TypeError: printGenerations() takes exactly 2 arguments (0 given) >>> andgate.printGenerations(0.3,-0.2) (0,0) : 0.000000 (0,1) : -0.200000 (1,0) : 0.300000 (1,1) : 0.100000 >>> andgate.printGenerations(0.4,-0.1) (0,0) : 0.000000 (0,1) : -0.100000 (1,0) : 0.400000 (1,1) : 0.300000 >>> andgate.printGenerations(0.5,0) (0,0) : 0.000000 (0,1) : 0.000000 (1,0) : 0.500000 (1,1) : 0.500000 >>> andgate.printGenerations(0.6,0.1) (0,0) : 0.000000 (0,1) : 0.100000 (1,0) : 0.600000 (1,1) : 0.700000 >>> andgate.printGenerations(0.55,0.05) (0,0) : 0.000000 (0,1) : 0.050000 (1,0) : 0.550000 (1,1) : 0.600000 >>> andgate.printGenerations(0.4,0.2) (0,0) : 0.000000 (0,1) : 0.200000 (1,0) : 0.400000 (1,1) : 0.600000 >>> andgate.printGenerations(0.4,-0.1) (0,0) : 0.000000 (0,1) : -0.100000 (1,0) : 0.400000 (1,1) : 0.300000 >>> andgate.printGenerations(0.5,0) (0,0) : 0.000000 (0,1) : 0.000000 (1,0) : 0.500000 (1,1) : 0.500000 >>> andgate.printGenerations(0.6,0.1) (0,0) : 0.000000 (0,1) : 0.100000 (1,0) : 0.600000 (1,1) : 0.700000 >>> andgate.printGenerations(0.5,0.1) (0,0) : 0.000000 (0,1) : 0.100000 (1,0) : 0.500000 (1,1) : 0.600000 >>> >>> reload(andgate) >>> andgate.adjust(1,1,0.3,-0.2,1) (0.39000000000000001, -0.11) >>> andgate.printGenerations(0.39,-0.11) (0,0) : 0.000000 (0,1) : -0.110000 (1,0) : 0.390000 (1,1) : 0.280000 >>> andgate.adjust(1,1,0.39,-0.11,1) (0.46200000000000002, -0.038000000000000006) >>> andgate.printGenerations(0.462,-0.038) (0,0) : 0.000000 (0,1) : -0.038000 (1,0) : 0.462000 (1,1) : 0.424000 >>> andgate.adjust(1,1,0.462,-0.038,1) (0.51960000000000006, 0.019599999999999999) >>> andgate.printGenerations(0.5196,0.0196) (0,0) : 0.000000 (0,1) : 0.019600 (1,0) : 0.519600 (1,1) : 0.539200 >>> andgate.adjust(1,0,0.5196,0.0196,0) (0.46763999999999994, 0.019599999999999999) >>> andgate.printGenerations(0.4676,0.0196) (0,0) : 0.000000 (0,1) : 0.019600 (1,0) : 0.467600 (1,1) : 0.487200 >>> andgate.adjust(1,1,0.4676,0.0196,1) (0.51888000000000001, 0.070879999999999999) >>> andgate.printGenerations(0.5188,0.07088) (0,0) : 0.000000 (0,1) : 0.070880 (1,0) : 0.518800 (1,1) : 0.589680 >>> andgate.adjust(1,0,0.5188,0.07088,0) (0.46692, 0.070879999999999999) >>> andgate.printGenerations(0.46692,0.07088) (0,0) : 0.000000 (0,1) : 0.070880 (1,0) : 0.466920 (1,1) : 0.537800