get paid to paste

RE:#4e987033

pattern = [(0.0,0.0,0.0),(0.0,1.0,0.0),(1.0,0.0,0.0),(1.0,1.0,1.0)]
ler = 0.1
w1 = 0.3
w2 = -0.1
def act(x1,x2,w1,w2,t=0.2):
    """
    1 if W0 *I0 + W1 * I1 + Wb > 0
    0 if W0 *I0 + W1 * I1 + Wb <= 0
    """

    summ = x1*w1+x2*w2-t
    #print x1*w1,x2*w2-t,
    print summ
    y = 0.0
    if summ >= 0.0:
        y=1.0
    return y
def adjust(w,ler,y,d,iod):
    if iod == 1:
        #w += ler*(d-y)
        w += ler
    if iod == 0:
        w -=ler
    return w

def tlu(patt,lvl=0):
    lvl=lvl+1
    if lvl > 20:
        print lvl
        return 0

    global w1,w2,ler
    error = True
    while(error):
        if lvl>20:
            print lvl
            return 0
        error = False
        for i in patt:
            x1,x2,out = list(i)
            y = act(x1,x2,w1,w2)
            print y
            if y > out:
                error = True
                #print "old weights" ,w1,w2, "level",lvl-1
                if x1 == 1:
                    w1 = adjust(w1,ler,y,out,0)
                if x2 == 1:
                    w2 = adjust(w2,ler,y,out,0)
                print "new weights", w1,w2, "level",lvl
            if out > y:
                error = True
                #print "old weights" ,w1,w2, "level",lvl
                if x1 == 1:
                    w1 = adjust(w1,ler,y,out,1)
                if x2 == 1:
                    w2 = adjust(w2,ler,y,out,1)
                print "new weights", w1,w2, "level",lvl
        lvl+=1

    print "success, adjusted weigths are " ,w1,w2, "level",lvl-1
    print 30*'*'
    print "actual output","\t","desired output"
    for i in patt:
        x1,x2,out = list(i)
        print act(x1,x2,w1,w2), "\t\t",out


tlu(pattern)

Pasted: Nov 21, 2011, 8:50:04 am
Views: 18