public List<HTNEffect> GetAllPostEffects(SpecificationKnowledge specificationKnowledge) { List<HTNEffect> postEffects = new List<HTNEffect>(); foreach (string taskID in this.TaskIDList) { HTNTask htnTask = specificationKnowledge.GetHTNTask(taskID); postEffects.AddRange(htnTask.PostConditions); } return postEffects; }
private bool DeduceFollowingStates( IEnumerable<HTNTaskSet> refinedHTNTaskSetList, HTNState currentState, HTNState targetState, SpecificationKnowledge specificationKnowledge) { List<HTNState> newlyDeducedHTNStateList = new List<HTNState>(); newlyDeducedHTNStateList.Add(currentState); HTNState localCurrentHTNState = new HTNState(currentState); List<List<HTNEffect>> htnEffectList = new List<List<HTNEffect>>(); foreach (HTNTaskSet htnTaskSet in refinedHTNTaskSetList) { List<HTNEffect> postEffects = new List<HTNEffect>(); foreach (string taskID in htnTaskSet.TaskIDList) { HTNTask htnTask = specificationKnowledge.GetHTNTask(taskID); postEffects.AddRange(htnTask.PostConditions); } htnEffectList.Add(postEffects); } HTNState nextHTNState = null; foreach (List<HTNEffect> htnEffects in htnEffectList) { nextHTNState = new HTNState(localCurrentHTNState.DeduceNextStateBasedOnEffects(htnEffects)); newlyDeducedHTNStateList.Add(nextHTNState); } if (nextHTNState != null && nextHTNState.IsEqualTo(targetState)) { newlyDeducedHTNStateList.Remove(nextHTNState); RefinedStateList = newlyDeducedHTNStateList; return true; } return false; }
public HTNState ConjectureOneState(List<string> htnTaskIDList, SpecificationKnowledge wsk) { List<string> postConditionAtoms = new List<string>(); List<HTNTask> htnTaskList = new List<HTNTask>(); foreach (string taskID in htnTaskIDList) { htnTaskList.Add(wsk.GetHTNTask(taskID)); } // TODO: WHAT IS THIS SUPPOSED TO BE. FFFFFFF foreach (HTNTask htnTask in htnTaskList) { } return new HTNState(); }