1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài báo cáo trí tuệ nhân tạo giải thuật best first search befs

25 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Bài Báo Cáo Trí Tuệ Nhân Tạo
Tác giả Vũ Huy Hoàng, Nguyễn Tiến Đạt, Hoàng Thị Bích Ngọc, Lương Thị Linh, Phạm Huy Hoàng
Trường học Trường Đại Học Lao Động – Xã Hội
Thể loại Bài báo cáo
Năm xuất bản 2023-2024
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 448,23 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giải thuật Best First Search - BeFS Best Frist Search: là một loại thuật toán tìm kiếm khám phá biểu bằng cách mở rộng nút hứa hẹn nhất được chọn theo quy tắc cụ thể.. Judea Pearl đã mô

Trang 1

TRƯỜNG ĐẠI HỌC LAO ĐỘNG – XÃ HỘI

-o0o -BÀI BÁO CÁO TRÍ TUỆ NHÂN TẠO

Trang 2

TRƯỜNG ĐẠI HỌC LAO ĐỘNG – XÃ HỘI

-o0o -BÀI BÁO CÁO TRÍ TUỆ NHÂN TẠO

ĐỀ 1 Thành viên nhóm:

Vũ huy hoàng – 1117091685 - thực hiện phần 1

Nguyễn Tiến Đạt -1117092645 – thực hiện câu hỏi 9.2 ,9.3, 9.4 Hoàng Thị Bích Ngọc -1117092121- thực hiện câu hỏi 9.5 9.6 Lương Thị Linh -1117092120 - thực hiện câu hỏi 9.7 , 9.8 ,9.9 Phạm Huy Hoàng - 1117092116 - thực hiện phần 3 3

Năm 2023-2024

Trang 3

MỤC LỤC

MỤC LỤC 3

MỞ ĐẦU 4

PHẦN 1: BÀI TOÁN TÌM KIẾM LỜI GIẢI TRÊN KHÔNG GIAN TRẠNG THÁI 6

I Giải thuật Best First Search - BeFS 6

II Ứng dụng BeFS giải bài toán người đưa thư 6

1 Giới thiệu bài toán 6

2 Giải bài toán toán người đưa thư 6

III Cài đặt thuật toán Best First Search cho bài toán người đưa thư 8

1 Ngôn ngữ lập trình 8

2 Cài đặt thuật toán 9

PHẦN 2: BÀI TOÁN LOGIC 12

Câu 9.2 12

Câu 9.3 12

Câu 9.4: 13

Câu 9.5 15

Câu 9.6 15

Câu 9.7 17

Câu 9.8 18

Câu 9.9 19

PHẦN 3 : HỌC MÁY 22

1 Thuật toán cây quyết định( CART) 22

2 Áp dụng phân lớp dữ liệu Iris bằng cây quyết định CART 24

3 Cài đặt thuật toán cây quyết định CART với dữ liệu Iris 25

TÀI LIỆU THAM KHẢO 26

1 Tài liệu tham khảo phần 1 : 26

2 Tài liệu tham khảo phần 2: 26

3 Tài liệu tham khảo phần 3 26

Trang 4

MỞ ĐẦU

Trí tuệ nhân tạo (Artificial Intelligence - AI) là một lĩnh vực khoa học máy tính chuyên nghiên cứu và phát triển các hệ thống có khả năng thực hiện các nhiệm vụ mà trước đây chỉ con người mới có thể làm được, chẳng hạn như học tập, lập luận, giải quyết vấn đề, hiểu ngôn ngữ, và nhận diện các mô hình phức tạp AI không chỉ dừng lại ở việc mô phỏng các hành vi thông minh mà còn tìm cách vượt qua giới hạn của trí tuệ con người, tạo ra những giải pháp mới và sáng tạo cho các vấn đề phức tạp trong thế giới thực

AI hiện nay được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau, mang lại những cải tiến đáng kể và mở ra nhiều khả năng mới như :

Y Tế: AI được sử dụng để chẩn đoán bệnh, phân tích hình ảnh y khoa, và phát triển các phương pháp điều trị cá nhân hóa Hệ thống AI có thể phân tích lượng lớn dữ liệu y tế để đưa ra những chẩn đoán và dự báo chính xác hơn so với các phương pháp truyền thống

Giao Thông: Các hệ thống xe tự lái, quản lý giao thông thông minh và dự báo lưu lượng giao thông sử dụng AI để cải thiện an toàn và hiệu quả giao thông

Tài Chính: Trong lĩnh vực tài chính, AI hỗ trợ phân tích dữ liệu lớn, phát hiện gian lận, và đưa ra các quyết định đầu tư thông minh Các hệ thống giao dịch tự động và quản lý rủi ro sử dụng AI để cải thiện hiệu quả và độ chính xác

Giáo Dục: AI đóng vai trò quan trọng trong việc phát triển các hệ thống học tập thích ứng và hỗ trợ giảng dạy cá nhân hóa

Trong bài báo cáo này của bọn em đã phần nào tìm hiểu được về kiến thức của môn học AI Bài báo cáo được thực hiện bởi 5 thành viên :

Vũ huy hoàng – 1117091685 - thực hiện phần 1: Tìm kiếm lời giải trên không gian trạng thái

Nguyễn Tiến Đạt -1117092645 – thực hiện phần 2: bài toán logic câu hỏi 9.2 ,9.3, 9.4

Hoàng Thị Bích Ngọc -1117092121- thực hiện phần 2: bài toán logic câu hỏi 9.5 9.6

Trang 5

Lương Thị Linh -1117092120 - thực hiện phần 2: bài toán logic câu hỏi 9.7 , 9.8 ,9.9

Phạm Huy Hoàng - 1117092116 - thực hiện phần 3: Học máy 3

Trang 6

PHẦN 1: BÀI TOÁN TÌM KIẾM LỜI GIẢI TRÊN KHÔNG

GIAN TRẠNG THÁI

I Giải thuật Best First Search - BeFS

Best Frist Search: là một loại thuật toán tìm kiếm khám phá biểu bằng cách

mở rộng nút hứa hẹn nhất được chọn theo quy tắc cụ thể

Judea Pearl đã mô tả tìm kiếm đầu tiên tốt nhất là ước tính mức độ hứa

hẹn của nút n bằng "hàm đánh giá heuristic f(n) nói chung, điều này có thể phụ thuộc vào mô tả của n , mô tả mục tiêu, thông tin được thu thập bằng cách tìm

kiếm cho đến thời điểm đó và quan trọng nhất là vào bất kỳ kiến thức bổ sung nào

II Ứng dụng BeFS giải bài toán người đưa thư

1 Giới thiệu bài toán

Bài toán người đưa thư là một trong những bài toán tối ưu trên đồ thị đượcứng dụng rộng rãi trong thực tế Các bài toán đặt ra trong các ứng dụng như vậythường có cơ sở dữ liệu lớn nên việc rút ngắn và tìm kiếm đường đi ngắn nhất giữahai đỉnh trong đồ thị là một vấn đề cần thiết và phải được tối ưu nên bài toán tìmkiếm đường đi giữa 2 đỉnh là một bài toán chúng ta cần giải quyết

2 Giải bài toán toán người đưa thư

Giả dụ bạn là một người đưa thư và bạn có danh sách các địa chỉ cần giao(một bản đồ) như hình 1 phía dưới

Trang 7

Hình 1: đồ thị trang tháiTrong đó điểm xuất phát của bạn là đỉnh A, địa chỉ bạn cần giao là điểm B

và bạn phải giao đến điểm B nhanh nhất có thể Đây là lúc mà phương pháp tìmkiếm Best Frist Search (BeFS) được áp dụng để tìm cho bạn con đường ngắn nhấtđến đích

Để thực hiện bài toán trên bằng phương pháp BeFS :

 Ta sử dụng danh sách Open để lựa chọn trạng thái (đỉnh) vừa sinh ra và

chưa xét Lưu ý: Các phần tử sinh ra được sắp xếp theo hàm h(n) Nếukhông sắp xếp thì chọn giá trị h(n) tốt nhất

 Sử dụng danh sách Closed để chứa các đỉnh đã xét.

 Sử dụng mạng Father[1 n] để lưu lại vết đường đi xuất phát từ đỉnh s,

Father[w] = v, nếu w được thăm từ v Mảng Father khởi tạo null Danh sách

đỉnh kề của v ký hiệu Ke(v)

 Đỉnh xuất phát s, đỉnh đích gTa có dồ thị trạng thái sau đây:

Với hình 1 sau khi sử dụng phương pháp BeFS ta có kết quả như sau:Lần

lặp

2 D6 [E7 ,I8,F10, C15] A20,D6

3 E7 [G5, I8,F10,K12,C15] A20,D6,E7

4 G5 [B0, H3,I8,F10,K12,C15] A20,D6,E7,G5

5 B0 [H3,I8,F10,K12,C15] A20,D6,E7,G5,B0

Trang 8

Với lần lặp đầu tiên ta bắt đầu tại đỉnh A và xét các đỉnh lân cận với A là [D,E,C] vào danh sách Open (chưa xét) ta đưa đỉnh A vào danh sách Closed (đã xét)

Lần lặp 2 ta chọn đỉnh D là điểm đến tiếp theo vì D có giá trị h(n) tốt nhất

là 6 và đưa các điểm lân cận của D là [I,F] vào danh sách Open Ta đưa đỉnh D vào danh sách Closed

Lần lặp 3 ta chọn đỉnh E là điểm đến tiếp theo vì E có giá trị h(n) tốt nhất

là 7 và đưa các điểm lân cận của E là [G,K] vào danh sách Open Ta đưa đỉnh Evào danh sách Closed

Lần lặp 4 ta chọn đỉnh G là điểm đến tiếp theo vì G có giá trị h(n) tốt nhất

là 5 và đưa các điểm lân cận của G là [H,B] vào danh sách Open Ta đưa đỉnh

G vào danh sách Closed

Lần lặp 5 ta chọn đỉnh B là điểm đến tiếp theo vì B có giá trị h(n) tốt nhất

là 0 và B cũng là điểm cần đến nên ta kết thúc việc xét duyệt để tìm ngược lại đường đi Ta đưa đỉnh B vào danh sách Closed

Sau khi tìm ngược lại đường đi ta có kết quả là A – E – G – B

III Cài đặt thuật toán Best First Search cho bài toán người đưa thư

Jupyter là một nền tảng tính toán khoa học mã nguồn mở, với khả năng nổi bật cho phép tương tác trực tiếp với từng dòng code (interactive), hỗ trợ hơn

40 ngôn ngữ lập trình, trong đó tập trung vào 3 ngôn ngữ là Julia, Python và R Bên cạnh đó, Jupyter cũng là một công cụ hoàn toàn miễn phí, được tạo ra với mục đích nhắm đến khoa học dữ liệu và giáo dục, giúp mọi người cùng học lập trình dễ dàng hơn (cụ thể ở đây là Python) Jupyter có tính tương tác nên có thể

sử dụng làm môi trường chạy thử và giảng dạy

Trang 9

2 Cài đặt thuật toán

Để cài đặt thuật toán BeFS cho bài toán người đưa thư (hình 1) đầu tiên ta cần khai báo 2 thư viện “defaultdict” , “PriorityQueue” và nhập dữ liệu của đồ thị

Ta khởi tạo một class Node để biểu diễn một nút trong cấu trúc dữ liệu cây Mỗi Node bao gồm các thuộc tính sau:

- name : tên của nút

- par : Tham chiếu đến nút cha của nút hiện tại Mặc định là None nếu nút hiện tại là nút gốc của cây

- h : là hàm đánh giá của nút hiện tại

Các phương thức trong lớp Node bao gồm:

- display : hiển thị tên của nút và hàm đánh giá của nút đó

- lt : phương thức so sánh nhỏ hơn được sử dụng để so sánh hàm đánh giá của nút hiện tại với nút khác Nếu h của nút hiện tại nhỏ hơn thì sẽ trả

về True; ngược lại trả về False

Trang 10

- eq : phương thức so sánh bằng được sử dụng để so sánh tên của nút hiện tại với tên của nút khác Nếu tên của nút hiện tại bằng tên của nút khác thì sẽ trả về True; ngược lại trả về False.

Các phương thức này giúp quản và thao tác với các đối tượng Node trongcấu trúc dữ liệu của đồ thị một cách dễ dàng và linh hoạt hơn

Tiếp theo chúng ta cần kiểm tra sự tồn tại của đối tượng trong hàng đợi

và tính toán khoảng cách từ nút gốc đến một nút bất kỳ:

- CheckInPriority(tmp, c) : Hàm này kiểm tra xem một đối tượng Node

‘tmp’ có ở trong hàng đợi ‘c’ hay không Nếu ‘tmp’ là None, trả về False.Nếu ‘tmp’ tồn tại trong hàng đợi trả về True

- getPath(O, distance) : Hàm này được sử dụng để in ra tên của nút ‘O’ và tính toán khoảng cách từ nút gốc đến nút ‘O’ bằng cách cộng thêm h (O.h) của nút đó vào biến distance Nếu nút ‘O’ có nút cha (O.par) khác

sẽ gọi đệ quy chính nó với đối số là nút cha của ‘O’ và cập nhật giá trị của biến ‘distance’ Khi đến nút gốc (nút cha là None) hàm sẽ tự in ra thông báo về khoảng cách tính được từ nút gốc đến nút ‘O’

Tiếp theo chúng ta triển khai thuật toán tìm kiếm theo chiều rộng (BFS)

Trang 11

Hàm nhận hai đối tượng Node mặc định là A và B Ta khởi tạo hàng đợi Open và Closed dùng để lưu các nút chưa duyệt và đã xét “S.h = data[S.name][-1] ” dùng để truy xuất tới phần tử cuối cùng trong data sau đó ta đưa nút ‘S’ vào hàng đợi Open để bắt đầu tìm kiếm.

Trong vòng lặp While ta lặp cho đến khi hàng đợi Open trống Lấy nút đầu tiên ‘O’ ra khỏi hàng đợi Open và đưa vào Closed In ra tên nút ‘O’ đang được duyệt và hàm đánh giá (h) của nút đó Nếu nút ‘O’ bằng nút ‘G’ thông báotìm kiếm thành công, tính toán và in ra khoảng cách từ nút gốc đến nút ‘O’, sau

đó kết thúc thuật toán Nếu vòng lặp kết thúc và hàng đợi Open trống mà vẫn chưa tìm được thông báo tìm kiếm thất bại

Kết quả khi chạy thử chương trình với điểm gốc là A và điểm đích là B

Trang 12

PHẦN 2: BÀI TOÁN LOGIC

quy tắc suy luận tổng quát tồn tại (Existential generalization) cho phép bạn suy

ra một mệnh đề với lượng từ tồn tại từ một mệnh đề cụ thể

Được cho: Một mệnh đề với chủ ngữ và vị ngữ cụ thể Trong ví dụ này,

mệnh đề là Likes(Jerry, IceCream), có nghĩa là Jerry thích kem một cách

cụ thể

Suy luận: Bạn có thể suy ra một mệnh đề mới nói rằng "tồn tại một thứ

gì đó" thỏa mãn vị ngữ Trong trường hợp này, mệnh đề suy ra là x ∃Likes(x, IceCream), có nghĩa là tồn tại ai đó (được biểu thị bằng biến x) thích kem

Điều kiện của quy tắc suy luận:

Mệnh đề bạn bắt đầu phải có một thành phần chủ ngữ (Jerry trong

trường hợp này) và một vị ngữ (Likes(x, y) trong trường hợp này).

Biến bạn đưa vào (x trong trường hợp này) không được xuất hiện trong

mệnh đề ban đầu Điều này đảm bảo rằng bạn đang tổng quát hóa về một cái gì đó nằm ngoài phạm vi của mệnh đề ban đầu

Trang 13

Chỉ có thể suy ra AsHighAs(Kilimanjaro, Everest) ( x AsHighAs(x, Everest))

là kết quả hợp lệ của việc áp dụng phép lược bỏ tồn tại (Existential

Instantiation) cho cơ sở tri thức được cung cấp

Giải thích:

Phép lược bỏ tồn tại cho phép bạn suy ra rằng một thực thể cụ thể nào

đó có một thuộc tính nhất định, dựa trên việc biết rằng tồn tại một thực thể có thuộc tính đó.

 Trong cơ sở tri thức đã cho, x AsHighAs(x, Everest) khẳng định rằng ∃tồn tại một ngọn núi (được biểu thị bằng x) có độ cao bằng Everest

AsHighAs(Everest, Everest) không phải là một kết quả hợp lệ vì nó

không giới thiệu một thực thể mới Cả chủ ngữ và vị ngữ đều đề cập đến cùng một ngọn núi (Everest), không cung cấp thông tin mới về những ngọn núi khác

AsHighAs(Kilimanjaro, Everest) AsHighAs(BenNevis, Everest) ∧

cũng không phải là kết quả hợp lệ vì phép lược bỏ tồn tại chỉ cho phép suy ra một mệnh đề duy nhất tại một thời điểm Bạn cần áp dụng phép lược bỏ tồn tại nhiều lần để suy ra cả hai mệnh đề này, nhưng mỗi lần áp dụng chỉ cung cấp thông tin về một ngọn núi cụ thể

Tóm lại:

 Phép lược bỏ tồn tại hữu ích để chuyển từ kiến thức về sự tồn tại của một thực thể sang kiến thức về một thực thể cụ thể có các thuộc tính mong muốn

 Trong trường hợp này, AsHighAs(Kilimanjaro, Everest) là một kết quả hợp lệ vì nó cho biết rằng ngọn núi Kilimanjaro có cùng độ cao với Everest

Trang 14

3 Older(Father(y), y) và Older(Father(x), John):

Không có mgu nào tồn tại

Giải thích:

Tương tự như trường hợp 1, câu đầu tiên yêu cầu Father(y) phải giống y

Câu thứ hai cho phép Father(x) khác John

Những ràng buộc này không thể được điều hòa

Trang 15

Câu 9.5

với mỗi cặp câu nguyên tử, hãy đưa ra từ thống nhất tổng quát nhất nếu nó tồn tại:

1 P(A, A, B), P(x, y, z)

2 Q(y, G(A, B)), Q(G(x, x), y)

3 Older(Father(y), y), Older(Father(x), Jerry)

4 Knows (Father(y), y), Knows(x, ).

Bài làm :

1 P(A, A, B) và P(x, y, z)

- Đối với cặp này, chúng ta có thể thấy rằng A và x có thể được thay thế cho nhau, vì vậy từ thống nhất có thể là P(x, x, B)

2 Q(y, G(A, B)) và Q(G(x, x), y)

- Trong trường hợp này, chúng ta thấy rằng y có thể thay thế cho G(x, x), vì vậy từ thống nhất có thể là Q(y, y)

3 Older(Father(y), y) và Older(Father(x), Jerry)

- Đây là trường hợp mà chúng ta không thể thống nhất tổng quát một cách đơngiản Older(Father(y), y) mô tả một người cha già hơn con mình, trong khi Older(Father(x), Jerry) mô tả một người cha già hơn một người tên Jerry

Chúng không thể được thay thế lẫn nhau một cách thống nhất

Trang 16

2 Xây dựng mạng lưới cho câu tuyển dụng (IBM,y) (“Mọi người đều làm việc cho IBM”) Hãy nhớ bao gồm mọi loại truy vấn thống nhất với câu.

3.Giả sử rằng lập chỉ mục cho mỗi câu dưới mỗi nút trong mạng phụ của nó Giải thích cách hoạt động khi một số câu này chứa các biến; sử dụng làm ví dụ các câu trong (a) và (b) và truy vấn tuyển dụng (x,Father(x))

Richar d John

Mother

Fathe r

Tuyển dụng

IBM

Trang 17

3 Giả sử rằng lập chỉ mục cho mỗi câu dưới mỗi nút trong mạng phụ của nó Khi một số câu này chứa các biến, truy vấn "Tuyển dụng(x, father(x))" sẽ hoạt động như sau:

- Câu (a) có dạng "Tuyển dụng(x, father(x))" Đây là một truy vấn tổng quát vớibiến x, nơi x đại diện cho một đối tượng nào đó mà cha của nó tuyển dụng Trong mạng lưới, ta sẽ đi từ gốc (Tuyển dụng) và tiếp tục theo nhánh "father" cho đến khi tìm thấy đối tượng thỏa mãn truy vấn Ví dụ, nếu ta có một nút con dưới "father" là "James", truy vấn sẽ trả về "Tuyển dụng(James,

father(James))"

- Câu (b) không chứa biến, do đó truy vấn sẽ tạo ra các phát biểu cụ thể dựa trênthông tin trong câu Ví dụ, nếu ta có một nút con dưới "father" là "Richard", truy vấn sẽ trả về "Tuyển dụng(Richard,father(Richard))"

Câu 9.7

Viết các cách biểu diễn logic cho các câu sau, phù hợp để sử dụng với Modus Ponen tổng quát:

1 Ngựa, bò và lợn là động vật có vú

2 Con của ngựa là ngựa

3 Bluebeard là một con ngựa

4 Bluebeard là cha mẹ của Charlie

5 Con cái và cha mẹ là mối quan hệ nghịch đảo

6 Mỗi động vật có vú đều có cha mẹ

Trang 18

P2: "Con của ngựa là ngựa."

P2 => Q(con của ngựa, ngựa)

P3: "Bluebeard là một con ngựa."

Những câu hỏi này liên quan đến vấn đề thay thế và Skolemization

1 Cho tiền đề x yP(x,y), sẽ không hợp lý khi kết luận rằng qP(q,q) Cho ví ∀ ∃ ∃

dụ về vị từ P trong đó điều đầu tiên là đúng nhưng điều thứ hai là sai

2 Giả sử rằng một công cụ suy luận được viết không chính xác và bỏ qua phần kiểm tra xảy ra, do đó nó cho phép một chữ như P(x,F(x)) thống nhất với P(q,q).(Như đã đề cập, hầu hết các triển khai tiêu chuẩn của Prolog thực sự đều cho phép điều này.) Hãy chứng minh rằng công cụ suy luận như vậy sẽ cho phép kếtluận yP(q,q) được suy ra từ tiền đề x yP(x,y).∃ ∀ ∃

3 Giả sử rằng một quy trình chuyển đổi logic bậc nhất thành dạng mệnh đề không chính xác Skolemizes x yP(x,y)đến P(x,Sk0)tức là, nó thay thế y bởi ∀ ∃hằng số Skolem chứ không phải bởi hàm Skolem của x Chứng tỏ rằng một công cụ suy luận sử dụng thủ tục như vậy cũng sẽ cho phép qP(q,q) được suy ∃

Ngày đăng: 16/01/2025, 20:41

HÌNH ẢNH LIÊN QUAN

Hình 1: đồ thị trang thái - Bài báo cáo trí tuệ nhân tạo  giải thuật best first search   befs
Hình 1 đồ thị trang thái (Trang 7)

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w