1/19/2014

Tuần 1 (Bài 2) Pham Van Hai

HUST 1

AI cung cấp phương pháp luận để xây dựng hệ thống thông minh: (cid:1) Hệ thống biết giải toán (bằng tìm kiếm) (cid:1) Hệ thống biết lập luận (cid:1) Hệ thống biết học

(cid:1) Cơ sở của các bài toán là: trạng thái đầu (trạng thái xuất phát), các hành động biến đổi trạng thái và trạng thái kết thúc (trạng thái đích).

(cid:1) Không gian trạng thái: là tập các trạng thái có thể đạt được bằng cách thực hiện chuỗi các hành động xuất phát từ trạng thái ban đầu.

(cid:1) Giải bài toán : xác định trạng thái xuất phát, tìm dãy các hành động hoặc phép biến đổi (toán tử) các trạng thái sao cho từ trạng thái xuất phát có thể dẫn đến trạng thái đích.

(cid:1) Hàm chi phí: Giá trị đánh giá chi phí thực hiện

biến đổi trạng thái.

2

3

1

1/19/2014

(cid:1) Bài toán bằng kỹ thuật tìm kiếm, bài toán đó

nên được xác định bởi 4 thành phần sau: ◦ Trạng thái đầu (Initial states) ◦ Trạng thái đích (Goal state) ◦ Các thao tác chuyển từ một trạng thái sang các

trạng thái kế tiếp

◦ Chi phí của các thao tác

(cid:1) • ;ường đi từ trạng thái đầu đến trạng thái đích

trong không gian các trạng thái của bài toán

(cid:1) • Một trạng thái tường minh là tối ưu một hàm liên quan đến chi phí và thỏa mãn các ràng buộc của bài toán. ◦ Bài toán tìm kiếm là xác định trong không gian tìm kiếm (miền) những đối tượng mà thỏa mãn các điều kiện đặt ra.

4

(cid:1) Phương pháp Data-Driven-Search: Quá trình search sẽ đi từ trạng thái hiện thời áp dụng các luật để đi đến trạng thái kế tiếp và cứ thế cho đến khi đạt được một goal.

(cid:1) Phương pháp Goal-Driven-Search: Quá trình search sẽ đi từ trạng thái hiện tại (goal tạm thời) tìm xem luật nào có thể sinh ra trạng thái này. Các điều kiện để áp dụng được các luật đó trở thành subgoal. Quá trình lặp lại cho đến khi lui về đến các sự kiện ban đầu.

5

6

2

1/19/2014

CơCơCơCơ ssssở ddddữ lilililiệuuuu ((((Database) Database) Database) Database)

Không giangiangiangian trtrtrtrạngngngng thái State Space) thái ((((State Space) Không State Space) State Space) thái thái Không Không

(cid:1) Không gian tìm kiếm là một

(cid:1) Không gian tìm kiếm thường là

danh sách (list) hay cây (tree)

một đồ thị (graph)

(cid:1) Mục tiêu tìm kiếm là một path (cid:1) Phải lưu trữ toàn bộ không gian

(cid:1) Tìm kiếm một record/nút (cid:1) Phần tử đã duyệt qua là không còn dùng tới

trong quá trình tìm kiếm

(cid:1) Không gian tìm kiếm là cố

(cid:1) Không gian tìm kiếm biến động

định trong quá trình tìm kiếm

liên tục trong quá trình tìm kiếm

(cid:1) Thuộc tính của một

record/nút là cố định

(cid:1) ;ặc tính của trạng thái/nút là

phức tạp & biến động

◦ N: là tập nút của Graph. Mỗi nút là một trạng thái

của quá trình giải quyết vấn đề

◦ A: Tập các cung nối giữa các nút N. Mỗi cung là một

bước trong giải quyết vấn đề. Cung có thể có hướng

◦ S: Tập các trạng thái bắt đầu. S khác rỗng. ◦ GD: Tập các trạng thái đích. GD Không rỗng. Solution path: Là một đường (path) đi từ một nút bắt (cid:1) Solution path Solution path Solution path đầu Si đến một nút kết thúc GDj .

(cid:1) Mục tiêu của các giải thuật tìm kiếm là tìm ra một

đường (path) tốt nhất.

7

8

Hai V Pham hai@spice.ci.ritsumei.ac.jp 9

3

1/19/2014

(cid:1) Một tập các tri thức đã biết và việc suy diễn thường được tuân theo các luật biễu diễn logics

(cid:1) Tri thức đã biết được gọi Cơ sở tri thức (KB), tri thức muốn suy diễn ra gọi là Truy vấn (q)

10

(cid:1) Các đối tượng (được mô tả bởi dữ liệu) có gán nhãn (tập huấn luyện), hệ thống có khả năng khái quát hóa các đặc trưng của tập huấn luyện mà hệ thống có khả năng nhận diện hoặc dự đoán nhãn của đối tượng này.

(cid:1) Neural Networks, SOM (cid:1) .. Và một số hệ học ứng dụng khác

11

12

4

1/19/2014

(cid:1) Tìm gia phả họ hàng qua các thế hệ: cụ -

>ông/bà-> cha/mẹ-> con -> cháu -> chắt

(cid:1) Trong bài toán này:

◦ Không gian trạng thái là cây phả hệ (graph) ◦ Mục tiêu tìm kiếm là đường gia phả (path) nối giữa

cháu với ccccụ cháu cháucháu

(cid:1) Data-Driven-Search: Tìm từ CháuCháuCháuCháu đến CCCCụ.

nếu trung bình mỗi thế hệ có X con (Children) thì số trạng

thái cần xét là X5

(cid:1) Goal-Driven search: Tìm từ CCCCụ đến CháuCháuCháuCháu

Nếu mỗi người chỉ có 1 cha và 1 mẹ. Số trạng thai cần xét

là 25.

Phương pháp nào được áp dụng để giải quyết bài toán?

Tìm kiếm

Các kỹ thuật tìm kiếm

13

(cid:1) Tìm đường đi tối ưu biểu diễn không gian trạng thái từ Arad đến Bucharest theo sơ đồ dưới đây. Sau đó viết thủ tục tìm kiếm bằng ngôn ngữ đặc tả C++, Pascal hoặc Java

14

Hai V Pham hai@spice.ci.ritsumei.ac.jp 15

5

1/19/2014

(cid:1) Anh/chị hãy nêu một ví dụ ứng dụng cụ thể

của một trong các hệ thống dưới đây: ◦ Hệ thống biết giải toán (bằng tìm kiếm) ◦ Hệ thống biết lập luận ◦ Hệ thống biết học

(cid:1) Sau đó anh/chị nêu và biểu diễn bài toán ví

dụ nêu trên theo các đề mục dưới đây: ◦ Phát biểu bài toán ◦ Không gian trạng thái ◦ Phương pháp giải bài toán. ◦ Hàm chi phí

16

Bài toán phát biểu chỉnh: Bài toán biết rõ đầu vào, đầu ra có thể áp dụng thuật toán một cách tường minh Bài toán phát biểu không chỉnh: Bài toán có thể giải được hoặc không giải được

(cid:1) Biểu diễn không gian trạng thái:

◦ Mỗi hình trạng tương ứng với một trạng thái (stage) ◦ Mỗi phép biến đổi hình trạng tương ứng với biến

đổi của toán tử (operator)

(cid:1) Qui bài toán tổng thể thành các bài toán con (cid:1) Sử dụng logic hình thức

◦ Logic mệnh đề ◦ Logic vị từ

(cid:1) Lựa chọn các phương pháp: chia để trị, lọc

17

thông tin, đơn giản hóa các thao tác

(cid:1) Biểu diễn trong máy

18

6

1/19/2014

(cid:1) Biểu diễn trong máy

(cid:1) Giải thuật graph search tìm tất cả các path có

19

thể có để tìm được nghiệm

(cid:1) Graph search thực hiện bằng cách tìm theo

các nhánh của graph.

(cid:1) Khi gặp nhánh không đi tiếp được, giải thuật phải có khả năng quay lui lại trạng thái trước BACK TRACKING.

(cid:1) Giải thuật graph search tìm tất cả các path có

thể có để tìm được nghiệm

(cid:1) Graph search thực hiện bằng cách tìm theo

các nhánh của graph.

(cid:1) Khi gặp nhánh không đi tiếp được, giải thuật phải có khả năng quay lui lại trạng thái trước BACK TRACKING.

7

1/19/2014

Cs:= first element of NSL; end;

add CS to SL; End; Else begin

Procedure backtrack; Begin S:=[start]; NLS:=[start]; De:=[ ]; CS:=start; While (NSL#[ ]) do Begin if CS = Goal then return(SL); if CS has no children (Except

node in DE, Sl and NSL) then

begin

add children of CS (Except node in DE,SL and NSL) to NSL CS:= first element of NSL; add CS to SL;

while ((SL#[ ]) and

end;

CS=First element of SL)) do

begin add CS to DE

remove first element

from SL;

end; End; {end while} Return FAIL; End;

remove first element

from NSL;

8