private double adjustUsingDistribution(double offer) {

		ArrayList<City> cityPath = createCityPath();

		int lastCounter = this.previousHighPotentialTasks;
		int counter = 0;

		for(int i = 0; i < cityPath.size(); i++) {
			for(int j = i+1; j < cityPath.size(); j++) {
				if(this.distribution.probability(cityPath.get(i), cityPath.get(j)) > 0.15) {
					//	cityPath.get(i).hashCode()+cityPath.get(j).hashCode()
					// Use hashtable to count routes only once?
					counter++;
				}
			}
		}
		
		this.previousHighPotentialTasks = counter;
		int difference = lastCounter - counter;
		
		double adjustedOffer = (1 - ((1/(1+Math.exp(-1/2*difference)) - 0.5)*0.2)) * offer;

		//System.out.println("Counter: "+counter);

		return adjustedOffer;
	}