diff --git a/planning.py b/planning.py index b92cb6eaa..f80a576af 100644 --- a/planning.py +++ b/planning.py @@ -109,10 +109,7 @@ def air_cargo(): def goal_test(kb): required = [expr('At(C1 , JFK)'), expr('At(C2 ,SFO)')] - for q in required: - if kb.ask(q) is False: - return False - return True + return all([kb.ask(q) is not False for q in required]) # Actions @@ -150,11 +147,8 @@ def spare_tire(): expr('At(Spare, Trunk)')] def goal_test(kb): - required = [expr('At(Spare, Axle)'), expr('At(Flat, Ground)')] - for q in required: - if kb.ask(q) is False: - return False - return True + required = [expr('At(Spare, Axle)')] + return all(kb.ask(q) is not False for q in required) # Actions @@ -196,10 +190,7 @@ def three_block_tower(): def goal_test(kb): required = [expr('On(A, B)'), expr('On(B, C)')] - for q in required: - if kb.ask(q) is False: - return False - return True + return all(kb.ask(q) is not False for q in required) # Actions @@ -227,10 +218,7 @@ def have_cake_and_eat_cake_too(): def goal_test(kb): required = [expr('Have(Cake)'), expr('Eaten(Cake)')] - for q in required: - if kb.ask(q) is False: - return False - return True + return all(kb.ask(q) is not False for q in required) # Actions @@ -516,18 +504,14 @@ def extract_solution(self, goals_pos, goals_neg, index): return solution -def goal_test(kb, goals): - for q in goals: - if kb.ask(q) is False: - return False - return True - - def spare_tire_graphplan(): pdll = spare_tire() negkb = FolKB([expr('At(Flat, Trunk)')]) graphplan = GraphPlan(pdll, negkb) + def goal_test(kb, goals): + return all(kb.ask(q) is not False for q in goals) + # Not sure goals_pos = [expr('At(Spare, Axle)'), expr('At(Flat, Ground)')] goals_neg = [] @@ -552,10 +536,7 @@ def double_tennis_problem(): def goal_test(kb): required = [expr('Goal(Returned(Ball))'), expr('At(a, RightNet)'), expr('At(a, LeftNet)')] - for q in required: - if kb.ask(q) is False: - return False - return True + return all(kb.ask(q) is not False for q in required) # Actions