public boolean[][] generateDesign(int artifactCount, int replicationFactor) {
		boolean[][] designMatrix = new boolean[artifactCount][artifactCount];
		for (int i = 0; i < designMatrix.length; i++) {
			for (int j = 0; j < designMatrix.length; j++) {
				designMatrix[i][j] = false;
			}
		}

		int k;
		for (int i = 0; i < (int) Math.ceil((double) replicationFactor / 2.0); i++) {
			for (int j = 0; j < artifactCount; j++) {
				k = (i + j + 1) % artifactCount;
				if (!designMatrix[k][j]) {
					designMatrix[j][k] = true;
				}
			}
		}
		return designMatrix;
	}