1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cơ sở Trí tuệ nhân tạo‎: Chương 2 - Trần Minh Thái

83 29 0

Đ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 83
Dung lượng 658,79 KB

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

Nội dung

Bài giảng Cơ sở Trí tuệ nhân tạo‎: Chương 2 trình bày các nội dung: Thuật toán là gì? Thuật toán và thuật giải, thuật giải Heuristic & các nguyên lý, tìm kiếm chiều sâu & tìm kiếm chiều rộng, tìm kiếm leo đồi, tìm kiếm ưu tiên tối ưu, một số thuật giải cơ bản. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.

Trang 2

Nội dung

1 Thuật toán?

2 Thuật toán vs Thuật giải

3 Thuật giải Heuristic & các nguyên lý

4 Tìm kiếm chiều sâu & Tìm kiếm chiều rộng

5 Tìm kiếm leo đồi

6 Tìm kiếm ưu tiên tối ưu

7 Một số thuật giải cơ bản

Trang 3

Thuật toán?

Là một thủ tục tính toán xác định nhận các giá trị hoặc một tập các giá trị (input) và sinh ra một vài giá trị hoặc tập giá trị (output)

Cách thức/ quy trình thực hiện hoàn thành một công việc xác định cụ thể nào đó

VD Cộng 2 số, tính tổng dãy Fibonaci, …

Trang 5

Đặc trưng của Thuật toán …

[1] Tính đúng đắn *

Đảm bảo kết quả đúng sau khi thực hiện đối với

bộ dữ liệu đầu vào

[2] Tính dừng

Dừng  Sau một vài bước thực hiện

Trang 6

- Giải quyết trong thời gian, điều kiện cho phép

- Đáp ứng yêu cầu người dùng

[5] Tính phổ quát

Có thể giải quyết được một lớp bài toán tương tự

Trang 8

Cách biểu diễn thuật toán

[1] Mô tả các bước thực hiện của thuật toán

- Ngôn ngữ tự nhiên

- Mã giả (Pseudocode): Lai ghép ngôn ngữ tự nhiên với mã của ngôn ngữ lập trình

Trang 9

VD Mô tả các bước thực hiện của thuật toán tìm USCLN của hai số nguyên – NN tự nhiên

Input: Hai số nguyên a, b

Output: USCLN của a và b

Thuật toán:

 Bước 1: Nếu a = b thì USCLN là a

 Bước 2: Nếu a > b thì tìm USCLN của a - b và b, quay lại Bước 1

 Bước 3: Nếu a < b thì tìm USCLN của a và b - a, quay lại Bước 1

Trang 10

VD Mô tả các bước thực hiện của thuật toán tìm USCLN của hai số nguyên – Mã giả

Input: Hai số nguyên a, b

Output: USCLN của a và b

Trang 11

Một số từ khóa mã giả cơ bản

IF <Điều kiện> THEN …ENDIF

IF <Điều kiện> THEN ELSE ENDIFWHILE <Điều kiện> DO … ENDWHILE

DO … UNTIL <Điều kiện>

DISPLAY …

RETURN …

Trang 12

Cách biểu diễn thuật toán

[2] Sử dụng sơ đồ thuật toán (flowchart)

Dùng các ký hiệu hình học để biểu diễn quá trình thực hiện

Trang 14

Độ phức tạp thuật toán

Đánh giá độ tốt/ xấu của thuật toán cùng loại

 Đơn giản, dễ hiểu, dễ cài đặt

 Thời gian thực hiện, sử dụng tài nguyên hệ thống

??? Thực tế ???

- Thuật toán hiệu quả  Dễ hiểu, dễ cài đặt?

- Ước lượng số phép tính thực hiện  Thời gian?

Trang 15

VD Thuật toán sắp xếp mảng một chiều bằng

phương pháp đổi chỗ trực tiếp

• Input: Mảng một chiều a, kích thước N

Trong khi j<=N thực hiện

Nếu a[j]<a[i]: Hoán vị a[i], a[j];

Trang 17

Thuật toán vs Thuật giải

Tiêu chuẩn: tính xác định và tính đúng đắn được mở

rộng

 Tính xác định thay đổi: giải thuật đệ quy và ngẫu nhiên

 Tính đúng không còn bắt buộc: cách giải gần đúng

Chấp nhận các cách giải thường cho kết quả tốt (nhưng

không phải lúc nào cũng tốt) nhưng ít phức tạp và hiệu quả

Trang 18

Thuật toán vs Thuật giải

Lựa chọn?

“giải một bài toán bằng thuật toán tối ưu đòi hỏi máy

tính thực hiện nhiều năm”

hay

“một giải pháp gần tối ưu mà chỉ cần máy tính chạy

trong vài ngày hoặc vài giờ”

Trang 19

Khái niệm thuật giải

Cách giải chấp nhận được nhưng không hoàn toàn đáp ứng đầy đủ các tiêu chuẩn của thuật toán thường

được gọi là các thuật giải

 Dễ dàng hơn trong việc tìm kiếm phương pháp để giải quyết các bài toán được đặt ra

 Trong AI thường sử dụng cách giải theo kiểu

Heuristic

Trang 20

Đặc điểm thuật giải Heuristic

Thường tìm được lời giải tốt (nhưng không chắc là

lời giải tốt nhất)

Dễ dàng và nhanh chóng đưa ra kết quả hơn so với giải thuật tối ưu  chi phí thấp hơn

Thể hiện khá tự nhiên, gần gũi với cách suy nghĩ

và hành động của con người

Trang 21

Các phương pháp Heuristic

1 Nguyên lý vét cạn thông minh

2 Nguyên lý tham lam (Greedy)

3 Nguyên lý thứ tự

4 Hàm Heuristic

Trang 22

Các phương pháp Heuristic

[1] Nguyên lý vét cạn thông minh

Tìm cách giới hạn lại không gian tìm kiếm/ thực

hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm ra mục tiêu

[2] Nguyên lý tham lam

Chọn lựa hành động tối ưu cho phạm vi cục bộ của

từng bước trong quá trình tìm kiếm lời giải

Trang 24

Các bài toán tiêu biểu

Bài toán hành trình ngắn nhất – Nguyên lý GreedyBài toán phân việc – Nguyên lý thứ tự

Bài toán Ta-canh – Hàm Heuristic

Trang 25

Bài toán hành trình ngắn nhất

Travelling Salesman Problem - TSP

Cho trước một danh sách các điểm giao hàng và khoảng cách giữa chúng Nhân viên giao hàng xuất phát từ một điểm cho trước Tìm đường đi ngắn nhất sao cho tất cả các điểm phải được giao hàng và mỗi điểm chỉ viếng thăm đúng một lần

Trang 26

Ý tưởng

Từ điểm xuất phát, liệt kê tất cả đường đi từ điểm xuất phát cho đến n điểm  chọn đi theo con đường ngắn nhất

Khi đã đi đến một điểm, chọn đi đến điểm kế tiếp cũng theo nguyên tắc trên

Lặp lại quá trình cho đến lúc không còn điểm nào để đi

Trang 27

Xuất phát từ điểm A  đường đi?

Trang 28

Bài toán phân việc

Một công ty nhận được hợp đồng gia công m chi tiết máy J1,

J2, ,Jm Công ty có n máy gia công lần lượt là P1, P2, Pn Mọi chi tiết đều có thể được gia công trên bất kỳ máy nào Một khi

đã gia công một chi tiết trên một máy, công việc sẽ tiếp tục cho đến lúc hoàn thành, không thể bị ngắt ngang Ðể gia công một công việc Ji trên một máy bất kỳ ta cần dùng một thời gian tương ứng là ti Nhiệm vụ của công ty là phải làm sao gia công xong toàn bộ n chi tiết trong thời gian sớm nhất

Trang 29

Bài toán phân việc

 Giả sử có 3 máy M1, M2, M3 và 6 công việc với

thời gian là t1=2, t2=5, t3=8, t4=1, t5=5, t6=1

 Phương án có thể có:

Trang 32

Bài tập

Giả sử có 3 máy M 1 , M 2 , M 3 và 5 công việc có thời

gian thực hiện tương ứng như sau: j 1 =3, j 2 = 2, j 3 =

2, j 4 = 3, j 5 = 2

Áp dụng nguyên lý thứ tự phân công các công việc vào các máy

Trang 33

Bài toán Ta-canh

Trò chơi bao gồm một hình vuông kích thước 3x3 ô Có 8 ô có

số, mỗi ô có một số từ 1 đến 8 Một ô còn trống Mỗi lần di chuyển chỉ được di chuyển một ô nằm cạnh ô trống về phía ô trống

Từ một trạng thái ban đầu bất kỳ, làm sao đưa được về trạng thái cuối là trạng thái mà các ô được sắp lần lượt từ 1 đến 8 theo thứ tự từ trái sang phải, từ trên xuống dưới, ô cuối dùng là

ô trống

Trang 34

Bài toán Ta-canh

• Tại mỗi thời điểm có 4 cách di chuyển (trên, dưới,

trái, phải của ô trống)

Trang 35

Bài toán Ta-canh

Gọi T0 là trạng thái đích của bài toán

Gọi Tk là trạng thái hiện tại đang xét

V(i, j) là giá trị của ô (i, j) – Số thể hiện trên ô (ô trống có giá trị 0)

d(i, j) là số ô cần di chuyển để con số tại ô (i, j) về đúng vị trí của nó ở trạng thái T0

Hàm Fk = tổng các d(i, j) của những ô (i, j) khác trống: Hàm trạng thái Tk

Trang 43

Không gian trạng thái - KGTT

Một KGTT (state space) là 1 bộ [N, A, S, GD] trong đó:

• N (node): các nút/ trạng thái của đồ thị

• A (arc): các cung / các liên kết giữa các nút

• S (solution): chứa trạng thái ban đầu của bài toán

• GD (Goal Description): chứa các trạng thái đích của bài toán

 Đường đi của lời giải (solution path) là một con đường đi qua đồ thị này

từ một nút thuộc S đến một nút thuộc GD

Trang 44

Chiến lược tìm kiếm KGTT

• TK hướng từ dữ liệu (Data-driven Search)

• Suy diễn tiến (forward chaining)

• TK hướng từ mục tiêu (Goal-driven Search)

• Suy diễn lùi (backward chaining)

Trang 45

Tìm kiếm hướng từ dữ liệu

• Việc tìm kiếm đi từ

dữ liệu đến mục tiêu

• Thích hợp khi:

• Tất cả/ một phần dữ liệu được cho từ đầu

• Có nhiều mục tiêu, nhưng chỉ có một số ít các phép toán có thể áp dụng cho một trạng thái bài toán

• Rất khó đưa ra một mục tiêu/ giả thuyết ngay lúc đầu

Trang 46

Tìm kiếm hướng từ mục tiêu

• Việc tìm kiếm đi từ

mục tiêu trở về

dữ liệu

• Thích hợp khi:

• Có thể đưa ra mục tiêu/ giả thuyết ngay lúc đầu

• Có nhiều phép toán có thể áp dụng trên 1 trạng thái của bài toán => sự bùng

nổ số lượng các trạng thái

• Các dữ liệu của bài toán không được cho trước, nhưng hệ thống phải đạt được trong quá trình tìm kiếm

Trang 47

Phương pháp TK trên đồ thị KGTT

Phát triển từ giải thuật quay lui (back – tracking)

• Tìm kiếm chiều rộng (breath-first search)

• Tìm kiếm chiều sâu (depth-first search)

• TK chiều sâu bằng cách đào sâu nhiều lần (depth-first search with

iterative deepening)

Trang 49

Tìm kiếm chiều sâu

1 Khởi tạo: Open = [A];

Trang 50

Tìm kiếm chiều sâu hay chiều rộng?

• Có cần thiết tìm một đường đi ngắn nhất đến mục tiêu hay không?

• Sự phân nhánh của không gian trạng thái

• Tài nguyên về không gian & thời gian sẵn có

• Khoảng cách trung bình của đường dẫn đến trạng thái mục tiêu

• Yêu cầu đưa ra tất cả các lời giải/chỉ là lời giải tìm được đầu tiên

Trang 51

Tìm kiếm chiều sâu bằng cách đào sâu nhiều lần

• Độ sâu giới hạn (depth bound): giải thuật TK sâu sẽ quay lui

khi trạng thái đang xét đạt đến độ sâu giới hạn đã định

• TK chiều sâu bằng cách đào sâu nhiều lần: TK sâu với độ sâu giới

hạn là 1, nếu thất bại, nó sẽ lặp lại GT TK chiều sâu với

độ sâu là 2,… GT tiếp tục cho đến khi tìm được mục tiêu, mỗi lần lặp lại tăng độ sâu lên 1

• GT này có độ phức tạp về thời gian cùng bậc với TK Rộng và TK Sâu

Trang 52

• Giải thuật có khuynh hướng bị sa lầy ở những cực đại cục bộ:

 Lời giải tìm được không tối ưu

 Không tìm được lời giải mặc dù có tồn tại lời giải

• Giải thuật có thể gặp vòng lặp vô hạn do không lưu giữ thông tin về các trạng thái đã duyệt

Trang 53

Tìm kiếm leo đồi

1 Khởi tạo ngăn xếp S chỉ chứa trạng thái đầu;

2 Lặp

2.1 If S rỗng then

{thông báo thất bại; stop};

2.2 Lấy trạng thái u ở đầu ngăn xếp S;

2.3 If u là trạng thái kết thúc then

{thông báo thành công; stop};

2.4 For mỗi trạng thái v kề u do

đặt v vào danh sách L;

2.5 Sắp xếp L theo thứ tự: trạng thái tốt nhất ở đầu danh sách; 2.6 Chuyển danh sách L vào ngăn xếp S;

Trang 54

Tìm kiếm leo đồi

1 Khởi tạo Open = [A5]; Closed = []

2 Đánh giá A5: Open = [B4,C4,D6];

Trang 55

Tìm kiếm ưu tiên tối ưu (Best-First Search)

Tìm kiếm chiều sâu: không quan tâm đến sự mở rộng của tất cả các nhánh

Tìm kiếm chiều rộng: không bị rơi vào các nhánh cụt

Tìm kiếm ưu tiên tối ưu: kết hợp tìm kiếm chiều sâu + tìm kiếm chiều rộng

 Mở rộng cây theo các nút có nhiều tiềm năng chứa trạng

thái đích hơn các nút khác

Trang 56

Tìm kiếm BFS - Ví dụ

Trang 57

Thuật giải BFS

1 Đặt OPEN chứa trạng thái khởi đầu.

2 Cho đến khi tìm được trạng thái đích hoặc không còn nút nào trong OPEN, thực hiện :

2.1 Chọn trạng thái tốt nhất (Tmax) trong OPEN (và xóa Tmaxkhỏi OPEN)

2.2 Nếu Tmax là trạng thái kết thúc thì thoát.

2.3 Ngược lại, tạo ra các trạng thái kế tiếp Tk có thể có từ trạng thái Tmax Đối với mỗi trạng thái kế tiếp Tk thực hiện:

Tính f(Tk);

Thêm Tk vào OPEN

Trang 58

1 Đặt OPEN chứa trạng thái khởi đầu.

2 Cho đến khi tìm được trạng thái đích hoặc không còn nút nào trong OPEN, thực hiện :

2.1 Chọn trạng thái (Tmax) có giá trị g nhỏ nhất trong OPEN (và xóa Tmax khỏi OPEN)

2.2 Nếu Tmax là trạng thái kết thúc thì thoát.

2.3 Ngược lại, tạo ra các trạng thái kế tiếp Tk có thể có từ trạng thái

Tmax Đối với mỗi trạng thái kế tiếp Tk thực hiện :

g(Tk) = g(Tmax) + cost(Tmax, Tk);

Thêm Tk vào OPEN.

Trang 59

Thuật giải AKT

(Algorithm for Knowlegeable Tree Search)

1 Đặt OPEN chứa trạng thái khởi đầu.

2 Cho đến khi tìm được trạng thái đích/ không còn nút nào trong OPEN:

2.1 Chọn trạng thái (Tmax) có giá trị f nhỏ nhất trong

OPEN (và xóa Tmax khỏi OPEN)

2.2 Nếu Tmax là trạng thái kết thúc thì thoát.

2.3 Ngược lại, tạo ra các trạng thái kế tiếp Tk có thể có từ trạng thái Tmax Đối với mỗi trạng thái kế tiếp Tk

thực hiện :

g(Tk) = g(Tmax) + cost(Tmax, Tk);

Tính h’(Tk) f(Tk) = g(Tk) + h’(Tk);

Thêm Tk vào OPEN.

Trang 60

2.3 Di chuyển đỉnh p qua Close và tạo danh sách các đỉnh q có nối với p

2.3.1 Nếu q có trong Open:

Nếu (g(q) > g(p) +cost(p,q)) thì

g(q) = g(p) +cost(p,q) f(q) = g(q) + h(q);

Trang 61

Giá trị tại mỗi cạnh

là độ dài đường đi giữa hai đỉnh

Trang 62

Đỉnh đã có trong Open

Đỉnh đã có trong Closed

Trang 64

Thuật giải A* - Bài tập

Cho đồ thị, trạng thái ban đầu A Tìm đường đi ngắn nhất đến trạng thái đích K

7

5 8

7

5

3 5

Trang 65

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

Cho đồ thị vô hướng, hãy tô màu tất cả các đỉnh với số màu ít nhất, sao cho 2 đỉnh nối với nhau được tô khác màu

Trang 66

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

Gọi k là số màu đã được dùng để tô màu

Trang 68

[1] Tô màu 1 cho đỉnh C

[2] Tô màu 2 cho đỉnh D

[3] Tô màu 1 cho đỉnh F

[4] Tô màu 3 cho đỉnh E

[5] Tô màu 3 cho đỉnh H

[6] Tô màu 1 cho đỉnh I

[7] Tô màu 2 cho đỉnh A

[8] Tô màu 2 cho đỉnh B

[9] Tô màu 2 cho đỉnh G

Trang 70

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

Gọi k là số màu đã được dùng để tô màu

Hạ bậc q, thêm màu tô p vào danh sách màu cấm tô của q Gán bậc của đỉnh p = 0

}

Trang 82

Bài tập

Áp dụng giải thuật A* cho bài toán Ta-Canh

Áp dụng giải thuật tô màu đồ thị cho bài toán xếp lịch, cuộc họp và bố trí đèn tín hiệu giao thông

Cài đặt các thuật toán trên

Trang 83

Q&A

Ngày đăng: 09/05/2021, 22:15

TỪ KHÓA LIÊN QUAN

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