xây dựng phần mềm ứng dụng giải bài toán leo đồi và tìm kiếm tốt nhất đầu tiên

15 12 0
 xây dựng phần mềm ứng dụng giải bài toán leo đồi và tìm kiếm tốt nhất đầu tiên

Đ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 TÀI NGUYÊN VÀ MÔI TRƢỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN KỲ THI KẾT THÚC HỌC PHẦN HỌC KÌ ……… NĂM HỌC 2020-2021 Tên đề tài: Xây dựng phần mềm ứng dụng giải tốn leo đồi tìm kiếm tốt Giảng viên hƣớng dẫn : Nguyễn Đức Toàn Sinh viên thực : Mã sinh viên : Lớp : ĐH7C4 Tên học phần : Trí Tuệ Nhân Tạo Khóa học : 2017 - 2021 Hà Nội - 2021 MỤC LỤC LỜI MỞ ĐẦU 1 Lý chọn đề tài Đối tượng phạm vi nghiên cứu đề tài Nội dung CHƢƠNG 1.TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO 1.1 Khái niệm AI 1.2 Ứng dụng AI 1.3 Machine Learning CHƢƠNG MƠ TẢ THUẬT TỐN 2.1 Thuật toán Best First Search 2.1.1 Kỹ thuật tìm kiếm tốt 2.1.2 Hàm đánh giá 2.1.3 Ưu nhược điểm phương pháp tìm kiếm tốt 2.2 Thuật tốn tìm kiếm Hill Climbing 2.2.1 Giới thiệu giải thuật Hill Climbing 2.2.2 Nguồn gốc giải thuật Hill climbing 2.2.3 Mô tả thuật toán – Mã giả 2.2.4 Kỹ thuật tìm kiếm leo đồi 11 2.2.5 Các vấn đề hạn chế thuật toán 12 2.2.6 Nhận xét giải thuật 13 CHƢƠNG 3.DEMO SẢN PHẨM 14 Tài Liệu Tham Khảo 15 i LỜI MỞ ĐẦU Lý chọn đề tài Trong khoa học máy tính, giải thuật Hill Climbing kỹ thuật tối ưu toán học thuộc họ tìm kiếm cục Nó thực tìm trạng thái tốt trạng thái để mở rộng Để biết trạng thái lớn hơn, dùng hàm H để xác định trạng thái tốt Hill Climbing dễ dàng tìm thấy giải pháp tốt cục (local optimum) khó tìm thấy giải pháp tốt (global optinum) tất giải pháp đưa (search space) Hill Climbing phù hợp để giải tốn “convex” (dịch tạm: lồi) tìm kiếm đơn giản (simplex programming) lập trình tuyến tính, tìm kiếm nhị phân Tính đơn giản giải thuật khiến trở thành lựa chọn số giải thuật tối ưu Qua đó, chúng em áp dụng giải thuật tìm kiếm leo đồi để giải tốn, tốn quen thuộc với người lập trình, chúng em đưa chế thuật toán, ưu nhược điểm độ phức tạp thuật Đối tƣợng phạm vi nghiên cứu đề tài 2.1 Đối tượng nghiên cứu: Đề tài tập trung nghiên cứu phương pháp giải tốn tìm kiếm leo đồi 2.2 Phạm vi nghiên cứu: sinh viên khoa Công Nghệ Thông Tin học tập tạị trường Đại Học Tài Nguyên Và Môi Trường Hà Nội Nội dung: - Tìm hiểu khái quát phát triển Trí Tuệ Nhân Tạo - Tìm hiểu thuật leo đồi để ứng dụng vào xây dựng phần mềm - Phân tích thiết kế hệ thống Xây dựng hệ sở liệu cho đề tài CHƢƠNG 1: TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO Trong năm gần đây, cụm từ “AI” hay “Trí tuệ nhân tạo”… dường phổ biến sống Vậy AI gì? AI có ý nghĩa nào? Tầm ảnh hưởng đến sống tại? 1.1 Khái niệm AI AI - Artificial Intelligence hay cịn gọi Trí tuệ nhân tạo ngành khoa học, kỹ thuật chế tạo máy móc thơng minh, đặc biệt chương trình máy tính thơng minh AI thực cách nghiên cứu cách suy nghĩ người, cách người học hỏi, định làm việc giải vấn đề Sử dụng kết nghiên cứu tảng để phát triển phần mềm hệ thống thơng minh, từ áp dụng vào mục đích khác sống Nói cách dễ hiểu AI việc sử dụng, phân tích liệu đầu vào nhằm đưa dự đoán đến định cuối Tóm lại: Trí tuệ nhân tạo trí tuệ máy móc tạo người Trí tuệ tư duy, suy nghĩ, học hỏi,… người Xử lý liệu mức độ rộng hơn, quy mô hơn, hệ thống khoa học nhanh so với người AI có ba mức độ khác nhau: Narrow AI: Trí tuệ nhân tạo cho hẹp máy thực nhiệm vụ cụ thể tốt so với người Nghiên cứu AI cấp độ General AI: Trí tuệ nhân tạo đạt đến trạng thái chung thực nhiệm vụ sử dụng trí tuệ có độ xác người Strong AI: AI mạnh đánh bại người nhiều nhiệm vụ cụ thể 1.2 Ứng dụng AI 1.2.1 Ý nghĩa AI: – Tạo hệ thống chuyên gia - ứng dụng máy tính phát triển để giải vấn đề phức tạp lĩnh vực cụ thể, mức độ thông minh chuyên môn người – Thực trí thơng minh người máy móc - Tạo hệ thống hiểu, suy nghĩ, học hỏi hành xử người 1.2.2 Ứng dụng AI lĩnh vực sống AI ngành khoa học công nghệ dựa nhiều ngành khác Khoa học máy tính, Tốn học, Sinh học, Kỹ thuật… Hình 1.1 Một số lĩnh vực AI Ví dụ ứng dụng lĩnh vực y tế: – Quản trị: Các hệ thống AI trợ giúp công việc hành hàng ngày, để giảm thiểu lỗi người tối đa hóa hiệu – Điều trị từ xa: Đối với tình khơng khẩn cấp, bệnh nhân liên hệ với hệ thống AI bệnh viện để phân tích triệu chứng, nhập dấu hiệu quan trọng họ đánh giá xem có cần phải chăm sóc y tế hay khơng Điều làm giảm khối lượng công việc chuyên gia y tế cách đưa trường hợp quan trọng đến họ – Hỗ trợ chuẩn đốn: Thơng qua thị giác máy tính mạng lưới thần kinh tích chập, AI có khả đọc qt hình ảnh cộng hưởng từ để kiểm tra khối u phát triển ác tính khác nó, với tốc độ nhanh so với bác sĩ x-quang sai số thấp – Phẫu thuật có trợ giúp robot: Robot phẫu thuật có sai số nhỏ thực phẫu thuật suốt ngày đêm mà không bị kiệt sức – Giám sát số quan trọng Ngồi cịn nhiều ứng dụng lĩnh vực khác đời sống nhận diện khn mặt, nhận diện giọng nói, tơ tự lái… 1.3 Machine Learning Hình 1.2 Machine Learning 1.3.1 Khái niệm Machine Learning Machine Learning gọi học máy, viết ứng dụng có AI mà không sử dụng học máy, phải viết triệu triệu dòng code để xây dựng trường hợp xảy Học máy cách để có AI, máy tự học mà không cần phải code nhiều khơng có học máy Nói cách khác, AI mục tiêu học máy phương tiện để đạt mục tiêu Máy “học” cách train với lượng liệu khổng lồ thuật tốn, thuật tốn có khả điều chỉnh xây dựng model Tuy nhiên, training liệu có ngơn ngữ khác thực tế (tiếng Việt thay tiếng Anh…) máy dự báo khơng xác Về bản, AI hay trí thơng minh nhân tạo cơng nghệ mơ q trình suy nghĩ học tập người cho máy móc, đặc biệt hệ thống máy tính Cịn Machine Learning tập AI, lĩnh vực nhỏ khoa học máy tính, có khả tự học hỏi dựa liệu đưa vào mà không cần phải lập trình cụ thể 1.3.2 Phân nhóm thuật tốn Machine Learning Có hai cách phổ biến phân nhóm thuật toán Machine Learning: dựa phương thức học (learning style) dựa chức (function) Theo phương thức học, thuật toán Machine Learning thường chia làm nhóm: Supervised learning (Học có giám sát) Là thuật toán dự đoán đầu (outcome) liệu (new input) dựa cặp ( input, outcome ) biết từ trước, gọi cặp (data, label) - (dữ liệu - nhãn), tập training data (dữ liệu huấn luyện), từ tạo hàm số ánh xạ xấp xỉ thật tốt để tính đầu Supervised learning chia nhỏ thành loại chính: Classification (Phân loại) ( label input data chia thành số hữu hạn nhóm) Regression (Hồi quy) ( label khơng chia thành nhóm mà giá trị thực cụ thể) Unsupervised learning (Học không giám sát) Trong thuật tốn này, khơng biết outcome hay nhãn mà có liệu đầu vào, dựa vào cấu trúc liệu để phân nhóm (clustering) phân nhóm tồn liệu thành nhóm nhỏ dựa liên quan liệu nhóm, giảm số chiều liệu (dimension reduction) để thuận tiện việc lưu trữ tính tốn khám phá quy luật dựa nhiều liệu cho trước Semi-supervised lerning (Học bán giám sát) Là thuật toán mà phần liệu gán nhãn nằm hai nhóm nêu bên Rất nhiều toán Machine Learning thuộc vào nhóm việc thu thập liệu có nhãn tốn nhiều thời gian có chi phí cao Reinforcement learning (Học củng cố) Là toán giúp cho hệ thống tự động xác định hành vi dựa hồn cảnh để đạt lợi ích cao Nó chủ yếu áp dụng vàoGame Theory, thuật toán cần xác định nước để đạt điểm số cao 1.3.3 Phân loại Marchine Learning Theo chức năng, Machine Learning chia thành loại:  Regression Algorithms (Thuật toán hồi quy)  Classification Algorithms (Thuật toán phân loại)  Instance-based Algorithms (Thuật toán dựa sơ đồ)  Regularization Algorithms (Thuật tốn quy)  Bayesian Algorithms (Thuật toán Bayes)  Clustering Algorithms (Thuật toán phân cụm)  Artificial Neural Network Algorithms (Thuật toán mạng nơ ron nhân tạo)  Dimensionality Reduction Algorithms (Thuật tốn giảm kích thước)  Ensemble Algorithms (Thuật tốn tập hợp) Thuật tốn Linear Regression (Hồi quy tuyến tính) Một thuật toán Machine Learning có tên Linear Regression (Hồi quy tuyến tính), thuật tốn Supervised Learning Ví dụ: Ta xét số đo nhà: rộng mét vuông, có phịng ngủ cách trung tâm thành phố km, xét có giá bao nhiêu? (Giả sử có số liệu thống kê từ 1000 nhà thành phố đó) hàm dự đốn có dạng nào? Ta thấy rằng:  Diện tích nhà lớn giá nhà cao  Số lượng phòng ngủ lớn giá nhà cao  Càng xa trung tâm giá nhà giảm Do hàm số mô tả mối quan hệ giá nhà đại lượng đầu vào là: Với giá trị thực, giá trị dự đoán, số, bias (kiểu hệ số tự do) Bài toán trở thành tìm hệ số tối ưu Với sai khác giá trị thực giá trị dự đoán , để thuận tiện cho việc tính tốn, ta xét: ̂ ̅ Với ̅ ̂ Và ̅ vector (hàng) liệu đầu vào mở rộng Số đầu thêm vào để phép tính đơn giản thuận tiện cho việc tính tốn.Điều muốn, tổng sai số nhỏ nhất, tương đương với việc tìm w để hàm số sau đạt giá trị nhỏ nhất: ∑ ̅ Sau biến đổi đại số, ta tìm w thỏa mãn yêu cầu là: ̅ ̅ ̅ Từ xây dựng code dự đoán giá tiền nhà dựa đặc điểm cho Ví dụ hồi quy truyển tính để dự đoán Ta xét bảng liệu đầu vào sau: Bảng 1.1 Dữ liệu đầu vào Chiều (cm) 147 150 153 155 158 160 163 165 cao Cân (kg) 49 50 51 52 54 56 58 59 nặng Chiều (cm) 168 170 173 175 178 180 183 cao Cân (kg) nặng 60 72 63 64 66 67 68 Bài tốn đặt là: Liệu dự đốn cân nặng người dựa vào chiều cao họ khơng? Trên thực tế khơng, ngồi chiều cao nhiều yếu tố khác ảnh hưởng đến cân nặng, nhiên để thuận tiện việc xét ví dụ đơn giản, ta giả sử cân nặng tỉ lệ thuận với chiều cao (người cao nặng) Do ta sử dụng Linear Regression cho việc dự đoán Để kiểm tra độ xác cân nặng tìm được, giữ lại cột 155 cm 160 cm để kiểm thử, cột lại sử dụng để huấn luyện (train) model Trước tiên, cần có hai thư viện numpy cho đại số tuyến tính matplotlib cho việc vẽ hình Tiếp theo, khai báo biểu diễn liệu đồ thị Hình 1.3 Đồ thị biểu diễn liệu Từ đồ thị ta thấy liệu xếp gần theo đường thẳng, mơ hình Linear Regression nhiều khả cho kết tốt: Tiếp theo, tính tốn hệ số Tìm và ̅ ̅ dựa vào công thức ̅ là: Ta vẽ đường đường thẳng dự đoán dựa trên: Hình 1.4 Mơ hình Linear Regression Từ đồ thị bên ta thấy điểm liệu màu đỏ nằm gần đường thẳng dự đốn màu xanh Vậy mơ hình Linear Regression hoạt động tốt với tập liệu training Bây giờ, sử dụng mơ hình để dự đốn cân nặng hai người có chiều cao 155 160 cm mà không dùng tính tốn nghiệm Kết là: Chúng ta thấy kết dự đoán gần với số liệu thực tế Tuy nhiên thuật toán Linear Regression thuật toán Machine Learning, nên có mặt hạn chế định nhạy cảm với nhiễu (sensitive to noise) Trong ví dụ mối quan hệ chiều cao cân nặng bên trên, có cặp liệu nhiễu (150 cm, 90kg) kết sai khác nhiều: Hình 1.5 Loại bỏ nhiễu Vì vậy, trước thực Linear Regression, nhiễu cần phải loại bỏ CHƢƠNG MƠ TẢ THUẬT TỐN 2.1 Thuật tốn Best First Search Tìm kiếm tốt - (best-first search) tìm kiếm theo bề rộng hướng dẫn hàm đánh giá Nhưng khác với tìm kiếm theo bề rộng chỗ, tìm kiếm theo bề rộng ta phát triển tất đỉnh mức để sinh đỉnh mức tiếp theo, cịn tìm kiếm tốt - ta chọn đỉnh để phát triển đỉnh tốt xác định hàm đánh giá (tức đỉnh có giá trị hàm đánh giá nhỏ nhất), đỉnh mức mức Hình 2.1 Khơng gian trạng thái biểu diễn đồ thị Ví dụ: Xét không gian trạng thái biểu diễn đồ thị hình 2.7 Trong trạng thái ban đầu A, trạng thái kết thúc B Giá trị hàm đánh giá số ghi cạnh đỉnh Quá trình tìm kiếm tốt - diễn sau: Đầu tiên phát triển đỉnh A sinh đỉnh kề C, D E Trong ba đỉnh này, đỉnh D có giá trị hàm đánh giá nhỏ nhất, chọn để phát triển sinh F, I Trong số đỉnh chưa phát triển C, E, F, I đỉnh E có giá trị đánh giá nhỏ nhất, chọn để phát triển sinh đỉnh G, K Trong số đỉnh chưa phát triển G tốt nhất, phát triển G sinh B, H Đến ta đạt tới trạng thái kết thúc Cây tìm kiếm tốt - biểu diễn hình 2.8 Hình 2.2 Cây tìm kiếm tốt - Sau thủ tục tìm kiếm tốt - Trong thủ tục này, sử dụng danh sách L để lưu trạng thái chờ phát triển, danh sách theo thứ tự tăng dần hàm 10 đánh giá cho trạng thái có giá trị hàm đánh giá nhỏ đầu danh sách Dữ liệu tương tự giải thuật tìm kiếm rơng sâu, sử dụng danh sách MO để lưu đỉnh xét Procedure BFS; {Best First Search} Begin Push(MO,n0); while MO null begin i := Pop(MO); if i  Goals then exit; for j  T(i) Push(MO,j); Sort(MO); {theo thứ tự hàm đánh giá} end; write(„Khong co loi giai‟); end; Ƣu điểm - Phương pháp tìm kiếm tốt tổ hợp ưu điểm phương pháp tìm kiếm rộng tìm kiếm sâu - Ưu điểm chủ yếu phương pháp tìm kiếm tốt dùng tri thức để dẫn dắt việc tìm kiếm Tri thức giúp người ta đâu tốt cách tốt để tiến hành tìm lời giải - Tìm kiếm tốt tuân theo cách suy lý chuyên gia Do thấy rõ đường tìm kiếm rộng tìm kiếm sâu Nhƣợc điểm - Quá trình tìm kiếm xa khỏi lời giải Kỹ thuật xét phần không gian coi phần hứa hẹn 11 CHƢƠNG DEMO SẢN PHẨM - Phần mềm yêu cầu người dùng nhập đầy đủ liệu gồm “Đỉnh” “Trọng Số” theo yêu cầu toán với điều kiện liệu nhập vào không trùng lặp - Nếu người dùng nhập sai liệu phần mềm hiển thị thông báo để người dùng kiểm tra nhập lại đủ liệu tốn để tiếp tục thực Chương trình giải thuật toán Sau nhập liệu “Đỉnh” “Trọng Số” đủ theo yêu cầu toán ta bắt đầu thực bước nối đỉnh với theo đề bài: Chọn đỉnh đầu cần nối vào phần “Đỉnh Bắt Đầu” 12 Tương tự chọn đỉnh kết thúc vào phần “Đỉnh Kết Thúc” Ví dụ: Cho ma trận kề biểu diễn đồ thị vơ hướng đây: Trong , ngược lại chi phí để từ đỉnh sang đỉnh a Hãy tìm đường từ đỉnh sang đỉnh theo phương pháp tìm kiếm rộng tìm kiếm sâu b Tìm đường ngắn từ đỉnh sang đỉnh Lời giải Vẽ đồ thị G đƣợc biểu diễn ma trận kề A Phƣơng pháp duyệt theo chiều rộng Đường từ đỉnh đến đỉnh theo phương pháp duyệt rộng là: 1 2 3 Phƣơng pháp duyệt theo chiều sâu 13 Đường từ đỉnh đến đỉnh theo phương pháp duyệt sâu là: 1 2 6 5 Áp dụng vào chương trình thực tế:  Đầu vào:  Trạng thái đầu A Trạng thái kết thúc Z - Sau nhập đầy đủ thông tin theo yêu cầu toán bấm chọn Step để yều cầu để phần mềm thực tốn sau phần mềm thơng báo thực tốn thành cơng trả kết 14 TÀI LIỆU THAM KHẢO Tiếng Việt Đinh Mạnh Tường, (2002), Giáo trình trí tuệ nhân tạo, Nhà xuất Khoa học kỹ thuật Từ Minh Phương, (2014), Giáo trình trí tuệ nhân tạo, Nhà xuất Khoa học kỹ thuật Nguyễn Thanh Thủy, (1999), Giáo trình Trí tuệ nhân tạo, Nhà xuất khoa học kỹ thuật Đỗ Trung Tuấn, (2010), Nhập mơn trí tuệ nhân tạo, Nhà xuất Đại học quốc gia Hà Nội Phạm Thọ Hoàn, Phạm Thị Anh Lê, (2011), Giáo trình Trí tuệ nhân tạo, NXBĐHSP Tiếng Anh D Koller, N Friedman,(2009), Probabilistic Graphical Models: Principles and Techniques, MIT Press S Russell, P Norvig., (2010), Artificial intelligence: a modern approach 3nd edition, Prentice Hall T M Jones., (2008), Artificial intelligence a system approach, Infinity science press 9.T Mitchell, (1997), Machine learning McGraw 15 ... giải thuật Hill climbing 2.2.3 Mơ tả thuật tốn – Mã giả 2.2.4 Kỹ thuật tìm kiếm leo đồi 11 2.2.5 Các vấn đề hạn chế thuật toán 12 2.2.6 Nhận xét giải thuật ... thuật khiến trở thành lựa chọn số giải thuật tối ưu Qua đó, chúng em áp dụng giải thuật tìm kiếm leo đồi để giải tốn, tốn quen thuộc với người lập trình, chúng em đưa chế thuật toán, ưu nhược điểm... cứu đề tài 2.1 Đối tượng nghiên cứu: Đề tài tập trung nghiên cứu phương pháp giải tốn tìm kiếm leo đồi 2.2 Phạm vi nghiên cứu: sinh viên khoa Công Nghệ Thông Tin học tập tạị trường Đại Học Tài

Ngày đăng: 12/12/2021, 17:35

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

Tài liệu liên quan