The well-known Missionaries and Cannibals problem is as follows:

*Three missionaries and three cannibals are on the east side of a river. They have a boat which is big enough to carry at most two people. For both banks, if there are missionaries present on the bank, they cannot be outnumbered by cannibals, since the cannibals would eat the missionaries. The boat cannot cross the river by itself with no people on board. How can all missionaries and cannibals get to the other side alive?*

I've choosen to represent as state as a list containing five elements. The first element represents the number of missionaries on the east bank; the second represents the number of cannibals on the east bank; the third represents the number of missionaries on the west bank; the fourth represents the number of cannibals on the west bank; the fifth represents the location of the boat, which can either be east or west. Under this representation the initial state would be represented as (3 3 0 0 east).

**Are my operators correct? Or is there another way (using my representation of states) to define the problem operators?** 

Any insight would be greatly appreciated! 

My problem operators are as follows:

```
    (defparameter *operators*
     '(boat-takes-missionary-east
     boat-takes-cannibal-east
     boat-takes-missionary-west
     boat-takes-cannibal-west
     boat-takes-missionary-missionary-east
     boat-takes-missionary-cannibal-east
     boat-takes-cannibal-cannibal-east
     boat-takes-missionary-missionary-west
     boat-takes-missionary-cannibal-west
     boat-takes-cannibal-cannibal-West)
    )

```