1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo chuyên Đề học phần nhập môn trí tuệ nhân tạo Đề ti bài 9 và bài 21 d

53 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áo Cáo Chuyên Đề Học Phần Nhập Môn Trí Tuệ Nhân Tạo Đề Tài: Bài 9 Và Bài 21
Tác giả Lý Bách Linh
Người hướng dẫn Nguyễn Thị Hồng Khánh
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 53
Dung lượng 8,39 MB

Nội dung

Trong môn học này, chúng ta sẽ tìm hiểu các phương pháp để làm cho máy tínhbiết cách giải bài toán, biết cách lập luận, biết các học,… 1.2 Lịch sử của trí tuệ nhân tạo Trí tuệ nhân tạo l

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN

NHẬP MÔN TRÍ TUỆ NHÂN TẠO

ĐỀ TI:

BÀI 9 VÀ BÀI 21

Sinh viên thực hiện : LÝ BÁCH LINH

Giảng viên hướng dẫn : NGUYỄN T.HỒNG KHÁNH

Trang 2

PHIẾU CHẤM ĐIỂM

Sinh viên thực hiện:

STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký

Trang 3

LỜI CẢM ƠN

Trong thời gian làm báo cáo môn học, chúng em đã nhận được nhiều sự giúp

đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè Chúng

em xin gửi lời cảm ơn chân thành đến giảng viên Nguyễn Thị Hồng Khánh, giảngviên Bộ môn Phần mềm mã nguồn mở - trường Đại học Điện Lực người đã tậntình hướng dẫn, chỉ bảo em trong suốt quá trình học tập, nghiên cứu Em cũng xinchân thành cảm ơn các thầy cô giáo trong trường Đại học Điện Lực nói chung, cácthầy cô trong khoa công nghệ thông tin nói riêng đã dạy dỗ cho em kiến thức vềcác môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lýthuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học tập Cuốicùng, em xin chân thành cảm ơn!

Hà Nội, ngày 04 tháng 12 năm 2023

Trang 4

CHƯƠNG 1: GIỚI THIỆU 1.1 Trí tuệ nhân tạo là gì

Để hiểu trí tuệ nhân tạo (Artificial Intelligence) là gì chúng ta bắt đầu với kháiniệm sự bay nhân tạo (flying machines), tức là cái máy bay

Đã từ lâu, loài người mong muốn làm ra một cái máy mà có thể di chuyển đượctrên không trung mà không phụ thuộc vào địa hình ở dưới mặt đất, hay nói cáchkhác là máy có thể bay được Không có gì ngạc nhiên khi những ý tưởng đầu tiênlàm máy bay là từ nghiên cứu cách con chim bay Những chiếc máy biết bay đượcthiết kế theo nguyên lý “vỗ cánh” như con chim chỉ có thể bay được quãng đườngrất ngắn và lịch sử hàng không thực sự sang một trang mới kể từ anh em nhàWright thiết kế máy bay dựa trên các nguyên lý của khí động lực học(aerodynamics)

Các máy bay hiện nay, như đã thấy, có sức trở rất lớn và bay được quãngđường có thể vòng quanh thế giới Nó không nhất thiết phải có nguyên lý bay củacon chim nhưng vẫn bay được như chim (dáng vẻ), và còn tốt hơn chim

Quay lại câu hỏi Trí tuệ nhân tạo là gì Trí tuệ nhân tạo là trí thông minh củamáy do con người tạo ra Ngay từ khi chiếc máy tính điện tử đầu tiên ra đời, cácnhà khoa học máy tính đã hướng đến phát hiện hệ thống máy tính (gồm cả phầncứng và phần mềm) sao cho nó có khả năng thông minh như loài người Mặc dùcho đến nay, theo quan niệm của người viết, ước mơ này vẫn còn xa mới thànhhiện thực, tuy vậy những thành tựu đạt được cũng không hề nhỏ: chúng ta đã làmđược các hệ thống (phần mềm chơi cờ vua chạy trên siêu máy tính Gene Blue) cóthể thắng được vua cờ thế giới; chúng ta đã làm được các phần mềm có thể chứngminh được các bài toán hình học; v.v Hay nói cách khác, trong một số lĩnh vực,

Trang 5

máy tính có thể thực hiện tốt hơn hoặc tương đương con người (tất nhiên khôngphải tất cả các lĩnh vực) Đó chính là các hệ thống thông minh.

Có nhiều cách tiếp cận để làm ra trí thông minh của máy (hay là trí tuệ nhântạo), chẳng hạn là nghiên cứu cách bộ não người sản sinh ra trí thông minh của loàingười như thế nào rồi ta bắt chước nguyên lý đó, nhưng cũng có những cách khác

sử dụng nguyên lý hoàn toàn khác với cách sản sinh ra trí thông minh của loài người mà vẫn làm ra cái máy thông minh như hoặc hơn người; cũng giốngnhư máy bay hiện nay bay tốt hơn con chim do nó có cơ chế bay không phải làgiống như cơ chế bay của con chim

Như vậy, trí tuệ nhân tạo ở đây là nói đến khả năng của máy khi thực hiện cáccông việc mà con người thường phải xử lý; và khi dáng vẻ ứng xử hoặc kết quảthực hiện của máy là tốt hơn hoặc tương đương với con người thì ta gọi đó là máythông minh hay máy đó có trí thông minh Hay nói cách khác, đánh giá sự thôngminh của máy không phải dựa trên nguyên lý nó thực hiện nhiệm vụ đó có giốngcách con người thực hiện hay không mà dựa trên kết quả hoặc dáng vẻ ứng xử bênngoài của nó có giống với kết quả hoặc dáng vẻ ứng xử của con người hay không.Các nhiệm vụ của con người thường xuyên phải thực hiện là: giải bài toán (tìmkiếm, chứng minh, lập luận), học, giao tiếp, thể hiện cảm xúc, thích nghi với môitrường xung quanh, v.v., và dựa trên kết quả thực hiện các nhiệm vụ đó để kết luậnrằng một ai đó có là thông minh hay không Môn học Trí tuệ nhân tạo nhằm cungcấp các phương pháp luận để làm ra hệ thống có khả năng thực hiện các nhiệm vụđó: giải toán, học, giao tiếp, v.v bất kể cách nó làm có như con người hay không

mà là kết quả đạt được hoặc dáng vẻ bên ngoài như con người

Khi máy móc ngày càng tăng khả năng, các nhiệm vụ được coi là cần "trí thôngminh" thường bị loại bỏ khỏi định nghĩa về AI, một hiện tượng được gọi là hiệu

Trang 6

ứng của AI Một câu châm ngôn trong Định lý của Tesler nói rằng "AI là bất cứđiều gì chưa được thực hiện."Ví dụ, nhận dạng ký tự quang học thường bị loại trừkhỏi những thứ được coi là AI, đã trở thành một công nghệ thông thường khả năngmáy hiện đại thường được phân loại như AI bao gồm thành công hiểu lời nói củacon người, cạnh tranh ở mức cao nhất trong trò chơi chiến lược(chẳng hạn như cờvua và Go), xe hoạt động độc lập, định tuyến thông minh trong mạng phân phốinội dung, và mô phỏng quân sự.

Trí tuệ nhân tạo có thể được phân thành ba loại hệ thống khác nhau: trí tuệnhân tạo phân tích, lấy cảm hứng từ con người và nhân tạo AI phân tích chỉ có cácđặc điểm phù hợp với trí tuệ nhận thức; tạo ra một đại diện nhận thức về thế giới

và sử dụng học tập dựa trên kinh nghiệm trong quá khứ để thông báo các quyếtđịnh trong tương lai AI lấy cảm hứng từ con người có các yếu tố từ trí tuệ nhậnthức và cảm xúc; hiểu cảm xúc của con người, ngoài các yếu tố nhận thức và xemxét chúng trong việc ra quyết định AI nhân cách hóa cho thấy các đặc điểm của tất

cả các loại năng lực (nghĩa là trí tuệ nhận thức, cảm xúc và xã hội), có khả năng tự

ý thức và tự nhận thức được trong các tương tác

Trí tuệ nhân tạo được thành lập như một môn học thuật vào năm 1956, và trongnhững năm sau đó đã trải qua nhiều làn sóng lạc quan, sau đó là sự thất vọng vàmất kinh phí (được gọi là " mùa đông AI "), tiếp theo là cách tiếp cận mới, thànhcông và tài trợ mới Trong phần lớn lịch sử của mình, nghiên cứu AI đã được chiathành các trường con thường không liên lạc được với nhau.Các trường con này dựatrên các cân nhắc kỹ thuật, chẳng hạn như các mục tiêu cụ thể (ví dụ: " robot học"hoặc "học máy"), việc sử dụng các công cụ cụ thể ("logic" hoặc mạng lưới thầnkinh nhân loại) hoặc sự khác biệt triết học sâu sắc Các ngành con cũng được dựatrên các yếu tố xã hội (các tổ chức cụ thể hoặc công việc của các nhà nghiên cứu

cụ thể)

Trang 7

Lĩnh vực này được thành lập dựa trên tuyên bố rằng trí thông minh của conngười "có thể được mô tả chính xác đến mức một cỗ máy có thể được chế tạo để

mô phỏng nó" Điều này làm dấy lên những tranh luận triết học về bản chất củatâm trí và đạo đức khi tạo ra những sinh vật nhân tạo có trí thông minh giống conngười, đó là những vấn đề đã được thần thoại, viễn tưởng và triết học từ thời cổ đại

đề cập tới Một số người cũng coi AI mối nguy hiểm cho nhân loại nếu tiến triểncủa nó không suy giảm Những người khác tin rằng AI, không giống như các cuộccách mạng công nghệ trước đây, sẽ tạo nguy cơ thất nghiệp hàng loạt

Trong thế kỷ 21, các kỹ thuật AI đã trải qua sự hồi sinh sau những tiến bộ đồngthời về sức mạnh máy tính, dữ liệu lớn và hiểu biết lý thuyết; và kỹ thuật AI đã trởthành một phần thiết yếu của ngành công nghệ, giúp giải quyết nhiều vấn đề tháchthức trong học máy, công nghệ phần mềm và nghiên cứu vận hành

Trong môn học này, chúng ta sẽ tìm hiểu các phương pháp để làm cho máy tínhbiết cách giải bài toán, biết cách lập luận, biết các học,…

1.2 Lịch sử của trí tuệ nhân tạo

Trí tuệ nhân tạo là lĩnh vực nghiên cứu về cách tạo ra các máy móc và chươngtrình máy tính có khả năng thực hiện các hoạt động thông minh giống như conngười, như học hỏi, suy luận, nhận dạng, lập kế hoạch, giải quyết vấn đề,… Lịch

sử của trí tuệ nhân tạo bắt đầu từ những năm 1950, khi các nhà khoa học máy tínhđầu tiên bắt đầu nghiên cứu về cách tạo ra các chương trình máy tính có khả năng

“suy luận” và “học hỏi” giống như con người Từ đó đến nay, lĩnh vực này đã trảiqua nhiều giai đoạn và đạt được nhiều thành tựu quan trọng Dưới đây là một sốđiểm nổi bật trong lịch sử của trí tuệ nhân tạo:

- Năm 1950, Alan Turing đưa ra bài kiểm tra Turing, một phương pháp đểđánh giá khả năng của một máy tính trong việc mô phỏng trí tuệ nhântạo

Trang 8

- Năm 1956, John McCarthy, Marvin Minsky, Claude Shannon và nhữngngười khác tổ chức hội thảo Dartmouth, nơi đặt ra thuật ngữ “trí tuệnhân tạo” và khởi đầu cho lĩnh vực nghiên cứu này

- Năm 1965, Joseph Weizenbaum tạo ra ELIZA, một chương trình máytính có thể trò chuyện với người dùng bằng ngôn ngữ tự nhiên, dựa trên

kỹ thuật phản ánh lại câu hỏi của người dùng

- Năm 1972, Alain Colmerauer và Philippe Roussel phát triển Prolog, mộtngôn ngữ lập trình logic được sử dụng rộng rãi trong trí tuệ nhân tạo

- Năm 1980, Edward Feigenbaum, Bruce Buchanan và những người kháctạo ra các hệ thống chuyên gia, những chương trình máy tính có thể giảiquyết các vấn đề cụ thể trong một lĩnh vực chuyên môn, bằng cách sửdụng các luật và kiến thức được cung cấp bởi các chuyên gia

- Năm 1997, Deep Blue, một máy tính của IBM, đánh bại GarryKasparov, vô địch cờ vua thế giới, trong một trận đấu gồm 6 ván Năm

2011, Watson, một hệ thống máy tính của IBM, thắng hai nhà vô địchcủa chương trình truyền hình Jeopardy!, trong một cuộc thi kiến thứctổng quát Năm 2016, AlphaGo, một chương trình máy tính của Google,đánh bại Lee Sedol, một trong những cầu thủ cờ vây hàng đầu thế giới,trong một trận đấu gồm 5 ván

- Năm 2020, GPT-3, một mô hình ngôn ngữ tự nhiên của OpenAI, đượccông bố, với khả năng sinh ra các văn bản có ý nghĩa và phong phú, dựatrên một đoạn văn bản đầu vào

AI là một lĩnh vực nghiên cứu đang phát triển nhanh chóng và có tiềm năng tác động sâu sắc đến nhiều lĩnh vực của đời sống Trong những năm tới, AI có thể được sử dụng để tự động hóa các tác vụ, cải thiện hiệu quả của các hệ thống và giảiquyết các vấn đề phức tạp

1.3 Các lĩnh vực của trí tuệ nhân tạo

Trang 9

Có rất nhiều lĩnh vực của trí tuệ nhân tạo, mỗi lĩnh vực tập trung vào một khía cạnh cụ thể của khả năng thông minh Một số lĩnh vực phổ biến của trí tuệ nhân tạobao gồm:

Học máy (Machine Learning): là lĩnh vực nghiên cứu cách cho máy tự động

học hỏi từ dữ liệu và kinh nghiệm, mà không cần lập trình cụ thể Học máy bao gồm các phương pháp như học có giám sát, học không giám sát, học tăng cường, học sâu,…

là lĩnh vực

Xử lý ngôn ngữ tự nhiên (Natural Language Processing):

nghiên cứu cách cho máy hiểu và tương tác với ngôn ngữ tự nhiên của con người, như tiếng Việt, tiếng Anh, tiếng Trung,… Xử lý ngôn ngữ tự nhiên bao gồm các ứng dụng như dịch máy, phân tích cảm xúc, trợ lý ảo,…

là lĩnh vực nghiên cứu cách cho máy

Thị giác máy tính (Computer Vision):

nhận dạng và xử lý các hình ảnh và video Thị giác máy tính bao gồm các ứng dụng như nhận diện khuôn mặt, phát hiện đối tượng, theo dõi chuyển động,…

Trí tuệ nhân tạo mạnh (Artificial General Intelligence): là lĩnh vực nghiên

cứu cách tạo ra các máy có khả năng thông minh toàn diện, tương đương hoặc vượtqua con người Trí tuệ nhân tạo mạnh là một mục tiêu xa vời và đầy thách thức, vì

nó đòi hỏi máy phải có khả năng tự nhận thức, sáng tạo, suy nghĩ trừu tượng,…

Trang 10

CHƯƠNG 2: BI TOÁN V PHƯƠNG PHÁP TÌM KIẾM LỜI GIẢI 2.1 Bài toán và các thành phần của bài toán

Một bài toán là một câu hỏi hoặc vấn đề cần được giải quyết Một bài toán có thểđược mô tả bằng các thành phần sau:

 Trạng thái: Một đại diện cho một trạng thái của bài toán Trạng thái cóthể được biểu diễn dưới nhiều dạng khác nhau, tùy thuộc vào bài toán cụthể Ví dụ, trong bài toán tìm kiếm đường đi ngắn nhất giữa hai điểm,trạng thái có thể được biểu diễn bằng một đỉnh trong đồ thị

 Trạng thái đầu: Trạng thái ban đầu của bài toán Trạng thái đầu là trạngthái mà bài toán bắt đầu

 Trạng thái đích: Trạng thái cần đạt được của bài toán Trạng thái đích làtrạng thái mà bài toán cần đạt được để giải quyết

 Phép chuyển trạng thái: Một thao tác chuyển từ một trạng thái này sangmột trạng thái khác Phép chuyển trạng thái có thể được biểu diễn bằngmột hàm hoặc một thuật toán

 Chi phí: Một số thực thể đánh giá giá trị của một phép chuyển trạng thái.Chi phí có thể được sử dụng để đánh giá chất lượng của một lời giải

a Bài toán đong nước

Sử dụng ba can 3 lít, 5 lít và 9 lít, làm thế nào để đong được 7 lít nước.Bài toán này được phát biểu lại theo 5 thành phần như sau:

- Trạng thái: Gọi số nước có trong 3 can lần lượt là a, b, c (a ≤ 3, b ≤ 5, c ≤ 9),khi đó bộ ba (a, b, c) là trạng thái của bài toán

- Trạng thái đầu: (0, 0, 0) // cả ba can đều rỗng

- Trạng thái đích (-, -, 7) // can thứ 3 chứa 7 lít nước

Trang 11

- Phép chuyển trạng thái: từ trạng thái (a,b,c) có thể chuyển sang trạng thái(x,y,z) thông qua các thao tác như làm rỗng 1 can, chuyển từ can này sang cankia đến khi hết nước ở can nguồn hoặc can đích bị đầy.

- Chi phí mỗi phép chuyển trạng thái: mỗi phép chuyển trạng thái có chi phí là1

b Bài toán tìm đường đi

Một ôtô robot tìm đường đi từ thành phố Arad đến thành phố Bucharest.Biết rằng xe robot này không có bản đồ đầy đủ như trên hình vẽ trên, nhưng khi nóđến một thành phố mới, nó có bộ cảm biến đọc được biển chỉ đường đến các thànhlân cận, trên biển chỉ đường có khoảng cách

Bài toán tìm đường có thể phát biểu theo 5 thành phần như sau:

- Trạng thái: vị trí của ôtô robot (tên thành phố)

- Trạng thái: vị trí của ôtô robot (tên thành phố)

- Trạng thái đích: Thành phố Bucharest

- Phép chuyển trạng thái: từ thành phố sang thành phố lân cận

Trang 12

- Chi phí: khoảng cách giữa 2 thành phố trong phép chuyển trạng thái

Lời giải của bài toán là dãy các phép chuyển từ trạng thái đầu đến trạng thái đích,hay là đường đi từ thành phố đầu đến thành phố đích Một ví dụ của lời giải bàitoán là: Arad Æ Sibiu Æ Fagaras Æ Bucharest

2.2 Giải thuật tổng quát tìm kiếm lời giải

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

Mỗi bài toán với 5 thành phần như mô tả ở trên, chúng ta có thể xây dựngđược một cấu trúc đồ thị với các nút là các trạng thái của bài toán, các cung là phépchuyển trạng thái Đồ thị này được gọi là không gian trạng thái của bài toán.Không gian trạng thái có thể là vô hạn hoặc hữu hạn Ví dụ, với bài toán di chuyển

8 số trên bàn cờ, không gian trạng thái có số lượng là 8! (8 giai thừa) trạng thái.Lời giải của bài toán là một đường đi trong không gian trạng thái có điểm đầu làtrạng thái đầu và điểm cuối là trạng thái đích Nếu không gian trạng thái của bàitoán là nhỏ, có thể liệt kê và lưu vừa trong bộ nhớ của máy tính thì việc tìm đường

đi trong không gian trạng thái có thể áp dụng các thuật toán tìm đường đi trong lýthuyết đồ thị Tuy nhiên, trong rất nhiều trường hợp, không gian trạng thái của bàitoán là rất lớn, việc duyệt toàn bộ không gian trạng thái là không thể Trong mônhọc Trí tuệ nhân tạo này, chúng ta sẽ tìm hiểu các phương pháp tìm kiếm lời giảitrong các bài toán có không gian trạng thái lớn

b Giải thuật tổng quát tìm kiếm lời giải của bài toán

Với các bài toán có 5 thành phần ở trên, chúng ta có giải thuật chung để tìmkiếm lời giải của bài toán Ý tưởng là sinh ra các lời giải tiềm năng và kiểm trachúng có phải là lời giải thực sự của bài toán Một lời giải tiềm năng là một đường

đi trong không gian trạng thái của bài toán có nút đầu là trạng thái đầu và mỗi cungcủa đường đi là một phép chuyển hợp lệ giữa các trạng thái kề với cung đó Lời

Trang 13

giải thực sự của bài toán là lời giải tiềm năng có nút cuối cùng là trạng thái đích.Các lời giải tiềm năng là các đường đi có cùng nút đầu tiên và dãy các cung là dãycác phép chuyển hợp lệ từ trạng thái đầu đó Các lời giải tiềm năng có thể tổ chứctheo cây, gốc của cây là trạng thái đầu, cây được phát triển bằng cách bổ sung vàocác nút liền kề với trạng thái đầu, sau đó liên tiếp bổ sung vào các con của các nút

lá, …

Lược đồ chung để tìm lời giải của bài toán 4 thành phần trên là xây dựng câylời giải tiểm năng (hay là cây tìm kiếm) và kiểm tra lời giải tiềm năng có là lời giảithực sự của bài toán hay không Các bước của giải thuật chung là như sau: xâydựng cây tìm kiếm mà nút gốc là trạng thái đầu, lặp lại 2 bước: kiểm tra xem trạngthái đang xét có là trạng thái đích không, nếu là trạng thái đích thì thông báo lờigiải, nếu không thì mở rộng cây tìm kiếm bằng cách bổ sung các nút con là cáctrạng thái láng giềng của trạng thái đang xét Giải thuật chung được trình bày trongbảng sau:

Đầu vào của giải thuật là bài toán (problem) với 5 thành phần (biểu diễntrạng thái tổng quát, trạng thái đầu, trạng thái đích, phép chuyển trạng thái, chi phíphép chuyển trạng thái) và một chiến lược tìm kiếm (strategy); đầu ra của giảithuật là một lời giải của bài toán hoặc giá trị failure nếu bài toán không có lời giải.Giải thuật sinh ra cây các lời giải tiềm năng, nút gốc là trạng thái đầu của bài toán,

mở rộng cây theo chiến lược (strategy) đã định trước đến khi cây chứa nút trạngthái đích hoặc không thể mở rộng cây được nữa

Trang 14

Trong giải thuật chung này, chiến lược tìm kiếm (strategy) sẽ quyết địnhviệc chọn nút lá nào trong số nút lá của cây để mở rộng cây tìm kiếm, ví dụ nhưnút lá nào xuất hiện trong cây sớm hơn thì được chọn trước để phát triển cây (đây

là chiến lược tìm kiếm theo chiềurộng), hoặc nút lá nào xuất hiện sau thì đượcchọn để mở rộng cây (đây là chiến lược tìm kiếm theo chiều sâu) Chiến lược tìmkiếm có thể được cài đặt thông qua một cấu trúc dữ liệu để đưa vào và lấy ra trạngthái lá của cây tìm kiếm Hai cấu trúc dữ liệu cơ bản là hàng đợi và ngăn xếp Hàngđợi sẽ lưu các trạng thái lá của cây và trạng thái nào được đưa vào hàng đợi trước

sẽ được lấy ra trước, còn ngăn xếp là cấu trúc dữ liệu lưu trạng thái lá của cây tìmkiếm và việc chọn nút lá của cây sẽ theo kiểu vào trước ra sau Bảng dưới đây làchi tiết hóa thuật toán tìm kiếm lời giải ở trên với chiến lược tìm kiếm được thểhiện thông qua cấu trúc dữ liệu hàng đợi (queue) hoặc ngăn xếp (stack) Trong giảithuật chi tiết hơn này, cây tìm kiếm được biểu diễn bằng mảng một chiều father,trong đó father(i) là chỉ nút cha của nút i Thủ tục path(node,father) dùng để lầnngược đường đi từ trạng thái node về nút gốc (trạng thái đầu) (node được truyềngiá trị là trạng thái đích khi thủ tục path được gọi)

Trang 15

c Cây tìm kiếm:

Trong quá trình tìm kiếm lời giải, chúng ta thường áp dụng một chiến lược

để sinh ra các lời giải tiềm năng Các lời giải tiềm năng được tổ chức thành cây màgốc là trạng thái đầu của bài toán, các mức tiếp theo của cây là các nút kề với cácnút ở mức trước Thông thường thì cây tìm kiếm được mở rộng đến nó chứa trạngthái đích là dừng

Trang 16

2.3 Đánh giá giải thuật tìm kiếm

Một giải thuật tìm kiếm lời giải của bài toán phụ thuộc rất nhiều vào chiếnlược tìm kiếm (hay là cấu trúc dữ liệu để lưu các nút lá của cây trong quá trìnhtìm kiếm) Để đánh giá giải thuật tìm kiếm người ta đưa ra 4 tiêu chí sau:

1 Tính đầy đủ: giải thuật có tìm được lời giải của bài toán không nếu bài toántồn tại lời giải?

2 Độ phức tạp thời gian: thời gian của giải thuật có kích cỡ như thế nào đối vớibài toán?

3 Độ phức tạp không gian: Kích cỡ của bộ nhớ cần cho giải thuật? Trong giảithuật tổng quát ở trên, kích cỡ bộ nhớ chủ yếu phụ thuộc vào cấu trúc dữ liệu lưucác trạng thái lá của cây tìm kiếm

4 Tính tối ưu: Giải thuật có tìm ra lời giải có chi phí tối ưu (nhỏ nhất hoặc lớnnhất tùy theo ngữ cảnh của bài toán)?

Độ phức tạp thời gian và độ phức tạp không gian của giải thuật tìm kiếm lời giảicủa bài toán có thể đánh giá dựa trên kích thước đầu vào của giải thuật Các tham

số kích thước đầu vào có thể là:

- b – nhân tố nhánh của cây tìm kiếm: số nhánh tối đa của một nút, hay là sốphép

chuyển trạng thái tối đa của một trạng thái tổng quát

- d – độ sâu của lời giải có chi phí nhỏ nhất

- m – độ sâu tối đa của cây tìm kiếm (m có thể là vô hạn)

Trong các giải thuật tìm kiếm lời giải đề cập đến ở chương này, chúng ta sẽ đánhgiá ưu, nhược điểm của từng giải thuật dựa trên 4 tiêu chí trên

Trang 17

CHƯƠNG 3: CÁC PHƯƠNG PHÁP TÌM KIẾM KINH NGHIỆM 3.1 Giải thuật tìm kiếm tốt nhất đầu tiên

Giải thuật tìm kiếm tốt nhất đầu tiên, còn gọi là "Best First Search," là một trong những giải thuật cơ bản trong lĩnh vực tìm kiếm và trí tuệ nhân tạo Giải thuật này tập trung vào việc tìm kiếm lời giải tốt nhất trong không gian tìm kiếm một cách có hiệu suất cao Đây là một giải thuật thông qua định hướng, nghĩa là nóchọn một lời giải tiềm năng dựa trên một hàm đánh giá và mục tiêu là tìm kiếm lời giải tốt nhất Cách hoạt động của giải thuật tìm kiếm tốt nhất đầu tiên bao gồm các bước sau:

- Khởi tạo: Bắt đầu từ một lời giải ban đầu (đôi khi gọi là "trạng thái ban đầu") và thiết lập một hàng đợi ưu tiên trống để lưu trạng thái

- Vòng lặp: Trong mỗi vòng lặp, giải thuật lựa chọn trạng thái tiềm năng có hàm đánh giá tốt nhất từ hàng đợi ưu tiên Hàm đánh giá đo lường mức độ tốt xấu của trạng thái, và mục tiêu là tìm ra trạng thái có hàm đánh giá tốt nhất

- Kiểm tra trạng thái: Kiểm tra trạng thái tiềm năng đã được chọn Nếu trạng thái đạt đến lời giải, giải thuật kết thúc và trả về lời giải này

- Mở rộng trạng thái: Nếu trạng thái tiềm năng chưa đạt đến lời giải, giải thuật

mở rộng trạng thái này bằng cách tạo ra các trạng thái con hoặc lân cận Các trạng thái con này được thêm vào hàng đợi ưu tiên theo thứ tự ưu tiên dựa trên hàm đánh giá

- Lặp lại: Quay lại bước 2 cho đến khi lời giải tốt nhất được tìm thấy hoặc hàng đợi ưu tiên trống

Giải thuật tìm kiếm tốt nhất đầu tiên có ưu điểm là nó có thể tìm kiếm một lời giải tốt nhanh chóng và hiệu quả Tuy nhiên, nó có thể bị rơi vào tình huống vòng lặp vô hạn nếu không có giới hạn trên về số lần lặp lại hoặc nếu không có cơ chế

để tránh các trạng thái lặp lại Điều này có thể xảy ra trong các bài toán có không

Trang 18

gian tìm kiếm vô hạn hoặc không có giải phân biệt rõ ràng Để khắc phục nhược điểm này, có thể sử dụng biện pháp kiểm soát, như giới hạn số bước lặp lại hoặc sửdụng một danh sách để theo dõi các trạng thái đã xem xét.

3.2 Các biến thể của giải thuật tốt nhất đầu tiên

Giải thuật tìm kiếm "tốt nhất đầu tiên" (Best First Search) có nhiều biến thể

để tối ưu hoá và phù hợp với từng loại bài toán cụ thể Dưới đây là một số biến thể phổ biến của giải thuật "tốt nhất đầu tiên":

 A* Search: A* là một biến thể phổ biến của Best First Search, nó kết hợp

giữa chi phí thực hiện từ trạng thái ban đầu đến trạng thái hiện tại và một hàm đánh giá (heuristic function) để đánh giá mức độ tiềm năng của một trạng thái A* Search cố gắng tìm kiếm lời giải tốt nhất với chi phí thấp nhất.Đây là một giải thuật tìm kiếm đường đi rất mạnh mẽ và được sử dụng rộng rãi trong các bài toán đường đi như trong tìm đường đi trên bản đồ

 IDA* (Iterative-Deepening A*): Biến thể này của A* kết hợp giữa ý tưởng

của tìm kiếm theo chiều sâu (DFS) và A* IDA* sử dụng một giới hạn độ sâu tối đa để tìm kiếm, và sau đó tăng dần giới hạn này cho đến khi tìm thấy lời giải hoặc xác định không có lời giải

 Greedy Best First Search: Giải thuật này tập trung hoàn toàn vào hàm đánh

giá và luôn chọn trạng thái có hàm đánh giá thấp nhất mà không quan tâm đến chi phí thực hiện Điều này có thể dẫn đến việc bỏ qua các trạng thái có chi phí thực hiện lớn nhưng có hàm đánh giá tốt

 Uniform Cost Search: Trong trường hợp này, Best First Search được điều

chỉnh để tìm kiếm lời giải với chi phí thực hiện thấp nhất Điều này có nghĩa

là nó sử dụng giá trị của chi phí thực hiện như hàm đánh giá, không quan tâm đến heuristic function Uniform Cost Search đảm bảo tìm kiếm lời giải

có chi phí tối ưu nhưng có thể đòi hỏi nhiều thời gian và bộ nhớ

Trang 19

 Beam Search: Beam Search là một biến thể của Best First Search giới hạn

việc mở rộng trạng thái con bằng việc giới hạn kích thước của hàng đợi ưu tiên (beam width) Nó giúp giảm bớt sự phức tạp và bộ nhớ tiêu hao, nhưng

có thể bỏ lỡ lời giải tốt nếu kích thước của hàng đợi quá nhỏ

Những biến thể này của giải thuật "tốt nhất đầu tiên" được sử dụng trong các bài toán cụ thể tùy thuộc vào yêu cầu và đặc điểm của bài toán Mỗi biến thể có ưu điểm và hạn chế riêng, và lựa chọn loại giải thuật phù hợp phụ thuộc vào bài toán

cụ thể mà bạn đang giải quyết

Trang 20

CHƯƠNG 4: CÁC PHƯƠNG PHÁP TÌM KIẾM LỜI GIẢI THỎA MÃN

CÁC RNG BUỘC 4.1 Các bài toán thỏa mãn các ràng buộc

Trong một bài toán thỏa mãn các ràng buộc (CSP), chúng ta có một tập các biến,mỗi biến có một miền giá trị, và một tập các ràng buộc giữa các biến Mục tiêu làtìm một phép gán cho các biến sao cho thỏa mãn tất cả các ràng buộc

Một số ví dụ về bài toán CSP bao gồm:

 Bài toán tô màu bản đồ: Mỗi vùng của bản đồ được đại diện bởi một biến, vàmỗi biến có một miền giá trị là một màu Các ràng buộc giữa các biến là cácvùng liền kề không thể có cùng màu

 Bài toán sắp xếp: Mỗi phần tử của một dãy số được đại diện bởi một biến,

và mỗi biến có một miền giá trị là một số nguyên Các ràng buộc giữa cácbiến là các phần tử liền kề phải được sắp xếp theo thứ tự tăng dần

 Bài toán lập lịch: Mỗi nhiệm vụ được đại diện bởi một biến, và mỗi biến cómột miền giá trị là một thời gian Các ràng buộc giữa các biến là các nhiệm

vụ phụ thuộc lẫn nhau phải được thực hiện theo thứ tự thích hợp

a Bài toán Sudoku

 Điền các số từ 1 đến 9 vào một bảng Sudoku 9x9 sao cho mọi hàng, cột vàvùng 3x3 con đều chứa tất cả các số từ 1 đến 9 một lần:

 Tập các biến mô tả trạng thái của bài toán: Một mảng hai chiều Sudoku[9][9], trong đó Sudoku[i][j] biểu thị giá trị của ô tại hàng i và cột j Mỗi ô cógiá trị từ 1 đến 9 hoặc có thể là 0 để biểu thị ô trống

 Miền giá trị cho các biến: Sudoku[i][j] thuộc miền giá trị {0, 1, 2, 3, 4, 5,

6, 7, 8, 9} Các giá trị từ 1 đến 9 biểu thị các số trong bài toán Sudoku, vàgiá trị 0 biểu thị ô trống

Trang 21

 Tập ràng buộc: Các ràng buộc trong bài toán Sudoku bao gồm:

 Mỗi hàng phải chứa tất cả các số từ 1 đến 9 một lần

 Mỗi cột phải chứa tất cả các số từ 1 đến 9 một lần

 Mỗi vùng 3x3 con phải chứa tất cả các số từ 1 đến 9 một lần

b Bài toán tô màu đồ thị

 Sử dụng ba màu để tô bản đồ các tỉnh của một nước sao cho các tỉnh kềnhau thì có màu khác nhau Ví dụ, nước Australia có 7 bang như hình vẽ,chỉ sử dụng ba màu: đỏ, xanh lơ và xanh da trời để tô màu 7 bang củanước Australia sao cho không có hai bang nào kề nhau lại có màu giốngnhau Bài toán này có thể mô tả bằng 3 thành phần như sau:

 - Tập các biến: WA, NT, Q, NSW, V, SA, T (các biến là các ký tự đầu củatên các bang)

 - Miền giá trị: 7 biến có thể nhận các giá trị trong tập {đỏ, xanh lá cây,xanh da trời}

 - Tập ràng buộc: WA≠NT, WA≠SA, NT≠SA, NT≠Q, SA≠Q, SA≠NSW,SA≠V, Q≠NSW, NSW≠V

 Lời giải của bài toán tô màu đồ thị là phép gán các giá trị {đỏ, xanh da trời,xanh lá cây} cho tập 7 biến thỏa mãn tập các ràng buộc

 c Bài toán giải mã các ký tự

 Tìm các chữ số thích hợp cho các ký tự để phép tính sau là đúng:

 Bài toán giải mã các ký tự được mô tả bằng 3 thành phần sau:

 - Tập các biến: T, W, O, F, U, R, N1, N2, N3 (N1, N2, N3 là 3 số nhớ củaphép cộng ở các vị trí hàng đơn vị, hàng chục, hàng trăm)

 - Miền giá trị: Các biến có thể nhận các giá trị: {0, 1, , 9}

Trang 22

 - Ràng buộc: T, W, O, F, U, R phải khác nhau đôi một; O + O = X +10.N1;N1 + W + W = U + 10.N2; N2 + T + T = O + 10.N3; F=N3; T≠0; F≠0

 Lời giải của bài toán là một phép gán các chữ số từ 0 đến 9 cho các biến vàthỏa mãn tập các ràng buộc

4.2 Giải thuật quay lui vét cạn

Giải thuật quay lui vét cạn là một phương pháp tìm kiếm lời giải thỏa mãn các ràngbuộc bằng cách thử tất cả các khả năng Giải thuật này hoạt động theo cách sau:

1 Khởi tạo một trạng thái ban đầu với tất cả các biến có miền giá trị đầy đủ

2 Chạy vòng lặp cho đến khi tìm thấy một lời giải hoặc đến khi không còn khảnăng thử nghiệm:

o Chọn một biến chưa được gán

o Lần lượt thử nghiệm tất cả các giá trị trong miền giá trị của biến đó

o Nếu giá trị được thử nghiệm thỏa mãn tất cả các ràng buộc, tiếp tục bước 2

o Nếu giá trị được thử nghiệm không thỏa mãn tất cả các ràng buộc, thì loại bỏgiá trị đó khỏi miền giá trị của biến

Giải thuật quay lui vét cạn có thể tìm thấy lời giải cho bất kỳ bài toán CSP nào,nhưng có thể mất rất nhiều thời gian đối với các bài toán lớn

Giải thuật trên có thể cài đặt đệ quy như sau:

Trang 23

Bản chất của giải thuật RescusiveBacktracking là phép duyệt theo chiều sâu cóthêm bước kiểm tra sự thỏa mãn của các ràng buộc ở mỗi bước Thứ tự việc gángiá trị cho các biến trong bài toán tô màu đồ thị có thể biểu diễn bằng đồ thị sau:

4.3 Các cải tiến của giải thuật quay lui

Trang 24

Trong giải thuật RescusiveBacktracking ở trên, thứ tự các biến có thể ảnh hưởngđến thời gian và không gian bộ nhớ của giải thuật Chúng ta có thể thay đổi thứ tựcác biến để gán giá trị, và khi biến được chọn, chúng ta có thể chọn giá trị nàotrước các giá trị khác trong các giá trị hợp lệ để gán cho biến đó Đôi khi thứ tự cácbiến và thứ tự các giá trị gán cho các biến làm tăng đáng kể hiệu quả của giải thuật.

a) Nguyên tắc chọn biến tiếp theo

Vì lời giải của bài toán chỉ xuất hiện ở mức độ sâu n trong giải thuật đệ qui, vì vậyResicusiveBacktracking ưu tiên phát triển theo chiều sâu để tìm ra phép gán đầy đủ(tức là lời giải) của bài toán trong thời gian nhanh nhất Khi một số biến được gángiá trị, miền giá trị của các biến còn lại cũng sẽ bị co hẹp lại do tập các ràng buộcchi phối Vì thế, để có thể tìm kiếm được phép gán có độ sâu n nhanh nhất màkhông bị hủy bỏ để gán lại giá trị cho biến thì có 2 nguyên tắc sau:

- Nguyên tắc 1: Lựa chọn biến mà miền giá trị hợp lệ còn lại là ít nhất (biến có ítlựa chọn nhất nên được chọn trước để làm giảm độ phức tạp của cây tìm kiếm)

- Nguyên tắc 2: Lựa chọn biến tham gia vào nhiều ràng buộc nhất (gán cho biếnkhó thỏa mãn nhất)

Trong hai nguyên tắc trên, nguyên tắc thứ nhất được ưu tiên cao hơn và được ápdụng trong suốt quá trình thực hiện của giải thuật Đối với phép chọn biếu đầu tiênhoặc trong trường hợp có nhiều biến có cùng số giá trị ít nhất thì nguyên tắc thứhai sẽ được sử dụng để lựa chọn biến tiếp theo

Ví dụ, đối với bài toán tô màu đồ thị, ban đầu chúng ta chọn biến SA để gán giá trị

vì SA tham gia vào nhiều mối ràng buộc hơn (nguyên tắc 2) Khi chọn màu biếncho SA thì các biến WA, NT, Q, NSW,V sẽ được chọn ở bước gán tiếp theo do chỉcòn 2 lựa chọn là hai màu còn lại (nguyên tắc 1), trong 5 biến này ta lại lấy biến

NT, Q hoặc NSW vì nó tham gia vào nhiều ràng buộc hơn (có thể chọn 1 trong babiến này ngẫu nhiên) Cứ như vậy chúng ta sẽ chọn thứ tự các biến còn lại dựa trên

Trang 25

Nguyên tắc 1, nếu có nhiểu biến cùng thỏa mãn nguyên tắc 1 thì chọn trong chúngbiến thỏa mãn Nguyên tắc 2.

b) Nguyên tắc chọn thứ tự giá trị gán cho biến

Một khi một biến được lựa chọn để gán giá trị thì sẽ có nhiều giá trị có thể gán chobiến đó Việc lựa chọn thứ tự giá trị gán cho biến có tác động không nhỏ trong việctìm ra lời giải đầu tiên Trong trường hợp bài toán cần tìm tất cả lời giải hoặc bàitoán không có lời giải thì thứ tự các giá trị gán cho biến không có tác dụng.Trong trường hợp bài toán yêu cầu tìm ra một lời giải và chúng ta mong muốn tìm

ra lời giải trong thời gian nhanh nhất thì chúng ta sẽ lựa chọn giá trị cho biến đangxét sao cho nó ít ràng buộc đến các biến còn lại nhất Ví dụ: nếu ta đã chọnWA=đỏ, NT=xanh da trời và chúng ta đang xem xét gán giá trị cho biến Q Có 2giá trị có thể gán cho Q mà không bị xung đột với hai phép gán trước: đỏ và xanh

da trời Trong 2 cách này thì nếu gán xanh da trời thì làm cho biến SA không còngiá trị để gán, còn nếu gán màu đỏ thì sẽ có 1 giá trị có thể gán cho biến SA Vậytrong trường hợp này ta sẽ gán màu đỏ cho biến Q để tăng khả năng tìm được lờigiải đầu tiên

c) Kiểm tra tiến (kiểm tra trước – forward checking)

Trong nguyên tắc chọn thứ tự giá trị gán cho một biến, chúng ta cần phải kiểm traxem giá trị định gán sẽ tác động thế nào đối với các biến chưa gán thông qua cácràng buộc Việc hạn xác định tác động trước như vậy gọi là forward checking

Trang 26

Forward checking còn có tác dụng hạn chế không gian tìm kiếm (hạn chế miền giátrị cho các biến còn lại khi biến hiện tại được gán một giá trị cụ thể) Ví dụ, nếuban đầu chúng ta gán WA màu đỏ thì miền giá trị của các bang lân cận (NT và SA)

sẽ không thể là màu đỏ được nữa Nếu gán tiếp Q là màu xanh lá cây thì NT và SAchỉ còn nhận giá trị là xanh da trời và NSW chỉ còn miền giá trị là màu đỏ (xemdiễn biến miền giá trị các biến thu hẹp dần trong quá trình gán giá trị cho biến WA

và Q)

d) Lan truyền ràng buộc (constraint propagation)

Trong quá trình gán giá trị cho biến, nếu một biến có mà miền giá trị của nó khôngcòn giá trị nào hợp lệ để gán thì chúng ta phải hủy bỏ việc gán giá trị cho biến ngaytrước đó và gán bằng giá trị khác Nếu một trong các biến còn lại mà miền giá trịchỉ 1 giá trị hợp lý thì chúng ta có thể áp dụng tập các ràng buộc liên quan đến biến

đó để giảm miền giá trị cho biến còn lại khác Chẳng hạn, bằng forward checkingchúng ta đã xác định được biến SA chỉ có giá trị màu xanh da trời thì chúng ta ápdụng các ràng buộc liên quan đến SA để suy ra rằng biến NSW không thể nhận giátrí màu xanh da trời Khi đó NSW chỉ còn màu đỏ và áp dụng các ràng buộc liênquan đến NSW suy ra V không thể nhận màu đỏ, v.v Quả trình loại bỏ miền giá trị

Ngày đăng: 20/01/2025, 14:10

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

TÀI LIỆU LIÊN QUAN