You are on page 1of 8

1.

a. Gọi z là lượng nước ở bình thứ 3 (3 lit,0 ≤ z ≤ 3 ¿.


Không gian trạng thái của bài toán:
N: lượng nước ở trong mỗi bình sau khi thực hiện đổ, thêm nước.
S: (8,0,0).
GD: (4,4,z).
Operators: Thêm, đổ nước vào bình, đổ nước từ bình này sang bình
khác.
b. Vẽ cây trạng thái BFS:
Step 01:
Open=[(1)], Closed=[ ].
Xét trạng thái (1) chưa phải trạng thái đích.
Đưa (1) vào Closed, Closed=[(1)].
Phát sinh các con của (1) là (2), (3),(4),(5),(6).
Do (2), (3),(4),(5),(6) chưa phải là Goal, chưa tồn tại trong Open và
Closed nên đưa (2), (3),(4),(5),(6) vào Open.
Open=[ (2), (3),(4),(5),(6)], Closed=[(1)].
(1)
8 0 0

(2) (3) (4) (5) (6)


8 5 0 8 0 3 3 5 0 0 0 0 5 0 3
Step 02:
Open=[ (2), (3),(4),(5),(6)], Closed=[(1)].
Xét trạng thái (2) chưa phải là trạng thái đích, đưa (2) vào Closed,
Closed=[(1),(2)].
Phát sinh các trạng thái của (2):

(2)
8 5 0

(7) (1) (8) (9) (10)


0 5 0 8 0 0 5 5 3 8 5 3 8 2 3
Do (1) đã nằm trong Closed nên không làm gì hết.
Do (7),(8),(9),(10) chưa phải là Goal, chưa tồn tại trong Open và Closed.
nên đưa (7),(8),(9),(10) vào Open.
Open=[(3),(4),(5),(6),(7),(8),(9),(10)].
Closed=[(1),(2)].

Step 03:
Open=[(3),(4),(5),(6),(7),(8),(9),(10)].
Closed=[(1),(2)].
Xét (3) chưa phải là trạng thái đích, đưa (3) vào Closed:
Open=[(4),(5),(6),(7),(8),(9),(10)].
Closed=[(1),(2),(3)]
Phát sinh các trạng thái của (3)

(3)
8 0 3

(11) (1) (12) (13)

0 0 3 8 0 0 3 5 3 8 3 0

Do (1) đã nằm trong Closed nên không làm gì hết.


Do (11),(12),(13) chưa nằm trong Open và Closed, chưa phải là Goal
nên đưa vào Open.
Open=[(4),(5),(6),(7),(8),(9),(10),(11),(12),(13)].
Closed=[(1),(2),(3)].
Step 04:
Open=[(4),(5),(6),(7),(8),(9),(10),(11),(12),(13)].
Closed=[(1),(2),(3)].
Xét (4) chưa phải là Goal, chưa nằm trong Open và Closed nên đưa vào
Closed: Closed=[(1),(2),(3),(4)].
Open=[(5),(6),(7),(8),(9),(10),(11),(12),(13)].
Phát sinh các con của (4):
(4)
3 5 0

(14) (1) (15) (7) (16) (2)


3 5 3 8 0 0 3 2 3 0 5 0 3 0 0 8 5 0

(17) (4)

0 5 3 3 5 0

Do (1), (7), (2), (4) đã nằm trong Closed nên bỏ qua (1), (7), (2), (4).
(14),(15),(16),(17) chưa nằm Open và Closed nên đưa (14),(15),(16),
(17) vào Open.
Open=[(5),(6),(7),(8),(9),(10),(11),(12),(13), (14),(15),(16),(17)].
Closed: Closed=[(1),(2),(3),(4)].
Step 05:
Open=[(5),(6),(7),(8),(9),(10),(11),(12),(13), (14),(15),(16),(17)].
Closed: Closed=[(1),(2),(3),(4)].
Xét (5) chưa phải là trạng thái đích, chưa tồn tại trong Open và Closed
nên đưa vào Closed: Closed=[(1),(2),(3),(4),(5)].
Phát sinh các con của (5):

(5)
0 0 0

(1) (7)
(11)
8 0 0 0 5 0 0 0 3
\
Do (1),(7),(11) đã tồn tại trong Closed nên bỏ qua.
Step 06:
Open=[(6),(7),(8),(9),(10),(11),(12),(13), (14),(15),(16),(17)].
Closed=[(1),(2),(3),(4),(5)].
Xét (6) chưa phải là trạng thái đích, chưa tồn tại trong Open và Closed,
đưa (6) vào Closed: Closed=[(1),(2),(3),(4),(5),(6)].
Phát sinh các con của (6):
(6)
5 0 3

(3) (8) (18) (1) (19) (20)

8 0 3 5 5 3 0 5 3 8 0 0 5 3 0 5 0 0
3
Do (3), (8), (1) đã tồn tại trong closed nên không xét
(11)
Do (18),(19),(20) chưa tồn tại trong Open và Closed,chưa
phải là Goal nên đưa và Open. 0 0 3
Open=[(6),(7),(8),(9),(10),(11),(12),(13), (14),(15),(16),(17)].
Closed=[(1),(2),(3),(4),(5),(6)].
2.
a.Không gian trạng thái:
N: vị trí các ô số sau khi di chuyển
S:
1 2 3
5 4
7 8 6

GD:
1 2 3
4 5
6 7 8
Operators: các thao tác di chuyển ô lên, xuống, sang trái, phải.
b. Vẽ cây tìm kiếm BFS:
Step 01:
Open=[(1)], Closed=[ ].
Xét (1) chưa phải trạng thái đích, chưa tồn tại trong Open vào Closed,
đưa (1) vào Closed. Closed=[ (1)].
Phát sinh các con của (1):

(1)
1 2 3
5 4
7 8 6
(2) (3) (4)
1 2 3 1 2 1 2 3
5 4 5 4 3 5 4 6
7 8 6 7 8 6 7 8

Do (2), (3), (4) chưa phải là trạng thái đích, chưa tồn tại trong Open và
Closed nên đưa vào Open.
Open=[(2), (3), (4)], Closed=[(1) ].
Step 02:
Open=[(2), (3), (4)], Closed=[(1) ].
Xét trạng thái (2) chưa phải là trạng thái đích, chưa tồn tại trong Open và
Closed. Đưa (2) vào Closed.
Closed=[(1),(2) ].
Phát sinh các con của (2):
(2)
1 2 3
5 4
7 8 6

(5) (1) (7)


(6) 1 2 3
1 2 3 1 2 3 1 3
5 8 4
5 4 5 4 5 2 4
7 6
7 8 6 7 8 6 7 8 6

Do (1) đã tồn tại trong Closed nên bỏ qua


(5), (6), (7) chưa phải là trạng thái đích, chưa tồn tại trong Open và
Closed nên đưa vào Open.
Open=[(3), (4), (5), (6), (7)], Closed=[(1), (2) ].
Step 03:
Open=[(3), (4), (5), (6), (7)], Closed=[(1), (2) ].
Xét (3) chưa phải trạng thái đích, đưa (3) vào Closed.
Closed=[(1), (2), (3)].
Phát sinh các con của (3):
(3)

1 2
5 4 3
7 8 6
(8) (1)
1 2 1 2 3
5 4 3 5 4
7 8 6 7 8 6

Do (8) chưa phải trạng thái đích, chưa tồn tại trong Open và Closed nên
đưa vào Open, (1) đã tồn tại trong Closed nên bỏ qua.
Open=[(4), (5), (6), (7), (8)], Closed=[(1), (2),(3)].
Step 04:
Open=[(4), (5), (6), (7), (8)], Closed=[(1), (2),(3)].
Xét (4) chưa phải là trạng thái đích, đưa (4) vào Closed.
Closed=[(1), (2),(3), (4)].
Phát sinh các con của (4):
(4)

1 2 3
5 4 6
7 8
(9) (1)
1 2 3 1 2 3
5 4 6 5 4
7 8 7 8 6

Xét (9) chưa phải là trạng thái đích, chưa tồn tại trong Open và Closed,
(1) đã tồn tại trong Closed nên bỏ qua
Open=[(5), (6), (7), (8), (9)], Closed=[(1), (2),(3), (4)].
Step 05:
Open=[(5), (6), (7), (8), (9)], Closed=[(1), (2),(3), (4)].
Xét (5) chưa phải trạng thái đích, đưa (5) vào Closed.
Closed=[(1), (2),(3), (4), (5)].
Phát sinh các con của (5): (5)
1 2 3
5 4
7 8 6

(2)
(10) (11)
1 2 3 2 3 1 2 3
5 4 1 5 4 7 5 4
7 8 6 7 8 6 8 6
Do (2) đã tồn tại trong Closed nên bỏ qua, (10), (11) chưa phải là trạng
thái đích, chưa tồn tại trong Open và Closed nên đưa vào Open.
Open=[(6), (7), (8), (9), (10), (11)], Closed=[(1), (2),(3), (4), (5)].
Step 06:
Open=[(6), (7), (8), (9), (10), (11)], Closed=[(1), (2),(3), (4), (5)].
Xét (6) chưa phải trạng thái đích, đưa (6) vào Closed.
Closed=[(1), (2),(3), (4), (5), (6)].
Phát sinh các con của (6):
(6)
1 3
5 2 4
7 8 6

(12) (13) (2)


1 3 1 3 1 2 3
5 2 4 5 2 4 5 4
7 8 6 7 8 6 7 8 6

Do (12), (13) chưa phải trạng thái đích, chưa tồn tại trong Open và
Closed nên đưa vào Open, (2) đã tồn tại trong Closed nên bỏ qua.
Open=[(6), (7), (8), (9), (10), (11), (12), (13)]
Closed=[(1), (2),(3), (4), (5), (6)].

You might also like