private void AddReasoningAction(Formula fPreconditions, Formula fEffect) { Action a = new Action("Reasoning" + ReasoningActions.Count); a.Preconditions = fPreconditions; a.SetEffects(fEffect); ReasoningActions.Add(a); }
public Problem(Problem baseProblem, Domain baseDomain) { // TODO: Complete member initialization Domain = baseDomain; Name = baseProblem.Name; Goal = baseProblem.Goal.Clone(); MetricStatement = baseProblem.MetricStatement; m_lKnown = new HashSet <Predicate>(); foreach (var known in baseProblem.m_lKnown) { m_lKnown.Add(known.Clone()); } m_lHidden = new List <CompoundFormula>(); foreach (Formula hidden in baseProblem.m_lHidden) { m_lHidden.Add((CompoundFormula)hidden.Clone()); } foreach (var rAction in baseProblem.ReasoningActions) { ReasoningActions.Add(rAction.Clone()); } m_dRelevantPredicates = new Dictionary <GroundedPredicate, HashSet <GroundedPredicate> >(); foreach (var relevantPredicate in baseProblem.m_dRelevantPredicates) { m_dRelevantPredicates.Add(relevantPredicate.Key, new HashSet <GroundedPredicate>()); foreach (var predicate in relevantPredicate.Value) { m_dRelevantPredicates[relevantPredicate.Key].Add((GroundedPredicate)predicate.Clone()); } } m_lInitiallyUnknown = new HashSet <Predicate>(); foreach (var initKnown in baseProblem.m_lInitiallyUnknown) { m_lInitiallyUnknown.Add(initKnown.Clone()); } m_dMapPredicateToIndex = new Dictionary <GroundedPredicate, int>(); foreach (var mapPredicateIndex in baseProblem.m_dMapPredicateToIndex) { m_dMapPredicateToIndex.Add((GroundedPredicate)mapPredicateIndex.Key.Clone(), mapPredicateIndex.Value); } m_lIndexToPredicate = new List <GroundedPredicate>(); foreach (var indexToPredicate in baseProblem.m_lIndexToPredicate) { m_lIndexToPredicate.Add((GroundedPredicate)indexToPredicate.Clone()); } }