13,046,176 members (58,613 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:
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?

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

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

Top Experts
Last 24hrsThis month
 OriginalGriff 225 Graeme_Grant 100 Kornfeld Eliyahu Peter 90 Richard MacCutchan 50 ppolymorphe 30
 OriginalGriff 4,813 RickZeeland 1,864 ppolymorphe 1,738 F-ES Sitecore 1,553 Dave Kreskowiak 1,349

Advertise | Privacy | Mobile
Web02 | 2.8.170713.1 | Last Updated 14 Dec 2012