TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN NHẬP MÔN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI ÁP DỤNG THUÂT TOÁN NHÁNH CẬN VÀO BÀI TOÁN XẾP BA LÔ Sinh viên thực hiện LÊ VIỆT LÂM BÙI V[.]
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUN ĐỀ HỌC PHẦN NHẬP MƠN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: ÁP DỤNG THUÂT TOÁN NHÁNH CẬN VÀO BÀI TỐN XẾP BA LƠ Sinh viên thực : LÊ VIỆT LÂM BÙI VŨ HỒNG NGUYỄN ĐÌNH HIỆU Giảng viên hướng dẫn : NGÔ TRƯỜNG GIANG Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D13CNPM4 Khóa : 2018-2023 Hà Nội, tháng 10 năm 2020 Sinh viên thực hiện: Họ tên PHIẾU CHẤM ĐIỂM Chữ ký Ghi Lê Việt Lâm Bùi Vũ Hồng Nguyễn Đình Hiệu Giảng viên chấm: Họ tên Chữ ký Ghi Giảng viên chấm : Giảng viên chấm : Mục Lục Danh Mục Hình Ảnh Chương : 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 .6 1.1.2 Ứng dụng trí tuệ nhân tạo 1.1.3 Phân loại trí tuệ nhân tạo AI .7 1.1.4 Một số ứng dụng AI điển hình 10 1.1.5 Hạn Chế AI 11 1.2 Thuật toán Nhánh Cận .12 1.2.1 Mơ hình kĩ thuật nhánh cận 12 Chương 2: Áp dụng thuật toán nhánh cận giải tốn xếp ba lơ .14 2.1 Mơ tả tốn 14 2.1.1 Định nghĩa 14 2.1.2 Các tốn xếp ba lơ thường gặp 14 2.1.3 Độ phức tạp 15 2.2 Mơ hình hóa toán 17 2.3 Các bước giải toán 18 2.3.1 Giải toán thuật toán nhánh cận 18 2.3.2 Xây dựng hàm 20 2.4 Kết Quả Thực Nghiệm 24 2.4.1.Giao diện ban đầu 24 2.4.2 Kết .24 KẾT LUẬN .25 Tài Liệu Tham Khảo 26 Danh Mục Hình Ảnh Hình 1.1 AI - Trí tuệ nhân tạo gì, ứng dụng……………………… ……6 Hình 1.2 Một số ví dụ cơng nghệ trí tuệ nhân tạo………………………………8 Hình 1.3 cảnh phim "I, Robot" nói AI tiến hóa, sau dồn người vào cảnh "nô lệ" với danh nghĩa bảo vệ người………………… 11 Hình 2.1: Ví dụ……………………………………………………………………17 Hình 2.2: Sơ đồ giải thuật……………………………………………….……… 19 Hình 2.3:Giao diện chương trình…………………………………………………24 Hình 2.4 : Kết đạt được……………………………………………………….24 LỜI MỞ ĐẦU Ngày nay, bước vào kỷ 21, kỷ nguyên c Công ngh ệ thông tin, đặc biệt trí tuệ nhân yếu tố quan trọng nh ất quy ết đ ịnh s ự thành công ngành hay quốc gia Trí tuệ nhân t ạo làm thay đổi sống chúng ta, với phát triển mạnh mẽ việc áp d ụng nghiên cứu trí tuệ nhân tạo áp dụng cho sống Tất c ả ngành như: Quân đội, y tế, giáo dục, kinh tế thương mại, tài chính,… Đều có th ể áp dụng trí tuệ nhân cách rộng rãi, Việc áp dụng trí tuệ nhân t ạo đ ể gi ải vấn đề xã hội việc phát triển kinh tế đ ược nhà n ước khuyến khích đầu tư lớn Trên giới Việt Nam, CNTT có ảnh hưởng mạnh mẽ đến phát triển đất nước giới đặc biệt trí tu ệ nhân t ạo Nó chở thành yếu tố khơng thể thiếu có tính định đến thành công hay thất bại nhiều ngành nước ta, CNTT phát triển với t ốc độ mạnh mẽ ứng dụng rộng rãi tất lĩnh v ực, đ ặc biệt công tác ứng dụng công nghệ vào sống Như biết, sức mạnh kinh t ế ph ụ thuộc lớn vào hoạt động nước doanh nghiệp, s ự thành cơng kinh doanh doanh nghiệp mục tiêu riêng doanh nghiệp, mà cịn nhân tố định vị đất nước tr ường quốc tế Việc đưa AI vào áp dụng cho doanh nghiệp ngành nh y tế, công nghiệp nặng ưu tiên phát triển mạnh mẽ Tại Việt Nam, Nhà nước vào phát triển dịch vụ, đầu t mạnh mẽ vào trí tuệ nhân tạo hay cịn gọi AI Vì thế, việc đầu phát triển xu hot ưu chuộng Chính thơng qua việc học mơn trí tu ệ nhân tạo (AI) nhóm em nghĩ ý tưởng nhỏ “áp dụng thuật toán nhánh c ận vào toán balo” CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 1.1Tổng quan trí tuệ nhân tạo 1.1.1 Trí tuệ nhân tạo (AI: Artificial Intelligence) định nghĩa ngành c khoa học máy tính liên quan đến việc tự động hóa hành vi thơng minh AI phận khoa học máy tính ph ải đ ặt nguyên lý lý thuyết vững chắc, có khả ứng d ụng đ ược c lĩnh vực AI, trí tuệ nhân tạo mơ q trình ho ạt động trí tu ệ c người, bao gồm q trình học tập (thu thập thơng tin quy t ắc đ ể sử dụng thông tin), lập luận (sử dụng quy tắc để đạt k ết luận g ần đúng), tự sửa lỗi 1.1.2 Ứng dụng trí tuệ nhân tạo Một số ứng dụng sử dụng trí tuệ nhân tạo AI bao gồm hệ chuyên gia (expert system), ứng dụng nhận diện giọng nói ứng dụng machine vision Hình 1.1 AI - Trí tuệ nhân tạo gì, ứng dụng Trí tuệ nhân tạo, AI đặt tên nhà khoa học máy tính người Mỹ, John McCarthy vào năm 1956 Hội nghị Dartmouth Ngày thuật ng ữ AI bổ sung thêm tự động hóa quy trình Robot Robot thực tế Thời gian gần lên thuật ngữ có tên Big Data hay gia tăng tốc độ, kích thước thu thập liệu doanh nghiệp đa d ạng AI có th ể thực tác vụ xác định mẫu liệu hiệu qu ả h ơn người, cho phép doanh nghiệp hiểu rõ liệu 1.1.3 Phân loại trí tuệ nhân tạo AI Trí tuệ nhân tạo phân loại theo nhiều cách khác nhau, ví dụ điển hình phân loại trí tuệ nhân tạo Đầu tiên phân loại trí tuệ nhân tạo AI theo hệ thống bao g ồm trí tu ệ nhân tạo mạnh yếu Trí tuệ nhân tạo yếu hay gọi Narrow AI, hệ thống trí tuệ nhân tạo thiết kế đào t ạo cho tác v ụ c ụ thể Các trợ lý ảo chẳng hạn Siri Apple dạng trí tuệ nhân t ạo yếu Trí tuệ nhân tạo mạnh cịn gọi Artificial General Intelligence hay trí tuệ nhân tạo tổng hợp, hệ thống AI trang b ị kh ả nh ận thức tổng quát người để thực tác vụ không quen thu ộc, đủ thơng minh để tìm giải pháp Phép th Turing đ ược phát tri ển nhà toán học Alan Turing vào năm 1950 phương pháp s dụng để xác thực xem máy tính có suy nghĩ giống ng ười hay không, phương pháp gây nhiều tranh cãi Ví dụ thứ từ Arend Hintze, trợ lý giáo sư sinh học hợp nh ất khoa học máy tính kỹ thuật Đại học bang Michigan Ơng phân lo ại trí tuệ nhân tạo AI thành loại, từ loại hệ thống AI đến h ệ th ống cảm giác, mà chưa tồn Loại 1: Máy phản ứng Một ví dụ điển hình Deep Blue, chương trình cờ vua IBM đánh bại Garry Kasparov vào năm 1990 Deep Blue xác định phần bảng cờ vua dự đốn, khơng có b ộ nhớ khơng thể sử dụng kinh nghiêm kh ứ đ ể thông báo cho người tương lai Nó phân tích động thái c đối thủ, chọn động thái chiến lược Deep Blue AlphaGO c Google thiết kế cho mục đích hẹp khơng thể dễ dàng áp d ụng cho tình khác Loại 2: Bộ nhớ hạn chế Các hệ thống AI sử dụng kinh nghiệm khứ để đưa định tương lai Một số chức định loại xe tự lái thiết k ế d ựa cách Các quan sát sử dụng để thông báo cho hành đ ộng x ảy tương lai không xa, chẳng hạn xe thay đổi đ ường Những quan sát không lưu trữ vĩnh viễn Loại 3: Lý thuyết. Đây thuật ngữ tâm lý Thuật ngữ đề cập đến việc hiểu người có niềm tin, ham muốn ý đ ịnh c họ ảnh hưởng đến định họ Tuy nhiên lo ại AI ch ưa t ồn Loại 4: Tự nhận thức. Với phân loại này, hệ thống AI có ý thức thân Các máy có ý thức tự giác hiểu trạng thái t ại chúng sử dụng thơng tin để suy người khác cảm nhận Loại AI chưa tồn Hình 1.2 Một số ví dụ cơng nghệ trí tuệ nhân tạo - Tự động hóa q trình tạo hệ thống chức x lý t ự đ ộng Ví dụ tự động hóa quy trình Robot để thực tác vụ khối lượng lớn mà người thường xuyên lặp lại Tự động hóa quy trình b ằng Robot khác với tự động hóa cơng nghệ thơng tin ch ỗ thích nghi v ới hồn cảnh thay đổi khác - Machine Learning khoa học để máy tính thực hành động mà khơng cần lập trình Deep Learning tập hợp Machine Learning, v ới thuật ngữ đơn giản, coi tự động hóa c phân tích tiên đốn Có thuật tốn Machine Learning, bao gồm: Supervised Learning (học có giám sát), tập hợp liệu gắn nhãn cho m ẫu phát sử dụng để gắn nhãn tập liệu Ti ếp theo là Unsupervised Learning (học khơng có giám sát), tập hợp liệu không dán nhãn xếp theo phân lo ại tương đ ồng khác biệt Và cuối là Reinforcement Learning (học tăng cường), tập hợp liệu không dán nhãn, sau thực hành động số hành động, hệ thống AI phản hồi - Machine Vision (hệ thống nhận dạng điều khiển d ựa hình ảnh) khoa học làm cho máy tính nhìn thấy Machine Vision thu th ập phân tích thị giác thơng tin cách sử dụng camera, chuyển đ ổi t kỹ thuật số xử lý tín hiệu số Nó thường so sánh với thị giác người, machine vision khơng bị ràng buộc sinh h ọc có th ể lập trình để xem qua tường Ví dụ điển hình machine vision đ ược sử dụng loạt ứng dụng từ nhận dạng chữ ký để phân tích hình ảnh y tế Machine Vision, tập trung xử lý hình ảnh dựa máy - Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) q trình x lý ngơn ngữ máy tính người khơng phải máy tính Một ví dụ tiếng phải kể đến phát thư rác, xem dòng chủ đ ề văn email định xem có phải thư rác hay khơng NLP xử lý tác vụ bao gồm dịch văn bản, phân tích tình c ảm nh ận d ạng giọng nói - Nhận dạng mẫu (Pattern recognition) phần Machine Learning, tập trung vào việc xác định mẫu liệu -Robotics lĩnh vực kỹ thuật tập trung vào việc thiết kế sản xuất robot Robot thường sử dụng để thực tác vụ khó khăn cho người, sử dụng dây chuyền lắp ráp để sản xu ất ô tô ho ặc NASA vận chuyển vật thể to lớn không gian Gần h ơn, nhà nghiên cứu sử dụng machine learning để xây dựng robot có th ể tương tác môi trường xã hội 10 Mô hình kĩ thuật nhánh cận sau: Procedure Branch(i); begin i>; if (việc thử cịn hi vọng tìm cấu hình tốt hơn) then if (xi là phần tử cuối cấu hình) then else begin < ghi nhận giá trị J cho xi >; Branch(i+1); i>; end; end; Như việc bỏ thao tác thừa mơ hình việc thêm vào dịng lệnh if (việc thử cịn hi vọng tìm cấu hình tốt hơn) then Điều có nghĩa bước giá trị thử cho xi không cịn hi vọng tìm cấu hình tốt thử giá trị khác mà không cần g ọi đệ quy ti ếp theo hay ghi nhận cấu hình nghiệm toán làm t ốt d ần bước sau tối ưu bước cấu hình cuối c ấu hình tối ưu 15 CHƯƠNG 2: ÁP DỤNG THUẬT TOÁN NHÁNH CẦN VÀO GIẢI QUYẾT BÀI TOÁN XẾP BALO 2.1 Mơ tả tốn Bài tốn ba lơ là vấn đề trong tối ưu hóa tổ hợp : Cho tập hợp mục, mục có trọng lượng giá trị, xác đ ịnh s ố l ượng mục để đưa vào sưu tập cho tổng trọng lượng nh ỏ h ơn giới hạn định tổng giá trị lớn t ốt Tên gọi bắt nguồn từ vấn đề mà phải đối mặt ng ười b ị bó bu ộc b ởi một chiếc túi có kích thước cố định và phải lấp đầy với đồ có giá trị nhất. Vấn đề thường nảy sinh trong việc phân bổ nguồn lực trong đó người định phải chọn từ tập hợp dự án nhi ệm vụ phân chia tương ứng với ngân sách cố đ ịnh ho ặc h ạn ch ế thời gian Bài tốn ba lơ nghiên cứu m ột kỷ, với cơng trình có niên đại từ năm 1897 Tên gọi "bài tốn ba lơ" có từ cơng trình nhà tốn học Tobias Dantzig (1884– 1956), và đề cập đến vấn đề phổ biến đóng gói vật dụng có giá tr ị hữu ích mà không làm tải hành lý 2.1.1 Định nghĩa Dạng bài toán định của toán xếp ba lơ câu hỏi "có thể đạt giá trị theo phát biểu tốn" Ta có n loại đồ vật, x1 tới xn Mỗi đồ vật x i có giá trị pi và khối lượng wj Khối lượng tối đa mà ta mang ba lơ là C 2.1.2 Các tốn xếp ba lơ thường gặp Bài xếp ba lô dạng 0-1: Hạn chế số đồ vật thuộc loại (không chọn) (được chọn) Bài xếp ba lơ 0-1 phát biểu toán học sau: n n i=1 i=1 Cực đại hóa ∑ pi x i tùy thuộc vào ∑ pi x i ≤ W x i ∈ {0,1,2,3 , … , c } Bài xếp ba lô bị chặn : hạn chế số đồ vật khơng vượt q lượng Bài xếp ba lơ bị chặn phát biểu toán học nh 16 sau: n n i=1 i=1 Cực đại hóa ∑ pi x i cho ∑ pi x i ≤ c x i=0 ho ặ c 1,j=1,2,…,n Bài xếp ba lô không bị chặn : Khơng có hạn chế số lượng đồ vật Trường hợp đặc biệt Bài toán với tính chất: tốn định toán 0/1 với đồ vật, chi phí giá trị: C = V Lưu ý trường hợp đặc biệt này, toán tương đương với: Cho tập số nguyên, tồn hay không tập có t bằng C? Hoặc đồ vật phép có chi phí âm C được chọn 0, tốn có dạng: Cho trước tập số nguyên, tồn hay không t ập có t bằng 0? Trường hợp đặc biệt gọi toán tổng tập con(subset sum problem) Với số lý do, ngành mật mã học, người ta thường dùng cụm từ "bài toán xếp ba lơ" thực có ý nói "bài tốn tổng con" Bài tốn xếp ba lơ thường giải bằng quy hoạch động, chưa có một thuật tốn thời gian đa thức cho toán tổng quát Cả xếp ba lơ tổng qt tốn tổng NP-khó, điều dẫn đến cố gắng sử dụng tổng làm sở cho hệ thống mật mã hóa khóa cơng khai, chẳng hạn Merkle-Hellman Các cố gắng thường dùng nhóm thay số nguyên Merkle-Hellman số thuật toán tương tự khác bị phá, toán tổng cụ thể mà họ tạo th ực lại giải thuật toán thời gian đa thức 2.1.3 Độ phức tạp Bài toán knapsack thú vị từ góc độ khoa học máy tính nhiều lý do: 17 Dạng bài tốn định tốn ba lơ ( Có thể đạt được giá trị là V mà khơng vượt q trọng số W khơng? ) Là NP-đầy đủ , khơng có thuật tốn biết vừa vừa nhanh (đa thức-thời gian) trường hợp Trong toán định hồn thành NP, tốn t ối ưu hóa khơng, việc giải khó nh tốn quy ết đ ịnh khơng có thuật tốn đa thức cho biết, đưa giải pháp, liệu có phải tối ưu hay khơng (nghĩa khơng có giải pháp có V lớn hơn , giải vấn đề định NP-đầy đủ) Có một thuật tốn thời gian giả đa thức sử dụng lập trình động Có một lược đồ xấp xỉ thời gian đa thức đầy đủ , sử dụng thuật toán thời gian đa thức giả làm chương trình con, mô tả bên Nhiều trường hợp phát sinh thực tế, "các trường hợp ngẫu nhiên" từ số phân phối, nhiên giải xác Có mối liên hệ vấn đề "quyết định" "t ối ưu hóa" ch ỗ tồn thuật toán đa thức giải vấn đề "quyết định" ng ười ta tìm giá trị lớn cho tốn tối ưu hóa th ời gian đa th ức cách áp dụng thuật toán lặp lặp lại tăng giá tr ị c k. Mặt khác, thuật tốn tìm giá trị tối ưu c toán t ối ưu thời gian đa thức, tốn định có th ể đ ược gi ải th ời gian đa thức cách so sánh giá trị kết giải thuật tốn với giá trị k. Do đó, hai phiên vấn đề có độ khó tương tự Một chủ đề tài liệu nghiên cứu xác định trường hợp "khó" vấn đề ba lơ trơng nào, hoặc nhìn theo cách khác, để xác định đặc tính trường hợp thực tế có th ể ến chúng dễ giải trường hợp xấu chúng Hành vi NP-hoàn toàn gợi ý. Mục tiêu việc tìm kiếm cá thể "cứng" đ ể sử dụng chúng trong các hệ thống mật mã khóa cơng khai , chẳng hạn hệ thống mật mã Merkle-Hellman knapsack Hơn nữa, đáng ý thực tế độ cứng tốn ba lơ ph ụ thuộc vào hình thức đầu vào. Nếu trọng số lợi nhuận cho dạng số ngun, là NP-đầy đủ yếu , là NP-đầy đủ mạnh nếu trọng số lợi nhuận cho dạng số hữu t ỉ Tuy nhiên, trường hợp trọng số hữu tỉ lợi nhuận, th ừa nhận lược đồ gần thời gian đa thức đầy đủ 18 19 2.2 Mô hình hóa tốn Ví dụ tốn xếp ba lô giới hạn chiều: chọn hộp để làm cực đại lượng tiền giữ tổng khối lượng 15 kg? Bài toán đa chiều xét đến khối lượng riêng kích thước hộp, là bài tốn xếp vali điển hình (packing problem) Hình 2.1: Ví dụ (Giải pháp: hộp có sẵn số lượng có ba h ộp màu vàng ba hộp màu xám; có hộp đ ược hi ển th ị có t ất c ả tr h ộp màu xanh lục.) InPut:Loại đồ vật, Số lượng đồ vật loại,hạn mức balo,cân nặng giá tr ị vật OutPut:Số lượng đồ vật loại chứa,Tổng giá trị c v ật đ ược chọn lớn , tổng cân nặng vật chọn 20 ... ứng dụng sử dụng trí tuệ nhân tạo AI bao gồm hệ chuyên gia (expert system), ứng dụng nhận diện giọng nói ứng dụng machine vision Hình 1.1 AI - Trí tuệ nhân tạo gì, ứng dụng Trí tuệ nhân tạo, ... loại trí tuệ nhân tạo AI Trí tuệ nhân tạo phân loại theo nhiều cách khác nhau, ví dụ điển hình phân loại trí tuệ nhân tạo Đầu tiên phân loại trí tuệ nhân tạo AI theo hệ thống bao g ồm trí tu ệ nhân. .. Tổng quan trí tuệ nhân tạo 1.1.1 Trí tuệ nhân tạo .6 1.1.2 Ứng dụng trí tuệ nhân tạo 1.1.3 Phân loại trí tuệ nhân tạo AI .7 1.1.4 Một số ứng dụng AI điển