Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
911,46 KB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MƠN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI 24: VIẾT CHƯƠNG TRÌNH GIẢI BÀI TỐN ĐONG NƯỚC Giảng viên: Nguyễn Thu Hương Sinh viên thực hiện: Đỗ Danh Hải (CNTT-K17C) Nguyễn Phương Thảo (CNTT-K17C) Nguyễn Quý Hoàng (CNTT-K17C) Tống Duy Hùng (CNTT-K17C) Contents No table of contents entries found CHƯƠNG 1: CƠ SỞ LÍ THUYẾT I Tổng quan trí tuệ nhân tạo Trí tuệ nhân tạo gì? Có nhiều quan điểm khác trí tuệ nhân tạo Mỗi quan điểm đứng góc độ tiếp cận cách ứng dụng trí tuệ nhân tạo vào sống Cho nên việc xây dựng định nghĩa trí tuệ nhân tạo khác Do có nhiều định nghĩa khác trí tuệ nhân tạo Theo M.Misky: Trí tuệ nhân tạo ngành khoa học nhằm mơ máy tính hành vi thông minh người Đối với người xây dựng khai thác tri thức trí tuệ nhân tạo chuyên ngành thuộc công nghệ thông tin, nghiên cứu dựa hai khía cạnh: + Nghiên cứu chất hoạt động trí tuệ não người + Mơ hoạt động trí tuệ não người thiết bị máy Để giải quyể tình thơng thường người thường phải trải qua loạt giai đoạn sau: + Thu nhận thơng tin tình + Khả nhớ + Tổ chức thành tình + Xử lý tình + Đưa lời giải cho hành động Vai trị trí tuệ nhân tạo ngành công nghệ thông tin Theo nghĩa trí tuệ nhân tạo nên cách đơn giản để xây dựng lên cấu trúc chương trình định phức tạp địi hỏi phải dựa tri thức định Các chương trình trí tuệ nhân tạo hoạt động giống não người tức tích hợp tri thức mà không cần thay đổi lại cách làm việc Vì chương trình trí tuệ nhân tạo dễ dàng cải tiến so với chương trình truyền thống Khi máy tính trang bị phần mềm trí tuệ nhân tạo kết hợp với mơi trường làm việc cho phép giải toán cỡ lớn phân tán Một số phần mềm trí tuệ nhân tạo thể tính thích nghi mềm dẻo lớp toán thuộc nhiều lĩnh vực khác Giải vấn đề biểu diễn tri thức Con người sống mơi trường nhận thức giới nhờ giác quan (tai, mắt giác quan khác), sử dụng tri thức tích lũy thơng qua khả lập luận, suy diễn người đưa hành động hợp lý để giải vấn đề Một mục tiêu Trí tuệ nhân tạo ứng dụng thiết kế tác nhân thông minh (intelligent agent) có khả kể người Chúng ta hiểu tác nhân thơng minh nhận thức mơi trường qua cảm nhận (sensors) đưa hành động hợp lý đáp ứng lại môi trường thông qua hành động (effectors) Các robot, softbot (software robot), hệ chuyên gia,… ví dụ tác nhân thông minh Các tác nhân thông minh cần phải có tri thức giới thực đưa định đắn Thành phần trung tâm tác nhân dựa tri thức (knowlegde-based agent), gọi hệ dựa tri thức (knowledge-based system) đơn giản hệ tri thức, sở tri thức Cơ sở tri thức tập hợp tri thức biểu diễn dạng Mỗi nhận thơng tin đưa vào, tác nhân cần có khả suy diễn để đưa câu trả lời, hành động hợp lý, đắn Nhiệm vụ thực suy diễn Bộ suy diễn thành phần khác hệ tri thức Như vậy, hệ tri thức bảo trì sở tri thức trang bị thủ tục suy diễn Mỗi tiếp nhận kiện từ môi trường, thủ tục suy diễn thực trình liên kết kiện với tri thức sở tri thức để rút câu trả lời, hành động hợp lý mà tác nhân cần thực hiên Đương nhiên là, ta thiết kế tác nhân giải vấn đề sở tri thức chứa tri thức miền đối tượng cụ thể Để máy tính sử dụng xử lý tri thức, cần biểu diễn tri thức dạng thuận tiện cho máy tính dễ dàng hiểu Đó mục tiêu biểu diễn tri thức Tri thức mô tả dạng câu ngôn ngữ biểu diễn tri thức Mỗi câu xem mã hóa hiểu biết giới thực Có nhiều phương pháp biểu diễn tri thức, phải phụ thuộc vào tri thức cụ thể toán ta chọn phương pháp biểu diễn hợp lý - Biểu diễn tri thức luật sản xuất (production rules) - Biểu diễn tri thức khung (frames) - Biểu diễn tri thức sử dụng mạng ngữ nghĩa (semantic networks) - Biểu diễn tri thức ontology - Các mơ hình xác suất Khi biểu diễn tri thức cho toán, việc biểu diễn coi tốt chúng thỏa mãn yếu tố sau: - Tính hồn chỉnh (completeness) - Tính ngắn gọn (conciseness) - Tính hiệu tính tốn (computational efficiency) - Tính rõ ràng, dễ hiểu (transparency) Biểu diễn tri thức luật đặc biệt hữu hiệu tình hệ thống cần đưa hành động dựa vào kiện quan sát Dưới số ưu điểm chính: - Các luật dễ hiểu nên dễ dàng dùng để trao đổi với người dùng (vì dạng tự nhiên ngơn ngữ) - Có thể dễ dàng xây dựng chế suy luận giải thích từ luật - Việc hiệu chỉnh bảo trì hệ thống tương đối dễ dàng - Có thể cải tiến dễ dàng để tích hợp luật mở Bên cạnh ưu điểm nói trên, cịn số nhược điểm như: - Các tri thức phức tạp đôi lúc đòi hỏi nhiều (hàng ngàn) luật sinh Điều làm sinh nhiều vấn đề liên quan đến tốc độ lẫn quản trị hệ thống - Thống kê cho thấy, người xây dựng hệ thống trí tuệ nhân tạo thích sử dụng luật sinh tất phương pháp khác (dễ hiểu, dễ cài đặt) nên họ thường tìm cách để biểu diễn tri thức luật sinh cho dù có phương pháp khác thích hợp Đây nhược điểm mang tính chủ quan người - Cơ sở tri thức luật sinh lớn làm giới hạn khả tìm kiếm chương trình điều khiển Nhiều hệ thống gặp khó khăn việc đánh giá hệ dựa luật sinh gặp khó khăn suy luận luật sinh Trong này, đề cập đến việc sử dụng câu luật, tổng hợp lại thành hệ luật đưa kết luận sau trình suy diễn từ hệ luật CÁC CHIẾN LƯỢC TÌM KIẾM MÙ Trong mục trình bày hai chiến lược tìm kiếm mù: tìm kiếm theo bề rộng tìm kiếm theo độ sâu Trong tìm kiếm theo bề rộng, bước ta chọn trạng thái để phát triển trạng thái sinh trước trạng thái chờ phát triển khác Còn tìm kiếm theo độ sâu, trạng thái chọn để phát triển trạng thái sinh sau số trạng thái chờ phát triển Chúng ta sử dụng danh sách L để lưu trạng thái sinh chờ phát triển Mục tiêu tìm kiếm khơng gian trạng thái tìm đường từ trạng thái ban đầu tới trạng thái đích, ta cần lưu lại vết đường Ta sử dụng hàm father để lưu lại cha đỉnh đường đi, father(v) = u cha đỉnh v u 4.1.Tìm kiếm theo bề rộng Trong tìm kiếm theo bề rộng, trạng thái sinh trước phát triển trước, danh sách L xử lý hàng đợi Trong bước 2.3, ta cần kiểm tra xem u có trạng thái kết thúc hay khơng Nói chung trạng thái kết thúc xác định số điều kiện đó, ta cần kiểm tra xem u có thỏa mãn điều kiện hay khơng Nếu tốn có nghiệm (tồn đường từ trạng thái ban đầu tới trạng thái đích), thuật tốn tìm kiếm theo bề rộng tìm nghiệm, đồng thời đường tìm ngắn Trong trường hợp tốn vơ nghiệm khơng gian trạng thái hữu hạn, thuật tốn dừng cho thơng báo vơ nghiệm 4.2.Tìm kiếm theo độ sâu Thuật tốn tìm kiếm theo bề rộng ln ln tìm nghiệm tốn có nghiệm Song khơng phải với tốn có nghiệm thuật tốn tìm kiếm theo độ sâu tìm nghiệm! Nếu tốn có nghiệm khơng gian trạng thái hữu hạn, thuật tốn tìm kiếm theo độ sâu tìm nghiệm Tuy nhiên, trường hợp khơng gian trạng thái vơ hạn, khơng tìm nghiệm, lý ta luôn xuống theo độ sâu, ta theo nhánh vô hạn mà nghiệm không nằm nhánh thuật tốn khơng dừng Do người ta khun rằng, khơng nên áp dụng tìm kiếm theo dộ sâu cho tốn có tìm kiếm chứa nhánh vơ hạn Độ phức tạp thuật tốn tìm kiếm theo độ sâu Giả sử rằng, nghiệm tốn đường có độ dài d, tìm kiếm có nhân tố nhánh b có chiều cao d Có thể xẩy ra, nghiệm đỉnh bên phải mức d tìm kiếm, độ phức tạp thời gian tìm kiếm theo độ sâu trường hợp xấu O(bd), tức tìm kiếm theo bề rộng Tuy nhiên, thực tế nhiều tốn, tìm kiếm theo độ sâu thực nhanh tìm kiếm theo bề rộng Lý tìm kiếm theo bề rộng phải xem xét tồn tìm kiếm tới mức d-1, xem xét đỉnh mức d Cịn tìm kiếm theo độ sâu, ta cần xem xét phận nhỏ tìm kiếm tìm nghiệm 4.3.Các trạng thái lặp Trong đồ thị biểu diễn không gian trạng thái, trạng thái lặp ứng với đỉnh có nhiều đường dẫn tới từ trạng thái ban đầu Nếu đồ thị có chu trình tìm kiếm chứa nhánh với số đỉnh lập lại vô hạn lần Trong thuật tốn tìm kiếm lãng phí nhiều thời gian để phát triển lại trạng thái mà ta gặp phát triển Vì trình tìm kiếm ta cần tránh phát sinh trạng thái mà ta phát triển Chúng ta áp dụng giải pháp sau đây: Khi phát triển đỉnh u, không sinh đỉnh trùng với cha u Khi phát triển đỉnh u, không sinh đỉnh trùng với đỉnh nằm đường dẫn tới u Khơng sinh đỉnh mà sinh ra, tức sinh đỉnh Để thực giải pháp thứ ta cần lưu trạng thái phát triển vào tập Q, lưu trạng thái chờ phát triển vào danh sách L Đương nhiên, trạng thái v lần đầu sinh khơng có Q L Việc lưu trạng thái phát triển kiểm tra xem trạng thái có phải lần đầu sinh khơng địi hỏi nhiều khơng gian thời gian 4.4.Tìm kiếm sâu lặp Kỹ thuật tìm kiếm sâu lặp kết hợp ưu điểm tìm kiếm theo bề rộng tìm kiếm theo độ sâu Chúng ta có số nhận xét sau: Cũng tìm kiếm theo bề rộng, tìm kiếm sâu lặp ln ln tìm nghiệm (nếu tốn có nghiệm), miễn ta chọn độ sâu mã đủ lớn Tìm kiếm sâu lặp cần khơng gian nhớ tìm kiếm theo độ sâu Trong tìm kiếm sâu lặp, ta phải phát triển lặp lại nhiều lần trạng thái Điều làm cho ta có cảm giác rằng, tìm kiếm sâu lặp lãng phí nhiều thời gian Thực thời gian tiêu tốn cho phát triển lặp lại trạng thái không đáng kể so với thời gian tìm kiếm theo bề rộng II Ngơn ngữ lập trình C# C# ? C # ngơn ngữ lập trình đại phát triển Microsoft phê duyệt European Computer Manufacturers Association (ECMA) và International Standards Organization (ISO).C # phát triển Anders Hejlsberg nhóm ơng việc phát triển Net Framework C # thiết kế cho ngôn ngữ chung sở hạ tầng (Common Language Infrastructure – CLI), bao gồm mã (Executable Code) và môi trường thực thi (Runtime Environment) cho phép sử dụng ngôn ngữ cấp cao khác đa nền tảng máy tính kiến trúc khác C# (đọc là "C thăng" hay "C sharp" ("xi-sáp")) một ngơn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, phần khởi đầu cho kế hoạch .NET của họ Tên ngôn ngữ bao gồm ký tự thăng theo Microsoft theo ECMA là C#, bao gồm dấu số thường Microsoft phát triển C# dựa trên C++ và Java C# miêu tả ngôn ngữ có cân C++, Visual Basic, Delphi và Java C#, theo hướng đó, ngơn ngữ lập trình phản ánh trực tiếp đến .NET Framework mà tất chương trình.NET chạy, phụ thuộc mạnh mẽ vào framework Mọi liệu sở đối tượng, cấp phát hủy bỏ trình dọn rác Garbage-Collector (GC), nhiều kiểu trừu 10 tượng khác chẳng hạn class, delegate, interface, exception phản ánh rõ ràng đặc trưng của.NET runtime So sánh với C C++, ngôn ngữ bị giới hạn nâng cao vài đặc điểm đó, không bao gồm giới hạn sau đây: Các trỏ sử dụng chế độ khơng an toàn Hầu hết đối tượng tham chiếu an tồn, phép tính kiểm tra tràn đệm Các trỏ sử dụng để gọi loại kiểu giá trị; đối tượng thuộc gom rác (garbage-collector) gọi cách tham chiếu Các đối tượng giải phóng tường minh Chỉ có đơn kế thừa, cài đặt nhiều interface trừu tượng (abstract interfaces) Chức làm đơn giản hóa thực thi thời gian thực thi C# an-tồn-kiểu (typesafe) C++ Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay "int a[5]") Kiểu thứ tự thay tên miền khơng gian (namespace) C# khơng có tiêu Có thêm Properties, phương pháp gọi Properties để truy cập liệu Lịch sử C# Lịch sử phát triển C# đặc điểm phiên mơ tả bảng sau: Phiên Ngày Visual Đặc điểm đời Studio C# 1.0 01/2002 2002 C# 2.0 11/2005 2005 Kiểu tổng quát (generic type), phương thức nặc danh (anonymous method), kiểu Nullable (nullable type) 11 C# 3.0 11/2007 2008 C# 4.0 04/2010 2010 C# 5.0 02/2012 2012 Định nghĩa biến kiểu không tường minh (implicitly typed local variable), kiểu nặc danh (anonymous type), phương thức mở rộng (extension method), khởi tạo đối tượng danh sách (object and collection initializer), thuộc tính tự động cài đặt (auto-implemented properties), biểu thức Lambda (Lambda expression), biểu thức (expression tree), biểu thức truy vấn (query expression) LINQ (language-integrated query) Tham đối đặt tên (named argument), tham đối tùy chọn (optional argument), cải tiến giao diện thành phần COM (more COM interface), kiểu dynamic ràng buộc trễ (dynamic type and late binding) Đặc điểm bất đồng (async feature), thông tin đối tượng gọi (caller information) Điểm mạnh C# Ngơn ngữ lập trình C# ngơn ngữ lập trình bậc trung phát triển vào năm 2000 Microsoft C# xây dựng dựa ngôn ngữ C C++ dễ sử dụng nhờ thư viện rộng lớn để thực các vụ khác C# Là số ngôn ngữ hướng đối tượng - Chuyên sử dụng để lập trình cho windows - Thiết kế winform cực tốt, đơn giản dễ hiểu - Ngôn ngữ dễ học, dễ tiếp cận với Java - Khả tương tác với Database dễ dàng nhiều - Được window hỗ trợ đầy đủ control - Thư viện NET nhẹ, dễ cài đặt miễn phí 12 - Ngôn ngữ mã nguồn mở - Code/Build Visual Studio, IDE tiện lợi, mạnh mẽ Microsoft - Có thể sử dụng để lập trình web thơng qua C# ASP.NET - IDE Visual Studio hỗ trợ debug, build cực khủng Xếp hạng C# Hiện ngôn ngữ C# được xếp hạng thứ Top 10 ngơn ngữ lập trình phổ biến giới sử dụng 13 CHƯƠNG 2: ÁP DỤNG TÌM KIẾM MÙ VÀO BÀI HỌC THỰC TẾ Giới thiệu tốn Viết chương trình giải tốn đong nước: Có bình với dung tích n (lít), m (lít) Với lượng nước khơng hạn chế, lúc đầu hai bình khơng chứa nước Hãy dùng bình để đong k (lít) với nVx) - 18 - 19 4.DEMO - chạy chương trình 20 - Hướng dẫn sử dụng - KẾT LUẬN Liệt kê nội dung làm được: lý thuyết, thực hành, khả làm việc theo nhóm,….Sau nói số hạn chế Những nội dung làm : a Lý thuyết: Nắm kiến thức trình bày trí tuệ nhân tạo, vai trò, gải vấn đề biểu diễn tri thức, tổng quan chiến 21 lược suy diễn trí tuệ nhân tạo Trình bày biểu diễn tri thức luật hệ, ví đụ b Thực hành: hồn thành code xây dựng tốn demo chương trình mơng muốn c Khả làm việc theo nhóm : Các thành viên nhóm làm việc tốt, thường xuyên trao đổi kiến thức hoàn thiện tập mình, tự trau dồi để củng cố kiến thức riêng cho thân Các vấn đề gặp phải Trong trình xây dựng chương trình, thu thập biểu diễn tri thức hai vấn đè sảy nhiều sai sót lỗi Trong q trình thu thập: số lượng thơng tin hỏi đáp không nhiều nên kết thống kê chưa thật xác Trong q trình cài đặt chương trình Hướng phát triển đề tài Xây dựng mở rộng thêm tri thức, cho phép học bổ xung thêm luật vào sở tri thức, cải tieend tri thức, nâng cao độ xác Thử nghiệm phương thức biểu diễn tri thức thông tin không chắn dựa lý thuyết xác suất Đánh giá Chương trình cịn nhiều hạn chế vè kết tư vấn số liệu tập luận liệu hạn chế Giao diện đơn giản Những đóng góp thành viên đề tài: Các thành viên nhóm hăng hái đoàn kết việc xây dựng ý tốn phân cơng cơng việc rõ dàng để tìm kiếm thơng tin đóng góp ý kiếm lập luận để hoàn thiện tập lớp Tài liệu tham khảo : https://vi.wikipedia.org/wiki/Suy_di%E1%BB%85n_logic#V %C3%AD_d%E1%BB%A5 https://www.youtube.com/watch?v=K2sHT60nt0Y 22 file:///D:/ ACFrOgB5eioOi_4oU1vEmnb31KSA0QmNyF7bcE6ng4QGamJaOs TEAcPwLaqSpfJcYE7vGgsRIo9lR6tS7iZ0A4CKUyu90ObZTdVdYfaGK5xzUB0poDaVW3dyODzsMBZq4onPZiRWBpvUpuL Fk0c.pdf 23