Table of Contents

Assignment #1-1 - PDDL

Task Definition

Your first task is to model a problem called Grid-Mario in PDDL. The modeled problem is supposed to be a representation of a game Grid-Mario that we want to solve in the means of classical planning. Detailed description of the game's mechanics is given below.

Everyone has to model the world representation including the agent’s movement on the grid with all known obstacles. Additionally, everyone gets a random selection of 2 other features from the problem domain they have to model as well. For every combination of features you get 4 problem instances to model. One for each individual mechanic and then a complex one to test all modeled mechanics at once.

We recommend using online editor for modelling the PDDLs but the choice is yours.

To find your features, check out this table of assigned features.

Download images of the assigned problem instances

To better understand the image representation of the problem instances, check out legend.

Task Submission

This task is mandatory and you can recieve maximum of 5 points.

Model the domain and 4 given problem instances in PDDL and submit all PDDL files in a .zip file to BRUTE. In total, you should submit one archive with 5 PDDL files.

Filenames

There is no automatic evaluation for this task.

Deadline

This task will be assigned during the 2. week of tutorials. You have one week to submit it.

Deadline for Monday tutorials: 6.3.2023 - 23:59

Deadline for Wednesday tutorials: 8.3.2023 - 23:59

Rules of Grid-Mario

Map

Agent

Items

Push box

Teleport

Levers

Keys

Springs

Tips for PDDL Modeling

Common Mistakes

Restrictions

For the purpose of this homework, please use only PDDL requirements provided in the template, no extra ones are necessary to model grid-Mario. Using types is optional (predicates can be used instead). Please use only conjunctions of predicates for defining actions.

Templates

For simpler writing here are templates for both domain definition (also provided in the online editor ) and problem definition.

Domain definition in PDDL

(define (domain domainName)

    (:requirements
        :negative-preconditions
        :typing
    )

    (:types

    )

    (:predicates
    
    )

    (:action actionName
        :parameters (?x - foo)
        :precondition (and 
		(foo) 
		(fuu)
	)
        :effect (and 
		(fii)
		(not (fee))
	)
    )
)

Problem definition in PDDL

(define (problem problemName) (:domain domainName)

(:objects
    x - type
)

(:init
    (fee)
)   

(:goal
    (and
        (foo)
    )
)
)