AIMA.Core.Search.CSP.ImprovedBacktrackingStrategy.applyDegreeHeuristic C# (CSharp) Méthode

applyDegreeHeuristic() private méthode

private applyDegreeHeuristic ( List vars, Assignment assignment, CSP csp ) : List
vars List
assignment Assignment
csp CSP
Résultat List
        private List<Variable> applyDegreeHeuristic(List<Variable> vars,
                Assignment assignment, CSP csp)
        {
            List<Variable> result = new List<Variable>();
            int maxDegree = int.MIN_VALUE;
            foreach (Variable var in vars)
            {
                int degree = 0;
                foreach (Constraint constraint in csp.getConstraints(var))
                {
                    Variable neighbor = csp.getNeighbor(var, constraint);
                    if (!assignment.hasAssignmentFor(neighbor)
                            && csp.getDomain(neighbor).Count > 1)
                        ++degree;
                }
                if (degree >= maxDegree)
                {
                    if (degree > maxDegree)
                    {
                        result.clear();
                        maxDegree = degree;
                    }
                    result.Add(var);
                }
            }
            return result;
        }