AIMA.Core.Search.CSP.CSP.getNeighbor C# (CSharp) Метод

getNeighbor() публичный Метод

public getNeighbor ( Variable var, Constraint constraint ) : Variable
var Variable
constraint Constraint
Результат Variable
        public Variable getNeighbor(Variable var, Constraint constraint)
        {
            List<Variable> scope = constraint.getScope();
            if (scope.Count == 2)
            {
                if (var == scope.get(0))
                    return scope.get(1);
                else if (var == scope.get(1))
                    return scope.get(0);
            }
            return null;
        }

Usage Example

        /** : the degree heuristic. */
        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);
        }
All Usage Examples Of AIMA.Core.Search.CSP.CSP::getNeighbor