public List<Vertex> GeneralSearch() {
		PriorityQueue<Node> nodes = makeEmptyQueue();
		for(Vertex v: _powerGraph.get_vertices())
			if(v.get_num()==_location.get_num()){
				nodes.add(new Node(null, v,_foodCarried, 0));
				break;
			}
		
		Node node = null;
		while(true){
			if(nodes.isEmpty()){
				System.out.println("No Solution Found.");
				return null;//Failure
				}
			node = nodes.remove();
			System.out.println();
			System.out.println("Pulled Node:"+node+"- vertex-"+node.get_state().get_num()+" supplies:"+node.get_currentSupplies()+" newDepth:"+node.get_debth());
			
			if(goalTest(node)){
				System.out.println("Found solution Node: vertex-"+node.get_state().get_num()+" supplies:"+node.get_currentSupplies()+" newDepth:"+node.get_debth());
				return buildRoute(node);
				}
			
			if(node.get_debth()!=Double.POSITIVE_INFINITY){
				_expand++;
				nodes.addAll(node.expand());
				}
		}
	}