public Vector<ArrayList<String>> getStrongestPaths(double threshold) {
		Vector<ArrayList<String>> paths = new Vector<ArrayList<String>>();
		srcDij.shortestPaths(srcGraph, 0, false);
		destDij.shortestPaths(destGraph, 0, false);
		ArrayList<IdValuePair> nodeValues = new ArrayList<IdValuePair>();
		double t;
		for (int i = 0; i < srcDij.result.size(); i++) {
			t = srcDij.result.get(i);
			t += destDij.result.get(i);
			nodeValues.add(new IdValuePair(i, t));
		}
		Collections.sort(nodeValues, new Comparator<IdValuePair>() {

			@Override
			public int compare(IdValuePair o1, IdValuePair o2) {
				if (o1.value < o2.value)
					return -1;
				else if (o1.value > o2.value)
					return 1;
				else
					return 0;
			}
		});
		ArrayList<Integer> pathToSrc;
		ArrayList<Integer> pathToDst;
		ArrayList<String> tempPath;
		double min = nodeValues.get(1).value;
		for (IdValuePair p : nodeValues) {
			if (p.value - min <= threshold) {
				pathToSrc = srcDij.getPath(p.id);
				pathToDst = destDij.getPath(p.id);
				tempPath = new ArrayList<String>();
				for (int i = 0; i < pathToSrc.size(); i++) {
					tempPath.add(pathToSrc.get(i).toString());// nomenclature.idToName(pathToSrc.get(i));
				}

				pathToDst.remove(pathToDst.size() - 1);
				if (pathToDst.size() >= 1) {
					pathToDst.remove(0);

					Collections.reverse(pathToDst);
					for (int i = 0; i < pathToDst.size(); i++) {
						tempPath.add(pathToDst.get(i).toString());// nomenclature.idToName(pathToDst.get(i));
					}
				}
				paths.add(tempPath);

			}
		}
		return paths;
	}