public boolean checkOptimization(int[] rightCuts, int index){
		final int opt=index+1;
		if(opt==1){//no opt
			return true;
		} else if(opt==2){//2-opt check
			//d(t 1 ,t 2 ) > d(t 2 ,t 3 )
			int t1=rightCuts[0];
			int t2=Help.circleIncrement(rightCuts[0], tour.length());
//			int t3=rightCuts[1];
			int t3=Help.circleIncrement(rightCuts[1], tour.length());
			
			int oldDist=tour.indexDistance(t1, t2);
			int newDist=tour.indexDistance(t2, t3);
			
			return newDist<oldDist;
		} else if(opt==3){//3-opt check
			//d(t 1 ,t 2 ) + d(t 3 ,t 4 ) > d(t 2 ,t 3 ) + d(t 4 ,t 5 ).
			int t1=rightCuts[0];
			int t2=Help.circleIncrement(rightCuts[0], tour.length());
			int t4=rightCuts[1];
			int t3=Help.circleIncrement(rightCuts[1], tour.length());
			int t5=rightCuts[2];
			
			int oldDist=tour.indexDistance(t1, t2)+tour.indexDistance(t3, t4);
			int newDist=tour.indexDistance(t2, t3)+tour.indexDistance(t4, t5);
			
			return newDist<oldDist;
		}
		//add more opts here
		
		
		return true;
	}