private boolean is_assigned(CPA cpa) throws Exception {
		boolean assignmets_constraied = false;
		int k = -1;
		for (int i = 0; i < Domain.length; i++) {
			k++;
			k = find_next_possible_assignment(k);
			if (k == -1) {
				return false;
			}
			Assignment assignment = new Assignment(this._id, k);
			for (int j = 0; j < cpa.length() && !assignmets_constraied; j++) {
				if (constrained(assignment, cpa.getAssignment(j))) {
					assignmets_constraied = true;
				}
			}
			if (!assignmets_constraied) {
				Domain[k] = 0;
				cpa.add_assignment(assignment);
				return true;
			}
			assignmets_constraied = false;
		}
		return false;
	}