diff --git a/src/gtests/tests.cpp b/src/gtests/tests.cpp index 0367f775ba40be7e1be95bb81f5d9a09524be388..dd5f34a70dafac1579da5d60db919c6a83071a37 100644 --- a/src/gtests/tests.cpp +++ b/src/gtests/tests.cpp @@ -251,8 +251,9 @@ TEST(ExcuseTest, GenerateExcusesAutas) { using namespace boost::assign; FolderExcusePairs test_folders; insert( test_folders ) - ( "autas_p06_1" , ExcuseActionPair(ListPredicateGroup("freeFbHb1()"), "placependulum") ) - ( "autas_p06_2" , ExcuseActionPair(ListPredicateGroup("freeFbHb2()"), "screwpendulumhead") + ( "autas_p06_1" , ExcuseActionPair(ListPredicateGroup("freeFbHb1()"), "placependulum") ) + ( "autas_p06_2" , ExcuseActionPair(ListPredicateGroup("freeFbHb2()"), "screwpendulumhead") ) + ( "autas_horiz_2" , ExcuseActionPair(ListPredicateGroup("clearB1()") , "placepeg1") ); BOOST_FOREACH(FolderExcusePairs::value_type folder_excuse, test_folders) { diff --git a/tests/excuse_tests/autas_horiz_2/reward.dat b/tests/excuse_tests/autas_horiz_2/reward.dat new file mode 100644 index 0000000000000000000000000000000000000000..a1c3bc52536a2718e55f54b167939c5c3c9212ce --- /dev/null +++ b/tests/excuse_tests/autas_horiz_2/reward.dat @@ -0,0 +1 @@ +1.0 pegplacedB1FbHb1() pegplacedB2FbHb2() pegplacedB3FbHb3() pegplacedB4FbHb4() shaftplacedSh() pendulumplacedPn() pendulumheadscrewedPh() separatorplacedSp() faceplatefrontplacedFf() \ No newline at end of file diff --git a/tests/excuse_tests/autas_horiz_2/rexd_config.cfg b/tests/excuse_tests/autas_horiz_2/rexd_config.cfg new file mode 100644 index 0000000000000000000000000000000000000000..0a6efc40ee72374e721b9be631dc6e55ebd9563b --- /dev/null +++ b/tests/excuse_tests/autas_horiz_2/rexd_config.cfg @@ -0,0 +1,79 @@ +# General options +scenario = autas + +simulator = true +simulator_port = 0 +planner_port = 0 +simulator_current_state_path = state_simulator.dat +simulator_init_state_path = simulated_init_state + +transitions_backup_path = transitions_full.dat + +rule_analysis = true +rule_analysis_equivalent_rules = true +rule_analysis_subgoals = false + +# exploration +exploration = true +exploration_known_threshold = 2 + +confirm_dangerous_actions = true + +use_rmax = true +use_vmin = false +rmax_reward = 15 +vmin_reward = 0.1 + +# Other Options +remove_nop_rules = true + +# learner +pasula_alpha_pen = 0.25 +pasula_noise_lower_bound = 1e-10 +pasula_noise_lower_bound_default_rule = 1e-12 + +# Planner +planner = ippc +goal_file = reward.dat +final_reward_action = false + +prada_config = config +prada_config_learner = config +prada_config_teacher = config_teacher + +nid_rules_path = rules.dat +ground_truth_nid_rules_path = simulated_rules.dat + +ppddl_rules_path = rules.ppddl +ppddl_rules_template_path = template_ppddl + +planning_time = 2000 +planning_fast_time = 1000 +planning_horizon = 14 +planning_epsilon = 0.05 +planning_noop_reward = 0.05 +planning_reward_step = 1 + + +# Teacher +teacher = true +teacher_can_fail = false +auto_teacher = true +auto_teacher_excuse_autoexecute = true +auto_teacher_infinite = true +auto_teacher_infinite_retries = 5 +auto_teacher_infinite_full_retries = 1 +auto_teacher_autodead = true + +auto_teacher_zealous = false +auto_teacher_autas_hacks = true +auto_teacher_dangerous_actions = true + +# Auto experiments +auto_experiments = true +auto_experiments_num = 30 +auto_experiments_auto_finish = true +auto_experiments_auto_next = false +auto_experiments_auto_next_num = 1 +auto_experiments_command = false + diff --git a/tests/excuse_tests/autas_horiz_2/rules.dat b/tests/excuse_tests/autas_horiz_2/rules.dat new file mode 100644 index 0000000000000000000000000000000000000000..ae901b956918a23ff8104aa985d3dbdd68043b41 --- /dev/null +++ b/tests/excuse_tests/autas_horiz_2/rules.dat @@ -0,0 +1,112 @@ +ACTION: # 121 +placepeg2() +CONTEXT: + +OUTCOMES: +1 pegplacedB2FbHb2() -freeFbHb2() +0 <noise> + +ACTION: # 166 +placepeg4() +CONTEXT: + +OUTCOMES: +1 pegplacedB4FbHb4() -freeFbHb4() +0 <noise> + +ACTION: # 63 +placependulum() +CONTEXT: + +OUTCOMES: +1 pendulumplacedPn() +0 <noise> + +ACTION: # 200 +screwpendulumhead() +CONTEXT: +pendulumplacedPn() +OUTCOMES: +1 pendulumheadscrewedPh() +0 <noise> + +ACTION: # 238 +screwpendulumhead() +CONTEXT: +-pendulumplacedPn() +OUTCOMES: +1 +0 <noise> + +ACTION: # 92 +repositionpeg1() +CONTEXT: + +OUTCOMES: +1 -horizontalB1() +0 <noise> + +ACTION: # 214 +placeseparator() +CONTEXT: + +OUTCOMES: +1 separatorplacedSp() +0 <noise> + +ACTION: # 223 +placefaceplatefront() +CONTEXT: +separatorplacedSp() +OUTCOMES: +1 faceplatefrontplacedFf() -clearB1() -clearB2() -clearB3() -clearB4() -clearPn() -clearSp() +0 <noise> + +ACTION: # 226 +placefaceplatefront() +CONTEXT: +-separatorplacedSp() +OUTCOMES: +1 +0 <noise> + +ACTION: # 147 +placepeg3() +CONTEXT: + +OUTCOMES: +1 pegplacedB3FbHb3() -freeFbHb3() +0 <noise> + +ACTION: # 38 +placeshaft() +CONTEXT: + +OUTCOMES: +1 shaftplacedSh() -freeFbHsh() +0 <noise> + +ACTION: # 183 +placepeg1() +CONTEXT: +clearB1() -freeFbHsh() +OUTCOMES: +1 pegplacedB1FbHb1() -freeFbHb1() +0 <noise> + +ACTION: # 295 +placepeg1() +CONTEXT: +clearB1() freeFbHsh() +OUTCOMES: +1 -clearB1() +0 <noise> + +ACTION: # 309 +placepeg1() +CONTEXT: +-clearB1() +OUTCOMES: +1 +0 <noise> + diff --git a/tests/excuse_tests/autas_horiz_2/state_simulator.dat b/tests/excuse_tests/autas_horiz_2/state_simulator.dat new file mode 100644 index 0000000000000000000000000000000000000000..92b2931026b32520da882111c21da5cfe8317c51 --- /dev/null +++ b/tests/excuse_tests/autas_horiz_2/state_simulator.dat @@ -0,0 +1 @@ +freeFbHb1() -clearB1() -pegplacedB1FbHb1() freeFbHb2() clearB2() -pegplacedB2FbHb2() -freeFbHb3() clearB3() pegplacedB3FbHb3() freeFbHb4() clearB4() -pegplacedB4FbHb4() -freeFbHsh() clearSh() shaftplacedSh() clearSp() -separatorplacedSp() clearPn() -pendulumplacedPn() clearPh() -pendulumheadscrewedPh() clearFf() -faceplatefrontplacedFf() horizontalB1() -horizontalB2() -horizontalB3() -horizontalB4() -horizontalSh() \ No newline at end of file diff --git a/tests/excuse_tests/autas_horiz_2/template_ppddl b/tests/excuse_tests/autas_horiz_2/template_ppddl new file mode 100644 index 0000000000000000000000000000000000000000..00de6d2b188ce7e5bd71f30443286fb09cc5a307 --- /dev/null +++ b/tests/excuse_tests/autas_horiz_2/template_ppddl @@ -0,0 +1,180 @@ +<init> +(define (domain ppddl_mdp) + (:requirements :fluents :adl :probabilistic-effects :rewards :conditional-effects) + <pre_domain> + (:predicates + (vehicle_at__71) + (vehicle_at__72) + (vehicle_at__73) + (vehicle_at__81) + (vehicle_at__82) + (vehicle_at__91) + (spare_in__71) + (spare_in__72) + (spare_in__73) + (spare_in__81) + (spare_in__82) + (spare_in__91) + (road__71_72) + (road__71_81) + (road__72_73) + (road__72_82) + (road__81_72) + (road__81_82) + (road__81_91) + (road__82_73) + (road__91_82) + (not_flattire) + (hasspare) + ) + <pre_rules> + (:action placeshaft + :effect (and + (when (and (ontable_sh) (free_fb_hsh)) (probabilistic 1.0 (and (shaftplaced_sh) (not (ontable_sh)) (not(free_fb_hsh))))) + ; Reward + (when (not (faceplatefrontplaced_ff)) (decrease (reward) 1.0)) + ) + ) + (:action placependulum + :effect (and + (when (and (shaftplaced_sh) (ontable_pn)) (pendulumplaced_pn)) + ; Reward + (when (not (faceplatefrontplaced_ff)) (decrease (reward) 1.0)) + ) + ) + (:action screwpendulumhead + :effect (and + (when (and (pendulumplaced_pn) (ontable_ph)) (probabilistic 1.0 (and (pendulumheadscrewed_ph) (not (ontable_ph))))) + ; Reward + (when (not (faceplatefrontplaced_ff)) (decrease (reward) 1.0)) + ) + ) + (:action placefaceplatefront + :parameters + (?rover) + :effect (and + (when (and (rover ?rover) (separatorplaced_sp ?rover) (pendulumplaced_pn)) (probabilistic 1.0 (faceplatefrontplaced_ff))) + ; Reward + (when (not (faceplatefrontplaced_ff)) (decrease (reward) 1.0)) + ) + ) + + <noop_rule> + + (:action noop + :effect (and + (when (and + (vehicle_at__71) + (vehicle_at__72) + (vehicle_at__73) + (vehicle_at__81) + (vehicle_at__82) + (vehicle_at__91) + (spare_in__71) + (spare_in__72) + (spare_in__73) + (spare_in__81) + (spare_in__82) + (spare_in__91) + (road__71_72) + (road__71_81) + (road__72_73) + (road__72_82) + (road__81_82) + (road__81_91) + (road__82_73) + (road__91_82) + (not_flattire) + (hasspare) + ) + (probabilistic 1.0 (and + (vehicle_at__71) + (vehicle_at__72) + (vehicle_at__73) + (vehicle_at__81) + (vehicle_at__82) + (vehicle_at__91) + (spare_in__71) + (spare_in__72) + (spare_in__73) + (spare_in__81) + (spare_in__82) + (spare_in__91) + (road__71_72) + (road__71_81) + (road__72_73) + (road__72_82) + (road__81_82) + (road__81_91) + (road__82_73) + (road__91_82) + (not_flattire) + (hasspare) + )) + ) + (when (and + (not (vehicle_at__71)) + (not (vehicle_at__72)) + (not (vehicle_at__73)) + (not (vehicle_at__81)) + (not (vehicle_at__82)) + (not (vehicle_at__91)) + (not (spare_in__71)) + (not (spare_in__72)) + (not (spare_in__73)) + (not (spare_in__81)) + (not (spare_in__82)) + (not (spare_in__91)) + (not (road__71_72)) + (not (road__71_81)) + (not (road__72_73)) + (not (road__72_82)) + (not (road__81_82)) + (not (road__81_91)) + (not (road__82_73)) + (not (road__91_82)) + (not (not_flattire)) + (not (hasspare)) + ) + (probabilistic 1.0 (and + (not (vehicle_at__71)) + (not (vehicle_at__72)) + (not (vehicle_at__73)) + (not (vehicle_at__81)) + (not (vehicle_at__82)) + (not (vehicle_at__91)) + (not (spare_in__71)) + (not (spare_in__72)) + (not (spare_in__73)) + (not (spare_in__81)) + (not (spare_in__82)) + (not (spare_in__91)) + (not (road__71_72)) + (not (road__71_81)) + (not (road__72_73)) + (not (road__72_82)) + (not (road__81_82)) + (not (road__81_72)) + (not (road__81_91)) + (not (road__82_73)) + (not (road__91_82)) + (not (not_flattire)) + (not (hasspare)) + )) + ) + ; Reward + (when (not (vehicle_at__73)) (decrease (reward) 0.9)) + ) + ) + <post_rules> + +) +(define (problem ppddl_mdp__1) + (:domain ppddl_mdp) + (:init + ) + (:metric maximize (reward)) + ;; (:horizon <horizon>) + ;; (:discount 1.0) +) +<end>