1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm đường đi ngắn nhất bằng thuật toán dijkstra và xây dựng chương trình (2014)

56 746 5

Đ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 56
Dung lượng 1,32 MB

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

Nội dung

Bài toán tìm đường đi ngắn nhất là vấn đề quan trọng trong lý thuyết đồ thị, nó đã được nghiên cứu từ lâu và có nhiều ứng dụng trong nhiều ngành khoa học nói chung, khoa học máy tính và

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2 KHOA CÔNG NGHỆ THÔNG TIN -

PHAN VĂN THẢO

TÌM ĐƯỜNG ĐI NGẮN NHẤT BẰNG THUẬT TOÁN DIJKSTRA

Trang 2

LỜI CẢM ƠN

Lời đầu tiên em xin chân thành cảm ơn sự hướng dẫn tận tình của cô giáo Th.S Lưu Thị Bích Hương, khoa Công nghệ thông tin, trường Đại học sư phạm Hà Nội 2

Em cũng xin chân thành cảm ơn các thầy, cô giáo trong khoa Công nghệ thông tin, cũng như các thầy, cô giáo trong trường đã giảng dạy và giúp

đỡ em trong 4 năm học vừa qua Chính các thầy, cô giáo đã xây dựng cho chúng em những kiến thức nền tảng và kiến thức chuyên môn để em có thể hoàn thành khóa luận tốt nghiệp và chuẩn bị cho những công việc của mình sau này

Cuối cùng em xin bày tỏ lòng biết ơn tới gia đình và bạn bè đã giúp đỡ động viên em rất nhiều trong suốt quá trình học tập để em có thể thực hiện tốt khóa luận này

Tuy đã có những cố gắng nhất định nhưng do thời gian và trình độ có hạn nên chắc chắn khóa luận này còn nhiều thiếu sót và hạn chế Kính mong nhận được sự góp ý của thầy, cô giáo và các bạn

Hà Nội, tháng 05 năm 2014

Sinh viên

Phan Văn Thảo

Trang 3

LỜI CAM ĐOAN

Tên em là: Phan Văn Thảo

Sinh viên lớp: K36 – Tin học, khoa Công nghệ thông tin, trường Đại học sư phạm Hà Nội 2

Em xin cam đoan:

1 Đề tài “Tìm đường đi ngắn nhất bằng thuật toán Dijkstra và xây

dựng chương trình” là sự nghiên cứu của riêng em, dưới sự hướng dẫn của

cô giáo Th.S Lưu Thị Bích Hương

2 Khóa luận hoàn toàn không sao chép của tác giả nào khác

Nếu sai em xin hoàn toàn chiu trách nhiệm

Hà Nội, tháng 05 năm 2014

Người cam đoan

Phan Văn Thảo

Trang 4

MỤC LỤC

MỞ ĐẦU 1

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4

1.1 Định nghĩa 4

1.1.1 Định nghĩa đồ thị 4

1.1.2 Phân loại đồ thị 5

1.1.3 Các thuật ngữ cơ bản 8

1.2 Đường đi, chu trình, đồ thị liên thông 11

1.3 Ma trận kề, ma trận trọng số 15

1.4 Một số dạng đồ thị đặc biệt 18

1.4.1 Đồ thị đầy đủ 18

1.4.2 Đồ thị vòng 18

1.4.3 Đồ thị bánh xe 19

1.4.4 Đồ thị lập phương 19

1.4.5 Đồ thị phân đôi (đồ thị hai phe) 20

1.5 Ứng dụng của đồ thị đặc biệt 20

1.5.2 Các mạng cục bộ (LAN) 20

1.5.3 Xử lý song song 21

CHƯƠNG 2: BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT 24

2.1 Khái niệm 24

2.2 Đường đi ngắn nhất xuất phát từ một đỉnh 26

2.3 Thuật toán Dijkstra 27

2.3.1 Mô tả thuật toán 27

2.3.2 Nội dung thuật toán 32

2.3.3 Lưu đồ thuật toán 33

2.3.4 Độ phức tạp của thuật toán 34

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH 35

3.1 Phát biểu bài toán 35

3.2 Thiết kế chương trình 36

3.2.1 Thiết kế cơ sở dữ liệu 36

Trang 5

3.2.2 Thiết kế giao diện 39 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 46 TÀI LIỆU THAM KHẢO 48

Trang 6

DANH MỤC HÌNH VẼ

Hình 1.1 Ví dụ đồ thị 4

Hình 1.2 Sơ đồ mạng máy tính 5

Hình 1.3 Sơ đồ mạng máy tính với kênh đa thoại 6

Hình 1.4 Sơ đồ mạng máy tính với kênh thông báo 6

Hình 1.5 Mạng máy tính với các kênh thoại một chiều 7

Hình 1.6 Đồ thị vô hướng 9

Hình 1.7 Đồ thị có hướng 10

Hình 1.8 Đường đi trên đồ thị 11

Hình 1.9 Đồ thị liên thông G và đồ thị H gồm 3 thành phần liên thông H1, H2, H3 13

Hình 1.10 Đồ thị liên thông mạnh G và đồ thị liên thông yếu H 14

Hình 1.11 Đồ thị vô hướng G và đồ thị có hướng G1 15

Hình 1.12 Đồ thị đầy đủ 18

Hình 1.13 Đồ thị vòng 18

Hình 1.14 Đồ thị bánh xe 19

Hình 1.15 Đồ thị lập phương 19

Hình 1.16 Đồ thị phân đôi 20

Hình 1.17 Các cấu trúc mạng 21

Hình 1.18 Mạng một chiều 22

Hình 1.19 Mạng kiểu lưới 23

Hình 1.20 Mạng kiểu siêu khối 23

Hình 2.1 Đồ thị vô hướng G 29

Trang 7

Hình 2.2 Đồ thị có hướng H 31

Hình 2.3 Lưu đồ thuật toán Dijkstra 33

Hình 3.1 Mối quan hệ giữa cơ sở dữ liệu, danh sách liên kết và ma trận trọng số 37

Hình 3.2 Form giao diện chính 39

Hình 3.3 Form giao diện với đồ thị vô hướng 40

Hình 3.4 Form giao diện với đồ thị có hướng 41

Hình 3.5 Form vùng hiển thị đồ thị 42

Hình 3.6 Form tính toán đường đi 43

Hình 3.7 Form chú thích và kết quả đường đi 44

Hình 3.8 Form lưu dữ liệu 45

Trang 8

DANH MỤC CÁC BẢNG BIỂU

Bảng 2.1 Bảng kết quả tính toán đồ thị vô hướng G 29 Bảng 2.2 Bảng kết quả tính toán đồ thị có hướng H 31

Trang 9

có những giải pháp tốt nhất về định lượng và định tính

Một trong những lớp bài toán tối ưu đầu tiên được nghiên cứu là thuật toán giải bài toán tìm đường đi ngắn nhất có trọng số xác định Bài toán tìm đường đi ngắn nhất là vấn đề quan trọng trong lý thuyết đồ thị, nó đã được nghiên cứu từ lâu và có nhiều ứng dụng trong nhiều ngành khoa học nói chung, khoa học máy tính và hệ thống thông tin nói riêng như giải thuật Dijkstra đã được phát triển để tìm đường đi ngắn nhất và ngày nay đã được nhiều nhà nghiên cứu nhằm cải tiến xây dựng giải thuật giải bài toán tìm đường đi ngắn nhất với dữ liệu mờ dạng khoảng Bài toán tìm đường đi ngắn nhất cũng được phát triển rộng rãi và trở thành một chuyên ngành toán học từ những năm 1950 Giải đáp những câu hỏi đặt ra mà tìm đường đi ngắn nhất với các cạnh có trọng số xác định

Thuật toán Dijkstra là một thuật toán rất phổ biến vì tính hiệu quả của

nó Nó tìm ra đường đi ngắn nhất với chi phí nhỏ nhất Vì thế nó có một ý nghĩa to lớn trong thực tế

Chính vì vậy, sau một thời gian tìm hiểu và học tập cùng với sự hướng dẫn tận tình của cô giáo ThS Lưu Thị Bích Hương em quyết định chọn đề tài:

“Tìm đường đi ngắn nhất bằng thuật toán Dijkstra và xây dựng chương trình” làm khóa luận của mình

Trang 10

- Tìm hiểu bài toán đường đi ngắn nhất

- Tìm hiểu thuật toán Dijkstra áp dụng trong bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh

- Xây dựng chương trình mô phỏng

3 Phương pháp nghiên cứu

a Phương pháp nghiên cứu lý luận

Nghiên cứu qua việc đọc sách, báo và các tài liệu liên quan nhằm xây dựng cơ sở lý thuyết của khóa luận và các biện pháp cần thiết để giải quyết các vấn đề của khóa luận

b Phương pháp chuyên gia

Tham khảo ý kiến của các chuyên gia để có thể thiết kế chương trình phù hợp với yêu cầu thực tiễn Nội dung xử lý nhanh đáp ứng được yêu cầu ngày càng cao của người sử dụng

c Phương pháp thực nghiệm

Thông qua quan sát thực tế, yêu cầu của cơ sở, những lý luận được nghiên cứu và kết quả đạt được qua những phương pháp trên

4 Đối tượng, phạm vi nghiên cứu

- Đối tượng nghiên cứu của khóa luận là thuật toán Dijkstra

Trang 11

3

- Trên cơ sở thuật toán Dijkstra, khóa luận xây dựng chương trình tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh trên một đồ thị theo một cách tuần tự

5 Ý nghĩa khoa học và thực tiễn

Khóa luận “Tìm đường đi ngắn nhất bằng thuật toán Dijkstra và xây dựng chương trình” giúp chúng ta hiểu thuật toán Dijkstra và bài toán tìm

đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh còn lại trong một đồ thị, qua đó mô phỏng chương trình một cách cụ thể giúp chúng ta hiểu rõ hơn thuật toán và có thể xây dựng những chương trình ứng dụng cụ thể từ thuật toán Dijkstra

6 Cấu trúc của khóa luận

Ngoài phần mở đầu và kết luận, khóa luận gồm có 3 chương:

Chương 1: Cơ sở lý thuyết

Chương 2: Bài toán đường đi ngắn nhất

Chương 3: Xây dựng chương trình

Trang 12

Trong đời sống, chúng ta thường gặp những sơ đồ, như sơ đồ tổ chức

bộ máy, sơ đồ giao thông, sơ đồ hướng dẫn thứ tự đọc các chương trong một cuốn sách, , gồm những điểm biểu thị các đối tượng được xem xét (người,

tổ chức, địa danh, chương mục sách, .) và nối một số điểm với nhau bằng những đoạn thẳng (hoặc cong) hay những mũi tên, tượng trưng cho một quan

hệ nào đó giữa các đối tượng Đó là những thí dụ về đồ thị

Trang 13

5

1.1.2 Phân loại đồ thị

Đồ thị là một cấu trúc rời rạc bao gồm các đỉnh và các cạnh nối các đỉnh này Chúng ta phân biệt các loại đồ thị khác nhau bởi kiểu và số lượng cạnh nối hai đỉnh nào đó của đồ thị Để có thể hình dung được tại sao lại cần đến các loại đồ thị khác nhau, chúng ta sẽ nêu ví dụ sử dụng chúng để mô tả một mạng máy tính Giả sử ta có một mạng gồm các máy tính và các kênh điện thoại (gọi tắt là kênh thoại) nối các máy tính này Chúng ta có thể biểu diễn các vị trí đặt máy tính bởi các điểm và các kênh thoại nối chúng bởi các đoạn nối

Nhận thấy rằng trong mạng hình 1.2, giữa hai máy tính bất kỳ chỉ cho phép nhiều nhất là một kênh thoại nối chúng, kênh thoại này cho phép liên lạc

cả hai chiều và không có máy tính nào lại được nối với chính nó Sơ đồ mạng

máy tính cho trong hình 1.2 được gọi là đơn đồ thị vô hướng, vậy ta đi đến

định nghĩa sau:

Định nghĩa 2 Đơn đồ thị vô hướng G = (V, E) bao gồm V là tập đỉnh

và E là tập các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh

Hà Nội

Trang 14

6

Trong trường hợp giữa hai máy tính nào đó thường xuyên phải truyền tải nhiều thông tin người ta phải nối hai máy này bởi nhiều kênh thoại Mạng với đa kênh thoại giữa các máy tính được cho trong hình 1.3

Định nghĩa 3 Đa đồ thị vô hướng G = (V, E) bao gồm V là tập các

đỉnh, và E là họ các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh Hai cạnh e 1 va e 2 được gọi là cạnh lặp nếu chúng cùng tương ứng với một cặp đỉnh

Quảng Ngãi

Trang 15

7

Rõ ràng mỗi đơn đồ thị đều là đa đồ thị, nhưng không phải đa đồ thị nào cũng là đơn đồ thị, vì trong đa đồ thị có hai hay nhiều hơn cạnh nối một cặp đỉnh nào đó

Trong mạng máy tính có thể có những kênh thoại nối một máy tính nào

đó với chính nó (chẳng hạn với mục đích thông báo) Mạng như vậy được cho trong hình 1.4 Như vậy đa đồ thị không thể mô tả được mạng như vậy, bởi vì

có những khuyên (cạnh nối một đỉnh với chính nó) Trong trường hợp này chúng ta cần sử dụng đến khái niệm giả đồ thị vô hướng, được định nghĩa như sau:

Định nghĩa 4 Giả đồ thị vô hướng G = (V, E) bao gồm V là tập các

đỉnh, và E là họ các cặp không có thứ tự gồm hai phần tử (không nhất thiết phải khác nhau) của V gọi là các cạnh Cạnh e được gọi là khuyên nếu có dạng e = (u, u)

Các kênh thoại trong mạng máy tính có thể chỉ cho phép truyền tin theo một chiều Chẳng hạn trong hình 1.5 máy chủ ở Hà Nội chỉ có thể nhận tin từ các máy ở địa phương, có một số máy chỉ có thể gửi tin đi, còn các kênh thoại cho phép truyền tin theo cả hai chiều được thay thế bởi hai cạnh có hướng ngược chiều nhau

Ta đi đến định nghĩa sau:

Hình 1.5 Mạng máy tính với các kênh thoại một chiều

Bình Định TPHCM

Hà Nội

Trang 16

8

Định nghĩa 5 Đơn đồ thị có hướng G = (V, E) bao gồm V là tập các

đỉnh, và E là tập các cặp có thứ tự gồm hai phần tử khác nhau của V gọi là các cung

Nếu trong mạng có thể có đa kênh thoại một chiều, ta sẽ phải sử dụng

đến khái niệm đa đồ thị có hướng:

Định nghĩa 6 Đa đồ thị có hướng G =(V, E) bao gồm V là tập các

đỉnh, và E là họ các cặp có thứ tự gồm hai phần tử khác nhau của V gọi là các cung Hai cung e 1 và e 2 tương ứng với cùng một cặp đỉnh được gọi là cung lặp

Trong các phần tiếp theo chủ yếu chúng ta sẽ làm việc với đơn đồ thị

vô hướng và đơn đồ thị có hướng Vì vậy, để cho ngắn gọn, ta sẽ bỏ qua tính

từ đơn mỗi khi nhắc đến chúng

1.1.3 Các thuật ngữ cơ bản

Trong mục này chúng ta sẽ trình bày một số thuật ngữ cơ bản của lý thuyết đồ thị Trước tiên, ta xét các thuật ngữ mô tả các đỉnh và cạnh của đồ thị vô hướng

 Kề và liên thuộc

Định nghĩa 7 Hai đỉnh u và v của đồ thị có hướng G được gọi là kề

nhau nếu (u,v) là cạnh của đồ thị G Nếu e = (u, v) là cạnh của đồ thị thì ta nói cạnh này là cạnh liên thuộc với hai đỉnh u và v, hoặc cũng nói là cạnh e nối đỉnh u và đỉnh v, đồng thời các đỉnh u và v sẽ được gọi là các đỉnh đầu của cạnh (u, v)

 Bậc của đỉnh

Để có thể biết có bao nhiêu cạnh liên thuộc với một đỉnh, ta đưa vào định nghĩa sau:

Định nghĩa 8 Ta gọi bậc của đỉnh v trong đồ thị vô hướng là số cạnh

liên thuộc với nó ta sẽ kí hiệu là deg(v)

Trang 17

9

Ví dụ 2: Xét đồ thị cho trong hình 1.6, ta có

deg(a) = 1, deg(b) = 4 , deg(c) = 4 , deg(f) = 3, deg(d) = 1 , deg(e) = 3 , deg(g) = 0

Đỉnh bậc 0 gọi là đỉnh cô lập, đỉnh bậc 1 được gọi là đỉnh treo Trong

ví dụ trên đỉnh g là đỉnh cô lập, a và d là các đỉnh treo Bậc của đỉnh có tính chất sau :

Định lý 1 Giả sử G = (V, E) là đồ thị vô hướng với m cạnh Khi đó

V v

v

2

Chứng minh Rõ ràng trong mỗi cạnh e = (u, v) được tính một lần

trong deg(u) và một lần trong deg(v) Từ đó suy ra tổng tất cả các bậc của các đỉnh bằng hai lần số cạnh

Hệ quả Trong đồ thị vô hướng, số đỉnh bậc lẻ (nghĩa là có bậc là số lẻ)

v V

v

v v

Trang 18

10

Do deg(v) là chẵn với v là đỉnh trong U nên tổng thứ hai trong vế phải

ở trên là số chẵn Từ đó suy ra tổng thứ nhất (chính là tổng bậc của các đỉnh bậc lẻ) cũng phải là số chẵn, do tất cả các số hạng của nó là số lẻ, nên tổng này phải gồm một số chẵn các số hạng Vì vậy, số đỉnh bậc lẻ phải là số chẵn

 Kề trong đồ thị có hướng

Định nghĩa 9 Nếu e = (u, v) là cung của đồ thị có hướng G thì ta nói

hai đỉnh u và v là kề nhau, và nói cung (u, v) nối đỉnh u với đỉnh v hoặc cũng nói cung này là đi ra khỏi đỉnh u và đi vào đỉnh v Đỉnh u(v) sẽ được gọi là đỉnh đầu (cuối) của cung (u, v)

 Bán bậc vào và bán bậc ra của đỉnh

Tương tự như khái niệm bậc, đối với đồ thị có hướng ta có khái niệm bán bậc ra (vào) của một đỉnh

Định nghĩa 10: Ta gọi bán bậc ra (vào) của đỉnh trong đồ thị có

hướng là số cung của đồ thị ra khỏi nó (đi vào nó) và ký hiệu là deg + (v)(deg(v))

Ví dụ 3 Xét đồ thị cho trong hình 1.7 Ta có

deg-(a) = 1, deg-(b) = 2, deg-(c) = 2, deg-(d) = 2, deg-(e) = 2

deg+(a) = 3, deg+(b) = 1 deg+(c) = 1, deg+(d) = 2, deg+(e) = 2

Do mỗi cung (u, v) sẽ được tính một lần trong bán bậc vào của đỉnh v

và một lần trong bán bậc ra của đỉnh u nên ta có:

Trang 19

E v

v) ( ) | |

degRất nhiều tính chất của đồ thị có hướng không phụ thuộc vào hướng trên các cung của nó Vì vậy, trong nhiều trường hợp sẽ thuận tiện hơn nếu ta

bỏ qua hướng trên các cung của đồ thị Đồ thị vô hướng thu được bằng cách

bỏ qua hướng trên các cung được gọi là đồ thị vô hướng tương ứng với đồ thị

có hướng đã cho

1.2 Đường đi, chu trình, đồ thị liên thông

Định nghĩa 11: Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là

số nguyên dương, trên đồ thị vô hướng G = (V, E) là dãy x o , x 1 , , x n-1 , x n

Ví dụ 4 Trên đồ thị vô hướng cho trong hình 1.8 ta có a, d, c, f, e là

đường đi đơn độ dài 4 Còn d, e, c, a không là đường đi do (e, c) không phải

là cạnh của đồ thị Dãy b, c, f, e, b là chu trình độ dài 4 Đường đi a, b, e, d, a,

b có độ dài là 5 không phải là đường đi đơn, do cạnh (a, b) có mặt trong nó hai lần a

Trang 20

12

Khái niệm đường đi và chu trình trên đồ thị có hướng được định nghĩa hoàn toàn tương tự như trường hợp đồ thị vô hướng, chỉ khác là ta chú ý đến hướng trên các cung

Định nghĩa 12 Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là

số nguyên dương, trên đồ thị có hướng G = (V, A) là dãy: x o , x 1 , , x n-1 , x n

Ví dụ 5: Trên đồ thị có hướng cho trong hình 1.8 ta có a, d, c, f, e là

đường đi đơn độ dài 4 Còn d, e, c, a không là đường đi do (e, c) không phải

là cung của đồ thị Dãy b, c, f, e, b là chu trình độ dài 4 Đường đi a, b, e, d, a,

b có độ dài là 5 không phải là đường đi đơn, do cung (a, b) có mặt trong nó hai lần

Xét một mạng máy tính Một câu hỏi đặt ra là hai máy tính bất kỳ trong mạng này có thể trao đổi được thông tin với nhau hoặc trực tiếp qua kênh nối chúng hoặc thông qua một hoặc vài máy tính trung gian trong mạng? Nếu sử dụng đồ thị để biểu diễn mạng máy tính này (trong đó các đỉnh của đồ thị tương ứng với các máy tính, còn các cạnh tương ứng với các kênh nối) câu hỏi đó được phát biểu trong ngôn ngữ đồ thị như sau: Tồn tại hay chăng đường đi giữa mọi cặp đỉnh của đồ thị?

Trang 21

13

Định nghĩa 13 Đồ thị vô hướng G = (V, E) được gọi là liên thông nếu

luôn tìm được đường đi giữa hai đỉnh bất kỳ của nó

Như vậy hai máy tính bất kỳ trong mạng có thể trao đổi thông tin được với nhau khi và chỉ khi đồ thị tương ứng với mạng này là đồ thị liên thông

Ví dụ 6: Trong hình 1.9 đồ thị G là liên thông, đồ thị H là không liên

Trong trường hợp đồ thị là không liên thông, nó sẽ rã ra thành một số

đồ thị con liên thông đôi một không có đỉnh chung Những đồ thị con liên thông như vậy ta sẽ gọi là các thành phần liên thông của đồ thị

Ví dụ 7 Đồ thị H trong hình 1.9 gồm 3 thành phần liên thông là H 1 , H 2 ,

H 3

Trong mạng máy tính có thể có những máy (những kênh nối) mà sự hỏng hóc của nó có thể ảnh hưởng đến việc trao đổi thông tin trong mạng Các khái niệm tương ứng với tình huống này được đưa ra trong định nghĩa sau

Trang 22

14

Định nghĩa 15 Đỉnh v được gọi là đỉnh rẽ nhánh nếu việc loại bỏ v

cùng với các cạnh liên thuộc với nó khỏi đồ thị làm tăng số thành phần liên thông của đồ thị Cạnh e được gọi là cầu nếu việc loại bỏ nó khỏi đồ thị làm tăng số thành phần liên thông của đồ thị

Ví dụ 8: Trong đồ thị G ở hình 1.9 đỉnh d và e là đỉnh rẽ nhánh, còn

các cạnh (d, g) và (e, f) là cầu

Đối với đồ thị có hướng có hai khái niệm liên thông phụ thuộc vào việc

ta có xét đến hướng trên các cung hay không

Định nghĩa 16 Đồ thị có hướng G = (V, A) được gọi là liên thông

mạnh nếu luôn tìm được đường đi giữa hai đỉnh bất kỳ của nó

Định nghĩa 17 Đồ thị có hướng G = (V, A) được gọi là liên thông yếu

nếu đồ thị vô hướng tương ứng với nó là đồ thị vô hướng liên thông

Rõ ràng nếu đồ thị là liên thông mạnh thì nó cũng là liên thông yếu, nhưng điều ngược lại là không luôn đúng, như chỉ ra trong thí dụ dưới đây

Ví dụ 9 Trong hình 1.10 đồ thị G là liên thông mạnh, còn H là liên

thông yếu

Một câu hỏi đặt ra là khi nào có thể định hướng các cạnh của một đồ

thị vô hướng liên thông để có thể thu được một đồ thị có hướng liên thông

Trang 23

15

mạnh? Ta sẽ gọi đồ thị như vậy là đồ thị định hướng được Định lý dưới đây cho ta tiêu chuẩn nhận biết một đồ thị có là định hướng được hay không

Định lý 3 Đồ thị vô hướng liên thông là định hướng được khi và chỉ

khi mỗi cạnh của nó nằm trên ít nhất một chu trình

Chứng minh:

Điều kiện cần: Giả sử (u, v) là một cạnh của đồ thị ,từ sự tồn tại đường

đi có hướng từ u đến v và ngược lại suy ra (u, v) phải nằm trên ít nhất một chu trình

Điều kiện đủ: Thủ tục sau đây cho phép định hướng các cạnh của đồ thị

để thu được đồ thị có hướng liên thông mạnh Giả sử C là một chu trình nào

đó trong đồ thị Định hướng các cạnh trên chu trình này theo một hướng đi vòng theo nó Nếu tất các cạnh của đồ thị là đã được định hướng thì kết thúc thủ tục Ngược lại, chu trình C là một cạnh chưa định hướng có chung đỉnh với ít nhất một trong số các cạnh đã định hướng Theo giả thiết tìm được chu trình C chứa cạnh e Định hướng các cạnh chưa được định hướng của C’ theo một hướng dọc theo chu trình này (không định hướng lại các cạnh đã có hướng) Thủ tục trên sẽ được lặp lại cho đến khi tất cả các cạnh của đồ thị được định hướng Khi đó ta thu được đồ thị có hướng liên thông mạnh

1.3 Ma trận kề, ma trận trọng số

Xét đơn đồ thị vô hướng G = (V, E), với tập đỉnh V = {1, 2, …, n}, tập cạnh E = {e1, e2, …, em} Ta gọi ma trận kề của đồ thị G là ma trận:

A = {aij : i,j = 1, 2, …, n}

Với các phần tử được xác định theo quy tắc sau đây:

Ai,j = 0, nếu (i, j)  E và aij = 1 nếu (i, j)  E, i, j = 1, 2, …, n

Trang 24

16

Ví dụ 10: Ma trận kề của đồ thị vô hướng G cho trong hình 1.11 là:

 Các tính chất của ma trận kề:

- Ma trận kề của đồ thị vô hướng là ma trận đối xứng, tức là:

a[i,j] = a[j,i] với i, j = 1, 2, …, n

- Tổng các phần tử trên dòng i (cột j) của ma trận kề chính bằng bậc của đỉnh i (đỉnh j)

Ma trận kề của đồ thị có hướng được định nghĩa một cách hoàn toàn tương tự

Ví dụ 11: Đồ thị có hướng G1 cho trong hình 1.11 có ma trận kề là ma trận sau:

Trang 25

17

Lưu ý: ma trận kề của đồ thị có hướng không phải là ma trận đối xứng

 Chú ý: Chúng ta chỉ xét trên đơn đồ thị Ma trận kề của đa đồ thị có thể

xây dựng hoàn toàn tương tự, chỉ khác là thay vì ghi 1 vào vị trí a[i, j] nếu (i,j)

là cạnh của đồ thị, chúng ta sẽ ghi k là số cạnh nối 2 đỉnh i và j

Trong rất nhiều vấn đề của lý thuyết đồ thị, mỗi cạnh e = (u,v) của đồ thị được gán với một con số c(e) (còn viết là c(u,v)) gọi là trọng số của cạnh

e Đồ thị trong trường hợp như vậy được gọi là đồ thị có trọng số Trong trường hợp đồ thị có trọng số, thay vì ma trận kề, để biểu diễn đồ thị ta sử dụng ma trận trọng số:

C = c[i, j], i, j = 1, 2,…, n Với c[i, j] = c(i, j), nếu (i, j)  E và c[i, j] = θ, nếu (i, j)  E

Trong đó số θ, tùy từng trường hợp cụ thể, có thể được đặt bằng một trong các giá trị sau: 0, +∞, -∞

Ưu điểm lớn nhất của phương pháp biểu diễn đồ thị bằng ma trận kề (hoặc ma trận trọng số) là để trả lời câu hỏi: hai đỉnh u, v có kề nhau trên đồ thị hay không, chúng ta chỉ phải thực hiện một số phép so sánh Nhược điểm lớn nhất của phương pháp này là không phụ thuộc vào số cạnh của đồ thị, ta luôn phải sử dụng n2 đơn vị bộ nhớ để lưu trữ ma trận kề của nó

Trang 26

18

1.4 Một số dạng đồ thị đặc biệt

1.4.1 Đồ thị đầy đủ

Đồ thị đầy đủ n đỉnh, ký hiệu là Kn, là đơn đồ thị mà hai đỉnh phân biệt

bất kỳ của nó luôn liền kề Như vậy, Kn có

2

)1( n n

v1

C6

Hình 1.13 Đồ thị vòng

Trang 27

19

1.4.3 Đồ thị bánh xe

Từ đồ thị vòng Cn, thêm vào đỉnh vn+1 và các cạnh (vn+1, v1), (vn+1, v2), , (vn+1, vn), ta nhận được đơn đồ thị gọi là đồ thị bánh xe, ký hiệu là Wn Như vậy, đồ thị Wn có n+1 đỉnh, 2n cạnh, một đỉnh bậc n và n đỉnh bậc 3

Ví dụ 12: Đồ thị bánh xe W3, W4, W5, W6

1.4.4 Đồ thị lập phương

Đơn đồ thị 2n đỉnh, tương ứng với 2n xâu nhị phân độ dài n và hai đỉnh

kề nhau khi và chỉ khi 2 xâu nhị phân tương ứng với hai đỉnh này chỉ khác nhau đúng một bit được gọi là đồ thị lập phương, ký hiệu là Qn Như vậy, mỗi đỉnh của Qn có bậc là n và số cạnh của Qn là n.2n-1 (từ công thức 2|E| =

v7 v1

Q1

Q2

Q3

Hình 1.15 Đồ thị lập phương

Trang 28

20

1.4.5 Đồ thị phân đôi (đồ thị hai phe)

Đơn đồ thị G = (V, E) sao cho V = V1  V2, V1  V2 = , V1  ,

V2 và mỗi cạnh của G được nối một đỉnh trong V1 và một đỉnh trong V2

được gọi là đồ thị phân đôi

Nếu đồ thị phân đôi G = (V1  V2, E) sao cho với mọi v1  V1, v2  V2, (v1, v2)  E thì G được gọi là đồ thị phân đôi đầy đủ Nếu |V1| = m, |V2| = n thì đồ thị phân đôi đầy đủ G ký hiệu là Km,n Như vậy Km,n có m.n cạnh, các đỉnh của V1 có bậc n và các đỉnh của V2 có bậc m

Mạng cục bộ cũng có thể có cấu trúc vòng tròn, trong đó mỗi thiết bị nối với đúng hai thiết bị khác Mạng cục bộ kiểu này có thể biểu diễn bằng một đồ thị vòng Cn Thông báo gửi từ thiết bị này tới thiết bị khác được truyền đi theo vòng tròn cho tới khi đến nơi nhận

Ngày đăng: 16/04/2018, 15:17

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