1. Bài toán tối ưu hóa rời rạc (tối ưu tổ hợp)
2. Bài toán ba lô (bài toán cái túi)
3. Bài toán Quy hoạch (QH) nguyên tuyến tính
4. Thuật toán Gomory
5. Phương pháp nhánh cận Land – Doig
27 trang |
Chia sẻ: lylyngoc | Lượt xem: 1991 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Chương 2 Tối ưu hóa rời rạc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 2
TỐI ƯU HÓA RỜI RẠC
10/6/2012 1MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
NỘI DUNG
1. Bài toán tối ưu hóa rời rạc (tối ưu tổ hợp)
2. Bài toán ba lô (bài toán cái túi)
3. Bài toán Quy hoạch (QH) nguyên tuyến tính
4. Thuật toán Gomory
5. Phương pháp nhánh cận Land – Doig
10/6/2012 2MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
BÀI TOÁN TỐI ƯU HÓA RỜI RẠC
Định nghĩa Bài toá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∈ *( ) min{ ( )}.
s S
f s f s
∈
=
10/6/2012 3MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
BÀI TOÁ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 toán
10/6/2012 4MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
BÀI TOÁN TỐI ƯU HÓA RỜI RẠC
Một số ví dụ về bài toán tối ưu rời rạc:
• Bài toán tìm đường đi ngắn nhất
• Bài toán ba lô
• Bài toán người du lịch
10/6/2012 5MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
BÀI TOÁN BA LÔ(Knapsack problem)
Bài toá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 6MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
BÀI TOÁN BA LÔ(Knapsack problem)
Xét bài toá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 khi đồ vật j được chọn, và khi đồ
vật j không được chọn,
: 1jx = : 0jx =
10/6/2012 7MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
BÀI TOÁN BA LÔ(Knapsack problem)
Mô hình bài toán ba lô 0 – 1 :
1
max ( )
n
j j
j
n
f x c x
a x b
=
=
≤
∑
∑
10/6/2012 8MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
1
{0,1}, 1,...,
j j
j
jx j n
=
∈ =
BÀI TOÁN QH NGUYÊN
(Integer Programming – IP )
Là bài toá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 9MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
BÀI TOÁN QH NGUYÊN
Mô hình bài toán QH nguyên tuyến tính
1
( ) min
, 1,
n
j j
j
n
f x c x
a x b i m
=
= →
= =
∑
∑
10/6/2012 10MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
1
( ) 0, 1,
ê , 1,
ij j i
j
j
j
IP x j n
x nguy n j n
=
≥ =
=
THUẬT TOÁN GOMORY
Trước hết, giải bài toán nới lỏng (LP)
1
( ) min
, 1,
n
j j
j
n
f x c x
a x b i m
=
= →
= =
∑
∑
10/6/2012 11MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
1( )
0, 1,
ij j i
j
j
LP
x j n
=
≥ =
THUẬT TOÁN GOMORY
Không mất tính tổng quát, giả sử PATƯ của (LP)
có dạng:
Khi đó, hệ ràng buộc của (LP) có dạng:
*
1 2( , ,..., ,0,...,0).mx x x x=
...x a x a x b+ +′ ′ ′+ + + =
10/6/2012 12MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
1 1( 1) 1 1 1
2 2( 1) 1 2 2
( 1) 1
...
...
m m n n
m m n n
m m m m mn n m
x a x a x b
x a x a x b
+ +
+ +
′ ′ ′+ + + =
′ ′ ′+ + + =
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
THUẬT TOÁN GOMORY
Nếu các đều là số nguyên thì
cũng là nghiệm của (IP).
Ngược lại, giả sử có nào đó chưa nguyên. Ta
xét ptr ràng buộc tương ứng:
, 1,ib i m′ = , 1,ix i m=
ib ′
10/6/2012 13MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
( 1) 1 ... (1)i i m m in n ix a x a x b+ +′ ′ ′+ + + =
THUẬT TOÁN GOMORY
Đặt [ ] , 1,...,
[ ]
ij ij ij
i i i
a a j m n
b b
α
β
′ ′= + = +
′ ′= +
( 0, 0 1)ij iα β≥ < <
n
α β′′⇒ + + = + =∑
10/6/2012 14MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
1
(1) ([ ] ) [ ] , 1,i ij ij j i i
j m
x a x b i m
= +
1 1
[ ] [ ] , 1, (2)
n n
i i ij j i ij j
j m j m
x b a x x i mβ α
= + = +
′ ′
− + = − =∑ ∑
THUẬT TOÁN GOMORY
Vế trái (2) sẽ là số nguyên nếu là PA cnđ của
(IP), do đó vế phải (2) cũng phải là số nguyên, tức
là:
nguyên (3)
*x
1
n
i ij j
j m
xβ α
= +
− ∑
Mặt khác
nên
10/6/2012 15MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
0,
[ ] 0, 1,...,
j
ij ij ij
x
a a j m nα
≥
′ ′= − ≥ = +
1
(3 )
n
i ij j i
j m
xβ α β
= +
′
− ≤∑
THUẬT TOÁN GOMORY
Hay
1
(3),(3 ) 0 (0 1)
n
i ij j i
j m
xβ α β
= +
′ ⇒ − ≤ < <∑
1
(4)
n
ij j i
j m
xα β
= +
− ≤ −∑
Thêm biến bù vào (4),
10/6/2012 16MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
1nx +
1
1 (5)
n
ij j i
j m
nx xα β+
= +
− = −+∑
THUẬT TOÁ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 17MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
PP NHÁNH CẬN LAND – DOIG
Xét bài toán QH nguyên có dạng
1
( ) max
, 1,...,
n
j j
j
n
j j i
f x c x
a x b i m
=
= →
≤ =
∑
∑
với là các số nguyên cho trước
10/6/2012 18MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
1
0( ) 0, 1,...,
ê , 1,...,
j
j
j
IP x j n
x nguy n j n
= ≥ =
=
1, ; 1,i m j n= =, ,j i ja b c
PP NHÁNH CẬN LAND – DOIG
Đặt
0
1
: : , 1, , 0, ê , 1,...,
n
n
j j i j
j
D x a x b i m x nguy n j n
=
= ∈ ≤ = ≥ =
∑ℝ
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
10/6/2012 19MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
0
1
: : , 1, , 0, 1,...,
n
nl n
j j i j
j
D x a x b i m x j n
=
= ∈ ≤ = ≥ =
∑ℝ
PP NHÁNH CẬN LAND – DOIG
Giả sử (LP0) có PATƯ và giá trị tối ưu .
Nếu nguyên thì dừng lại. Lúc đó, cũng là
PATƯ của (IP0).
Ngược lại, chuyển sang Bước 2.
0x 0( )f x
0x 0x
10/6/2012 20MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
PP NHÁNH CẬN LAND – DOIG
Bước 2:
Đặt (cận trên của bài toán )
Nếu biết thì là cận dưới của bài toán.
Ngược lại, đặt (cận dưới của bài toán )
0
0( ): ( )D f xβ =
0x D∈
:α = −∞
0( )IP
( )f x
0( )IP
( là giá trị kỷ lục, đgl kỷ lục (nếu có))
danh sách các tập con của cần xem xét.
10/6/2012 21MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
α x
D0℘:={ } 0D
PP NHÁNH CẬN LAND – DOIG
Bước 3: Chọn tập là tập có cận trên lớn
nhất trong các tập con của cần xem xét. Gọi
là PATƯ của bài toán .
Chia tập thành hai tập con với biến chia nhánh
( là thành phần không nguyên đầu tiên của )
kD ( )kDβ℘ kx
( )kLP
kD
kx
k
jx
kx
với là phần nguyên của .
10/6/2012 22MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
j
1 0
: { : [ ]},kk j jD x D x x= ∈ ≤
2 0
: { : [ ] 1},kk j jD x D x x= ∈ ≥ +
[ ]kjx kjx
PP NHÁNH CẬN LAND – DOIG
Đặt
Giải lần lượt các bài toán nới lỏng tương
ứng với các tập nới lỏng
1 20
: ( \ { }) { , }k kD D D℘ = ℘ ∪
1
( ),kLP
1 2
, .
nl nl
k kD D
2
( )kLP
10/6/2012 23MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
PP NHÁNH CẬN LAND – DOIG
Khi giải các bài toán nới lỏng sẽ xảy
ra các trường hợp sau đây:
i. Bài toán không chấp nhận được ( ), ta loại
khỏi tập , tức là .
( ), 1,2
ik
LP i =
ik
D =∅
ik
D ℘ : \ { }
ik
D℘=℘
10/6/2012 24MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
PP NHÁNH CẬN LAND – DOIG
ii. Tìm được PATƯ nguyên. Khi đó, tính lại giá
trị kỷ lục
(giá trị kỷ lục hiện tại).
Gọi là kỷ lục hiện tại tương ứng với giá trị kỷ lục
hiện tại .
ikx
max{ , ( )}ikf xα α=
x
( )f xα=
Loại khỏi tập , tức là .
10/6/2012 25MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
ik
D ℘ : \ { }
ik
D℘=℘
PP NHÁNH CẬN LAND – DOIG
iii. Tìm được PATƯ không nguyên.
Đặt là một cận trên của bài toán
* Loại bỏ các tập có cận trên nhỏ hơn hoặc bằng giá
trị kỷ lục hiện tại (nếu có).
ikx
( ): ( )i
i
k
kD f xβ = ( ).ikIP
10/6/2012 26MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
PP NHÁNH CẬN LAND – DOIG
Bước 4: Kiểm tra điều kiện dừng
Nếu thì dừng thuật toán.
Kết luận
PATƯ là
℘=∅
,x
Giá trị tối ưu là
Ngược lại, trở về Bước 3.
10/6/2012 27MaMH: C02012 Chương 2: Tối ưu hóa rời rạc
( ).f xα=