private List<Variable> applyMRVHeuristic(CSP csp, Assignment assignment)
{
List<Variable> result = new List<Variable>();
int mrv = int.MAX_VALUE;
foreach (Variable var in csp.getVariables())
{
if (!assignment.hasAssignmentFor(var))
{
int num = csp.getDomain(var).Count;
if (num <= mrv)
{
if (num < mrv)
{
result.clear();
mrv = num;
}
result.Add(var);
}
}
}
return result;
}