AIMA.Core.Search.CSP.CSP.removeValueFromDomain C# (CSharp) Method

removeValueFromDomain() public method

public removeValueFromDomain ( Variable var, Object value ) : void
var Variable
value Object
return void
        public void removeValueFromDomain(Variable var, Object value)
        {
            Domain currDomain = getDomain(var);
            List<Object> values = new List<Object>(currDomain.Count);
            foreach (Object v in currDomain)
                if (!v.Equals(value))
                    values.Add(v);
            setDomain(var, new Domain(values));
        }

Usage Example

コード例 #1
0
ファイル: AC3Strategy.cs プロジェクト: claudiu04/AIMA.Net
        private bool revise(Variable xi, Variable xj, Constraint constraint,
                            CSP csp, DomainRestoreInfo info)
        {
            bool       revised    = false;
            Assignment assignment = new Assignment();

            foreach (Object iValue in csp.getDomain(xi))
            {
                assignment.setAssignment(xi, iValue);
                bool consistentExtensionFound = false;
                foreach (Object jValue in csp.getDomain(xj))
                {
                    assignment.setAssignment(xj, jValue);
                    if (constraint.isSatisfiedWith(assignment))
                    {
                        consistentExtensionFound = true;
                        break;
                    }
                }
                if (!consistentExtensionFound)
                {
                    info.storeDomainFor(xi, csp.getDomain(xi));
                    csp.removeValueFromDomain(xi, iValue);
                    revised = true;
                }
            }
            return(revised);
        }
All Usage Examples Of AIMA.Core.Search.CSP.CSP::removeValueFromDomain