Chương 2
TỐI ƯU HÓA RỜI RẠC
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
1
NỘI DUNG
1.
2.
3.
4.
5.
Bài tốn tối ưu hóa rời rạc (tối ưu tổ hợp)
Bài tốn ba lơ (bài tốn cái túi)
Bài tốn Quy hoạch (QH) ngun tuyến tính
Thuật tốn Gomory
Phương pháp nhánh cận Land – Doig
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
2
BÀI TỐN TỐI ƯU HĨA RỜI RẠC
Định nghĩa Bài tốn tối ưu hóa rời rạc xác định
trên tập hữu hạn S, và f : S → ℝ.
*
s * ∈ S : f (s ) = min{f (s )}.
s∈S
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
3
BÀI TỐN TỐI ƯU HĨA RỜI RẠC
Tối ưu hóa rời rạc dựa vào:
• Quy hoạch tuyến tính
• Lý thuyết đồ thị
• Lý thuyết về độ phức tạp tính tốn
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
4
BÀI TỐN TỐI ƯU HĨA RỜI RẠC
Một số ví dụ về bài tốn tối ưu rời rạc:
• Bài tốn tìm đường đi ngắn nhất
• Bài tốn ba lơ
• Bài tốn người du lịch
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
5
BÀI TỐN BA LƠ(Knapsack problem)
Bài tốn: Có một tập hợp gồm n loại đồ vật khác
nhau có trọng lượng và giá trị sử dụng tương ứng
là aj và cj , j = 1,…,n.
Bài toán đặt ra là cần lựa chọn một tập hợp các
đồ vật để cho vào một ba lô sao cho tổng giá trị sử
dụng của chúng là lớn nhất và tổng trọng lượng
không được vượt quá tải trọng b cho trước của ba
lô.
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
6
BÀI TỐN BA LƠ(Knapsack problem)
Xét bài tốn ba lơ 0 – 1
Một đồ vật j có thể được chọn để bỏ vào ba lô
hoặc là không.
Gọi x j := 1 khi đồ vật j được chọn, và x j := 0 khi đồ
vật j không được chọn,
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
7
BÀI TỐN BA LƠ(Knapsack problem)
Mơ hình bài tốn ba lơ 0 – 1 :
n
max f ( x ) = ∑ c j x j
j =1
n
∑ a j x j ≤ b
j =1
x ∈ {0,1}, j = 1,..., n
j
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
8
BÀI TỐN QH NGUN
(Integer Programming – IP )
Là bài tốn quy hoạch trong đó tất cả hoặc một
phần các biến chỉ nhận giá trị nguyên.
+ QH nguyên hoàn toàn
(Pure Integer Programming)
+ QH nguyên bộ phận
(Mixed Integer Programming)
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
9
BÀI TỐN QH NGUN
Mơ hình bài tốn QH ngun tuyến tính
f (x) =
n
∑c x
j =1
(IP )
10/6/2012
j
j
→ min
n
∑ aij x j = bi , i = 1, m
j =1
x j ≥ 0, j = 1, n
x j nguyê n, j = 1, n
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
10
THUẬT TỐN GOMORY
Trước hết, giải bài tốn nới lỏng (LP)
f (x) =
n
∑c x
j =1
(LP )
10/6/2012
j
j
→ min
n
∑ aij x j = bi , i = 1, m
j =1
x ≥ 0, j = 1, n
j
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
11
THUẬT TỐN GOMORY
Khơng mất tính tổng qt, giả sử PATƯ của (LP)
có dạng: x * = ( x1, x2 ,..., xm ,0,...,0).
Khi đó, hệ ràng buộc của (LP) có dạng:
′
′
′
+ a1( m+1) xm+1 + ... + a1n xn = b1
x1
′
′
′
x2
+ a2(m+1) xm+1 + ... + a2n xn = b2
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
′
′
′
xm + am(m+1) xm+1 + ... + amn xn = bm
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
12
THUẬT TOÁN GOMORY
Nếu các bi ′ , i = 1, m đều là số nguyên thì xi , i = 1, m
cũng là nghiệm của (IP).
Ngược lại, giả sử có bi ′ nào đó chưa nguyên. Ta
xét ptr ràng buộc tương ứng:
′
xi + ai′( m +1) xm +1 + ... + ain xn = bi′
10/6/2012
MaMH: C02012
(1)
Chương 2: Tối ưu hóa rời rạc
13
THUẬT TOÁN GOMORY
′
′
Đặt aij = [aij ] + α ij , j = m + 1,..., n
bi′ = [bi′] + β i
(α ij ≥ 0, 0 < β i < 1)
(1) ⇒ xi +
xi − [bi′ ] +
10/6/2012
n
∑ ([a′ ] + α
ij
j = m +1
n
∑ [a′ ]x
j =m+1
ij
j
)x j = [bi ′ ] + βi , i = 1 m
,
ij
= βi −
MaMH: C02012
n
∑ α x ,i = 1,m
j =m+1
ij
j
Chương 2: Tối ưu hóa rời rạc
(2)
14
THUẬT TOÁN GOMORY
x * là PA cnđ của
Vế trái (2) sẽ là số nguyên nếu
(IP), do đó vế phải (2) cũng phải là số nguyên, tức
là:
n
nguyên (3)
β i − ∑ α ij x j
j = m +1
Mặt khác
nên
10/6/2012
βi −
x j ≥ 0,
′
′
α ij = aij − [aij ] ≥ 0, j = m + 1,..., n
n
∑α
j = m +1
ij
x j ≤ βi
MaMH: C02012
(3′)
Chương 2: Tối ưu hóa rời rạc
15
THUẬT TOÁN GOMORY
(3),(3′) ⇒ β i −
Hay
n
−
∑α
j = m +1
ij
n
∑α
j = m +1
−
∑α
j = m +1
10/6/2012
ij
x j ≤ 0 (0 < β i < 1)
x j ≤ −βi
Thêm biến bù xn +1
n
ij
(4)
vào (4),
x j + x n +1 = − β i
MaMH: C02012
(5)
Chương 2: Tối ưu hóa rời rạc
16
THUẬT TỐN GOMORY
Bổ sung RB (5) vào bảng đơn hình. Khi dó, bảng
mới này vừa khơng đảm bảo RB dấu của biến,
vừa chưa nguyên.
Tiếp theo, áp dụng thuật toán đơn hình đối ngẫu
để nhận được PATƯ.
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
17
PP NHÁNH CẬN LAND – DOIG
Xét bài toán QH nguyên có dạng
f (x) =
n
∑c
j =1
j
x j → m ax
n
∑ a j x j ≤ b i , i = 1,..., m
j =1
( IP0 ) x j ≥ 0, j = 1,..., n
x j nguy ê n , j = 1,..., n
với a j , bi , c j là các số nguyên cho trước i = 1m; j = 1n
,
,
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
18
PP NHÁNH CẬN LAND – DOIG
Đặt
n
n
D0 := x ∈ ℝ : ∑ aj x j ≤ bi , i = 1 m, x j ≥ 0, nguyên, j = 1 n
,
,...,
j =1
Các bước giải bài toán
Bước 1: giải bài toán nới lỏng (LP0), với
n
nl
x ∈ ℝ n :
D0 :=
a j x j ≤ bi , i = 1 m, x j ≥ 0, j = 1 n
,
,...,
∑
j =1
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
19
PP NHÁNH CẬN LAND – DOIG
0
0
Giả sử (LP0) có PATƯ x và giá trị tối ưu f (x ) .
0
0
Nếu x ngun thì dừng lại. Lúc đó, x cũng là
PATƯ của (IP0).
Ngược lại, chuyển sang Bước 2.
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
20
PP NHÁNH CẬN LAND – DOIG
Bước 2:
0
Đặt β(D ):= f (x ) (cận trên của bài toán (IP ) )
0
0
Nếu biết x ∈D thì f(x) là cận dưới của bài toán.
0
Ngược lại, đặt α := −∞ (cận dưới của bài toán (IP ) )
0
(α là giá trị kỷ lục, x đgl kỷ lục (nếu có))
℘:={D0} danh sách các tập con của D0 cần xem xét.
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
21
PP NHÁNH CẬN LAND – DOIG
Bước 3: Chọn tập Dk là tập có cận trên β (Dk ) lớn
k
nhất trong các tập con của ℘ cần xem xét. Gọi x
là PATƯ của bài toán (LPk ) .
Dk thành hai tập con với biến chia nhánh xk
Chia tập
j
xk là thành phần không nguyên đầu tiên của xk )
( j
Dk1 := { x ∈ D0 : x j ≤ [ x k ]},
j
Dk2 := {x ∈ D0 : x j ≥ [ xk ] + 1},
j
[ xk ] là phần nguyên của xk .
với j
j
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
22
PP NHÁNH CẬN LAND – DOIG
Đặt ℘:= (℘ \ {D0 }) ∪ {Dk1 , Dk2 }
Giải lần lượt các bài toán nới lỏng(LP1 ), (LPk2 ) tương
k
nl
nl
ứng với các tập nới lỏng Dk1 , Dk2 .
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
23
PP NHÁNH CẬN LAND – DOIG
Khi giải các bài toán nới lỏng (LP ), i = 1 sẽ xảy
,2
ki
ra các trường hợp sau đây:
i. Bài tốn khơng chấp nhận được (Dki =∅ ), ta loại
Dki khỏi tập ℘ , tức là ℘=℘\ {Dk } .
:
i
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
24
PP NHÁNH CẬN LAND – DOIG
ki
ii. Tìm được PATƯ x ngun. Khi đó, tính lại giá
k
trị kỷ lục α = max{α , f ( x i )}
(giá trị kỷ lục hiện tại).
Gọi x là kỷ lục hiện tại tương ứng với giá trị kỷ lục
hiện tại α =f(x) .
:
Loại Dki khỏi tập ℘ , tức là ℘=℘\ {D i } .
k
10/6/2012
MaMH: C02012
Chương 2: Tối ưu hóa rời rạc
25