void Microscopic::Run(int n){

	f=fopen("./data/collision_time_micro.txt","w");
	fclose(f);

	avgstate[SEARCH]=0; avgstate[COLLISION]=0;
	
	for(int i=1; i<=n; i++){
		SingleRun(EXP_LENGTH);
		avgstate[SEARCH]=((avgstate[SEARCH])*(i-1)+avgoneexp[SEARCH])/i;
		avgstate[COLLISION]=((avgstate[COLLISION])*(i-1)+avgoneexp[COLLISION])/i;
		printf("Experiment %d: Ns: %f Na: %f\n",i,avgoneexp[SEARCH],avgoneexp[COLLISION]);		
	}
	printf("Average over all experiments: Ns: %f Na: %f\n",avgstate[SEARCH],avgstate[COLLISION]);
}
Esempio n. 2
0
bool WuMethod::Run(void)
{
    vector <pair <int, string> > varperm;
    vector <pair <int, Poly> > polyperm;
    for (int i = 0; i < getWuVarNum(); i++) 
        varperm.push_back(make_pair(i, m_wuvar[i]));
    for (int i = 0; i < getWuPolyNum(); i++) 
        polyperm.push_back(make_pair(i, m_wupoly[i]));

    do {
        do {
            if (SingleRun(varperm, polyperm))
                return true;
        } while (next_permutation(varperm.begin(), varperm.end(), CompareWuVar()));
    } while (next_permutation(polyperm.begin(), polyperm.end(), CompareWuPoly()));
    
    return false;
}