Các định nghĩaTrí tuệ nhân tạo: trí tuệ nhân tạo có thể được định nghĩa như một hệ thống máy móc có khả năng thực hiện những hành động của con người được xem là thông minh.. Một số thuật
Trang 2Mục đích của trí tuệ nhân tạo:
Theo Winton: mục đích chính của trí tuệ nhân tạo là làm cho các máy tính điện tử thông minh hơn, có ích hơn và giúp khám phá các quy luật
về khả năng hoạt động trí tuệ của con người Từ đây sẽ tác động trực tiếp làm cho con người
Trang 4I n t e l l i g e n c e
S y s t e m
K n o w l e d g e E n g i n e e r i n g ( C o ân g n g h e ä v e à t r i t h ö ùc )
Trang 5Các định nghĩa
Trí tuệ nhân tạo: trí tuệ nhân tạo có thể được định nghĩa như một hệ thống máy móc có khả năng thực hiện những hành động của con người được xem là thông minh.
Thông minh: sự nghiên cứu, sự thu thập thông tin tiêu biểu như: cố gắng học những ý tưởng xử lý của
bộ não con người, bao gồm cả việc nghiên cứu sự vật có ý tưởng, có ý nghĩa, có sự chú ý, nhận dạng,
Trang 6nhân tạo bắt chước đặc tính của việc thu
thập thông tin một cách thông minh.
Trang 7DỮ LIỆU = Chữ cái, con số, hình ảnh riêng rẽ,
rời rạc, không mang một ý nghĩa nào
THÔNG TIN = Các dữ liệu được sắp xếp theo
một quan hệ nào đó
TRI THỨC = mối quan hệ giữa các dữ liệu được
xác định một cách tường minh
Trang 8VÍ DỤ :
THÔNG TIN : 1, 1, 2, 3, 5, 8, 13, 21, 34,
Trang 9DỮ LIỆU THÔNG TIN
TRI THỨC
Trang 10Một số thuật toán:
tiếp lời giải:
Áp dụng một công thức cụ thể để tính ra lời giải trong mọi trường
hợp được sử dụng Đây là phương pháp tốt nhất (theo nghĩa các công thức tìm ra và được chứng minh sẽ cho lời giải trong mọi trường hợp.) và hữu hiệu nhất.
Ví dụ: Lập chương trình tính S = 1 + 2 + 3 + … + n (n N)
Write(‘Nhập n=‘);
Readln(n);
Trang 11Một số thuật toán (tt)
2 Phương pháp “Vét cạn”:
Giả sử chúng ta giải bài toán P trên miền D, xD
Bước 1: xD, P(x) đúng: in kết quả và dừng (success).
Bước 2: D := D \ {x}: Loại trường hợp này nếu sai.
Bước 3: Kiểm tra D {}
If (100*a+10*b+c = a*a*a + b*b*b + c*c*c) then
Trang 14vuoâ ng hình
M hình
M
S
S N
N
Trang 17Các tính chất của một thuật toán:
Khi xây dựng một thuật toán và chương trình tương ứng để giải một bài toán cần phải phân tích:
+ Tính đúng đắn của thuật toán: phải dùng công cụ toán học để chứng minh là đúng.
+ Tính đơn giản của thuật toán: dễ hiểu, dễ lập trình, dễ hiệu chỉnh.
+ Tính tối ưu của thuật toán (nếu có nhiều thuật toán).
Trang 18Các tính chất của một thuật toán:
Lưu ý:
Thời gian và bộ nhớ là 2 đại lượng tỷ lệ nghịch, nên nhiều khi tính càng đơn giản càng làm chậm chương trình
Thời gian thực hiện một thuật toán phụ thuộc rất nhiều yếu tố:
+ Kích thước của dữ liệu
+ Kiểu lệnh
+ Tốc độ xử lý của máy
+ Ngôn ngữ lập trình
+ Trình biên dịch
Trang 19Kỹ thuật tìm kiếm Một số bài toán
Bài toán mê cung:
Trang 20Kỹ thuật tìm kiếm (tt)
Cực tiểu hóa giá thành: Người đưa thư cần xác định hành trình đi ngắn nhất sao cho mỗi
thành phố đi đến đúng một lần và quay về thành phố xuất phát.
Trò chơi: Tic-tac-toe (cờ caro).
Bài toán tô màu:
sao cho hai nước láng giềng (có chung đường biên giới) có hai màu khác nhau.
Vấn đề : số màu cần dùng tối đa là bao nhiêu?
được là chỉ cần dùng tối đa là 4 màu.
Trang 21Kỹ thuật tìm kiếm (tt)
Bài toán taci:
Trang 22Biểu diễn bài tốn:
Giả thuyết Kết luận
S0 S1 S2 … … … … Sn
Trang 23Biểu diễn bài toán (tt)
dưới dạng sau: từ một trạng thái xuất phát
hãy tìm đường dẫn đến một trạng thái kết thúc mong muốn Việc tìm đường đi này là một
nghệ thuật để giải quyết vấn đề, bao gồm các bước sau:
trong không gian tìm kiếm
trong quá trình tìm kiếm tương ứng với miền đại lượng cụ thể
Trang 24Biểu diễn bài toán (tt)
Không gian tìm kiếm của một vấn đề giải
trên máy tính thường được biểu diễn bởi
một đồ thị hoặc một dạng đặc biệt của đồ thị (cây) Sau khi bài toán được biểu diễn
dưới dạng đồ thị (hoặc cây) thì:
1. Mỗi đỉnh là một giai đoạn của quá trình giải
(hay là trạng thái).
2. Mỗi cung là một tác động biến đổi quá trình
Trang 25Biểu diễn bài toán (tt)
1
456
7
8
456
78
Trang 264 5 6 7 8
4 5 6 7 8
4 5 6 7 8
1
1
5 6 7 8 4
8 7
Trang 27Tìm kiếm rộng (Breadth-first search)
Hiện thực: FIFO queue.
Trang 28Breadth-first search
Hiện thực: FIFO queue.
Trang 29Breadth-first search
Trang 30Breadth-first search
Hiện thực: FIFO queue.
Trang 31Tìm kiếm sâu (Depth-first search)
Hiện thực: LIFO queue
Trang 32Depth-first search
Hiện thực: LIFO queue
Trang 33Depth-first search
Hiện thực: LIFO queue
Trang 34Depth-first search
Hiện thực: LIFO queue
Trang 35Depth-first search
Hiện thực: LIFO queue
Trang 36Depth-first search
Hiện thực: LIFO queue
Trang 37Depth-first search
Hiện thực: LIFO queue
Trang 38Depth-first search
Hiện thực: LIFO queue
Trang 39Depth-first search
Hiện thực: LIFO queue
Trang 40Depth-first search
Hiện thực: LIFO queue
Trang 41Depth-first search
Hiện thực: LIFO queue
Trang 42Depth-first search
Hiện thực: LIFO queue
Trang 43Tìm kiếm sâu dần: (Iterative
deepening search)
Kết hợp của tìm kiếm rộng và tìm kiếm sâu
trên cơ sở cho biết mức sâu n rồi tìm kiếm
rộng ứng mới mức sâu đó
Trang 44Iterative deepening search l =0
Trang 45Iterative deepening search l =1
Trang 46Iterative deepening search l =2
Trang 47Iterative deepening search l =3
Trang 48Là một cây mô tả các chọn lựa có thể
thực hiện trong mỗi bước của quá
trình giải bài toán.
Toàn bộ cây tìm kiếm được tượng trưng
bằng một hình tam giác
Vị trí bắt đầu ở đỉnh, vị trí kết thúc ở đáy
Trang 49Sâu Rộng
Trang 50Sâu Rộng
Có thể đi vào các ngõ,
nhánh cụt (không thể đi
tiếp được nữa) quay lui
Không cần quay lui Chỉ quan tâm đến hướng đi
đã chọn Quan tâm đến tất cả hướng đi tốn bộ nhớ để lưu trữ
Trang 52Chặt nhánh
Loại bỏ hướng tìm kiếm chắc chắn không dẫn đến lời giải
Tìm kiếm với tri thức bổ sung
Ưu tiên đi theo hướng có triển vọng nhất, hy vọng sẽ đến lời giải nhanh hơn, trường hợp xấu nhất quay về vét cạn
(như thế nào là triển vọng nhất?)