示例#1
0
        /// <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();
        }
示例#2
0
 /// <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);
 }
示例#3
0
        /// <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();
        }