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ì:
Mỗi đỉnh là một giai đoạn của quá trình giải (hay là trạng thái).
Mỗi cung là một tác động biến đổi quá trình từ giai đoạn này sang giai đoạn khác.
51 trang |
Chia sẻ: maiphuongdc | Lượt xem: 3045 | Lượt tải: 3
Bạn đang xem nội dung tài liệu Bài giảng Nhập môn trí tuệ Nhân tạo, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
* * Mụ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 thông minh hơn, hoạt động có hiệu quả hơn. * Mô hình “củ hành”: * Vai trò trí tuệ nhân tạo: * Cá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, hiểu vấn đề và sáng tạo ra vấn đề. * Nhân tạo: Có nghĩa là cố gắng sử dụng máy tính để xây dựng những hệ thống nhâ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. Các định nghĩa (tt) * DỮ 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. * VÍ DỤ : DỮ LIỆU : 1, 1, 3, 5, 2, 7, 11, ... THÔNG TIN : 1, 1, 2, 3, 5, 8, 13, 21, 34, .... TRI THỨC : Un = Un-1 + Un-2. * DỮ LIỆU THÔNG TIN TRI THỨC Độ trừu tượng Số lượng * Một số thuật toán: Phương pháp giải quyết vấn đề theo hướng xác định trực 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); Write(‘ S = ‘, n*(n-1)/2); * Mộ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 {} + Đúng : Goto bước 1. + Sai: Dừng (fail). Lưu ý: Đối với phương pháp này, việc giới hạn D càng nhỏ giải càng nhanh. Ví dụ: Tìm các số có ba chữ số thỏa: abc=a3 +b3 +c3 Ta có D: 1 a 9 0 b, c 9 For a := 1 To 9 Do For b := 0 To 9 Do For c:=1 To 9 Do If (100*a+10*b+c = a*a*a + b*b*b + c*c*c) then Writeln(a,b,c); * Một số thuật toán (tt) 3. Phương pháp đệ qui: Định nghĩa kiểu đệ qui: Ví dụ: Định nghĩa số tự nhiên: 1 là số tự nhiên n là số tự nhiên thì (n-1) cũng là số tự nhiên. Hàm đệ qui: Hàm f được gọi là đệ qui nếu: f(x) = f(x, f(x’)) * Một số thuật toán (tt) 4. Phương pháp ngẫu nhiên (phương pháp Monte – Carlo): Bài toán: Tính diện tích của hình M bất kỳ. + Có thể bao hình M nội tiếp trong một hình vuông có cạnh là 1 đơn vị. + Phát ngẫu nhiên N điểm vào trong hình vuông. + Có Nm điểm nằm trong hình M. * Một số thuật toán (tt) Với n đủ lớn, diện tích (xấp xỉ) hình M được tính như sau: * Một số thuật toán (tt) Ví dụ: Tính : diện tích hình tròn S0 = R2 với R = 1/2 = 4S0 * Một số thuật toán (tt) Function Pi:Real; Var m, i : Integer; x, y : Real; Begin m := 0; For i := 1 To N Do {Phát ngẫu nhiên N điểm} Begin x := random; {x (0,1)} y := random; {y (0,1)} If (x2 + y2) 1 Then m := m + 1; End; Pi := 4*m/N; End; * Cá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). * Cá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. * Kỹ thuật tìm kiếm Một số bài toán Bài toán mê cung: * Kỹ 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: Cho một bản đồ, tô màu cho mỗi nước trên bản đồ 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? 1976 người ta đã dùng máy tính để chứng minh được là chỉ cần dùng tối đa là 4 màu. * Kỹ thuật tìm kiếm (tt) Bài toán taci: * Biểu diễn bài toán: * Biểu diễn bài toán (tt) Hầu hết các bài toán đều có thể phát biểu 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: Chọn được không gian tìm kiếm thích hợp. Tiến hành tìm kiếm có hệ thống và có hiệu quả trong không gian tìm kiếm. Sử dụng triệt để các nguồn tri thức có liên quan trong quá trình tìm kiếm tương ứng với miền đại lượng cụ thể. * Biể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ì: Mỗi đỉnh là một giai đoạn của quá trình giải (hay là trạng thái). Mỗi cung là một tác động biến đổi quá trình từ giai đoạn này sang giai đoạn khác. * Biểu diễn bài toán (tt) * * Tìm kiếm rộng (Breadth-first search) Hiện thực: FIFO queue. * Breadth-first search Hiện thực: FIFO queue. * Breadth-first search Hiện thực: FIFO queue. * Breadth-first search Hiện thực: FIFO queue. * Tìm kiếm sâu (Depth-first search) Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Depth-first search Hiện thực: LIFO queue * Tì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 đó. * Iterative deepening search l =0 * Iterative deepening search l =1 * Iterative deepening search l =2 * Iterative deepening search l =3 * Là 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 * Sâu Rộng * Sâ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ữ * Sâu dần Hạn chế trường hợp đi quá sâu mà gặp nhánh cụt Ít tốn bộ nhớ hơn. Tận dụng được ưu điểm “rộng” của phương pháp tìm theo chiều rộng. Độ sâu giới hạn bao nhiêu là đủ ? * Chặ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?)
Các file đính kèm theo tài liệu này:
- presentation1_9072.ppt