1. Trang chủ
  2. » Khoa Học Tự Nhiên

Tìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụng (Khóa luận tốt nghiệp)

48 230 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

Định dạng
Số trang 48
Dung lượng 8,68 MB

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

Nội dung

Tìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụngTìm hiểu thuật toán tối ưu trên đồ thị và hướng ứng dụng

Trang 1

L I C

tài Nghiên c u khoa h c này là nh s ng d n và

c a gi ng viên Ts Em xin chân thành c

c a th y.

Em t c y cô trong khoa K thu t Công ngh thông tin

i h c Qu n tình gi ng d y, truy t nh ng ki n th c quý báu

và t u ki n cho em hoàn thành báo cáo này.

Trang 2

M U 1

1 Lý do ch tài 1

2 M c tiêu nghiên c u 1

3 N i dung nghiên c u 1

4 i ng, ph m vi nghiên c u 1

u 1

1: LÝ THUY TH 3

1.1 M t s khái ni th 3

th 3

1.1.2 Các lo th 3

th th b ph th 3

th th b ph n 3

th 3

th E th n a E th Hamilton 4

th th n a Euler 4

th Hamilton 8

1.4 Bi u di th trên máy tính 8

1.4.1 Bi u di n b ng ma tr n k , ma tr n tr ng s : 8

1.4.2 Danh sách c nh 9

1.4.3 Danh sách k 9

2: GI I THI U M T S THU TH 12

2.1 Thu t toán tìm ki th 12

2.1.1 Tìm ki m theo chi th 12

2.1.2 Tìm ki m theo chi u r th 12

m tra tính liên thông 14

th có tr ng s n nh t 14

n nh th không có tr ng s 14

n nh t 15

2.2.3 Thu t toán Ford Bellman 15

2.2.4 Thu t toán Dijkstra 15

2.2.5 Thu t toán Floyd n nh t gi a t t c các c nh .16

3: LU NG C NG NG D NG 18

3.1 Gi i thi u lu ng c i 18

3.1.1 Bài toán lu ng trên m ng 18

3.1.2 Bài toán lu ng c i trong m ng 18

3.1.3 M ng, lu ng trong m ng, bài toán lu ng c i 18

3.2 ng d ng bài toán lu ng c i trong m ng 19

Trang 3

3.3 M t s bài toán t h p ng d ng t bài toán lu ng 25

3.3.1 Bài toán v th y l i 26

3.3.2 Bài toán v h th i di n chung 27

3.3.3 V m t bài toán t i r c .27

3.4 K t lu n 28

4: 29

4.1 Phát bi u bài toán 29

4.2 Yêu c u bài toán 30

4.3 C 31

33

34

35

K T LU NG PHÁT TRI N 36

TÀI LI U THAM KH O 37

PH L C 38

Trang 5

DANH M C HÌNH NH

Hình 1.1 th th không liên thông 4

Hình 1.2 Liên thông m nh và liên thông y u 4

Hình 1.3 B y cây c u trên sông Pregel 5

Hình 1.4 th bi u di n thành ph Konigsberg 5

Hình 1.5 th th n a Euler 6

Hình 1.6 8

Hình 1.7 1 9

Hình 4.1 C 31

Hình 4.2 Giao di n c a ng d ng 32

Hình 4.3 Giao diên ch y ng d ng 32

Hình 4 4 V m 33

Hình 4.5 V ng 34

Hình 4.6 Các ch 35

Trang 6

M U1.

T

Hi n nay có nhi u tài li t v lý thuy th v i nh ng

n giúp cho nh i mu n nghiên c u v lý thuy th tham

kh o Tuy nhiên h u h t các tài li u ch nghiên c u v lý thuy t và xây d ng các thu t toán chung u tài li u vi t v các ng d ng các thu gi i bài toán ng d ng c th hi n th c hóa trong vi c h c t p, gi ng

Trang 7

- u th c nghi m:

S d u lý thuy t k t h p v i nghiên c u th c nghi m:

+Nghiên c u, tìm hi u ng d tài trong th c t

Trang 8

1: LÝ THUY TH

th : th là m t c u trúc r i r c bao g nh và các c nh n i các

- Khi gi a c nh (x, y) có nhi t c nh thì ta nói nh ng c nh cùng c p

nh là nh ng c nh song song hay là c nh b i

1.1.2 Các lo th

th không có b t k m t cung nào [2]

H: không liên thông

Trang 9

Xét bài toán 7 cây c u Konigsberg [3]

Thành ph Konigsberg thu c C ng hoà Litva có con sông Pregel ch y qua,

gi a sông có cù lao Kneiphof t o nên b i ng 7 cây c

n t này l i v i nhau

Trang 10

i Thu i

có th 7 cây c u, m i c u ch t l n r i quay tr v xu t

c hay không?

c r ng bài toán trên là không

Trang 12

n=1

b -

I v

d ( )

S v

O

I v d v

d ( ) ( )

T v

I

O v d v

d ( ) ( )

Trang 14

Hình 1.7 1 1.4.1.2.

Trang 15

End;

Var

Trang 16

new(t); t^.v:=x, t^.next:=Ke[y]; Ke[y]:=t;

new(t); t^.v:=y, t^.next:=Ke[x]; Ke[x]:=t;

end;

for J:=1 to m dobegin

t:=Ke[j];

while t^.next<>nil dobegin

K t lu n: Lý thuy th là m ng r t l n n m trong toán r i r th

trò quan tr toán cho tin h c và có nhi u ng d ng trong th c ti n Vì v y

vi c nghiên c lý thuy th là r t c n thi t giúp cho vi c ng d ng xây d ng các thu t toán c th Trong ph m vi nghiên c tài, nh ng v n mà tôi nêu trên là m t ph n c a lý thuy th , nh m m c v cho quá trình nghiên c u

Trang 17

2: GI I THI U M T S THU TH2.1 Thu

2.1.1 Tìm ki m theo chi th

toán duy t ho c tìm ki m trên m t câyho c m t th Thu t toán kh u t i g c (ho c ch n m c) và phát tri n xa nh t có th theo m i nhánh

Trang 18

Tronglý thuy th, tìm ki m theo chi u r ng (BFS) là m t thu t toán tìm

Trang 20

if d[v] > d[u] + a[u,v] thenbegin

d[v]:= d[u] + a[u,v];

Truoc[v]:= u;

end;

end;

2.2.4 Thu t toán Dijkstra

A

Trang 21

B Th

X, Y, Z X-Y-ZX-Y

Trang 22

Cho G=(V,E) là m th ng, có tr ng s ng n nh t gi a

m i c nh c a G, ta áp d ng thu t toán Dijkstra nhi u l n ho c áp d ng thu t toán

Gi s V={v1, v2, , vn} và có ma tr n tr ng s là W W0 Thu t toán Floyd xây

p[i,j]>p[k,j];

end;

end;

Trang 23

3: LU NG C NG NG D NG

3.1.1 Bài toán lu ng trên m ng.

Nhi u bài toán quy ho ch tuy n tính có th quy v bài toán làm c c ti u phí t n

c các nhu c u m t s t ngu n cung c p t i m t s nút khác

c g i là các bài toán lu ng trên m ng ho c bài toán tuy n tính L p này bao g m các bài toán quen thu c trong th c t

v n t i, các bài toán m n và m ng giao thông, các bài toán qu n lý và phân b

toán lu ng c [6]

3.1.2 Bài toán lu ng c c i trong m ng

Bài toán lu ng c i [1] trong m t trong s nh ng bài toán t

th c nh ng ng d ng r ng rãi trong th c t nh ng ng d ng

li n v i tên tu i c a hai nhà bác h c M là L.R.Fordvà D.R.Fulkerson Bài toán lu ng

c i trong m ng có nhi u ng d ng trong th c t

dòng l n nh t c a dòng v n t i gi a hai nút c a m t b giao thông, bài toán tìm

lu ng d u l n nh t có th tàu ch d u vào b ch a c a m t h th ng

i vùng quê, bài toán v h th 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

3.1.3 M ng, lu ng trong m ng, bài toán lu ng c i

Gi s cho m ng G=(V,E) Ta g i lu ng f trong m ng G=(V,E) là ánh x

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 u ki n sau:

1 Lu ng trên m i cung e t quá kh

u ki n cân b ng lu ng trên m nh c a m ng : T ng lu ng trên các cung

Trang 24

Thu t toán Ford-Fulkerson [4]

Vi c ch nh lý lu ng c i-lát c t c c ti u ngay l p t c cho chúng ta

m t thu t toán Tìm lu ng c i- thu t toán Ford-Fulkerson:

Trang 25

Procedure Findpath(u:integer); ng trên G f }

Trang 26

f[u,v] :=f[u,v] - Delta ;

v :=u ;until v = s;

End;

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

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 f không b ng

th c: c[u,v]>f[u,v] N u (u,v) là cung trên Gf thì kh a nó là c[u,v] f[u,v]

X, thì f(u,v) xu t hi n v i d u c ng trong Divf(v) và v i d u tr trong Divf(u), vì th ,

c M t khác, t u ki n 1 rõ ràng là:

Trang 27

qu này chúng ra s c n thêm m t s khái ni m.

Gi s f là m t lu ng trong m ng G = (V, E) T m ng G = (V, E) ta xây d

th có tr ng s trên cung Gf = (V, Ef), v i t p cung Ef và tr ng s c

nh theo qui t c sau:

Xét m ng v n t i G =(V,E) [6] c cho hình sau v nh phát, 6

nh thu, lu t trong ngo c, kh c ghi trên các cung :

S d ng thu t toán Ford- tìm lu ng c i và lát c t nh nh t

1 c 1: Kh i t o lu ng f =0

2 c 2:

th ng Gfc a G

Trang 30

nh lý v tính nguyên u t t c các kh nguyên thì thu t

c lu ng c i v i lu ng trên cung là các s nguyên

G i e s c nh c th , n là s nh => e = E , n = V

s l n l p không chính xác, x p x giá tr lu ng c i f, t c là thu

ph c t p là m c, vì v y, chúng ta c 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

ng n nh t v i kh a cung e là ce 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 g

thu t toán Ford-Fullkerson t ng quát

Bài toán lu ng c i có r t nhi u ng d ng trong vi c gi i nhi u bài toán t h p

i xây d ng sao cho vi c tìm lu ng c i

False

True

False True

Trang 31

trong nó s i vi c gi t ra M c này s gi i thi u m t s bài

Trang 32

m, thì bài toán có l i gi i, và các cung v i lu ng b ng 1 s ch ra cách

th cung c c cho các th a ru nào là t t nh t, tho u ki t

c l i, n u bài toán có l i gi i thì V max =m, bài toán v th y l i là m ng

h p riêng c a bài toán v c th gi i nó có th xây d ng thu t toán hi u qu [5]

3.3.2 Bài toán v h th i di n chung

Cho t p m ph n t X = {z 1 ,z 2 m } Gi s <A 1 ,A A n > và <B 1 ,B 2 n > là hai dãy t p con c a X Dãy g m n ph n t khác nhau c a X:< a 1 ,a 2, n c g i là

,

, ,,, ,

,,

2 1 2

1

2 1 2

1

n m

m n

y y y v

v v

u u u x x x t s V

Trong m c này ta s trình bày thu c xây d ng d a trên thu t toán tìm

lu ng c gi i m t bài toán t i r c là mô hình toán h c cho m t s bài toán t h p

Trang 33

Có nhi u bài toán ng d ng, n c mô hình t t b th thì s d dàng gi i quy c trên máy tính ng d ng các thu t toán c a lý thuy th là r t th c ti n

và quan tr ng giúp cho vi c nh n Vi c nghiên c u lý thuy th và các ng d ng

c a nó góp ph n phát tri n các k thu t Tin h c

Trang 34

Hi n nay có nhi u tài li t v lý thuy th v i nh ng

n giúp cho nh i mu n nghiên c u v lý thuy th tham

kh o Tuy nhiên h u h t các tài li u ch nghiên c u v lý thuy t và xây d ng các

thu gi i bài toán ng d ng c th hi n th c hóa trong vi c h c t p, gi ng

Xây d ng m t m ng sao cho: m nh v c a G ng v nh v + , v

-trong , m i cung (u,v) trong G ng v i cung (u,v + ) trong , m i cung (v,w) trong G

ng v i cung (v - ,w + ) trong Ngoài ra, m i cung (v + ,v - ) trong có kh

thông qua cung.

c trên ta có th bi u di i d thu t toán sau:

Trang 36

4.3

Hình 4.1 C

Project g m packages demo, file, icon trong a các file d

li u ph c v th ng s n, packages file ch a 2 file about và help ch a

n i dung gi i thi i dùng, packages icon ch a các nh làm icon, packages chính là packages ch

Trang 37

Hình 4.2 Giao di n c a ng d ng

Giao di n khi ch

Hình 4.3 Giao diên ch y ng d ng

Trang 38

Hình 4 4 V m

Trang 40

Hình 4.6 Các ch

4.4.2.

Trong

Trang 41

K T LU NG PHÁT TRI N

K t Lu n

- Lý thuy th không nh ng có nhi u ng d ng trong th c t mà còn là công

c c l c cho ngành công ngh thông tin Nó giúp cho chúng ta mô t m t cách ddàng các bài toán ph c t p c th t mã hoá

ng c i trong m ng c a hai nhà toán h c M là Ford

và Fullkerson là m t ví d n hình, thông qua vi t thu t toán này giúp chúng

ng Phát Tri n

- Do th i gian và kinh nghi m nghiên c u còn thi u, ki n th c còn h n ch , ng

thi n s n ph m ng d ng

Trang 42

[1] Lê Duy Quang, (2015), Bài toán lu ng c i.

[2] Lê Minh Hoàng, (2002), lý thuy th

[3] t, (2012), Nghiên c u các thu t toán lý thuy th và ng

d ng d y tin h c chuyên Trung h c ph thông

[4] ng Qúy Linh, (2012), Bài toán tìm lu ng c i trong m ng theo thu t toán ford-fulkerson

Website:

[5] http://vnoi.info/wiki/translate/wcipeg/Flows, Lý Thuy th

[6] https://vi.wikipedia.org/wiki/ , Lý Thuy th , bài toán lu ng c i

Trang 43

PH L C

Code Java: Ford Fullkerson

Ngày đăng: 26/02/2018, 19:01

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