private void workloadClassify()
	{
		createRequestList();
		Random rd=new Random(seed);
		double reservedMean=0.75;
		double ondemandMean=0.5;
		double spotMean=0.25;
		double std=0.3;
		int n=this.requestList.size();
		int reservedCnt=17000;
		int spotCnt=120000;
		SortedMap<Double, RequestType> sm=new TreeMap<Double, RequestType>();
		int k=0;
		RequestType type=RequestType.ONDEMAND;
		while(k<n)
		{
			double mean=0;
			RequestType typeCur=type;
			if(k<=reservedCnt)
			{
				mean=reservedMean;
				type=RequestType.RESERVED;
			}else if(k>reservedCnt && k<=(reservedCnt+spotCnt)){
				mean=spotMean;
				type=RequestType.SPOT;
			}else{
				mean=ondemandMean;
				type=RequestType.ONDEMAND;
			}
			double key=rd.nextGaussian()*std+mean;
			while(sm.get(key)!=null ||key<0||key>1)
			{
				key=rd.nextGaussian()*std+mean;
			}
			k++;
			sm.put(key, typeCur);
		}
		// Mapping
		int i=0;
		for(RequestType t: sm.values())
		{
			requestList.get(i).setType(t);
			addNewWorkloadtoList(requestList.get(i));
			i++;
			
		}
		//split those reserved request which have the duration greater than reservation length (in the simulation is 1 year)
		splitRequestOutLength();
		
		//// resort list based on the initial time
		
		Collections.sort(getReserved(), new Comparator<ReservedRequest>() {
			@Override
			public int compare(ReservedRequest e1, ReservedRequest e2) {
				return new Long(e1.getInitialTime()).compareTo(new Long(e2
						.getInitialTime())); // sort based on the start time
			}
		});
		Collections.sort(getOndemand(), new Comparator<OndemandRequest>() {
			@Override
			public int compare(OndemandRequest e1, OndemandRequest e2) {
				return new Long(e1.getInitialTime()).compareTo(new Long(e2
						.getInitialTime())); // sort based on the start time
			}
		});
		Collections.sort(getSpot(), new Comparator<SpotRequest>() {
			@Override
			public int compare(SpotRequest e1, SpotRequest e2) {
				return new Long(e1.getInitialTime()).compareTo(new Long(e2
						.getInitialTime())); // sort based on the start time
			}
		});
		this.list=generateReservation();
		Collections.sort(this.list, new Comparator<ReservationWorkload>() {
			@Override
			public int compare(ReservationWorkload r1,ReservationWorkload r2)
			{
				return new Long(r1.getStartTime()).compareTo(new Long(r2.getStartTime()));
			}
		});
		
	}