Tải bản đầy đủ (.pptx) (83 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 83 trang )

Chương 2. Thuật toán –
Thuật giải

TRẦN MINH THÁI
Email:
Website: www.minhthai.edu.vn
1

Cập nhật: 05 tháng 09 năm 2015


Nội dung
#2

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


Thuật tốn?
#3

Là một thủ tục tính tố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 hồ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, …


Đặc trưng của Thuật tốn
#4

1. Tính đúng đắn
2. Tính dừng
3. Tính xác định
4. Tính hiệu quả
5. Tính phổ quát
??? Đặc trưng nào quan trọng nhất ???


Đặc trưng của Thuật tốn …
#5

[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


Đặc trưng của Thuật tốn …
#6

[3] Tính xác định
- Rõ ràng, cụ thể
- Không nhập nhằng, gây hiểu lầm  hiểu, cài đặt

[4] Tính hiệu quả
- 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ổ qt
Có thể giải quyết được một lớp bài toán tương tự


Cách biểu diễn thuật tốn
#7

02 cách phổ biến
[1] Mơ tả các bước thực hiện của thuật toán
[2] Sử dụng sơ đồ thuật toán


Cách biểu diễn thuật tốn
#8

[1] Mơ tả các bước thực hiện của thuật tố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


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

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


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

Input: Hai số nguyên a, b
Output: USCLN của a và b
Thuật toán:
WHILE (a ≠ b) DO
IF (a > b) THEN
a = a – b;
ELSE
b = b – a;
END WHILE
RETURN a;


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

IF <Điều kiện> THEN …ENDIF
IF <Điều kiện> THEN ... ELSE ... ENDIF
WHILE <Điều kiện> DO … ENDWHILE

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


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

[2] Sử dụng sơ đồ thuật tốn (flowchart)
Dùng các ký hiệu hình học để biểu diễn quá trình
thực hiện
Nhập/ xuất

Bắt đầu/ kết thúc

Điều kiện

Rẽ nhánh

Luồng xử lý

Trả về giá trị

Khối xử lý


VD Sơ đồ thuật tốn tìm trị tuyệt đối của số
nguyên
#13


Input: Số nguyên n
Output: Giá trị tuyệt đối của n
Thuật toán:


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

Đá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?


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
#15

• Input: Mảng một chiều a, kích thước N
• Ouput: Mảng a có thứ tự tăng dần
• Thuật tốn:
Bước 1: i=1;
Số phép tính cần thực hiện?
Bước 2: j = i+1;
Bước 3:
      Trong khi j<=N thực hiện
             Nếu a[j]             j=j+1;

Bước 4: i = i+1;
      Nếu i      Ngược lại: Dừng.


Thuật tốn vs Thuật giải
#16

Tuy nhiên
Nhiều bài tốn chưa tìm ra một cách giải theo kiểu
thuật tốn/ khơng biết là có tồn tại thuật tốn?
Nhiều bài tốn đã có thuật tốn nhưng khơng chấp
nhận được vì thời gian q lớn/ điều kiện khó đáp
ứng
Nhiều bài tốn được giải theo những cách giải vi
phạm thuật toán nhưng vẫn chấp nhận được


Thuật tốn vs Thuật giải
#17

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ả.



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

Lựa chọn?
“giải một bài toán bằng thuật tố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ờ”


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

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 tốn được đặt ra
Trong AI thường sử dụng cách giải theo kiểu
Heuristic


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

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


Các phương pháp Heuristic
#21

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


Các phương pháp Heuristic
#22

[1] Ngun 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 tốn để nhanh chóng tìm ra mục tiêu
[2] Ngun 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


Các phương pháp Heuristic
#23

[3] Nguyên lý thứ tự

Dựa trên một cấu trúc thứ tự hợp lý của không
gian khảo sát nhằm nhanh chóng đạt được một lời
giải tốt
[4] Hàm Heuristic
Hàm đánh giá thô, giá trị của hàm phụ thuộc vào
trạng thái hiện tại của bài toán tại mỗi bước giải
Giá trị của hàm  chọn được cách hành động
tương đối hợp lý trong từng bước của thuật giải


Các bài tốn tiêu biểu
#24

Bài tốn hành trình ngắn nhất – Nguyên lý Greedy
Bài toán phân việc – Nguyên lý thứ tự
Bài toán Ta-canh – Hàm Heuristic


Bài tốn hành trình ngắn nhất
#25

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



×