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

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

?? proj2.cpp

?? Simulated Annealing SA Hill Climbing HC Local Beam Search LBS Genetic Algorithm GA
?? CPP
字號:
// By Youhanna Parvizinejad 83405169  + Keyvan Nakhaiee + mehdi farahmandfar

#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include"func.cpp"

//-------------------------------------------------------------
class node{
	public:
		double x,y,z,h;
		int p;
		node();
		void setval(double ,double ,double ,double );
		void setmax();
};


//-------------------- Initializing a node ---------------------------
node::node(){
	x=y=z=h=0;
}


//--------------------- Set Values for a node ------------------
void node::setval(double x1,double y1,double z1,double h1)
{
	x=x1;
	y=y1;
	z=z1;
	h=h1;
}

//-------------------------------------------------------------
void node::setmax(){
	h=10000000;
}


//-------------------------------------------------------------
inline int putneighb(char *);
int calculat();
int calculat2();
void calc3(int);
int beam(int);
int genet(int);


//-------------------------------------------------------------
const int ky=2;
double d,dnu[ky],dnu2[ky],dnt,*dnum=dnu,*dnum2=dnu2,*dnum3;
int worse=0,best=0,sf;
node point1,loc,neighb,nod1[ky],nod2[ky],*node1=nod1,*node2=nod2,*node3;


//-------------------------------------------------------------

inline void fixit(){ 
	int cf1=1,cf2=1;
	if(loc.h<0)
		cf2=-1;
	if(point1.h<0)
		cf1=-1;
	if((cf2*loc.h)<(cf1*point1.h)){
		point1.setval(loc.x,loc.y,loc.z,loc.h);
	}
}


//-------------------------------------------------------------

inline long int getn(){
	long int n;
	cout<<"Enter Number Of Try"<<endl;
	cin>>n;
	cout<<endl;
	return n;
}


//-------------------------------------------------------------
inline void prt(){
	cout<<"-----------------------------------------------"<<endl;
}

//-------------------------------------------------------------


inline void swapn(){
	node3=node1;
	node1=node2;
	node2=node3;
}


//-------------------------------------------------------------

inline void swapd(){
	dnum3=dnum;
	dnum=dnum2;
	dnum2=dnum3;
}
//-------------------------------------------------------------

inline void reset(){
	loc.setval(((double)(1000-rand()%2000))/10,((double)(1000-rand()%2000))/10,((double)(1000-rand()%2000))/10,0);
	loc.h=funcVal(loc.x,loc.y,loc.z);
}


//-------------------------------------------------------------

inline void analys(){
	for (int i=0;i<ky;i++){
		if((node2[i].h)>(node2[worse].h)){
			worse=i;
		}
		if((node2[i].h)<(node2[best].h)){
			best=i;
		}
	}
}


//-------------------------------------------------------------


inline int analys1(){
	for (int i=0;i<ky;i++){
		if(node1[i].h>(node1[worse].h)){
			worse=i;
		}
		if((node1[i].h)<(node1[best].h)){
			best=i;
		}
	}
	return best;
}


//-------------------------------------------------------------

inline void restart(int i){
	node1[i].setval(((double)(1000-rand()%2000))/10,((double)(1000-rand()%2000))/10,((double)(1000-rand()%2000))/10,0);
	node1[i].h=funcVal(node1[i].x,node1[i].y,node1[i].z);
	if ((node1[i].h)<0)
		node1[i].h*=-1;
}

//-------------------------------------------------------------


void main(int argc,char *argv[]){
	long int  n=0,m=0;
	if(argc!=2){
		cout<<"Invalid Number of Line Command "<<endl;
		getch();
		exit(1);
	}   
	if((*argv[1]>'0')&&(*argv[1]<'5')){
		n=getn();
	}
	else{
		cout<<"Entered Parameter is not valid "<<endl;
		cout<<endl<<"Press any key to Exit"<<endl;
		getch();
		exit(1);
	}

	prt();
	cout<<"Used Algorithm :";
	switch(*argv[1]){
		case '1':
		case '2':
			if(*argv[1]=='1'){
				cout<<"Hill Climbing + Random Restart"<<endl;
			}
			else {
				cout<<"Simulated Annealing"<<endl;
			}
			reset();
			point1.setval(loc.x,loc.y,loc.z,loc.h);
			if (loc.h>1){
				d=pow(loc.h,0.5);
			}
			else
				d=0.5;
			m=n;

			while ((n>0)&&(((loc.h)>0.00000001)||(loc.h<-0.00000001))){
				n--;
				if(putneighb(argv[1])==1){
					if(loc.h>1){
						d=pow(loc.h,0.5);
					}
					else
						d=2*d/3;
				}
				else {
					if (d-0.00000001<0){
						fixit();
						reset();
						}
					else
						d=2*d/3;
				}
			}
			fixit();
			m-=n;
			break;

		case '3':
			cout<<"Local Beam Search"<<endl;
			m=n-beam(n);
			break;
		case '4':
			cout<<"Genetic"<<endl;
			m=n-genet(n);
			break;
		default :
			cout<<"S is Not in range !" <<endl;
			getch();
			exit(1);
	}
	prt();
	cout<<endl<<"Results are : X="<<point1.x<<" Y="<<point1.y<<" Z="<<point1.z<<" Result="<<point1.h<<endl<<"Number of try :"<<m<<endl;
	cout<<endl<<"Press any key to continue"<<endl;
	getch();
}


//-------------------------------------------------------------------------------

int putneighb(char *s){
	int select;
	switch(*s){
		case '1':
			select=calculat();
			break;
		case '2':
			select=calculat2();
			break;
		default:
			cout<<"Error in Transfering Line Commands"<<endl;
			getch();
			exit(1);
		}
	if (select !=13){
		return 1;}
	else
		return 0;
}


//-------------------------------------------------------------------------------

int calculat2(){
	if (loc.h<0)
		d*=-1;
	int nextstp=13,ranv,counter=1,p=1;

	ranv=rand()%(1000+p*25);
	if (ranv<1000)
		nextstp=calculat();
	else {
		ranv-=1000;
		if(ranv>13){
			ranv++;
			cout<<"Ranv is :"<<ranv<<endl;
			}
		nextstp=ranv;
		if(nextstp!=13){
			for(int i=0;((i<3)&&(counter<=ranv));i++){
				for(int j=0;((j<3)&&(counter<=ranv));j++){
					for(int k=0;((k<3)&&(counter<=ranv));k++){
						if(counter==ranv){
							loc.x=loc.x+(k-1)*d;
							loc.y=loc.y+(j-1)*d;
							loc.z=loc.z+(i-1)*d;
							loc.h=funcVal(loc.x,loc.y,loc.z);
						}
					}
				}
			}
		}
	}
	return nextstp;
}


//------------------------------------------------------------------------------
int calculat(){
	if (loc.h<0)
		d*=-1;
	int nextstp=13;
	node n;
	n.setval(loc.x,loc.y,loc.z,loc.h);
	int counter=1;
	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			for(int k=0;k<3;k++){
				neighb.setval(loc.x+(k-1)*(d),loc.y+(j-1)*(d),loc.z+(i-1)*(d),0);
				neighb.h=funcVal(neighb.x,neighb.y,neighb.z);
				if(neighb.h<0){
					neighb.h*=-1;
				}
				if(neighb.h<n.h){
					nextstp=counter;
					n.setval(neighb.x,neighb.y,neighb.z,neighb.h);
				}
				counter++;
				}
			}
		}
	if(nextstp!=13)
		loc.setval(n.x,n.y,n.z,n.h);
	return nextstp;
}


//------------------------------------------------------------
void calc3(int ptnum){
	node temp;
	if((node1[ptnum].h)<1){
		d=dnum[ptnum];
		dnum[ptnum]*=.5;
	}
	else {
		dnum[ptnum]=pow((node1[ptnum].h),0.5);
		d=dnum[ptnum];
	}

	loc.setval(node1[ptnum].x,node1[ptnum].y,node1[ptnum].z,node1[ptnum].h);
	while(13==calculat()){
		if((d-0.00000001)<0){
			break;
		}
		dnum[ptnum]*=0.5;
		d=dnum[ptnum];
	}

	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			for(int k=0;k<3;k++){
					temp.setval(node1[ptnum].x+(k-1)*(d),node1[ptnum].y+(j-1)*(d),node1[ptnum].z+(i-1)*(d),0);
					temp.h=funcVal(temp.x,temp.y,temp.z);
					if ((temp.h)<0)
						temp.h*=-1;
					if((temp.h)<((node2[worse].h))){
						node2[worse].setval(temp.x,temp.y,temp.z,temp.h);
						dnum2[ptnum]=dnum[ptnum];
						analys();
					}
			}
		}
	}
}


//-------------------------------------------------------------
int beam(int n){
	int best_node1=0;
	for (int i=0;i<ky;i++){
		restart(i);
		node2[i].setmax();
		dnum[i]=.5;
	}
	analys();
	while ((n>0)&&((node1[best_node1].h)-(0.00000001)>0)){
		for(int i=0;i<ky;i++){
			calc3(i);
		}
		swapn();
		for(i=0;i<ky;i++)
				node2[i].setmax();
		swapd();
		n--;
		best_node1=analys1();
	}

	point1.setval(node1[best_node1].x,node1[best_node1].y,node1[best_node1].z,funcVal(node1[best_node1].x,node1[best_node1].y,node1[best_node1].z));
	return n;
}


//-------------------------------------------------------------
int genet(int n){
	int best_node1=0;

	for (int i=0;i<ky;i++){
		restart(i);
		node2[i].setval(node1[i].x,node1[i].y,node1[i].z,node1[i].h);
		dnum[i]=.5;
	}
	analys();
	while ((n>0)&&((node1[best_node1].h)-(0.00000001)>0)){
		for(int i=0;i<ky;i++){
			calc3(i);
		}
		swapn();
		for(i=0;i<ky;i++)
				node2[i].setmax();
		swapd();
		n--;
		best_node1=analys1();
	}

	point1.setval(node1[best_node1].x,node1[best_node1].y,node1[best_node1].z,funcVal(node1[best_node1].x,node1[best_node1].y,node1[best_node1].z));
	return n;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级黄色片| 日本一区二区动态图| 丰满岳乱妇一区二区三区| 亚洲午夜久久久久久久久电影院| 欧美mv日韩mv亚洲| 日本精品视频一区二区| 国产成人一区二区精品非洲| 性久久久久久久久| 日韩视频一区在线观看| 欧美视频在线观看一区| 成人aa视频在线观看| 国模冰冰炮一区二区| 亚洲国产wwwccc36天堂| 最新日韩av在线| 久久久亚洲高清| 精品日韩一区二区三区免费视频| 欧美日韩视频不卡| 日本韩国欧美三级| 色悠悠久久综合| 91色综合久久久久婷婷| 国产黄人亚洲片| 国产精品一区二区三区网站| 免费一级欧美片在线观看| 亚洲成人自拍网| 一卡二卡三卡日韩欧美| 自拍偷拍欧美精品| 国产精品久久久久久妇女6080| 久久精品欧美一区二区三区麻豆| 日韩欧美不卡在线观看视频| 日韩一区二区三区免费看| 欧美日韩一区二区在线观看视频| 欧美在线观看视频在线| 在线欧美一区二区| 欧美综合一区二区| 欧美日韩在线亚洲一区蜜芽| 欧美日韩久久一区| 欧美精品亚洲二区| 日韩欧美亚洲国产另类| 欧美大片顶级少妇| 久久蜜臀精品av| 国产无遮挡一区二区三区毛片日本| 久久色在线观看| 国产欧美日韩精品在线| 中文字幕乱码日本亚洲一区二区| 国产精品色哟哟网站| 国产精品国产三级国产aⅴ无密码| 中文天堂在线一区| 亚洲欧美激情在线| 亚洲福利国产精品| 久久精品国产成人一区二区三区| 久久电影国产免费久久电影 | 另类调教123区| 麻豆视频观看网址久久| 久久av老司机精品网站导航| 黄色资源网久久资源365| 国产精品911| 91美女视频网站| 欧美日本国产视频| 久久久午夜精品| 中文字幕日本乱码精品影院| 一区二区三区精品视频在线| 天堂一区二区在线| 国内精品伊人久久久久影院对白| 成人动漫在线一区| 欧美在线视频全部完| 精品奇米国产一区二区三区| 国产精品麻豆一区二区| 丝袜亚洲另类欧美综合| 激情都市一区二区| 在线视频中文字幕一区二区| 欧美一级日韩免费不卡| 中文字幕高清不卡| 亚洲不卡av一区二区三区| 国产一区二区三区免费在线观看| 99久久777色| 欧美一区二区三区在线看| 国产午夜精品一区二区三区嫩草| 一区二区三区在线观看欧美| 精一区二区三区| proumb性欧美在线观看| 欧美日本在线播放| 国产精品人妖ts系列视频| 亚洲成a人v欧美综合天堂| 国产一本一道久久香蕉| 欧美性xxxxxx少妇| 国产日韩欧美精品电影三级在线| 亚洲国产精品久久久男人的天堂| 国产高清不卡一区二区| 91麻豆精品国产91久久久资源速度 | 欧美色综合久久| 久久男人中文字幕资源站| 一二三四区精品视频| 国产麻豆一精品一av一免费| 欧美在线免费播放| 国产精品嫩草99a| 日韩avvvv在线播放| 9色porny自拍视频一区二区| 欧美成人激情免费网| 亚洲最大的成人av| 岛国一区二区三区| 欧美一级在线观看| 亚洲精选在线视频| 国产成人精品免费网站| 日韩精品一区在线观看| 亚洲午夜一区二区三区| 91一区二区三区在线播放| 国产欧美一区二区三区网站| 日韩电影在线观看电影| 在线一区二区观看| 亚洲欧美影音先锋| 国产精品综合av一区二区国产馆| 欧美一级免费观看| 亚洲成人激情自拍| 欧美视频中文一区二区三区在线观看| 国产精品卡一卡二| 波多野结衣中文字幕一区二区三区| 日韩精品资源二区在线| 免费观看在线综合色| 欧美日韩一二三区| 亚洲国产日韩综合久久精品| 色欧美乱欧美15图片| 亚洲视频一区二区免费在线观看| 成人黄色电影在线| 中文字幕第一区综合| 高清成人免费视频| 国产欧美一区二区三区网站| 韩国av一区二区三区在线观看| 欧美一级黄色片| 伦理电影国产精品| 日韩小视频在线观看专区| 日韩电影一区二区三区四区| 欧美挠脚心视频网站| 视频一区二区中文字幕| 欧美老肥妇做.爰bbww视频| 亚洲成人激情自拍| 欧美一区二区国产| 久久国产精品99精品国产| 日韩一区二区精品葵司在线| 美女视频一区二区| 精品不卡在线视频| 国产黄色精品网站| 亚洲欧洲99久久| 色噜噜狠狠一区二区三区果冻| 亚洲免费成人av| 欧美三区在线观看| 久久国产夜色精品鲁鲁99| 精品少妇一区二区三区视频免付费 | 国产精品免费久久| 91亚洲精品久久久蜜桃| 亚洲一区二区视频在线观看| 欧美日本视频在线| 精品一区二区三区在线观看 | 69堂成人精品免费视频| 奇米影视在线99精品| 欧美v日韩v国产v| 成人爽a毛片一区二区免费| 国产精品妹子av| 精品视频一区 二区 三区| 蜜臀久久久久久久| 中文字幕国产一区二区| 欧美专区亚洲专区| 精品一区二区影视| 自拍偷拍亚洲综合| 欧美一卡二卡三卡四卡| 大胆欧美人体老妇| 亚洲一区二区视频| 久久综合给合久久狠狠狠97色69| 高清免费成人av| 午夜精品福利一区二区三区av| 精品乱人伦一区二区三区| 成人国产亚洲欧美成人综合网| 亚洲与欧洲av电影| 精品国产99国产精品| 99热在这里有精品免费| 午夜成人免费电影| 国产精品色哟哟| 欧美日韩国产精品成人| 国产v日产∨综合v精品视频| 亚洲在线一区二区三区| 久久在线免费观看| 欧美天天综合网| 高清国产午夜精品久久久久久| 亚洲国产精品天堂| 国产欧美日本一区二区三区| 欧美日韩亚洲综合| 国产69精品久久99不卡| 丝袜美腿亚洲色图| 国产精品国产自产拍高清av| 91精品国产麻豆国产自产在线| 99精品视频在线观看| 极品少妇xxxx偷拍精品少妇| 夜夜亚洲天天久久| 国产精品二三区| 久久综合99re88久久爱| 精品视频在线免费观看| 91亚洲精华国产精华精华液| 精品亚洲国产成人av制服丝袜| 一区二区三区免费看视频| 国产亚洲午夜高清国产拍精品| 91精品国产综合久久久久久久久久|