AIMA.Core.Search.CSP.ImprovedBacktrackingStrategy.applyMRVHeuristic C# (CSharp) Method

applyMRVHeuristic() private method

private applyMRVHeuristic ( CSP csp, Assignment assignment ) : List
csp CSP
assignment Assignment
return List
        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;
        }