gtft<-function(N,itMax,tft){ p<-matrix(runif(2*N),ncol=2,nrow=N) if(tft){ p[1,1]<-0.99 p[1,2]<-0.01 } out<-NULL q<-p # iteration for (it in 1:itMax) { score<-rep(0,N) games<-score for (i in 1:N){ for (k in i:N){ j<-k # sample(1:N,1) tmp<-infiniteIPDR(p[i,1],p[i,2],p[j,1],p[j,2]) score[i]<-score[i]+tmp[1] score[j]<-score[j]+tmp[2] games[i]=games[i]+1 games[j]=games[j]+1 } } score<-as.numeric(score)/games out<-rbind(out,c(mean(score),mean(p[,1]),mean(p[,2]))) for (i in 1:N) { tmp<-sample(1:N,1,prob=score) q[i,1]<-p[tmp,1] q[i,2]<-p[tmp,2] } p<-q } # end iteration par(mfrow=c(3,1)) plot(out[,2],xlab='time',ylab="Average p",ylim=c(0,1)) plot(out[,3],xlab='time',ylab="Average q",ylim=c(0,1)) plot(out[,1],xlab='time',ylab="Average Score") }