private Node _findNeighbourWithHighestPheromoneLevel(Node n, Path p) {

		ArrayList<Node> nbours = n.getNeighbours();

		// Check
		if (nbours == null || nbours.size() == 0)
			return null;

		// Remove origin node
		if (nbours.contains(n)) {
			nbours.remove(n);
		}

		double maxPheromone = Double.MIN_VALUE;
		int indexOfMax = -1;

		for (int i = 0; i < nbours.size(); i++) {

			Node c = nbours.get(i);

			if (p.contains(c))
				continue;

			if (c != null && c.isAccessible() && c.getPheromoneLevel() > maxPheromone) {
				indexOfMax = i;
				maxPheromone = c.getPheromoneLevel();
			}

		}

		if (indexOfMax >= 0) {
			return nbours.get(indexOfMax);
		} else {
			return null;
		}

	}