1. Trang chủ
  2. » Giáo án - Bài giảng

Cau Hoi Dap An On Tap TTNT

25 937 11

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 2,77 MB

Nội dung

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 logicThe unification algorithm: thuật giải đồ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

Trang 1

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 đồ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ử)

Trang 2

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

Trang 3

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

Trang 4

Backward chaining algorithm

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ằngAmerican(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

Trang 5

Resolution: brief summary

Full first-order version:

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

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 [Øb"y ØbAnimal(y) Ú Loves(x,y)] Ú [$y Loves(y,x)]

2 Move Øb inwards: Øb"x p ≡ $x Øbp, Øb $x p ≡ "x Øbp

"x [$y Øb(ØbAnimal(y) Ú Loves(x,y))] Ú [$y Loves(y,x)]

"x [$y ØbØbAnimal(y) Ù ØbLoves(x,y)] Ú [$y Loves(y,x)]

"x [$y Animal(y) Ù ØbLoves(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ừ

Trang 6

"x [$y Animal(y) Ù ØbLoves(x,y)] Ú [$z Loves(z,x)]

4 Skolemize: a more general form of existential instantiation.

Each existential variable is replaced by a Skolem function of the enclosing universally

quantified variables:

"x [Animal(F(x)) Ù ØbLoves(x,F(x))] Ú Loves(G(x),x)

5 Drop universal quantifiers:

[Animal(F(x)) Ù ØbLoves(x,F(x))] Ú Loves(G(x),x)

6 Distribute Ú over Ù :

[Animal(F(x)) Ú Loves(G(x),x)] Ù [ØbLoves(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

Trang 7

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

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

Trang 8

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

Trang 9

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 l =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

Trang 10

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

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

Trang 11

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ờigiải tốt nhất qua n

A* search example

Expand Arrad and determine f(n) for each node

f(Sibiu) = c(Arad, Sibiu) + h(Sibiu) = 140 + 253 = 393f(Timisoara) = c(Arad, Timisoara) + h(Timisoara) = 118 + 329 = 447f(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

Trang 12

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: n-queens

Trang 13

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

"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

Trang 14

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ộ

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

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

Trang 15

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

Trang 16

The vacuum-cleaner world

Percept sequence Action

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ỏ haykhô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ànhtrong môi trường 3x3 này

Ngày đăng: 04/07/2014, 03:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w