def qLoves(x,y): global parameters lB=bsim.loadBrain('vb-exp-BReport.txt') lG=bsim.loadBrain('vb-exp-GReport.txt') lT=bsim.loadBrain('vb-exp-TReport.txt') lS=bsim.loadBrain('vb-exp-SReport.txt') _,spikesB=brainalyze.countSpikes(lB,10000*(parameters['ENDSIM']/2)) _,spikesG=brainalyze.countSpikes(lG,10000*(parameters['ENDSIM']/2)) _,spikesT=brainalyze.countSpikes(lT,10000*(parameters['ENDSIM']/2)) _,spikesS=brainalyze.countSpikes(lS,10000*(parameters['ENDSIM']/2)) if x[1]=='B': spikesA=spikesB elif x[1]=='G': spikesA=spikesG if y[1]=='B': spikesO=spikesB elif y[1]=='G': spikesO=spikesG cBT=brainalyze.corr(spikesB,spikesT)#/(brainalyze.corr(spikesT,spikesS)/1) cGT=brainalyze.corr(spikesG,spikesT)#/(brainalyze.corr(spikesT,spikesS)/1) cBS=brainalyze.corr(spikesB,spikesS)#/(brainalyze.corr(spikesS,spikesT)/1) cGS=brainalyze.corr(spikesG,spikesS)#/(brainalyze.corr(spikesS,spikesT)/1) cAT=brainalyze.corr(spikesA,spikesT)#/(brainalyze.corr(spikesS,spikesT)/1) cOT=brainalyze.corr(spikesO,spikesT)#/(brainalyze.corr(spikesS,spikesT)/1) cAS=brainalyze.corr(spikesA,spikesS)#/(brainalyze.corr(spikesS,spikesT)/1) cOS=brainalyze.corr(spikesO,spikesS)#/(brainalyze.corr(spikesS,spikesT)/1) print "john = Lover (cBT)", cBT*100 print "mary = Lover (cGT)", cGT*100 print "john = Lovee (cBS)", cBS*100 print "mary = Lovee (cGS)", cGS*100 print "x = Lover (cAT)", cAT*100 print "y = Lover (cOT)", cOT*100 print "x = Lovee (cAS)", cAS*100 print "y = Lovee (cOS)", cOS*100 if x != y and cAT > cOT and cOS > cAS: return True elif x == y: # this is a bit of a hack, but can be made not to depend on x or y if x==john and cBT > cBS and cGT > cGS and cBT >= cGT and cBS >= cGS: return True elif x==mary and cBS > cBT and cGS > cGT and cGT >= cBT and cGS >= cBS: return True else: return False else: return False
def Loves(x,y): if not ran: if x == X or x == Y or y == X or y == Y: print "Error: variables not allowed in declarative phase." return False global bradb # inject stimulus object injectBrain(bradb, agent, rates[x], 0.0, parameters['LEARNING']) injectBrain(bradb, object, rates[y], 0.0, parameters['LEARNING']) print "Stored" else: lX=loadBrain(parameters['BRAINNAME']+'-'+x+'Report.txt') lA=loadBrain(parameters['BRAINNAME']+'-'+agent+'Report.txt') lY=loadBrain(parameters['BRAINNAME']+'-'+y+'Report.txt') lO=loadBrain(parameters['BRAINNAME']+'-'+object+'Report.txt') _,spikesX=brainalyze.countSpikes(lX,10000*parameters['LEARNING']) _,spikesA=brainalyze.countSpikes(lA,10000*parameters['LEARNING']) _,spikesY=brainalyze.countSpikes(lY,10000*parameters['LEARNING']) _,spikesO=brainalyze.countSpikes(lO,10000*parameters['LEARNING']) xAg = brainalyze.corr(spikesX,spikesA) yAg = brainalyze.corr(spikesY,spikesA) xObj = brainalyze.corr(spikesX,spikesO) yObj = brainalyze.corr(spikesY,spikesO) if x == mary: xAgc=xAg/ma_nl yAgc=yAg/ja_nl if x == john: xAgc=xAg/ja_nl yAgc=yAg/ma_nl if y == mary: yObjc=yObj/mo_nl xObjc=xObj/jo_nl if y == john: yObjc=yObj/jo_nl xObjc=xObj/mo_nl print "X Agent, Y Agent ", xAg,yAg print "X Object, Y Object ", xObj,yObj # print "Coeff xAg/yAg ", xAg/yAg # print "Coeff yObj/xObj", yObj/xObj print "(Corrected) X Agent, Y Agent ", xAgc,yAgc print "(Corrected) X Object, Y Object ", xObjc,yObjc if xAgc > yAgc and yObjc > xObjc: return True else: return False
x=0 y=0 while x < len(rates): while y < len(rates): print rates[x],rates[y] lJ=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-JReport.txt') lM=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-MReport.txt') lX=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-XReport.txt') lY=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-YReport.txt') lAP=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-APReport.txt') lOP=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-OPReport.txt') lAQ=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-AQReport.txt') lOQ=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-OQReport.txt') lI=brainsim8.loadBrain('vb-exp'+str(x)+'-'+str(y)+'-IReport.txt') _,spikesJ=brainalyze.countSpikes(lJ,10000*(parameters['ENDSIM']/2)) _,spikesM=brainalyze.countSpikes(lM,10000*(parameters['ENDSIM']/2)) _,spikesX=brainalyze.countSpikes(lX,10000*(parameters['ENDSIM']/2)) _,spikesY=brainalyze.countSpikes(lY,10000*(parameters['ENDSIM']/2)) _,spikesAP=brainalyze.countSpikes(lAP,10000*(parameters['ENDSIM']/2)) _,spikesOP=brainalyze.countSpikes(lOP,10000*(parameters['ENDSIM']/2)) _,spikesAQ=brainalyze.countSpikes(lAQ,10000*(parameters['ENDSIM']/2)) _,spikesOQ=brainalyze.countSpikes(lOQ,10000*(parameters['ENDSIM']/2)) cJX=brainalyze.corr(spikesJ,spikesX) cMX=brainalyze.corr(spikesM,spikesX) cJY=brainalyze.corr(spikesJ,spikesY) cMY=brainalyze.corr(spikesM,spikesY) cXAP=brainalyze.corr(spikesX,spikesAP) cXOP=brainalyze.corr(spikesX,spikesOP) cXAQ=brainalyze.corr(spikesX,spikesAQ)
plt.subplot(512) plt.plot(sp,lG,'b') plt.subplot(513) plt.plot(sp,lT,'b') plt.subplot(514) plt.plot(sp,lS,'b') plt.subplot(515) plt.plot(sp,lI,'b') plt.show() brainsim.simBrain(parameters) lB=brainsim.loadBrain('vb-exp-BReport.txt') lG=brainsim.loadBrain('vb-exp-GReport.txt') lT=brainsim.loadBrain('vb-exp-TReport.txt') lS=brainsim.loadBrain('vb-exp-SReport.txt') _,spikesB=brainalyze.countSpikes(lB,10000*(parameters['ENDSIM']/2)) _,spikesG=brainalyze.countSpikes(lG,10000*(parameters['ENDSIM']/2)) _,spikesT=brainalyze.countSpikes(lT,10000*(parameters['ENDSIM']/2)) _,spikesS=brainalyze.countSpikes(lS,10000*(parameters['ENDSIM']/2)) cBT=brainalyze.corr(spikesB,spikesT)/(brainalyze.corr(spikesT,spikesS)/1) cGT=brainalyze.corr(spikesG,spikesT)/(brainalyze.corr(spikesT,spikesS)/1) cBS=brainalyze.corr(spikesB,spikesS)/(brainalyze.corr(spikesS,spikesT)/1) cGS=brainalyze.corr(spikesG,spikesS)/(brainalyze.corr(spikesS,spikesT)/1) #cBS=cBS+10 #cGS=cGS+10 #cBS=(cBS/cGS)*cBT #cGS=cBT print "Blue Triangle", cBT*100 print "Green Triangle", cGT*100