Overview

States

_images/instance.svg

A state represents an instance

Machetli stores modified instances in states which are simply Python dictionaries containing the instance. You must define an initial state from where the search is started. The packages machetli.pddl and machetli.sas provide functions for this.

If you plan to extend Machetli to a new file type, you can store whatever information you want in a state.

Successor Generators

_images/generator.svg

Successor generators modify the instance

Successor generators yield modified versions (successors) of a given state. Modifications to the state can be anything from manipulations of internal data structures to changes in program inputs.

The packages machetli.pddl and machetli.sas provide a collection of readily available successor generators for PDDL and SAS+ tasks but you can also write your own.

Evaluators

_images/evaluator.svg

Evaluating a state

Every state that is generated during the search will be evaluated to check if it still has the behavior you are looking for. This is done by an evaluator script, a Python script that exits with specific exit codes to indicate whether the behavior is still present. The main work in setting up Machetli for your use case is writing an evaluator script to reproduce the behavior you are interested in.