In STRIPS, a state records the true ground facts; under the closed-world assumption, an absent fact is false. An action with positive preconditions , add effects and delete effects applies when , producing .
The given movement action adds the destination fact without deleting the old boat location. After its first crossing the boat can therefore be recorded at both banks, allowing physically impossible loading. Its source-bank symbol is also not a declared action parameter. Repair both issues by using the fully parameterized STRIPS action
Here excludes a vacuous same-bank crossing. The two static inequality facts already supplied suffice.
The given loading action has no capacity check. Consecutive loads can put arbitrarily many items aboard. Introduce a nullary planning fluent , true initially, and repair loading to
Unloading must restore , as in part (c). Including the bank explicitly as an action parameter removes the other unbound action variable. Equivalently, instantiate separate east-bank and west-bank actions.
These repairs establish the planning state invariants that the boat is at exactly one bank, each item is either at one bank or aboard, and at most one item is aboard. The first two hold initially and are preserved by deleting the former location when adding the new one; the capacity marker permits loading only when no item is aboard. Grounding implicit location variables alone would not repair the missing delete effect or the missing capacity check.
The automated planning goal is the conjunction of the delivered-item facts:
The boat need not separately be constrained to end west, although any successful plan with must bring the final item there before unloading it.
Use the STRIPS action
The onboard precondition prevents inventing an item at a bank, and deleting preserves the item's unique location. Restoring preserves the one-item planning state invariant.
For , execute
and, if , append before the next iteration.
Each load starts with an empty boat beside an undelivered item. Each unload leaves that item west and restores the loading precondition. By mathematical induction on , after iteration the first items are west and the remaining items are east. Thus the automated planning goal holds after crossings and actions for . For , the empty plan already achieves the goal.
Replace the one-place marker by three nullary planning fluents , meaning that zero, one or two items are aboard. Initially only is true. Exactly one of these facts is maintained. No additional object constants are needed.
For compactness, define the common loading preconditions
and common unloading preconditions
The four STRIPS actions are
Here the first unloading removes one of two items, and the last unloading removes the sole remaining item; items do not require fixed seat identities. The movement action remains as repaired in part (a) and changes none of the occupancy facts.
The planning state invariant is true exactly when items are aboard. Every action changes the marker by the same amount as the actual onboard count, so it follows by mathematical induction from the initial empty boat. In particular, a third load is impossible.
Partition the items into successive groups of size two, with a singleton final group if is odd. For a pair on the east bank, execute
For a singleton , execute
Return the empty boat east between groups. Each group starts and ends with marker , and its items finish west, proving all preconditions and the final goal by mathematical induction over the groups. For there are outward journeys and crossings in total; is the ceiling function. Again needs no actions.
Keep the corrected one-place STRIPS model, replace the item constants and their initial typing facts by , and require all three west in the goal. The farmer travels with the boat, so the boat's bank also records where supervision is available. The new requirement concerns the bank being left: incompatible items may coexist at the farmer's current bank, but must not be left there together.
Here is a compilation using only ordinary positive STRIPS preconditions. Replace everywhere by , extending the item's possible locations to
The boat itself still has only bank locations, enforced by . Initialize a static relation for every and bank except . It states that two incompatible items at locations are not both on the bank about to be left.
Introduce planning safety certificates and , neither initially true. The following checking action grants a certificate:
Add to the preconditions of . Every load, unload and move deletes both certificate facts. The other movement and capacity effects remain unchanged.
Deleting certificates on every location change prevents a stale safety check from authorizing a later unsafe departure. A certificate is granted only for the actual current locations and only when both incompatible pairs are separated on the departure bank. During a crossing the remaining bank is therefore safe; on arrival the farmer supervises the destination bank. This proves the required safety property by mathematical induction over crossings. The static facts are never changed.
Write for the three item constants, for the banks, for the corrected load, unload and move actions, and for instantiated with the items' actual current locations. A fully executable plan in the STRIPS model of part (g) is
Thus the seven crossings carry rabbit west, nothing east, fox west, rabbit east, carrot west, nothing east, rabbit west.
Immediately before those crossings, the items left on the departure bank are respectively . None contains an incompatible pair, so each displayed has its safety preconditions. Each loaded crossing carries exactly one item, and all three finish west.

Articles by others on the same topic (0)

There are currently no matching articles.