예제 #1
0
파일: graphtop.c 프로젝트: duhone/college
void main()
 {
  char exitint;
  graph maingraph;
  maingraph = getgraph();
  printgraph(maingraph);
  printtopsortorder(maingraph);
  printf("\npress the enter key to quit");
  scanf("%c",&exitint);
 }
예제 #2
0
int main(int argc, char *argv[])
{
    getgraph();
    int i,j,count=0;
    printf("Enter the source node\n");
    scanf("%c",&src);
    source=demap(src);
    r=source;
    initialize();
    while(count<6)
        // while((x[0]!=99) && (x[1]!=99) && (x[2]!=99) && x[3]!=99 && x[4]!=99 && x[5]!=99)
    {
        choose();
        for(i=0; i<6; i++)
        {
            if(node[r][i]<99)//if there is a path
            {
                if(d[i]>d[r]+node[r][i])//if value of bubble is > the new cost to get to that node
                {
                    d[i]=d[r]+node[r][i];
                    p[i]=r;

//             printf("d[%d]: %d, p[%d]: %d\n",i,d[i],i,p[i]);
                }
            }
        }
        x[r]=99;

        count++;

//       printf("\n\n");
    }


    printf("Shortest Path From %c to x:\t|  Total Cost\n",map(source));
    printf("---------------------------------------------\n");

    for(i=0; i<6; i++)
    {
        printf("From %c to %c:    ",map(source),map(i));
        if(i!=source)
        {
            ctr=i;
            // printf("%c->",map(ctr));
            final[f]=map(ctr);
            f++;
            while(p[ctr]!=source)
            {
                //printf("%c->",map(p[ctr]));
                final[f]=map(p[ctr]);
                f++;
                ctr=p[ctr];
            }
            final[f]=map(p[ctr]);
예제 #3
0
int main(int argc, char *argv[])
{
	int seed;

	if (argc!=2) {
		printf("\tUsage: tabu file\n");
		exit(1);
	}

	about("TABU");


	/* Set up graph */
	i = getrusage(RUSAGE_SELF,&tmp);
	seconds = tmp.ru_utime.tv_sec;
	microsecs = tmp.ru_utime.tv_usec;
	getgraph(argv[1]);
	i = getrusage(RUSAGE_SELF,&tmp);
	seconds = tmp.ru_utime.tv_sec-seconds;
	microsecs = tmp.ru_utime.tv_usec-microsecs;
	printf("GRAPH SETUP cpu = %5.2f\n",
		seconds+(microsecs/1000000.0));

	/* perform color search */

	/* Random initialization for search */
	printf("Enter seed for search randomization: ");
	scanf("%d",&seed);
	printf(" %d\n",seed);
	srandom(seed);

	i = getrusage(RUSAGE_SELF,&tmp);
	seconds = tmp.ru_utime.tv_sec;
	microsecs = tmp.ru_utime.tv_usec;
	colorsearch(argv[1]);
	i = getrusage(RUSAGE_SELF,&tmp);
	seconds = tmp.ru_utime.tv_sec-seconds;
	microsecs = tmp.ru_utime.tv_usec-microsecs;
	printf("Coloring time cpu = %5.2f\n",
		seconds+(microsecs/1000000.0));

	return(0);
}
예제 #4
0
파일: HPART.C 프로젝트: hal-elrod/HPart
int main (int argc,char *argv[])
{
double sigx = 0.0 ,sigx2 = 0.0, sig;
int nn,ne,cval = 0,num_attemp = 0,mincval = 32600;
int *igraph, *ma,*mb,*costa,oneflag = 1;  /* ,*check,x; */
nodez *alist;
indextype *sindex;
clock_t startt;
float matcht = 0,partt= 0,swapt = 0,bestt,ttime,curtime,run_time;

	periodt();
	startt = clock();
	srand(32063);
	getgraph(argc,argv,&igraph,&ma,&mb,&sindex,
		 &nn,&ne,&alist);
	cand_list_size = atoi(argv[4]);
	if(argv[3][0] == '4')
		big_flag = 0;
	run_time = atof(argv[5]);

	readgraph(ne,nn,igraph,alist);
	curtime = clock()/CLK_TCK;
	while (curtime < run_time * 2)
		{
		num_attemp++;
		remem(&costa,nn);
		switch (argv[2][0])
			{
			case '1': heappart(costa,nn,ma,mb,alist);
				  partt += periodt();
				  break;
			case '2': greedypart(costa,nn,ma,mb,sindex,alist);
				  partt += periodt();
				  break;
			default : exit(0);
			}
		switch (argv[3][0])
			{
			case '1': hswap(igraph,ma,mb,costa,nn,&cval,alist);
				  break;
			case '2': slightswap(igraph,ma,mb,costa,nn,&cval,alist);
				  break;
			case '3': slightestswap(igraph,ma,mb,costa,nn,&cval,alist);
				  break;
			case '4': aslightswap(ma,mb,costa,nn,&cval,alist);
				  break;
			default : hswap(igraph,ma,mb,costa,nn,&cval,alist);
			}
		swapt += periodt();
		free(costa);
		sig = cval;
		sigx += sig;
		sigx2 += (sig * sig);
		if (cval < mincval)
			{
			bestt = ((clock() - startt)/CLK_TCK);
			mincval = cval;
		/*	check = (int *) calloc (nn + 1,sizeof(int));
			for(x = 1; x<= nn / 2; x++)
				{
				check[ma[x]]++;
				check[mb[x]]++;
				}
			for (x = 1; x<= nn; x++)
				printf("\ncheck %d:  %d",x,check[x]);
			printf("\n\n");
			free(check);    */
			}
		cval = 0;
		curtime = clock()/CLK_TCK;
		if (!oneflag && curtime >= run_time)
			{
			oneflag++;
			ttime = ((clock() - startt)/CLK_TCK);
			printf("%d\n",mincval);
			printf("%f\n",ttime);
			printf("%f\n",bestt);
			printf("%f\n",matcht);
			printf("%f\n",partt);
			printf("%f\n",swapt);
			printf("%lg\n",sigx);
			printf("%lg\n",sigx2);
			printf("%d\n",num_attemp);
			}
		}    /* while */
        ttime = ((clock() - startt)/CLK_TCK);
	printf("min cost = %d\n",mincval);
//	printf("%f\n",ttime);
//	printf("%f\n",bestt);
//	printf("%f\n",matcht);
//	printf("%f\n",partt);
//	printf("%f\n",swapt);
//	printf("%lg\n",sigx);
//	printf("%lg\n",sigx2);
	printf("number of attempts = %d\n",num_attemp);
	free (alist);
	if (big_flag) free(igraph);
	free (ma); free(mb);
	free (sindex);
	return EXIT_SUCCESS;
}