public void start(){
		List<Integer> taskXPriorityForcast = inputUnit.getTaskXPriorityForcast();
		setAllTasks();
		int objPriority = -1;
		for(int priority : taskXPriorityForcast){
			isContinuedByThisPriority = true;
			isFoundSolutionByThisPriority = false;
			Setting.recoverTime();
			setPriorityOfTaskX(priority);
			checkAllTasks();
			run();
			if(isFoundSolutionByThisPriority){
				objPriority = priority;
				break;
			}
			setAllTasks();
			tasksPriorityQueue.clear();
		}
		
		if(objPriority != -1){
			inputUnit.setPriorityOfTaskX(objPriority);
			outputUnit.setPriority(objPriority);
			outputUnit.setFinishTimeOfTasks(inputUnit.getTasks());
		}
	
	}