(TIỂU LUẬN) báo cáo bài tập lớn đề tài VIẾT CHƯƠNG TRÌNH GIẢI bài TOÁN ĐONG nước

24 14 0
(TIỂU LUẬN) báo cáo bài tập lớn đề tài VIẾT CHƯƠNG TRÌNH GIẢI bài TOÁN ĐONG nước

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN -o0o BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI: VIẾT CHƯƠNG TRÌNH GIẢI BÀI TỐN ĐONG NƯỚC Lớp: Tên mơn học: Sinh viên thực hiện: Thái Nguyên, tháng năm 2021  ~1~ CHƯƠNG 1: CƠ SỞ LÍ 1.1 Tổng quan trí tuệ n 1.1.1 Trí tuệ nhân tạo gì? 1.1.2 Vai trò trí tuệ nhân tạo ngành cơng nghệ thơng tin 1.1.3 Giải vấn đề biểu diễn tri thức 1.1.4 Các chiến lược tìm kiếm mù 1.2 Ngơn ngữ lập trình C 1.2.1 1.2.2 Lịch sử C# 1.2.3 Điểm mạnh C# 1.2.4 Xếp hạng C# CHƯƠNG 2: ÁP DỤNG TÌM KIẾM MÙ VÀO BÀI HỌC THỰC TẾ 2.1 Giới thiệu toán 2.2 Tư tưởng thuật toán 2.3 Xây dựng chương trìn 2.3.1 2.3.2 Tạo form hướng dẫn sử dụng 2.3.3 CHƯƠNG 4: KẾT LUẬN TÀI LIỆU THAM KHẢO ~2 ~ MỞ ĐẦU Những tiến cơng nghệ Trí tuệ nhân tạo mở thị trường hội cho tiến lĩnh vực quan y tế, giáo dục, lượng mơi trường Trong năm gần đây, máy móc vượt qua người việc thực số nhiệm vụ cụ thể đó, chẳng hạn số khía cạnh nhận dạng hình ảnh Các chuyên gia dự báo tiếp tục có tiến nhanh chóng lĩnh vực trí tuej nhân tạo chun ngành Mặc dù khơng máy móc thể trí tuệ ứng dụng rộng rãi tương đương vượt người vòng 20 năm tới, kỳ vọng đạt vượt hiệu suất người ngày nhiều nhiệm vụ Để góp phần chuẩn bị tương lai, Trí tuệ nhân tạo đóng vai trị ngày cao, nghiên cứu tiến hành khảo sát trạng Trí tuệ nhân tạo, ứng dụng tiềm nó, vấn đề nảy sinh xã hội sách cơng tiến Trí tuệ nhân tạo, đồng thời đưa khuyến cáo cho hành động cụ thể quan phủ chủ thể Trí tuệ nhân tạo trở thành môn học với mục đích cung cấp lời giải cho vấn đề sống thực tế Ngày nay, ứng dụng trí tuệ nhân tạo đa dạng phong phú, áp dụng cho nhiều lĩnh vực điều khiển tự động, loại robot, hệ dịch tự động cho ngôn ngữ tự nhiên, hệ nhận dạng, trò chơi điện tử,… ~3 ~ CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 1.1 Tổng quan trí tuệ nhân tạo 1.1.1 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 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 ~4 ~ 1.1.2 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 ~5 ~ 1.1.3 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ác~6câ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ữ) ~ 7~ 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 q 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 1.1.4 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 1.1.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 1.1.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 ln 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 toà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 1.1.4.3 Các trạng thái lặp Trong đồ thị biểu diễn không gian~ 9trạ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 1.1.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 ~10~ 1.2 Ngơn ngữ lập trình C# 1.2.1 C# ? C# ngơn ngữ lập trình đại phát triển Microsoft phê duyệt European Computer Manufacturers Association (ECMA) 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) môi trường thực thi (Runtime Environment) cho phép sử dụng ngôn ngữ cấp cao khác đa tảng máy tính kiến trúc khác C# (đọc “C thăng” hay “C sharp”) ngơn ngữ lập trình hướng đối tượng phát triển Microsoft, phần khởi đầu cho kế hoạch NET họ Tên ngôn ngữ bao gồm ký tự thăng theo Microsoft theo ECMA C#, bao gồm dấu số thường Microsoft phát triển C# dựa C++ Java C# miêu tả ngơn ngữ có cân C++, Visual Basic, Delphi 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 tượng khác chẳng hạn class, delegate, interface, exception phản ánh rõ ràng đặc trưng ~11~ 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# tiêu Có thêm Properties, phương pháp gọi Properties để truy cập liệu 1.2.2 Lịch sử C# Lịch sử phát triển C# đặc điểm phiên mơ tả bảng sau: Phiên C# 1.0 C# 2.0 C# 3.0 C# 4.0 C# 5.0 1.2.3 Đ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í 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 ~ 13 ~ 1.2.4 Xếp hạng C# Hiện ngôn ngữ C# xếp hạng thứ Top 10 ngơn ngữ lập trình phổ biến giới sử dụng ~14~ CHƯƠNG 2: ÁP DỤNG TÌM KIẾM MÙ VÀO BÀI HỌC THỰC TẾ 2.1 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) ~21~ CHƯƠNG 3: DEMO 3.1 Chạy chương trình 3.2 Hướng dẫn sử dụng ~22~ CHƯƠNG 4: KẾT LUẬN Những nội dung làm được: 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 lược tìm kiếm trí tuệ nhân tạo b Thực hành: hồn thành code xây dựng toá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 hồ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: a Trong trình xây dựng chương trình, biểu diễn tri thức vấn đề khó khăn b Ban đầu, bước tìm kiếm chưa tối ưu Đánh giá: Giao diện chương trình cị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 đồn kết việc xây dựng tốn Phân cơng cơng việc rõ ràng để tìm kiếm thơng tin đóng góp ý kiến để hồn thiện tập lớn ~ 23 ~ ... KIẾM MÙ VÀO BÀI HỌC THỰC TẾ 2.1 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... X đầy bình Y hết nước) Bài tốn cần có điều kiện số nước cần đong bội số ước số chung lớn thể tích hai bình z = n x ƯCLN(VX, VY) (với n nguyên dương) ~15~ 2.3 Xây dựng chương trình 2.3.1 Tạo form... ~16~ 2.3.3 Viết chương trình 2.3.3.1 Khai báo biến cần thiết 2.3.3.2 Tìm ước chung lớn ~17~ 2.3.3.3 Chức đổ đầy nước vào bình 1(->Vx) 2.3.3.4 Chức đổ bình 1(Vx->) ~18~ 2.3.3.5 Chức đổ đầy nước vào

Ngày đăng: 01/12/2022, 09:35

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

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

Tài liệu liên quan