From 0f8e07f723d4bedb4db2b5f598f2c1dd3eb8dbf9 Mon Sep 17 00:00:00 2001 From: ssardina Date: Mon, 23 Sep 2024 11:20:07 +1000 Subject: [PATCH] process all st_xyz domains (admit strong solutions) #4 --- README.md | 7 +- benchmarks/catalogue.py | 8 +- benchmarks/st_blocksworld/domain.pddl | 105 ++--- benchmarks/st_faults/d_10_10.pddl | 382 ++++++++++-------- benchmarks/st_faults/d_1_1.pddl | 72 ++-- benchmarks/st_faults/d_2_2.pddl | 110 ++--- benchmarks/st_faults/d_3_3.pddl | 144 ++++--- benchmarks/st_faults/d_4_4.pddl | 178 ++++---- benchmarks/st_faults/d_5_5.pddl | 212 +++++----- benchmarks/st_faults/d_6_6.pddl | 246 +++++------ benchmarks/st_faults/d_7_7.pddl | 280 +++++++------ benchmarks/st_faults/d_8_8.pddl | 314 +++++++------- benchmarks/st_faults/d_9_9.pddl | 348 ++++++++-------- benchmarks/st_faults/p_1_1.pddl | 2 +- benchmarks/st_first_responders/domain.pddl | 170 ++++---- benchmarks/st_mapfdu/domain_p01.pddl | 199 +++++---- .../{st_tires => st_tireworld}/domain.pddl | 25 +- .../{st_tires => st_tireworld}/p02.pddl | 0 .../{st_tires => st_tireworld}/p03.pddl | 0 .../{st_tires => st_tireworld}/p04.pddl | 0 .../{st_tires => st_tireworld}/p05.pddl | 0 .../{st_tires => st_tireworld}/p06.pddl | 0 .../{st_tires => st_tireworld}/p07.pddl | 0 .../{st_tires => st_tireworld}/p08.pddl | 0 .../{st_tires => st_tireworld}/p09.pddl | 0 .../{st_tires => st_tireworld}/p10.pddl | 0 .../{st_tires => st_tireworld}/p11.pddl | 0 .../{st_tires => st_tireworld}/p12.pddl | 0 .../{st_tires => st_tireworld}/p13.pddl | 0 .../{st_tires => st_tireworld}/p14.pddl | 0 .../{st_tires => st_tireworld}/p15.pddl | 0 31 files changed, 1514 insertions(+), 1288 deletions(-) rename benchmarks/{st_tires => st_tireworld}/domain.pddl (59%) rename benchmarks/{st_tires => st_tireworld}/p02.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p03.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p04.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p05.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p06.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p07.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p08.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p09.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p10.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p11.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p12.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p13.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p14.pddl (100%) rename benchmarks/{st_tires => st_tireworld}/p15.pddl (100%) diff --git a/README.md b/README.md index 547468e..5dba3f3 100644 --- a/README.md +++ b/README.md @@ -91,8 +91,13 @@ These five come from the [FOND-SAT](https://github.com/tomsons22/FOND-SAT) repo/ - `chain-of-rooms`: from [Constructing conditional plans by a theorem-prover](https://jair.org/index.php/jair/article/view/10230/), JAIR 10 (1999), 323–352, as part of the QBFPLAN planner. - `earth-observation`: ([J Aldinger & J Löhr, 2013)](https://gki.informatik.uni-freiburg.de/papers/aldinger-loehr-pcd2013.pdf) - `puffbot-dialog`: domain generating the dialogue policy for building dialogue agents in the health-care setting. Reported in [Teixeira et. al SAC'21 paper](https://dl.acm.org/doi/10.1145/3412841.3441942) and [PhD thesis](https://iris.unitn.it/retrieve/handle/11572/361402/595412/phd_unitn_santos_teixeira_milene.pdf). -- `st_mapfdu`: from Thorsten Engesser on planning for implicit coordination. Strong cyclic plans exist, but it's the acyclic ones that are desired. +### From strong domains: `st_xyz` + +These are domains that were designed to admit _strong_ solutions. Strong cyclic plans exist, but it's the acyclic ones that are desired. 😉 + +- `st_blocksworld`, `st_faults`, `st_first_responders`, `st_tiresworld`: domains from the 2008 IPC-6 FOND track that were modified to have _strong_ solutions by [Jicheng Fu et. al ICTAI'13](https://ieeexplore.ieee.org/document/6735234). +- `st_mapfdu`: from Thorsten Engesser on planning for implicit coordination; [AAAI'20](https://doi.org/10.1609/aaai.v34i05.6204). ## Catalogue Tool diff --git a/benchmarks/catalogue.py b/benchmarks/catalogue.py index f4bc838..d75e5e4 100644 --- a/benchmarks/catalogue.py +++ b/benchmarks/catalogue.py @@ -209,12 +209,12 @@ def extract_instance_no(file_name): ) for f in get_instances("st_mapfdu", regex=r"^p\d+.pddl") ] -sttires = [ +st_tiresworld = [ ( "domain.pddl", os.path.basename(f), ) - for f in get_instances("st_tires", regex=r"^p\d+.pddl") + for f in get_instances("st_tiresworld", regex=r"^p\d+.pddl") ] tidyup = [ ( @@ -310,7 +310,7 @@ def extract_instance_no(file_name): "st_faults": st_faults, "st_first_responders": st_first_respondeners, "st_mapfdu": st_mapfdu, - "st_tires": sttires, + "st_tiresworld": st_tiresworld, "tidyup-mdp": tidyup, # "tireworld": tireworld, # "tireworld-spiky": tireworld_spiky, # @@ -353,7 +353,7 @@ def extract_instance_no(file_name): "st_faults", "st_first_responders", "st_mapfdu", - "st_tires", + "st_tiresworld", ], "interesting": ["climber", "bus-fare", "river"], "all": list(DOMAINS.keys()), diff --git a/benchmarks/st_blocksworld/domain.pddl b/benchmarks/st_blocksworld/domain.pddl index 14c4cc1..8ee6f7f 100644 --- a/benchmarks/st_blocksworld/domain.pddl +++ b/benchmarks/st_blocksworld/domain.pddl @@ -1,80 +1,91 @@ (define (domain blocks-domain) (:requirements :non-deterministic :negative-preconditions :equality :typing) - (:types block location) - (:constants l0 l10 - location) - (:predicates - (on ?bm ?bf - block) - (clear ?x - block) - (on-table ?x - block) - (emptyhand) - (holding ?b - block) - (adjacent ?l1 ?l2 - location) - (at ?b - block ?l - location) - (faulty ?b - block ?l - location) + (:types + block location ) - + (:constants + l0 l10 - location + ) + (:predicates + (on ?bm ?bf - block) + (clear ?x - block) + (on-table ?x - block) + (emptyhand) + (holding ?b - block) + (adjacent ?l1 ?l2 - location) + (at ?b - block ?l - location) + (faulty ?b - block ?l - location) + ) + (:action pick-up - :parameters (?b1 - block) - :precondition (at ?b1 l10) - :effect - (and (not (at ?b1 l10)) (oneof (holding ?b1) (and (clear ?b1) (on-table ?b1) (emptyhand) (not (holding ?b1))))) + :parameters (?b1 - block) + :precondition (at ?b1 l10) + :effect (and (not (at ?b1 l10)) (oneof + (holding ?b1) + (and (clear ?b1) (on-table ?b1) (emptyhand) (not (holding ?b1))))) ) (:action pick-up-from-table :parameters (?b - block) :precondition (and (emptyhand) (clear ?b) (on-table ?b)) - :effect (oneof (and (emptyhand) (clear ?b) (on-table ?b)) (and (holding ?b) (not (emptyhand)) (not (on-table ?b)))) + :effect (oneof + (and (emptyhand) (clear ?b) (on-table ?b)) + (and (holding ?b) (not (emptyhand)) (not (on-table ?b)))) ) - + (:action put-on-block :parameters (?b1 ?b2 - block) :precondition (and (holding ?b1) (clear ?b2)) - :effect (oneof (and (on ?b1 ?b2) (emptyhand) (clear ?b1) (not (holding ?b1)) (not (clear ?b2))) - (and (on-table ?b1) (emptyhand) (clear ?b1) (not (holding ?b1)))) + :effect (oneof + (and (on ?b1 ?b2) (emptyhand) (clear ?b1) (not (holding ?b1)) (not (clear ?b2))) + (and (on-table ?b1) (emptyhand) (clear ?b1) (not (holding ?b1)))) ) - + (:action put-down :parameters (?b - block) :precondition (holding ?b) :effect (and (on-table ?b) (emptyhand) (clear ?b) (not (holding ?b))) ) - + (:action pick-tower :parameters (?b1 ?b2 ?b3 - block) :precondition (and (emptyhand) (on ?b1 ?b2) (on ?b2 ?b3)) - :effect (oneof (and (holding ?b2) (clear ?b3) (not (emptyhand)) (not (on ?b2 ?b3))) - (and (emptyhand) (on ?b1 ?b2) (on ?b2 ?b3))) + :effect (oneof + (and (holding ?b2) (clear ?b3) (not (emptyhand)) (not (on ?b2 ?b3))) + (and (emptyhand) (on ?b1 ?b2) (on ?b2 ?b3))) ) - + (:action put-tower-on-block :parameters (?b1 ?b2 ?b3 - block) :precondition (and (holding ?b2) (on ?b1 ?b2) (clear ?b3)) - :effect (oneof (and (on ?b2 ?b3) (emptyhand) (not (holding ?b2)) (not (clear ?b3))) - (and (on-table ?b2) (emptyhand) (not (holding ?b2)))) + :effect (oneof + (and (on ?b2 ?b3) (emptyhand) (not (holding ?b2)) (not (clear ?b3))) + (and (on-table ?b2) (emptyhand) (not (holding ?b2)))) ) - + (:action put-tower-down :parameters (?b1 ?b2 - block) :precondition (and (holding ?b2) (on ?b1 ?b2)) :effect (and (on-table ?b2) (emptyhand) (not (holding ?b2))) ) - + (:action init_pick-up - :parameters (?b1 ?b2 - block) - :precondition (and (emptyhand) (clear ?b1) (on ?b1 ?b2)) - :effect (and (at ?b1 l0) (not (clear ?b1)) (clear ?b2) (not (emptyhand)) (not (on ?b1 ?b2))) - ) - - (:action move - :parameters (?b1 - block ?l1 ?l2 - location) - :precondition (and (at ?b1 ?l1) (adjacent ?l1 ?l2)) - :effect (oneof (and (at ?b1 ?l2) (not (at ?b1 ?l1))) - (and (faulty ?b1 ?l2) (not (at ?b1 ?l1)))) - ) - - (:action fix - :parameters (?b - block ?l1 - location) - :precondition (faulty ?b ?l1) - :effect (and (at ?b ?l1) (not (faulty ?b ?l1))) - ) -) + :parameters (?b1 ?b2 - block) + :precondition (and (emptyhand) (clear ?b1) (on ?b1 ?b2)) + :effect (and (at ?b1 l0) (not (clear ?b1)) (clear ?b2) (not (emptyhand)) (not (on ?b1 ?b2))) + ) + + (:action move + :parameters (?b1 - block ?l1 ?l2 - location) + :precondition (and (at ?b1 ?l1) (adjacent ?l1 ?l2)) + :effect (oneof + (and (at ?b1 ?l2) (not (at ?b1 ?l1))) + (and (faulty ?b1 ?l2) (not (at ?b1 ?l1)))) + ) + + (:action fix + :parameters (?b - block ?l1 - location) + :precondition (faulty ?b ?l1) + :effect (and (at ?b ?l1) (not (faulty ?b ?l1))) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_10_10.pddl b/benchmarks/st_faults/d_10_10.pddl index f090712..72a3a2d 100644 --- a/benchmarks/st_faults/d_10_10.pddl +++ b/benchmarks/st_faults/d_10_10.pddl @@ -1,180 +1,206 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 - fault - o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 - fault + o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action perform_operation_3_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f3) (not (not_fault f3)) - (faulted_op ?o f3) (last_fault f3))) - ) - (:action perform_operation_4_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f4) (not (not_fault f4)) - (faulted_op ?o f4) (last_fault f4))) - ) - (:action perform_operation_5_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f5) (not (not_fault f5)) - (faulted_op ?o f5) (last_fault f5))) - ) - (:action perform_operation_6_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f6) (not (not_fault f6)) - (faulted_op ?o f6) (last_fault f6))) - ) - (:action perform_operation_7_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f7) (not (not_fault f7)) - (faulted_op ?o f7) (last_fault f7))) - ) - (:action perform_operation_8_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f8) (not (not_fault f8)) - (faulted_op ?o f8) (last_fault f8))) - ) - (:action perform_operation_9_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (not_fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f9) (not (not_fault f9)) - (faulted_op ?o f9) (last_fault f9))) - ) - (:action perform_operation_10_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (fault f9) (not_fault f10) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (fault f9) (not_fault f10)) (and (completed ?o) (not (not_completed ?o)) - (fault f10) (not (not_fault f10)) - (faulted_op ?o f10) (last_fault f10))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action repair_fault_3 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f3) (last_fault f3)) - :effect (and (not (faulted_op ?o f3)) - (not_completed ?o) (not (completed ?o)) - (last_fault f2) - (not (last_fault f3)) (not_fault f3) - ) - ) - (:action repair_fault_4 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f4) (last_fault f4)) - :effect (and (not (faulted_op ?o f4)) - (not_completed ?o) (not (completed ?o)) - (last_fault f3) - (not (last_fault f4)) (not_fault f4) - ) - ) - (:action repair_fault_5 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f5) (last_fault f5)) - :effect (and (not (faulted_op ?o f5)) - (not_completed ?o) (not (completed ?o)) - (last_fault f4) - (not (last_fault f5)) (not_fault f5) - ) - ) - (:action repair_fault_6 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f6) (last_fault f6)) - :effect (and (not (faulted_op ?o f6)) - (not_completed ?o) (not (completed ?o)) - (last_fault f5) - (not (last_fault f6)) (not_fault f6) - ) - ) - (:action repair_fault_7 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f7) (last_fault f7)) - :effect (and (not (faulted_op ?o f7)) - (not_completed ?o) (not (completed ?o)) - (last_fault f6) - (not (last_fault f7)) (not_fault f7) - ) - ) - (:action repair_fault_8 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f8) (last_fault f8)) - :effect (and (not (faulted_op ?o f8)) - (not_completed ?o) (not (completed ?o)) - (last_fault f7) - (not (last_fault f8)) (not_fault f8) - ) - ) - (:action repair_fault_9 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f9) (last_fault f9)) - :effect (and (not (faulted_op ?o f9)) - (not_completed ?o) (not (completed ?o)) - (last_fault f8) - (not (last_fault f9)) (not_fault f9) - ) - ) - (:action repair_fault_10 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f10) (last_fault f10)) - :effect (and (not (faulted_op ?o f10)) - (not_completed ?o) (not (completed ?o)) - (last_fault f9) - (not (last_fault f10)) (not_fault f10) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6) (completed o7) (completed o8) (completed o9) (completed o10)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action perform_operation_3_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f3) (not (not_fault f3)) + (faulted_op ?o f3) (last_fault f3))) + ) + (:action perform_operation_4_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f4) (not (not_fault f4)) + (faulted_op ?o f4) (last_fault f4))) + ) + (:action perform_operation_5_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f5) (not (not_fault f5)) + (faulted_op ?o f5) (last_fault f5))) + ) + (:action perform_operation_6_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f6) (not (not_fault f6)) + (faulted_op ?o f6) (last_fault f6))) + ) + (:action perform_operation_7_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f7) (not (not_fault f7)) + (faulted_op ?o f7) (last_fault f7))) + ) + (:action perform_operation_8_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f8) (not (not_fault f8)) + (faulted_op ?o f8) (last_fault f8))) + ) + (:action perform_operation_9_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (not_fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (not_fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f9) (not (not_fault f9)) + (faulted_op ?o f9) (last_fault f9))) + ) + (:action perform_operation_10_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (fault f9) (not_fault f10) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (fault f9) (not_fault f10)) + (and (completed ?o) (not (not_completed ?o)) + (fault f10) (not (not_fault f10)) + (faulted_op ?o f10) (last_fault f10))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action repair_fault_3 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f3) (last_fault f3)) + :effect (and (not (faulted_op ?o f3)) + (not_completed ?o) (not (completed ?o)) + (last_fault f2) + (not (last_fault f3)) (not_fault f3) + ) + ) + (:action repair_fault_4 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f4) (last_fault f4)) + :effect (and (not (faulted_op ?o f4)) + (not_completed ?o) (not (completed ?o)) + (last_fault f3) + (not (last_fault f4)) (not_fault f4) + ) + ) + (:action repair_fault_5 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f5) (last_fault f5)) + :effect (and (not (faulted_op ?o f5)) + (not_completed ?o) (not (completed ?o)) + (last_fault f4) + (not (last_fault f5)) (not_fault f5) + ) + ) + (:action repair_fault_6 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f6) (last_fault f6)) + :effect (and (not (faulted_op ?o f6)) + (not_completed ?o) (not (completed ?o)) + (last_fault f5) + (not (last_fault f6)) (not_fault f6) + ) + ) + (:action repair_fault_7 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f7) (last_fault f7)) + :effect (and (not (faulted_op ?o f7)) + (not_completed ?o) (not (completed ?o)) + (last_fault f6) + (not (last_fault f7)) (not_fault f7) + ) + ) + (:action repair_fault_8 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f8) (last_fault f8)) + :effect (and (not (faulted_op ?o f8)) + (not_completed ?o) (not (completed ?o)) + (last_fault f7) + (not (last_fault f8)) (not_fault f8) + ) + ) + (:action repair_fault_9 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f9) (last_fault f9)) + :effect (and (not (faulted_op ?o f9)) + (not_completed ?o) (not (completed ?o)) + (last_fault f8) + (not (last_fault f9)) (not_fault f9) + ) + ) + (:action repair_fault_10 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f10) (last_fault f10)) + :effect (and (not (faulted_op ?o f10)) + (not_completed ?o) (not (completed ?o)) + (last_fault f9) + (not (last_fault f10)) (not_fault f10) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6) (completed o7) (completed o8) (completed o9) (completed o10)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_1_1.pddl b/benchmarks/st_faults/d_1_1.pddl index 137a944..48bac43 100644 --- a/benchmarks/st_faults/d_1_1.pddl +++ b/benchmarks/st_faults/d_1_1.pddl @@ -1,36 +1,44 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 - fault - o1 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 - fault + o1 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1)) + :effect (made) ) - (:action finish - :parameters () - :precondition (and (completed o1)) - :effect (made) - ) -) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_2_2.pddl b/benchmarks/st_faults/d_2_2.pddl index 3efae9f..49446fc 100644 --- a/benchmarks/st_faults/d_2_2.pddl +++ b/benchmarks/st_faults/d_2_2.pddl @@ -1,52 +1,62 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 - fault - o1 o2 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 - fault + o1 o2 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_3_3.pddl b/benchmarks/st_faults/d_3_3.pddl index e594b1e..fccae42 100644 --- a/benchmarks/st_faults/d_3_3.pddl +++ b/benchmarks/st_faults/d_3_3.pddl @@ -1,68 +1,80 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 f3 - fault - o1 o2 o3 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 f3 - fault + o1 o2 o3 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action perform_operation_3_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (not_fault f3) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3)) (and (completed ?o) (not (not_completed ?o)) - (fault f3) (not (not_fault f3)) - (faulted_op ?o f3) (last_fault f3))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action repair_fault_3 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f3) (last_fault f3)) - :effect (and (not (faulted_op ?o f3)) - (not_completed ?o) (not (completed ?o)) - (last_fault f2) - (not (last_fault f3)) (not_fault f3) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2) (completed o3)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action perform_operation_3_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (not_fault f3) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3)) + (and (completed ?o) (not (not_completed ?o)) + (fault f3) (not (not_fault f3)) + (faulted_op ?o f3) (last_fault f3))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action repair_fault_3 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f3) (last_fault f3)) + :effect (and (not (faulted_op ?o f3)) + (not_completed ?o) (not (completed ?o)) + (last_fault f2) + (not (last_fault f3)) (not_fault f3) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2) (completed o3)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_4_4.pddl b/benchmarks/st_faults/d_4_4.pddl index 5fe8cc6..11af90f 100644 --- a/benchmarks/st_faults/d_4_4.pddl +++ b/benchmarks/st_faults/d_4_4.pddl @@ -1,84 +1,98 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 f3 f4 - fault - o1 o2 o3 o4 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 f3 f4 - fault + o1 o2 o3 o4 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action perform_operation_3_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4)) (and (completed ?o) (not (not_completed ?o)) - (fault f3) (not (not_fault f3)) - (faulted_op ?o f3) (last_fault f3))) - ) - (:action perform_operation_4_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4)) (and (completed ?o) (not (not_completed ?o)) - (fault f4) (not (not_fault f4)) - (faulted_op ?o f4) (last_fault f4))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action repair_fault_3 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f3) (last_fault f3)) - :effect (and (not (faulted_op ?o f3)) - (not_completed ?o) (not (completed ?o)) - (last_fault f2) - (not (last_fault f3)) (not_fault f3) - ) - ) - (:action repair_fault_4 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f4) (last_fault f4)) - :effect (and (not (faulted_op ?o f4)) - (not_completed ?o) (not (completed ?o)) - (last_fault f3) - (not (last_fault f4)) (not_fault f4) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2) (completed o3) (completed o4)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action perform_operation_3_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4)) + (and (completed ?o) (not (not_completed ?o)) + (fault f3) (not (not_fault f3)) + (faulted_op ?o f3) (last_fault f3))) + ) + (:action perform_operation_4_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4)) + (and (completed ?o) (not (not_completed ?o)) + (fault f4) (not (not_fault f4)) + (faulted_op ?o f4) (last_fault f4))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action repair_fault_3 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f3) (last_fault f3)) + :effect (and (not (faulted_op ?o f3)) + (not_completed ?o) (not (completed ?o)) + (last_fault f2) + (not (last_fault f3)) (not_fault f3) + ) + ) + (:action repair_fault_4 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f4) (last_fault f4)) + :effect (and (not (faulted_op ?o f4)) + (not_completed ?o) (not (completed ?o)) + (last_fault f3) + (not (last_fault f4)) (not_fault f4) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2) (completed o3) (completed o4)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_5_5.pddl b/benchmarks/st_faults/d_5_5.pddl index 640e1dd..a88f8ba 100644 --- a/benchmarks/st_faults/d_5_5.pddl +++ b/benchmarks/st_faults/d_5_5.pddl @@ -1,100 +1,116 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 f3 f4 f5 - fault - o1 o2 o3 o4 o5 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 f3 f4 f5 - fault + o1 o2 o3 o4 o5 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action perform_operation_3_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5)) (and (completed ?o) (not (not_completed ?o)) - (fault f3) (not (not_fault f3)) - (faulted_op ?o f3) (last_fault f3))) - ) - (:action perform_operation_4_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5)) (and (completed ?o) (not (not_completed ?o)) - (fault f4) (not (not_fault f4)) - (faulted_op ?o f4) (last_fault f4))) - ) - (:action perform_operation_5_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5)) (and (completed ?o) (not (not_completed ?o)) - (fault f5) (not (not_fault f5)) - (faulted_op ?o f5) (last_fault f5))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action repair_fault_3 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f3) (last_fault f3)) - :effect (and (not (faulted_op ?o f3)) - (not_completed ?o) (not (completed ?o)) - (last_fault f2) - (not (last_fault f3)) (not_fault f3) - ) - ) - (:action repair_fault_4 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f4) (last_fault f4)) - :effect (and (not (faulted_op ?o f4)) - (not_completed ?o) (not (completed ?o)) - (last_fault f3) - (not (last_fault f4)) (not_fault f4) - ) - ) - (:action repair_fault_5 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f5) (last_fault f5)) - :effect (and (not (faulted_op ?o f5)) - (not_completed ?o) (not (completed ?o)) - (last_fault f4) - (not (last_fault f5)) (not_fault f5) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action perform_operation_3_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5)) + (and (completed ?o) (not (not_completed ?o)) + (fault f3) (not (not_fault f3)) + (faulted_op ?o f3) (last_fault f3))) + ) + (:action perform_operation_4_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5)) + (and (completed ?o) (not (not_completed ?o)) + (fault f4) (not (not_fault f4)) + (faulted_op ?o f4) (last_fault f4))) + ) + (:action perform_operation_5_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5)) + (and (completed ?o) (not (not_completed ?o)) + (fault f5) (not (not_fault f5)) + (faulted_op ?o f5) (last_fault f5))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action repair_fault_3 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f3) (last_fault f3)) + :effect (and (not (faulted_op ?o f3)) + (not_completed ?o) (not (completed ?o)) + (last_fault f2) + (not (last_fault f3)) (not_fault f3) + ) + ) + (:action repair_fault_4 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f4) (last_fault f4)) + :effect (and (not (faulted_op ?o f4)) + (not_completed ?o) (not (completed ?o)) + (last_fault f3) + (not (last_fault f4)) (not_fault f4) + ) + ) + (:action repair_fault_5 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f5) (last_fault f5)) + :effect (and (not (faulted_op ?o f5)) + (not_completed ?o) (not (completed ?o)) + (last_fault f4) + (not (last_fault f5)) (not_fault f5) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_6_6.pddl b/benchmarks/st_faults/d_6_6.pddl index 6944de3..235d68b 100644 --- a/benchmarks/st_faults/d_6_6.pddl +++ b/benchmarks/st_faults/d_6_6.pddl @@ -1,116 +1,134 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 f3 f4 f5 f6 - fault - o1 o2 o3 o4 o5 o6 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 f3 f4 f5 f6 - fault + o1 o2 o3 o4 o5 o6 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action perform_operation_3_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6)) (and (completed ?o) (not (not_completed ?o)) - (fault f3) (not (not_fault f3)) - (faulted_op ?o f3) (last_fault f3))) - ) - (:action perform_operation_4_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6)) (and (completed ?o) (not (not_completed ?o)) - (fault f4) (not (not_fault f4)) - (faulted_op ?o f4) (last_fault f4))) - ) - (:action perform_operation_5_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6)) (and (completed ?o) (not (not_completed ?o)) - (fault f5) (not (not_fault f5)) - (faulted_op ?o f5) (last_fault f5))) - ) - (:action perform_operation_6_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6)) (and (completed ?o) (not (not_completed ?o)) - (fault f6) (not (not_fault f6)) - (faulted_op ?o f6) (last_fault f6))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action repair_fault_3 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f3) (last_fault f3)) - :effect (and (not (faulted_op ?o f3)) - (not_completed ?o) (not (completed ?o)) - (last_fault f2) - (not (last_fault f3)) (not_fault f3) - ) - ) - (:action repair_fault_4 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f4) (last_fault f4)) - :effect (and (not (faulted_op ?o f4)) - (not_completed ?o) (not (completed ?o)) - (last_fault f3) - (not (last_fault f4)) (not_fault f4) - ) - ) - (:action repair_fault_5 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f5) (last_fault f5)) - :effect (and (not (faulted_op ?o f5)) - (not_completed ?o) (not (completed ?o)) - (last_fault f4) - (not (last_fault f5)) (not_fault f5) - ) - ) - (:action repair_fault_6 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f6) (last_fault f6)) - :effect (and (not (faulted_op ?o f6)) - (not_completed ?o) (not (completed ?o)) - (last_fault f5) - (not (last_fault f6)) (not_fault f6) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action perform_operation_3_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6)) + (and (completed ?o) (not (not_completed ?o)) + (fault f3) (not (not_fault f3)) + (faulted_op ?o f3) (last_fault f3))) + ) + (:action perform_operation_4_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6)) + (and (completed ?o) (not (not_completed ?o)) + (fault f4) (not (not_fault f4)) + (faulted_op ?o f4) (last_fault f4))) + ) + (:action perform_operation_5_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6)) + (and (completed ?o) (not (not_completed ?o)) + (fault f5) (not (not_fault f5)) + (faulted_op ?o f5) (last_fault f5))) + ) + (:action perform_operation_6_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6)) + (and (completed ?o) (not (not_completed ?o)) + (fault f6) (not (not_fault f6)) + (faulted_op ?o f6) (last_fault f6))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action repair_fault_3 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f3) (last_fault f3)) + :effect (and (not (faulted_op ?o f3)) + (not_completed ?o) (not (completed ?o)) + (last_fault f2) + (not (last_fault f3)) (not_fault f3) + ) + ) + (:action repair_fault_4 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f4) (last_fault f4)) + :effect (and (not (faulted_op ?o f4)) + (not_completed ?o) (not (completed ?o)) + (last_fault f3) + (not (last_fault f4)) (not_fault f4) + ) + ) + (:action repair_fault_5 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f5) (last_fault f5)) + :effect (and (not (faulted_op ?o f5)) + (not_completed ?o) (not (completed ?o)) + (last_fault f4) + (not (last_fault f5)) (not_fault f5) + ) + ) + (:action repair_fault_6 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f6) (last_fault f6)) + :effect (and (not (faulted_op ?o f6)) + (not_completed ?o) (not (completed ?o)) + (last_fault f5) + (not (last_fault f6)) (not_fault f6) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_7_7.pddl b/benchmarks/st_faults/d_7_7.pddl index 08e7d14..60c3b63 100644 --- a/benchmarks/st_faults/d_7_7.pddl +++ b/benchmarks/st_faults/d_7_7.pddl @@ -1,132 +1,152 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 f3 f4 f5 f6 f7 - fault - o1 o2 o3 o4 o5 o6 o7 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 f3 f4 f5 f6 f7 - fault + o1 o2 o3 o4 o5 o6 o7 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action perform_operation_3_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) (and (completed ?o) (not (not_completed ?o)) - (fault f3) (not (not_fault f3)) - (faulted_op ?o f3) (last_fault f3))) - ) - (:action perform_operation_4_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) (and (completed ?o) (not (not_completed ?o)) - (fault f4) (not (not_fault f4)) - (faulted_op ?o f4) (last_fault f4))) - ) - (:action perform_operation_5_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) (and (completed ?o) (not (not_completed ?o)) - (fault f5) (not (not_fault f5)) - (faulted_op ?o f5) (last_fault f5))) - ) - (:action perform_operation_6_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7)) (and (completed ?o) (not (not_completed ?o)) - (fault f6) (not (not_fault f6)) - (faulted_op ?o f6) (last_fault f6))) - ) - (:action perform_operation_7_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7)) (and (completed ?o) (not (not_completed ?o)) - (fault f7) (not (not_fault f7)) - (faulted_op ?o f7) (last_fault f7))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action repair_fault_3 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f3) (last_fault f3)) - :effect (and (not (faulted_op ?o f3)) - (not_completed ?o) (not (completed ?o)) - (last_fault f2) - (not (last_fault f3)) (not_fault f3) - ) - ) - (:action repair_fault_4 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f4) (last_fault f4)) - :effect (and (not (faulted_op ?o f4)) - (not_completed ?o) (not (completed ?o)) - (last_fault f3) - (not (last_fault f4)) (not_fault f4) - ) - ) - (:action repair_fault_5 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f5) (last_fault f5)) - :effect (and (not (faulted_op ?o f5)) - (not_completed ?o) (not (completed ?o)) - (last_fault f4) - (not (last_fault f5)) (not_fault f5) - ) - ) - (:action repair_fault_6 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f6) (last_fault f6)) - :effect (and (not (faulted_op ?o f6)) - (not_completed ?o) (not (completed ?o)) - (last_fault f5) - (not (last_fault f6)) (not_fault f6) - ) - ) - (:action repair_fault_7 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f7) (last_fault f7)) - :effect (and (not (faulted_op ?o f7)) - (not_completed ?o) (not (completed ?o)) - (last_fault f6) - (not (last_fault f7)) (not_fault f7) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6) (completed o7)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action perform_operation_3_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) + (and (completed ?o) (not (not_completed ?o)) + (fault f3) (not (not_fault f3)) + (faulted_op ?o f3) (last_fault f3))) + ) + (:action perform_operation_4_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) + (and (completed ?o) (not (not_completed ?o)) + (fault f4) (not (not_fault f4)) + (faulted_op ?o f4) (last_fault f4))) + ) + (:action perform_operation_5_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7)) + (and (completed ?o) (not (not_completed ?o)) + (fault f5) (not (not_fault f5)) + (faulted_op ?o f5) (last_fault f5))) + ) + (:action perform_operation_6_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7)) + (and (completed ?o) (not (not_completed ?o)) + (fault f6) (not (not_fault f6)) + (faulted_op ?o f6) (last_fault f6))) + ) + (:action perform_operation_7_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7)) + (and (completed ?o) (not (not_completed ?o)) + (fault f7) (not (not_fault f7)) + (faulted_op ?o f7) (last_fault f7))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action repair_fault_3 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f3) (last_fault f3)) + :effect (and (not (faulted_op ?o f3)) + (not_completed ?o) (not (completed ?o)) + (last_fault f2) + (not (last_fault f3)) (not_fault f3) + ) + ) + (:action repair_fault_4 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f4) (last_fault f4)) + :effect (and (not (faulted_op ?o f4)) + (not_completed ?o) (not (completed ?o)) + (last_fault f3) + (not (last_fault f4)) (not_fault f4) + ) + ) + (:action repair_fault_5 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f5) (last_fault f5)) + :effect (and (not (faulted_op ?o f5)) + (not_completed ?o) (not (completed ?o)) + (last_fault f4) + (not (last_fault f5)) (not_fault f5) + ) + ) + (:action repair_fault_6 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f6) (last_fault f6)) + :effect (and (not (faulted_op ?o f6)) + (not_completed ?o) (not (completed ?o)) + (last_fault f5) + (not (last_fault f6)) (not_fault f6) + ) + ) + (:action repair_fault_7 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f7) (last_fault f7)) + :effect (and (not (faulted_op ?o f7)) + (not_completed ?o) (not (completed ?o)) + (last_fault f6) + (not (last_fault f7)) (not_fault f7) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6) (completed o7)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_8_8.pddl b/benchmarks/st_faults/d_8_8.pddl index 7f8cb7c..7c48dd9 100644 --- a/benchmarks/st_faults/d_8_8.pddl +++ b/benchmarks/st_faults/d_8_8.pddl @@ -1,148 +1,170 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 f3 f4 f5 f6 f7 f8 - fault - o1 o2 o3 o4 o5 o6 o7 o8 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 f3 f4 f5 f6 f7 f8 - fault + o1 o2 o3 o4 o5 o6 o7 o8 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action perform_operation_3_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) (and (completed ?o) (not (not_completed ?o)) - (fault f3) (not (not_fault f3)) - (faulted_op ?o f3) (last_fault f3))) - ) - (:action perform_operation_4_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) (and (completed ?o) (not (not_completed ?o)) - (fault f4) (not (not_fault f4)) - (faulted_op ?o f4) (last_fault f4))) - ) - (:action perform_operation_5_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) (and (completed ?o) (not (not_completed ?o)) - (fault f5) (not (not_fault f5)) - (faulted_op ?o f5) (last_fault f5))) - ) - (:action perform_operation_6_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) (and (completed ?o) (not (not_completed ?o)) - (fault f6) (not (not_fault f6)) - (faulted_op ?o f6) (last_fault f6))) - ) - (:action perform_operation_7_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8)) (and (completed ?o) (not (not_completed ?o)) - (fault f7) (not (not_fault f7)) - (faulted_op ?o f7) (last_fault f7))) - ) - (:action perform_operation_8_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8)) (and (completed ?o) (not (not_completed ?o)) - (fault f8) (not (not_fault f8)) - (faulted_op ?o f8) (last_fault f8))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action repair_fault_3 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f3) (last_fault f3)) - :effect (and (not (faulted_op ?o f3)) - (not_completed ?o) (not (completed ?o)) - (last_fault f2) - (not (last_fault f3)) (not_fault f3) - ) - ) - (:action repair_fault_4 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f4) (last_fault f4)) - :effect (and (not (faulted_op ?o f4)) - (not_completed ?o) (not (completed ?o)) - (last_fault f3) - (not (last_fault f4)) (not_fault f4) - ) - ) - (:action repair_fault_5 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f5) (last_fault f5)) - :effect (and (not (faulted_op ?o f5)) - (not_completed ?o) (not (completed ?o)) - (last_fault f4) - (not (last_fault f5)) (not_fault f5) - ) - ) - (:action repair_fault_6 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f6) (last_fault f6)) - :effect (and (not (faulted_op ?o f6)) - (not_completed ?o) (not (completed ?o)) - (last_fault f5) - (not (last_fault f6)) (not_fault f6) - ) - ) - (:action repair_fault_7 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f7) (last_fault f7)) - :effect (and (not (faulted_op ?o f7)) - (not_completed ?o) (not (completed ?o)) - (last_fault f6) - (not (last_fault f7)) (not_fault f7) - ) - ) - (:action repair_fault_8 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f8) (last_fault f8)) - :effect (and (not (faulted_op ?o f8)) - (not_completed ?o) (not (completed ?o)) - (last_fault f7) - (not (last_fault f8)) (not_fault f8) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6) (completed o7) (completed o8)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action perform_operation_3_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) + (and (completed ?o) (not (not_completed ?o)) + (fault f3) (not (not_fault f3)) + (faulted_op ?o f3) (last_fault f3))) + ) + (:action perform_operation_4_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) + (and (completed ?o) (not (not_completed ?o)) + (fault f4) (not (not_fault f4)) + (faulted_op ?o f4) (last_fault f4))) + ) + (:action perform_operation_5_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) + (and (completed ?o) (not (not_completed ?o)) + (fault f5) (not (not_fault f5)) + (faulted_op ?o f5) (last_fault f5))) + ) + (:action perform_operation_6_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8)) + (and (completed ?o) (not (not_completed ?o)) + (fault f6) (not (not_fault f6)) + (faulted_op ?o f6) (last_fault f6))) + ) + (:action perform_operation_7_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8)) + (and (completed ?o) (not (not_completed ?o)) + (fault f7) (not (not_fault f7)) + (faulted_op ?o f7) (last_fault f7))) + ) + (:action perform_operation_8_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8)) + (and (completed ?o) (not (not_completed ?o)) + (fault f8) (not (not_fault f8)) + (faulted_op ?o f8) (last_fault f8))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action repair_fault_3 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f3) (last_fault f3)) + :effect (and (not (faulted_op ?o f3)) + (not_completed ?o) (not (completed ?o)) + (last_fault f2) + (not (last_fault f3)) (not_fault f3) + ) + ) + (:action repair_fault_4 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f4) (last_fault f4)) + :effect (and (not (faulted_op ?o f4)) + (not_completed ?o) (not (completed ?o)) + (last_fault f3) + (not (last_fault f4)) (not_fault f4) + ) + ) + (:action repair_fault_5 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f5) (last_fault f5)) + :effect (and (not (faulted_op ?o f5)) + (not_completed ?o) (not (completed ?o)) + (last_fault f4) + (not (last_fault f5)) (not_fault f5) + ) + ) + (:action repair_fault_6 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f6) (last_fault f6)) + :effect (and (not (faulted_op ?o f6)) + (not_completed ?o) (not (completed ?o)) + (last_fault f5) + (not (last_fault f6)) (not_fault f6) + ) + ) + (:action repair_fault_7 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f7) (last_fault f7)) + :effect (and (not (faulted_op ?o f7)) + (not_completed ?o) (not (completed ?o)) + (last_fault f6) + (not (last_fault f7)) (not_fault f7) + ) + ) + (:action repair_fault_8 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f8) (last_fault f8)) + :effect (and (not (faulted_op ?o f8)) + (not_completed ?o) (not (completed ?o)) + (last_fault f7) + (not (last_fault f8)) (not_fault f8) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6) (completed o7) (completed o8)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/d_9_9.pddl b/benchmarks/st_faults/d_9_9.pddl index 9b58883..fe10635 100644 --- a/benchmarks/st_faults/d_9_9.pddl +++ b/benchmarks/st_faults/d_9_9.pddl @@ -1,164 +1,188 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain faults) - (:requirements :non-deterministic :typing) - (:types operation fault) - (:constants f1 f2 f3 f4 f5 f6 f7 f8 f9 - fault - o1 o2 o3 o4 o5 o6 o7 o8 o9 - operation) - (:predicates - (not_completed ?o - operation) - (completed ?o - operation) - (fault ?f - fault) - (not_fault ?f - fault) - (faulted_op ?o - operation ?f - fault) - (last_fault ?f - fault) - (made) - ) + (:requirements :non-deterministic :typing) + (:types + operation fault + ) + (:constants + f1 f2 f3 f4 f5 f6 f7 f8 f9 - fault + o1 o2 o3 o4 o5 o6 o7 o8 o9 - operation + ) + (:predicates + (not_completed ?o - operation) + (completed ?o - operation) + (fault ?f - fault) + (not_fault ?f - fault) + (faulted_op ?o - operation ?f - fault) + (last_fault ?f - fault) + (made) + ) - (:action perform_operation_1_fault - :parameters (?o - operation) - :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f1) (not (not_fault f1)) - (faulted_op ?o f1) (last_fault f1))) - ) - (:action perform_operation_2_fault - :parameters (?o - operation) - :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f2) (not (not_fault f2)) - (faulted_op ?o f2) (last_fault f2))) - ) - (:action perform_operation_3_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f3) (not (not_fault f3)) - (faulted_op ?o f3) (last_fault f3))) - ) - (:action perform_operation_4_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f4) (not (not_fault f4)) - (faulted_op ?o f4) (last_fault f4))) - ) - (:action perform_operation_5_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f5) (not (not_fault f5)) - (faulted_op ?o f5) (last_fault f5))) - ) - (:action perform_operation_6_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f6) (not (not_fault f6)) - (faulted_op ?o f6) (last_fault f6))) - ) - (:action perform_operation_7_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f7) (not (not_fault f7)) - (faulted_op ?o f7) (last_fault f7))) - ) - (:action perform_operation_8_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f8) (not (not_fault f8)) - (faulted_op ?o f8) (last_fault f8))) - ) - (:action perform_operation_9_fault - :parameters (?o - operation) - :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (not_fault f9) (not_completed ?o)) - :effect (oneof (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (not_fault f9)) (and (completed ?o) (not (not_completed ?o)) - (fault f9) (not (not_fault f9)) - (faulted_op ?o f9) (last_fault f9))) - ) - (:action repair_fault_1 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f1) (last_fault f1)) - :effect (and (not (faulted_op ?o f1)) - (not_completed ?o) (not (completed ?o)) - (not (last_fault f1)) (not_fault f1) - ) - ) - (:action repair_fault_2 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f2) (last_fault f2)) - :effect (and (not (faulted_op ?o f2)) - (not_completed ?o) (not (completed ?o)) - (last_fault f1) - (not (last_fault f2)) (not_fault f2) - ) - ) - (:action repair_fault_3 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f3) (last_fault f3)) - :effect (and (not (faulted_op ?o f3)) - (not_completed ?o) (not (completed ?o)) - (last_fault f2) - (not (last_fault f3)) (not_fault f3) - ) - ) - (:action repair_fault_4 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f4) (last_fault f4)) - :effect (and (not (faulted_op ?o f4)) - (not_completed ?o) (not (completed ?o)) - (last_fault f3) - (not (last_fault f4)) (not_fault f4) - ) - ) - (:action repair_fault_5 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f5) (last_fault f5)) - :effect (and (not (faulted_op ?o f5)) - (not_completed ?o) (not (completed ?o)) - (last_fault f4) - (not (last_fault f5)) (not_fault f5) - ) - ) - (:action repair_fault_6 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f6) (last_fault f6)) - :effect (and (not (faulted_op ?o f6)) - (not_completed ?o) (not (completed ?o)) - (last_fault f5) - (not (last_fault f6)) (not_fault f6) - ) - ) - (:action repair_fault_7 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f7) (last_fault f7)) - :effect (and (not (faulted_op ?o f7)) - (not_completed ?o) (not (completed ?o)) - (last_fault f6) - (not (last_fault f7)) (not_fault f7) - ) - ) - (:action repair_fault_8 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f8) (last_fault f8)) - :effect (and (not (faulted_op ?o f8)) - (not_completed ?o) (not (completed ?o)) - (last_fault f7) - (not (last_fault f8)) (not_fault f8) - ) - ) - (:action repair_fault_9 - :parameters (?o - operation) - :precondition (and (faulted_op ?o f9) (last_fault f9)) - :effect (and (not (faulted_op ?o f9)) - (not_completed ?o) (not (completed ?o)) - (last_fault f8) - (not (last_fault f9)) (not_fault f9) - ) - ) - (:action finish - :parameters () - :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6) (completed o7) (completed o8) (completed o9)) - :effect (made) - ) -) + (:action perform_operation_1_fault + :parameters (?o - operation) + :precondition (and (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (not_fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f1) (not (not_fault f1)) + (faulted_op ?o f1) (last_fault f1))) + ) + (:action perform_operation_2_fault + :parameters (?o - operation) + :precondition (and (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (not_fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f2) (not (not_fault f2)) + (faulted_op ?o f2) (last_fault f2))) + ) + (:action perform_operation_3_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (not_fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f3) (not (not_fault f3)) + (faulted_op ?o f3) (last_fault f3))) + ) + (:action perform_operation_4_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (not_fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f4) (not (not_fault f4)) + (faulted_op ?o f4) (last_fault f4))) + ) + (:action perform_operation_5_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (not_fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f5) (not (not_fault f5)) + (faulted_op ?o f5) (last_fault f5))) + ) + (:action perform_operation_6_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (not_fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f6) (not (not_fault f6)) + (faulted_op ?o f6) (last_fault f6))) + ) + (:action perform_operation_7_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (not_fault f7) (not_fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f7) (not (not_fault f7)) + (faulted_op ?o f7) (last_fault f7))) + ) + (:action perform_operation_8_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (not_fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f8) (not (not_fault f8)) + (faulted_op ?o f8) (last_fault f8))) + ) + (:action perform_operation_9_fault + :parameters (?o - operation) + :precondition (and (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (not_fault f9) (not_completed ?o)) + :effect (oneof + (and (completed ?o) (not (not_completed ?o)) (fault f1) (fault f2) (fault f3) (fault f4) (fault f5) (fault f6) (fault f7) (fault f8) (not_fault f9)) + (and (completed ?o) (not (not_completed ?o)) + (fault f9) (not (not_fault f9)) + (faulted_op ?o f9) (last_fault f9))) + ) + (:action repair_fault_1 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f1) (last_fault f1)) + :effect (and (not (faulted_op ?o f1)) + (not_completed ?o) (not (completed ?o)) + (not (last_fault f1)) (not_fault f1) + ) + ) + (:action repair_fault_2 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f2) (last_fault f2)) + :effect (and (not (faulted_op ?o f2)) + (not_completed ?o) (not (completed ?o)) + (last_fault f1) + (not (last_fault f2)) (not_fault f2) + ) + ) + (:action repair_fault_3 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f3) (last_fault f3)) + :effect (and (not (faulted_op ?o f3)) + (not_completed ?o) (not (completed ?o)) + (last_fault f2) + (not (last_fault f3)) (not_fault f3) + ) + ) + (:action repair_fault_4 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f4) (last_fault f4)) + :effect (and (not (faulted_op ?o f4)) + (not_completed ?o) (not (completed ?o)) + (last_fault f3) + (not (last_fault f4)) (not_fault f4) + ) + ) + (:action repair_fault_5 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f5) (last_fault f5)) + :effect (and (not (faulted_op ?o f5)) + (not_completed ?o) (not (completed ?o)) + (last_fault f4) + (not (last_fault f5)) (not_fault f5) + ) + ) + (:action repair_fault_6 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f6) (last_fault f6)) + :effect (and (not (faulted_op ?o f6)) + (not_completed ?o) (not (completed ?o)) + (last_fault f5) + (not (last_fault f6)) (not_fault f6) + ) + ) + (:action repair_fault_7 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f7) (last_fault f7)) + :effect (and (not (faulted_op ?o f7)) + (not_completed ?o) (not (completed ?o)) + (last_fault f6) + (not (last_fault f7)) (not_fault f7) + ) + ) + (:action repair_fault_8 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f8) (last_fault f8)) + :effect (and (not (faulted_op ?o f8)) + (not_completed ?o) (not (completed ?o)) + (last_fault f7) + (not (last_fault f8)) (not_fault f8) + ) + ) + (:action repair_fault_9 + :parameters (?o - operation) + :precondition (and (faulted_op ?o f9) (last_fault f9)) + :effect (and (not (faulted_op ?o f9)) + (not_completed ?o) (not (completed ?o)) + (last_fault f8) + (not (last_fault f9)) (not_fault f9) + ) + ) + (:action finish + :parameters () + :precondition (and (completed o1) (completed o2) (completed o3) (completed o4) (completed o5) (completed o6) (completed o7) (completed o8) (completed o9)) + :effect (made) + ) +) \ No newline at end of file diff --git a/benchmarks/st_faults/p_1_1.pddl b/benchmarks/st_faults/p_1_1.pddl index dce2808..23a391e 100644 --- a/benchmarks/st_faults/p_1_1.pddl +++ b/benchmarks/st_faults/p_1_1.pddl @@ -7,4 +7,4 @@ (:goal (made) ) -) +) \ No newline at end of file diff --git a/benchmarks/st_first_responders/domain.pddl b/benchmarks/st_first_responders/domain.pddl index d5beab3..bb41237 100644 --- a/benchmarks/st_first_responders/domain.pddl +++ b/benchmarks/st_first_responders/domain.pddl @@ -1,91 +1,101 @@ +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain first-response) - (:requirements :non-deterministic :negative-preconditions :equality :typing) - (:types location victim status fire_unit medical_unit) - (:constants healthy hurt dying - status) - (:predicates - (fire ?l - location) - (nfire ?l - location) - (victim-at ?v - victim ?l - location) - (victim-status ?v - victim ?s - status) - (hospital ?l - location) - (water-at ?l - location) - (adjacent ?l1 ?l2 - location) - (fire-unit-at ?u - fire_unit ?l - location) - (medical-unit-at ?u - medical_unit ?l - location) - (have-water ?u - fire_unit) - (have-victim-in-unit ?v - victim ?u - medical_unit) - ) + (:requirements :non-deterministic :negative-preconditions :equality :typing) + (:types + location victim status fire_unit medical_unit + ) + (:constants + healthy hurt dying - status + ) + (:predicates + (fire ?l - location) + (nfire ?l - location) + (victim-at ?v - victim ?l - location) + (victim-status ?v - victim ?s - status) + (hospital ?l - location) + (water-at ?l - location) + (adjacent ?l1 ?l2 - location) + (fire-unit-at ?u - fire_unit ?l - location) + (medical-unit-at ?u - medical_unit ?l - location) + (have-water ?u - fire_unit) + (have-victim-in-unit ?v - victim ?u - medical_unit) + ) - (:action drive-fire-unit - :parameters (?u - fire_unit ?from - location ?to - location) - :precondition (and (fire-unit-at ?u ?from) - (adjacent ?to ?from) - (not (fire ?to)) - ) - :effect (and (fire-unit-at ?u ?to) (not (fire-unit-at ?u ?from))) - ) + (:action drive-fire-unit + :parameters (?u - fire_unit ?from - location ?to - location) + :precondition (and (fire-unit-at ?u ?from) + (adjacent ?to ?from) + (not (fire ?to)) + ) + :effect (and (fire-unit-at ?u ?to) (not (fire-unit-at ?u ?from))) + ) - (:action drive-medical-unit - :parameters (?u - medical_unit ?from - location ?to - location) - :precondition (and (medical-unit-at ?u ?from) - (adjacent ?to ?from) - (not (fire ?to)) - ) - :effect (and (medical-unit-at ?u ?to) (not (medical-unit-at ?u ?from))) - ) + (:action drive-medical-unit + :parameters (?u - medical_unit ?from - location ?to - location) + :precondition (and (medical-unit-at ?u ?from) + (adjacent ?to ?from) + (not (fire ?to)) + ) + :effect (and (medical-unit-at ?u ?to) (not (medical-unit-at ?u ?from))) + ) - + (:action load-fire-unit + :parameters (?u - fire_unit ?l - location) + :precondition (and (fire-unit-at ?u ?l) (water-at ?l)) + :effect (have-water ?u) + ) - (:action load-fire-unit - :parameters (?u - fire_unit ?l - location) - :precondition (and (fire-unit-at ?u ?l) (water-at ?l)) - :effect (have-water ?u)) + (:action load-medical-unit + :parameters (?u - medical_unit ?l - location ?v - victim) + :precondition (and (medical-unit-at ?u ?l) (victim-at ?v ?l)) + :effect (and (have-victim-in-unit ?v ?u) + (not (victim-at ?v ?l))) + ) - (:action load-medical-unit - :parameters (?u - medical_unit ?l - location ?v - victim) - :precondition (and (medical-unit-at ?u ?l) (victim-at ?v ?l)) - :effect (and (have-victim-in-unit ?v ?u) - (not (victim-at ?v ?l)))) + (:action unload-fire-unit + :parameters (?u - fire_unit ?l ?l1 - location) + :precondition (and (fire-unit-at ?u ?l) + (adjacent ?l1 ?l) + (have-water ?u) + (fire ?l1)) + :effect (and (not (have-water ?u)) + (nfire ?l1) (not (fire ?l1))) + ) - - - (:action unload-fire-unit - :parameters (?u - fire_unit ?l ?l1 - location) - :precondition (and (fire-unit-at ?u ?l) - (adjacent ?l1 ?l) - (have-water ?u) - (fire ?l1)) - :effect (and (not (have-water ?u)) - (nfire ?l1) (not (fire ?l1)))) + (:action unload-medical-unit + :parameters (?u - medical_unit ?l - location ?v - victim) + :precondition (and (medical-unit-at ?u ?l)(have-victim-in-unit ?v ?u)) + :effect (and (victim-at ?v ?l) (not (have-victim-in-unit ?v ?u))) + ) - (:action unload-medical-unit - :parameters (?u - medical_unit ?l - location ?v - victim) - :precondition (and (medical-unit-at ?u ?l)(have-victim-in-unit ?v ?u)) - :effect (and (victim-at ?v ?l) (not (have-victim-in-unit ?v ?u)))) + (:action treat-victim-on-scene-medical + :parameters (?u - medical_unit ?l - location ?v - victim) + :precondition (and (medical-unit-at ?u ?l) + (victim-at ?v ?l) + (victim-status ?v hurt)) + :effect (and (oneof + (victim-status ?v healthy) + (victim-status ?v dying)) (not (victim-status ?v hurt))) + ) + (:action treat-victim-on-scene-fire + :parameters (?u - fire_unit ?l - location ?v - victim) + :precondition (and (fire-unit-at ?u ?l) + (victim-at ?v ?l) + (victim-status ?v hurt)) + :effect (and (oneof + (victim-status ?v healthy) + (victim-status ?v dying)) (not (victim-status ?v hurt))) + ) - (:action treat-victim-on-scene-medical - :parameters (?u - medical_unit ?l - location ?v - victim) - :precondition (and (medical-unit-at ?u ?l) - (victim-at ?v ?l) - (victim-status ?v hurt)) - :effect (and (oneof (victim-status ?v healthy) (victim-status ?v dying)) (not (victim-status ?v hurt))) - ) + (:action treat-victim-at-hospital + :parameters (?v - victim ?l - location) + :precondition (and (victim-at ?v ?l) + (hospital ?l)) + :effect (and (victim-status ?v healthy) + (not (victim-status ?v hurt)) + (not (victim-status ?v dying))) + ) - (:action treat-victim-on-scene-fire - :parameters (?u - fire_unit ?l - location ?v - victim) - :precondition (and (fire-unit-at ?u ?l) - (victim-at ?v ?l) - (victim-status ?v hurt)) - :effect (and (oneof (victim-status ?v healthy) (victim-status ?v dying)) (not (victim-status ?v hurt))) - ) - - (:action treat-victim-at-hospital - :parameters (?v - victim ?l - location) - :precondition (and (victim-at ?v ?l) - (hospital ?l)) - :effect (and (victim-status ?v healthy) - (not (victim-status ?v hurt)) - (not (victim-status ?v dying)))) - -) +) \ No newline at end of file diff --git a/benchmarks/st_mapfdu/domain_p01.pddl b/benchmarks/st_mapfdu/domain_p01.pddl index e40eaa2..13b241e 100644 --- a/benchmarks/st_mapfdu/domain_p01.pddl +++ b/benchmarks/st_mapfdu/domain_p01.pddl @@ -1,96 +1,119 @@ ; MAPF/DU domain (FOND version) with 4 worlds for 2 agents -; Author: Thorsten Engesser +; Author: Thorsten Engesser - `st_mapfdu` +; [AAAI'20](https://doi.org/10.1609/aaai.v34i05.6204). (define (domain mapfdu_2_agents) - (:requirements :non-deterministic :negative-preconditions :equality :typing) - (:types agt world pos) - (:constants w0 w1 w2 w3 - world - a0 a1 - agt) - (:predicates - (at ?a - agt ?p - pos) - (adj ?p1 ?p2 - pos) - (stopped ?a - agt) - (goal ?w - world ?a - agt ?p - pos) - (ind ?a - agt ?w1 ?w2 - world) - (des ?w - world) - (next-choose) - (next-move ?a - agt ?p1 ?p2 - pos) - (next-annc ?a - agt ?p - pos)) - (:action choose-move ; UNFAIR ACTION! - :parameters (?a - agt ?w - world ?p1 ?p2 - pos) - :precondition (and (des ?w) (next-choose) - (at ?a ?p1) (adj ?p1 ?p2) - (and (not (at a0 ?p2)) (not (at a1 ?p2))) - (not (stopped ?a))) - :effect (and (next-move ?a ?p1 ?p2) (not (next-choose)) - (oneof - (when (and (ind ?a ?w w0) (not (= ?w w0))) - (and (not (des ?w)) (des w0))) - (when (and (ind ?a ?w w1) (not (= ?w w1))) - (and (not (des ?w)) (des w1))) - (when (and (ind ?a ?w w2) (not (= ?w w2))) - (and (not (des ?w)) (des w2))) - (when (and (ind ?a ?w w3) (not (= ?w w3))) - (and (not (des ?w)) (des w3)))))) - (:action choose-announce ; UNFAIR ACTION! - :parameters (?a - agt ?w - world ?p - pos) - :precondition (and (des ?w) (next-choose) - (at ?a ?p) (goal ?w ?a ?p) - (not (stopped ?a))) - :effect (and (next-annc ?a ?p) (not (next-choose)) - (oneof - (when (and (ind ?a ?w w0) (not (= ?w w0))) - (and (not (des ?w)) (des w0))) - (when (and (ind ?a ?w w1) (not (= ?w w1))) - (and (not (des ?w)) (des w1))) - (when (and (ind ?a ?w w2) (not (= ?w w2))) - (and (not (des ?w)) (des w2))) - (when (and (ind ?a ?w w3) (not (= ?w w3))) - (and (not (des ?w)) (des w3)))))) - (:action move - :parameters (?a - agt ?w - world ?p1 ?p2 - pos) - :precondition (and (des ?w) (next-move ?a ?p1 ?p2)) - :effect (and (not (at ?a ?p1)) (at ?a ?p2) + (:requirements :non-deterministic :negative-preconditions :equality :typing) + (:types + agt world pos + ) + (:constants + w0 w1 w2 w3 - world + a0 a1 - agt + ) + (:predicates + (at ?a - agt ?p - pos) + (adj ?p1 ?p2 - pos) + (stopped ?a - agt) + (goal ?w - world ?a - agt ?p - pos) + (ind ?a - agt ?w1 ?w2 - world) + (des ?w - world) + (next-choose) + (next-move ?a - agt ?p1 ?p2 - pos) + (next-annc ?a - agt ?p - pos) + ) + (:action choose-move ; UNFAIR ACTION! + :parameters (?a - agt ?w - world ?p1 ?p2 - pos) + :precondition (and (des ?w) (next-choose) + (at ?a ?p1) (adj ?p1 ?p2) + (and (not (at a0 ?p2)) (not (at a1 ?p2))) + (not (stopped ?a))) + :effect (and (next-move ?a ?p1 ?p2) (not (next-choose)) + (oneof + (when + (and (ind ?a ?w w0) (not (= ?w w0))) + (and (not (des ?w)) (des w0))) + (when + (and (ind ?a ?w w1) (not (= ?w w1))) + (and (not (des ?w)) (des w1))) + (when + (and (ind ?a ?w w2) (not (= ?w w2))) + (and (not (des ?w)) (des w2))) + (when + (and (ind ?a ?w w3) (not (= ?w w3))) + (and (not (des ?w)) (des w3))))) + ) + (:action choose-announce ; UNFAIR ACTION! + :parameters (?a - agt ?w - world ?p - pos) + :precondition (and (des ?w) (next-choose) + (at ?a ?p) (goal ?w ?a ?p) + (not (stopped ?a))) + :effect (and (next-annc ?a ?p) (not (next-choose)) + (oneof + (when + (and (ind ?a ?w w0) (not (= ?w w0))) + (and (not (des ?w)) (des w0))) + (when + (and (ind ?a ?w w1) (not (= ?w w1))) + (and (not (des ?w)) (des w1))) + (when + (and (ind ?a ?w w2) (not (= ?w w2))) + (and (not (des ?w)) (des w2))) + (when + (and (ind ?a ?w w3) (not (= ?w w3))) + (and (not (des ?w)) (des w3))))) + ) + (:action move + :parameters (?a - agt ?w - world ?p1 ?p2 - pos) + :precondition (and (des ?w) (next-move ?a ?p1 ?p2)) + :effect (and (not (at ?a ?p1)) (at ?a ?p2) (not (next-move ?a ?p1 ?p2)) - (next-choose))) - (:action announce - :parameters (?a - agt ?w - world ?p - pos) - :precondition (and (des ?w) (next-annc ?a ?p) - (goal ?w ?a ?p)) - :effect (and (stopped ?a) + (next-choose)) + ) + (:action announce + :parameters (?a - agt ?w - world ?p - pos) + :precondition (and (des ?w) (next-annc ?a ?p) + (goal ?w ?a ?p)) + :effect (and (stopped ?a) (not (next-annc ?a ?p)) (next-choose) - (when (not (goal w0 ?a ?p)) + (when + (not (goal w0 ?a ?p)) (and (not (ind a0 w0 w0)) (not (ind a0 w0 w0)) - (not (ind a0 w0 w1)) (not (ind a0 w1 w0)) - (not (ind a0 w0 w2)) (not (ind a0 w2 w0)) - (not (ind a0 w0 w3)) (not (ind a0 w3 w0)) - (not (ind a1 w0 w0)) (not (ind a1 w0 w0)) - (not (ind a1 w0 w1)) (not (ind a1 w1 w0)) - (not (ind a1 w0 w2)) (not (ind a1 w2 w0)) - (not (ind a1 w0 w3)) (not (ind a1 w3 w0)))) - (when (not (goal w1 ?a ?p)) + (not (ind a0 w0 w1)) (not (ind a0 w1 w0)) + (not (ind a0 w0 w2)) (not (ind a0 w2 w0)) + (not (ind a0 w0 w3)) (not (ind a0 w3 w0)) + (not (ind a1 w0 w0)) (not (ind a1 w0 w0)) + (not (ind a1 w0 w1)) (not (ind a1 w1 w0)) + (not (ind a1 w0 w2)) (not (ind a1 w2 w0)) + (not (ind a1 w0 w3)) (not (ind a1 w3 w0)))) + (when + (not (goal w1 ?a ?p)) (and (not (ind a0 w1 w0)) (not (ind a0 w0 w1)) - (not (ind a0 w1 w1)) (not (ind a0 w1 w1)) - (not (ind a0 w1 w2)) (not (ind a0 w2 w1)) - (not (ind a0 w1 w3)) (not (ind a0 w3 w1)) - (not (ind a1 w1 w0)) (not (ind a1 w0 w1)) - (not (ind a1 w1 w1)) (not (ind a1 w1 w1)) - (not (ind a1 w1 w2)) (not (ind a1 w2 w1)) - (not (ind a1 w1 w3)) (not (ind a1 w3 w1)))) - (when (not (goal w2 ?a ?p)) + (not (ind a0 w1 w1)) (not (ind a0 w1 w1)) + (not (ind a0 w1 w2)) (not (ind a0 w2 w1)) + (not (ind a0 w1 w3)) (not (ind a0 w3 w1)) + (not (ind a1 w1 w0)) (not (ind a1 w0 w1)) + (not (ind a1 w1 w1)) (not (ind a1 w1 w1)) + (not (ind a1 w1 w2)) (not (ind a1 w2 w1)) + (not (ind a1 w1 w3)) (not (ind a1 w3 w1)))) + (when + (not (goal w2 ?a ?p)) (and (not (ind a0 w2 w0)) (not (ind a0 w0 w2)) - (not (ind a0 w2 w1)) (not (ind a0 w1 w2)) - (not (ind a0 w2 w2)) (not (ind a0 w2 w2)) - (not (ind a0 w2 w3)) (not (ind a0 w3 w2)) - (not (ind a1 w2 w0)) (not (ind a1 w0 w2)) - (not (ind a1 w2 w1)) (not (ind a1 w1 w2)) - (not (ind a1 w2 w2)) (not (ind a1 w2 w2)) - (not (ind a1 w2 w3)) (not (ind a1 w3 w2)))) - (when (not (goal w3 ?a ?p)) + (not (ind a0 w2 w1)) (not (ind a0 w1 w2)) + (not (ind a0 w2 w2)) (not (ind a0 w2 w2)) + (not (ind a0 w2 w3)) (not (ind a0 w3 w2)) + (not (ind a1 w2 w0)) (not (ind a1 w0 w2)) + (not (ind a1 w2 w1)) (not (ind a1 w1 w2)) + (not (ind a1 w2 w2)) (not (ind a1 w2 w2)) + (not (ind a1 w2 w3)) (not (ind a1 w3 w2)))) + (when + (not (goal w3 ?a ?p)) (and (not (ind a0 w3 w0)) (not (ind a0 w0 w3)) - (not (ind a0 w3 w1)) (not (ind a0 w1 w3)) - (not (ind a0 w3 w2)) (not (ind a0 w2 w3)) - (not (ind a0 w3 w3)) (not (ind a0 w3 w3)) - (not (ind a1 w3 w0)) (not (ind a1 w0 w3)) - (not (ind a1 w3 w1)) (not (ind a1 w1 w3)) - (not (ind a1 w3 w2)) (not (ind a1 w2 w3)) - (not (ind a1 w3 w3)) (not (ind a1 w3 w3))))))) + (not (ind a0 w3 w1)) (not (ind a0 w1 w3)) + (not (ind a0 w3 w2)) (not (ind a0 w2 w3)) + (not (ind a0 w3 w3)) (not (ind a0 w3 w3)) + (not (ind a1 w3 w0)) (not (ind a1 w0 w3)) + (not (ind a1 w3 w1)) (not (ind a1 w1 w3)) + (not (ind a1 w3 w2)) (not (ind a1 w2 w3)) + (not (ind a1 w3 w3)) (not (ind a1 w3 w3))))) + ) +) \ No newline at end of file diff --git a/benchmarks/st_tires/domain.pddl b/benchmarks/st_tireworld/domain.pddl similarity index 59% rename from benchmarks/st_tires/domain.pddl rename to benchmarks/st_tireworld/domain.pddl index b612bc0..6a8d076 100644 --- a/benchmarks/st_tires/domain.pddl +++ b/benchmarks/st_tireworld/domain.pddl @@ -1,15 +1,23 @@ -;;; Authors: Michael Littman and David Weissman ;;; -;;; Modified: Blai Bonet for IPC 2006 ;;; -;;; Modified: Dan Bryce for IPC 2008 ;;; - +;;; Modification of 2008 IPC-6 FOND domain to admit strong solutions +;;; Modified version done in https://ieeexplore.ieee.org/document/6735234 (define (domain tire) (:requirements :non-deterministic :typing) - (:types location) - (:predicates (vehicle-at ?loc - location) (spare-in ?loc - location) (road ?from - location ?to - location) (not-flattire) (hasspare)) + (:types + location + ) + (:predicates + (vehicle-at ?loc - location) + (spare-in ?loc - location) + (road ?from - location ?to - location) + (not-flattire) + (hasspare) + ) (:action move-car :parameters (?from - location ?to - location) :precondition (and (vehicle-at ?from) (road ?from ?to) (not-flattire)) - :effect (and (vehicle-at ?to) (not (vehicle-at ?from)) (road ?from ?to) (oneof (and) (not (not-flattire)))) + :effect (and (vehicle-at ?to) (not (vehicle-at ?from)) (road ?from ?to) (oneof + (and) + (not (not-flattire)))) ) (:action loadtire :parameters (?loc - location) @@ -21,5 +29,4 @@ :precondition (hasspare) :effect (and (not (hasspare)) (not-flattire)) ) -) - +) \ No newline at end of file diff --git a/benchmarks/st_tires/p02.pddl b/benchmarks/st_tireworld/p02.pddl similarity index 100% rename from benchmarks/st_tires/p02.pddl rename to benchmarks/st_tireworld/p02.pddl diff --git a/benchmarks/st_tires/p03.pddl b/benchmarks/st_tireworld/p03.pddl similarity index 100% rename from benchmarks/st_tires/p03.pddl rename to benchmarks/st_tireworld/p03.pddl diff --git a/benchmarks/st_tires/p04.pddl b/benchmarks/st_tireworld/p04.pddl similarity index 100% rename from benchmarks/st_tires/p04.pddl rename to benchmarks/st_tireworld/p04.pddl diff --git a/benchmarks/st_tires/p05.pddl b/benchmarks/st_tireworld/p05.pddl similarity index 100% rename from benchmarks/st_tires/p05.pddl rename to benchmarks/st_tireworld/p05.pddl diff --git a/benchmarks/st_tires/p06.pddl b/benchmarks/st_tireworld/p06.pddl similarity index 100% rename from benchmarks/st_tires/p06.pddl rename to benchmarks/st_tireworld/p06.pddl diff --git a/benchmarks/st_tires/p07.pddl b/benchmarks/st_tireworld/p07.pddl similarity index 100% rename from benchmarks/st_tires/p07.pddl rename to benchmarks/st_tireworld/p07.pddl diff --git a/benchmarks/st_tires/p08.pddl b/benchmarks/st_tireworld/p08.pddl similarity index 100% rename from benchmarks/st_tires/p08.pddl rename to benchmarks/st_tireworld/p08.pddl diff --git a/benchmarks/st_tires/p09.pddl b/benchmarks/st_tireworld/p09.pddl similarity index 100% rename from benchmarks/st_tires/p09.pddl rename to benchmarks/st_tireworld/p09.pddl diff --git a/benchmarks/st_tires/p10.pddl b/benchmarks/st_tireworld/p10.pddl similarity index 100% rename from benchmarks/st_tires/p10.pddl rename to benchmarks/st_tireworld/p10.pddl diff --git a/benchmarks/st_tires/p11.pddl b/benchmarks/st_tireworld/p11.pddl similarity index 100% rename from benchmarks/st_tires/p11.pddl rename to benchmarks/st_tireworld/p11.pddl diff --git a/benchmarks/st_tires/p12.pddl b/benchmarks/st_tireworld/p12.pddl similarity index 100% rename from benchmarks/st_tires/p12.pddl rename to benchmarks/st_tireworld/p12.pddl diff --git a/benchmarks/st_tires/p13.pddl b/benchmarks/st_tireworld/p13.pddl similarity index 100% rename from benchmarks/st_tires/p13.pddl rename to benchmarks/st_tireworld/p13.pddl diff --git a/benchmarks/st_tires/p14.pddl b/benchmarks/st_tireworld/p14.pddl similarity index 100% rename from benchmarks/st_tires/p14.pddl rename to benchmarks/st_tireworld/p14.pddl diff --git a/benchmarks/st_tires/p15.pddl b/benchmarks/st_tireworld/p15.pddl similarity index 100% rename from benchmarks/st_tires/p15.pddl rename to benchmarks/st_tireworld/p15.pddl