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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? statview.cpp

?? 求解靜態(tài)TSP 的IGT算法
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
   return 0;
} 

void mapped()
{ int start,end,i,j,k,kt,t,disPlace,kDC,kC;  
  double temp_dis=0;
  i=rand()%xColony;
  j=rand()%xColony;
  if(i==j)return;
  if(dis_p[i]<dis_p[j])
  { t=i;i=j;j=t; }
  for(k=0;k<xCity;k++)temp[k]=colony[i][k];
  /////////////////

  start=rand()%xCity;
  end=(start+rand()%(xCity/2)+5)%xCity; //rand()%xCity;   //////////////////////
  kt=position(temp,colony[j][start]);                //部分映射一二位同
  disPlace=kt-start;
  if(temp[(kt+1)%xCity]==colony[j][(start+1)%xCity])
  { 
	if(start<end)
	 for(k=start;k<=end;k++)    
     { kDC=(k+disPlace)%xCity;
	   if(temp[kDC]==colony[j][k])continue;
	   t=position(temp,colony[j][k]);
	   temp[t]=temp[kDC];
       temp[kDC]=colony[j][k];
     }  
    else
	 for(k=start;k<=xCity+end;k++)    
     { kDC=(k+disPlace)%xCity; kC=k%xCity;
	   if(temp[kDC]==colony[j][kC])continue;
	   t=position(temp,colony[j][kC]);
	   temp[t]=temp[kDC];
       temp[kDC]=colony[j][kC];
     }  
  }
  else
  { if(temp[(kt-1+xCity)%xCity]==colony[j][(start+1)%xCity])
    { if(start<end)
	    for(k=kt=start;k<=end;k++,kt--)    
		{ kDC=(kt+xCity+disPlace)%xCity;
		  if(temp[kDC]==colony[j][k])continue;
	      t=position(temp,colony[j][k]);
	      temp[t]=temp[kDC];
          temp[kDC]=colony[j][k];
		} 
	  else
	    for(k=kt=start;k<=end+xCity;k++,kt--)    
		{ kDC=(kt+xCity+disPlace)%xCity; kC=k%xCity;
		  if(temp[kDC]==colony[j][kC])continue;
	      t=position(temp,colony[j][kC]);
	      temp[t]=temp[kDC];
          temp[kDC]=colony[j][kC];
		} 
    }   
    else return;
  } 

  for(j=0;j<xCity-1;j++)
    temp_dis=temp_dis+city_dis[temp[j]][temp[j+1]];
  temp_dis=temp_dis+city_dis[temp[0]][temp[xCity-1]];
  dis_p[i]=temp_dis;
  /*********/
  tempTest(i);
}

//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
void LastCP()
{ int i,k,j1,j2,k1,k2,turn,length,sign[CITY]; double dc,temp_dis=0,change=0;

  for(k=0;k<xCity;k++)temp[k]=colony[ibest][k]; 
  for(turn=0;turn<xCity/10;turn++)      //可改
  {   for(k1=0;k1<xCity-1;k1+=rand()%4+1)     // rand()%9+1可改
      {  for(i=1;i<xColony;i++)
	     {  if(i==ibest)continue;
		    for(k=0;k<xCity;k++)sign[k]=0;
	        j1=position(colony[i],temp[k1]);
			k2=k1;j2=j1;
			for(length=0;length<xCity/3+10;length++)    // 70 xCity/3+10可改
			{  k2=(++k2)%xCity; j2=(++j2)%xCity; 
			   sign[temp[k2]]=1;
			   if(temp[k2]==colony[i][j2] && length>5)break;  // 5 xCity/10可改
			}
            if(temp[k2]!=colony[i][j2])continue;
            k=j1;
            do k=(++k)%xCity;
			while (sign[colony[i][k]]==1);
            if( (j1<j2 && k<j2) || (j1>j2 && (k>j1 || k<j2)) )continue;  
		    temp_dis=path(temp,k1,k2);
		    dc=path(colony[i],j1,j2);
		    if(temp_dis>dc)
			{  for(k=1;k<=length;k++) 
		         temp[(k1+k)%xCity]=colony[i][(j1+k)%xCity];
			   change+=dc-temp_dis;
			}  
	     }
     } 
  }
  if(change<0)
  {  for(k=0;k<xCity;k++)colony[ibest][k]=temp[k]; 
     dis_p[ibest]+=change;
	 sumbest=dis_p[ibest];

  }
}			

double path(int tmp[],int k1,int k2)
{ 	int j,t1,t2; double temp_dis=0;		
    if(k2>k1) 
		for(j=k1;j<k2;j++)
			temp_dis+=city_dis[tmp[j]][tmp[j+1]];
    else      
		for(j=k1;j<k2+xCity;j++)
		{   t1=j%xCity; t2=(j+1)%xCity;
		    temp_dis+=city_dis[tmp[t1]][tmp[t2]];
		}
	return temp_dis;
}

void CSTATView::Draw(CDC *pDC)
{ int i,j;

for(i=0;i<xCity;i++)
{  disDraw[i].x=(int)cityXY[i][0];
   disDraw[i].y=(int)cityXY[i][1];
 }
  
//int h=400;int w=600;
RECT rectClient;
GetClientRect(&rectClient);
//-------------------
int h=rectClient.bottom-rectClient.top;//求出視圖的坐標(biāo)范圍
int w=rectClient.right-rectClient.left;

int minx,maxx,miny,maxy;
for(j=1,miny=disDraw[0].y,maxy=disDraw[0].y,minx=disDraw[0].x,maxx=disDraw[0].x;j<xCity;j++)
{
if(disDraw[j].x>maxx)maxx=disDraw[j].x;
if(disDraw[j].y>maxy)maxy=disDraw[j].y;
if(disDraw[j].x<minx)minx=disDraw[j].x;
if(disDraw[j].y<miny)miny=disDraw[j].y;
}

//___________________________________________
//disDraw為unsignt 型
for(int ha=0;ha<xCity;ha++)//-fminx  -fminy
{  disDraw[ha].x-=minx; //cityXY[ha][0]-=minx;
   disDraw[ha].y-=miny; //cityXY[ha][1]-=miny;
}
//____________________________________________

double  kx,ky,k;
kx=(float)(w)/(maxx-minx);ky=(float)(h)/(maxy-miny);
if(kx>ky)k=ky*0.8;
else k=kx*0.8;

//居中
int dx,dy; //int dx=100;dy=0;
dx=(int)(w-(maxx-minx)*k)/2;
dy=(int)(h-(maxy-miny)*k)/2;

for(i=0;i<xCity;i++){disDraw[i].x=(int)(k*(disDraw[i].x))+dx;disDraw[i].y=(int)(k*(disDraw[i].y))+dy;}//將圖形坐標(biāo)按比例縮放

//畫點
CPen pen( PS_SOLID , 2, RGB(0,0,0) ); //設(shè)置畫筆
pDC->SelectObject(&pen );               //設(shè)置畫筆
for(i=0;i<xCity;i++)pDC->Ellipse(disDraw[i].x-2,disDraw[i].y-2,disDraw[i].x+2,disDraw[i].y+2);
//i=0;pDC->Ellipse(s[i].x-2,s[i].y-2,s[i].x+2,s[i].y+2);
pDC->SelectStockObject(BLACK_PEN );    //還原畫筆
pen.DeleteObject();

i=0;//畫線
pDC->MoveTo(disDraw[colony[ibest][i]].x,disDraw[colony[ibest][i]].y);
for(i=1;i<xCity;i++)
    pDC->LineTo(disDraw[colony[ibest][i]].x,disDraw[colony[ibest][i]].y);
pDC->LineTo(disDraw[colony[ibest][0]].x,disDraw[colony[ibest][0]].y);

CString str1,str2,str3;//寫最短距離
str1.Format("distance : %f",sumbest);
pDC->TextOut(10,5,str1);
str2.Format("       time : %.2f s",(double)(timeNow-timeStart)/CLOCKS_PER_SEC);
pDC->TextOut(10,25,str2);

if(once==1){once=0;ltimepast=clock();}
str3.Format("%f",(double)(ltimepast-timeStart)/CLOCKS_PER_SEC  );
pDC->TextOut(10,-20,"    ");

if(flagRun==1)Main();

}

void CSTATView::OnMenuRun() 
{
	// TODO: Add your command handler code here

	if(strFilePath=="")
	{ flagRun=0;
	   AfxMessageBox("請打開數(shù)據(jù)源");
	  return;
	}
	flagRun=1;
	initialize();
    Invalidate(TRUE);

}

void CSTATView::OnMenuPara() 
{
	Node node;

	CDlgPara dlg;

    dlg.m_xColony=xColony;	
    dlg.m_xCity=xCity;
	dlg.m_maxGen=maxGen;
	dlg.m_NOCHANGE=NOCHANGE;
	dlg.m_probab1=probab1;
	dlg.m_probab2=probab2;
    dlg.m_edgeSpeed=edgeSpeed;	
	
	
	dlg.setVar(&node);

    if(dlg.DoModal()==IDCANCEL)return;
    UpdateData(FALSE);
	
	xColony=node.xColony;	
    xCity=node.xCity;
	maxGen=node.maxGen;
	NOCHANGE=node.NOCHANGE;
	probab1=node.probab1;
	probab2=node.probab2;
    edgeSpeed=node.edgeSpeed;

}

void CSTATView::OnFileOpen() 
{
 	// TODO: Add your command handler code here
    // flagOpen=1;
	char *sz="TSP Files(*.tsp)|*.tsp|Text Files(*.txt)|*.txt|All File(*.*)|*.*|";

	CFileDialog file(TRUE,"txt",TEXT(""),
		OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,sz);
    int response=file.DoModal();
    if(response==IDCANCEL)return;

    strFilePath=file.GetPathName();
	
	//int number=strFilePath.GetLength();
	//for(int i=0;i<number;i++)filePath[i]=strFilePath.GetAt(i);
    //AfxMessageBox(filePath);
	//if((fp=fopen(filePath,"r"))==NULL)
  FILE *fp;
    if((fp=fopen(file.GetPathName(),"r"))==NULL)
	{
		AfxMessageBox("無法打開文件!");
		strFilePath="";
        return;
	}

  CString tmp;
  int flagOpen=0;
  while(1)
  {  fscanf(fp,"%s",tmp);
     if(tmp=="EOF" || feof(fp))break;
     if(tmp=="DIMENSION" && flagOpen==0) 
	 {   fscanf(fp,"%s",tmp);
		 if(tmp==":")
		 {	 fscanf(fp,"%d",&xCity); 
		     flagOpen=1;
		 }
	 }
     if(tmp=="DIMENSION:" && flagOpen==0)
	 {   fscanf(fp,"%d",&xCity);  
		 flagOpen=1; 
	 }
     if(tmp=="NODE_COORD_SECTION" && flagOpen==1)
	 { 	 flagOpen=2; 
		 break; 
	 }
  }
  //AfxMessageBox("文件類去去瞧瞧去!");
  if(flagOpen!=2)
  {     AfxMessageBox("文件類型錯誤!");
        strFilePath="";
        return;
  }
  int j;  double x,y;
  for(j=0;j<xCity;j++)      // initialize cityXY[][]  
  { if(feof(fp))break;
	fscanf(fp,"%*d%Lf%Lf",&x,&y);
    cityXY[j][0]=x;
    cityXY[j][1]=y;
  }
  if(j<xCity)
  { AfxMessageBox("文件數(shù)據(jù)錯誤!");
    return;
  }
  fclose(fp);
  probab1=0.02;

}

void CSTATView::OnMenuShow() 
{
	// TODO: Add your command handler code here
	show=(show+1)%2;
}

void CSTATView::OnMenuPause() 
{
	// TODO: Add your command handler code here
    static int pau=0;
    if(pau==0)	flagRun=2;
    else  flagRun=1;
	pau=(pau+1)%2;
    Invalidate();
}

void CSTATView::OnMenuStop() 
{
	// TODO: Add your command handler code here
	flagRun=0;
	strFilePath="";
	Invalidate(TRUE);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆国产欧美一区二区三区| 国产aⅴ综合色| 九九九久久久精品| 色94色欧美sute亚洲13| 在线视频中文字幕一区二区| 韩国av一区二区三区在线观看| 国产精品亚洲视频| 精品污污网站免费看| 国产欧美一区二区精品仙草咪 | 色吧成人激情小说| 久久久久88色偷偷免费| 三级亚洲高清视频| 成人蜜臀av电影| 亚洲欧美日韩国产综合| 国产成人av一区二区三区在线| 欧美一区二区在线不卡| 亚洲一区影音先锋| 日本久久精品电影| 亚洲丝袜美腿综合| www.亚洲在线| 亚洲国产精品高清| 国产成a人亚洲精品| 2017欧美狠狠色| 亚洲欧美日韩综合aⅴ视频| 热久久国产精品| 欧美色爱综合网| 香蕉久久夜色精品国产使用方法| 一本色道亚洲精品aⅴ| 成人欧美一区二区三区小说 | 日本一区二区三区高清不卡| 久久超碰97人人做人人爱| 欧美一区二区在线免费播放| 日韩黄色在线观看| 日韩视频在线永久播放| 免费人成黄页网站在线一区二区| 91精品国产综合久久婷婷香蕉 | 亚洲欧美在线观看| 99久久精品国产一区二区三区| 国产精品久久久久永久免费观看| 成人免费三级在线| 亚洲三级电影网站| 91久久精品日日躁夜夜躁欧美| 一区二区三区在线视频观看58| 欧洲一区在线电影| 日韩av中文字幕一区二区| 日韩欧美色综合| 国产一区二区三区观看| 国产精品乱码久久久久久| 99re亚洲国产精品| 午夜日韩在线电影| 久久综合成人精品亚洲另类欧美| 国产美女主播视频一区| 中文字幕视频一区| 欧美日韩你懂得| 国产综合一区二区| 1区2区3区欧美| 欧美一区二区成人6969| 国产成人精品影视| 一区二区高清视频在线观看| 日韩视频一区二区在线观看| 国产成人精品网址| 亚洲成人激情自拍| 久久精品视频一区二区三区| 色呦呦一区二区三区| 伦理电影国产精品| 亚洲欧美一区二区在线观看| 欧美美女网站色| 国产成人免费av在线| 亚洲午夜精品久久久久久久久| 欧美日韩电影在线播放| 国产成人自拍网| 亚洲福利电影网| 精品国产一区二区三区四区四| 白白色 亚洲乱淫| 日韩av一级电影| 中文字幕一区免费在线观看| 日韩一区二区视频| 色婷婷久久久亚洲一区二区三区 | 欧美精品乱码久久久久久| 久久精品国产一区二区三区免费看| 亚洲va国产va欧美va观看| 精品国产3级a| 欧美日韩不卡视频| 成人午夜碰碰视频| 久久国产精品99久久久久久老狼| 亚洲丝袜自拍清纯另类| 久久精品视频一区| 欧美一区二区三区免费大片| 成人av手机在线观看| 久久精品国产亚洲5555| 午夜激情综合网| 亚洲免费av网站| 中文字幕亚洲区| 国产亚洲欧洲一区高清在线观看| 欧美日韩精品久久久| 91视频在线观看| 不卡av免费在线观看| 国产麻豆日韩欧美久久| 日本视频免费一区| 亚洲综合图片区| 亚洲三级免费电影| 中文字幕在线一区| 国产精品美女久久久久久久网站| 欧美精品一区二区蜜臀亚洲| 日韩欧美一级特黄在线播放| 欧美日韩午夜精品| 欧美日韩国产综合视频在线观看| 色欧美日韩亚洲| 一本大道综合伊人精品热热| 成年人国产精品| 99久久婷婷国产| av成人老司机| 日本韩国精品一区二区在线观看| 成人av动漫在线| 91亚洲国产成人精品一区二三| 99视频精品在线| 色8久久精品久久久久久蜜| 在线视频国产一区| 欧美日韩视频在线一区二区| 欧美区在线观看| 日韩一级免费观看| 26uuu色噜噜精品一区二区| 久久综合久久鬼色| 欧美国产精品一区二区| 中文字幕欧美一| 夜夜揉揉日日人人青青一国产精品 | 久久久久97国产精华液好用吗| 欧美精品一区二区三区蜜桃视频| 久久久久久久久97黄色工厂| 欧美韩国日本一区| 亚洲视频一区二区在线| 亚洲一二三专区| 日本在线不卡一区| 国产一区在线不卡| 国产999精品久久久久久绿帽| 成人丝袜18视频在线观看| 色婷婷av一区二区三区之一色屋| 欧美日韩国产色站一区二区三区| 日韩欧美一级特黄在线播放| 国产欧美日韩视频一区二区 | 久久久久久久久伊人| 最新不卡av在线| 日韩国产精品久久久| 国产激情视频一区二区在线观看| 99久久99久久久精品齐齐| 91精品国产丝袜白色高跟鞋| 久久综合丝袜日本网| 亚洲欧美日韩国产中文在线| 视频一区欧美精品| 懂色中文一区二区在线播放| 欧美日韩亚洲综合一区| 久久麻豆一区二区| 一级特黄大欧美久久久| 国内成+人亚洲+欧美+综合在线 | 国产一区二区0| 91久久精品一区二区三| 精品精品国产高清a毛片牛牛| 亚洲私人黄色宅男| 黄页网站大全一区二区| 在线一区二区三区四区| 久久一二三国产| 午夜伊人狠狠久久| 成人av在线播放网站| 国产精品亲子乱子伦xxxx裸| 国产一区二区三区免费看| 北岛玲一区二区三区四区| 777奇米四色成人影色区| 中文无字幕一区二区三区| 日韩中文字幕91| 91蜜桃免费观看视频| 2020国产精品久久精品美国| 午夜精品久久久久久久| 99re6这里只有精品视频在线观看| 精品日韩99亚洲| 亚洲高清免费视频| 色综合一区二区| 中文字幕乱码日本亚洲一区二区 | 色视频一区二区| 国产精品久久久久影院| 狠狠狠色丁香婷婷综合激情| 91精品国产综合久久小美女| 一区二区三区在线免费播放| www.欧美日韩| 国产区在线观看成人精品 | 99国内精品久久| 日本一区二区三区在线观看| 精一区二区三区| 日韩一区二区三区视频在线观看| 精品一区二区三区在线视频| 欧美性色黄大片| 亚洲精品中文字幕乱码三区 | 麻豆91精品视频| 精品视频在线免费观看| 亚洲日本中文字幕区| 91丨九色丨蝌蚪富婆spa| 国产精品日日摸夜夜摸av| 丁香亚洲综合激情啪啪综合| 欧美激情一区不卡| www.久久久久久久久| 一区二区三区中文免费|