Click here to Skip to main content
15,886,095 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
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:
1) add e i
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?

[edit]Spurious bold removed, Code block added - OriginalGriff[/edit]
Posted
Updated 12-Dec-12 23:22pm
v3
Comments
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?

1 solution

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.
 
Share this answer
 
v7

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900