private boolean localSearch(ClauseSet clauseSet, Assignment assignment,
			int radius) {
		if (assignment.satisfies(clauseSet)) {
			satisfieingAssignment = assignment;
			return true;
		}
		if (radius == 0) {
			return false;
		}
		Clause clause = null;
		for (int i = 0; i < clauseSet.size(); i++) {
			Clause clauseTmp = clauseSet.get(i);
			if (!assignment.satisfies(clauseTmp)) {
				clause = clauseTmp;
				break;
			}
		}
		for (int j = 0; j < clause.size(); j++) {
			int var = clause.get(j);
			Assignment ass = assignment.clone();
			ass.put(var, true);
			if (localSearch(clauseSet, ass, radius - 1)) {
				return true;
			}
		}
		return false;
	}