SlideShare a Scribd company logo
1 of 39
Download to read offline
Bài toán tối ưu
Ngô Xuân Bách
Học viện Công nghệ Bưu chính Viễn thông
Khoa Công nghệ thông tin 1
Toán rời rạc 1
Nội dung
http://www.ptit.edu.vn
2
 Giới thiệu bài toán
 Thuật toán duyệt toàn bộ
 Thuật toán nhánh cận
 Bài tập
Giới thiệu bài toán tối ưu
http://www.ptit.edu.vn
3
 Bài toán đếm: Đếm tất cả các cấu hình tổ hợp thỏa
mãn các ràng buộc của bài toán. Phương pháp giải mong
muốn là xây dựng được một công thức tính nghiệm của
bài toán.
 Bài toán liệt kê: Xem xét tất cả các cấu hình tổ hợp
thỏa mãn các ràng buộc của bài toán. Phương pháp giải
thường đưa về một thuật toán vét cạn (thuật toán sinh,
thuật toán quay lui,…).
 Bài toán tối ưu: Trong số cấu hình tổ hợp thỏa mãn
yêu cầu của bài toán, hãy lựa chọn nghiệm có giá trị sử
dụng tốt nhất (tối ưu hàm mục tiêu).
Phát biểu bài toán tối ưu
http://www.ptit.edu.vn
4
 Tìm cực đại (hoặc cực tiểu) của 𝑓(𝑥) → 𝑀𝑎𝑥(𝑀𝑖𝑛) với
điều kiện 𝑥 ∈ 𝐷, trong đó 𝐷 là tập hợp hữu hạn
o Hàm 𝑓(𝑥) được gọi là hàm mục tiêu của bài toán
o Mỗi phần tử 𝑥 ∈ 𝐷 được gọi là một phương án, 𝐷 là tập phương
án của bài toán
o Phương án 𝑥∗ ∈ 𝐷 làm cho hàm mục tiêu có giá trị lớn nhất (nhỏ
nhất) được gọi là phương án tối ưu của bài toán
o 𝑓∗
= 𝑓(𝑥∗
) được gọi là giá trị tối ưu của bài toán
Ví dụ 1 (1/4)
http://www.ptit.edu.vn
5
 Bài toán cái túi: Một nhà thám hiểm cần đem theo một
cái túi trọng lượng không quá 𝐵. Có 𝑁 đồ vật cần đem
theo. Đồ vật thứ 𝑖 có trọng lượng 𝑎𝑖, có giá trị sử dụng
𝑐𝑖 (𝑖 = 1, 2, . . . , 𝑁; 𝑎𝑖, 𝑐𝑖 ∈ 𝑍
+
). Hãy tìm cách đưa đồ vật
vào túi cho nhà thám hiểm sao cho tổng giá trị sử dụng
các đồ vật trong túi là lớn nhất.
Ví dụ 1 (2/4)
http://www.ptit.edu.vn
6
 Tập phương án của bài toán: Mỗi phương án của bài
toán là một xâu nhị phân có độ dài 𝑁. Trong đó, 𝑥𝑖 = 1
tương ứng với đồ vật 𝑖 được đưa vào túi, 𝑥𝑖 = 0 tương
ứng với đồ vật 𝑖 không được đưa vào túi. Tập các xâu
nhị phân 𝑋 = (𝑥1, . . . , 𝑥𝑁) còn phải thỏa mãn điều kiện
tổng trọng lượng không vượt quá 𝐵. Nói cách khác, tập
phương án 𝐷 của bài toán được xác định như công thức
dưới đây.
( )






=

=
=
= 
=
N
i
i
i
i
N x
B
x
a
X
g
x
x
x
X
D
1
2
1 1
,
0
;
)
(
:
,..,
,
Ví dụ 1 (3/4)
http://www.ptit.edu.vn
7
 Hàm mục tiêu của bài toán: Ứng với mỗi phương án
𝑋 = (𝑥1, . . . , 𝑥𝑁) ∈ 𝐷, ta cần tìm phương án
𝑋∗ = (𝑥1
∗
, . . . , 𝑥𝑁
∗
) sao cho tổng giá trị sử dụng các đồ vật
trong túi là lớn nhất. Tổng giá trị sử dụng các đồ vật được
xác định theo công thức sau:
( ) max
1
→
= 
=
N
i
i
i x
c
X
f
Ví dụ 1 (4/4)
http://www.ptit.edu.vn
8
 Bài toán có thể phát biểu lại như sau: Trong số các xâu nhị phân 𝑋 =
(𝑥1, . . . , 𝑥𝑁) thỏa mãn điều kiện 𝑔(𝑋) ≤ 𝐵, hãy tìm vector 𝑋∗ để hàm 𝑓(𝑋) có
giá trị lớn nhất.
 Đầu vào (Input):
o Số lượng đồ vật: 𝑁
o Vector trọng lượng: 𝐴 = (𝑎1, 𝑎2, . . . , 𝑎𝑁)
o Vector giá trị sử dụng: 𝐶 = (𝑐1, 𝑐2, . . . , 𝑐𝑁)
 Đầu ra (Output):
o Phương án tối ưu của bài toán: 𝑋∗ = (𝑥1
∗
, . . . , 𝑥𝑁
∗
) ∈ 𝐷 để f(𝑋∗) lớn nhất
o Giá trị tối ưu của bài toán: f(𝑋∗
)
( ) ( )






=

=
=
= 
=
N
i
i
i
i
N x
B
x
a
X
g
x
x
x
X
D
1
2
1 1
,
0
;
:
,..,
,
( ) max
1
→
= 
=
N
i
i
i x
c
X
f với 𝑋 ∈ 𝐷
Ví dụ 2 (1/4)
http://www.ptit.edu.vn
9
 Bài toán người du lịch: Một người du lịch muốn đi
tham quan 𝑁 thành phố 𝑇1, 𝑇2, . . . , 𝑇𝑁. Xuất phát tại một
thành phố nào đó, người du lịch muốn qua tất cả các
thành phố còn lại mỗi thành phố đúng một lần rồi trở lại
thành phố ban đầu. Biết 𝑐𝑖𝑗 là chi phí đi lại từ thành phố
𝑇𝑖 đến thành phố 𝑇𝑗. Hãy tìm một hành trình cho người
đi du lịch có tổng chi phí là nhỏ nhất.
Ví dụ 2 (2/4)
http://www.ptit.edu.vn
10
 Tập phương án của bài toán: Không hạn chế tính
tổng quát của bài toán, ta cố định xuất phát là thành phố
𝑇1 = 1 . Khi đó, mỗi hành trình của người du lịch
𝑇1→𝑇2→. . . →𝑇𝑁 →𝑇1 được xem như một hoán vị của
1,2, … , 𝑁 là 𝑋 = (𝑥1, 𝑥2, . . . , 𝑥𝑁), trong đó 𝑥1 = 1. Như vậy,
tập phương án 𝐷 của bài toán là tập các hoán vị 𝑋 =
(𝑥1, 𝑥2, . . . , 𝑥𝑁) với 𝑥1 = 1.
( ) ( )
 
N
j
i
x
x
j
i
x
x
x
x
X
D j
i
N ,...,
2
,
1
,
;
:
1
|
,...,
, 1
2
1 =




=
=
=
Ví dụ 2 (3/4)
http://www.ptit.edu.vn
11
 Hàm mục tiêu của bài toán: Ứng với mỗi phương án
𝑋 = (𝑥1, . . . , 𝑥𝑁) ∈ 𝐷, chi phí đi lại từ thành phố thứ 𝑖 đến
thành phố 𝑖 + 1 là 𝐶[𝑋[𝑖]][𝑋 𝑖 + 1 ] (𝑖 = 1, 2, . . . , 𝑁 − 1).
Sau đó ta quay lại thành phố ban đầu với chi phí là
𝐶 𝑋 𝑁 𝑋 1 . Như vậy, tổng chi phí của toàn bộ hành
trình được xác định theo công thức:
( ) min
1
1
1
1
→
+
= 
−
=
+ x
x
N
i
x
x N
i
i
c
c
X
f
Ví dụ 2 (4/4)
http://www.ptit.edu.vn
12
 Bài toán có thể mô tả lại như sau
 Đầu vào (Input):
o Số lượng thành phố: 𝑁
o Ma trận chi phí cấp 𝑁:{𝑐𝑖𝑗}
 Đầu ra (Output):
o Phương án tối ưu của bài toán: 𝑋∗ = (𝑥1
∗
, . . . , 𝑥𝑁
∗
) ∈ 𝐷 để f(𝑋∗) nhỏ
nhất
o Giá trị tối ưu của bài toán: f(𝑋∗)
( ) ( )
 
N
j
i
x
x
j
i
x
x
x
x
X
D j
i
N ,...,
2
,
1
,
;
:
1
|
,...,
, 1
2
1 =




=
=
=
( ) min
1
1
1
1
→
+
= 
−
=
+ x
x
N
i
x
x N
i
i
c
c
X
f với 𝑋 ∈ 𝐷
Ví dụ 3 (1/3)
http://www.ptit.edu.vn
13
 Bài toán cho thuê máy: Một ông chủ có một chiếc máy
cho thuê. Đầu tháng ông nhận được yêu cầu của 𝑀
khách hàng thuê máy cho 𝑁 ngày kế tiếp. Mỗi khách
hàng 𝑖 cho biết tập 𝑁𝑖 ngày họ cần thuê máy. Ông chủ có
quyền hoặc từ chối yêu cầu của khách hàng, hoặc nếu
chấp nhận yêu cầu của khách ông phải bố trí máy theo
đúng những ngày mà khách yêu cầu. Hãy tìm phương án
thuê máy giúp ông chủ sao cho tổng số ngày thuê máy là
nhiều nhất.
Ví dụ 3 (2/3)
http://www.ptit.edu.vn
14
 Tập phương án của bài toán: Gọi 𝐼 = { 1, 2, . . . , 𝑀} là
tập chỉ số khách hàng, 𝑆 là tập của tất các tập con của 𝐼.
Khi đó, tập các phương án cho thuê máy là:
 Xây dựng hàm mục tiêu: Ứng với mỗi phương án 𝐽 ∈
𝐷, tổng số ngày cho thuê máy là:
 
J
p
k
N
N
S
J
D p
k 

=

= ,
,
| 

( ) max
|
| →
= 
J
j
j
N
J
f
Ví dụ 3 (3/3)
http://www.ptit.edu.vn
15
 Bài toán có thể mô tả lại như sau
 Đầu vào (Input):
o Số lượng khách hàng: 𝑀
o Số ngày thuê máy: 𝑁
o Ma trận [0,1] mô tả số ngày thuê máy mỗi khách: 𝐴[𝑀][𝑁]
 Đầu ra (Output):
o Phương án tối ưu của bài toán: 𝐽∗ ∈ 𝑆
o Giá trị tối ưu: 𝑓(𝐽∗
)
 Trong đó:
 
J
p
k
N
N
S
J
D p
k 

=

= ,
,
: 

( ) max
|
| →
= 
J
j
j
N
J
f với 𝑋 ∈ 𝐷
Ví dụ 4 (1/3)
http://www.ptit.edu.vn
16
 Bài toán phân công công việc: Một hệ gồm có 𝑁 quá
trình thực hiện 𝑁 việc song hành. Biết mỗi quá trình đều
có thể thực hiện được 𝑁 việc kể trên nhưng với chi phí
thời gian khác nhau. Biết 𝑐𝑖𝑗 là thời gian quá trình 𝑖 thực
hiện việc 𝑗. Hãy tìm phương án giao việc cho mỗi quá
trình sao cho tổng thời gian thực hiện 𝑁 việc kể trên là ít
nhất.
Ví dụ 4 (2/3)
http://www.ptit.edu.vn
17
 Tập phương án của bài toán: Gọi 𝑋 = (𝑥1, 𝑥2, . . . , 𝑥𝑁) là
một hoán vị của 1, 2, . . . , 𝑁. Nếu 𝑥𝑖 = 𝑗 thì ta xem quá
trình thứ 𝑖 được thực hiện việc 𝑗. Như vậy, tập phương
án của bài toán chính là tập các hoán vị của 1, 2, . . . , 𝑁.
 Hàm mục tiêu của bài toán: Ứng với mỗi phương án
𝑋 ∈ 𝐷, thời gian thực hiện của mỗi phương án là:
( )
 
N
j
i
x
x
j
i
x
x
x
X
D j
i
N ,...,
2
,
1
,
,
|
:
,...,
,
( 2
1 =



=
=
( ) 
=
→
=
N
i
i
x
i
c
X
f
1
min
]]
[
,
[
Ví dụ 4 (3/3)
http://www.ptit.edu.vn
18
 Bài toán có thể mô tả lại như sau:
 Đầu vào (Input):
o Số lượng quá trình: 𝑁
o Ma trận chi phí thời gian: 𝐶[𝑁][𝑁]
 Đầu ra (Output):
o Phương án tối ưu của bài toán: 𝑋∗
∈ 𝐷
o Giá trị tối ưu: 𝑓(𝑋∗)
 Trong đó:
( ) 
=
→
=
N
i
i
x
i
c
X
f
1
min
]]
[
,
[
( )
 
N
j
i
x
x
j
i
x
x
x
X
D j
i
N ,...,
2
,
1
,
,
|
:
)
,...,
,
( 2
1 =



=
=
với 𝑋 ∈ 𝐷
Nội dung
http://www.ptit.edu.vn
19
 Giới thiệu bài toán
 Thuật toán duyệt toàn bộ
 Thuật toán nhánh cận
 Bài tập
Thuật toán duyệt toàn bộ
http://www.ptit.edu.vn
20
 Giả sử 𝐷 là tập phương án. Ta cần tìm 𝑋∗ ∈ 𝐷 sao cho
𝑓(𝑋∗
)→max(min). Phương pháp duyệt toàn bộ được tiến
hành như sau:
Bước 1 (Khởi tạo):
𝑋𝑂𝑃𝑇 = ∅; //Phương án tối ưu
𝐹𝑂𝑃𝑇 = −  (+ );//Giá trị tối ưu
Bước 2( Lặp):
for (𝑋 ∈ 𝐷){ //lấy mỗi phần tử trên tập phương án
𝑆 = 𝑓(𝑋);// tính giá trị hàm mục tiêu cho phương án X
if ( 𝐹𝑂𝑃𝑇 < 𝑆 ) { //Cập nhật phương án tối ưu
𝐹𝑂𝑃𝑇 = 𝑆; //Giá trị tối ưu mới được xác lập
𝑋𝑂𝑃𝑇 = 𝑋;// Phương án tối ưu mới
}
}
Bước 3 (Trả lại kết quả):
Return(𝑋𝑂𝑃𝑇, 𝐹𝑂𝑃𝑇);
Đặc điểm thuật toán duyệt toàn bộ
http://www.ptit.edu.vn
21
 Ưu điểm:
o Đơn giản dễ cài đặt
o Có thể thực hiện trên mọi bài toán tối ưu
 Nhược điểm:
o Chi phí tính toán lớn
Bài tập
http://www.ptit.edu.vn
22
 Viết chương trình giải các bài toán dưới đây trên máy
tính sử dụng thuật toán duyệt toàn bộ:
1) Bài toán cái túi
2) Bài toán người du lịch
3) Bài toán cho thuê máy
4) Bài toán phân công công công việc
Nội dung
http://www.ptit.edu.vn
23
 Giới thiệu bài toán
 Thuật toán duyệt toàn bộ
 Thuật toán nhánh cận
 Bài tập
Thuật toán nhánh cận
http://www.ptit.edu.vn
24
 Bài toán tối ưu tổ hợp được phát biểu lại dưới dạng sau:
Tìm min{𝑓(𝑋) ∶ 𝑋 ∈ 𝐷 }
 Trong đó, 𝐷 là tập hữu hạn các phần tử. Tập 𝐷 có thể được mô tả như sau:
𝐷 = {𝑋 = (𝑥1, 𝑥2, . . . , 𝑥𝑛) ∈ 𝐴1 × 𝐴2 × ⋯ × 𝐴𝑛: 𝑋 𝑡ℎỏ𝑎 𝑚ã𝑛 𝑡í𝑛ℎ 𝑐ℎấ𝑡 𝑃 }
 Xây dựng hàm xác định cận dưới của hàm mục tiêu:
 Thuật toán nhánh cận có thể giải được bài toán đặt ra nếu ta tìm được một
hàm 𝑔 xác định trên tất cả phương án bộ phận của bài toán thỏa mãn bất
đẳng thức 𝑔(𝑎1, 𝑎2, … , 𝑎𝑘) ≤ min{𝑓(𝑋): 𝑋 ∈ 𝐷, 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘}
 Nói cách khác, giá trị của hàm 𝑔 tại phương án bộ phận
cấp 𝑘 (𝑎1, 𝑎2, . . . , 𝑎𝑘) không vượt quá giá trị nhỏ nhất của hàm mục tiêu trên
tập con các phương án
𝐷(𝑎1, 𝑎2, . . . , 𝑎𝑘) = {𝑋 ∈ 𝐷: 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘}
 Giá trị của hàm 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) là cận dưới của hàm mục tiêu trên tập
𝐷(𝑎1, 𝑎2, . . . , 𝑎𝑘). Hàm 𝑔 được gọi là hàm cận dưới, 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) gọi là cận
dưới của tập 𝐷(𝑎1, 𝑎2, . . . , 𝑎𝑘).
Hạn chế các phương án duyệt
http://www.ptit.edu.vn
25
 Giả sử ta đã có hàm 𝑔. Để giảm bớt khối lượng duyệt trên tập
phương án trong quá trình liệt kê bằng thuật toán quay lui ta xác
định được 𝑋∗
là phương án làm cho hàm mục tiêu có giá trị nhỏ nhất
trong số các phương án tìm được 𝑓∗ = 𝑓(𝑋∗). Ta gọi 𝑋∗ là phương
án tốt nhất hiện có, 𝑓∗
là kỷ lục hiện tại.
Nếu
𝑓∗ < 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘)
thì
𝑓∗ < 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) ≤ min{𝑓(𝑋): 𝑋 ∈ 𝐷, 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘}
 Điều này có nghĩa tập 𝐷(𝑎1, 𝑎2, . . . , 𝑎𝑘) chắc chắn không chứa phương
án tối ưu. Trong trường hợp này ta không cần phải triển khai
phương án bộ phận (𝑎1, 𝑎2, . . . , 𝑎𝑘). Tập 𝐷(𝑎1, 𝑎2, … , 𝑎𝑘) cũng bị loại
bỏ khỏi quá trình duyệt. Nhờ đó, số các tập cần duyệt nhỏ đi trong
quá trình tìm kiếm.
Thuật toán nhánh cận (giả mã)
http://www.ptit.edu.vn
26
Thuật toán Branch_And_Bound (𝑘) {
for (𝑎𝑘 ∈ 𝐴𝑘){
if(<chấp nhận 𝑎𝑘>){
𝑥𝑘 = 𝑎𝑘;
if ( 𝑘 == 𝑛 )
<Cập nhật kỷ lục>;
else if ( 𝑔 𝑎1, 𝑎2, . . . , 𝑎𝑘 < 𝑓∗)
Branch_And_Bound (𝑘 + 1) ;
}
}
}
Xây dựng hàm 𝑔
http://www.ptit.edu.vn
27
 Việc xây dựng hàm 𝑔 phụ thuộc vào từng bài toán tối ưu
tổ hợp cụ thể. Ta cố gắng xây dựng 𝑔 sao cho:
o Việc tính giá trị của g phải đơn giản hơn việc giải bài toán tối ưu
tổ hợp
min 𝑓 𝑋 : 𝑋 ∈ 𝐷, 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘
o Giá trị của 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) phải sát với giá trị
min 𝑓 𝑋 : 𝑋 ∈ 𝐷, 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘
Hai yêu cầu này thường đối lập nhau
và khó thỏa mãn đồng thời trong thực tế
Giải bài toán cái túi bằng
thuật toán nhánh cận (1/4)
http://www.ptit.edu.vn
28
 Một dạng khác của bài toán cái túi: Giả sử có 𝑛 loại
đồ vật và số lượng đồ vật mỗi loại không hạn chế. Đồ vật
loại 𝑗 có trọng lượng 𝑎𝑗 và giá trị sử dụng là 𝑐𝑗 (𝑗 =
1,2, … , 𝑛). Cần chất các đồ vật này vào một cái túi có
trọng lượng 𝑏 sao cho tổng giá trị sử dụng của các đồ
vật trong túi là lớn nhất (mỗi loại đồ vật có thể lấy nhiều
lần).
Giải bài toán cái túi bằng
thuật toán nhánh cận (2/4)
http://www.ptit.edu.vn
29
 Bài toán cái túi có thể được phát biểu tổng quát dưới
dạng sau: Tìm giá trị lớn nhất của hàm mục tiêu 𝑓(𝑋) với
𝑋 ∈ 𝐷. Trong đó, 𝑓(𝑋) được xác định như dưới đây:
 Ví dụ về một bài toán cái túi:
( )






=


=
=  
= =
+
n
i
n
i
i
i
i
i
i n
i
Z
x
b
x
a
x
c
X
f
f
1 1
,...,
2
,
1
,
,
:
max
*
( )






=
+


=
= 
=
n
i
i
i
i
n n
i
Z
x
b
x
a
x
x
x
X
D
1
2
1 ,...,
2
,
1
,
,
:
,...,
,
( )
.
4
,
3
,
2
,
1
,
,
8
4
2
3
5
max,
6
3
5
10
4
3
2
1
4
3
2
1
=


+
+
+
→
+
+
+
=
+ j
Z
x
x
x
x
x
x
x
x
x
X
f
j
Giải bài toán cái túi bằng
thuật toán nhánh cận (3/4)
http://www.ptit.edu.vn
30
 Bước 1: Sắp xếp các đồ vật thỏa mãn
 Bước 2 (Lặp): Lặp trên các bài toán bộ phận cấp 𝑘 =
1, 2, . . . , 𝑛:
o Giá trị sử dụng của 𝑘 đồ vật trong túi:
o Trọng lượng còn lại của túi:
o Cận trên của phương án bộ phận cấp 𝑘:
 Bước 3 (Trả lại kết quả): Phương án tối ưu và giá trị tối ưu
tìm được
n
n
a
c
a
c
a
c


 ...
2
2
1
1

=
−
=
k
i
i
i
k x
a
b
b
1
𝛿𝑘 = ෍
𝑖=1
𝑘
𝑐𝑖𝑥𝑖
𝑔 𝑥1, 𝑥2, … , 𝑥𝑘 = 𝛿𝑘 + 𝑏𝑘
𝑐𝑘+1
𝑎𝑘+1
Giải bài toán cái túi bằng
thuật toán nhánh cận (4/4)
http://www.ptit.edu.vn
31
Thuật toán Branch_And_Bound (k) {
for (j = 𝑏𝑘/𝑎𝑘 ; j>=0; j--){
x[k] = j;
if (k==n) <Ghi nhận kỷ lục>;
else if (k + (ck+1*bk)/ak+1 >FOPT)
Branch_And_Bound(k+1);
}
}
;
k
k
k
k x
a
b
b −
=
;
k
k
k
k x
a
b
b +
=
𝛿𝑘 = 𝛿𝑘 + 𝑐𝑘𝑥𝑘;
𝛿𝑘 = 𝛿𝑘 − 𝑐𝑘𝑥𝑘;
Ví dụ 5 (1/2)
http://www.ptit.edu.vn
32
( )
.
4
,
3
,
2
,
1
,
,
8
4
2
3
5
max,
6
3
5
10
4
3
2
1
4
3
2
1
=


+
+
+
→
+
+
+
=
+ j
Z
x
x
x
x
x
x
x
x
x
X
f
j
Ví dụ 5 (2/2)
http://www.ptit.edu.vn
33
X1=0
X1=1
FOPT=-
(1) 1=10;
b1=3;g1=15
(1,1);2=15;
b2=0;g2=15;
(0);1=0;
b1=8;g1=40/3
(1,0);2=10;
b2=3;g2=14.5;
(1,1,0);3=15;
b3=0;g3=15;
(1,1,0,0);4=15;
b4=0;f*=15;
X2=1 X2=0
X3=0
X4=0
-Thu được phương án tối ưu
-Giá trị tối ưu
Loại vì g<15
Bài tập 1
http://www.ptit.edu.vn
34
Áp dụng thuật toán nhánh cận giải bài toán cái túi dưới
đây, chỉ rõ kết quả theo mỗi bước.
𝑓 𝑋 = 7𝑥1 + 4𝑥2 + 2𝑥3 → 𝑚𝑎𝑥
4𝑥1 + 3𝑥2 + 2𝑥3 ≤ 6
𝑥1, 𝑥2, 𝑥3 ∈ {0,1}.
Bài tập 2
http://www.ptit.edu.vn
35
Áp dụng thuật toán nhánh cận giải bài toán cái túi dưới
đây, chỉ rõ kết quả theo mỗi bước.
𝑓 𝑋 = 5𝑥1 + 𝑥2 + 8𝑥3 + 𝑥4 → max,
4𝑥1 + 2𝑥2 + 7𝑥3 + 𝑥4 ≤ 9,
𝑥1, 𝑥2, 𝑥3, 𝑥4 ∈ {0,1}.
Giải bài toán người du lịch bằng
thuật toán nhánh cận (1/4)
http://www.ptit.edu.vn
36
 Bài toán người du lịch có thể được phát biểu tổng quát
dưới dạng sau: Tìm giá trị nhỏ nhất của hàm mục tiêu
𝑓(𝑋) với 𝑋 ∈ 𝐷. Trong đó, 𝑓(𝑋) được xác định như dưới
đây:
 Ví dụ về ma trận chi phí
( )







+
=
= 
−
=
+
1
1
1
1 :
]
,
[
]
,
[
min
*
n
i
n
i
i D
X
x
x
c
x
x
c
X
f
f
( )
 
n
j
i
x
x
x
x
x
x
X
D j
i
n ,..,
2
,
1
,
,
1
:
,...,
, 1
2
1 =


=
=
=
0 3 14 18 15
3 0 4 22 20
17 9 0 16 4
6 3 7 0 12
9 15 11 5 0
Giải bài toán người du lịch bằng
thuật toán nhánh cận (2/4)
http://www.ptit.edu.vn
37
Gọi 𝑐𝑚𝑖𝑛 = min{𝑐[𝑖, 𝑗], 𝑖 , 𝑗 = 1, 2, . . . , 𝑛, 𝑖𝑗 } là giá trị nhỏ nhất của
ma trận chi phí. Phương pháp đánh giá cận dưới của mỗi bài
toán bộ phận cấp 𝑘 được tiến hành như sau. Giả sử ta đang có
hành trình bộ phận qua 𝑘 thành phố:
𝑇1→𝑇𝑢2
→. . . →𝑇𝑢𝑘
(𝑇1 = 1).
Khi đó, chi phí của phương án bộ phận cấp 𝑘 là:
 = 𝑐[1, 𝑢2] + 𝑐[𝑢2, 𝑢3] + ⋯ + 𝑐[𝑢𝑘−1, 𝑢𝑘].
Để phát triển hành trình bộ phận này thành hành trình đầy đủ,
ta cần phải qua 𝑛 − 𝑘 thành phố nữa rồi quay trở về thành phố
số 1. Như vậy, ta cần phải qua 𝑛 − 𝑘 + 1 đoạn đường nữa. Vì
mỗi đoạn đường đều có chi phí không nhỏ hơn 𝑐𝑚𝑖𝑛, nên cận
dưới của phương án bộ phận có thể được xác định:
𝑔(𝑢1, 𝑢2, … , 𝑢𝑘) =  + (𝑛 − 𝑘 + 1). 𝑐𝑚𝑖𝑛.
Giải bài toán người du lịch bằng
thuật toán nhánh cận (3/4)
http://www.ptit.edu.vn
38
Thuật toán Branch_And_Bound (k) {
for (j = 2; j<=n; j++){
if ( 𝑐ℎ𝑢𝑎𝑥𝑒𝑡[𝑗] ) {
𝑥[𝑘] = 𝑗; 𝑐ℎ𝑢𝑎𝑥𝑒𝑡[𝑗] = 𝐹𝑎𝑙𝑠𝑒;
 =  + 𝑐[ 𝑥[𝑘 − 1], 𝑥[𝑘]];
if ( k==n) Ghi_Nhan();
else if (  + (𝑛 − 𝑘 + 1) ∗ 𝑐𝑚𝑖𝑛 < 𝐹𝑂𝑃𝑇)
Branch_And_Bound (k+1);
𝑐ℎ𝑢𝑎𝑥𝑒𝑡[𝑗] = 𝑇𝑟𝑢𝑒;  =  − 𝑐[ 𝑥[𝑘 − 1], 𝑥[𝑘]];
}
}
}
Giải bài toán người du lịch bằng
thuật toán nhánh cận (4/4)
http://www.ptit.edu.vn
39
FOPT= +
(1,2), =3, g=15 (1,3), =14, g=26 (1,4), =18, g=30 (1,5), =15, g=27
(1,2,3), =7, g=16 (1,2,4), =25, g=34 (1,2,5), =23, g=32
(1,2,3,4), =23, g=29
(1,2,3,5), =11, g=17
(1,2,3,4,5), =35, g=38
(1,2,3,5,4), =16, g=19
Loại vì có cận
dưới lớn hơn 22
Hành trình:1,2,3,5,4,1
Chi phí: 22
Hành trình:1,2,3,4,5,1
Chi phí: 44

More Related Content

Similar to 4-Optimization.pdf

ThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNguest717ec2
 
Tính toán khoa học - Chương 8: Quy hoạch tuyến tính
Tính toán khoa học - Chương 8: Quy hoạch tuyến tínhTính toán khoa học - Chương 8: Quy hoạch tuyến tính
Tính toán khoa học - Chương 8: Quy hoạch tuyến tínhChien Dang
 
Tuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfTuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfNguynVnTun74
 
Toan kinh te
Toan kinh teToan kinh te
Toan kinh teHeo Gòm
 
Bai giang-toan-kinh-te-tin-hoc
Bai giang-toan-kinh-te-tin-hocBai giang-toan-kinh-te-tin-hoc
Bai giang-toan-kinh-te-tin-hocLê Ngọc Huyền
 
Chuyen de tich phan cuc hay
Chuyen de tich phan cuc hayChuyen de tich phan cuc hay
Chuyen de tich phan cuc hayOanh MJ
 
báo-cáo-mô-hình-hóa-nhóm-15.pdf
báo-cáo-mô-hình-hóa-nhóm-15.pdfbáo-cáo-mô-hình-hóa-nhóm-15.pdf
báo-cáo-mô-hình-hóa-nhóm-15.pdfngTrnh17
 
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Local sakainame   501127 ktl_trình hlmt1 a01 fall 2013 _ modulesLocal sakainame   501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modulesTrần Văn Nam
 
Tich phan %28 nguyen duy khoi%29
Tich phan %28 nguyen duy khoi%29Tich phan %28 nguyen duy khoi%29
Tich phan %28 nguyen duy khoi%29trongphuckhtn
 
Tich phan (nguyen duy khoi)
Tich phan (nguyen duy khoi)Tich phan (nguyen duy khoi)
Tich phan (nguyen duy khoi)roggerbob
 
Bài tập CTDL và GT 8
Bài tập CTDL và GT 8Bài tập CTDL và GT 8
Bài tập CTDL và GT 8Hồ Lợi
 

Similar to 4-Optimization.pdf (20)

ThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáN
 
Chap5 new
Chap5 newChap5 new
Chap5 new
 
Tính toán khoa học - Chương 8: Quy hoạch tuyến tính
Tính toán khoa học - Chương 8: Quy hoạch tuyến tínhTính toán khoa học - Chương 8: Quy hoạch tuyến tính
Tính toán khoa học - Chương 8: Quy hoạch tuyến tính
 
Tuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfTuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdf
 
Toan kinh te
Toan kinh teToan kinh te
Toan kinh te
 
Gt de quy_2
Gt de quy_2Gt de quy_2
Gt de quy_2
 
Gt de quy
Gt de quyGt de quy
Gt de quy
 
Bai giang-toan-kinh-te-tin-hoc
Bai giang-toan-kinh-te-tin-hocBai giang-toan-kinh-te-tin-hoc
Bai giang-toan-kinh-te-tin-hoc
 
Chuyen de tich phan cuc hay
Chuyen de tich phan cuc hayChuyen de tich phan cuc hay
Chuyen de tich phan cuc hay
 
báo-cáo-mô-hình-hóa-nhóm-15.pdf
báo-cáo-mô-hình-hóa-nhóm-15.pdfbáo-cáo-mô-hình-hóa-nhóm-15.pdf
báo-cáo-mô-hình-hóa-nhóm-15.pdf
 
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Local sakainame   501127 ktl_trình hlmt1 a01 fall 2013 _ modulesLocal sakainame   501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modules
 
Tich phan %28 nguyen duy khoi%29
Tich phan %28 nguyen duy khoi%29Tich phan %28 nguyen duy khoi%29
Tich phan %28 nguyen duy khoi%29
 
Tich phan (nguyen duy khoi)
Tich phan (nguyen duy khoi)Tich phan (nguyen duy khoi)
Tich phan (nguyen duy khoi)
 
Phép Tính Tích Phân Và Áp Dụng.doc
Phép Tính Tích Phân Và Áp Dụng.docPhép Tính Tích Phân Và Áp Dụng.doc
Phép Tính Tích Phân Và Áp Dụng.doc
 
Luận văn thạc sĩ: Quy hoạch toàn phương, HAY, 9đ
Luận văn thạc sĩ: Quy hoạch toàn phương, HAY, 9đLuận văn thạc sĩ: Quy hoạch toàn phương, HAY, 9đ
Luận văn thạc sĩ: Quy hoạch toàn phương, HAY, 9đ
 
GV
GVGV
GV
 
Luận văn: Bài toán biên cho hệ phương trình vi phân hàm tuyến tính
Luận văn: Bài toán biên cho hệ phương trình vi phân hàm tuyến tínhLuận văn: Bài toán biên cho hệ phương trình vi phân hàm tuyến tính
Luận văn: Bài toán biên cho hệ phương trình vi phân hàm tuyến tính
 
Bài tập CTDL và GT 8
Bài tập CTDL và GT 8Bài tập CTDL và GT 8
Bài tập CTDL và GT 8
 
Ctdl ifi 1997
Ctdl   ifi 1997Ctdl   ifi 1997
Ctdl ifi 1997
 
Đề tài: Thiết kế và phân tích thuật toán, HAY
Đề tài: Thiết kế và phân tích thuật toán, HAYĐề tài: Thiết kế và phân tích thuật toán, HAY
Đề tài: Thiết kế và phân tích thuật toán, HAY
 

Recently uploaded

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGhoinnhgtctat
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

4-Optimization.pdf

  • 1. Bài toán tối ưu Ngô Xuân Bách Học viện Công nghệ Bưu chính Viễn thông Khoa Công nghệ thông tin 1 Toán rời rạc 1
  • 2. Nội dung http://www.ptit.edu.vn 2  Giới thiệu bài toán  Thuật toán duyệt toàn bộ  Thuật toán nhánh cận  Bài tập
  • 3. Giới thiệu bài toán tối ưu http://www.ptit.edu.vn 3  Bài toán đếm: Đếm tất cả các cấu hình tổ hợp thỏa mãn các ràng buộc của bài toán. Phương pháp giải mong muốn là xây dựng được một công thức tính nghiệm của bài toán.  Bài toán liệt kê: Xem xét tất cả các cấu hình tổ hợp thỏa mãn các ràng buộc của bài toán. Phương pháp giải thường đưa về một thuật toán vét cạn (thuật toán sinh, thuật toán quay lui,…).  Bài toán tối ưu: Trong số cấu hình tổ hợp thỏa mãn yêu cầu của bài toán, hãy lựa chọn nghiệm có giá trị sử dụng tốt nhất (tối ưu hàm mục tiêu).
  • 4. Phát biểu bài toán tối ưu http://www.ptit.edu.vn 4  Tìm cực đại (hoặc cực tiểu) của 𝑓(𝑥) → 𝑀𝑎𝑥(𝑀𝑖𝑛) với điều kiện 𝑥 ∈ 𝐷, trong đó 𝐷 là tập hợp hữu hạn o Hàm 𝑓(𝑥) được gọi là hàm mục tiêu của bài toán o Mỗi phần tử 𝑥 ∈ 𝐷 được gọi là một phương án, 𝐷 là tập phương án của bài toán o Phương án 𝑥∗ ∈ 𝐷 làm cho hàm mục tiêu có giá trị lớn nhất (nhỏ nhất) được gọi là phương án tối ưu của bài toán o 𝑓∗ = 𝑓(𝑥∗ ) được gọi là giá trị tối ưu của bài toán
  • 5. Ví dụ 1 (1/4) http://www.ptit.edu.vn 5  Bài toán cái túi: Một nhà thám hiểm cần đem theo một cái túi trọng lượng không quá 𝐵. Có 𝑁 đồ vật cần đem theo. Đồ vật thứ 𝑖 có trọng lượng 𝑎𝑖, có giá trị sử dụng 𝑐𝑖 (𝑖 = 1, 2, . . . , 𝑁; 𝑎𝑖, 𝑐𝑖 ∈ 𝑍 + ). Hãy tìm cách đưa đồ vật vào túi cho nhà thám hiểm sao cho tổng giá trị sử dụng các đồ vật trong túi là lớn nhất.
  • 6. Ví dụ 1 (2/4) http://www.ptit.edu.vn 6  Tập phương án của bài toán: Mỗi phương án của bài toán là một xâu nhị phân có độ dài 𝑁. Trong đó, 𝑥𝑖 = 1 tương ứng với đồ vật 𝑖 được đưa vào túi, 𝑥𝑖 = 0 tương ứng với đồ vật 𝑖 không được đưa vào túi. Tập các xâu nhị phân 𝑋 = (𝑥1, . . . , 𝑥𝑁) còn phải thỏa mãn điều kiện tổng trọng lượng không vượt quá 𝐵. Nói cách khác, tập phương án 𝐷 của bài toán được xác định như công thức dưới đây. ( )       =  = = =  = N i i i i N x B x a X g x x x X D 1 2 1 1 , 0 ; ) ( : ,.., ,
  • 7. Ví dụ 1 (3/4) http://www.ptit.edu.vn 7  Hàm mục tiêu của bài toán: Ứng với mỗi phương án 𝑋 = (𝑥1, . . . , 𝑥𝑁) ∈ 𝐷, ta cần tìm phương án 𝑋∗ = (𝑥1 ∗ , . . . , 𝑥𝑁 ∗ ) sao cho tổng giá trị sử dụng các đồ vật trong túi là lớn nhất. Tổng giá trị sử dụng các đồ vật được xác định theo công thức sau: ( ) max 1 → =  = N i i i x c X f
  • 8. Ví dụ 1 (4/4) http://www.ptit.edu.vn 8  Bài toán có thể phát biểu lại như sau: Trong số các xâu nhị phân 𝑋 = (𝑥1, . . . , 𝑥𝑁) thỏa mãn điều kiện 𝑔(𝑋) ≤ 𝐵, hãy tìm vector 𝑋∗ để hàm 𝑓(𝑋) có giá trị lớn nhất.  Đầu vào (Input): o Số lượng đồ vật: 𝑁 o Vector trọng lượng: 𝐴 = (𝑎1, 𝑎2, . . . , 𝑎𝑁) o Vector giá trị sử dụng: 𝐶 = (𝑐1, 𝑐2, . . . , 𝑐𝑁)  Đầu ra (Output): o Phương án tối ưu của bài toán: 𝑋∗ = (𝑥1 ∗ , . . . , 𝑥𝑁 ∗ ) ∈ 𝐷 để f(𝑋∗) lớn nhất o Giá trị tối ưu của bài toán: f(𝑋∗ ) ( ) ( )       =  = = =  = N i i i i N x B x a X g x x x X D 1 2 1 1 , 0 ; : ,.., , ( ) max 1 → =  = N i i i x c X f với 𝑋 ∈ 𝐷
  • 9. Ví dụ 2 (1/4) http://www.ptit.edu.vn 9  Bài toán người du lịch: Một người du lịch muốn đi tham quan 𝑁 thành phố 𝑇1, 𝑇2, . . . , 𝑇𝑁. Xuất phát tại một thành phố nào đó, người du lịch muốn qua tất cả các thành phố còn lại mỗi thành phố đúng một lần rồi trở lại thành phố ban đầu. Biết 𝑐𝑖𝑗 là chi phí đi lại từ thành phố 𝑇𝑖 đến thành phố 𝑇𝑗. Hãy tìm một hành trình cho người đi du lịch có tổng chi phí là nhỏ nhất.
  • 10. Ví dụ 2 (2/4) http://www.ptit.edu.vn 10  Tập phương án của bài toán: Không hạn chế tính tổng quát của bài toán, ta cố định xuất phát là thành phố 𝑇1 = 1 . Khi đó, mỗi hành trình của người du lịch 𝑇1→𝑇2→. . . →𝑇𝑁 →𝑇1 được xem như một hoán vị của 1,2, … , 𝑁 là 𝑋 = (𝑥1, 𝑥2, . . . , 𝑥𝑁), trong đó 𝑥1 = 1. Như vậy, tập phương án 𝐷 của bài toán là tập các hoán vị 𝑋 = (𝑥1, 𝑥2, . . . , 𝑥𝑁) với 𝑥1 = 1. ( ) ( )   N j i x x j i x x x x X D j i N ,..., 2 , 1 , ; : 1 | ,..., , 1 2 1 =     = = =
  • 11. Ví dụ 2 (3/4) http://www.ptit.edu.vn 11  Hàm mục tiêu của bài toán: Ứng với mỗi phương án 𝑋 = (𝑥1, . . . , 𝑥𝑁) ∈ 𝐷, chi phí đi lại từ thành phố thứ 𝑖 đến thành phố 𝑖 + 1 là 𝐶[𝑋[𝑖]][𝑋 𝑖 + 1 ] (𝑖 = 1, 2, . . . , 𝑁 − 1). Sau đó ta quay lại thành phố ban đầu với chi phí là 𝐶 𝑋 𝑁 𝑋 1 . Như vậy, tổng chi phí của toàn bộ hành trình được xác định theo công thức: ( ) min 1 1 1 1 → + =  − = + x x N i x x N i i c c X f
  • 12. Ví dụ 2 (4/4) http://www.ptit.edu.vn 12  Bài toán có thể mô tả lại như sau  Đầu vào (Input): o Số lượng thành phố: 𝑁 o Ma trận chi phí cấp 𝑁:{𝑐𝑖𝑗}  Đầu ra (Output): o Phương án tối ưu của bài toán: 𝑋∗ = (𝑥1 ∗ , . . . , 𝑥𝑁 ∗ ) ∈ 𝐷 để f(𝑋∗) nhỏ nhất o Giá trị tối ưu của bài toán: f(𝑋∗) ( ) ( )   N j i x x j i x x x x X D j i N ,..., 2 , 1 , ; : 1 | ,..., , 1 2 1 =     = = = ( ) min 1 1 1 1 → + =  − = + x x N i x x N i i c c X f với 𝑋 ∈ 𝐷
  • 13. Ví dụ 3 (1/3) http://www.ptit.edu.vn 13  Bài toán cho thuê máy: Một ông chủ có một chiếc máy cho thuê. Đầu tháng ông nhận được yêu cầu của 𝑀 khách hàng thuê máy cho 𝑁 ngày kế tiếp. Mỗi khách hàng 𝑖 cho biết tập 𝑁𝑖 ngày họ cần thuê máy. Ông chủ có quyền hoặc từ chối yêu cầu của khách hàng, hoặc nếu chấp nhận yêu cầu của khách ông phải bố trí máy theo đúng những ngày mà khách yêu cầu. Hãy tìm phương án thuê máy giúp ông chủ sao cho tổng số ngày thuê máy là nhiều nhất.
  • 14. Ví dụ 3 (2/3) http://www.ptit.edu.vn 14  Tập phương án của bài toán: Gọi 𝐼 = { 1, 2, . . . , 𝑀} là tập chỉ số khách hàng, 𝑆 là tập của tất các tập con của 𝐼. Khi đó, tập các phương án cho thuê máy là:  Xây dựng hàm mục tiêu: Ứng với mỗi phương án 𝐽 ∈ 𝐷, tổng số ngày cho thuê máy là:   J p k N N S J D p k   =  = , , |   ( ) max | | → =  J j j N J f
  • 15. Ví dụ 3 (3/3) http://www.ptit.edu.vn 15  Bài toán có thể mô tả lại như sau  Đầu vào (Input): o Số lượng khách hàng: 𝑀 o Số ngày thuê máy: 𝑁 o Ma trận [0,1] mô tả số ngày thuê máy mỗi khách: 𝐴[𝑀][𝑁]  Đầu ra (Output): o Phương án tối ưu của bài toán: 𝐽∗ ∈ 𝑆 o Giá trị tối ưu: 𝑓(𝐽∗ )  Trong đó:   J p k N N S J D p k   =  = , , :   ( ) max | | → =  J j j N J f với 𝑋 ∈ 𝐷
  • 16. Ví dụ 4 (1/3) http://www.ptit.edu.vn 16  Bài toán phân công công việc: Một hệ gồm có 𝑁 quá trình thực hiện 𝑁 việc song hành. Biết mỗi quá trình đều có thể thực hiện được 𝑁 việc kể trên nhưng với chi phí thời gian khác nhau. Biết 𝑐𝑖𝑗 là thời gian quá trình 𝑖 thực hiện việc 𝑗. Hãy tìm phương án giao việc cho mỗi quá trình sao cho tổng thời gian thực hiện 𝑁 việc kể trên là ít nhất.
  • 17. Ví dụ 4 (2/3) http://www.ptit.edu.vn 17  Tập phương án của bài toán: Gọi 𝑋 = (𝑥1, 𝑥2, . . . , 𝑥𝑁) là một hoán vị của 1, 2, . . . , 𝑁. Nếu 𝑥𝑖 = 𝑗 thì ta xem quá trình thứ 𝑖 được thực hiện việc 𝑗. Như vậy, tập phương án của bài toán chính là tập các hoán vị của 1, 2, . . . , 𝑁.  Hàm mục tiêu của bài toán: Ứng với mỗi phương án 𝑋 ∈ 𝐷, thời gian thực hiện của mỗi phương án là: ( )   N j i x x j i x x x X D j i N ,..., 2 , 1 , , | : ,..., , ( 2 1 =    = = ( )  = → = N i i x i c X f 1 min ]] [ , [
  • 18. Ví dụ 4 (3/3) http://www.ptit.edu.vn 18  Bài toán có thể mô tả lại như sau:  Đầu vào (Input): o Số lượng quá trình: 𝑁 o Ma trận chi phí thời gian: 𝐶[𝑁][𝑁]  Đầu ra (Output): o Phương án tối ưu của bài toán: 𝑋∗ ∈ 𝐷 o Giá trị tối ưu: 𝑓(𝑋∗)  Trong đó: ( )  = → = N i i x i c X f 1 min ]] [ , [ ( )   N j i x x j i x x x X D j i N ,..., 2 , 1 , , | : ) ,..., , ( 2 1 =    = = với 𝑋 ∈ 𝐷
  • 19. Nội dung http://www.ptit.edu.vn 19  Giới thiệu bài toán  Thuật toán duyệt toàn bộ  Thuật toán nhánh cận  Bài tập
  • 20. Thuật toán duyệt toàn bộ http://www.ptit.edu.vn 20  Giả sử 𝐷 là tập phương án. Ta cần tìm 𝑋∗ ∈ 𝐷 sao cho 𝑓(𝑋∗ )→max(min). Phương pháp duyệt toàn bộ được tiến hành như sau: Bước 1 (Khởi tạo): 𝑋𝑂𝑃𝑇 = ∅; //Phương án tối ưu 𝐹𝑂𝑃𝑇 = −  (+ );//Giá trị tối ưu Bước 2( Lặp): for (𝑋 ∈ 𝐷){ //lấy mỗi phần tử trên tập phương án 𝑆 = 𝑓(𝑋);// tính giá trị hàm mục tiêu cho phương án X if ( 𝐹𝑂𝑃𝑇 < 𝑆 ) { //Cập nhật phương án tối ưu 𝐹𝑂𝑃𝑇 = 𝑆; //Giá trị tối ưu mới được xác lập 𝑋𝑂𝑃𝑇 = 𝑋;// Phương án tối ưu mới } } Bước 3 (Trả lại kết quả): Return(𝑋𝑂𝑃𝑇, 𝐹𝑂𝑃𝑇);
  • 21. Đặc điểm thuật toán duyệt toàn bộ http://www.ptit.edu.vn 21  Ưu điểm: o Đơn giản dễ cài đặt o Có thể thực hiện trên mọi bài toán tối ưu  Nhược điểm: o Chi phí tính toán lớn
  • 22. Bài tập http://www.ptit.edu.vn 22  Viết chương trình giải các bài toán dưới đây trên máy tính sử dụng thuật toán duyệt toàn bộ: 1) Bài toán cái túi 2) Bài toán người du lịch 3) Bài toán cho thuê máy 4) Bài toán phân công công công việc
  • 23. Nội dung http://www.ptit.edu.vn 23  Giới thiệu bài toán  Thuật toán duyệt toàn bộ  Thuật toán nhánh cận  Bài tập
  • 24. Thuật toán nhánh cận http://www.ptit.edu.vn 24  Bài toán tối ưu tổ hợp được phát biểu lại dưới dạng sau: Tìm min{𝑓(𝑋) ∶ 𝑋 ∈ 𝐷 }  Trong đó, 𝐷 là tập hữu hạn các phần tử. Tập 𝐷 có thể được mô tả như sau: 𝐷 = {𝑋 = (𝑥1, 𝑥2, . . . , 𝑥𝑛) ∈ 𝐴1 × 𝐴2 × ⋯ × 𝐴𝑛: 𝑋 𝑡ℎỏ𝑎 𝑚ã𝑛 𝑡í𝑛ℎ 𝑐ℎấ𝑡 𝑃 }  Xây dựng hàm xác định cận dưới của hàm mục tiêu:  Thuật toán nhánh cận có thể giải được bài toán đặt ra nếu ta tìm được một hàm 𝑔 xác định trên tất cả phương án bộ phận của bài toán thỏa mãn bất đẳng thức 𝑔(𝑎1, 𝑎2, … , 𝑎𝑘) ≤ min{𝑓(𝑋): 𝑋 ∈ 𝐷, 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘}  Nói cách khác, giá trị của hàm 𝑔 tại phương án bộ phận cấp 𝑘 (𝑎1, 𝑎2, . . . , 𝑎𝑘) không vượt quá giá trị nhỏ nhất của hàm mục tiêu trên tập con các phương án 𝐷(𝑎1, 𝑎2, . . . , 𝑎𝑘) = {𝑋 ∈ 𝐷: 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘}  Giá trị của hàm 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) là cận dưới của hàm mục tiêu trên tập 𝐷(𝑎1, 𝑎2, . . . , 𝑎𝑘). Hàm 𝑔 được gọi là hàm cận dưới, 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) gọi là cận dưới của tập 𝐷(𝑎1, 𝑎2, . . . , 𝑎𝑘).
  • 25. Hạn chế các phương án duyệt http://www.ptit.edu.vn 25  Giả sử ta đã có hàm 𝑔. Để giảm bớt khối lượng duyệt trên tập phương án trong quá trình liệt kê bằng thuật toán quay lui ta xác định được 𝑋∗ là phương án làm cho hàm mục tiêu có giá trị nhỏ nhất trong số các phương án tìm được 𝑓∗ = 𝑓(𝑋∗). Ta gọi 𝑋∗ là phương án tốt nhất hiện có, 𝑓∗ là kỷ lục hiện tại. Nếu 𝑓∗ < 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) thì 𝑓∗ < 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) ≤ min{𝑓(𝑋): 𝑋 ∈ 𝐷, 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘}  Điều này có nghĩa tập 𝐷(𝑎1, 𝑎2, . . . , 𝑎𝑘) chắc chắn không chứa phương án tối ưu. Trong trường hợp này ta không cần phải triển khai phương án bộ phận (𝑎1, 𝑎2, . . . , 𝑎𝑘). Tập 𝐷(𝑎1, 𝑎2, … , 𝑎𝑘) cũng bị loại bỏ khỏi quá trình duyệt. Nhờ đó, số các tập cần duyệt nhỏ đi trong quá trình tìm kiếm.
  • 26. Thuật toán nhánh cận (giả mã) http://www.ptit.edu.vn 26 Thuật toán Branch_And_Bound (𝑘) { for (𝑎𝑘 ∈ 𝐴𝑘){ if(<chấp nhận 𝑎𝑘>){ 𝑥𝑘 = 𝑎𝑘; if ( 𝑘 == 𝑛 ) <Cập nhật kỷ lục>; else if ( 𝑔 𝑎1, 𝑎2, . . . , 𝑎𝑘 < 𝑓∗) Branch_And_Bound (𝑘 + 1) ; } } }
  • 27. Xây dựng hàm 𝑔 http://www.ptit.edu.vn 27  Việc xây dựng hàm 𝑔 phụ thuộc vào từng bài toán tối ưu tổ hợp cụ thể. Ta cố gắng xây dựng 𝑔 sao cho: o Việc tính giá trị của g phải đơn giản hơn việc giải bài toán tối ưu tổ hợp min 𝑓 𝑋 : 𝑋 ∈ 𝐷, 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘 o Giá trị của 𝑔(𝑎1, 𝑎2, . . . , 𝑎𝑘) phải sát với giá trị min 𝑓 𝑋 : 𝑋 ∈ 𝐷, 𝑥𝑖 = 𝑎𝑖, 𝑖 = 1, 2, . . . , 𝑘 Hai yêu cầu này thường đối lập nhau và khó thỏa mãn đồng thời trong thực tế
  • 28. Giải bài toán cái túi bằng thuật toán nhánh cận (1/4) http://www.ptit.edu.vn 28  Một dạng khác của bài toán cái túi: Giả sử có 𝑛 loại đồ vật và số lượng đồ vật mỗi loại không hạn chế. Đồ vật loại 𝑗 có trọng lượng 𝑎𝑗 và giá trị sử dụng là 𝑐𝑗 (𝑗 = 1,2, … , 𝑛). Cần chất các đồ vật này vào một cái túi có trọng lượng 𝑏 sao cho tổng giá trị sử dụng của các đồ vật trong túi là lớn nhất (mỗi loại đồ vật có thể lấy nhiều lần).
  • 29. Giải bài toán cái túi bằng thuật toán nhánh cận (2/4) http://www.ptit.edu.vn 29  Bài toán cái túi có thể được phát biểu tổng quát dưới dạng sau: Tìm giá trị lớn nhất của hàm mục tiêu 𝑓(𝑋) với 𝑋 ∈ 𝐷. Trong đó, 𝑓(𝑋) được xác định như dưới đây:  Ví dụ về một bài toán cái túi: ( )       =   = =   = = + n i n i i i i i i n i Z x b x a x c X f f 1 1 ,..., 2 , 1 , , : max * ( )       = +   = =  = n i i i i n n i Z x b x a x x x X D 1 2 1 ,..., 2 , 1 , , : ,..., , ( ) . 4 , 3 , 2 , 1 , , 8 4 2 3 5 max, 6 3 5 10 4 3 2 1 4 3 2 1 =   + + + → + + + = + j Z x x x x x x x x x X f j
  • 30. Giải bài toán cái túi bằng thuật toán nhánh cận (3/4) http://www.ptit.edu.vn 30  Bước 1: Sắp xếp các đồ vật thỏa mãn  Bước 2 (Lặp): Lặp trên các bài toán bộ phận cấp 𝑘 = 1, 2, . . . , 𝑛: o Giá trị sử dụng của 𝑘 đồ vật trong túi: o Trọng lượng còn lại của túi: o Cận trên của phương án bộ phận cấp 𝑘:  Bước 3 (Trả lại kết quả): Phương án tối ưu và giá trị tối ưu tìm được n n a c a c a c    ... 2 2 1 1  = − = k i i i k x a b b 1 𝛿𝑘 = ෍ 𝑖=1 𝑘 𝑐𝑖𝑥𝑖 𝑔 𝑥1, 𝑥2, … , 𝑥𝑘 = 𝛿𝑘 + 𝑏𝑘 𝑐𝑘+1 𝑎𝑘+1
  • 31. Giải bài toán cái túi bằng thuật toán nhánh cận (4/4) http://www.ptit.edu.vn 31 Thuật toán Branch_And_Bound (k) { for (j = 𝑏𝑘/𝑎𝑘 ; j>=0; j--){ x[k] = j; if (k==n) <Ghi nhận kỷ lục>; else if (k + (ck+1*bk)/ak+1 >FOPT) Branch_And_Bound(k+1); } } ; k k k k x a b b − = ; k k k k x a b b + = 𝛿𝑘 = 𝛿𝑘 + 𝑐𝑘𝑥𝑘; 𝛿𝑘 = 𝛿𝑘 − 𝑐𝑘𝑥𝑘;
  • 32. Ví dụ 5 (1/2) http://www.ptit.edu.vn 32 ( ) . 4 , 3 , 2 , 1 , , 8 4 2 3 5 max, 6 3 5 10 4 3 2 1 4 3 2 1 =   + + + → + + + = + j Z x x x x x x x x x X f j
  • 33. Ví dụ 5 (2/2) http://www.ptit.edu.vn 33 X1=0 X1=1 FOPT=- (1) 1=10; b1=3;g1=15 (1,1);2=15; b2=0;g2=15; (0);1=0; b1=8;g1=40/3 (1,0);2=10; b2=3;g2=14.5; (1,1,0);3=15; b3=0;g3=15; (1,1,0,0);4=15; b4=0;f*=15; X2=1 X2=0 X3=0 X4=0 -Thu được phương án tối ưu -Giá trị tối ưu Loại vì g<15
  • 34. Bài tập 1 http://www.ptit.edu.vn 34 Áp dụng thuật toán nhánh cận giải bài toán cái túi dưới đây, chỉ rõ kết quả theo mỗi bước. 𝑓 𝑋 = 7𝑥1 + 4𝑥2 + 2𝑥3 → 𝑚𝑎𝑥 4𝑥1 + 3𝑥2 + 2𝑥3 ≤ 6 𝑥1, 𝑥2, 𝑥3 ∈ {0,1}.
  • 35. Bài tập 2 http://www.ptit.edu.vn 35 Áp dụng thuật toán nhánh cận giải bài toán cái túi dưới đây, chỉ rõ kết quả theo mỗi bước. 𝑓 𝑋 = 5𝑥1 + 𝑥2 + 8𝑥3 + 𝑥4 → max, 4𝑥1 + 2𝑥2 + 7𝑥3 + 𝑥4 ≤ 9, 𝑥1, 𝑥2, 𝑥3, 𝑥4 ∈ {0,1}.
  • 36. Giải bài toán người du lịch bằng thuật toán nhánh cận (1/4) http://www.ptit.edu.vn 36  Bài toán người du lịch có thể được phát biểu tổng quát dưới dạng sau: Tìm giá trị nhỏ nhất của hàm mục tiêu 𝑓(𝑋) với 𝑋 ∈ 𝐷. Trong đó, 𝑓(𝑋) được xác định như dưới đây:  Ví dụ về ma trận chi phí ( )        + = =  − = + 1 1 1 1 : ] , [ ] , [ min * n i n i i D X x x c x x c X f f ( )   n j i x x x x x x X D j i n ,.., 2 , 1 , , 1 : ,..., , 1 2 1 =   = = = 0 3 14 18 15 3 0 4 22 20 17 9 0 16 4 6 3 7 0 12 9 15 11 5 0
  • 37. Giải bài toán người du lịch bằng thuật toán nhánh cận (2/4) http://www.ptit.edu.vn 37 Gọi 𝑐𝑚𝑖𝑛 = min{𝑐[𝑖, 𝑗], 𝑖 , 𝑗 = 1, 2, . . . , 𝑛, 𝑖𝑗 } là giá trị nhỏ nhất của ma trận chi phí. Phương pháp đánh giá cận dưới của mỗi bài toán bộ phận cấp 𝑘 được tiến hành như sau. Giả sử ta đang có hành trình bộ phận qua 𝑘 thành phố: 𝑇1→𝑇𝑢2 →. . . →𝑇𝑢𝑘 (𝑇1 = 1). Khi đó, chi phí của phương án bộ phận cấp 𝑘 là:  = 𝑐[1, 𝑢2] + 𝑐[𝑢2, 𝑢3] + ⋯ + 𝑐[𝑢𝑘−1, 𝑢𝑘]. Để phát triển hành trình bộ phận này thành hành trình đầy đủ, ta cần phải qua 𝑛 − 𝑘 thành phố nữa rồi quay trở về thành phố số 1. Như vậy, ta cần phải qua 𝑛 − 𝑘 + 1 đoạn đường nữa. Vì mỗi đoạn đường đều có chi phí không nhỏ hơn 𝑐𝑚𝑖𝑛, nên cận dưới của phương án bộ phận có thể được xác định: 𝑔(𝑢1, 𝑢2, … , 𝑢𝑘) =  + (𝑛 − 𝑘 + 1). 𝑐𝑚𝑖𝑛.
  • 38. Giải bài toán người du lịch bằng thuật toán nhánh cận (3/4) http://www.ptit.edu.vn 38 Thuật toán Branch_And_Bound (k) { for (j = 2; j<=n; j++){ if ( 𝑐ℎ𝑢𝑎𝑥𝑒𝑡[𝑗] ) { 𝑥[𝑘] = 𝑗; 𝑐ℎ𝑢𝑎𝑥𝑒𝑡[𝑗] = 𝐹𝑎𝑙𝑠𝑒;  =  + 𝑐[ 𝑥[𝑘 − 1], 𝑥[𝑘]]; if ( k==n) Ghi_Nhan(); else if (  + (𝑛 − 𝑘 + 1) ∗ 𝑐𝑚𝑖𝑛 < 𝐹𝑂𝑃𝑇) Branch_And_Bound (k+1); 𝑐ℎ𝑢𝑎𝑥𝑒𝑡[𝑗] = 𝑇𝑟𝑢𝑒;  =  − 𝑐[ 𝑥[𝑘 − 1], 𝑥[𝑘]]; } } }
  • 39. Giải bài toán người du lịch bằng thuật toán nhánh cận (4/4) http://www.ptit.edu.vn 39 FOPT= + (1,2), =3, g=15 (1,3), =14, g=26 (1,4), =18, g=30 (1,5), =15, g=27 (1,2,3), =7, g=16 (1,2,4), =25, g=34 (1,2,5), =23, g=32 (1,2,3,4), =23, g=29 (1,2,3,5), =11, g=17 (1,2,3,4,5), =35, g=38 (1,2,3,5,4), =16, g=19 Loại vì có cận dưới lớn hơn 22 Hành trình:1,2,3,5,4,1 Chi phí: 22 Hành trình:1,2,3,4,5,1 Chi phí: 44