/// <summary> /// Constructs the mutex checker. /// </summary> /// <param name="mutexGroups">Mutex groups of the SAS+ planning problem.</param> public MutexChecker(MutexGroups mutexGroups) { MutexGroups = mutexGroups; CachedStateLocks = new int[mutexGroups.Count]; Locks = new int[mutexGroups.Count]; ReleaseCachedStateLocks(); ReleaseLocks(); }
/// <summary> /// Accept method for the input data visitor. /// </summary> /// <param name="visitor">Visitor.</param> public void Accept(IVisitor visitor) { visitor.Visit(this); Version.Accept(visitor); Metric.Accept(visitor); Variables.Accept(visitor); MutexGroups.Accept(visitor); InitialState.Accept(visitor); GoalConditions.Accept(visitor); Operators.Accept(visitor); AxiomRules.Accept(visitor); }
/// <summary> /// Constructs the relaxed SAS+ planning problem. /// </summary> /// <param name="inputData">Input data.</param> /// <param name="initialStateInit">Should the initial state be initialized?</param> public RelaxedProblem(InputData.SASInputData inputData, bool initialStateInit = true) : base(inputData) { InitialState = (initialStateInit) ? new RelaxedState((State)InitialState) : null; MutexGroups.Clear(); }