public void preferenceToLongerPaths()
	{
		Comparator<Route> comp = new Comparator<Route>() {

			@Override
			public int compare(Route o1, Route o2) {
				// TODO Auto-generated method stub
				if(o1.getRouteTravelTime() > o2.getRouteTravelTime())
				{
					return -1;
				}
				return 1;
			}
		};
		Route.setTotalHops(0);
		//For each source find the shortest available path to a destination.

		PriorityQueue<Route> preRQ = new PriorityQueue<Route>(srcList.size(), comp);
		Map<Node, Route> map = new HashMap<Node, Route>();
		int totalEvacuees = 0;
		System.out.println("A1");
		for(int i=0;i<srcList.size();i++)
		{
			Node src = srcList.get(i);
			totalEvacuees += src.getInitialOccupancy();
			clearNodeData(src);
			Route r = shortestPath(src);
			preRQ.add(r);
			map.put(src, r);
		}
		System.out.println("A2");

		double totalEgressTime = 0;
		while(totalEvacuees > 0)
		{
			Route r = preRQ.poll();
			int assignedPath = findMinimumCapacity(r, map);
			//totalEgressTime = reserveAllPaths(r);
			Node src = r.getRouteNodeList().get(0);
			if(src.getCurrentOccupancy() == 0)
			{
				src.setNodeType(Node.NORMAL);
				srcList.remove(src);
			}
			totalEvacuees -= assignedPath;
			if(totalEvacuees == 0)
				break;
			
			preRQ.clear();
			map.clear();
			for(int i=0;i<srcList.size();i++)
			{
				src = srcList.get(i);
				clearNodeData(src);
				Route rr = shortestPath(src);
				preRQ.add(rr);
				map.put(src, rr);
			}
		}
		
		System.out.println("Egress Time : " + totalEgressTime);
		System.out.println("RouteList Size : " + pathList.size());
		//System.out.println("Average Evacuation Time : " + 1.0*evacuationTime/count);
		System.out.println("Avg Hops : " + 1.0*Route.getTotalHops()/pathList.size());
		System.out.println("Max Hops : " + Route.getMaxHops());
		System.out.println("No of Distinct Routes : " + this.getDistinctRoutes().size());
		int maxWaitingTimeAtANode = 0;
		String nodeName;
		double totalWaitingTime = 0;
		for(int i=0;i<graph.getNodeList().size();i++)
		{
			totalWaitingTime += graph.getNodeList().get(i).getWaitingTimeAtThisNode();
			if(graph.getNodeList().get(i).getWaitingTimeAtThisNode() > maxWaitingTimeAtANode)
			{
				maxWaitingTimeAtANode = graph.getNodeList().get(i).getWaitingTimeAtThisNode();
				nodeName = graph.getNodeList().get(i).getNodeName();
			}
		}
		System.out.println("Max. Waiting Time at a node : " + maxWaitingTimeAtANode);
		System.out.println("Average. Waiting Time at a node : " + totalWaitingTime/graph.getNodeList().size());
		//System.out.println("Count:" + count);
	}