#### Domain (define (domain hobbits) (:requirements :adl :typing) (:types czlowiek lina coords) (:predicates (poziomo ?p1 ?p2 - coords) (pionowo ?p1 ?p2 - coords) (krzak ?p1 - coords) (ponizej ?p1 ?p2 - coords) (na-kamieniu ?kto - czlowiek ?p1 - coords) (lezy-lina ?lina - lina ?p1 - coords) (przywiazana ?lina - lina ?p1 - coords) (posiada ?kto - czlowiek ?lina - lina) (polaczenie ?p1 ?p2 - coords) ) (:action przeskocz-na-kamien :parameters (?kto - czlowiek ?skad ?dokad - coords) :precondition (and (poziomo ?skad ?dokad) (na-kamieniu ?kto ?skad) (not (exists (?k - czlowiek) (and (na-kamieniu ?k ?dokad)))) ) :effect (and (not (na-kamieniu ?kto ?skad)) (na-kamieniu ?kto ?dokad) ) ) (:action przejdz-z-pomoca-liny :parameters (?kto - czlowiek ?skad ?dokad - coords) :precondition (and (pionowo ?skad ?dokad) (polaczenie ?skad ?dokad) (na-kamieniu ?kto ?skad) (not (exists (?k - czlowiek) (and (na-kamieniu ?k ?dokad)))) ) :effect (and (not (na-kamieniu ?kto ?skad)) (na-kamieniu ?kto ?dokad) ) ) (:action podnies-line :parameters (?kto - czlowiek ?skad - coords ?lina - lina) :precondition (and (na-kamieniu ?kto ?skad) (lezy-lina ?lina ?skad) ) :effect (and (not (lezy-lina ?lina ?skad)) (posiada ?kto ?lina) ) ) (:action zostaw-line :parameters (?kto - czlowiek ?gdzie - coords ?lina - lina) :precondition (and (na-kamieniu ?kto ?gdzie) (posiada ?kto ?lina) ) :effect (and (not (posiada ?kto ?lina)) (lezy-lina ?lina ?gdzie) ) ) (:action przywiaz-line :parameters (?kto - czlowiek ?skad ?dokad - coords ?lina - lina) :precondition (and (na-kamieniu ?kto ?skad) (posiada ?kto ?lina) (krzak ?skad) (pionowo ?skad ?dokad) (ponizej ?dokad ?skad) ) :effect (and (not (posiada ?kto ?lina)) (polaczenie ?skad ?dokad) (polaczenie ?dokad ?skad) (przywiazana ?lina ?skad) ) ) (:action odwiaz-line :parameters (?kto - czlowiek ?skad ?dokad - coords ?lina - lina) :precondition (and (na-kamieniu ?kto ?skad) (przywiazana ?lina ?skad) (pionowo ?skad ?dokad) (ponizej ?dokad ?skad) ) :effect (and (not (przywiazana ?lina ?skad)) (posiada ?kto ?lina) (not (polaczenie ?skad ?dokad)) (not (polaczenie ?dokad ?skad)) ) ) (:action popros-o-line :parameters (?kto - czlowiek ?skad ?dokad - coords ?lina - lina) :precondition (and (na-kamieniu ?kto ?dokad) (przywiazana ?lina ?skad) (pionowo ?skad ?dokad) (ponizej ?dokad ?skad) ) :effect (and (not (przywiazana ?lina ?skad)) (posiada ?kto ?lina) (not (polaczenie ?skad ?dokad)) (not (polaczenie ?dokad ?skad)) ) ) ) #### Problem (define (problem test) (:domain hobbits) (:objects frodo sam - czlowiek lina1 lina2 - lina A1 B1 B2 B3 B4 C3 D2 D3 E2 F2 F3 F4 F5 - coords) (:init (poziomo A1 B1) (poziomo B1 A1) (poziomo B3 C3) (poziomo C3 B3) (poziomo C3 D3) (poziomo D3 C3) (poziomo D2 E2) (poziomo E2 D2) (poziomo E2 F2) (poziomo F2 E2) (pionowo B1 B2) (pionowo B2 B1) (pionowo B2 B3) (pionowo B3 B2) (pionowo B3 B4) (pionowo B4 B3) (pionowo D2 D3) (pionowo D3 D2) (pionowo F2 F3) (pionowo F3 F2) (pionowo F3 F4) (pionowo F4 F3) (pionowo F4 F5) (pionowo F5 F4) (krzak B2) (krzak B3) (krzak D3) (krzak F3) (krzak F4) (krzak F5) (ponizej B1 B2) (ponizej B2 B3) (ponizej B3 B4) (ponizej D2 D3) (ponizej F2 F3) (ponizej F3 F4) (ponizej F4 F5) (na-kamieniu frodo B3) (na-kamieniu sam F5) (posiada frodo lina1) (posiada sam lina2) ) (:goal (and (na-kamieniu frodo A1) (na-kamieniu sam B1) (or (and (posiada frodo lina1) (posiada sam lina2)) (and (posiada frodo lina1) (posiada frodo lina1)) (and (posiada sam lina1) (posiada frodo lina2)) (and (posiada sam lina1) (posiada sam lina2)) ) ) ) )