public void addAllHiddenEdges() {
		for(int i = numSamples+1; i > 0; i--) { // (-) the root
			ArrayList<PHYNode> fromLevelNodes = nodes.get(i);
			if(fromLevelNodes == null) continue;
			for(int j = i-1; j >= 1; j--) { // (-) private
				ArrayList<PHYNode> toLevelNodes = nodes.get(j);
				if(toLevelNodes == null) continue;
				for(PHYNode n1 : fromLevelNodes) {
					for(PHYNode n2: toLevelNodes) {
						checkAndAddEdge(n1, n2);
					}
				}
			}
		}
	}