12,402,202 members (70,246 online)
Rate this:
See more:
hi there
we have 3 water jugs that the capacity of first jug is 12 and capacity of second jug is 8 and capacity of third jug is 3.
the initial state is: (0,0,0)
the successor function is:
2)pour to another one: [12,x,y],[x,8,z],[x,y,3]
3)empty is: [0,y,z],[x,0,z],[x,y,0]
and the goal state is: (1,1,1)
-------------
now i want to draw its state tree. i did it by myself but i'm not really sure that it is right or not?
```          (0,0,0)
/       |      \
(12,0,0)  (0,8,0)   (0,0,3)
```
now the child node for(12,0,0) is: (12,0,0),(12,8,0),(12,8,3),(0,8,3),(0,0,3),(0,0,0),(9,8,3),(12,8,0),(4,8,3),(12,0,3),(12,5,3),(12,5,3),(12,8,0)

which (12,0,0),(0,0,0)==>because it is in root,(12,8,0)==>cause same
are fail node and we don't expand them.

i think if i expand (0,0,3), i will reach to my goal state:
the child for the node (0,0,3): (3,0,0),(0,3,0),(0,0,3),(1,1,1) (1,1,1) is the goal state am i right?

Spurious bold removed, Code block added - OriginalGriff[/edit]
Posted 12-Dec-12 22:22pm
Updated 12-Dec-12 23:22pm
v3
Matt T Heffron 13-Dec-12 15:28pm

Can you describe the problem in a little more detail?
Specifically, a bit more about the successor function:
"1) add e i" is pretty vague (I don't think you mean that "e" is the base of the natural log, or "i" is sqrt(-1))
"2)pour to another one: ..." still unclear

ALSO, is your actual question about solving the problem or drawing the state tree?

Rate this:

## Solution 1

Your problem statement is very messy and difficult to follow.

My understanding and formalization are as follows:

Assume you are in state `[x, y, z]`. Here are the possible transitions:

```Fill 12 -> [12, y, z]
Fill 8 -> [x, 8, z]
Fill 3 -> [x, y, 3]

Empty 12 -> [0, y, z]
Empty 8 -> [x, 0, z]
Empty 3 -> [x, y, 0]

12 to 8 -> [x + y - 8, 8, z] or [0, x + y, z], depending on x + y >< 8
8 to 12 -> [12, x + y - 12, z] or [x + y, 0, z], depending on x + y >< 12

12 to 3 -> [x + z - 3, y, 3] or [0, y, x + z],  depending on x + z >< 3
3 to 12 -> [12, y, x + z - 12] or [x + z, y, 0],  depending on x + z >< 12

8 to 3 -> [x, y + z - 3, 3] or [x, 0, y + z], depending on y + z >< 3
3 to 8 -> [x, 8, y + z - 8] or [x, y + z, 0],  depending on y + z >< 8
```

There are potentially 13 x 9 x 4 different states (maybe not all achievable). You should consider a state graph rather than a state tree, given that there can be loops.

You can build the complete graph, starting from state [0, 0, 0] and trying all 12 transitions recursively, depth first or breadth first.
v7

Top Experts
Last 24hrsThis month
 OriginalGriff 285 Richard Deeming 198 Karthik Bangalore 180 F-ES Sitecore 135 Tomas Takac 100
 OriginalGriff 7,073 ppolymorphe 3,030 Karthik Bangalore 2,917 F-ES Sitecore 2,187 Richard MacCutchan 2,125