1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài toán tìm luồng cực đại và ứng dụng trong vận chuyển hàng cứu trợ thiên tai tại tỉnh sekong nước CHDCND lào

95 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Toán Tìm Luồng Cực Đại Và Ứng Dụng Trong Vận Chuyển Hàng Cứu Trợ Thiên Tai Tại Tỉnh Sekong Nước CHDCND Lào
Tác giả Keoounhuane Vongphisith
Người hướng dẫn TS. Nguy Định L
Trường học Đại Học Cần Thơ
Chuyên ngành Hệ Thống Thông Tin
Thể loại Luận Văn
Năm xuất bản 2020
Thành phố Cần Thơ
Định dạng
Số trang 95
Dung lượng 2,4 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

M ăĐ U 1.ăLỦădoăch năđ ătƠi BƠi toán luồng cực đ i trong m ng lƠ một trong số nh ng bƠi toán tối ưu trên đồ thị có nh ng ng d ng rộng rãi trong thực t cũng như nh ng ng d ng thú vị tron

Trang 1

TR NGăĐ IăH CăS ăPH M

-  -

KEOOUNHUANE VONGPHISITH

BĨIăTOỄNăTỊMăLU NGăC CăĐ IăVĨă NGăD NGăTRONGă

V NăCHUY NăHĨNGăC UăTR THIểNăTAIăT IăT NHă

LU NăVĔNăTH CăSƾ

H ăTH NGăTHỌNGăTIN

ĐƠăN ngă- Nĕmă2020

Trang 2

Đ IăH CăĐĨăN NG

-  -

KEOOUNHUANE VONGPHISITH

BĨIăTOỄNăTỊMăLU NGăC CăĐ IăVĨă NGăD NGăTRONGă

V NăCHUY NăHĨNGăC UăTR ăTHIểNăTAIăT IăT NHă

Chuyên ngành: H ăTH NGăTHỌNGăTIN

Trang 7

M CăL C

L I C M N i

L I CAM ĐOAN ii

TÓM T T iii

M C L C v

DANH M C CÁC CH VI T T T vii

DANH M C B NG BI U viii

DANH M C CÁC HÌNH ix

M ăĐ U 1

1 LỦ do chọn đ tƠi 1

2 M c tiêu vƠ nhiệm v 2

3 Đối tư ng vƠ ph m vi nghiên c u 2

4 Phư ng pháp nghiên c u 2

5 ụ nghĩa c a đ tƠi 3

6 Bố c c c a đ tƠi 3

Ch ngă1 BĨIăTOỄNăLU NGăC CăĐ I 4

1.1 Phát bi u bƠi toán 4

1.1.1 M ng, Luồng trong m ng 4

1.1.2 BƠi toán luồng cực đ i trong m ng 4

1.2 Thu t toán Ford-Fulkerson 5

1.2.1 Đư ng đi tăng luồng 5

1.2.2 Phư ng pháp FordFulkerson 6

Ch ngă2 BĨIăTOỄNăLU NGăC CăĐ IăV IăCHIăPHệăC CăTI U 17

2.1 Gi i thiệu 17

2.1.1 Phát bi u bƠi toán 17

2.1.2 Các gi thi t 18

2.1.3 Đồ thi thăng dư 18

2.2 Đi u kiện tối ưu c a bƠi toán 18

2.2.1 Đi u kiện tối ưu v chu trình ơm 18

2.2.2.Đi u kiện tối ưu v chi phí rút gọn 19

2.2.3 Đi u kiện tối ưu bổ sung 20

2.3 Mối quan hệ gi a luồng tối ưu vƠ kh năng thông qua t i các đỉnh 21

2.4 Một số thu t toán gi i bƠi toán luồng cực đ i v i chi phí cực ti u 22

Trang 8

2.4.1 Thu t toán kh chu trình ơm (Cycle canceling) 22

2.4.2 Thu t toán tìm đư ng đi ng n nhất liên ti p (Successive shortest Path) 27

2.4.3 Thu t toán Primal-Dual 30

2.4.4 Các thu t toán c i ti n 33

Ch ngă 3 XỂYă D NGă NGă D NGă TỊMă Đ NGă V Nă CHUY Nă HĨNGă C UăTR ăMINIMUMăCOSTăMAXăFLOW 37

3.1 Yêu cầu thực t vƠ lí do xơy dựng ng d ng 37

3.2 M c tiêu c a ng d ng 37

3.3 Ti p c n bƠi toán 37

3.3.1 Phát bi u bƠi toán 37

3.3.2 Mô hình toán học 39

3.3.3 Thu t toán 40

3.4 Phân tích 42

3.4.1 Yêu cầu ch c năng 42

3.5.4 Giao diện ắThông tin địa đi m” 64

3.5.7 Giao diện ắHi n thị k t qu ” 71

3.6 Đánh giá k t qu 74

K TăLU N 75 TĨIăLI UăTHAMăKH O

QUY TăĐ NHăGIAOăĐ ăTĨI (bản sao)

Trang 9

DANHăM CăCỄCăCH ăVI TăT T

CSS Cascading Style Sheets

SDK Software Development Kit API Application Programming Interface SQL Structured Query Language

NNLT Ngôn ng l p trình DFS Depth first search ATNĐ Áp thấp nhiệt đ i

Trang 10

DANHăM CăB NGăBI Uă

S hi u

Trang 12

M ăĐ U

1.ăLỦădoăch năđ ătƠi

BƠi toán luồng cực đ i trong m ng lƠ một trong số nh ng bƠi toán tối ưu trên đồ thị có nh ng ng d ng rộng rãi trong thực t cũng như nh ng ng d ng thú vị trong lý thuy t tổ h p BƠi toán đư c đ xuất vƠo đầu nh ng năm 1950, vƠ g n li n v i tên tuổi

c a hai nhƠ bác học Mỹ lƠ Ford vƠ Fulkerson BƠi toán luồng cực đ i trong m ng có nhi u ng d ng trong thực t như: BƠi toán xác định cư ng độ dòng l n nhất c a dòng

v n t i gi a hai nút c a một b n đồ giao thông, bƠi toán tìm luồng dầu l n nhất có th

b m từ tƠu ch dầu vƠo b ch a c a một hệ thống đư ng ống dẫn dầu…NgoƠi ra, ng

d ng c a bƠi toán còn đ gi i các bƠi toán như: BƠi toán đám cư i vùng quê, bƠi toán

v hệ thống đ i diện chung, bƠi toán phơn nhóm sinh ho t, bƠi toán l p lịch cho hội

nghị

V i sự xuất hiện ngƠy cƠng nhi u c a các hệ thống m ng như: hệ thống m ng điện, m ng s n xuất vƠ phơn phối hƠng hóa, m ng giao thông vƠ phổ bi n nhất hiện nay lƠ m ng internet đã lƠm n y sinh ra nhu cầu v n chuy n các chất liệu trên các

m ng nƠy sao cho đ t hiệu qu cao nhất; chất liệu đơy có th lƠ dòng điện, d liệu, hƠng hóa hiệu qu đơy có th xét theo tiêu chuẩn v th i gian, độ dƠi quãng đư ng, chi phí ti n b c, m c độ an toƠn vƠ bƠi toán luồng cực đ i trên m ng ngƠy cƠng khẳng định đư c tính quan trọng c a nó trong các ngƠnh khoa học hiện đ i Sự phát tri n

m nh m c a ngƠnh công nghệ thông tin cùng v i kh năng tính toán rất nhanh c a máy tính đã giúp việc gi i quy t bƠi toán luồng cực đ i trên m ng hiệu qu h n vƠ

đem l i nhi u ng d ng thực tiễn h n

LƠo lƠ một nh ng nư c chịu nh hư ng l n nhất c a hiện tư ng bi n đổi khí h u trong hai th p kỷ tr l i đơy LƠo, trong năm 2018 lƠ đ t thiên tai tồi tệ nhất trong vòng nhi u năm qua Sau hƠng lo t các tr n l t liên ti p, 60.000 ngư i đã bị nh

hư ng, 56 trư ng h p thiệt m ng vƠ 35 ngư i khác vẫn còn mất tích, thiệt h i trên 686.136 USD (6.000 tỷ kip) Một vƠi tr n bão l t l n trong th i gian gần đơy có th k

đ n như tr n bão lũ tỉnh Sekong bão Ketsana (25/9/2009), bão Dephition (30/9/2016) Nhằm gi m nhẹ thiệt h i v ngư i vƠ c a do bão lũ gơy ra thì công tác phòng chống vƠ c u hộ đư c đặc biệt chú trọng Trong đó, v n chuy n hƠng c u tr cho ngư i dơn lƠ một trong nh ng công việc ph i đư c thực hiện một cách nhanh chóng vƠ hiệu qu

Xuất phát từ nh ng lỦ do trên đư c sự đồng Ủ vƠ hư ng dẫn c a TS.ăNguy nă

ĐìnhăL u, tôi chọn đ tƠi “Bài toán luồng cực đại và ứng dụng trong vận chuyển

hàng cứu trợ thiên tai tại tỉnh Sekong nước CHDCND Lào” đ lƠm lu n văn th c sỹ

Trang 13

2 M cătiêuăvƠănhi măv

2.1 Mục tiêu

- N m đư c các thu t toán gi i bƠi toán luồng cực đ i v i chi phí cực ti u

- Xơy dựng thƠnh công chư ng trình hỗ tr công tác v n chuy n hƠng c u tr cho ngư i dơn các vùng lũ l t

2.2 Nhiệm vụ

Về lý thuyết:

- Tìm hi u lỦ thuy t bƠi toán luồng cực đ i vƠ một số bƠi toán ng d ng c a bƠi

toán luồng cực đ i

- Nghiên c u kỹ các thu t toán trên bƠi toán luồng cực đ i v i chi phí cực ti u

- N m đư c quy trình cƠi đặt thu t toán, xơy dựng ng d ng cho smartphone

Về thực tiễn:

- Tìm ra đư c phư ng án v n chuy n hƠng c u tr cho ngư i dơn các vùng lũ l t

hiệu qu vƠ tốn ít chi phí nhất

- Xơy dựng chư ng trình máy tính thực hiện đư c ch c năng trên

3.ăĐ iăt ngăvƠăph măviănghiênăc u

3.1 Đối tượng nghiên cứu

- BƠi toán luồng cực đ i v i chi phí cực ti u

- Các ngôn ng l p trình: Html, Css, JavaScript, C#, Google Maps SDK, Google

V phư ng pháp nghiên c u, tôi s d ng hai phư ng pháp chính lƠ nghiên c u lỦ

thuy t vƠ nghiên c u thực nghiệm

4.1 Phương pháp nghiên cứu lý thuyết

- Nghiên c u các tƠi liệu v c s lỦ thuy t: BƠi toán tìm luồng cực đ i

- Các tƠi liệu cƠi đặt một số d ng bƠi toán tìm luồng cực đ i

- Các tƠi liệu liên quan đ n một số nghiên c u

- Các tƠi liệu v quy trình xơy dựng, phát tri n phần m m ng d ng

- Các tƠi liệu v thực tr ng công tác c u tr ngư i dơn các vùng lũ l t

Trang 14

4.2 Phương pháp nghiên cứu thực nghiệm

Sử dụng phương pháp nghiên c u lý thuyết kết hợp với nghiên c u thực nghiệm:

- CƠi đặt các thu t toán cho bƠi toán

- Vi t chư ng trình cho bƠi toán ng d ng c th

- Ch y th nghiệm, lưu tr k t qu đ t đư c vƠ đánh giá l i k t qu

V mặt khoa học, trên c s nghiên c u lỦ thuy t bƠi toán luồng cực đ i vƠ các phư ng pháp gi i bƠi toán luồng cực đ i v i chi phí cực ti u, lu n văn xơy dựng đư c

chư ng trình hỗ tr công tác v n chuy n hƠng c u tr cho ngư i dơn các vùng bão l t

V mặt thực tiễn: V i việc xơy dựng thƠnh công chư ng trình, công tác v n chuy n hƠng c u tr khi có bão lũ xẩy ra s đư c ti n hƠnh một cách nhanh chóng, nơng cao hiệu qu vƠ ti t kiệm đư c chi phí v n chuy n cho từng chuy n hƠng

6.ăB ăc căc aăđ ătƠi

NgoƠi phần m đầu vƠ k t lu n ToƠn bộ nội dung c a lu n văn đư c chia lƠm 3 chư ng sau:

Chư ng 1: BƠi toán luồng cực đ i

- Phát bi u bƠi toán vƠ c s lỦ thuy t c a bƠi toán luồng cực đ i

Chư ng 2: BƠi toán luồng cực đ i v i chi phí cực ti u

- Phát bi u bƠi toán luồng cực đ i v i chi phí cực ti u, các gi thuy t, đồ thị thằng dư vƠ nh ng đi u kiện tối ưu c a bƠi toán Đưa ra mối quan hệ gi a luồng tối ưu

vƠ kh năng thông qua t i các đỉnh Nêu ra một số thu t toán gi i bƠi toán luồng cực

đ i v i chi phí cực ti u

Chư ng 3: Xơy dựng ng d ng tìm đư ng v n chuy n hƠng c u tr Minimum

Cost Max Flow

- ng d ng các thực toán đ thi t k vƠ l p trình ng d ng hỗ tr tìm đư ng v n chuy n hƠng c u tr Minimum Cost Max Flow

Trang 15

Ch ngă1 BĨIăTOỄNăLU NGăC CăĐ I

Đ thu n tiện cho việc trình bƠy ta s quy ư c rằng n u không có cung (v,w) thì

kh năng thông qua c(v,w) đư c gán bằng 0

Định nghĩa 2 Gi s cho m ng G = (V,E) Ta gọi luồng f trong m ng G = (V,E)

lƠ ánh x f: E R+ gán cho mỗi cung e =(v,w) E một số thực không ơm f(e) = f(v,w), gọi lƠ luông trên cung e, tho mãn các đi u kiện sau:

1 Luồng trên mỗi cung e E không vư t quá kh năng thông qua c a nó:

0 ≤ f (e) ≤ c(e),

2 Đi u kiện cơn bằng luồng trên mỗi đỉnh c a m ng: Tổng luồng trên các cung

đi vƠo đỉnh v bằng tổng luồng trên các cung đi ra khỏi đỉnh v, n u v ≠ s,t:

3 Giá trị c a luồng f lƠ số

1.1.2 Bài toán luồng cực đại trong mạng

1.1.2.1 Phát biểu bài toán luồng cực đại

Trong thực t ta thư ng gặp bƠi toán gọi lƠ bài toán tìm luồng cực đại như sau:

Cho m ng G v i nguồn a, đích z vƠ kh năng thông qua cij, (i,j)G Trong số các luồng trên m ng G tìm luồng có giá trị l n nhất

BƠi toán luồng cực đ i có th bi u diễn như bƠi toán quy ho ch tuy n tính

Trang 16

N u S, T  V lƠ phơn ho ch c a V ( ST = V & ST =  ) và a S, zT, thì

cặp (S,T) gọi lƠ lát cắt (nguồnđỉnh)

Khả năng thông qua c a lát c t (S, T) lƠ giá trị

C(S, T) =

Cho luồng f vƠ lát c t (S,T) trên m ng G V i mọi S, T  V, kỦ hiệu

f(S,T) =

1.2.ăThu tătoánăFord-Fulkerson

1.2.1 Đường đi tăng luồng

Cho luồng f trên m ng G=(V,E,c) Ta định nghĩa mạng thặng dư, kỦ hiệu Gf, là

m ng có t p đỉnh V vƠ t p cung Efcùng kh năng thông qua cfnhư sau:

V i mọi cung (u,v)  E, n u f(u,v) > 0 thì (v,u)  Ef v i kh năng thông qua

cf(v,u) = f(u,v)

V i mọi cung (u,v)  E, n u c(u,v)  f(u,v) > 0 thì (u,v)  Ef v i kh năng thông

qua cf(u,v) = c(u,v)  f(u,v)

Mỗi đư ng đi có hư ng từ đỉnh nguồn a đ n đỉnh đích z trong m ng thặng dư Gf

gọi lƠ đường đi tăng luồng

Gi s

iS jTcij

( , )

) , ( i j S T

ij

f

Trang 17

P = (a, u, … , i, j, … , v, z) lƠ đư ng đi tăng luồng từ a đ n z

Ngư c l i n u (j,i)  E thì cung đó ngư c hư ng v i P

T p các cung cùng hư ng v i P kỦ hiệu lƠ P+

T p các cung ngư c hư ng v i P kỦ hiệu là P

1.2.2 Phương pháp FordFulkerson

Phư ng pháp nƠy đư c Ford vƠ Fulkerson đưa ra năm 1962 ụ tư ng xơy dựng luồng cực đ i như sau: xuất phát từ luồng nƠo đó, ta tìm đư ng đi tăng luồng từ a đ n z cho phép hiệu chỉnh giá trị luồng trên đư ng đi đó sao cho luồng m i có giá trị l n

h n N u không tìm đư c đư ng đi như v y thì ta có luồng cực đ i

Sau đơy lƠ mô t thu t toán tổng quát Thu t toán nƠy có th c i ti n đ tăng hiệu năng

 Đầu vào M ng G = (V, E) v i nguồn a, đích z, kh năng thông qua C = (cij), (i,j)G

Các đỉnh trong G đư c s p x p theo th tự nƠo đó

 Đầu ra Luồng cực đ i F = (fij), (i,j)G

 Trư ng h p S  : Chọn đỉnh u  S nhỏ nhất (theo th tự) Lo i u khỏi S, S:=

S \ { u } KỦ hiệu nhãn c a u lƠ (p, ) và A lƠ t p các đỉnh chưa có nhãn vƠ k đỉnh

sinh nhãn u

Qua bư c 2.2

 Trư ng h p S =  vƠ S’  : Gán S := S’ vƠ S’ :=  Quay l i bư c 2.1

 Trư ng h p S =  vƠ S’ = , thì k tăthúc, luồng F là cực đại

2.2 Gán nhãn cho đỉnh chưa có nhãn vƠ k đỉnh sinh nhãn

 Trư ng h p A = : Quay l i bư c 2.1

Trang 18

 Trư ng h p A  : Chọn t  A nhỏ nhất (theo th tự) Lo i t khỏi A, A:= A \ {

t } Gán nhãn cho t như sau:

N u (u,t)E và fu,t < cu,t , đặt nhãn đỉnh t là ( u, min{, cu,t fu,t})

N u (t, u)E và ft,u > 0, đặt nhãn đỉnh t lƠ (u, min{, ft,u})

N u t không đư c gán nhãn thì quay l i bư c 2.2

N u t đư c gán nhãn vƠ t = z thì sang bư c 3

N u t đư c gán nhãn vƠ t  z thì bổ sung t vƠo S’, S’ := S’ {t}, vƠ quay l i bư c

2.2

Gi s z có nhãn (q, ) Ta hiệu chỉnh luồng f như sau

Procedure Findpath (u:integer);{tìm đường tăng luồng trên Gf }

Trang 19

until v = s;

End;

Trang 20

Trong đó:

 C[1 n,1 n]: ma tr n bi u diễn kh năng thông qua các cung trên m ng

 F[1 n,1 n]: ma tr n bi u diễn luồng trên các cung

 Trace[1 n]: dùng đ lưu v t đư ng tăng luồng, thu t toán tìm đư ng tăng luồng s s d ng lƠ thu t toán tìm ki m theo chi u sơu (DFS)

Ta có th tìm ki m (u,v) có ph i lƠ cung trên m ng thặng dư Gfkhông bằng đẳng

th c: c[u,v]>f[u,v] N u (u,v) lƠ cung trên Gfthì kh năng thông qua c a nó lƠ c[u,v] ậ

Trang 22

● Chọn đư ng tăng luồng P = (1,3,5,6), tăng luồng dọc theo đư ng nƠy:

Trang 23

- Đồ thị tăng luồng:

Đ n đơy không còn đư ng đi c b n nƠo trên đồ thị tăng luồng nên thu t toán k t

thúc

Bư c 3: Luồng cực đ i

Luồng cực đ i có giá trị lƠ 9, lát c t cực ti u (X,Y) v i X={1,3}, Y={2,4,5,6}

Đ nhălỦăv ătínhănguyên: ắN u tất c các kh năng thông qua lƠ số nguyên thì

thu t toán trên luôn tìm đư c luồng cực đ i v i luồng trên cung lƠ các số nguyên Gọi e số c nh c a đồ thị, n lƠ số đỉnh e E n,  V

Thu t toán Ford Fulkerson có độ ph c t p lƠ O(e) mỗi lần thực hiện, nhưng số lần lặp không chính xác, xấp xỉ giá trị luồng cực đ i f, t c lƠ thu t toán nƠy có độ ph c

t p lƠ một hƠm đa th c, vì v y, chúng ta cần đ n một thu t toán mƠ th i gian thực hiện không ph thuộc chút nƠo vƠo C Xét cho cùng, các thu t toán tìm đư ng đi ng n nhất

v i kh năng thông qua c a cung e lƠ ce, nhưng th i gian thực hiện c a các thu t toán nƠy chỉ ph thuộc các tham số e vƠ n Một thu t toán như th gọi lƠ ắph thuộc đa th c

m nh” (strongly polynomial)

Trang 25

Chọn đư ng tăng luồng P = (1,2,5,6), tăng luồng dọc theo đư ng nƠy:

Trang 26

- Chọn đư ng tăng luồng P = (1,3,5,6), tăng luồng dọc theo đư ng nƠy:

Trang 28

Ch ngă2 BĨIăTOỄNăLU NGăC CăĐ IăV IăCHIăPHệăC CăTI U

2.1.ăGi iăthi u

2.1.1 Phát biểu bài toán

Trong thực t ta thư ng ph i gi i quy t bƠi toán: trong các luồng cực đ i tìm luồng có chi phí nhỏ nhất, trong đó chi phí lƠ tổng chi phí thực hiện luồng trên tất c các cung

Định nghĩa Mạng chi ph cung G = (V,E,c,p) lƠ m ng (V,E,c) v i pij lƠ đ n giá chi phí luồng trên cung (i j), i,j  V

Chi ph c a luồng f trên m ng G lƠ tổng chi phí luồng c a tất c các cung

jE

i

ij

ij p f) , (

.

Giả thiết: Kh năng thông qua c a các cung nguyên dư ng vƠ không l n h n

hằng số M vƠ đ n giá chi phí c a các cung nguyên dư ng vƠ không l n h n hằng số C

Ví d :

cj,pij

Trang 29

BƠi toán luồng cực đ i v i chi phí cực ti u có th đư c phát bi u như sau:

Cực ti u hóa

(f)( )

2.1.3.ăĐ ăthiăthĕngăd

Cho luồng f trên m ng chi phí cung G = (V,E,c,p) Ta định nghĩa mạng thặng dư,

kỦ hiệu Gf, lƠ m ng có t p đỉnh V vƠ t p cung Ef cùng kh năng thông qua cf vƠ đ n giá chi phí pf như sau:

V i mọi cung (u,v)  E, n u f(u,v) > 0 thì (v,u)  Ef v i kh năng thông qua

cf(v,u) = f(u,v) vƠ pf(v,u) = p(u,v)

V i mọi cung (u,v)  E, n u c(u,v)  f(u,v) > 0 thì (u,v)  Ef v i kh năng thông

qua cf(u,v) = c(u,v)  f(u,v) vƠ pf(u,v) = p(u,v)

2.2.ăĐi uăki năt iă uăc aăbƠiătoán

2.2.1 Điều kiện tối ưu về chu trình âm

Định lý 2.1: Các đi u kiện tối ưu v chu trình ơm

Một gi i pháp kh thi f* lƠ một gi i pháp tối ưu c a bƠi toán luồng v i chi phí cực ti u khi vƠ chỉ khi thỏa mãn các đi u kiện tối ưu v chu trình ơm: Đồ thị thặng dư G(f*) không ch a chu trình (có hư ng) có chi phí ơm

Đơy lƠ định lỦ quan trọng giúp chúng ta ti p c n bƠi toán luồng cực đ i v i chi

Trang 30

2.2.2.Điều kiện tối ưu về chi phí rút gọn

Chúng ta có th vi t đi u kiện tối ưu v đư ng đi ng n nhất theo chi phí dư i

d ng tư ng đư ng như sau:

0 d

mƠ chỉ dùng các cung có chi phí rút gọn bằng 0

Chúng ta g n một số thực (có th ơm hoặc dư ng), v i mỗi đỉnhi  V, gọi ilà

kh năng c a đỉnh i Cho một t p h p các kh năng c a đỉnh  , chúng ta định nghĩa chi phí rút gọn c a cung (i, j) lƠ pij  pij    i j Các cung v i chi phí rút gọn nƠy thích h p v i đồ thị thặng dư cũng như đồ thị gốc Chúng ta định nghĩa chi phí rút gọn trong đồ thị thặng dư cũng giống như chúng ta định nghĩa chi phí nhưng s d ng

ij

p thay vì pij

Từ phơn tích trên chúng ta có tính chất như sau:

(1) V i bất kỳ đư ng đi có hư ng Z nƠo từ đỉnh k t i đỉnh l thì

Tính chất nƠy chỉ ra rằng, kh năng c a đỉnh không thay đổi đư ng đi ng n nhất

gi a bất kỳ cặp đỉnh k vƠ l nƠo b i vì các kh năng lƠm tăng độ dƠi c a mọi đư ng đi một giá trị không đổi  k  l Tính chất nƠy cũng cho thấy n u W lƠ một chu trình

ơm v i chi phí cung pij, thì nó cũng lƠ một chu trình ơm v i chi phí lƠ pij Bơy gi

Trang 31

chúng ta có th thay th các đi u kiện tối ưu v chu trình ơm bằng các đi u kiện chi phí rút gọn cho các cung

Định lý 2.2: Các đi u kiện tối ưu v i chi phí rút gọn

Một l i gi i kh thi f* lƠ một l i gi i tối ưu c a bƠi toán luồng v i chi phí cực

ti u khi vƠ chỉ khi t p h p các kh năng c a đỉnh  thỏa mãn các đi u kiện tối ưu v chi phí rút gọn sau:

ij

p > 0 v i mọi cung (i, j) trong G(f*)

Trong định lỦ trên chúng ta đã mô t một luồng tối ưu f lƠ một luồng thỏa mãn

đi u kiện pij  0 v i tất c (i, j) thuộc G(f) v i t p h p các kh năng c a đỉnh 

nƠo đó Cùng cách đó, chúng ta có th định nghĩa ắcác kh năng tối ưu c a đỉnh” lƠ t p

h p các kh năng  c a đỉnh thỏa mãn đi u kiện pij  0v i tất c (i, j) thuộc G(f)

v i luồng kh thi f nƠo đó

2.2.3 Điều kiện tối ưu bổ sung

Định lỦ 2.1 vƠ định lỦ 2.2 giúp chúng ta phát hiện tính tối ưu c a các l i gi i c a bƠi toán luồng v i chi phí cực ti u bằng cách công th c hóa các đi u kiện trên các đồ thị thặng dư, bơy gi chúng ta s phát bi u l i các đi u kiện nƠy trên các đồ thị gốc

Định lý 2.3: Các đi u kiện tối ưu bổ sung

Một l i gi i kh thi f* lƠ một l i gi i tối ưu cho bƠi toán luồng v i chi phí cực

ti u khi vƠ chỉ khi v i một t p h p các kh năng c a đỉnh  nƠo đó, các chi phí rút gọn vƠ giá trị c a luồng thỏa mãn các đi u kiện tối ưu bổ sung sau đối v i mọi cung (i,

Ch ng minh: Chúng ta s chỉ ra rằng các đi u kiện tối ưu v chi phí rút gọn

tư ng đư ng v i các đi u kiện trên Trư c h t chúng ta ch ng minh rằng n u các kh năng c a đỉnh  vƠ luồng x thỏa mãn các đi u kiện tối ưu v chi phí rút gọn thì chúng

ph i thỏa mãn các đi u kiện trên

Xét 3 trư ng h p cho mọi cung (i, j)  E:

Trư ng h p 1: N u pij > 0, đồ thị thặng dư không th ch a cung (i, j) vì

p   p < 0, mơu thuẫn v i đi u kiện th nhất, vì v y *

ij

Trang 32

p   pnên từ các bất đẳng th c trên suy ra pji  pij  0

Trư ng h p 3: N u pij < 0, đồ thị thặng dư không th ch a cung (i, j) vì pij <

0, mơu thuẫn v i đi u kiện th 3, vì v y *

ij ij

2.3.ăM iăquanăh ăgi aălu ngăt iă uăvƠăkh ănĕngăthôngăquaăt iăcácăđ nh

Xuất phát từ gi thi t từ luồng tối ưu, lƠm cách nƠo đ có đư c các kh năng (c a đỉnh) tối ưu vƠ ngư c l i, từ các kh năng tối ưu lƠm th nƠo đ có đư c một luồng tối

ưu Gi i quy t bƠi toán trên bằng cách gi i bƠi toán đư ng đi ng n nhất hoặc bƠi toán luồng cực đ i, các k t qu chỉ ra mối quan hệ đáng chú Ủ gi a bƠi toán luồng v i chi phí cực ti u vƠ các bƠi toán luồng cực đ i, đư ng đi ng n nhất Chúng ta ch ng minh 2

gi thi t sau:

(1) N u cho trư c một luồng tối ưu f*, ta có th đ t đư c các kh năng tối ưu bằng cách gi i một bƠi toán đư ng đi ng n nhất (v i các cung có th ơm): Gọi G(f*) lƠ

đồ thị thặng dư v i luồng f* Rõ rƠng G(f*) không ch a chu trình có chi phí ơm nƠo,

n u ngư c l i thì mơu thuẫn v i tính tối ưu c a l i gi i f* Gọi d là đư ng đi ng n nhất

từ đỉnh l đ n các đỉnh còn l i c a đồ thị thặng dư n u chúng ta coi cij lƠ độ dài các

âm Các đi u kiện tối ưu v đư ng đi ng n nhất cho ta:

dj < di +pijv i mọi (i, j) trong G(f*)

0

p  p      v i mọi (i, j) trong G(f*)

Định lý 2.3 cho thấy  t o thƠnh một t p h p tối ưu các kh năng c a đỉnh (2) N u cho trư c một t p h p các kh năng tối ưu  , chúng ta có th đ t đư c một l i gi i tối ưu f* bằng cách gi i một bƠi toán luồng cực đ i Trư c tiên chúng ta tính chi phí rút gọn cho mọi cung (i, j)  E vƠ lần lư t kh o sát tất c các cung Chúng

ta s phơn lo i mỗi cung (i, j) theo một trong các cách sau vƠ s d ng các cách phơn

lo i nƠy đ định nghĩa một bƠi toán luồng cực đ i

Trư ng h p 1: pij > 0

Đi u kiện th nhất c a định lý 2.3 cho bi t *

ij

f ph i bằng 0 Chúng ta tuân theo dƠng buộc nƠy bằng cách đặt *

ij

f = 0 vƠ xóa cung (i, j) khỏi đồ thị

Trang 33

có độ thông qua bi, v i mỗi đỉnh i có b’i< 0 chúng ta thêm một cung (i, t) có độ thông

qua ậbi Bơy gi chúng ta gi i một bƠi toán luồng cực đ i từ đỉnh s đ n t trong đồ thị

bi n đổi đ đ t đư c một luồng cực đ i f* L i gi i *

ij

tối ưu cho bƠi toán luồng v i chi phí cực ti u trong G

2.4.ăM tăs ăthu tătoánăgi iăbƠiătoánălu ngăc căđ iăv iăchiăphíăc căti u

2.4.1 Thuật toán khử chu trình âm (Cycle canceling)

Đi u kiện tối ưu v chu trình ơm cho ta ti p c n bƠi toán luồng v i chi phí cực

ti u theo hư ng đ n gi n bằng cách tìm vƠ kh chu trình ơm trên đồ thị thặng dư cho

t i khi đ t đư c đi u kiện tối ưu lƠ đồ thị không còn chu trình ơm, gọi lƠ thu t toán

kh chu trình ơm

Tư tư ng c a thu t toán: Thu t toán kh chu trình ơm xuất phát từ một phư ng

án kh thi vƠ c i thiện hƠm tối ưu c a phư ng án đó

Xuất phát từ một luồng kh thi f trên đồ thị, mỗi một bư c lặp ta tìm một chu trình có chi phí ơm vƠ tăng luồng trên chu trình nƠy, khi đồ thị không còn chu trình ơm thì bƠi toán k t thúc v i một luồng tối ưu tìm đư c Thu t toán kh chu trình ơm có một k t qu ph lƠ định lỦ sau đơy:

Định lý 2.4: Tính chất nguyên

N u tất c các độ thông qua c a cung vƠ kh năng cung/cầu c a các đỉnh lƠ số nguyên thì bƠi toƠn luồng v i chi phí cực ti u luôn có một luồng v i chi phí nhỏ nhất

lƠ số nguyên

Trang 34

2.4.1.3 Các bước thực hiện thuật toán

1 Tìm luồng cực đ i ban đầu

2 Đi u kiện dừng: N u không có chu trình chi phí ơm trong m ng thặng dư thì dừng Luồng cực đ i có chi phí cực ti u

3 Chọn chu trình chi phí ơm trong m ng thặng dư Tăng tối đa luồng trên chu trình ơm

Quay l i bư c 2

Giả code:

begin

Tìm một luồng kh thi x trong đồ thị;

while (đồ thị thặng dư G(f) ch a một chu trình ơm) do

Đ tìm luồng cực đ i ban đầu ta có th s d ng thu t toán bất kỳ thuộc nhóm

đư ng đi tăng luồng Đ tìm chu trình chi phí ơm ta có th s d ng thu t toán sau:

*Thu tătoánăFloyd-Warshallătìmăchuătrìnhăơm

Đơy lƠ thu t gi i tìm đư ng đi ng n nhất gi a mọi cặp đỉnh trong đồ thị có hư ng

có trọng số Tuy nhiên ta cũng có th s d ng thu t gi i nƠy tìm chu trình ơm

(i,j)

N u trên đư ng chéo có trị ơm d(k,k) < 0, thì tồn t i chu trình ơm qua đỉnh k

N u trên đư ng chéo không có trị ơm, thì d(i,j) lƠ chi u dƠi đư ng đi ng n nhất từ

i đ n j v i mọi cặp (i,j)

Ma tr n P=[p(i,j)] dùng đ xác định chu trình ơm hoặc đư ng đi ng n nhất

Trang 35

(1) Bư c kh i t o: KỦ hiệu D0lƠ ma tr n xuất phát

N u k = n, k t thúc- D = DnlƠ ma tr n độ dƠi đư ng đi ng n nhất, P = Pn

Ngư c l i tăng k lên 1 đ n vị (k:=k+1) vƠ sang (3)

i1 = p(i,i) , i2 = p(i1,i) , … , ik+ 1 = p(ik,i) , … , p(im,i) = i

Thu t toán Floyd-Warshall dễ cƠi đặt nhưng có độ ph c t p O(|V|3) Sau đơy lƠ thu t toán Belmann-Ford tìm chu trình ơm có độ ph c t p O(|V|-|E|)

Trang 36

*Thu tătoánăBellman-Fordătìmăchuătrìnhăơm

Thu t toán Bellman-Ford tìm đư ng đi ng n nhất trong trọng đồ có trọng số ơm,

n u không có chu trình ơm N u đồ thị có chu trình ơm thì có th xác định chu trình ơm bằng thu t toán nƠy

(ii) Thực hiện duyệt đồ thị G theo th tự gi m dần c a th tự sau postord(v)

for i:=1 to n do tplt[i]:=0; K:=0;

for postord(u) := n downto 1 do

if tplt[i] = 0 then

begin

K := K+1;

TK, trong đó mỗi đỉnh v thuộc cơy TKđư c gán tplt[v]:=K>

Trang 37

Hình 2.2: Minh họa thuật toán khử chu trình m

(Chúng ta vi ph m gi thi t 4) đ dễ kh o sát đồ thị h n) Hình v 2.6(a) mô t một luồng kh thi trong đồ thị vƠ hình v 2.6(b) lƠ đồ thị thặng dư tư ng ng Gi s thu t toán chọn chu trình 4.2.3.4 có chi phí là -1 trư c tiên Kh năng thông qua thặng dư

c a chu trình nƠy lƠ 2 Thu t toán tăng 2 đ n vị luồng theo chu trình nƠy Hình v 2.6(c) v đồ thị thặng dư bổ sung Trong vòng lặp k ti p, gi s thu t toán chọn chu

2.6(d) mô t đồ thị thặng dư c p nh t Vì đồ thị thặng dư không ch a chu trình ơm nƠo

n a nên thu t toán k t thúc

2.4.1.4 Độ ph c tạp thuật toán

Trong bƠi toán luồng v i chi phí cực ti u, mPC lƠ c n trên c a chi phí luồng ban đầu (vì pij < P và fij< C v i  ( , ) i j  E ) và -mPC lƠ c n dư i c a chi phí luồng tối

ưu (do pij> -P và fij < C v i  ( , ) i j  E) Mỗi vòng lặp c a thu t toán kh chu trình

ơm thay đổi giá trị hƠm m c tiêu một lư ng s lƠ một giá trị ơm

c Đồ thị thặng dư sau khi tăng 2

Trang 38

Chúng ta gi s tất c d liệu c a bƠi toán lƠ số nguyên, thu t toán s k t thúc trong O(mPC) vòng lặp vƠ ch y trong th i gian O(nm2PC)

2.4.2 Thuật toán tìm đường đi ngắn nhất liên tiếp (Successive shortest Path)

Thu t toán tìm đư ng đi ng n nhất liên ti p xuất phát từ một gi thi t tối ưu vƠ duy trì đi u kiện tối ưu c a gi thi t đó

Đ mô t thu t toán nƠy, trư c h t chúng ta tìm hi u khái niệm luồng gi Một luồng gi lƠ một hƠm x: A  R+ chỉ thỏa mãn các rƠng buộc không ơm vƠ kh năng thông qua, nó không cần thỏa mãn các rƠng buộc cơn bằng khối lư ng V i mọi luồng

gi f, ta định nghĩa độ mất cơn bằng c a đỉnh i như sau:

N u ei > 0 v i đỉnh i nƠo đó, ta nói ei lƠ m c vư t quá c a đỉnh i N u ei <0, ta

gọi ậeilƠ m c thi u h t c a đỉnh Chúng ta gọi một đỉnh i có ei= 0 lƠ cơn bằng Gọi E

vƠ D lƠ các t p h p các đỉnh vư t quá vƠ thi u h t trong đồ thị

Do đó, n u đồ thị ch a một đỉnh vư t quá thì nó cũng ph i ch a một đỉnh thi u

h t Đồ thị thặng dư tư ng ng v i một luồng gi đư c định nghĩa giống như chúng ta định nghĩa đồ thị thặng dư cho một luồng

Bổ đề 2.2: Gi s một luồng gi (hoặc một luồng) x thỏa mãn các đi u kiện tối

ưu v chi phí rút gọn đối v i các kh năng (c a đỉnh)  nƠo đó Gọi vector d lƠ kho ng cách đư ng đi ng n nhất từ đỉnh s đ n tất c các đỉnh khác trong đồ thị thặng

dư G(f) v i pij lƠ độ dƠi c a cung (i, j), ta có các tính chất sau:

(1) Luồng gi f cũng thỏa mãn các đi u kiện tối ưu v chi phí rút gọn đối v i các

kh năng c a đỉnh rút gọn ' =  - d

(2) Các chi phí rút gọn pij v i tất c các cung (i, j) trên đư ng đi ng n nhất từ đỉnh s đ n mọi đỉnh khác

Trang 39

Bổ đề 2.3: Gi s một luồng gi (hoặc một luồng) x thỏa mãn các đi u kiện tối

ưu v chi phí rút gọn vƠ ta đ t đư c f’ từ f bằng cách g i luồng theo một đư ng đi

ng n nhất từ đỉnh s đ n một số đỉnh k khác thì f’ cũng thỏa mãn các đi u kiện tối ưu v chi phí rút gọn

Trong thu t toán tìm đư ng đi ng n nhất liên ti p, kh năng c a các đỉnh đóng vai trò rất quan trọng, chúng ta dùng chúng đ gi cho độ dƠi các cung không âm giúp

gi i quy t bƠi toán đư ng đi ng n nhất một cách hiệu qu

Thu t toán tìm đư ng đi ng n nhất liên ti p đư c mô t như sau:

Xuất phát từ một luồng tối ưu gi f = 0 trên đồ thị, khi đó ta ph i vi ph m rƠng buộc cơn bằng khối lư ng t i các đỉnh, mỗi một bư c lặp ta tìm một chu trình ng n nhất từ nguồn đ n đích vƠ tăng đ n vị v n chuy n trên chu trình nƠy, khi các đi u kiện

v cơn bằng khối lư ng thỏa mãn bƠi toán k t thúc v i một luồng tối ưu tìm đư c

C p nh t : =  - d;  := min[ek, -el, min{rij:(i, j)  P}];

Tăng  đ n vị luồng theo đư ng đi P;

Trang 40

còn đỉnh có độ mất cơn bằng khác 0 thì c E vƠ D ph i khác NULL vì tổng các độ vư t quá bằng tổng các m c thi u h t Vì v y cho đ n khi tất c các đỉnh đ u cơn bằng thì thu t toán luồng có th xác định một đỉnh vư t quá k vƠ một đỉnh thi u l Gi thi t 4 chỉ ra rằng đồ thị thặng dư ch a một đư ng đi có hư ng từ đỉnh k đ n mọi đỉnh khác bao gồm c đỉnh l Do đó kho ng cách đư ng đi ng n nhất d đư c định nghĩa tốt

Ngày đăng: 25/05/2021, 21:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w