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 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 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 củ a kĩ thuậ t nhá nh cậ n 12 Chương 2: Á p dụ ng thuậ t toá n nhá nh cậ n giả i bà i tố n xếp ba lơ .14 2.1 Mơ tả bà i tố n 14 2.1.1 Định nghĩa 14 2.1.2 Các bà i 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 bà i toá n 17 2.3 Cá c bướ c giả i bà i toá n 18 2.3.1 Giả i bà i toá n bằ ng thuậ t toá n nhá nh cậ n 18 2.3.2 Xâ y dự ng cá c 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ì, nhữ ng ứ ng dụ ng……………………… ……6 Hình 1.2 Mộ t số ví dụ ng nghệ trí tuệ nhâ n tạ o………………………………8 Hình 1.3 nh phim "I, Robot" i mộ t AI tiến hó a, sau dồ n ngườ i o 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, ng ta bướ c o kỷ 21, kỷ nguyên củ a Cô ng nghệ thô ng tin, đặ c biệt trí tuệ nhâ n yếu tố quan trọ ng nhấ t định nh cô ng củ a mỗ i ngà nh hay mỗ i quố c gia Trí tuệ nhâ n tạ o m thay đổ i cuộ c số ng củ a ng ta, vớ i phá t triển mạ nh mẽ củ a việc p dụ ng cá c nghiên u trí tuệ nhâ n tạ o p dụ ng cho cuộ c số ng Tấ t cá c ngà nh như: Quâ n độ i, y tế, giá o dụ c, kinh tế thương mạ i, tà i chính,… Đều p dụ ng trí tuệ nhâ n mộ t cá ch rộ ng rã i, Việc p dụ ng trí tuệ nhâ n tạ o để giả i cá c vấ n đề xã hộ i việc phá t triển kinh tế đượ c nhà nướ c khuyến khích đầ u tư rấ t lớ n Trên giớ i cũ ng Việt Nam, CNTT có ả nh hưở ng rấ t mạ nh mẽ đến phá t triển củ a đấ t nướ c giớ i đặ c biệt trí tuệ nhâ n tạ o Nó chở nh mộ t yếu tố khô ng thể thiếu có tính định đến nh cô ng hay thấ t bạ i củ a nhiều ngà nh nướ c ta, CNTT phá t triển vớ i tố c độ mạ nh mẽ đượ c ứ ng dụ ng rộ ng rã i tấ t cá c lĩnh vự c, đặ c biệt cô ng tá c ứ ng dụ ng cô ng nghệ o cuộ c số ng Như ng ta biết, sứ c mạ nh củ a mộ t kinh tế phụ thuộ c rấ t lớ n o cá c hoạ t độ ng nướ c củ a cá c doanh nghiệp, vậ y nh cô ng kinh doanh củ a doanh nghiệp khô ng nhữ ng mụ c tiêu củ a riêng doanh nghiệp, mà cị n nhâ n tố định vị củ a đấ t nướ c trườ ng quố c tế Việc đưa AI o p dụ ng cho cá c doanh nghiệp cá c ngà nh y tế, cô ng nghiệp nặ ng đượ c ưu tiên phá t triển mạ nh mẽ Tạ i Việt Nam, Nhà nướ c o phá t triển dịch vụ , đầ u tư mạ nh mẽ o trí tuệ nhâ n tạ o hay cị n gọ i AI Vì thế, việc đầ u phá t triển mộ t xu rấ t hot rấ t đượ c ưu chuộ ng nà y Chính vậ y thơ ng qua việc họ c mơ n trí tuệ nhâ n tạ o (AI) nhó m em nghĩ mộ t ý tưở ng nhỏ “á p dụ ng thuậ t toá n nhá nh cậ n o bà i 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) đượ c định nghĩa mộ t ngà nh củ a khoa họ c má y tính liên quan đến việc tự độ ng hó a cá c hà nh vi thô ng minh. AI mộ t phậ n củ a khoa họ c má y tính phả i đượ c đặ t nhữ ng nguyên lý lý thuyết vữ ng chắ c, có khả nă ng ứ ng dụ ng đượ c củ a lĩnh vự c nà y AI, trí tuệ nhâ n tạ o mơ phỏ ng q trình hoạ t độ ng trí tuệ củ a ngườ i, bao gồ m trình họ c tậ p (thu thậ p thô ng tin cá c quy tắ c để sử dụ ng thô ng tin), lậ p luậ n (sử dụ ng cá c quy tắ c để đạ t đượ c 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), cá c ứ ng dụ ng nhậ n diện giọ ng i cá c ứ ng dụ ng machine vision Hình 1.1 AI - Trí tuệ nhâ n tạ o gì, nhữ ng ứ ng dụ ng Trí tuệ nhâ n tạ o, AI đượ c đặ t tên bở i nhà khoa họ c má y tính ngườ i Mỹ, John McCarthy o nă m 1956 tạ i Hộ i nghị Dartmouth Ngà y thuậ t ngữ AI đượ c bổ sung thêm tự độ ng hó a quy trình bằ ng Robot Robot thự c tế Thờ i gian gầ n nổ i lên thuậ t ngữ mớ i có tên Big Data hay gia tă ng tố c độ , kích thướ c thu thậ p cá c liệu doanh nghiệp đa ng AI thự c cá c tá c vụ xá c định cá c mẫ u liệu hiệu ngườ i, cho phép cá c doanh nghiệp hiểu rõ liệu củ a 1.1.3 Phân loại trí tuệ nhân tạo AI Trí tuệ nhâ n tạ o đượ c phâ n loạ i theo nhiều cá ch c nhau, dướ i đâ y 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 hoặ c yếu Trí tuệ nhâ n tạ o yếu hay cị n đượ c gọ i Narrow AI, hệ thố ng trí tuệ nhâ n tạ o đượ c thiết kế đà o tạ o cho cá c tá c vụ cụ thể Cá c trợ lý ả o chẳ ng hạ n Siri củ a Apple mộ t ng trí tuệ nhâ n tạ o yếu Trí tuệ nhâ n tạ o mạ nh cò n đượ c gọ i Artificial General Intelligence hay trí tuệ nhâ n tạ o tổ ng hợ p, hệ thố ng AI đượ c trang bị khả nă ng nhậ n thứ c tổ ng t củ a ngườ i để thự c tá c vụ khô ng quen thuộ c, đủ thơ ng minh để tìm cá c giả i phá p Phép thử Turing đượ c phá t triển bở i nhà toá n họ c Alan Turing o nă m 1950 phương phá p đượ c sử dụ ng để xá c thự c xem mộ t má y tính có nhữ ng suy nghĩ giố ng ngườ i hay khô ng, mặ c dù phương phá p nà y gâ y nhiều tranh cã i Ví dụ thứ từ Arend Hintze, mộ t trợ lý giá o sư sinh họ c hợ p nhấ t khoa họ c má y tính kỹ thuậ t tạ i Đạ i họ c bang Michigan Ô ng phâ n loạ i trí tuệ nhâ n tạ o AI nh loạ i, từ loạ i hệ thố ng AI đến hệ thố ng m giá c, mà chưa tồ n tạ i Loại 1: Máy phản ứng Mộ t ví dụ điển hình Deep Blue, chương trình cờ vua củ a IBM đá nh bạ i Garry Kasparov o nhữ ng nă m 1990 Deep Blue xá c định cá c phầ n bả ng cờ vua dự đố n, khơ ng có nhớ khô ng thể sử dụ ng nhữ ng kinh nghiêm khứ để thô ng bá o cho ngườ i tương lai Nó phâ n tích cá c độ ng thá i củ a đố i thủ , chọ n mộ t độ ng thá i chiến lượ c nhấ t Deep Blue AlphaGO củ a Google đượ c thiết kế cho mụ c đích hẹp khơ ng thể dễ dà ng p dụ ng cho tình huố ng c Loại 2: Bộ nhớ hạn chế Cá c hệ thố ng AI nà y sử dụ ng cá c kinh nghiệm khứ để đưa cá c định tương lai Mộ t số c nă ng định loạ i xe tự i đượ c thiết kế dự a cá ch nà y Cá c quan sá t đượ c sử dụ ng để thô ng bá o cho cá c hà nh độ ng xả y tương lai khô ng xa, chẳ ng hạ n mộ t xe thay đổ i n đườ ng Nhữ ng quan sá t nà y khô ng đượ c lưu trữ vĩnh viễn Loại 3: Lý thuyết. Đâ y mộ t thuậ t ngữ tâ m lý Thuậ t ngữ nà y đề cậ p đến việc hiểu đượ c rằ ng ngườ i có niềm tin, ham muố n ý định củ a họ ả nh hưở ng đến định củ a họ Tuy nhiên loạ i AI nà y chưa tồ n tạ i Loại 4: Tự nhận thức. Vớ i phâ n loạ i nà y, hệ thố ng AI có ý thứ c bả n thâ n Cá c má y có ý thứ c tự giá c hiểu đượ c trạ ng thá i tạ i củ a ng sử dụ ng thô ng tin để suy nhữ ng ngườ i c m nhậ n Loạ i AI nà y vẫ n chưa tồ n tạ i Hình 1.2 Mộ t số ví dụ ng nghệ trí tuệ nhâ n tạ o - Tự độ ng hó a q trình tạ o hệ thố ng hoặ c c nă ng xử lý tự độ ng Ví dụ tự độ ng hó a quy trình bằ ng Robot để thự c cá 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 c vớ i tự độ ng hó a ng nghệ thơ ng tin chỗ thích nghi vớ i cá c hoà n nh thay đổ i c - Machine Learning khoa họ c để mộ t má y tính thự c hà nh độ ng mà khô ng cầ n lậ p trình Deep Learning tậ p hợ p củ a Machine Learning, vớ i cá c thuậ t ngữ đơn giả n, đượ c coi tự độ ng hó a củ a cá 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 đượ c gắ n nhã n cho cá c mẫ u đượ c phá t sử dụ ng để gắ n nhã n cá c tậ p liệu mớ i Tiếp theo Unsupervised Learning (họ c khơ ng có giá m sá t), tậ p hợ p liệu khơ ng đượ c dá n nhã n đượ c sắ p xếp theo phâ n loạ i tương đồ ng hoặ c c biệt Và cuố i cù ng Reinforcement Learning (họ c tă ng cườ ng), tậ p hợ p liệu khô ng đượ c dá n nhã n, sau thự c mộ t hà nh độ ng hoặ c mộ t số hà nh độ ng, hệ thố ng AI đượ c phả n hồ i - Machine Vision (hệ thố ng nhậ n ng điều khiển dự a hình ả nh) khoa họ c m cho má y tính nhìn thấ y đượ c Machine Vision thu thậ p phâ n tích thị giá c thô ng tin bằ ng cá ch sử dụ ng mộ t camera, chuyển đổ i từ kỹ thuậ t số xử lý tín hiệu số Nó thườ ng đượ c so sá nh vớ i thị giá c củ a ngườ i, machine vision khô ng bị rà ng buộ c bở i sinh họ c đượ c lậ p trình để xem qua cá c bứ c tườ ng Ví dụ điển hình machine vision đượ c sử dụ ng mộ t loạ t ứ ng dụ ng từ nhậ n 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) trình xử lý ngơ n ngữ má y tính củ a ngườ i khơ ng phả i má y tính Mộ t nhữ ng ví dụ nổ i tiếng nhấ t phả i kể đến phá t thư rá c, xem dò ng chủ đề vă n bả n củ a mộ t email định xem có phả i thư rá c hay khô ng NLP xử lý cá c tá c vụ bao gồ m dịch vă n bả n, phâ n tích tình m nhậ n ng giọ ng i - Nhậ n ng mẫ u (Pattern recognition) mộ t phầ n củ a Machine Learning, tậ p trung o việc xá c định cá c mẫ u liệu -Robotics mộ t lĩnh vự c kỹ thuậ t tậ p trung o việc thiết kế sả n xuấ t robot Robot thườ ng đượ c sử dụ ng để thự c cá c tá c vụ khó khă n cho ngườ i, đượ c sử dụ ng dâ y chuyền lắ p rá p để sả n xuấ t ô tô hoặ c NASA vậ n chuyển cá c vậ t thể to lớ n khô ng gian Gầ n hơn, cá c nhà nghiên u sử dụ ng machine learning để xây dự ng cá c robot tương tá c mơ i trườ ng xã hộ i 1.1.4 Một số ứng dụng AI điển hình Dướ i đâ y mộ t số ứ ng dụ ng điển hình củ a trí tuệ nhâ n tạ o: - AI lĩnh vực chăm sóc sức khỏe: AI gó p phầ n i thiện tình trạ ng sứ c khỏ e bệnh nhâ n, đồ ng thờ i giả m cá c chi phí điều trị Cá c cô ng ty p dụ ng Machine Learning để chẩ n n nhanh tố t ngườ i Mộ t nhữ ng ng nghệ chă m só c sứ c khỏ e tố t nhấ t phả i kể đến IBM Watson, có khả nă ng hiểu đượ c cá c ngơ n ngữ tự nhiên có khả nă ng phả n hồ i câ u hỏ i đượ c yêu cầ u Hệ thố ng nà y khai thá c liệu bệnh nhâ n cá c nguồ n liệu sẵ n có c để tạ o giả thuyết Sau , trình bà y mộ t lượ c đồ điểm tin cậ y Cá c ứ ng dụ ng c củ a AI bao gồ m chatbot, chương trình má y tính trự c tuyến để trả lờ i cá c câ u hỏ i hỗ trợ ch hà ng, sắ p xếp cá c cuộ c hẹn hoặ c trợ giú p bệnh nhâ n thơ ng qua q trình tố n cá c trợ lý y tế ả o cung cấ p phả n hồ i y tế bả n - AI lĩnh vực kinh doanh: Tự độ ng hó a quy trình bằ ng Robot đượ c p dụ ng cho tá c vụ mà ngườ i thự c lặ p lặ p lạ i Thuậ t tố n Machine Learning đượ c tích hợ p cá c tả ng phâ n tích CRM để m phá cá c thơ ng tin cá ch phụ c vụ ch hà ng tố t Chatbots đượ c tích hợ p cá c trang web để cung cấ p dịch vụ lậ p tứ c cho ch hà ng - AI lĩnh vực giáo dục: AI tự độ ng phâ n loạ i, giú p ngườ i m giá o dụ c tiết kiệm mộ t khoả ng thờ i gian đá ng kể AI đá nh giá sinh viên thích ứ ng vớ i nhu cầ u củ a họ Đồ ng thờ i AI hỗ trợ thêm cho sinh viên m thêm cô ng việc gia sư, đả m bả o rằ ng họ đú ng hướ ng - AI lĩnh vực tài chính: AI p dụ ng cho cá c ứ ng dụ ng tà i cá nhâ n Mint hay Turbo Tax, tă ng cườ ng cá c định chế tà i Mộ t số ứ ng dụ ng c IBM Watson đượ c p dụ ng AI nà y cho cá c giao dịch mua bá n nhà - AI lĩnh vực pháp luật: Quá trình m phá , chọ n lọ c thô ng qua cá c tà i liệu luậ t phá p thườ ng p đả o đố i vớ i ngườ i Tự độ ng hó a q trình nà y giú p tiết kiệm thờ i gian trình m việc hiệu Startups cũ ng xâ y dự ng cá c trợ lý ả o cho má y tính hỏ i trả lờ i cá c câ u hỏ i đượ c lậ p trình Hơn nữ a, ng sà ng lọ c cá c câ u hỏ i đượ c lậ p trình để trả lờ i bằ ng cá ch kiểm tra phâ n loạ i - AI lĩnh vực sản xuất: Đây lĩnh vự c đầ u việc kết hợ p robot o luồ ng cô ng việc Robot cô ng nghiệp đượ c sử dụ ng để thự c cá c nhiệm vụ đơn lẻ đượ c tá ch khỏ i ngườ i 10 Mơ hình củ a 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ù ng cấ u hình) then else begin < ghi nhậ n giá trị J cho xi >; Branch(i+1); i>; end; end; Như vậ y việc bỏ thao tá c thừ a mơ hình việc thêm o dò ng lệnh if (việc thử hi vọng tìm cấu hình tốt hơn) then Điều nà y có nghĩa tạ i mỗ i 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ị c mà khô ng cầ n gọ i đệ quy hay ghi nhậ n cấ u hình vậ y nghiệm củ a bà i toá n đượ c m tố t dầ n bướ c sau tố i ưu bướ c vậ y cấ u hình cuố i cù ng cấ u hình tố i ưu nhấ t 13 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à mộ t vấ n đề trong tố i ưu hó a tổ hợ p : Cho mộ t tậ p hợ p cá c mụ c, mỗ i mụ c có trọ ng lượ ng giá trị, hã y xá c định số lượ ng củ a mỗ i mụ c để đưa o mộ t sưu tậ p cho tổ ng trọ ng lượ ng nhỏ hoặ c bằ ng mộ t giớ i hạ n nhấ t định tổ ng giá trị cà ng lớ n cà ng tố t. Tên gọ i củ a 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 nhữ ng mó n đồ có giá trị nhấ t. Vấ n đề thườ ng nả y sinh trong việc phâ n bổ nguồ n lự c trong đó nhữ ng ngườ i định phả i chọ n từ mộ t tậ p hợ p dự n hoặ c nhiệm vụ khô ng thể phâ n chia tương ứ ng vớ i mộ t ngâ n sá ch cố định hoặ c hạ n chế thờ i gian Bà i tố n ba lơ đượ c nghiên u mộ t kỷ, vớ i nhữ ng ng trình đầ u tiên có niên đạ i từ nă m 1897. Tên gọ i "bà i tố n ba lơ " có từ nhữ ng ng trình đầ u tiên củ a nhà toá n họ c Tobias Dantzig (1884– 1956), và đề cậ p đến vấ n đề phổ biến ng gó i nhữ ng vậ t dụ ng có giá trị hoặ c hữ u ích nhấ t mà khơ ng m tả i hà nh lý 2.1.1 Định nghĩa Dạ ng bà i toá n định củ a bà i tố n xếp ba lơ câ u hỏ i "có thể đạ t đượ c mộ t giá trị nhấ t theo phá t biểu củ a bà i tố n" Ta có n loạ i đồ vậ t, x1 tớ i xn Mỗ i đồ vậ t x i có mộ t giá trị pi và mộ t khố i lượ ng wj Khố i lượ ng tố i đa mà ta mang ba lơ C 2.1.2 Các tốn xếp ba lơ thường gặp Bà i xếp ba lô ng 0-1: Hạ n chế số đồ vậ t thuộ c mỗ i loạ i (khô ng đượ c chọ n) (đượ c chọ n) Bà i xếp ba lơ 0-1 đượ c phá t biểu bằ ng toá n họ c sau: n n i=1 i=1 Cự c đạ i hó a ∑ pi x i tù y thuộ c 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 đượ c vượ t mộ t lượ ng nà o sau: Bà i xếp ba lơ bị chặ n đượ c phá t biểu bằ ng toá n họ c 14 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ó mộ t hạ n chế nà o số lượ ng đồ vậ t Trườ ng hợ p đặ c biệt Bà i tố n vớ i cá c tính chấ t: mộ t bà i toá n định mộ t bà i toá n 0/1 vớ i mỗ i đồ vậ t, chi phí bằ ng giá trị: C = V Lưu ý rằ ng trườ ng hợ p đặ c biệt nà y, bà i toá n tương đương vớ i: Cho mộ t tậ p cá c số nguyên, tồ n tạ i hay khô ng mộ t tậ p có tổ ng đú ng bằ ng C? Hoặ c đồ vậ t đượ c phép có chi phí â m C đượ c chọ n bằ ng 0, bà i tố n có ng: Cho trướ c mộ t tậ p cá c số nguyên, tồ n tạ i hay khô ng mộ t tậ p có tổ ng đú ng bằ ng 0? Trườ ng hợ p đặ c biệt nà y đượ c gọ i bà i toá n tổ ng cá c tậ p con(subset sum problem) Vớ i mộ t số lý do, ngà nh mậ t mã họ c, ngườ i ta thườ ng dù ng cụ m từ "bà i tố n xếp ba lơ " thự c có ý i "bà i toá n tổ ng con" Bà i tố n xếp ba lơ thườ ng đượ c giả i bằ ng quy hoạ ch độ ng, chưa có mộ t thuậ t toá n thờ i gian đa thứ c cho bà i toá n tổ ng t Cả bà i xếp ba lô tổ ng t bà i toá n tổ ng cá c bài NP-khó , điều nà y dẫ n đến cá c cố gắ ng sử dụ ng tổ ng m sở cho cá c hệ thố ng mậ t mã hó a khó a ng khai, chẳ ng hạ n Merkle-Hellman Cá c cố gắ ng nà y thườ ng dù ng nhó m thay cá c số nguyên Merkle-Hellman mộ t số thuậ t toá n tương tự c bị phá , cá c toá n tổ ng cụ thể mà họ tạ o thự c lạ i giả i đượ c bằ ng cá c thuậ t toá n thờ i gian đa thứ c 2.1.3 Độ phức tạp Bà i tố n knapsack thú vị từ gó c độ khoa họ c má y tính nhiều lý do: Dạ ng bà i toá n định củ a tố n ba lơ ( Có thể đạ t đượ c giá trị 15 nhấ t V mà khơ ng vượ t trọ ng số W khô ng? ) Là NP-đầ y đủ , khơ ng có thuậ t tố n nà o đượ c biết vừ a đú ng vừ a nhanh (đa thứ c-thờ i gian) mọ i trườ ng hợ p Trong bà i toá n định hoà n nh NP, bà i tố n tố i ưu hó a khơ ng, việc giả i nhấ t cũ ng khó bà i tố n định khơ ng có thuậ t tố n đa thứ c nà o cho biết, đưa mộ t giả i phá p, liệu có phả i tố i ưu hay khô ng (nghĩa rằ ng khơ ng có giả i phá p nà o có V lớ n hơn , giả i vấ n đề định NP-đầy đủ ) Có mộ t thuậ t toá 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ả m chương trình con, đượ c mơ tả bên dướ i Nhiều trườ ng hợ p phá t sinh thự c tế, "cá c trườ ng hợ p ngẫ u nhiên" từ mộ t số bả n phâ n phố i, nhiên đượ c giả i xá c Có mộ t mố i liên hệ giữ a vấ n đề "quyết định" "tố i ưu hó a" chỗ tồ n tạ i mộ t thuậ t toá n đa thứ c giả i vấ n đề "quyết định" ngườ i ta tìm giá trị lớ n nhấ t cho bà i tố n tố i ưu hó a thờ i gian đa thứ c bằ ng cá ch p dụ ng thuậ t toá n nà y lặ p lặ p lạ i tă ng giá trị củ a k. Mặ t c, mộ t thuậ t tố n tìm đượ c giá trị tố i ưu củ a bà i toá n tố i ưu thờ i gian đa thứ c, bà i tố n định đượ c giả i thờ i gian đa thứ c bằ ng cá ch so sá nh giá trị củ a kết giả i củ a thuậ t toá n nà y vớ i giá trị củ a k. Do , hai phiên bả n củ a vấ n đề có độ khó tương tự Mộ t chủ đề tà i liệu nghiên u xá c định cá c trườ ng hợ p "khó " củ a vấ n đề cá i ba lơ trơ ng nà o, hoặ c nhìn theo cá ch c, để xá c định nhữ ng đặ c tính nà o củ a cá c trườ ng hợ p thự c tế khiến ng dễ giả i trườ ng hợ p xấ u nhấ t củ a ng Hà nh vi NP-hoà n n gợ i ý. Mụ c tiêu việc tìm kiếm cá c cá thể "cứ ng" nà y để sử dụ ng chú ng trong cá c hệ thố ng mậ t mã khó a ng khai , chẳ ng hạ n hệ thố ng mậ t mã Merkle-Hellman knapsack Hơn nữ a, đá ng ý thự c tế độ ng củ a bà i tố n cá i ba lơ phụ thuộ c o hình thứ c củ a đầ u o. Nếu trọ ng số lợ i nhuậ n đượ c cho dướ i ng số nguyên, NP-đầ y đủ yếu , NP-đầy đủ mạ nh nếu trọ ng số lợ i nhuậ n đượ c cho dướ i ng số hữ u tỉ. Tuy nhiên, trườ ng hợ p trọ ng số hữ u tỉ lợ i nhuậ n, vẫ n thừ a nhậ n mộ t lượ c đồ gầ n đú ng thờ i gian đa thứ c đầ y đủ 16 17 2.2 Mơ hình hóa tốn Ví dụ mộ t tố n xếp ba lô giớ i hạ n chiều: chọ n cá c hộ p nà o để m cự c đạ i lượ ng tiền giữ đượ c tổ ng khố i lượ ng dướ i 15 kg? Bà i tố n đa chiều xét đến khố i lượ ng riêng kích thướ c củ a cá c hộ p, bà i tố n xếp vali điển hình (packing problem) Hình 2.1: Ví dụ (Giả i phá p: mỗ i hộ p có sẵ n số lượ ng bấ t kỳ có ba hộ p mà u ng ba hộ p mà u xá m; có cá c hộ p đượ c hiển thị có tấ t trừ hộ p mà u xanh lụ c.) InPut:Loạ i đồ vậ t, Số lượ ng đồ vậ t mỗ i loạ i,hạ n mứ c balo,câ n nặ ng giá trị từ ng vậ t OutPut:Số lượ ng đồ vậ t mỗ i loạ i a,Tổ ng giá trị củ a cá c vậ t đượ c chọ n lớ n nhấ t , tổ ng câ n nặ ng cá c vậ t đượ c chọ n 18 2.3 Các bước giải tốn Giả i ví dụ ta có bả ng sau Hạ n mứ c Số Lượ ng 1 1 Giá trị 10 12 Trọ ng lượ ng B1: Hố n đổ i vị trí cá c phầ n tử cho giá trị trọ ng lượ ng vậ t (giatri / trongluong) sắ p xếp giả m dầ n B2: Lự a chọ n vậ t o ba lô cho tổ ng giá trị cá c vậ t đượ c chọ n lớ n nhấ t mà khô ng vượ t sứ c a củ a ba lô B3 : Tổ ng kết lạ i cá c vậ t phẩ m chọ n => Kết ta tìm đượ c : Tổ ng giá trị 15$ ; Vậ t cầ n lấ y gồ m 2,3,4,5 ; Tổ ng khố i lượ ng cá c vậ t lấ y 15kg, Khố i lượ ng balo cị n trố ng 0kg 2.3.1 Giải tốn thuật toán nhánh cận Sắ p xếp tấ t mụ c theo thứ tự giả m dầ n củ a tỷ lệ giá trị đơn vị trọ ng lượ ng để tính giớ i hạ n bằ ng cá ch sử dụ ng Phương phá p tiếp cậ n Tham lam Khở i tạ o lợ i nhuậ n tố i đa, maxProfit = Tạ o mộ t hà ng đợ i trố ng, Q Tạ o mộ t nú t giả củ a câ y định xếp o hà ng Q Lợ i nhuậ n trọ ng lượ ng củ a nú t giả bằ ng Là m theo sau Q khơ ng trố ng Trích xuấ t mộ t mụ c từ Q Gọ i mụ c đượ c trích xuấ t u Tính tố n lợ i nhuậ n củ a nú t cấ p tiếp theo. Nếu lợ i nhuậ n nhiều maxProfit, hã y cậ p nhậ t maxProfit Tính giớ i hạ n củ a nú t cấ p tiếp theo. Nếu giớ i hạ n nhiều maxProfit, hã y thêm nú t cấ p o Q Hã y xem xét trườ ng hợ p nú t cấ p khô ng đượ c coi mộ t phầ n củ a giả i phá p thêm mộ t nú t o hà ng đợ i vớ i cấ p tiếp theo, trọ ng số lợ i nhuậ n mà khơ ng tính đến cá c nú t cấp 19 Đầ u o: // Điều đầ u tiên mỗ i cặ p trọ ng lượ ng củ a mặ t hà ng // điều thứ hai giá trị củ a item Ví dụ : Mụ c arr [] = {{2, 40}, {3,14, 50}, {1,98, 100}, {5, 95}, {3, 30}}; Dung lượ ng Knapsack W = 10 Đầ u ra: Lợ i nhuậ n tố i đa = 235 Sơ đồ dướ i đâ y minh họ a Cá c mặ t hà ng đượ c coi sắ p xếp theo giá trị / trọ ng lượ ng Hình 2.2: Sơ đồ giả i thuậ t 20 ... i cù ng cấ u hình tố i ưu nhấ t 13 CHƯƠNG 2: ÁP DỤNG THUẬT TOÁN NHÁNH CẦN VÀO GIẢI QUYẾT BÀI TỐN XẾP BALO 2.1 Mơ tả tốn Bài? ?tốn ba lơ là mộ t vấ n đề trong tố i ưu hó a tổ hợ p : Cho mộ t tậ p... 1.1.3 Phân loại trí tuệ nhân tạo AI Trí tuệ nhâ n tạ o đượ c phâ n loạ i theo nhiều cá ch c nhau, dướ i đâ y 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ạ... ng nhỏ “á p dụ ng thuậ t toá n nhá nh cậ n o bà i 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) đượ c định nghĩa mộ t