亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jitter.c

?? Lin-Kernighan heuristic for the TSP and minimum weight perfect matching
?? C
字號:
#define min(X,Y)((X)<(Y)?(X):(Y))#define max(X,Y)((X)>(Y)?(X):(Y)) \/*2:*/#line 100 "./jitter.w"#line 101 "./jitter.w"const char*prog_name= "jitter";const char*jitter_rcs_id= "$Id: jitter.w,v 1.10 1998/08/28 18:53:22 neto Exp neto $";#include <config.h>#include "lkconfig.h"/*6:*/#line 261 "./jitter.w"#define _POSIX_C_SOURCE 2   #include <stddef.h>#include <stdlib.h>#include <stdio.h>#if HAVE_UNISTD_H#include <unistd.h>#endif/*:6*/#line 106 "./jitter.w"/*4:*/#line 205 "./jitter.w"#include "prng.h"#include "error.h"/*:4*//*7:*/#line 275 "./jitter.w"#if HAVE_GETOPT#define FIXINCLUDES_NEED_GETOPT#include "fixincludes.h"#undef FIXINCLUDES_NEED_GETOPT#endif /*:7*//*12:*/#line 311 "./jitter.w"#include "length.h"#include "read.h"/*:12*//*16:*/#line 356 "./jitter.w"#include "dsort.h"/*:16*//*20:*/#line 375 "./jitter.w"#include "pool.h"#include "kdtree.h"#include "length.h"#include "decluster.h"/*:20*//*25:*/#line 453 "./jitter.w"#include "memory.h"/*:25*/#line 107 "./jitter.w"/*9:*/#line 291 "./jitter.w"typedef enum{BENCHMARK_MIN,BENCHMARK_AVG,BENCHMARK_MAX}benchmark_t;typedef enum{DOMAIN_LOCAL,DOMAIN_GLOBAL}domain_t;/*:9*//*27:*/#line 461 "./jitter.w"typedef struct nbhd_link_s{int neighbour;struct nbhd_link_s*next;}nbhd_link_t;/*:27*/#line 108 "./jitter.w"/*13:*/#line 318 "./jitter.w"int noround= 1;/*:13*//*15:*/#line 351 "./jitter.w"int verbose= 100;void(*sort)(void*a,size_t n,size_t es,int(*cmp)(const void*,const void*));/*:15*/#line 110 "./jitter.w"/*8:*/#line 283 "./jitter.w"static long seed;static prng_kind_t generator_kind;static domain_t domain;static benchmark_t benchmark_kind;static double deviation_factor;/*:8*//*11:*/#line 306 "./jitter.w"static tsp_instance_t*tsp_instance;static int n;/*:11*//*18:*/#line 364 "./jitter.w"static decluster_tree_t*mst= NULL;static double mst_len;/*:18*//*22:*/#line 412 "./jitter.w"static double global_benchmark_len= -1.0;/*:22*//*26:*/#line 457 "./jitter.w"static nbhd_link_t*nbhd_link,**nbhd= NULL;/*:26*//*29:*/#line 502 "./jitter.w"static double*local_benchmark_len= NULL;/*:29*//*33:*/#line 544 "./jitter.w"static prng_t*jitter_prng;/*:33*/#line 111 "./jitter.w"/*5:*/#line 213 "./jitter.w"void usage(char**argv);voidusage(char**argv){printf("%s (LK %s)\n",prog_name,VERSION_STRING);printf("Add jitter to TSPLIB instances.\n""\nCopyright (C) 1997 David M. Neto\n");printf("%s comes with NO WARRANTY, to the extent permitted by law.\n",prog_name);printf("You may redistribute and/or modify copies of %s under the terms of the\n""GNU General Public License, version 2 or any later version.\n""For more information about these matters, see the file named COPYING.\n",prog_name);printf("\n""Usage: %s [options]\n",argv[0]);printf(" -h           : Output this help and quit\n"" -R <gen-alg> : Use the named random number genarator.\n""                <gen-alg> is one of:");{int i;for(i= 0;i<PRNG_NUM_KINDS;i++){printf(" %s",prng_name_from_kind(i));}}printf("\n"" -s <seed>    : Use integer <seed> as the random number seed\n"" -g           : Make all edges in minimum spanning tree the\n""                domain edges for each node\n"" -l           : Make all edges incident upon node u in a minimum\n""                spanning tree for the graph be domain edges for u\n""                (not well defined, I know)\n""                -l is the default\n"" -m           : <benchmark-len> is minimum of domain edge lengths\n"" -a           : <benchmark-len> is average (mean) of domain edge lengths.\n""                This is the default.\n"" -M           : <benchmark-len> is maximum of domain edge lengths\n"" -d <f>       : Signed jitter distance is normally distributed with mean\n""                0 and standard deviation <f>*<benchmark-len>\n""                Default <f> is 0.125\n");}/*:5*/#line 112 "./jitter.w"int main(int argc,char**argv){/*17:*/#line 360 "./jitter.w"sort= dsort;/*:17*/#line 117 "./jitter.w"/*3:*/#line 173 "./jitter.w"seed= 42L;generator_kind= PRNG_DEFAULT;domain= DOMAIN_GLOBAL;benchmark_kind= BENCHMARK_AVG;deviation_factor= 1.0/8;#if HAVE_GETOPTwhile(1){extern char*optarg;extern int getopt(int,char*const*,const char*);const int opt= getopt(argc,argv,"s:hR:glmaMd:");if(opt==EOF)break;switch(opt){case's':seed= atol(optarg);break;case'h':usage(argv);exit(0);break;case'R':generator_kind= prng_kind_from_name(optarg);break;case'g':domain= DOMAIN_GLOBAL;break;case'l':domain= DOMAIN_LOCAL;break;case'm':benchmark_kind= BENCHMARK_MIN;break;case'a':benchmark_kind= BENCHMARK_AVG;break;case'M':benchmark_kind= BENCHMARK_MAX;break;case'd':deviation_factor= atof(optarg);break;case':':errorif(1,"Some option is missing an argument");break;case'?':usage(argv);errorif(1,"Unrecognized option");break;default:errorif(1,"getopt returned character 0%o",opt);}}#endif /*:3*/#line 118 "./jitter.w"/*10:*/#line 301 "./jitter.w"tsp_instance= read_tsp_file(stdin,NULL,0);n= tsp_instance->n;/*:10*/#line 119 "./jitter.w"/*14:*/#line 328 "./jitter.w"E2_create(tsp_instance);mst= decluster_setup(n);mst_len= decluster_mst(tsp_instance,mst);/*35:*/#line 579 "./jitter.w"if(verbose>=1000){int i;double sum;decluster_edge_t*edge= mst->edge;printf("mst len is %f\n",mst_len);printf("mst has %d edges\n",mst->n);for(i= 0,sum= 0.0;i<mst->n;i++){printf(" cost(%d,%d)="length_t_native_spec"\n",i,(i+1)%n,length_t_native_pcast(cost(i,(i+1)%n)));printf("   cost(%d,%d)=%f\n",edge[i].city[0],edge[i].city[1],(double)edge[i].cost);sum+= edge[i].cost;}printf("mst computed len is %f\n",mst_len);}/*:35*/#line 332 "./jitter.w"errorif(n!=1+mst->n,"Wrong number of edges in MST: %d instead of %d",mst->n,n-1);switch(domain){case DOMAIN_GLOBAL:/*21:*/#line 388 "./jitter.w"switch(benchmark_kind){case BENCHMARK_AVG:global_benchmark_len= mst_len/mst->n;break;case BENCHMARK_MIN:{int i;global_benchmark_len= mst->edge[0].cost;for(i= 1;i<mst->n;i++){global_benchmark_len= min(global_benchmark_len,mst->edge[i].cost);}}break;case BENCHMARK_MAX:{int i;global_benchmark_len= mst->edge[0].cost;for(i= 1;i<mst->n;i++){global_benchmark_len= max(global_benchmark_len,mst->edge[i].cost);}}break;default:errorif(1,"Bug!");}/*:21*/#line 337 "./jitter.w"break;case DOMAIN_LOCAL:/*23:*/#line 426 "./jitter.w"{int i,next_nbhd_link;nbhd= new_arr_of(nbhd_link_t*,n);nbhd_link= new_arr_of(nbhd_link_t,2*mst->n);for(i= 0;i<n;i++)nbhd[i]= NULL;next_nbhd_link= 0;for(i= 0;i<n;i++){const int u= mst->edge[i].city[0];const int v= mst->edge[i].city[1];nbhd_link[next_nbhd_link].next= nbhd[u];nbhd_link[next_nbhd_link+1].next= nbhd[v];nbhd[u]= &nbhd_link[next_nbhd_link];nbhd[v]= &nbhd_link[next_nbhd_link+1];next_nbhd_link+= 2;nbhd[u]->neighbour= v;nbhd[v]->neighbour= u;}errorif(next_nbhd_link!=2*mst->n,"Bug!");}/*:23*/#line 339 "./jitter.w"/*28:*/#line 472 "./jitter.w"local_benchmark_len= new_arr_of(double,n);{int i;nbhd_link_t*nb;switch(benchmark_kind){case BENCHMARK_AVG:for(i= 0;i<n;i++){double sum= 0.0;int count= 0;for(nb= nbhd[i];nb;nb= nb->next){sum+= cost(i,nb->neighbour);count++;}local_benchmark_len[i]= sum/count;}break;case BENCHMARK_MIN:for(i= 0;i<n;i++){double len= cost(i,nbhd[i]->neighbour);for(nb= nbhd[i];nb;nb= nb->next){len= min(len,cost(i,nb->neighbour));}local_benchmark_len[i]= len;}break;case BENCHMARK_MAX:for(i= 0;i<n;i++){double len= cost(i,nbhd[i]->neighbour);for(nb= nbhd[i];nb;nb= nb->next){len= max(len,cost(i,nb->neighbour));}local_benchmark_len[i]= len;}break;}}/*:28*/#line 340 "./jitter.w"break;default:errorif(1,"Bug!");}/*:14*/#line 120 "./jitter.w"/*31:*/#line 526 "./jitter.w"/*32:*/#line 540 "./jitter.w"jitter_prng= prng_new(generator_kind,seed);/*:32*/#line 527 "./jitter.w"{int i;for(i= 0;i<n;i++){const double len= (domain==DOMAIN_LOCAL?local_benchmark_len[i]:global_benchmark_len);const double stddev= len*deviation_factor;const double dx= prng_normal(jitter_prng,0.0,stddev);const double dy= prng_normal(jitter_prng,0.0,stddev);tsp_instance->coord[i].x[0]+= dx;tsp_instance->coord[i].x[1]+= dy;}}/*:31*/#line 121 "./jitter.w"/*34:*/#line 555 "./jitter.w"{char*old_comment= tsp_instance->comment;char*new_comment= new_arr_of(char,200+strlen(old_comment));sprintf(new_comment,"%s | %s -R %s -s %ld %s %s -d %g",old_comment,prog_name,prng_name_from_kind((int)generator_kind),seed,(domain==DOMAIN_LOCAL?"-l":"-g"),(benchmark_kind==BENCHMARK_MIN?"-m":(benchmark_kind==BENCHMARK_AVG?"-a":(benchmark_kind==BENCHMARK_MAX?"-m":(errorif(1,"Bug!"),"unknown")))),deviation_factor);free_mem(old_comment);tsp_instance->comment= new_comment;write_tsp_file(tsp_instance,stdout);}/*:34*/#line 122 "./jitter.w"/*19:*/#line 369 "./jitter.w"E2_destroy();decluster_cleanup_tree(mst);decluster_cleanup();/*:19*//*24:*/#line 448 "./jitter.w"free_mem(nbhd);free_mem(nbhd_link);/*:24*//*30:*/#line 506 "./jitter.w"free_mem(local_benchmark_len);/*:30*/#line 123 "./jitter.w"return 0;}/*:2*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久这里都是精品| 狠狠久久亚洲欧美| 精品在线你懂的| 欧日韩精品视频| 国产精品色哟哟网站| 蜜桃精品在线观看| 精品婷婷伊人一区三区三| 日本一区二区三区四区在线视频| 午夜精品在线看| 91免费观看国产| 久久久久久久久一| 免费成人你懂的| 欧美日韩国产大片| 亚洲精品欧美激情| av在线综合网| 中文一区二区在线观看| 久久精品99国产精品| 欧美年轻男男videosbes| 一区二区免费视频| 欧美在线色视频| 亚洲色图色小说| 91蜜桃在线免费视频| 中文字幕一区二区三区色视频| 国产一区视频网站| 久久综合一区二区| 精久久久久久久久久久| 精品欧美一区二区三区精品久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩综合在线| 日韩精品一级二级 | 国产精品一区免费视频| 日韩一区二区三区视频在线观看| 无码av免费一区二区三区试看| 在线观看一区二区视频| 亚洲bt欧美bt精品777| 欧美日韩一级片在线观看| 亚洲国产精品精华液网站| 欧美日韩中文一区| 日韩国产高清影视| 欧美白人最猛性xxxxx69交| 精品制服美女丁香| 国产精品亲子乱子伦xxxx裸| 成人污视频在线观看| 亚洲欧洲av在线| 91成人看片片| 日本一不卡视频| 精品奇米国产一区二区三区| 国产不卡视频一区二区三区| 综合自拍亚洲综合图不卡区| 在线欧美日韩精品| 日本大胆欧美人术艺术动态| 精品国精品自拍自在线| 成人av网址在线| 亚洲一二三四在线观看| 欧美一级精品大片| 国产寡妇亲子伦一区二区| 国产精品初高中害羞小美女文| 色婷婷久久久亚洲一区二区三区 | 亚洲天堂av一区| 日本道色综合久久| 日韩在线一区二区| 国产三级一区二区三区| 色综合天天在线| 蜜臀久久99精品久久久久久9| 国产日本欧洲亚洲| 欧美日韩一级视频| 成人av免费网站| 青青草精品视频| 综合自拍亚洲综合图不卡区| 日韩欧美综合一区| 97精品超碰一区二区三区| 日韩国产成人精品| 亚洲欧美另类图片小说| 欧美一级精品在线| 欧美曰成人黄网| 国产一级精品在线| 五月天欧美精品| 亚洲三级电影网站| 亚洲精品一区二区三区蜜桃下载| 色老头久久综合| 国产精品一区二区三区四区| 日产国产高清一区二区三区| 中文字幕在线不卡| 国产午夜精品一区二区三区嫩草 | 日本韩国一区二区三区视频| 久国产精品韩国三级视频| 一区二区三区精品视频| 亚洲黄色性网站| 久久久精品免费免费| 91精品国产一区二区三区| 99久久久久久| 成人丝袜高跟foot| 精品亚洲aⅴ乱码一区二区三区| 亚洲欧美一区二区久久| 国产精品久久久久影院| 久久影院视频免费| 欧美精品一区二区在线播放| 欧美日本韩国一区| 欧美日韩日日骚| 欧美日韩一区小说| 在线这里只有精品| 一本色道a无线码一区v| caoporn国产精品| 丁香一区二区三区| 成人动漫一区二区| 成人av资源网站| 成人美女视频在线观看| 国产精品亚洲专一区二区三区| 三级久久三级久久| 日韩黄色片在线观看| 偷拍亚洲欧洲综合| 午夜精品福利一区二区三区av| 一区二区不卡在线播放| 夜夜揉揉日日人人青青一国产精品| 亚洲人成影院在线观看| 亚洲男女一区二区三区| 亚洲男人的天堂在线aⅴ视频| 亚洲老司机在线| 亚洲国产一区二区在线播放| 亚洲gay无套男同| 久久精品国产999大香线蕉| 国产中文字幕一区| 国产精品12区| aaa欧美色吧激情视频| 91在线观看污| 欧美日韩国产综合一区二区| 欧美日韩免费电影| 日韩亚洲欧美在线| 久久久久久一二三区| 亚洲色图20p| 亚洲成av人片在线| 精品一区二区三区视频在线观看 | 91老司机福利 在线| 欧美自拍偷拍午夜视频| 777午夜精品视频在线播放| 欧美www视频| 国产精品少妇自拍| 亚洲r级在线视频| 精品一区二区国语对白| 成人免费毛片app| 在线亚洲人成电影网站色www| 欧美日韩国产综合一区二区| 精品国产免费人成电影在线观看四季 | 亚洲综合色区另类av| 免费的成人av| 99久久精品国产网站| 51久久夜色精品国产麻豆| 久久久九九九九| 亚洲国产一区二区三区青草影视| 蜜臀精品久久久久久蜜臀 | 国产又粗又猛又爽又黄91精品| 福利视频网站一区二区三区| 在线看日韩精品电影| 久久久蜜桃精品| 亚洲国产日韩综合久久精品| 国产成人精品免费在线| 欧美三电影在线| 欧美激情一区二区三区蜜桃视频| 亚洲二区视频在线| 成人a级免费电影| 精品久久国产97色综合| 亚洲国产成人av网| 成人18精品视频| 精品久久久久久久久久久久久久久久久| 国产精品色婷婷| 精品无人区卡一卡二卡三乱码免费卡 | 欧美日韩不卡在线| 中文字幕亚洲一区二区va在线| 免费在线成人网| 欧美系列一区二区| 中文子幕无线码一区tr| 久久精品国产在热久久| 欧美三片在线视频观看| 国产精品久久二区二区| 国产成人鲁色资源国产91色综| 欧美久久一二三四区| 亚洲免费资源在线播放| 成人av在线资源网| 国产精品三级视频| 国产精品77777| 日韩精品专区在线| 日本视频免费一区| 欧美日韩免费观看一区三区| 亚洲免费观看视频| 91麻豆免费看| 亚洲男人天堂av| 色综合久久久久久久久久久| 国产日本欧美一区二区| 国产精品18久久久久| 精品国产一区二区三区久久久蜜月| 亚洲一区二区三区中文字幕在线| 99re亚洲国产精品| 中文字幕乱码一区二区免费| 粉嫩在线一区二区三区视频| 国产亚洲欧洲997久久综合| 国产一区三区三区| 欧美精品一区二区三区视频| 激情综合网av| 久久久久久久综合色一本| 国内偷窥港台综合视频在线播放|