8/19/2019 bai toan luong
1/16
Bài toán luồng vớ i chi phí nhỏ nhất
A L G O R I T H M S A N D N E T W O R K S
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh
8/19/2019 bai toan luong
2/16
Nội dung bài học
Bài toán luồng vớ i chi phí nhỏ nhất: phát biểu và ứng
dụng. Thuật toán “cycle cancelling”
Một vài biến thể thờ i gian đa thức của “cycle cancelling”
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh2
Thuật toán áp dụng liên tiếp bài toán đườ ng đi ngắn nhất(the successive shortest paths algorithm)
8/19/2019 bai toan luong
3/16
Bài toán luồng chi phí nhỏ nhất
Trên một cạnh của đồ thị ta có
Khả năng thông qua (Capacity) c(u,v): giớ i hạn về đại lượ ng có thểthông qua cạnh đó
Giá (Cost) cost(u,v): giá phải trả tính trên đơ n vị của luộng thông quacạnh.
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh3
Giá của luồng (Cost of flow) f : Tổng trên tất cả các cạnh (u,v) của f (u,v).cost(u,v)
8/19/2019 bai toan luong
4/16
8/19/2019 bai toan luong
5/16
Khả năng thông qua vô hạn Có thể xẩy ra trườ ng hợ p c ó một số cạnh của đồ thị có khả năng
thông qua vô hạn
Nếu c ó một chu trình vớ i giá âm tạo thành chỉ bở i các cạnh có khảnăng thông qua vô hạn thì chúng ta có thể tạo r a một luồng vớ i giánhỏ tùy ý=> đây là trườ ng hợ p suy biến
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh5
Trong các trườ ng hợ p khác:Ta có th chuy n v trườ ng hợ p vớ i giáhữu hạn bằng cách đặt khả năng của cạnh vô hạn bằng tổng khả năngcủa tất cả các cạnh hữu hạn
8/19/2019 bai toan luong
6/16
Trườ ng hợ p có nhiều nút đích
Tươ ng tự nhưbài toán max-flow vớ i nhiều
s1 t1
6
G
sk tr
ts
8/19/2019 bai toan luong
7/16
Giá trên các cung là không âm
Có thể coi tất cả các cost là không âm.
Nếu có giá âm:giả sử khả năng hữu hạn. Biến đổi mạng vềmạng tươ ng đươ ng vớ i giá không âm:
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh7
b a
s b a t
Cost -r
Cost r
Capacity c
Capacity cCapacity c Capacity c
Cost 0 Cost 0
8/19/2019 bai toan luong
8/16
Ứ ng dụng
Bài toán vận tải
Ghép cặp Matching vớ i giá nhỏ nhất Reconstruction of Left Ventricle from X-ray projections
Ima e: Mản hai chiều các bit; biết tổn hàn , tổn cột và xác
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh8
xuất cho từng bit Tìm ảnh vớ i giá trị đúng các cột và các dòng vớ i xác xuất là
lớ n nhất
Bài toán này có thể mô tả như bài toán minimum cost flow
8/19/2019 bai toan luong
9/16
Mạng thặng dư Khả năng thông qua như trong bài toán luồng cực đại.
Nếu f (u,v)>0 thì cost f (u,v) = cost(u,v), and cost f (v,u) = –cost(u,v).
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh9
8/19/2019 bai toan luong
10/16
Ví dụ
a b
Capacity 5, cost 3
Giả sử chúng ta gửi luồng 1từ a tớ i b
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh10
Capacity 2, cost 6
a
apac y , cos
Capacity 2, cost 6
Capacity 1, cost -3
b
In Gf :
8/19/2019 bai toan luong
11/16
Thuật toán cycle cancelling Tạo r a một luồng khả thi f trên mạng
while G f có một chu trình âm do Tìm một chu trình âm C in G f Gọi D là khả năng thặng dư nhỏ nhất c f của một cạnh trên C Cho thêm D đơ n v vào mỗi c nh trên C:Đâ là m t luồn khả thi
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh11
mớ i vớ i chi phí nhỏ hơ n Output f .
8/19/2019 bai toan luong
12/16
Thuật toán Cycle cancelling là đúng đắn
Định lí : f có giá nhỏ nhất nếu và chỉ nếu G f không có
chu trình âm Nếu G có chu trình âm thì ta có thể cải thiện G để thu đượ c một
luộng có giá nhỏ hơ n.
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh12
s m u ng, v m u ng ưu. – m“circulation” trên G f , t ừ đ ây là t ổ hợ p tuyế n tính của các chutrình,và nếu f không phải l à t ố i ư u thì t ổ ng giả của chu trìnhnày là âm do đó tồn tại một chu trình âm trong tập hợ p này đó
là một chu trình âm trong G f .
8/19/2019 bai toan luong
13/16
Thuật toán cycle cancelling
Thuật toán cycle cancelling không đảm bảo là có thờ i
gian đa tức. Hệ quả:Nếu mọi giá, capacities,và luồng muốn thông
qua là số nguyên thì tồn tại một luồng tối ưu vớ i các giá
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh13
trị nguyên. Thuật toán cycle cancelling tìm đượ c một luồng nguyên
Biến thể: sử dụng chu trình giá trung bình nhỏ nhất (the
minimum mean cost cycle) cho thuật toán thờ i gian đathức
8/19/2019 bai toan luong
14/16
Minimum mean-cost circulation
algorithm
Trong thuật toán cycle cancelling ta tìm minimum mean
cost cycle và sử dụng chúng O(nm) time to find the cycle.
Có một định lí chỉ ra rằng số bướ c lặp là O(nm2 log2 n).
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh14
.
8/19/2019 bai toan luong
15/16
Successive shortest paths
Bắ t đầu vớ i luồng f vớ i f (u,v)=0 cho mọi (u,v).
repeat until value( f ) = r Tìm shortest path P trong G f từ s tớ i t
Đặt q là minimum residual capacity của các cạnh trên P.
Hanoi University of Agriculture Operation Research PhD. Trần Đức Quỳnh15
Gửi min(q,r – value( f )) giá trị cho lu ng dọc theo P.
8/19/2019 bai toan luong
16/16
16
On the successive shortest paths algorithm
Có thể sử dụng thờ i giantính toán là số mũ
Giả sử G không có cạnhnáo có cost âm.
Cho lờ i iải tối ưu.
Giả sử thu đượ c f’ từ f bybằng cách gửi theo P.
Đặt f ’’ là luồng vớ i giá nhỏnhất vớ i cùng giá trị vớ i f’. Viết f ’’ – f như tổng trọng số
Đại học nông nghiệp Hà nội Bài giảng Vận Trù Học Phd. Trần Đức Quỳnh
Bất biến: f có giá nhỏ nhấttrong tất cả các luồn có giátrị value( f ).
G f và circuits trong G f .Chứng tỏ cost( f’ – f ) ≤cost( f’’– f ), suy ra:
P is shortest path
Circuits have non-negativecosts, by optimality of f .
Recommended