Tải bản đầy đủ (.pdf) (27 trang)

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Ô

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (556.16 KB, 27 trang )

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 THT TỐN NHÁNH CẬN VÀO BÀI TỐN XẾP
BA LƠ
Sinh viên thực hiện

: 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

1


Sinh viên thự c hiện:
Họ và tên

PHIẾU CHẤM ĐIỂM
Chữ ký

Ghi chú

Lê Việt Lâ m

Bù i Vũ Hồ ng

Nguyễn Đình Hiệu

Giả ng viên chấ m:
Họ và tên

Chữ ký

Ghi chú


Giả ng viên chấ m 1 :

Giả ng viên chấ m 2 :

2


Mục Lục
Danh Mụ c Hình Ả nh..................................................................................................................... 4
Chương 1 : Cơ Sở Lý Thuyết..................................................................................................... 6
1.1 Tổ ng quan về trí tuệ nhâ n tạ o..................................................................................6
1.1.1 Trí tuệ nhâ n tạ o là gì................................................................................................ 6
1.1.2 Ứ ng dụ ng trí tuệ nhâ n tạ o...................................................................................... 6
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 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 quyết bà i tố n xếp ba lơ .............14
2.1 Mơ tả bà i toá n.................................................................................................................. 14
2.1.1 Định nghĩa.................................................................................................................. 14
2.1.2 Các bà i toá 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 quả........................................................................................................................ 24

KẾ T LUẬ N...................................................................................................................................... 25
Tà i Liệu Tham Khả o.................................................................................................................. 26

3


Danh Mục Hình Ảnh
Hình 1.1 AI - Trí tuệ nhâ n tạ o là gì, nhữ ng ứ ng dụ ng………………………...……6
Hình 1.2 Mộ t số ví dụ về cơ ng nghệ trí tuệ nhâ n tạ o………………………………8
Hình 1.3 1 cả nh trong bộ phim "I, Robot" nó i về mộ t AI đã tiến hó a, sau đó đã
dồ n

con

ngườ i

và o

cả nh "nơ

lệ" vớ i

danh

nghĩa

bả o

vệ


con

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 quả đạ t đượ c……………………………………………………….24

4


LỜI MỞ ĐẦU
Ngà y nay, chú ng ta đã bướ c và o thế kỷ 21, kỷ nguyên củ a Cơ ng nghệ
thơ ng tin, đặ c biệt là trí tuệ nhâ n là yếu tố quan trọ ng nhấ t quyết định sự
thà nh cô ng củ a mỗ i ngà nh hay mỗ i quố c gia. Trí tuệ nhâ n tạ o đã và đang là m
thay đổ i cuộ c số ng củ a chú ng ta, vớ i sự phá t triển mạ nh mẽ củ a việc á p dụ ng
cá c nghiên cứ u về trí tuệ nhâ n tạ o á p dụ ng cho cuộ c số ng. Tấ t cả 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 có thể á 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
quyết cá c vấ n đề trong xã hộ i và việc phá t triển kinh tế đang đượ c nhà nướ c
khuyến khích và đầ u tư rấ t lớ n.
Trên thế giớ i cũ ng như Việt Nam, CNTT có ả nh hưở ng rấ t mạ nh mẽ
đến sự phá t triển củ a đấ t nướ c và thế giớ i đặ c biệt là trí tuệ nhâ n tạ o. Nó chở
thà nh mộ t yếu tố khô ng thể thiếu và có tính quyết định đến sự thà nh cơ ng hay
thấ t bạ i củ a nhiều ngà nh ở nướ c ta, CNTT đang phá t triển vớ i tố c độ khá mạ nh
mẽ và đượ c ứ ng dụ ng rộ ng rã i trong tấ t cả cá c lĩnh vự c, đặ c biệt là trong cô ng
tá c ứ ng dụ ng cô ng nghệ và o trong cuộ c số ng.
Như chú ng ta đã biết, sứ c mạ nh củ a mộ t nền kinh tế phụ thuộ c rấ t lớ n
và o cá c hoạ t độ ng trong nướ c củ a cá c doanh nghiệp, vì vậ y sự thà nh cô ng
trong kinh doanh củ a doanh nghiệp khô ng nhữ ng là mụ c tiêu củ a riêng doanh

nghiệp, mà nó cị n là nhâ n tố quyết định vị thế củ a đấ t nướ c trên trườ ng quố c
tế. Việc đưa AI và o á p dụ ng cho cá c doanh nghiệp và cả cá c ngà nh như y tế,
cô ng nghiệp nặ ng đang đượ c ưu tiên và phá t triển mạ nh mẽ.
Tạ i Việt Nam, Nhà nướ c đang đi và o phá t triển dịch vụ , và đầ u tư mạ nh
mẽ và o trí tuệ nhâ n tạ o hay cò n gọ i là AI. Vì thế, việc đó đầ u nó và phá t triển
nó đang là mộ t xu thế rấ t hot và rấ t đượ c ưu chuộ ng hiện nà y.
Chính vì vậ y thơ ng qua việc họ c mơ n trí tuệ nhâ n tạ o (AI) nhó m em đã
nghĩ ra mộ t ý tưở ng nhỏ đó là “á p dụ ng thuậ t toá n nhá nh cậ n và o bà i toá n
balo”.

5


CHƯƠNG 1: CƠ SỞ LÍ THUYẾT
1.1Tổng quan về trí tuệ nhân tạo
1.1.1 Trí tuệ nhân tạo là gì
(AI: Artificial Intelligence) có thể đượ c định nghĩa như 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 là mộ t bộ phậ n củ a khoa họ c má y tính và do đó nó phả i đượ c đặ t trên
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 là sự mơ phỏ ng các q trình hoạ t độ ng trí tuệ củ a
con ngườ i, bao gồ m quá trình họ c tậ p (thu thậ p thô ng tin và 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),
và 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 nó i và cá c ứ ng dụ ng machine
vision.


Hình 1.1 AI - Trí tuệ nhâ n tạ o là 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 và o nă m 1956 tạ i Hộ i nghị Dartmouth. Ngà y nay thuậ t ngữ AI
đượ c bổ sung thêm cả tự độ ng hó a quy trình bằ ng Robot và Robot thự c tế.
6


Thờ i gian gầ n đây nổ i lên thuậ t ngữ mớ i có tên Big Data hay gia tă ng tố c
độ , kích thướ c và thu thậ p cá c dữ liệu doanh nghiệp đa dạ ng. AI có thể thự c
hiện cá c tá c vụ như xá c định cá c mẫ u trong dữ liệu hiệu quả hơn con ngườ i,
cho phép cá c doanh nghiệp hiểu rõ hơn về dữ liệu củ a mình.
 
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 khá c nhau, dướ i đâ y là
2 ví dụ điển hình về phâ n loạ i trí tuệ nhâ n tạ o.
Đầ u tiên là 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 là Narrow AI,
là hệ thố ng trí tuệ nhâ n tạ o đượ c thiết kế và đà o tạ o cho cá c tá c vụ cụ thể. Cá c
trợ lý ả o chẳ ng hạ n như Siri củ a Apple là mộ t dạ ng trí tuệ nhâ n tạ o yếu.
Trí tuệ nhâ n tạ o mạ nh cò n đượ c gọ i là Artificial General Intelligence hay
trí tuệ nhâ n tạ o tổ ng hợ p, là hệ thố ng AI đượ c trang bị khả nă ng nhậ n thứ c
tổ ng quá t củ a con ngườ i để khi thự c hiện các tá c vụ khô ng quen thuộ c, nó đủ
thơ ng minh để tìm ra cá c giả i phá p. Phép thử Turing đượ c phá t triển bở i nhà
toá n họ c Alan Turing và o nă m 1950 là phương phá p đượ c sử dụ ng để xá c thự c
xem mộ t má y tính có thể có nhữ ng suy nghĩ giố ng con ngườ i hay khô ng, mặ c
dù phương phá p nà y gâ y nhiều tranh cã i.
Ví dụ thứ 2 là từ Arend Hintze, mộ t trợ lý giá o sư sinh họ c hợ p nhấ t và
khoa họ c má y tính và kỹ thuậ t tạ i Đạ i họ c bang Michigan. Ơ ng phâ n loạ i trí tuệ
nhâ n tạ o AI thà nh 4 loạ i, từ loạ i hệ thố ng AI hiện nay đến các hệ thố ng cả 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 là Deep Blue, chương trình
cờ vua củ a IBM đá nh bạ i Garry Kasparov và o nhữ ng nă m 1990. Deep Blue có
thể xá c định cá c phầ n trên bả ng cờ vua và dự đố n, nhưng nó khơ ng có bộ nhớ
và khô ng thể sử dụ ng nhữ ng kinh nghiêm trong quá khứ để thô ng bá o cho con
ngườ i trong tương lai. Nó phâ n tích cá c độ ng thá i củ a chính mình và đố i thủ ,
và chọ n mộ t độ ng thá i chiến lượ c nhấ t. Deep Blue và AlphaGO củ a Google
đượ c thiết kế cho mụ c đích hẹp và khô ng thể dễ dà ng á p dụ ng cho tình huố ng
khá c.

7


Loại 2: Bộ nhớ hạn chế. Cá c hệ thố ng AI nà y có thể sử dụ ng cá c kinh
nghiệm trong quá khứ để đưa ra cá c quyết định trong tương lai. Mộ t số chứ c
nă ng ra quyết định trong các loạ i xe tự lá i đượ c thiết kế dự a trên 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 ra trong tương lai
khô ng xa, chẳ ng hạ n như mộ t chiếc xe đã thay đổ i là 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 là mộ t thuậ t ngữ tâ m lý. Thuậ t ngữ nà y đề cậ p
đến việc hiểu đượ c rằ ng con ngườ i có niềm tin, ham muố n và ý định củ a chính
họ ả nh hưở ng đến quyết đị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 về bả n
thâ n. Cá c má y có ý thứ c tự giá c hiểu đượ c trạ ng thá i hiện tạ i củ a chú ng và có
thể sử dụ ng thơ ng tin để suy ra nhữ ng gì ngườ i khá c đang 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ụ về cơ ng nghệ trí tuệ nhâ n tạ o
- Tự độ ng hó a là quá trình tạ o ra hệ thố ng hoặ c chứ c nă ng xử lý tự độ ng. Ví dụ
như tự độ ng hó a quy trình bằ ng Robot để thự c hiện cá c tá c vụ khố i lượ ng lớ n
mà con 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ỗ nó có thể thích nghi vớ i cá c hoà n
cả nh thay đổ i khá c nhau.

8


- Machine Learning là khoa họ c để mộ t má y tính thự c hiện các hà nh độ ng mà
khơ ng cầ n lậ p trình. Deep Learning là tậ p hợ p con củ a Machine Learning, vớ i
cá c thuậ t ngữ khá đơn giả n, có thể đượ c coi là tự độ ng hó a củ a cá c phâ n tích
tiên đố n.
Có 3 thuậ t toá n Machine Learning, bao gồ m: Supervised Learning (họ c có
giá m sá t), trong đó tậ p hợ p dữ liệu đượ c gắ n nhã n sao cho cá c mẫ u đượ c phá t
hiện và sử dụ ng để gắ n nhã n cá c tậ p dữ liệu mớ i. Tiếp theo là  Unsupervised
Learning (họ c khơ ng có giá m sá t), trong đó tậ p hợ p dữ liệu khơ ng đượ c dá n
nhã n và đượ c sắ p xếp theo phâ n loạ i tương đồ ng hoặ c khá c biệt. Và cuố i cù ng
là  Reinforcement Learning (họ c tă ng cườ ng), trong đó tậ p hợ p dữ liệu khô ng
đượ c dá n nhã n, nhưng sau khi thự c hiện 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 dạ ng và điều khiển dự a trên hình ả nh) là
khoa họ c là m cho má y tính có thể nhìn thấ y đượ c. Machine Vision thu thậ p và
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ố và xử lý tín hiệu số . Nó thườ ng đượ c so sá nh vớ i thị giá c củ a con
ngườ i, nhưng machine vision khô ng bị rà ng buộ c bở i sinh họ c và có thể đượ c
lậ p trình để xem qua cá c bứ c tườ ng. Ví dụ điển hình là machine vision đượ c sử
dụ ng trong mộ t loạ t các ứ 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 trên má y.
- Xử lý ngô n ngữ tự nhiên (Natural Language Processing - NLP) là q trình xử
lý ngơ n ngữ má y tính củ a con ngườ i chứ khơ ng phả i má y tính. Mộ t trong
nhữ ng ví dụ nổ i tiếng nhấ t phả i kể đến phá t hiện thư rá c, xem dò ng chủ đề và
vă n bả n củ a mộ t email và quyết định xem đó có phả i là 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 cả m và nhậ n dạ ng giọ ng
nó i.
- Nhậ n dạ ng mẫ u (Pattern recognition) là mộ t phầ n củ a Machine Learning,
trong đó tậ p trung và o việc xá c định cá c mẫ u trong dữ liệu.
-Robotics là mộ t lĩnh vự c kỹ thuậ t tậ p trung và o việc thiết kế và sả n xuấ t
robot. Robot thườ ng đượ c sử dụ ng để thự c hiện cá c tá c vụ khó khă n cho con
ngườ i, và đượ c sử dụ ng trong dâ y chuyền lắ p rá p để sả n xuấ t ô tô hoặ c do
NASA vậ n chuyển cá c vậ t thể to lớ n trong khô ng gian. Gầ n đây hơn, cá c nhà
nghiên cứ u đang sử dụ ng machine learning để xây dự ng cá c robot có thể
tương tá c trong mô i trườ ng xã hộ i.

9


1.1.4 Một số ứng dụng AI điển hình
Dướ i đâ y là mộ t số ứ ng dụ ng điển hình củ a trí tuệ nhâ n tạ o:
- AI trong lĩnh vực chăm sóc sức khỏe: AI gó p phầ n cả 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
đang á p dụ ng Machine Learning để chẩ n đoá n nhanh hơn và tố t hơn con
ngườ i. Mộ t trong nhữ ng cơ 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 và có khả nă ng
phả n hồ i các câ u hỏ i đượ c yêu cầ u. Hệ thố ng nà y khai thá c dữ liệu bệnh nhâ n
và cá c nguồ n dữ liệu sẵ n có khá c để tạ o ra giả thuyết. Sau đó , nó sẽ trình bà y
mộ t lượ c đồ điểm tin cậ y. Cá c ứ ng dụ ng khá 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 và hỗ trợ khá 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 quá trình thanh tố n và cá c
trợ lý y tế ả o cung cấ p phả n hồ i y tế cơ bả n.
- AI trong lĩnh vực kinh doanh: Tự độ ng hó a quy trình bằ ng Robot
đượ c á p dụ ng cho các tá c vụ mà con ngườ i thự c hiện lặ p đi lặ p lạ i. Thuậ t toá n
Machine Learning đượ c tích hợ p trên cá c nền tả ng phâ n tích và CRM để khá m

phá cá c thơ ng tin về cá ch phụ c vụ khá ch hà ng tố t hơn. Chatbots đượ c tích hợ p
trên cá c trang web để cung cấ p dịch vụ ngay lậ p tứ c cho khá ch hà ng.
- AI trong lĩnh vực giáo dục: AI có thể tự độ ng phâ n loạ i, giú p ngườ i
là m giá o dụ c có thể tiết kiệm mộ t khoả ng thờ i gian đá ng kể. AI có thể đá nh giá
sinh viên và thích ứ ng vớ i nhu cầ u củ a họ . Đồ ng thờ i AI có thể hỗ trợ thêm cho
sinh viên là m thêm cô ng việc gia sư, đả m bả o rằ ng họ có thể đi đú ng hướ ng.
- AI trong lĩnh vực tài chính: AI á p dụ ng cho cá c ứ ng dụ ng tà i chính cá
nhâ n như Mint hay Turbo Tax, tă ng cườ ng cá c định chế tà i chính. Mộ t số ứ ng
dụ ng khá c như IBM Watson đượ c á p dụ ng AI nà y cho cá c giao dịch mua bá n
nhà .
- AI trong lĩnh vực pháp luật: Quá trình khá m phá , chọ n lọ c thô ng qua
cá c tà i liệu trong luậ t phá p thườ ng á p đả o đố i vớ i con ngườ i. Tự độ ng hó a q
trình nà y giú p tiết kiệm thờ i gian và quá trình là m việc hiệu quả hơn. Startups
cũ ng đang xâ y dự ng cá c trợ lý ả o cho má y tính hỏ i và trả lờ i cá c câ u hỏ i đượ c
lậ p trình. Hơn nữ a, chú ng có thể 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 trong lĩnh vực sản xuất: Đây là lĩnh vự c đi đầ u trong việc kết hợ p
robot và o luồ ng cô ng việc. Robot cô ng nghiệp đượ c sử dụ ng để thự c hiện cá c
nhiệm vụ đơn lẻ và đã đượ c tá ch ra khỏ i con ngườ i.

10


1.1.5 Hạn Chế AI
Trí tuệ nhâ n tạ o mang lạ i rấ t nhiều giá trị cho cuộ c số ng loà i ngườ i,
nhưng cũ ng tiềm ẩ n nhữ ng nguy cơ. 
Rấ t nhiều chuyên gia lo lắ ng rằ ng khi trí tuệ nhâ n tạ o đạ t tớ i 1 ngưỡ ng
tiến hó a nà o đó thì đó cũ ng là thờ i điểm loà i ngườ i bị tậ n diệt. Rấ t nhiều cá c bộ
phim đã khai thá c đề tà i nà y vớ i nhiều gó c nhìn, nhưng qua đó đều muố n cả nh
bá o lồ i ngườ i về mố i nguy đặ c biệt nà y.


Hình 1.3 1 cả nh trong bộ phim "I, Robot" nó i về mộ t AI đã tiến hó a, sau đó đã
dồ n con ngườ i và o cả nh "nô lệ" vớ i danh nghĩa bả o vệ con ngườ i.
Dự bá o cho rằ ng từ 5 đến 10 nă m nữ a, ngà nh khoa họ c nà y sẽ phá t triển
lên tớ i đỉnh cao. Hã y cù ng chờ đợ i nhữ ng thà nh tự u mớ i nhấ t củ a loà i ngườ i
về lĩnh vự c nà y

11


1.2Thuật toán Nhánh Cận
Cho mộ t hà m mụ c tiêu f hay cò n đượ c gọ i là hà m đá nh giá và cá c hà m
rà ng buộ c logic g1, g2,…gn. Yêu cầ u tìm mộ t cấ u hình x thỏ a mã n tấ t cả cá c
rà ng buộ c g1, g2,… gn và  f(x) là tố t nhấ t. Nghĩa là khô ng tồ n tạ i mộ t cấ u hình
y thỏ a mã n cá c điều kiện mà f(y) tố t hơn f(x).
Ví dụ: Tìm (x,y) để x+y=max và thỏ a mã n điều kiện x2+y2 ≤ 1
Như vậ y hà m mụ c tiêu f ở đây là x+y -> max. Hà m rà ng buộ c g là x2+y2 ≤ 1
Ta nhậ n thấ y nếu xét trong mặ t phẳ ng tọ a độ
nhữ ng cặ p (x,y) thỏ a mã n điều kiện là tậ p hợ p tấ t
cả nhữ ng điểm nằ m trong và trên biên hình trị n
tâ m O là gố c tọ a độ và bá n kính r=1;
Vậ y nghiệm củ a bà i toá n là giao củ a phương
trình đườ ng thẳ ng x+y=c và phương trình đườ ng
2
2
trò n x +y =1; vớ i c là hằ ng số và c đạ t giá trị max khi đườ ng thẳ ng và
đườ ng trò n tiếp xú c nhau tạ i tiếp điểm (x,y)=(1/ ;1/ )
Giá trị max khi đó x+y= 

cấ u hình thỏ a mã n là (1/


;1/

)

Dướ i đâ y ta tìm hiểu kĩ thuậ t nhá nh cậ n á p dụ ng cho thuậ t toá n đệ quy
và đệ quy quay lui để tìm nghiệm tố i ưu cho bà i tố n.

1.2.1. Mơ hình của kĩ thuật nhánh cận
Mơ hình thuậ t toá n đệ quy quay lui trong chương trướ c chính là việc tìm
kiếm trên câ y n cấ p sẽ có 2n nú t lá điều đó có nghĩa là nếu dữ liệu đầ u và o
là n thì ta phả i duyệt 2n lầ n trong trườ ng hợ p tồ i nhấ t, con số nà y là quá
lớ n so vớ i dữ liệu ban đầ u và trong q trình duyệt có mộ t số thao tá c thừ a
đố i vớ i việc chọ n nghiệm xi tố i ưu. Tư tưở ng củ a kĩ thuậ t nhá nh cậ n là loạ i
bỏ đi nhữ ng thao tá c thừ a đó trong quá trình tiến hà nh gọ i thủ tụ c đệ quy.

12


Mơ hình củ a kĩ thuậ t nhá nh cậ n như sau:
Procedure Branch(i);
begin
i>;
if (việc thử cịn hi vọng tìm ra cấu hình tốt hơn) then
if (xi là phầ n tử cuố i cù ng trong 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ỏ đi thao tá c thừ a ở mơ hình trên chính là việc thêm và o
dò ng lệnh if (việc thử còn hi vọng tìm ra cấu hình tốt hơn) then. Điều nà y có
nghĩa là tạ i mỗ i bướ c giá trị thử cho xi khơ ng cị n hi vọ ng tìm ra cấ u hình
tố t hơn thì thử giá trị khá c ngay mà khô ng cầ n gọ i đệ quy tiếp theo hay ghi
nhậ n cấ u hình do vậ y nghiệm củ a bà i toá n sẽ đượ c là m tố t dầ n bướ c sau
tố i ưu hơn bướ c cứ như vậ y cấ u hình cuố i cù ng sẽ là 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ả bài 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 và giá trị, hã y xá c định số lượ ng củ a mỗ i
mụ c để đưa và o mộ t bộ sưu tậ p sao cho tổ ng trọ ng lượ ng nhỏ hơn hoặ c bằ ng
mộ t giớ i hạ n nhấ t định và tổ ng giá trị cà ng lớ n cà ng tố t. Tên gọ i củ a nó bắ t
nguồ n từ vấ n đề mà ai đó phả i đố i mặ t là 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 nó 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 ra
quyết định phả i chọ n từ mộ t tậ p hợ p các 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ế về thờ i gian.
Bà i toá n ba lô đã đượ c nghiên cứ u trong hơn mộ t thế kỷ, vớ i
nhữ ng cơ 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 cơ 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 là đó ng gó i nhữ ng vậ t dụ ng có giá trị
hoặ c hữ u ích nhấ t mà khơ ng là m quá tả i hà nh lý.
2.1.1 Định nghĩa

Dạ ng bà i toá n quyết định củ a bà i toá n xếp ba lơ là câ u hỏ i "có thể đạ t đượ c
mộ t giá trị ít nhấ t là bao nhiêu 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 có thể mang trong ba lơ là  C.
2.1.2 Các bài 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 mỗ i loạ i là 0 (khô ng đượ c
chọ n) và 1 (đượ c chọ n).
Bà i xếp ba lô 0-1 có thể đượ c phá t biểu bằ ng tố n họ c như 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 và 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 quá mộ t
lượ ng nà o đó .
sau:

Bà i xếp ba lơ bị chặ n có thể đượ c phá t biểu bằ ng toá n họ c như

14


n

n


i=1

i=1

Cự c đạ i hó a ∑ pi x i sao cho ∑ pi x i ≤ c trong đó 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 về số lượ ng đồ vậ t.
Trườ ng hợ p đặ c biệt
Bà i tố n vớ i cá c tính chấ t:
 là mộ t bà i toá n quyết định
 là 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 trong 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 con có tổ ng đú ng
bằ ng C?
Hoặ c nếu đồ vậ t đượ c phép có chi phí â m và  C đượ c chọ n bằ ng 0, bà i toá n có
dạ ng:
Cho trướ c mộ t tậ p cá c số nguyên, tồ n tạ i hay khô ng mộ t tậ p con có tổ ng đú ng
bằ ng 0?
Trườ ng hợ p đặ c biệt nà y đượ c gọ i là bà i toá n tổ ng cá c tậ p
con(subset sum problem). Vớ i mộ t số lý do, trong 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ơ " khi thự c ra đang có ý nó i về "bà i tố n
tổ ng con".
Bà i tố n xếp ba lơ thườ ng đượ c giả i bằ ng quy hoạ ch độ ng, tuy
chưa có mộ t thuậ t tố n thờ i gian đa thứ c cho bà i toá n tổ ng quá t. Cả bà i xếp ba
lô tổ ng quá t và bà i toá n tổ ng con đều là cá c bài NP-khó , và điều nà y dẫ n đến
cá c cố gắ ng sử dụ ng tổ ng con là m cơ sở cho cá c hệ thố ng mậ t mã hó a khó a
cơ ng khai, chẳ ng hạ n Merkle-Hellman. Cá c cố gắ ng nà y thườ ng
dù ng nhó m thay vì cá c số ngun. Merkle-Hellman và mộ t số thuậ t toá n tương
tự khá c đã bị phá , do cá c bài toá n tổ ng con cụ thể mà họ tạ o ra thự c ra 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 toá n knapsack thú vị từ gó c độ khoa họ c má y tính vì nhiều lý do:
Dạ ng bà i tố n quyết định củ a bài tố n ba lơ ( Có thể đạ t đượ c giá trị ít
15


nhấ t là  V mà khô ng vượ t quá trọ ng số  W khô ng? ) Là  NP-đầ y đủ  , do đó khơ ng
có thuậ t tố n nà o đượ c biết vừ a đú ng vừ a nhanh (đa thứ c-thờ i gian) trong
mọ i trườ ng hợ p.
Trong khi bà i tố n quyết định là hồ n thà nh NP, bà i toá n tố i ưu hó a thì
khơ ng, việc giả i quyết nó ít nhấ t cũ ng khó như bà i tố n quyết định và khơ ng có
thuậ t tố n đa thứ c nà o có thể cho biết, đưa ra mộ t giả i phá p, liệu nó có phả i là
tố i ưu hay khô ng (nghĩa là rằ ng khơ ng có giả i phá p nà o có  V lớ n hơn , do đó
giả i quyết vấ n đề quyết đị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, đượ c mô tả bên dướ i.
Nhiều trườ ng hợ p phá t sinh trong thự c tế, và "cá c trườ ng hợ p ngẫ u
nhiên" từ mộ t số bả n phâ n phố i, tuy nhiên có thể đượ c giả i quyết chính xá c.
Có mộ t mố i liên hệ giữ a vấ n đề "quyết định" và "tố i ưu hó a" ở chỗ nếu
tồ n tạ i mộ t thuậ t toá n đa thứ c giả i quyết vấ n đề "quyết định" thì ngườ i ta có
thể tìm giá trị lớ n nhấ t cho bà i toá n tố i ưu hó a trong thờ i gian đa thứ c bằ ng
cá ch á p dụ ng thuậ t toá n nà y lặ p đi lặ p lạ i trong khi tă ng giá trị củ a k. Mặ t khá c,
nếu mộ t thuậ t tố n tìm đượ c giá trị tố i ưu củ a bà i toá n tố i ưu trong thờ i gian
đa thứ c, thì bà i tố n quyết định có thể đượ c giả i trong thờ i gian đa thứ c bằ ng
cá ch so sá nh giá trị củ a kết quả giả i củ a thuậ t toá n nà y vớ i giá trị củ a k. Do đó ,
cả hai phiên bả n củ a vấ n đề đều có độ khó tương tự nhau.
Mộ t chủ đề trong tà i liệu nghiên cứ u là xá c định cá c trườ ng hợ p "khó "
củ a vấ n đề cá i ba lô trô ng như thế nà o,  hoặ c nhìn theo cá ch khá c, để xá c định

nhữ ng đặ c tính nà o củ a cá c trườ ng hợ p trong thự c tế có thể khiến chú ng dễ
giả i quyết hơn trườ ng hợ p xấ u nhấ t củ a chú ng. Hà nh vi NP-hoà n toà n gợ i ý. 
Mụ c tiêu trong việc tìm kiếm cá c cá thể "cứ ng" nà y là để sử
dụ ng chú ng trong cá c hệ thố ng mậ t mã khó a cơ ng khai , chẳ ng hạ n như hệ
thố ng mậ t mã  Merkle-Hellman knapsack .
Hơn nữ a, đá ng chú ý là thự c tế là độ cứ ng củ a bà i tố n cá i ba lơ phụ
thuộ c và o hình thứ c củ a đầ u và o. Nếu trọ ng số và lợ i nhuậ n đượ c cho dướ i
dạ ng số ngun, thì nó là  NP-đầ y đủ yếu , trong khi đó là  NP-đầy đủ mạ nh nếu
trọ ng số và lợ i nhuậ n đượ c cho dướ i dạ ng số hữ u tỉ.  Tuy nhiên, trong trườ ng
hợ p trọ ng số hữ u tỉ và lợ i nhuậ n, 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 bài tốn
Ví dụ về mộ t bài tố n xếp ba lơ giớ i hạ n 1 chiều: chọ n cá c hộ p nà o để
là m cự c đạ i lượ ng tiền trong khi giữ đượ c tổ ng khố i lượ ng dướ i 15 kg?
Bà i tố n đa chiều có thể xét đến khố i lượ ng riêng và kích thướ c củ a cá 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: nếu mỗ i hộ p có sẵ n số lượ ng bấ t kỳ thì có ba hộ p mà u và ng
và ba hộ p mà u xá m; nếu chỉ có cá c hộ p đượ c hiển thị thì có tấ t cả 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 và giá trị
từ ng vậ t.

OutPut:Số lượ ng đồ vậ t mỗ i loạ i có thể chứ a,Tổ ng giá trị củ a cá c vậ t đượ c chọ n
là 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 bài tốn
Giả i ví dụ trên ta có bả ng như sau
Hạ n
mứ c

1

2

3

4

5

Số Lượ ng

1

1

1

1


1

Giá trị

4

2

10

2

1

12

1

4

2

1

Trọ ng
lượ ng

5


B1: Hố n đổ i vị trí cá c phầ n tử sao cho giá trị trên trọ ng lượ ng vậ t đó (giatri /
trongluong) sắ p xếp giả m dầ n.
B2: Lự a chọ n các vậ t và o trong ba lô sao cho tổ ng giá trị cá c vậ t đượ c chọ n lớ n
nhấ t mà khô ng vượ t quá sứ c chứ a củ a ba lô .
B3 : Tổ ng kết lạ i cá c vậ t phẩ m đã chọ n.
=> Kết quả ta tìm đượ c là : Tổ ng giá trị là 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 là 15kg, Khố i lượ ng balo cò n trố ng 0kg.
2.3.1 Giải bài toán bằng thuật toán nhánh cận
1. Sắ p xếp tấ t cả các mụ c theo thứ tự giả m dầ n củ a tỷ lệ giá trị trên đơn vị
trọ ng lượ ng để có thể tính giớ i hạ n trên bằ ng cá ch sử dụ ng Phương phá p
tiếp cậ n Tham lam.
2. Khở i tạ o lợ i nhuậ n tố i đa, maxProfit = 0
3. Tạ o mộ t hà ng đợ i trố ng, Q.
4. Tạ o mộ t nú t giả củ a câ y quyết định và xếp nó và o hà ng Q. Lợ i nhuậ n và
trọ ng lượ ng củ a nú t giả bằ ng 0.
5. Là m theo sau khi Q khô ng trố ng.
 Trích xuấ t mộ t mụ c từ Q. Gọ i mụ c đượ c trích xuấ t là 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 hơn
maxProfit, thì 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 hơn
maxProfit, thì hã y thêm nú t cấ p tiếp theo và o Q.
 Hã y xem xét trườ ng hợ p khi nú t cấ p tiếp theo khô ng đượ c coi là mộ t
phầ n củ a giả i phá p và thêm mộ t nú t và o hà ng đợ i vớ i cấ p như tiếp
theo, nhưng trọ ng số và lợ i nhuậ n mà khơ ng tính đến cá c nú t cấp tiếp
theo.
19


Đầ u và o:
// Điều đầ u tiên trong mỗ i cặ p là trọ ng lượ ng củ a mặ t hà ng

// và điều thứ hai là 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 có thể = 235
Sơ đồ dướ i đâ y minh họ a. Cá c mặ t hà ng là
đượ c coi là sắ p xếp theo giá trị / trọ ng lượ ng.

Hình 2.2: Sơ đồ giả i thuậ t
20



×