public static Graph randomTree4() {

		int depth = 6;

		Graph graph = new Graph(depth * 100, depth * 50);

		int a = 0;
		int b = 1;
		int c = 0;
		graph.addVertex(new Vertex(c++, 25, 25 + 25 * (depth - 1)));
		for (int i = 1; i < depth; i++) {
			for (int j = 0; j <= i; j++) {
				graph.addVertex(new Vertex(c++, 25 + 50 * i, 25 + 25
						* (depth - i - 1) + 50 * j));
			}
			graph.addEdge(b, a);
			for (int j = b + 1; j < c - 1; j++) {
				if (Math.random() < 0.5)
					graph.addEdge(j, a + j - b);
				else
					graph.addEdge(j, a + j - b - 1);
			}
			graph.addEdge(c - 1, a + c - b - 2);
			a = b;
			b = c;
		}
		for (int i = depth; i < 2 * depth + 1; i++) {
			for (int j = 0; j <= 2 * depth - i - 2; j++) {
				graph.addVertex(new Vertex(c++, 25 + 50 * i, 75 + 25
						* (i - depth - 1) + 50 * j));
			}
			for (int j = b; j < c; j++) {
				if (Math.random() < 0.5)
					graph.addEdge(j, a + j - b + 1);
				else
					graph.addEdge(j, a + j - b);
			}
			a = b;
			b = c;
		}

		return graph;
	}