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

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

?? control.cpp

?? 隨機(jī)需求vrp
?? CPP
字號:
#include "Control.h"

Control::Control( void ) {
}

Control::Control( int argc, char** argv ) {

	// parse the command line options to set all vars

	if( ( argc % 2 == 0 ) || ( argc == 1 ) ) {
		cerr << "Parse error: Number of command line parameters incorrect\n";
		cerr << "Usage:" << endl;
		cerr << argv[ 0 ] << " -i InputFile [-o OutputFile] [-n NumberOfTries] [-s RandomSeed] [-t TimeLimit] [-q VehicleCapacity] [-p UseProxy]" << endl;
		exit(1);
	}
	
	for( int i = 1; i < argc / 2 + 1; i++ ) {
		parameters[ argv[ i * 2 - 1 ] ] = argv[ i * 2 ];
	}
	
        iterations =0;
	nrTry = 0;
	flagMatrix = false;
        
	// check for input parameter
	
	if( parameterExists( "-i") ) {
		is = new ifstream( getStringParameter( "-i" ).c_str() );
		flagMatrix = false;	
	}
        else if (parameterExists( "-m") & flagMatrix == false){
            is = new ifstream( getStringParameter( "-m" ).c_str() );
            flagMatrix = true;
        }

	else {
	  cerr << "Error: No input file given, exiting" << endl;
	  cerr << "Usage:" << endl;
	  cerr << argv[ 0 ] << " -i [-m] InputFile [-o OutputFile] [-n NumberOfTries] [-s RandomSeed]" << endl;
	  exit(1);
	}
	
	// check for ouput parameter
	
	if( parameterExists( "-o" ) ) {
		os = new ofstream( getStringParameter( "-o" ).c_str() );
	} else {
		cerr << "Warning: No output file given, writing to stdout" << endl;
		os = &cout;
	}
	
	// check for number of tries parameter
	
	if( parameterExists( "-n" ) ) {
		maxTry = getIntParameter( "-n" );
	} else {
		cerr << "Warning: Number of tries is set to default (1)" << endl;
		maxTry = 1; // default number of tries
	}

	// check for time limit parameter
	
	if( parameterExists( "-t" ) ) {
		timeLimit = getDoubleParameter( "-t" );
	} else {
		cerr << "Warning: Time limit is set to default (10sec)" << endl;
		timeLimit = 10; // default number of tries
	}

	// check for random seed
	
	if( parameterExists( "-s" ) ) {
		seed = getIntParameter( "-s" );
		srand( seed );
	} else {
		seed = time( NULL );
		cerr << "Warning: " << seed << " used as default random seed" << endl;
		srand( seed );
	}

	//Check for vehicle capacity.
	
	if( parameterExists( "-q" ) ) {
	  flagCapacity=true;
	  capacity = getIntParameter( "-q" );
	  cerr << "Warning: vehicle capacity is set to " << capacity << endl;
	} else {
	  capacity = -1;
	  flagCapacity = false;
	}

	//Check for type of local search flag.
	
	if( parameterExists( "-p" ) ) {
	  useProxy = getIntParameter( "-p" );
	} else {
	  useProxy = 1;
	  cerr << "Warning: local search uses approximated delta evaluation by default" << endl;
	}

	//Print ot output stream the command line parameters.
	(*os) << endl;
		(*os) << "Parameter-settings:" << endl << endl;
	if(flagMatrix == false)
	  (*os) << "Input file\t" << getStringParameter( "-i" ).c_str() << " " << endl;
	else 
	  (*os) << "Input file\t" << getStringParameter( "-m" ).c_str() << " " << endl;
	(*os) << "Number of tries\t" << maxTry << endl;
	(*os) << "Seed\t" << seed << endl;
	(*os) << "Time limit\t" << timeLimit << endl;
	if(flagCapacity == true)
	(*os) << "VehicleCapacity\t" << capacity << endl;
	(*os) << "useProxy (1 yes, 0 no)\t" << useProxy << endl;
	(*os) << endl;
}

Control::~Control() {
}

bool
Control::parameterExists( string paramName ) {
	for( map< string, string >::iterator i = parameters.begin(); i != parameters.end(); i++ ) {
		if( i-> first == paramName )
			return true;
	}
	return false;
}

int
Control::getIntParameter( string paramName ) {
	if( parameterExists( paramName ) )
		return atoi( parameters[paramName].c_str() );
	else {
		return 0;
	}
}

double
Control::getDoubleParameter( string paramName ) {
	if( parameterExists( paramName ) )
		return atof( parameters[paramName].c_str() );
	else {
		return 0;
	}
}

string
Control::getStringParameter( string paramName ) {
	if( parameterExists( paramName ) )
		return parameters[paramName];
	else {
		return 0;
	}
}

void
Control::resetTime() {
	timer.resetTime();
}

double
Control::getTime() {
	return timer.elapsedTime( Timer::VIRTUAL );
}

void
Control::beginTry() {
	srand( seed++ );
	++nrTry;
	(*os) << "begin try " << nrTry << endl;
	resetTime();
	bestCost = INT_MAX;

	nrCost = 0;
	nrDeltaCost = 0;
	nrLen = 0;
	nrDeltaLen = 0;

}

void
Control::endTry() {
  (*os) << "end try " << nrTry << endl;
  (*os) << "final " << bestCost << " time " << bestTime 
        << " nrCost " << nrCost << " nrDeltaCost " 
        << nrDeltaCost << " nrLen " << nrLen << " nrDeltaLen " 
        << nrDeltaLen << endl;
}



void
Control::setCurrentCost( double cost ) {
  double time = getTime();
  if( time < timeLimit ) {
    currentCost = cost;
    if( currentCost < bestCost ) {
      bestCost = currentCost;
      bestTime = ( time < 0 ? 0.0 : time);
      (*os) << "best " << bestCost << " time ";
      os->flags( ios::fixed );
      (*os) << ( time < 0 ? 0.0 : time ) ;
      (*os) << " nrCost " << nrCost << " nrDeltaCost " << nrDeltaCost
	    << " nrLen " << nrLen << " nrDeltaLen " << nrDeltaLen << endl;
    }
  }
}



int
Control:: getCapacity(){
  if (flagCapacity) 
    return capacity;
  else{
    cerr << "Error: Control::getCapacity() when no capacity given in command line." << endl;
    return 0; 
  }
}

bool
Control::capacityExists(){
  return flagCapacity;
}

bool
Control::usingProxy(){
  return (useProxy == 1);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频欧美精品| 日本成人在线电影网| 成人黄色综合网站| 成人免费视频在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 久久久.com| aaa欧美色吧激情视频| 日韩毛片视频在线看| 欧美中文字幕亚洲一区二区va在线 | 视频在线观看91| 日韩一区二区精品| 国产在线精品国自产拍免费| 久久亚洲精华国产精华液| 成人激情免费电影网址| 亚洲精品视频在线| 欧美精品 国产精品| 国产在线播放一区二区三区| 中文字幕一区二区三区不卡在线| 欧美在线视频不卡| 另类成人小视频在线| 亚洲国产精品av| 欧美熟乱第一页| 国产一区二区三区日韩| 亚洲成人中文在线| 日韩欧美中文一区| 不卡视频在线观看| 肉丝袜脚交视频一区二区| 久久综合999| 欧美系列一区二区| 国产在线不卡视频| 一区二区三区精品在线观看| 日韩免费电影一区| 99久久精品免费看国产| 亚洲图片有声小说| 日本一区二区三级电影在线观看| 色婷婷久久久综合中文字幕| 久久99精品一区二区三区三区| 亚洲欧洲一区二区三区| 日韩亚洲欧美在线| 日本精品一区二区三区高清| 久久99久久99精品免视看婷婷| 一区二区三区在线免费播放| 久久久久久久久久电影| 欧美三级电影精品| 不卡高清视频专区| 久久99国产精品免费| 一区二区三区精品| 欧美国产一区二区| 日韩精品一区二区三区swag| 在线精品视频一区二区三四| 成人综合在线视频| 九九**精品视频免费播放| 一个色综合av| 国产精品美女久久久久av爽李琼 | 国产又黄又大久久| 亚洲va中文字幕| 一区在线观看视频| 国产日韩精品一区二区三区 | 懂色av一区二区三区免费看| 奇米影视一区二区三区| 伊人夜夜躁av伊人久久| 国产精品欧美一区二区三区| 久久久久高清精品| 欧美成人女星排行榜| 欧美一区二区三区四区五区| 欧美日韩一区二区在线观看 | 在线免费观看成人短视频| 成人app软件下载大全免费| 精品午夜久久福利影院| 蜜臀a∨国产成人精品| 亚洲成a人v欧美综合天堂| 一区二区三区四区视频精品免费| 国产精品久久久久永久免费观看 | 欧美激情一区二区三区全黄| 精品日韩在线一区| 精品久久五月天| 欧美一区二区精品久久911| 欧美色图一区二区三区| 在线免费视频一区二区| 在线欧美小视频| 欧美日韩综合色| 欧美久久一区二区| 日韩一区二区在线免费观看| 7799精品视频| 日韩一区和二区| 精品国产免费人成电影在线观看四季| 日韩三级中文字幕| 日韩午夜中文字幕| 精品国内二区三区| 国产色一区二区| 亚洲欧洲国产日本综合| 亚洲乱码国产乱码精品精的特点 | 亚洲一区影音先锋| 亚洲第一福利一区| 日本午夜精品视频在线观看| 免费在线看成人av| 国产福利精品一区二区| 国产成人av电影在线播放| 成人av在线电影| 在线观看亚洲成人| 日韩丝袜情趣美女图片| 久久综合国产精品| 成人免费一区二区三区在线观看| 亚洲精品欧美激情| 爽好多水快深点欧美视频| 美女脱光内衣内裤视频久久影院| 国产精品自拍网站| 色综合久久久久| 91精品福利在线一区二区三区 | 久久美女高清视频| 国产精品精品国产色婷婷| 亚洲乱码中文字幕| 青青草国产精品97视觉盛宴| 国产麻豆视频一区| 日本韩国一区二区| 精品日本一线二线三线不卡| 欧美激情中文字幕一区二区| 亚洲一二三专区| 国产精品一线二线三线| 91福利社在线观看| 久久久久国色av免费看影院| 亚洲蜜臀av乱码久久精品蜜桃| 美女在线一区二区| 91在线小视频| 欧美成人一级视频| 亚洲精品综合在线| 国产一区二区精品久久99| 欧美在线观看视频一区二区三区| 精品国产百合女同互慰| 亚洲精品国产a久久久久久| 精品一二三四在线| 欧美三级韩国三级日本三斤| 久久婷婷综合激情| 午夜精品免费在线观看| 成人国产亚洲欧美成人综合网| 欧美一区二区在线不卡| 国产精品无人区| 天天综合日日夜夜精品| 91蜜桃在线观看| 久久久久97国产精华液好用吗| 午夜视频在线观看一区| av男人天堂一区| 久久久激情视频| 美女尤物国产一区| 欧美精品久久久久久久久老牛影院| 国产精品网曝门| 欧美aaaaa成人免费观看视频| 色欧美乱欧美15图片| 国产三级久久久| 国产中文字幕精品| 欧美一级日韩一级| 性感美女久久精品| 欧美亚洲一区三区| 1区2区3区国产精品| 丁香另类激情小说| 日本一区免费视频| 精品一区二区在线免费观看| 制服视频三区第一页精品| 亚洲综合免费观看高清完整版在线 | 中日韩免费视频中文字幕| 美女爽到高潮91| 欧美一级免费大片| 日本sm残虐另类| 欧美精品电影在线播放| 午夜精品福利一区二区蜜股av | 国产精品一区二区视频| 欧美大片在线观看| 裸体健美xxxx欧美裸体表演| 91麻豆精品国产91久久久使用方法| 亚洲午夜激情网页| 欧美少妇一区二区| 丝袜亚洲精品中文字幕一区| 欧美日韩久久一区| 日韩国产欧美视频| 欧美大片拔萝卜| 国产精品性做久久久久久| 久久精品视频免费| 成人免费精品视频| 亚洲特黄一级片| 欧洲另类一二三四区| 亚洲大片在线观看| 日韩一级视频免费观看在线| 精品一区二区三区免费毛片爱| 欧美精品一区二区久久婷婷 | 久久久国产精品麻豆| 国产成人午夜精品影院观看视频| 国产欧美在线观看一区| 不卡欧美aaaaa| 亚洲亚洲人成综合网络| 欧美久久免费观看| 激情五月婷婷综合网| 国产精品乱人伦中文| 在线视频综合导航| 免费观看91视频大全| 久久精子c满五个校花| 成人v精品蜜桃久久一区| 亚洲在线成人精品| 精品国产成人系列| 色呦呦日韩精品| 久久99日本精品|