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

Tóm lược một số chủ Đề Đã lĩnh hội Được từ môn học (về lí thuyết, thuật toán và ứng dụng

47 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Tóm Lược Một Số Chủ Đề Đã Lĩnh Hội Được Từ Môn Học (Về Lý Thuyết, Thuật Toán Và Ứng Dụng)
Tác giả Nguyễn Thị Hường, Nguyễn Trường Sơn, Ngụ Văn Khụi
Trường học Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa Học Dữ Liệu
Thể loại Báo Cáo Cuối Kỳ
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 47
Dung lượng 5,57 MB

Nội dung

Chương trình = Thuật toán + Cấu trúc dữ liệu * Một số phương pháp diễn đạt thuật toán e Liệt kê từng bước e Sơ đồ khối e Gia ma pseudo — code ¥ Nguyén tac dién dat thuat toan: e Tinh l

Trang 1

DAI HOC QUOC GIA HA NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

HORII IKI III IK

BAO CAO CUOI KY

CHUYÊN NGÀNH: KHOA HỌC DỮ LIỆU

BO MON: TOAN ROI RAC VA THUAT TOÁN

Nguyễn Thị Hường 20007918 Nguyễn Trường Sơn 20007910

NGÀY 10 THÁNG 09 NĂM 2021

TIT rang

Trang 2

1.2.8 Phuecong phéip ngGU MIEN ccccccccscccecsesesesecsescsesesececscsesecesacsssesesscasseseseeessssseseeaes 13

1.3.1 Những khái niệm cơ bđn ch khi 14

1.3.2 Cấu trúc dế liệu biểu diển đô thị cà àSEtsrrrrrrrrrrerie 17 1.3.3 Mô hình và ¿ng dựng ca đồ th/ trong bài toán thực tiển - -: 19 1.4 Bài toán tìm đường đi ngắn nhất .à S2 2S HH HH hệ 20

1.4.1 Bài toán tìm đường đi trên đồ thị .ằ TS SA SH HH HH hư, 20 1.4.2 Bài toán /n đường đi ngắn nhát trên đồ thị c5 ScSx2iessikerrerrree 21

1.5 Tô màu đỗ Vhị ST ST TT TH TH HT HH Hà HH TH TH HH HH diệt 24

IÊN? 1l lnaaaaaitaaiiiiiảaaaảỶÝÝ 24

ca 1n sa 25 1.5.3 Ý zướng và tóm tắt thuát tOÁn: cc cv gi 26

1.6 Thuật toán Fleury tìm chu trình Euler trong đô th¿ liên thông có bác c¿a mọợi

1.6.1 Khái niệm và các yếu tá liên quan - c- 2S 22 E22 xESESxexskesrrrerersee 27

1.6.2.¥ tưởng và lược 2777218777, PERERERRRRRE 27 1.7 Cây nh phân LH kh KT KH kh 27 1.7.1 Khái niệm - L1 111 nhọ nen nh 27

1.7.2 Một số tính Chất L1 1111111111 TT TY TH TH HT TH TH TH Tư Hà HH 28

2lTrang

Trang 3

1.7.3 Thuét toán duyé¿t cây NNi PNAN cc cceccceeecsseeecesssssseeeeeesssessseeeeesseneeeeesensaes 28

1.7.4 Một số ¿ng dựng cây nh phân 2:2: St 2121121211111 Ekkrrre 29 1.8 CAy a0 trUmm tél thi@U .aáỲỪỪ T+T 29

9/010 0n .Ả 30

1.8.3 Thuớf TOÁN: - LH nen ki ng nen pH 31 1.8.4 Các hướnG ứnG „nQ: ác HH ng kg nghi 36 1.9 Những nói đưung tóm lược về mật mã học à ScS St s se 37

1.9.2 Một số thuát toán phổ biến - ¿c2 12121111 E3 E11 E1 E2 111 E1 rxcrrrrcrrưệu 38

80000580 T .4 40 2.1 Giới thiệu vấn để, bài †Ođni: cành nh TH HH TH TH HH HH ng ho 40 2.2 Cơ sở lí thuyết, phương pháp, công cụ để giải quyết bài toán: 40

2.3 LOi Gidi CHA DAI TOUT ng Ầe -5 44

31T rang

Trang 4

1 Tóm lược một số chủ đề đã lĩnh hội được từ môn học (về lí thuyết, thuật toán và

ứng dụng)

1.1 Một số kiến thức cơ sở về thuật toán

“Giải bài toán bằng thuật toán” là quá trình thực hiện chương trình bằng cách dùng thuật toán kết hợp cầu trúc dữ liệu

Chương trình = Thuật toán + Cấu trúc dữ liệu

* Một số phương pháp diễn đạt thuật toán

e Liệt kê từng bước

e Sơ đồ khối

e Gia ma (pseudo — code)

¥ Nguyén tac dién dat thuat toan:

e Tinh logic: Hiéu r6 tinh than, cac buéc thuat toan

e Tính có thẻ cài dat: Kha nang co thé lập trình

e Pseudo - code: Sử dụng ngôn ngữ tự nhiên tựa ngôn ngữ lập trình

v Phân tích thuật toán:

e Chứng minh tính đúng của thuật toán:

o_Chiến lược chứng minh tính đúng của thuật toán:

- Kiêm thử: Chạy thử thuật toán với các dữ liệu vào cụ thể

- Chimg minh tính đúng: Chứng minh bằng toán học

- Kết hợp kiêm thử và chứng minh tính đúng => hiệu quả hơn

4lITrang

Trang 5

o Cac phuong phap chimg minh tinh dung:

- Déi voi thuat toán đệ quy: Dùng quy nap

- Déi voi thuat toan khéng dé quy: Tinh ding nam ở các vòng lặp, sử dụng bát bién vong lap

¥ Xac dinh tinh hiệu quá của thuật toán:

e_ Độ phức tạp thời gian: Số lượng các bước tính toán

se Dộ phức tạp không gian: Tài nguyên sẽ được sử dụng khi thuật toán thi hành

1.2 Một số phương pháp thiết kế thuật toán cơ bản

1.2.1 Giải thu¿ đệ quy

1.2.1.1 Các đặc trưng cơ bản

v Giải thuật đệ quy

e Nếu một bài toán T được thực hiện bằng giái thuật của một bài toán T” có dạng

giống như T

e Tính dừng:

© T phải đơn giản hơn T

o TT giải được (không cần đệ quy) trong một số trường hợp nào đó (suy biến)

* Đặc trưng của các bài toán có thẻ giái bằng đệ quy

e Các bài toán phụ thuộc tham số

e Ứng với các giá trị đặc biệt nào đó của tham số thì bài toán có giải thuật đề giái (trường hợp suy biên)

e Trong trường hợp tổng quát bài toán có thẻ quy về dạng tương tự với một bộ giá trị mới của tham số và sau hữu hạn lan sé dan tới trường hợp suy biến

5lTrang

Trang 6

1.2.1.2 Luoc dé thuat toan

Recursive Algorithm(p,) =

if (p, = Pp») //TH suy bién

<Thực hiện giải thuật trường hợp suy biên>;

1.2.1.3 Xác định quan hệ truy hổi rong phép đệ quy

*“ Gọi T(n) là độ phức tap của giải thuật đệ quy với kích thước bài toán n

*ˆ_c = const là độ phức tạp trong trường hợp suy biến khi n = nạ; T(nạ) = ©

* Với f(n) là hàm biến đôi tham só n, nếu giái thuật được thực hiện a lan bài toán con với tham số f(n) thì:

¥ T(n) = a.T(f(n)) + g(n) voi g(n) la độ phức tạp các thao tác ngoài lời gọi đệ quy

* Công thức truy hồi xác định độ phức tạp giải thuật đệ quy

* Phương pháp thiết kế thuật toán dựa trên 2 thao tác chính:

e Chia (divide): phân rã bài toán ban đầu thành các bài toán con có kích thước nhỏ hơn, có cùng cách giải

e Trị (conque): giái từng bài toán con (theo cách tương tự bài toán đầu - đệ qui) rồi

tổng hợp các lời giải để nhận kết quả của bài toán ban đầu

6lTrang

Trang 7

Y Viéc “Phan ra”: thyc hién tr6én mién dit ligu (chia mién dé ligu thanh các miền nhỏ

hon tuong duong | bai toan con)

1.2.2.2 M6 hinh, luoc do:

Xét bai toan P trén mién dé ligu R

Goi D&C (R) là thuật giái P trên miền dữ liệu R

Nêu R có thẻ phân rã thành n miền con (R= R1UR2U URn)

Với R0 là miền đủ nhỏ để D&C(RO) có lời giải thì lược đồ giái thuật chia để trị:

1.2.2.3 Phân tích và đánh giá độ phúc tạp thuật toán :

v Xây dựng công thức truy hôi đánh giá độ phức tạp thuật toán

v Giải công thức truy hồi xác định độ phức tạp thuật toán

e_ Phép thé liên tiếp

se Sử dụng định lí chính

1.2.2.4 Bài toán

Ví dụ: Sắp xếp băng thuật toán merge sort:

*_ Bài toán: Sử dụng thuật toán chia dé trị để giải bài toán săp xếp một dãy số bằng

phuong phap merge sort

ZlTrang

Trang 8

Y Y tuéng thuat toán:

e Chia máng lớn thành những mảng con nhỏ hơn bằng cách chia đôi máng lớn và

tiếp tục chia đôi các mảng con cho đến khi mảng con nhỏ nhất chỉ còn 1 phản tử

se So sánh 2 mảng con có cùng mảng cơ sở (khi chia đôi mảng lớn thành 2 mảng con

thì máng lớn đó gọi là máng cơ sở của 2 máng con đó)

e Khi so sánh chúng vừa sắp xếp vừa ghép 2 máng con đó lại thành mảng cơ sở, tiếp tục so sánh và ghép các máng con lại đến khi còn lại máng duy nhát, đó là máng

đã được Sắp xép

=P [>be [=

1.2.3.Phương pháp quay lui (Back tracking)

Theo nguyên tắc vét cạn, nhưng chỉ xét những trường hop “kha quan”

8lTrang

Trang 9

* Dùng đề giải bài toán liệt kê các cấu hình:

e Mỗi cấu hình được xây dựng bằng cách xác định từng phân tử

e_ Mỗi phản tử được chọn bằng cách thử các khả năng có thể

e_ Độ dài cáu hình tùy thuộc bài toán

© Xác định trước: sinh dãy độ đài n

6 Không xác định trước: đường di

1.2.3.2 Lược đô giái thuật

Try(i) = /Sinh thành phân thứ ¡ của cấu hình

for (v thuộc tập khả năng thành phần nghiệm x,)

if ( x, chap nhận được giá trị v)

xX, = Vv;

<Ghi nhdn trang thai chap nhAan v>;

if(gặp điều kiện dừng) //i=n hodc x, thoa man dk ditng

Trang 10

¥ Giai céng thirc truy hdi: T(n) = O(d”)

e Là trường hop xau nhat (vét can)

e Trong trién khai thuật toán thời gian thực tế có thẻ giám xuống

for (v thuộc tập khả năng thành phần nghiệm x;)

if ( x; chấp nhận được giá trị v)

1.2.4 Phương pháp nhánh cận

Lược đồ thuật toán như sau:

Try(i,S )= Sinh thành phân thứ ¡ của câu hình với chi phí hiện thời S

for (v thuộc tập khả năng thành phần nghiệm x;)

if( v là chấp nhận được)

T = S ‡ Chỉ phí nghiệm khi có thêm thành phần v;

if (T tốt hơn Toptimize) /Tôt hơn chỉ phí tốt nhát hiện có

e Giải tất cả các bài toán con (một lần)

© Lưu lời giải của bài toán vào một bảng

e_ Phối hợp các bài toán con đê nhận lời giải bài toán ban dau

10lT rang

Trang 11

¥ Cach phat biéu khac: 1 bai toan giai bang QHD duoc phan ra thanh cac bai toan con

và bài toán lớn hơn sẽ được giải quyết thông qua các bài toán con nay (bang các phép truy hỏi)

¥ Phuong phap QHĐ thường dùng cho các bài toán tìm giá trị (hoặc giá trị tối ưu) 1.2.5.2 Cac bude gidi bai toan bang OHP

Bước 1: Nhận dạng bài toán giái bằng QHĐ

Bước 2: Xây dựng công thức truy hài

Bước 3: Xác dinh co so QHD

Bước 4: Dựng bảng phương án

Bước 5: Tìm kết quả tôi ưu

Bước 6: Truy vét liệt kê thành phần nghiệm

1.2.5.3 Đánh giá độ phúc tạp

« Độ phúc tạp thời gian:

e Thời gian tính toán, xác định giá trị các phản tử trong báng phương án, phụ thuộc

vào số chiều của bảng phương án

e Tín) = O(*) - k là số chiều của bảng phương án

e Thời gian truy vét tìm nghiệm: Độ phức tạp thuật toán quay lui

«Độ phức tạp không gian

e© Kích thước bảng phương án - thường lớn

e_ Giảm kích thước bảng phương án trong triển khai thuật toán

1.2.6 Phương pháp tham lam

1.2.6.1 Ý neong

Xây dựng lời giái của bài toán với việc chấp nhận những lựa chọn “có vẻ” tốt nhất

của từng giai đoạn

son ge

Lựa chọn tối ưu cục bộ => lời giái tối ưu toàn cục cho bài toán

11IT rang

Trang 12

* Hai tính chất mang lại hiệu quả của chiến lược tham

e_ Tính chát của sự lựa chọn tham lam: Một giái pháp tối ưu toàn cục có thê đạt được bằng cách thực hiện những chọn lựa tối ưu cục bộ

e_ Tính chát cầu trúc con tôi ưu: Một giải pháp tối ưu của bài toán chưa trong nó các

giải pháp tối ưu của bài toán con

* Để đạt được những hiệu quá đó thì sự lựa chọn ở mỗi bước càn thỏa mãn:

e Khả thi: Thỏa mãn các ràng buộc của bài toán

e Tôi ưu cục bộ: Là lựa chọn tốt nhát trong các lựa chọn khá thi

e Không thẻ thay đổi: Một khi đã chọn, thì lựa chọn không thẻ thay đổi ở các bước tiếp theo

1.2.6.2 Lược đồ thuật toán

Greedy (A) = //Tìm lời giải tôi ưu trên bộ dữ liệu A

1.2.6.3 Độ phúc tap cua thudt toán

*ˆ Hai giai đoạn của thuật toán tham

e Xử lí dữ liệu: Tạo tập đối tượng A

Trang 13

¥ Độ phúc tạp (max):

e Thường phụ thuộc vào giai đoạn xử lí dữ liệu

e Trong trường hợp sắp xép: O(nlogn)

e_ So sánh với thuật toán sinh cáu hình nghiệm bằng phương pháp thử sai: O(2")

1.2.7 Phương pháp trực tuyến

1.2.7.1 Tổng quan

* Dữ liệu input không được nhập một lần toàn bộ trước khi thuật toán thực hiện: Do

điều kiện về không gian nhớ hoặc tính chất dữ liệu

* Tại mỗi bước thực hiện thuật toán phái có phương án kết quả mà không biết dữ liệu tiếp theo sẽ ra sao:

e_ Dự đoán quy luật phân bó dữ liệu

e Xử lí trong trường hợp xâu nhất

1.2.7.2 Độ phúc tạp cua thuát toán

Tuyền tính theo kích thước dữ liệu vào do xử lí lần lượt, liên tiếp

1.2.8 Phương pháp ngấu nhiên

Trang 14

+ Có 2 dạng của thuật toán ngẫu nhiên:

e Với bài toán tối ưu: đưa ra một lời giải tốt nhát với thời gian trung bình tốt nhát

e Với bài toán quyết định: lời giải có thê mắc sai sót nhưng với xác suất nhỏ phụ thuộc vào thời gian thực hiện

* Tính thỏa hiệp: Chấp nhận kết quả với mục tiêu hiệu quá thời gian thực hiện thuật

toán

1.2.8.2 Phân loại

v Thuật toán ngấu nhiên Monte Carlo:

e Thuật toán áp dụng đối với các bài toán quyết định

e Luôn cho ra lời giải của bài toán, nhưng kết quả có thê có sai sót

e Xác suất cho ra lời giải đúng tỉ lệ với thời gian thực hiện

* Thuật toán ngấu nhiên Las Vegas

e_ Thuật toán áp dụng đối với các bài toán tối ưu

e Lời giải nhận được là tốt nhát (chính xác)

e_ Thời gian thực hiện trung bình của thuật toán có giới hạn (tốt)

1.3 Ly thuyét dé thi

1.3.1 Những khái niệm cơ ban

Định nghĩa 1 Một graph (hay một đồ thị) là tập các đinh và các cạnh nói một số đinh

với nhau Kí hiệu G = (V, E) với V là tập đinh và E là tập cạnh

Ví dụ: Có 11 graph khác nhau với tập đinh có 4 phản tử Biêu diễn của các graph như

Trang 15

Định nghĩa 2 Hai đỉnh được gọi là kè nhau nếu có 1 cạnh nói 2 đinh này

Kí hiệu cạnh nói 2 đinh A, B là (AB), nói chung (AB) khác (BA), néu ta coi 2 cạnh

này là 1 thì ta có graph vô hướng, néu coi chúng khác nhau thì ta có graph có hướng Nếu giữa hai đinh của đồ thị chỉ có 1 cạnh nối thì ta có đơn đô thị, ngược lại ta có đa

Vô hướng Có hướng Vô hướng Có hướng Don dé thi Da dé thi

Định nghĩa 3 Một graph đầy đủ với n dinh, ki hiệu là Kn, là graph ma 2 dinh bat ki

đều có cạnh nói giữa chúng, khi đó có tất cá Ê,cạnh

Định nghĩa 4 Kí hiệu d(v) hoặc deg(v) cho bậc của đinh v, là số cạnh mà v là đầu mút Một điểm gọi là chan néu nó có bậc chăn và được gọi là lẻ nếu nó có bậc lẻ Với đồ thị có hướng,

Bán bac ra (deg+(v)) — $6 cung đi ra từ đính v°

Bán bậc vào (deg-(V)) - số cung đi vào từ đỉnh Và

Ví dụ: Graph sau có d(v1) = 4 hay d(v5) = 4

Kết quá 1 Trong một graph có nhiều hơn 1 đỉnh luôn có 2 đinh có cùng bậc Kết quá 2 Trong một Graph vô hướng G tùy ý tông bậc của tất cá các đinh gấp đôi

số cạnh của Graph

15lTrang

Trang 16

Kết quá 3 Trong một Graph có hướng G có số cạnh bằng m thì tổng bậc lẻ = tông bậc chan = m

Định nghĩa 5 Dường ổi trong graph là một dãy các cạnh liên tiếp (hai cạnh liên tiếp nếu chúng có chung đinh) Với đô thị đơn, nếu đường đi đi qua các đỉnh vị, Ve, ., vn theo thứ tự thì ta kí hiệu (v1, v2, ., va), nếu đường đi di qua các cạnh e, ©a, ., en theo thứ tự thì

Định nghĩa 8 Đường đi Ole là 1 đường đi qua tất cả các cạnh, mỗi cạnh đúng 1 làn

Vi du trong graph sau, đường di 1, 2, 3, 4, 5, 6, 7 là I đường đi Ole

Đường đi này có thê đi qua 1 đính nhiều lần, cần chú ý điều này để so sánh với đường

đi Hamilton ở phần sau

Dinh nghia 9 Duong di Ole được gọi là chu trình Ole nếu điểm đầu và điểm cuối

trùng nhau

16lT rang

Trang 17

Định nghĩa 10 Đường đi Hamilton là đường di di qua tat cá các đính, mỗi đính đúng

1 lần Một đường đi Hamilton có điểm đầu và cuối trùng nhau được gọi là chu trình Hamiltonian

Ví dụ 1: Graph sau có đường di 1, 2, 3, 4, 5 1a 1 đường đi Hamilton.Đường di 1, 2, 3, 4,5, 6 là 1 chu trinh Hamilton

1.3.2 Cấu trúc dữ liệu biểu diền đô thị

¥ Biéu dién dé thi bang ma tran ké

Ma tran ké A = [aij]nxn Trong đó:

aij = 1 néu (i, j)E E

aij = 0 néu (i, j) EE

Quy ước aii = 0 với mọi ¡; đây là ma trận đối Xứng qua đường chéo

171T rang

Trang 18

Ma trận kè - Trực quan, dễ cài đặt Không gian lưu trữ O(n®)

- Kiểm tra đinh kề O(1)

Danh sách cạnh | - Không gian lưu trữ O(m) Kiểm tra đỉnh kề phải

- Duyệt tất cả cạnh (Kruskal) duyệt toàn bộ cạnh

Danh sách kè _ | - Tiết kiệm không gian Cài đặt phức tạp

- Dễ duyệt các đinh kè đỉnh cho trước

- Dễ duyệt các cạnh

18lTrang

Trang 19

1.3.3 Mô hình và ¿ng dựng czø đô th trong bài toán thực tiền

+“ Ứng dụng trong khoa học máy tính:

D6 thi duoc sử dụng đề biểu diễn mạng lưới truyền thông, tô chức dữ liệu, thiết bị tính toán, luồng tính toán, v.v Ví dụ: cau trúc liên kết của một trang mạng có thê được biêu diễn bằng biểu đồ có hướng, trong đó các đỉnh đại diện cho các trang web và các cạnh có hướng đại diện cho liên két từ trang này sang trang khác Một cách tiếp cận tương tự có thê

được áp dụng đối với các vấn đè trên mạng xã hội như: facebook, tiktok

ke Listens Watches Friends with

¥ Ung dung trong sinh học:

Tương tự, lý thuyết đồ thị hữu ích trong sinh học và các nỗ lực báo tồn, trong đó đinh

có thẻ đại diện cho các khu vực có một số loài nhát định tồn tại (hoặc cư trú) và các cạnh thể hiện các con đường di cư hoặc sự di chuyên giữa các khu vực Thông tin này rất quan

trọng khi xem xét các mô hình sinh sản hoặc theo dõi sự lây lan của dịch bệnh, ký sinh

trùng hoặc những thay đổi đối với phong trào có thê ảnh hưởng đến các loài khác như thế

nào

* Ứng dụng trong công nghệ phan mem:

Toàn bộ tiền đề của Google Maps là sử dụng một graph khống lồ với các nút và cạnh

để tìm ra con đường nhanh nhát hoặc ngắn nhát đê di chuyên Biểu đồ được Google Maps

191T rang

Trang 20

sử dụng sẽ bao gòm rát nhiều nút khác nhau, từ các thành phó lớn và các thành phó nhỏ hơn đến các làng mạc hoặc thậm chí là các giao lộ trên đường phó

1.4 Bài toán tim đường đi ngắn nhất

1.4.1 Bài toán tìm đường di trên đồ thị

1.4.1.1 Bài toán

Đinh xuất phát: S = 1 e V, đinh kết thúc F = 5 e V

Đường ởi tìm được là dãy S = 1-2-3-6-4-5=F

1.4.1.2 Mô t¿ đữ liệu

Đánh chỉ số các đỉnh của đồ thị từ 1 n

+ Biểu diễn đồ thị G bằng ma trận kẻ M = (m;;) cỡ n xn

mm; = 1 nêu có cạnh nói đỉnh ¡ với đỉnh j

Mi = 0 néu ngược lai

v¥ Mang: Daquaf[l n] danh dau dinh i da duoc di qua trên đường đi hay chưa?

Daqualï] = true néu dinh i đã có trên đường đi

Daqualï] = false nếu ngược lại, đỉnh i chưa có trên đường đi

Khởi tạo: Daqua[T n] = false

20lT rang

Trang 21

1.4.1.3 Thut toán — sve dung thudt toan quay lui

Try(i) =

for (v=l1 n) duyét qua cac dinh

if ((m[x,_,,v]=1)&(not Daqua[v])) /¥v chap nhận được

đinh v thuộc V, tìm một đường đi P từ v tới mỗi đinh v' thuộc V sao cho }) AP)

nhât trong tât cả các đường nôi tử V tới V'

Bài toán đường đi ngắn nhất giữa mọi cặp đỉnh là một bài toán tương tự, trong đó ta phải tìm các đường đi ngắn nhất cho mọi cặp đỉnh V Và V'

Một bài toán có liên quan là bài toán người đưa hàng: Một người bán hàng trên hệ thống n thành phố Giữa các thành phố có thê có hoặc không các đường nồi, mỗi đường nối

có chỉ phí xác định từ trước Người bán hàng xuất phát từ một thành phó, đi tới tất cả các thành phố khác và mỗi thành phô đi qua một lần và quay trở lại thành phố ban đầu Xác

định một hành trình sao cho tông chi phí trên đường đi là nhỏ nhất

21lTrang

Trang 22

1.4.2.2 Phan tich bai toan

Mạng lưới giao thông giữa các thành phô như một đồ thị có trọng số G =(V,E)

e Mỗi thành phô là một nút của đồ thị (đánh số 1, ,n)

e© Mỗi đường ổi giữa các thành phó là một cạnh nói giữa các nút của đồ thị, có thể có

hướng hoặc vô hướng, trên đó có ghi trọng số là chỉ phí đường đi

e Cac cap cạnh không có đường đi trọng Số là œ

Có rất nhiều thuật toán dé giải bài toán tìm đường đi (ngắn nhất) trên đồ thị, nhưng

tiếp sau đây sẽ trình bày ba thuật toán, trong đó có hai thuật toán được đi sâu tìm hiểu trong phạm vi môn học là: Thuật toán nhánh cận và thuật toán Dijkstra Thuật toán còn lại là thuật toán tìm kiếm theo chiều rộng (BFS)

1.4.2.3.1 Thuát toán nhánh cán

1.4.2.3.1.1 Phát biểu thuát toán

v Chỉ phí tốt nhất đã tìm được (BestCost) Ban đầu BestCost = +œ

* Tại mỗi bước chọn xi: Chi phí đường di từ x; đến x;_¡ là ©

e Voi mdi kha nang v, tinh chi phi C, = C + chi phí từ x;_¡ tới v

22lTrang

Trang 23

e Nếu Œ¡ xấu hơn (lớn hơn) BestCost hoặc không có khả năng nào chấp nhận được

cho x; thì lùi lại bước trước để xác định lại thành phân z;_¡

e Néu C1 tốt hơn (nhỏ hơn) BestCost thì chap nhan x; theo kha nang v

e Tiép tuc xac dinh Xitdiuers

e Dén khi gap nghigm (i=n+1 & x; =S):

o Cap nhật đường đi tốt nhát hiện tại đã tìm được

o Cap nhật giá trị BestCost mới: BestCost = C,

v Kết thúc tìm kiếm nêu BestCost = +œ => không có đường đi

v¥ Mang: Daqua[1 n] đánh dấu đính ¡ đã được đi qua trên đường đi hay chưa?

Daqua[i] = true nêu đỉnh ¡ đã có trên đường đi

Daqua[ï] = false nếu ngược lại, đỉnh ¡ chưa có trên đường đi

Khoi tao: Daqua[1 n] = false

1.4.2.3.1.3 Lược đồ thuật toán

Ngày đăng: 26/12/2024, 17:10

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

TÀI LIỆU LIÊN QUAN