giáo trình nhập môn trí tuệ nhân tạo

173 431 1
giáo trình nhập môn trí tuệ nhân tạo

Đ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

Chương – THUẬT TOÁN - THUẬT GIẢI I KHÁI NIỆM THUẬT TOÁN – THUẬT GIẢI Trong trình nghiên cứu giải vấn đề – toán, người ta đưa nhận xét sau: o Có nhiều toán chưa tìm cách giải theo kiểu thuật toán có tồn thuật toán hay không o o Có nhiều toán có thuật toán để giải không chấp nhận thời gian giải theo thuật toán lớn điều kiện cho thuật toán khó đáp ứng Có toán giải theo cách giải vi phạm thuật toán chấp nhận Từ nhận định trên, người ta thấy cần phải có đổi cho khái niệm thuật toán Người ta mở rộng hai tiêu chuẩn thuật toán: tính xác định tính đắn Việc mở rộng tính xác định thuật toán thể qua giải thuật đệ quy ngẫu nhiên Tính thuật toán không bắt buộc số cách giải toán, cách giải gần Trong thực tiễn có nhiều trường hợp người ta chấp nhận cách giải thường cho kết tốt (nhưng lúc tốt) phức tạp hiệu Chẳng hạn giải toán thuật toán tối ưu đòi hỏi máy tính thực hiên nhiều năm sẵn lòng chấp nhận giải pháp gần tối ưu mà cần máy tính chạy vài ngày vài Các cách giải chấp nhận không hoàn toàn đáp ứng đầy đủ tiêu chuẩn thuật toán thường gọi thuật giải Khái niệm mở rộng thuật toán mở cửa cho việc tìm kiếm phương pháp để giải toán đặt Một thuật giải thường đề cập đến sử dụng khoa học trí tuệ nhân tạo cách giải theo kiểu heuristic II THUẬT GIẢI HEURISTIC Thuật giải heuristic mở rộng khái niệm thuật toán Nó thể cách giải toán với đặc tính sau: o Thường tìm lời giải tốt (nhưng không lời giải tốt nhất) o Giải toán theo thuật giải heuristic thường dễ dàng nhanh chóng đưa kết so với giải thuật tối ưu, chi phí thấp o Thuật giải heuristic thường thể tự nhiên, gần gũi với cách suy nghó hành động người - - Có nhiều phương pháp để xây dựng thuật giải heuristic, người ta thường dựa vào số nguyên lý sau Nguyên lý vét cạn thông minh: Trong toán tìm kiếm đó, không gian tìm kiếm lớn, ta thường tìm cách giới hạn lại không gian tìm kiếm thực kiểu dò tìm đặc biệt dựa vào đặc thù toán để nhanh chóng tìm mục tiêu Nguyên lý tham lam (Greedy): Lấy tiêu chuẩn tối ưu (trên phạm vi toàn cục) toán để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục bước (hay giai đoạn) trình tìm kiếm lời giải Nguyên lý thứ tự: Thực hành động dựa cấu trúc thứ tự hợp lý không gian khảo sát nhằm nhanh chóng đạt lời giải tốt Hàm heuristic: Trong việc xây dựng thuật giải heuristic, người ta thường dùng hàm heuristic Đó hàm đánh giá thô, giá trị hàm phụ thuộc vào trạng thái toán bước giải Nhờ giá trị này, ta chọn cách hành động tương đối hợp lý bước thuật giải Bài toán hành trình ngắn – ứng dụng nguyên lý Greedy Bài toán: Hãy tìm hành trình cho người giao hàng qua n điểm khác nhau, điểm qua lần trở điểm xuất phát - - cho tổng chiều dài đoạn đường cần ngắn Giả sử có đường nối trực tiếp từ hai điểm Tất nhiên ta giải toán cách liệt kê tất đường đi, tính chiều dài đường tìm đường có chiều dài ngắn Tuy nhiên, cách giải lại có độ phức tạp 0(n!) (một hành trình hoán vị n điểm, đó, tổng số hành trình số lượng hoán vị tập n phần tử n!) Do đó, số đại lý tăng số đường phải xét tăng lên nhanh Một cách giải đơn giản nhiều thường cho kết tương đối tốt dùng thuật giải heuristic ứng dụng nguyên lý Greedy Tư tưởng thuật giải sau: o Từ điểm khởi đầu, ta liệt kê tất quãng đường từ điểm xuất phát n đại lý chọn theo đường ngắn o Khi đến đại lý, chọn đến đại lý theo nguyên tắc Nghóa liệt kê tất đường từ đại lý ta đứng đến đại lý chưa đến Chọn đường ngắn Lặp lại trình lúc không đại lý để Bạn quan sát hình sau để thấy trình chọn lựa Theo nguyên lý Greedy, ta lấy tiêu chuẩn hành trình ngắn toán làm tiêu chuẩn cho chọn lựa cục Ta hy vọng rằng, n đoạn đường ngắn cuối ta có hành trình ngắn Điều lúc Với điều kiện hình thuật giải cho hành trình có chiều dài 14 hành trình tối ưu 13 - - Kết thuật giải Heuristic trường hợp lệch đơn vị so với kết tối ưu Trong đó, độ phức tạp thuật giải Heuristic 0(n2) 1 5 4 1 1 5 2 4 1 5 2 2 4 1 - - 4 Hình 1.1: Giải toán sử dụng nguyên lý Greedy Tất nhiên, thuật giải theo kiểu Heuristic đôi lúc lại đưa kết không tốt, chí tệ trường hợp hình sau 1 5 100 2 4 Hình 1.2 - - Bài toán phân việc – ứng dụng nguyên lý thứ tự Một công ty nhận 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 P1, P2, … Pn Mọi chi tiết gia công máy Một gia công chi tiết máy, công việc tiếp tục lúc hoàn thành, bị cắt ngang Để gia công việc J1 máy ta cần dùng thời gian tương ứng t1 Nhiệm vụ công ty phải gia công xong toàn n chi tiết thời gian sớm Chúng ta xét toán trường hợp có ba máy P1, P2, P3 sáu công việc với thời gian t1 = 2, t2 = 5, t3 = 8, t4 = 1, t5 = 5, t6 = 1; ta có phương án phân công (L) hình sau: t2 = M1 t5 = M2 t1 = t6 = t3 = M3 t4 = Hình 1.3 - - Theo hình 1.3, thời điểm t = 0, ta tiến hành gia công chi tiết J2 máy P1, J5 P2 J1 P3 Tại thời điểm t = 2, công việc J1 hoàn thành, máy P3 ta gia công tiếp chi tiết J4 Trong lúc đó, hai máy P1 P2 thực công việc … Sơ đồ phân việc theo hình gọi lược đồ Gantt Theo lược đồ này, ta thấy thời gian để hoàn thành toàn công việc 12 Nhận xét cách cảm tính ta thấy phương án (L) vừa thực phương án không tốt Các máy P1 P2 có nhiều thời gian rảõnh Thuật toán tìm phương án tối ưu L0 cho toán theo kiểu vét cạn có độ phức tạp cỡ O(mn) (với m số máy n số công việc) Bây ta xét đến thuật giải heuristic đơn giản (độ phức tạp O(n)) để giải toán o Sắp xếp công việc theo thứ tự giảm dần thời gian gia công o Lần lượt xếp việc theo thứ tự vào máy dư nhiều thời gian Với tư tưởng vậy, ta có phương án L* nhö sau: - - t3 = M1 t2 = t1 = M2 t5 = t4 = M3 t6 = Hình 1.4 Rõ ràng phương án L* vừa thực phương án tối ưu trường hợp thời gian hoàn thành 8, thời gian công việc J3 Ta hy vọng thuật giải heuristic đơn giản thuật giải tối ưu Nhưng tiếc thay, ta dễ dàng đưa trường hợp mà thuật giải heuristic không đưa kết tối ưu t1 = t3 = t5 = M1 t2 = t4 = M2 t1 = t2 = M1 t2 = t4 = M 10 t5 = - - mà trình gọi trình “đâm chồi” Cây mà xây dựng gọi định danh Đến đây, lại gặp vấn đề Nếu ban đầu ta không chọn thuộc tính màu tóc để phân hoạch mà chọn thuộc tính khác chiều cao chẳng hạn để phân hoạch sao? Cuối cách phân hoạch tốt hơn? Vấn đề mà gặp phải tương tự toán tìm kiếm : “Đứng trước ngã rẽ, ta cần phải vào hướng nào?” Hai phương pháp đánh giá giúp ta chọn thuộc tính phân hoạch bước xây dựng định danh II.2.1 Quinlan Quinlan định thuộc tính phân hoạch cách xây dựng vector đặc trưng cho giá trị thuộc tính dẫn xuất thuộc tính mục tiêu Cách tính cụ thể sau : Với thuộc tính dẫn xuất A sử dụng để phân hoạch, tính : VA(j) = ( T(j , r1), T(j , r2) , …, T(j , rn) ) - - 159 T(j, ri) = (tổng số phần tử phân hoạch có giá trị thuộc tính dẫn xuất A j có giá trị thuộc tính mục tiêu ri ) / ( tổng số phần tử phân hoạch có giá trị thuộc tính dẫn xuất A j ) * r1, r2, … , rn giá trị thuộc tính mục tiêu *  T(j, r )  i i Nhö thuộc tính A nhận năm giá trị khác có năm vector đặc trưng Một vector V(Aj ) gọi vector đơn vị có thành phần có giá trị thành phần khác có giá trị Thuộc tính chọn để phân hoạch thuộc tính có nhiều vector đơn vị Trở lại ví dụ chúng ta, trạng thái ban đầu (chưa phân hoạch) tính vector đặc trưng cho thuộc tính dẫn xuất để tìm thuộc tính dùng để phân hoạch Đầu tiên thuộc tính màu tóc Thuộc tính màu tóc có ba giá trị khác (vàng, đỏ, nâu) nên có ba vector đặc trưng tương ứng : VTóc (vàng) = ( T(vàng, cháy nắng), T(vàng, không cháy nắng) ) Số người tóc vàng : Số người tóc vàng cháy nắng : Số người tóc vàng không cháy nắng : 160 - - Do VTóc(vàng) = (2/4 , 2/4) = (0.5, 0.5) Tương tự VTóc(nâu) = (0/3, 3/3) = (0,1) (vector đơn vị) Số người tóc nâu : Số người tóc nâu cháy nắng : Số người tóc nâu không cháy nắng : VTóc(đỏ) = (1/1, 0/1) = (1,0) (vector đơn vị) Tổng số vector đơn vị thuộc tính tóc vàng Các thuộc tính khác tính tương tự, kết sau : VC.Cao(Cao) = (0/2,2/2) = (0,1) VC.Cao(T.B) = (2/3,1/3) VC.Cao(Thấp) = (1/3,2/3) VC.Nặng (Nhẹ) = (1/2,1/2) VC.Naëng (T.B) = (1/3,2/3) VC.Naëng (Naëng) = (1/3,2/3) VKem (Có) = (3/3,0/3) = (1,0) VKem (Không) = (3/5,2/5) - - 161 Như thuộc tính màu tóc có số vector đơn vị nhiều nên chọn để phân hoạch Sau phân hoạch theo màu tóc xong, có phân hoạch theo tóc vàng (Pvàng) chứa người cháy nắng không cháy nắng nên ta tiếp tục phân hoạch tập Ta thực thao tác tính vector đặc trưng tương tự thuộc tính lại (chiều cao, cân nặng, dùng kem) Trong phân hoạch Pvàng, tập liệu lại : Tên Sarah Dana Annie Kartie Chiều cao T.Bình Cao Thấp Thấp Cân nặng Nhẹ T.Bình T.Bình Nhẹ VC.Cao(Cao) = (0/1,1/1) = (0,1) VC.Cao(T.B) = (1/1,0/1) = (1,0) VC.Cao(Thấp) = (1/2,1/2) VC.Nặng (Nhẹ) = (1/2,1/2) VC.Naëng (T.B) = (1/2,1/2) VC.Naëng (Naëng) = (0,0) VKem (Có) = (0/2,2/2) = (0,1) VKem (Không) = (2/2,0/2) = (1,0) 162 - - Dùng kem? Không Có Không Có Kết Cháy Không Cháy Không Hai thuộc tính dùmg kem chiều cao có hai vector đơn vị Tuy nhiên, số phân hoạch thuộc tính dùng kem nên ta chọn phân hoạch theo thuộc tính dùng kem Cây định danh cuối sau : Màu tóc Sarah Dana Annie Kartie Emmile Dùng kem Có Alex Peter John Không Dana Kartie Sarah Annie II.2.2 Độ đo hỗn loạn Thay phải xây dựng vector đặc trưng phương pháp Quinlan, ứng với thuộc tính dẫn xuất ta cần tính độ đo hỗn loạn lựa chọn thuộc tính có độ đo hỗn loại thấp Công thức tính sau : TA =  bj       b r i  log   b r i       b  b 2 b j  j i  j    t : bt tổng số phần tử có phân hoạch - - 163 bj tổng số phần tử có thuộc tính dẫn xuất A có giá trị j bri : tổng số phần tử có thuộc tính dẫn xuất A có giá trị j thuộc tính mục tiêu có giá trị i Nguyên tắc phát sinh tập luật từ định danh đơn giản Ứng với nút lá, ta việc từ đỉnh nút phát sinh luật tương ứng Cụ thể từ định danh kết cuối phần II.2 ta có luật sau (xét nút từ trái sang phải) (Màu tóc vàng) (có dùng kem)  không cháy nắng (Màu tóc vàng) (không dùng kem)  cháy nắng (Màu tóc nâu)  không cháy nắng (Màu tóc đỏ)  cháy nắng Khá đơn giản phải không? Có lẽ phải nói thêm Chúng ta thực bước cuối tối ưu tập luật II.4.1 Loại bỏ mệnh đề thừa Khác so với phương pháp loại bỏ mệnh đề thừa trình bày phần biểu diễn tri thức (chỉ quan tâm đến logic hình thức), phương pháp loại bỏ mệnh đề thừa dựa vào liệu Với ví dụ tập luật có phần trước, bạn quan sát luật sau : 164 - - (Màu tóc vàng) (có dùng kem)  không cháy nắng Bây ta lập bảng (gọi bảng Contigency), bảng thống kê người có dùng kem tương ứng với tóc màu vàng bị cháy nắng hay không Trong liệu cho, có ba người không dùng kem Không cháy nắng Màu vàng Màu khác Cháy nắng 0 Theo bảng thống kê rõ ràng thuộc tính tóc vàng (trong luật trên) không đóng góp việc đưa kết luận cháy nắng hay không (cả ba người dùng kem không cháy nắng) nên ta loại bỏ thuộc tính tóc vàng khỏi tập luật Sau loại bỏ mệnh đề thừa, tập mệnh đề ví dụ : (co ù dùng kem)  không cháy nắng (Màu tóc vàng) (không dùng kem)  cháy nắng (Màu tóc nâu)  không cháy nắng (Màu tóc đỏ)  cháy nắng Như quy tắc chung để loại bỏ mệnh đề nào? Rất đơn giản, giả sử luật có n mệnh đề : A1 A2 vaø … vaø An  R - - 165 Để kiểm tra xem loại bỏ mệnh đề Ai hay không, bạn lập tập hợp P bao gồm phần tử thỏa tất mệnh ñeà A1 , A2 , … Ai-, Ai+1, …, An (lưu ý : không cần xét có thỏa Ai hay không, cần thỏa mệnh đề lại được) Sau đó, bạn lập bảng Contigency sau : Ai Ai R E G R F H E số phần tử P thỏa Ai R F số phần tử P thỏa Ai không thỏa R G số phần tử P không thỏa Ai thỏa R H số phần tử P không thỏa Ai không thỏa R Nếu tổng F + H = loại bỏ mệnh đề Ai khỏi luật II.4.2 Xây dựng mệnh đề mặc định Có vấn đề đặt gặp phải trường hợp mà tất luật không thỏa phải làm nào? Một cách hành động đặt luật mặc định : Nếu luật thỏa  cháy nắng (1) Hoặc 166 - - Nếu luật thỏa  không cháy nắng (2) (chỉ có hai luật thuộc tính mục tiêu nhận hai giá trị cháy nắng hay không cháy nắng) Giả sử ta chọn luật mặc định (2) tập luật trở thành : (Màu tóc vàng) (không dùng kem)  cháy nắng (Màu tóc đỏ)  cháy nắng Nếu luật thỏa  không cháy nắng (2) Lưu ý loại bỏ tất luật dẫn đến kết luận không cháy nắng thay luật mặc định Tại vậy? Bởi luật có kết luận với luật mặc định Rõ ràng có hai khả cháy nắng hay không Vấn đề chọn luật nào? Sau số quy tắc 1) Chọn luật mặc định cho thay cho nhiều luật (trong ví dụ ta nguyên tắc không áp dụng có hai luật dẫn đến cháy nắng hai luật dẫn đến không cháy nắng) 2) Chọn luật mặc định có kết luận phổ biến Trong ví dụ nên chọn luật (2) số trường hợp không cháy nắng không cháy nắng 3) Chọn luật mặc định cho tổng số mệnh đề luật mà thay nhiều Trong ví dụ chúng - - 167 ta luật chọn luật (1) tổng số mệnh đề luật dẫn đến cháy nắng tổng số mệnh đề luật dẫn đến không cháy nắng 168 - - BÀI TẬP CHƯƠNG 1) Viết chương trình giải toán hành trình người bán hàng rong hai thuật giải GTS1 GTS2 trường hợp có n địa điểm khác 2) Viết chương trình giải toán phân công công việc cách ứng dụng nguyên lý thứ tự 3) Ứng dụng nguyên lý thứ tự, giải toán chia đồ vật sau Có n vật với khối lượng M1, M2, … Mn Hãy tìm cách chia n vật thành hai nhóm cho chênh lệch khối lượng hai nhóm nhỏ 4) Viết chương trình giải toán mã tuần 5) Viết chương trình giải toán hậu 6) Viết chương trình giải toán Ta-canh thuật giải A* 7) Viết chương trình giải toán tháp Hà Nội thuật giải A* 8) Viết chương trình tìm kiếm đường ngắn đồ tổng quát Bản đồ biểu diễn - - 169 mảng hai chiều A, A[x,y] = A[x,y] = vật cản Cho phép người dùng click chuột hình để tạo đồ xác định điểm xuất phát kết thúc Chi phí để từ ô sang ô kế cận Mở rộng toán trường hợp chi phí để di chuyển từ ô (x,y) sang kế (x,y) A[x,y] CHƯƠNG 1) Viết chương trình minh họa bước giải toán đong nước (sử dụng đồ họa tốt) 2) Viết chương trình cài đặt hai thuật toán Vương Hạo Robinson liệt kê bước chứng minh biểu thức logic 3) Viết chương trình giải toán tam giác tổng quát mạng ngữ nghóa (lưu ý sử dụng thuật toán ký pháp nghịch đảo Ba Lan) 4) Hãy thử xây dựng luật phức tạp ví dụ trình bày dùng để chuẩn đoán hỏng hóc máy tính Viết chương trình ứng dụng luật việc chuẩn đoán hỏng hóc máy tính (sử dụng thuật toán suy diễn lùi) 170 - - 5) Hãy cài đặt frame đặc tả đối tượng hình học kỹ thuật hướng đối tượng ngôn ngữ lập trình mà bạn quen dùng Hãy xây dựng ngôn ngữ script đơn giản cho phép người dùng sử dụng frame việc giải số toán hình học đơn giản CHƯƠNG 1) Cho bảng số liệu sau Hãy xây dựng định danh tìm luật để xác định người Châu Âu hay Châu Á hai phương pháp vector đặc trưng Quinlan độ đo hỗn loạn STT Dáng To Nhỏ Nhoû To Nhoû Nhoû Nhoû To Cao TB Cao TB Cao TB Cao Cao TB Giới Nam Nam Nam Nam Nữ Nam Nữ Nữ Châu Á Á Âu Âu Âu Âu Âu Âu 2)* Viết chương trình cài đặt tổng quát thuật toán học dựa việc xây dựng định danh Chương trình yêu cầu người dùng đưa vào danh sách thuộc tính dẫn xuất, thuộc tính mục tiêu với tất giá trị thuộc tính; yêu cầu người dùng cung cấp bảng - - 171 số liệu quan sát Chương trình liệt kê lên hình luật mà tìm từ bảng số liệu Sau đó, yêu cầu người dùng nhập vào trường hợp cần xác định, hệ thống đưa kết luận trường hợp Lưu ý : Nên sử dụng hệ quản trị CSDL để cài đặt chương trình 172 - - TÀI LIỆU THAM KHẢO Bạch Hưng Khang, Hoàng Kiếm Trí tuệ nhân tạo: Các phương pháp ứng dụng, Nhà xuất Khoa học Kỹ thuật, 1989 John Durkin Expert System, Prentice Hall, 1994 N Nilson Artificial Intelligence, McGrawhill, 1971 Patrick Henry Winston Artificial Intelligence, Addison Wesley, 1992 Rich Elaine Artificial Intelligence, Addison Wesley, 1983 - - 173 ... việc tìm kiếm phương pháp để giải toán đặt Một thuật giải thường đề cập đến sử dụng khoa học trí tuệ nhân tạo cách giải theo kiểu heuristic II THUẬT GIẢI HEURISTIC Thuật giải heuristic mở rộng khái... số điểm 28 B nằm vị trí khối phụ trợ nào, C vị trí điểm cộng với điểm khối phụ trợ B nằm vị trí nên C điểm, D điểm Trạng thái khởi đầu có số điểm –28 Việc di chuyển A xuống tạo thành cột làm sinh... cục Ta hy vọng rằng, n đoạn đường ngắn cuối ta có hành trình ngắn Điều lúc Với điều kiện hình thuật giải cho hành trình có chiều dài 14 hành trình tối ưu 13 - - Kết thuật giải Heuristic trường hợp

Ngày đăng: 06/01/2015, 14:04

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan