Tải bản đầy đủ (.doc) (25 trang)

Cau Hoi Dap An On Tap TTNT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.27 MB, 25 trang )

Câu 1: Trình bày thuật giải đồng nhất hóa cho các ngôn ngữ lập trình logic
The unification algorithm: thuật giải
The unification algorithm: thuật giải
đồ
đồ
ng nhất hóa
ng nhất hóa
câu x cần đồng nhất với câu y
X: biến, hằng, danh sách, kết hợp các vị từ
Theta: phép đồng nhất từ nãy đến giờ
If theta thất bại, tức là x không đồng nhất được với y
X = y phép đồng nhất đương nhiên trả về kết quả luôn theta
Kiểm tra x có phải là một biến hay không, gọi tới hàm đồng nhất biến (x, y, theta)
Kiểm tra y có phải là một biến hay không, gọi tới hàm đồng nhất biến (y, x, theta)
Kiểm tra x và y có phải là hỗn hợp các vị từ hay không, trả về đồng nhất (các đối số x, các
đối số y, đồng nhất (các toán hạng của x, các toán hạng của y, theta))
Nếu x và y là danh sách thì đồng nhất(phần còn lại x, phần còn lại y, đồng nhất(phần tử đầu
tiên của x, phần tử đầu tiên của y, theta))
Ngược lại trả về failure
(Trừơng hợp x, y là hằng số, chính là trường hợp list 1 phần tử)
Artificial Intelligence Page 1
The unification algorithm
The unification algorithm
Đây là hàm đồng nhất biến (var, x, theta)
Var: là một biến
X: là bất kỳ biểu thức gì
Theta: phép thế từ nãy đến giờ
Nếu x là giá trị {var/val} thì trả về đồng nhất (val, x, theta)
Var: biến
Val: giá trị
Nếu x có thể thế với giá trị {x/val} thì đồng nhất (var, val, theta)


Nếu x không liên quan đến giá trị nào hết thì phát sinh kiểm tra xem có lỗi hay không, nếu có
trả về failure
Ngược lại nếu không có lỗi thì thêm vào {var/x}
Occur-check: tùy bài toán không có trường hợp cụ thể nên không thể viết được hàm này
Câu 2: Trình bày giải thuật lập luận tiến cho logic vị từ bậc 1
Artificial Intelligence Page 2
Forward chaining algorithm
Forward chaining algorithm
Giải thuật lập luận tiến:
Substitution: phép thế
New: là tập hợp các giả thiết và sự kiện suy được
Với mỗi câu r trong cơ sở tri thức thì
Standardize-apart (r): thủ tục chuẩn hóa từng phần r sẽ đổi tên các biến trùng tên, là thủ tục tự động do máy
lập trình
R có dạng p1 và … kéo theo q : là dạng chuẩn hội (biến thành phép và)
Với mỗi phép thế theta là thế giá trị cụ thể cho một biến khiến cho p1 và … thành p’1 và …
(p’1 mất biến thành M1)
Từ các p’ cụ thể thì mình kết luận được q’ cụ thể từ q trừu tượng (ví dụ: q là hostile(x) còn q’ là hostile(Nono)
Nếu q’ không phải là một câu đã có rồi trong cơ sở tri thức hay là câu mới thì
Thêm q’ mới suy ra được vào tập hợp new
Gọi thủ tục đồng nhất hóa unify(q’, anpha) để coi q’ có đồng nhất hóa được với anpha hay không
Nếu phép đồng nhất hóa phi mà không thất bại thì trả về kết quả là phép đồng nhất hóa phi
Sau khi đã áp dụng hết các luật, thêm tập hợp new mới chứa các sự kiện mới vào cơ sở tri thức
Khi new rỗng, nghĩa là không tạo ra được sự kiện mới, trả về false, bởi vì không còn luật nào có thể áp dụng
được nữa
Câu 3: Trình bày giải thuật lập luận lùi cho logic vị từ bậc 1
Backward chaining algorithm
Backward chaining algorithm
Artificial Intelligence Page 3
SUBST(COMPOSE(θ

1
, θ
2
), p) = SUBST(θ
2
, SUBST(θ
1
, p))
Thuật toán lập luận lùi
Hàm vị từ bậc 1 lập luận lùi
KB: cơ sở tri thức
Goals: điều cần phải chứng minh
Theta: mình đã chứng minh tới ngay đâu rồi
Các biến cục bộ: ans, các phép thế diễn ra khởi đầu là rỗng
Nếu điều cần chứng minh là rỗng thì trả về lời giải từ trứơc đến nay (theta)
Ngược lại, thế điều chứng minh thứ nhất thành một mệnh đề q’ cụ thể: thế American(x) bằng
American(West)
Với mỗi luật r trong cơ sở tri thức đã được chuẩn hóa từng phần (đổi tên các biến trùng tên,
chuyển về dạng chuẩn hội)
Đồng nhất hóa kết luận q trừu tượng của luật r với q’ cụ thể (đồng nhất hóa để suy ra z
chính là Nono)
Sau khi thóat khỏi vòng lặp for nghĩa là đã xài hết tất cả các luật, gọi đệ quy đến lập luận lùi
với những điều cần chứng minh còn lại ghi nhớ khi đệ quy là theta (American(West)) và
theta’ (z và Nono) để có phép suy luận lùi ans
Trả về lời giải ans
Câu 4: Trình bày giải thuật hợp giải
Resolution: brief summary
Resolution: brief summary
Artificial Intelligence Page 4
Full first-order version:

where Unify(α
i
, ¬β
j
) = θ.
The two clauses are assumed to be standardized apart so that they share no
variables.
For example,
with θ = {x/Ken}
Apply resolution steps to CNF(KB ∧ ¬α); complete for FOL
Tóm tắt phép hợp giải
Hợp giải là chứng minh bằng phản chứng: giả sử rằng điều cần phải chứng minh là sai,
Công thức hợp giải đầy đủ bằng logic vị từ bậc 1:
Dấu phẩy là phép hội hay phép và
Có 2 mệnh đề, mỗi mệnh đề được tuyển với nhau
Nếu tồn tại một phép đồng nhất theta mà phép đồng nhất theta này là giữa mệnh đề anpha i
= phủ định beta j thì hai mệnh đề anpha và beta tương đương với mệnh đề thứ ba
Hai mệnh đề anpha và beta giả thiết là được chuẩn hóa từng phần nghĩa là các biến trùng
tên đã được đổi tên
Conversion to CNF
Conversion to CNF
Everyone who loves all animals is loved by someone:
∀x [∀y
Animal
(
y
) ⇒
Loves
(
x,y

)] ⇒ [∃y
Loves
(
y,x
)]
1. Eliminate biconditionals and implications
∀x [¬∀y ¬
Animal
(
y
) ∨
Loves
(
x,y
)] ∨ [∃y
Loves
(
y,x
)]
2. Move ¬ inwards: ¬∀x p ≡ ∃x ¬p, ¬ ∃x p ≡ ∀x ¬p
∀x [∃y ¬(¬
Animal
(
y
) ∨
Loves
(
x,y
))] ∨ [∃y
Loves

(
y,x
)]
∀x [∃y ¬¬
Animal
(
y
) ∧ ¬
Loves
(
x,y
)] ∨ [∃y
Loves
(
y,x
)]
∀x [∃y
Animal
(
y
) ∧ ¬
Loves
(
x,y
)] ∨ [∃y
Loves
(
y,x
)]
Chuyển đổi thành dạng chuẩn hội (CNF):

Mọi người nào mà yêu mến các thú vật thì sẽ được yêu bởi một người khác nào đó
1. Lọai trừ các phép tương đương và các phép kéo theo
2. Di chuyển dấu phủ định vào trong: tính chất đối ngẫu của lượng từ
Conversion to CNF contd.
Conversion to CNF contd.
3. Standardize variables: each quantifier should use a different one
∀x [∃y
Animal
(
y
) ∧ ¬
Loves
(
x,y
)] ∨ [∃z
Loves
(
z,x
)]
4. Skolemize: a more general form of existential instantiation.
Artificial Intelligence Page 5
1 1
1 1 1 1 1 1
,
n m
i i n j j m
α α β β
α α α α β β β β
− + − +
∨ ∨ ∨ ∨

∴ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨
K K
K K K K
( ) ( )
( )
( )
Rich x Unhappy x
Rich Ken
Unhappy Ken
¬ ∨
Each existential variable is replaced by a Skolem function of the enclosing universally
quantified variables:
∀x [
Animal
(
F
(
x
)) ∧ ¬
Loves
(
x,F
(
x
))] ∨
Loves
(
G
(
x

),
x
)
5. Drop universal quantifiers:
[
Animal
(
F
(
x
)) ∧ ¬
Loves
(
x,F
(
x
))] ∨
Loves
(
G
(
x
),
x
)
6. Distribute ∨ over ∧ :
[
Animal
(
F

(
x
)) ∨
Loves
(
G
(
x
),
x
)] ∧ [¬
Loves
(
x,F
(
x
)) ∨
Loves
(
G
(
x
),
x
)]
3. Chuẩn hóa các biến: mỗi lượng từ nên sử dụng một biến khác nhau
Biến y thứ hai đã được đổi tên thành z
4. Đặt tên các biến skolem cho lượng từ tồn tại để bỏ lượng từ tồn tại khỏi câu logic
Trong trường hợp này có thể nâng cấp lên bằng cách dùng hàm Skolem
5. Bỏ lượng từ với mọi

6. Áp dụng luật phân phối phép tuyển (hay) đối với phép hội (và)
Câu 5: Hãy chứng minh ví dụ Nono, America, West bằng hợp giải
Example knowledge base
Example knowledge base
Artificial Intelligence Page 6
The law says that it is a crime for an American to sell weapons to hostile (thù
địch) nations. The country Nono, an enemy of America, has some missiles (tên
lửa), and all of its missiles were sold to it by Colonel West, who is American.
Prove that Col. West is a criminal
Luật lệ nói rằng nó là một kẻ tội phạm cho một người Mỹ bán vũ khí cho các quốc gia thù
địch. Nước Nono, một kẻ thù địch của Mỹ, có một vài tên lửa và tất cả các tên lửa của nó do
ông Colonel West bán cho nó mà ông này là người Mỹ.
Chứng minh rằng Colonel West là một kẻ tội phạm
Resolution proof: definite clauses
Resolution proof: definite clauses
Dòng cuối cùng màu xanh bỏ sót phủ định Enemy(Nono, America)
Khi đã triệt tiêu hết nghĩa là đã chứng minh được
Câu 6: Hãy mô tả thuật giải tìm kiếm theo chiều sâu hạn chế
Depth-limited algorithm
Depth-limited algorithm
Artificial Intelligence Page 7
Recursive implementation:
function DEPTH-LIMITED-SEARCH(problem,limit) return a solution or failure/cutoff
return RECURSIVE-DLS(MAKE-NODE(INITIAL-STATE[problem]),problem,limit)
function RECURSIVE-DLS(node, problem, limit) return a solution or failure/cutoff
cutoff_occurred? ¬ false
if GOAL-TEST[problem](STATE[node]) then return SOLUTION(node)
else if DEPTH[node] == limit then return cutoff: cắt ngang
else for each successor in EXPAND(node, problem) do
result ¬ RECURSIVE-DLS(successor, problem, limit)

if result == cutoff then cutoff_occurred? ¬ true
else if result

failure then return result
if cutoff_occurred? then return cutoff else return failure
Giải thuật tìm kiếm theo chiều sâu hạn chế là giải thuật đệ quy DEPTH-LIMITED-SEARCH
(bài tóan, chiều sâu tối đa đạt tới) trả về 3 đầu ra: lời giải hoặc thất bại/cắt ngang (cutoff).
Trong trường hợp cutoff thì không biết là có lời giải hay không
Gọi hàm đệ quy RECURSIVE-DLS có các tham số là nút gốc, bài toán và chiều sâu limit
Hàm Recursive-dls có tham số là nút node, bài toán và chiều sâu limit
Khởi động giá trị đầu cho cờ cutoff_occurred là false
Nếu kiểm tra đích là nút hiện tại node thì trả về lời giải tương ứng với với nút node
Ngược lại, nếu chiều sâu của nút node bằng với limit thì xảy ra cắt ngang cutoff
Ngược lại, với mỗi nút con khi bung nút node bằng hàm EXPAND thực hiện
Gọi đệ quy Recursive-dls cho nút con đó,
nếu kết quả của nút con là cutoff thì bật cờ cutoff_occurred là true
Ngược lại nếu kết quả của nút con khác với thất bại thì trả về lời giải của nút con
Cuối cùng hết nếu cờ cutoff_occurred là đúng (nghĩa là có một nút con xảy ra cutoff) thì trả
về cắt ngang cutoff
Ngược lại thì trả về thất bại
Ghi chú: có 2 trường hợp trả về cắt ngang cutoff, trường hợp 1 khi nút node có chiều sâu là
limit, trường hợp 2 khi có nút con của nút node xảy ra cutoff thì ta cũng trả về cắt ngang
cutoff
Câu 7: Trình bày thuật giải tìm kiếm lặp sâu dần
Iterative deepening search
Iterative deepening search
Artificial Intelligence Page 8
Thuật giải tìm kiếm lặp sâu dần:
Hàm tìm kiếm lặp sâu dần chỉ có một tham số là bài toán và trả về là lời giải hay thất bại
Với mọi chiều sâu tăng dần từ 0 - ∞

Gọi hàm tìm kiếm theo chiều sâu hạn chế có tham số chiều sâu depth
Nếu kết quả khác với cắt ngang cutoff thì trả về kết quả trong trường hợp đó là lời giải hay
thất bại
Ngược lại, tăng chiều sâu depth lên 1 và lặp
Iterative deepening search
Iterative deepening search
l
l
=3
=3
Áp dụng giải thuật tìm kiếm theo chiều sâu hạn chế là 3, giả sử tìm ra lời giải tại nút M
Lưu ý khi làm bài thi: những nút nào tô đen đậm thì bôi đen, những nút nào tô đen lợt thì vẽ
bình thường, những nút nào lợt thì không cần vẽ.
Câu 8: Hãy trình bày thuật giải A
*
và minh họa bằng bài toán tìm đường đi ngắn nhất
từ thành phố Arad tới thành phố Burcharest trên bản đồ Romania sau đây
Romania with step costs in km
Romania with step costs in km
Artificial Intelligence Page 9
Cột bên phải của bản đồ là khoảng cách đường chim bay tới thành phố Burcharest
A* search
A* search
Best-known form of best-first search.
Best-known form of best-first search.
Idea: avoid expanding paths that are already expensive.
Evaluation function f(n) = g(n) + h(n)
g(n)
the path cost from start node (so far) to node n.
h(n)

estimated cost to get from node n to the goal.
f(n)
estimated total cost of path through
n
to goal.
A* search uses an admissible heuristic
A heuristic is admissible if it
never overestimates
the cost to reach the goal
1. h(n) <= h*(n) where h*(n) is the true cost from n to goal
2. h(n) >= 0 so h(G)=0 for any goal G.
3. e.g. h
SLD
(n) never overestimates the actual road distance
If h is admissible, f(n) never overestimates the actual cost of the best solution
through n
Tìm kiếm A*
Đây là hình thức tốt nhất của tìm kiếm lời giải đầu tiên tốt nhất
Ý tưởng: tránh bung ra các đoạn đường mà tốn kém
Artificial Intelligence Page 10
Hàm đánh giá f(n) = g(n) + h(n)
g(n): đoạn đường vừa mới đi được từ nút đầu tiên tới nút n
h(n): chi phí lượng tính từ nút n tới nút đích
f(n): tổng chi phí lượng tính từ nút đầu qua nút n tới nút đích
Thuật tóan A* phải sử dụng một hàm heuristic mà có thể chấp nhận được
Một hàm heuristic là chấp nhận được nếu nó không bao giờ tính hớ chi phí đến đích
h(n) <= h*(n) : chi phí ước lượng đến đích h(n) <= chi phí thực sự đến đích h*(n)
h(n) >= 0 và sẽ bằng 0 khi tới đích
Nếu hàm h là chấp nhận được kéo theo f(n) sẽ không bao giờ tính hớ chi phí thực sự của lời
giải tốt nhất qua n

A* search example
A* search example
Expand Arrad and determine f(n) for each node
f(Sibiu) = c(Arad, Sibiu) + h(Sibiu) = 140 + 253 = 393
f(Timisoara) = c(Arad, Timisoara) + h(Timisoara) = 118 + 329 = 447
f(Zerind) = c(Arad, Zerind) + h(Zerind) = 75 + 374 = 449
Best choice is Sibiu
Bung nút Arad và quyết định f(n) cho mỗi nút
f(Sibiu) = khoảng cách đã đi cho tới Sibiu + khoảng cách ước lượng (khoảng cách đường
chim bay) cho tới đích = 140 + 253 = 393
f(Timisoara) = 447
f(Zerind) = 449
Hàm đánh giá thấp nhất là Sibiu 393 do đó ta sẽ chọn Sibiu
A* search example
A* search example
Artificial Intelligence Page 11
Expand Pitesti and determine f(n) for each node
f(Bucharest) = g(Pitesti) + c(Pitesti, Bucharest) + h(Bucharest) = 418
Best choice is Bucharest !!!
Optimal solution (only if
h(n)
is admissable)
Note values along optimal path !!
Khi ta bung Pitesti, không gian trạng thái hiện tại là 11 nút, trong đó có 2 nút đích là
Burcharest là 450 và 418 mà 418 là nhỏ nhất của 11 nút nên ta chọn Burcharest 418 là lời
giải tối ưu và đúng
Lưu ý: Giá trị 418 cuối cùng đã trả ra khoảng cách đường đi thực tế
Lưu ý: khi làm bài thi không cần tô đen các nút đã bung, chỉ cần đánh dấu nút đích Burcharest giá trị
418 là được rồi.
Câu 9: Hãy trình bày thuật giải leo đồi cho bài toán 8 quân Hậu

Example:
Example:
n
n
-queens
-queens
Artificial Intelligence Page 12
Put n queens on an n × n board with no two queens on the same row, column, or
diagonal
Move a queen to reduce number of conflicts
Almost always solves n-queens problems almost instantaneously for very large n,
e.g., n=1 million
Bài toán 8 quân Hậu
- Đặt n quân Hậu lên bàn cờ nxn mà không có 2 quân Hậu nào trên cùng một hàng,
cùng một cột hay cùng một đường chéo
- Đầu tiên ta đặt 4 quân Hậu một cách ngẫu nhiên lên bàn cờ 4x4 như hình vẽ bên trái.
Ta di chuyển mỗi quân Hậu để giảm số xung đột từ h = 5 xuống bằng 2 rồi bằng 0
- Cách này giải tức khắc các bài n quân Hậu cho tới n = 1 triệu
Hill-climbing search
Hill-climbing search
"is a loop that continuously moves in the direction of increasing value”
It terminates when a peak is reached.
Hill climbing does not look ahead of the immediate neighbors of the current
state.
Hill-climbing chooses randomly among the set of best successors, if there is
more than one.
Hill-climbing a.k.a.
greedy local search

Thuật giải tìm kiếm leo đồi (hill climbing search)

- Sử dụng một giá trị đánh giá độ TỐT của trạng thái hiện tại
- Leo đồi là một vòng lặp để di chuyển tới hướng tăng giá trị TỐT
- Nó kết thúc khi đạt đến 1 đỉnh
- Leo đồi không vượt quá xem xét quá các lân cận của trạng thái hiện tại
- Leo đồi chọn ngẫu nhiên trong tập hợp các nút kế tiếp tốt nhất nếu có hơn 1 nút tốt nhất
- Leo đồi là một chiến lược tìm kiếm cục bộ, làm vội
Function leo đồi có 1 tham số là bài toán trả về một trạng thái là cực đại cục bộ
Artificial Intelligence Page 13
Các biến sử dụng: current là một nút hiện tại; neighbor là một nút lân cận
Đầu tiên, ta tạo ra trạng thái khởi đầu của bài toán và gán vào nút current (đối với 8 quân hậu là phát sinh ngẫu
nhiên các quân hậu)
Thực hiện lặp
Nút neighbor được gán là nút theo sau có giá trị cao nhất của nút current
Nếu giá trị của nút neighbor đã là tốt nhất của các nút theo sau mà vẫn nhỏ hơn nút current, nghĩa là nút
current là tốt nhất trong các lân cận của nó thì trả về lời giải là nút current
Ngược lại cập nhật nút current là nút neighbor, tiếp tục lặp
Về bộ nhớ chỉ lưu 2 nút: current và neighbor
Hill-climbing search: 8-queens problem
Hill-climbing search: 8-queens problem
h = number of pairs of queens that are attacking each other, either directly or
indirectly
h = 17 for the above state
Giải bài toán 8 quân hậu bằng thuật giải leo đồi
Trên bàn cờ hiện tại gọi hàm heuristic h là số cặp hậu tấn công lẫn nhau có thể trực tiếp hay
gián tiếp cách 1 quân hậu nằm giữa
Hill-climbing search: 8-queens problem
Hill-climbing search: 8-queens problem
Artificial Intelligence Page 14
A local minimum with h = 1
Khi leo đồi ra lời giải như sau, lời giải này vẫn còn 1 cặp hậu chiếu nhau h = 1

Nhưng không có cách nào di chuyển 1 quân hậu để h không tăng
Câu 10:
Dùng agent để giải bài toán môi trường thế giới máy hút bụi, là một môi trường có nhiều ô và các thao
tác của máy hút bụi là Sang Trái, Sang Phải, Lên, Xuống, Hút Bụi, Không Thao Tác.
a. Với môi trường thế giới máy hút bụi 2x1 ô, hãy viết bằng trí nhớ hàm phản ánh của agent,
REFLEX-VACUUM-AGENT
Artificial Intelligence Page 15
The vacuum-cleaner world
The vacuum-cleaner world
Percept sequence Action
[A,Clean] Right
[A, Dirty] Suck
[B, Clean] Left
[B, Dirty] Suck
[A, Clean],[A, Clean] Right
[A, Clean],[A, Dirty] Suck
… …
function REFLEX-VACUUM-AGENT ([location, status]) return an action
if status == Dirty then return Suck
else if location == A then return Right
else if location == B then return Left
What is the right function? Can it be implemented in a small agent program?
Cho dãy nhận thức như trong hình và các thao tác như trong hình
Hàm agent hiện nay còn gọi là hàm phản ảnh REFLEX-VACUUM-AGENT để phản ảnh từ
môi trường thành hành động (các thao tác sử dụng chương trình điều khiển thiết bị)
Làm sao để thiết kế hàm đúng? Liệu nó có thể cài đặt thành một chương trình agent nhỏ hay
không? (làm sao thiết kế để cài đặt cho tốt)
b. Với môi trường máy hút bụi 3x3 ô, hãy viết hàm phản ánh của agent để máy hút bụi vận hành
trong môi trường 3x3 này
Artificial Intelligence Page 16

A
B
public String[] clear(boolean[][] environment) {
int r = environment.length;
int c = environment[0].length;
String[] result = new String[r * c];
int in = 0;
for(int i = 0; i < r; i++) {
if(i%2 == 0) {
int position = i*c + 1;
for(int j = 0; j < c; j++) {
String line = "";
line += "o so " + position;
if(environment[i][j])
line += " dirty -> Suck";
else line += " clean -> NoOp";
if(j == c-1) line += " -> down";
else line += " -> right";
result[in++] = line;
position++;
}
}
else {
int position = (i+1)*c;
for(int j = c-1; j >= 0; j ) {
String line = "";
line += "o so " + position;
if(environment[i][j])
Artificial Intelligence Page 17
A

B
C
D
E
F
G H
I
line += " dirty -> Suck";
else line += " clean -> NoOp";
if(j == 0) line += " -> down";
else line += " -> left";
result[in++] = line;
position ;
}
}
}
return result;
}
Câu 11: Hãy trình bày
a. Cấu trúc của loại agent phản ánh đơn giản
Agent types; simple reflex
Agent types; simple reflex
Artificial Intelligence Page 18
Select action on the basis of only the current percept.
E.g. the vacuum-agent
Large reduction in possible percept/action situations(next page).
Implemented through condition-action rules
If dirty then suck
Đây là kiểu agent phản ánh đơn giản
Chọn các thao tác chỉ trên cơ sở của nhận thức hiện tại, ví dụ agent máy hút bụi

Đơn giản hóa rất nhiều các tình huống nhận thức và hành động
Cài đặt bằng các luật điều kiện hành động
Sensors: bộ cảm nhận
Actuators: bộ vận hành
b. Thuật giải của loại agent phản ánh đơn giản
Agent types; simple reflex
Agent types; simple reflex
Artificial Intelligence Page 19
Will only work if the environment is fully observable otherwise infinite loops may
occur.
Đây là dạng tổng quát của agent phản ánh đơn giản
Hàm SIMPLE-REFLEX-AGENTdựa vào nhận thức hiện tại là percept, trả về một hành động
Bộ thông dịch đầu vào sẽ biến nhận thức trừu tượng percept thành trạng thái state (một nút
của cây tìm kiếm, tình trạng của tấm thảm) cài đặt trong máy
Thực hiện việc đối sánh RULE-MATCH để tìm ra luật rule phù hợp với trạng thái state
Thực hiện mối liên hệ RULE-ACTION giữa luật và hành động action
Trả về hành động
Ta thấy rằng loại agent này chỉ hoạt động nếu môi trường là có thể quan sát đầy đủ
Câu 12: Bằng phương pháp kiểm tra mô hình, hãy chứng minh lại bài toán ở trang 26
dựa trên cơ sở tri thức KB và α
1
,

α
2
Example
Example
Entailment by Model Checking
Entailment by Model Checking
Trong logic mệnh đề (Propositional logic) xét

Artificial Intelligence Page 20
KB: ((p ∨ q) → r)
p
α
1
: r ∨ p
α
2
: p ∧ q
p q r
p ∨ q (p ∨ q) → r
KB
α
1
α
2

1 F F F F T F F F
2 F F T F T F T F
3 F T F T F F F F
4 F T T T T F T F
5 T F F T F F T F
6 T F T T T T T F
7 T T F T F F T T
8 T T T T T T T T
KB có 2 mô hình là:
m
1
: {p=T, q=F, r=T}
m

2
: {p=T, q=T, r=T}
Với 2 mô hình này α
1
đều đúng nên KB ╞ α
1

Câu α
2
không đúng với mô hình m
1
nên KB ╞ α
2

Câu 13: Giải bài toán thế giới Wumpus bằng agent luận lý
a. Cho thế giới Wumpus 4x4 như trong hình vẽ. Hãy thiết lập cơ sở tri thức tương
ứng với hình
Suy luận bằng PP liệt kê bảng chân trị
Suy luận bằng PP liệt kê bảng chân trị
Ví dụ: Wumpus world
Ví dụ: Wumpus world
Gọi P
i,j
= "There is a pit in [i, j]".
Let B
i,j
= "There is a breeze in [i, j]".
Giả sử sau khi không thấy gì trong ô [1,1], agent sang phải và cảm nhận thấy
breeze trong [2,1]
KB khi đó bao gồm các câu sau:

Artificial Intelligence Page 21
"There no pit in [1,1]"
R
1
: ¬ P
1,1
"Pits cause breezes in adjacent squares"
R
2
: B
1,1


(P
1,2
∨ P
2,1
)
R
3
: B
2,1
↔ (P
1,1
∨ P
2,2
∨ P
3,1
)
"Square [1,1] has no breeze",

"Square [1,2] has a breeze"
R
4
: ¬B
1,1
R
5
: B
2,1

Gọi: α
1
= "There is no pits in [1,2]" = ¬P
1,2

α
2
= "There is no pits in [2,2]" = ¬P
2,2
b. Cho trước hàm TELL(KB, cảm nhận x,y) để cập nhật cơ sở tri thức và hàm
ASK(KB, truy vấn) để kiểm tra cơ sở tri thức. Hãy viết thuật giải chương trình
agent để giải bài toán thế giới Wumpus
Artificial Intelligence Page 22
Giải thuật học luận lý để cài đặt chương trình agent giải bài toán thế giới wumpus
Tham số đầu vào: percept là nhận thức nghĩa là danh sách [có mùi khó chịu, có hơi gió, có ánh sáng lấp lánh của vàng]
Các biến tĩnh: KB là tri thức chứa đựng các cảm nhận của thế giới wumpus
x,y là tọa độ của agent, khởi đầu là [1,1] và orientation là hướng đi hiện tại: phải, trái, lên, xuống
visited là mảng các ô đã được thăm viếng, khởi đầu tất cả đều là false nghĩa là chưa thăm viếng
action là hành động gần đây nhất của agent, khởi đầu là rỗng
plan là một dãy các hành động kế hoạch, khởi đầu là rỗng

Bắt đầu thuật giải:
Cập nhật x, y, hướng và dãy các ô đã thăm viếng visited dựa trên hành động action của agent
Nếu cảm nhận mùi hôi stench (S) thì cập nhật cơ sở tri thức tại ô x,y bằng hàm TELL(KB, Sxy) ngược lại TELL(KB, ~Sxy)
(hàm TELL sẽ tạo ra các luật logic và các mệnh đề logic tương ứng)
Tương tự nếu có hơi gió thì cập nhật cơ sở tri thức TELL(KB, Bxy) ngược lại TELL(KB, ~Bxy) để tạo ra các luật và các
mệnh đề logic tương ứng
Nếu có ánh sáng lấp lánh thì hành động action là nhặt lấy vàng
Ngược lại nếu kế hoạch hành động plan là khác rỗng thì lấy ra hành động action kế tiếp
Ngược lại tạo không gian trạng thái là các ô sát bên các ô đã thăm viếng [i,j]
Nếu có một vài ô [i,j] trong không gian trạng thái mà truy vấn cơ sở tri thức ASK(KB, không có vực tại i,j và không có
Wumpus tại i,j) là đúng hay ASK(KB, có vực tại i,j hay có Wumpus tại i,j) là sai thì
Dùng thuật giải A* có các tham số là tọa độ hiện tại [x,y] và hướng đi hiện tại orientation, tọa độ an toàn cần đi đến i,j và dãy
các ô đã đi qua visited để tìm ra một kế hoạch plan cho phép đi từ x,y đến i,j qua các ô đã đi rồi visited
Lấy hành động đầu tiên trong kế hoạch vào action
Ngược lại khi không có kế hoạch và không có ô i,j nào khả thi thì action được phát sinh ngẫu nhiên
Trả về hành động action cho hàm
Câu 14: Hãy trình bày kết quả của thuật toán xén Alpha-Beta Prunning khi xén cây lời giải của trò
chơi như sau
a. Định nghĩa Alpha và Beta
Artificial Intelligence Page 23
b. Định nghĩa các điểu kiện Alpha cut-off va Beta cut-off
c. Vẽ cây lời giải sau khi thực hiện xén Alpha-Beta Prunning
- Gạch bỏ bằng đánh X trên các nút bị xén
- Tính tất cả các giá trị Alpha hay Beta cho mỗi nút từ nút gốc đến nút lá
- Giữa các nước đi B, C, D và E, chương trình máy tính sẽ chọn nước đi nào?
Đáp án:
a.
a.
Alpha-Beta Pruning Idea
Alpha-Beta Pruning Idea

Some of the branches of the game tree won't be taken if playing against a smart
opponent.
Use pruning to ignore those branches.
While doing DFS of game tree, keep track of:
alpha at maximizing levels (computer’s move)
highest SBE value seen so far (initialize to -infinity)
is lower bound on state's evaluation
beta at minimizing levels (opponent’s move)
lowest SBE value seen so far (initialize to +infinity)
is higher bound on state's evaluation
Xén bớt những nhánh cây khi đối thủ thi đấu thông minh, là cải thiện của thuật toán minimax
Thuật toán xén alpha beta khi thực hiện tìm kiếm theo chiều sâu trước thì theo dõi:
Giá trị alpha tại mức max (quy ước là lượt đi của máy trong bài học này)
- Là giá trị tiện ích cao nhất tìm thấy cho đến thời điểm này (khởi đầu là trừ vô cùng)
- Như vậy nó là chặn dưới trong đánh giá trạng thái hiện tại
Giá trị beta tại các mức Min (là nước đi của kẻ địch trong bài học này)
- Là giá trị tiện ích thấp nhất tìm thấy cho đến thời điểm này (khởi đầu là cộng vô cùng)
- Là chặn trên trong đánh giá trạng thái hiện tại
b.
b.
Alpha-Beta Pruning Idea
Alpha-Beta Pruning Idea
Artificial Intelligence Page 24
Beta cutoff pruning occurs when maximizing
if child’s alpha >= parent's beta
Why stop expanding children?
opponent won't allow computer to take this move
Alpha cutoff pruning occurs when minimizing
if parent's alpha >= child’s beta
Why stop expanding children?

computer has a better move than this
Nay ta thực hiện 2 phép xén
- Phép xén beta cutoff xảy ra khi giá trị alpha của nút con >= giá trị beta của nút cha,
ngừng bung nút hiện tại
- Phép xén thứ hai alpha cutoff xảy ra khi giá trị alpha của nút cha >= giá trị beta của
nút con, khi đó ta không cần bung các nút con nữa vì máy tính có khả năng đi tốt hơn
chọn lựa này
(Máy mang giá trị alpha, người mang giá trị beta)
c.
c.
Alpha-Beta Search Example
Alpha-Beta Search Example
Result: Computer chooses move to C.
Máy luôn luôn chọn nút C thì máy luôn luôn thắng và sẽ thắng với tỷ số là 3
Artificial Intelligence Page 25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×