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

chu trình hamilton tổng quát trong đồ thị vô hướng

66 866 0
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

Định dạng
Số trang 66
Dung lượng 1,74 MB

Nội dung

Từ viết tắt Diễn giải G=V,E Đồ thị G với tập đỉnh V, tập cạnh E degv, degGv Bậc của đỉnh v của đồ thị G k-liên thông Đồ thị có chỉ số liên thông bằng k... Trong những năm 70 của thế kỷ

Trang 1

NGUYỄN VĂN THÁI

CHU TRÌNH HAMILTON TỔNG QUÁT

TRONG ĐỒ THỊ VÔ HƯỚNG

Chuyên ngành: Khoa học máy tính

Mã số: 60.48.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC: GS.TS: ĐẶNG QUANG Á

Thái Nguyên – 2014

Trang 2

MỤC LỤC i

LỜI CAM ĐOAN iv

LỜI CẢM ƠN v

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT vi

DANH MỤC HÌNH vii

MỞ ĐẦU 1

Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN TRONG LÝ THUYẾT ĐỒ THỊ VÀ LÝ THUYẾT CÁC BÀI TOÁN NP-C 4

1.1 Lý thuyết đồ thị 4

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

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

1.1.3 Biểu diễn đồ thị trên máy tính 13

1.2 Lý thuyết lớp các bài toán P và NP 17

1.2.1 Khái niệm các loại thời gian tính 17

1.2.2 Khái niệm phép quy dẫn đa thức 18

1.2.3 Lớp bài toán P 18

1.2.3 Lớp bài toán NP 19

1.2.4 Lớp bài toán NP-đầy đủ (NP-Complete) 19

1.3 Kết luận 20

Chương II: CHU TRÌNH HAMILTON 21

2.1 Chu trình Hamilton: Định nghĩa, tính chất và các điều kiện đủ 21

2.1.1 Một số khái niệm 21

2.1.2 Một số tính chất của đồ thị Hamilton 22

2.2 Thuật toán tìm chu trình Hamilton 26

2.3 Đồ thị Hamilton tối đại 29

2.3.1 Khái niệm 30

2.3.2 Thuật toán xây dựng đồ thị Hamilton tối đại n ≥ 4 đỉnh [1] 30

2.3 Kết luận 31

Chương III: CHU TRÌNH TRỘI 32

3.1 Khái niệm chu trình trội và các điều kiện đủ 32

3.1.1 Khái niệm: 32

3.1.2 Một số điều kiện đủ của chu trình trội 33

Trang 3

3.2.2 Thuật toán 2.1: (kiểm tra đồ thị liên thông) 42

3.2.3 Thuật toán 2.2: (kiểm tra đồ thị 2-liên thông) 42

3.2.4 Thuật toán 3.1: Kiểm tra đồ thị G có thuộc lớp K1 hay không? 43

3.2.5 Thuật toán 3.2: Kiểm tra đồ thị G có thuộc lớp K2 hay không? 43

3.2.6 Thuật toán 3.3: Kiểm tra đồ thị có thuộc K3 hay không? 44

3.2.7 Thuật toán 3.4: Kiểm tra đồ thị G có thuộc lớp K4 hay không? 45

3.2.8 Thuật toán 3.5: Kiểm tra đồ thị G có thuộc lớp K5 hay không? 45

3.3 Cài đặt thử nghiệm: 47

3.3.1 Phát biểu bài toán 47

3.3.2 Công cụ lựa chọn 47

3.3.3 Xây dựng, phát triển chương trình 47

3.3.4 Giao diện chương trình 51

3.3.5 Thử nghiệm và đánh giá 55

3.4 Kết luận: 55

PHẦN KẾT LUẬN 56

TÀI LIỆU THAM KHẢO 57

Trang 4

Tôi xin cam đoan những kết quả nêu trong luận văn là những kết quả tìm hiểu, nghiên cứu của tôi dưới sự hướng dẫn của GS.TS: Đặng Quang Á

Mọi trích dẫn sử dụng trong báo cáo này đều được ghi rõ nguồn tài liệu tham khảo theo đúng quy định

Tác giả

Nguyễn Văn Thái

Trang 5

Trước tiên, tôi xin được gửi lời cảm ơn đến tất cả quý thầy cô đã giảng dạy trong chương trình đào tạo Cao học chuyên ngành Khoa học máy tính K11

do trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên

tổ chức đào tạo, những người đã truyền đạt cho tôi những kiến thức hữu ích làm

cơ sở cho tôi thực hiện tốt luận văn này

Tác giả xin chân thành cảm ơn các thầy cô, những người đã tận tình hướng dẫn và truyền đạt những kinh nghiệm quý báu trong học tập và nghiên cứu và tận tình giúp đỡ tôi

Đặc biệt tôi xin bày tỏ lòng cảm ơn xâu sắc tới GS.TS Đặng Quang Á, người đã tận tình hướng dẫn, quan tâm, đóng góp ý kiến cho tôi trong xuất thời gian thực hiện luận văn Mặc dù trong quá trình thực hiện luận văn có giai đoạn không được thuận lợi nhưng những gì Thầy đã hướng dẫn, chỉ bảo đã cho tôi nhiều kinh nghiệm trong thời gian thực hiện luận văn

Sau cùng tôi xin gửi lời biết ơn sâu sắc đến gia đình đã luôn tạo điều kiện tốt nhất cho tôi trong suốt quá trình học cũng như thực hiện luận văn

Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Thầy/Cô và các anh chị học viên

Thái Nguyên, tháng 9 năm 2014

Nguyễn Văn Thái

Trang 6

Từ viết tắt Diễn giải

G=(V,E) Đồ thị G với tập đỉnh V, tập cạnh E

deg(v), degG(v) Bậc của đỉnh v của đồ thị G

k-liên thông Đồ thị có chỉ số liên thông bằng k

Trang 7

Trang

Hình 1.1 Đồ thị vô hướng 5

Hình 1.2 Đồ thị vô hướng và các bậc của đỉnh 5

Hình 1.3 Một số đồ thị đầy đủ 6

Hình 1.4 Đồ thị vòng 7

Hình 1.5 Đồ thị bánh xe 7

Hình 1.6 Đồ thị hai phía 8

Hình 1.7 Đồ thị G1 đẳng cấu với G2 8

Hình 1.8 Đồ thị G và đồ thị con G’ 9

Hình 1.9 Đơn đồ thị G 1 , G 2 và đồ thị G = G 1 G 2 9

Hình 1.10 Đường đi trên đồ thị có độ dài 4 10

Hình 1.11 Đồ thị G liên thông, đồ thị G’ không liên thông 11

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

Hình 1.13 Đồ thị 4-liên thông 12

Hình 1.14 Đồ thị có k(G) = 2 và k(H) = 3 13

Hình 1.15 Đồ thị và ma trận kề 14

Hình 1.16 Đồ thị và ma trận trọng số 15

Hình 1.17 Đồ thị và danh sách cạnh 16

Hình 1.18 Đồ thị và danh sách kề tương ứng 17

Hình 2.1 Đồ thị có đường đi Hamilton, không có chu trình Hamilton 21

Hình 2.2 Đồ thị Hamilton 22

Hình 2.3 Đồ thị K 5 có chu trình Hamilton (a→b→c→d→e→a) 23

Hình 2.4 Đồ thị có 8 đỉnh, mỗi đỉnh có bậc ≥ n/2 24

Trang 8

Hình 2.6 Cây liệt kê chu trình Hamilton theo thuật toán quay lui 28

Hình 2.7 Đồ thị và cây liệt kê chu trình Hamilton của nó theo thuật toán quay lui 29

Hình 2.8 Đồ thị thị hamilton tối đại G3 30

Hình 3.1 Đồ thị có duy nhất một chu trình Hamilton, nhưng có nhiều chu trình Dominating 32

Hình 3.2 Đồ thị không có chu trình Hamilton, có duy nhất mội chu trình Dominating 32

Hình 3.3 Đồ thị 2-liên thông với chu trình Dominating dài nhất độ dài 4 33

Hình 3.4 Đồ thị G có chu trình dài nhất (độ dài 6) là chu trình Dominating 34

Hình 3.5 Đồ thị G và G’ được xây dựng từ đồ thị G 35

Hình 3.6 Đồ thị K1 37

Hình 3.7 Đồ thị K2 38

Hình 3.8 Đồ thị K3 38

Hình 3.9 Đồ thị K4 39

Hình 3.10 Đồ thị K5 40

Hình 3.11 Giao diện khi bắt đầu chạy chương trình 51

Hình 3.12 Form nạp và lưu đồ thị từ tập tin có sẵn chứa ma trận kề của đồ thị 52

Hình 3.13 Form kết quả kiểm tra đồ thị 52

Hình 3.14 Đồ thị không thỏa mãn điều kiện kiểm tra 53

Hình 3.15 Form kiểm tra tính liên thông của đồ thị 53

Hình 3.16 Form kiểm tra đồ thị với số đỉnh lớn 54

Hình 3.17 Form thông tin về chương trình 54

Trang 9

MỞ ĐẦU

1 Đặt vấn đề:

Lý thuyết đồ thị là một lĩnh vực đã được nghiên cứu từ những năm đầu của thế kỷ 18 bởi nhà toán học Leonhard Euler người Thụy sĩ Đồ thị được sử dụng để giải nhiều bài toán trong nhiều lĩnh vực khác nhau, trong tin học là một trường hợp cụ thể

Trong những năm 70 của thế kỷ 20, thế giới được chứng kiến sự phát triển hết sức nhanh chóng và rộng lớn của lý thuyết đồ thị, trong số đó có một

số lượng đáng kể các công trình nghiên cứu cấu trúc của các chu trình trong

đồ thị, đặc biệt là chu trình Hamilton và còn nhiều vấn đề mở

Nghiên cứu về cấu trúc chu trình trong đồ thị giúp chúng ta giải quyết tốt các bài toán tối ưu trong đời sống Chẳng hạn, trong lĩnh vực chế tạo robot thám hiểm, chuyển gửi tín hiệu hình ảnh qua vệ tinh, bài toán phân tích hệ thống tương tác và tiện ích các website,

Trong số các cấu trúc đồ thị thì chu trình Hamilton đóng vai trò đặc biệt quan trọng Đó là chu trình đi qua tất cả các đỉnh của đồ thị, mỗi đỉnh đúng một lần Bài toán về chu trình Hamilton là bài toán xác định xem liệu đồ thị

có chứa chu trình Hamilton không và tìm ra các chu trình đó Bài toán này đã được chứng minh là NP-C (NP- đầy đủ) Chính vì thế không tồn tại các thuật toán đa thức giải nó, và để giải quyết bài toán này nhiều thuật toán gần đúng

đã được nghiên cứu

Một sự mở rộng của chu trình Hamilton là chu trình trội (Dominating cycle) Bài toán này cũng đã được chứng minh là NP-C

Trang 10

Việc tìm hiểu về các chu trình Hamilton và chu trình trội, các dấu hiệu nhận biết chúng cùng thuật toán xác định, cải tiến và phát triển chúng là việc

làm có ý nghĩa khoa học và thực tiễn Đây chính là mục đích của luận văn này

2 Mục tiêu của luận văn:

Đối tượng nghiên cứu của luận văn là các vấn đề về cấu trúc chu trình liên quan đến chu trình Hamilton và chu trình trội trong đồ thị

3 Phạm vi nghiên cứu

Luận văn tập trung nghiên cứu các kiến thức có liên quan, các cơ sở lý thuyết như: Lý thuyết về đồ thị và lý thuyết các bài toán NP-C, chu trình Hamilton và chu trình trội

4 Nhiệm vụ nghiên cứu

- Tìm hiểu những kiến thức tổng quan về đồ thị và lý thuyết các bài toán NP-C

- Tìm hiểu về đồ thị Hamilton và các mở rộng

- Tìm hiểu các thuật toán tìm chu trình Hamilton

- Xây dựng thuật toán đa thức xác định sự tồn tại của chu trình trội trên

Trang 11

Phần đầu tìm hiểu về chu trình Hamilton, một số thuật toán xác định chu trình Hamilton

Phần cuối tìm hiểu về chu trình Hamilton tối đại, cách xây dựng đồ thị

Hamilton tối đại n đỉnh

Chương III: Chu trình trội

Phần đầu trình bày những hiểu biết về chu trình trội trong đồ thị vô

hướng, chứng minh bài toán xác định có tồn tại chu trình trội trong đồ thị G

cho trước là NP-C

Phần sau trình trình bày thuật toán đa thức xác định sự tồn tại của chu trình trội trên đồ thị vô hướng trong lớp đồ thị 2-liên thông có (G) ≥ n/3 Tìm

hiểu về lớp đồ thị 2-liên thông Một số hình ảnh thể hiện trên chương trình demo

Phần kết luận: Tóm tắt các kết quả đã đạt được của luận văn

Trang 12

Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN TRONG LÝ THUYẾT ĐỒ

THỊ VÀ LÝ THUYẾT CÁC BÀI TOÁN NP-C 1.1 Lý thuyết đồ thị

Trong toán học và tin học, đồ thị là đối tượng nghiên cứu cơ bản của lý thuyết đồ thị Một cách không chính thức, đồ thị là một tập các đối tượng gọi

là đỉnh nối với nhau bởi các cạnh Thông thường, đồ thị được vẽ dưới dạng một tập các điểm (đỉnh, nút) nối với nhau bởi các đoạn thẳng (cạnh) Tùy theo ứng dụng mà một số cạnh có thể có hướng 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ị

Trong phạm vi của luận văn chỉ xét đến đơn đồ thị hữu hạn, vô hướng

và gọi tắt là đồ thị Các kiến thức trong mục này tham khảo từ [2], [3]

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

1.1.1.1 Một số khái niệm

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

đỉ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

Đồ thị vô hướng G là một cặp G = (V,E)

Trong đó: V  là tập hợp các phần tử nào đó gọi là đỉnh của đồ thị

E: Là tập các cặp (u,v) nào đó (gọi là cạnh của đồ thị) với u,v  V, (u,v)  E (v,u)  E và coi (u,v)  (v,u);

Nếu e = (u,v) là một cạnh của đồ thị G thì u, v được coi là các đỉnh đầu mút của cạnh e hay các đỉnh liên thuộc với e, hay có thể nói u,v là kề nhau

hay láng giềng của nhau

Định nghĩa 1.2 Đồ thị G gọi là vô hướng nếu  u,v  V:(u,v)(v,u)E

Trang 13

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

Định nghĩa 1.3 Đồ thị G gọi là có hướng nếu  u,vV: (u,v)  (v,u)

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

đỉ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

+ Đồ thị G = (V,E) với đỉnh v V, e = (u,v)  E

Khi đó: u,v là hai đỉnh đầu, cuối của cạnh e; e _ cạnh liên thuộc u,v

Định nghĩa 1.5 Hai đỉnh u và v trong đồ thị vô hướng được gọi là liền

kề (hay láng giềng) nếu (u,v) là một cạnh của đồ thị G Nếu e=(u,v) thì e gọi

là cạnh liên thuộc với hai đỉnh u và v, hoặc cũng nói là cạnh e là 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 mút của cạnh (u,v)

Định nghĩa 1.6 Bậc của đỉnh u  V kí hiệu deg(u) trong đồ thị vô

hướng là số cạnh liên thuộc với u (hay tập các láng giềng của u), riêng khuyên

tại một đỉnh được tính hai lần cho bậc của nó

Đỉnh có bậc bằng không gọi là đỉnh cô lập (Không kề với bất kỳ đỉnh

nào) Đỉnh v gọi là đỉnh treo nếu deg(v)=1

Hình 1.2 Đồ thị vô hướng và các bậc của đỉnh

Trang 14

deg (i) =2 deg(j) = 2 deg(k) = 0

Định lý 1.1 Ký hiệu E là số cạnh của đồ thị G = (V,E) khi đó

) (

Gọi O và U tương ứng là tập đỉnh bậc lẻ và tập đỉnh bậc chẵn của đồ thị

Ta có 2E deg (v) deg(v) deg (v)

U v O

v V

(tức là tổng số đỉnh bậc chẵn) – chẵn  deg v( )

O v

- chẵn

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

Định nghĩa 1.7 (Đồ thị đầy đủ) Đồ thị đầy đủ n đỉnh, ký hiệu là K n

đơn đồ thị mà hai đỉnh phân biệt bất kỳ của nó luôn liền kề Như vậy, K n

Trang 15

Định nghĩa 1.8 Đồ thị vòng (C n ): Là đồ thị có n đỉnh, n cạnh liên thông, mỗi đỉnh đều có bậc 2

Hình 1.4 Đồ thị vòng

Định nghĩa 1.9 Đồ thị bánh xe (W n ): Nhận được từ C n bằng cách thêm

một đỉnh mới kề với tất cả các đỉnh còn lại

Hình 1.5 Đồ thị bánh xe

Định nghĩa 1.10 (Đồ thị hai phía): Đồ thị G = (V,E) là đồ thị hai phía

(hay đồ thị phân đôi) nếu tập các đỉnh V có thể phân thành hai tập con khác rỗng rời nhau X và Y sao cho mỗi cạnh của đồ thị được kết nối từ một đỉnh thuộc X với một đỉnh thuộc Y:

Nói dưới dạng toán học:

- Có thể tìm được X, Y  V sao cho

Trang 16

Ví dụ:

Hình 1.6 Đồ thị hai phía 1.1.1.3 Đồ thị đẳng cấu

Định nghĩa 1.11 [5]

Cho trước hai đồ thị G 1 = (V 1 ,E 1 ) và G 2 = (V 2 ,E 2 ) Ta nói G 1 và G 2

đẳng cấu với nhau nếu có một song ánh f: V 1  V 2 sao cho hai đỉnh u và v kề nhau trong G 1 khi và chỉ khi f(u) kề với f(v) trong G 2 (hay nói cách khác (u,v)

 E1 khi và chỉ khi (f(u),f(v))  E 2)

Ví dụ: Cho hai đồ thị, hỏi chứng có đẳng cấu với nhau hay không?

Hình 1.7 Đồ thị G1 đẳng cấu với G2Theo ví dụ ta thấy, nếu chọn phép ánh xạ biến đỉnh u của đồ thị G 1 thành f(u+10) của đồ thị G 2 (đỉnh 1 biến thành đỉnh 11, đinh 2 thành đỉnh

Trang 17

12 , đỉnh 10 thành đỉnh 20), ta thấy đây là phép ánh xạ mà với hai đỉnh (u,v)

 E1 thì (10+u, 10+v)  E 2 Vậy hai đồ thị G 1 và G 2 là đẳng cấu với nhau

1.1.1.4 Các đồ thị mới từ đồ thị cũ

Định nghĩa 1.12 Đồ thị con của đồ thị G = (V,E) là đồ thị G’ = (V’,E’)

trong đó V’  V và E’  E Ký hiệu G’  G

Định nghĩa 1.14 Cho đồ thị G = (V,E) và G’ = (V’,E’) Khi đó G và G‟

được gọi là lạ nhau khi V  V’ = 

Định nghĩa 1.15 Hợp của hai đồ thị lạ nhau G = (V,E) và G’ = (V’,E’)

trong đó V  V’=  là đồ thị thu được khi ta nối tất cả các đỉnh của G với tất

Trang 18

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

Xét đơn đồ thị vô hướng G = (V,E)

1.1.2.1 Đường đi

Định nghĩa 1.16 Một đường đi độ dài n từ đỉnh u tới tới đỉnh v, trong

đó n là số nguyên dương, trên đồ thị vô hướng G=(V,E) là một dãy các đỉnh

x

v x u x

i i

n

Trong đó: Đỉnh u gọi là đỉnh đầu, đỉnh v gọi là đỉnh cuối Đường đi trên

gọi là đơn nếu không có cạnh nào lặp lại Số cạnh của đường đi được gọi là

độ dài của đường đi đã cho

Ví dụ: Đường đi có độ dài 4 đi từ đỉnh 1 đến đỉnh 6

Hình 1.10 Đường đi trên đồ thị có độ dài 4 1.1.2.2 Chu trình

Định nghĩa 1.17 Chu trình là một đường đi có đỉnh đầu và đỉnh cuối

trùng nhau

Định nghĩa 1.18 Chu trình đơn: là một chu trình mà đường đi của nó

không có cạnh nào lặp lại

6

4

2

Trang 19

Định nghĩa 1.19 Trong một đồ thị G, chu trình có độ dài lớn nhất gọi

là chu trình dài nhất

1.1.2.3 Đồ thị liên thông – chỉ số liên thông

Định nghĩa 1.20 (Đồ thị liên thông) Một đồ thị vô hướng được gọi là

liên thông nếu có đường đi giữa mọi cặp đỉnh phân biệt của đồ thị

- Đồ thị vô hướng G = (V,E) được gọi là liên thông nếu với bất kỳ hai đỉnh u,v E luôn tìm được đường đi từ đỉnh u tới đỉnh v

Hình 1.11 Đồ thị G liên thông, đồ thị G’ không liên thông

Định lý 1.2 Giữa mọi cặp đỉnh phân biệt của một đồ thị vô hướng liên

thông luôn có đường đi đơn

Định nghĩa 1.21 (Thành phần liên thông)

Một đồ thị G = (V,E) không liên thông bao gồm các đồ thị con liên thông với nhau và được gọi là thành phần liên thông của G Số thành phần liên thông của G được ký hiệu w(G)

Hình 1.12 Đồ thị liên thông G và đồ thị H gồm 3 thành phần liên thông

H1, H2, H3

Trang 20

Định nghĩa 1.22[ 5 ] [19] ( Đồ thị k-liên thông)

Cho trước đồ thị G và một số tự nhiên k > 0 G là đồ thị k-liên thông nếu G là đồ thị liên thông và nếu như bỏ đi một số t < k đỉnh tùy ý và các cạnh

liên thuộc với các đỉnh đó ta vẫn thu được đồ thị liên thông

Nhận xét:

- Mọi đồ thị liên thông đều là 1-liên thông

- Đồ thị đầy đủ K n là (n-1)-liên thông

- Một đồ thị là k-liên thông thì cũng là h-liên thông với mọi 0 < h < k

Hình 1.13 Đồ thị 4-liên thông

Ví dụ: Đồ thị trong hình 1.12 là đồ thị 4-liên thông vì chỉ khi bỏ đi tới

4 đỉnh bất kì của đồ thị và các cạnh liên thuộc với chúng ta mới thu được đồ thị không liên thông Còn khi bỏ đi 1 hoặc 2 hoặc 3 đỉnh tùy ý thì đồ thị vẫn còn liên thông

Định nghĩa 1.23.[ 5 ] ( Chỉ số liên thông)

Trong đồ thị liên thông G, số đỉnh tối thiểu có thể vứt bỏ để G trở nên không còn liên thông nữa gọi là chỉ số liên thông của G Đồ thị có chỉ số liên

Trang 21

thông bằng k được gọi là k-liên thông Chỉ số liên thông của G được ký hiệu k(G)

Hình 1.14 Đồ thị có k(G) = 2 và k(H) = 3 1.1.3 Biểu diễn đồ thị trên máy tính

Để lưu trữ đồ thị và thực hiện các thuật toán khác nhau với đồ thị trên máy tính cần phải tìm những cấu trúc dữ liệu thích hợp để mô tả đồ thị Việc chọn cấu trúc dữ liệu nào để biểu diễn đồ thị có tác động rất lớn đến hiệu quả của thuật toán Vì vậy, việc chọn lựa cấu trúc dữ liệu để biểu diễn đồ thị phụ thuộc vào từng tình huống cụ thể (bài toán và thuật toán cụ thể)

Tại sao phải biểu diễn đồ thị trên máy tính?

- Lý thuyết đồ thị ngày càng được ứng dụng rộng rãi

- Để xây dựng được các ứng dụng của đồ thị trên máy tính thì cần phải tìm cách biểu diễn đồ thị trên máy tính thích hợp

- Máy tính không thể hiểu được các đồ thị dưới dạng hình vẽ thông thường

Tiêu chuẩn để lựa chọn cách thức biểu diễn đồ thị trên máy tính?

- Cấu trúc dữ liệu phải đơn giản, phù hợp với từng bài toán ứng dụng

- Dễ biểu diễn, dễ cài đặt các ứng dụng trên đó

Trang 22

Dưới đây ta sẽ xét một số phương pháp cơ bản được sử dụng để biểu diễn đồ thị trên máy tính, đồng thời cũng phân tích một cách ngắn gọn những

ưu điểm cũng như những nhược điểm của chúng

1.1.3.1 Biểu diễn đồ thị bằng ma trận kề và ma trận trọng số

Định nghĩa 1.24 Ma trận kề:

Giả sử G = (V, E) là một đơn đồ thị có số đỉnh |V| = n

Ma trận kề của đơn đồ thị G là một ma trận vuông A[n.n] Với các phần

tử được xác định theo quy tắc như sau:

với i,j = 1,2, ,n là các đỉnh của đồ thị Quy ước A[i,i] = 0 với i;

Ví dụ: Cho đồ thị vô hướng như hình vẽ

- Đối với đồ thị vô hướng G, thì ma trận kề là ma trận đối xứng (A[i,j]=A[j,i])

- Nếu G là đồ thị vô hướng và A là ma trận kề tương ứng thì trên ma trận A: Tổng các số trên hàng i = Tổng các số trên cột i = Bậc của đỉnh i = deg(i)

v1

Ma trận kề

Trang 23

Ưu điểm của ma trận kề:

- Đơn giản, trực quan, dễ cài đặt trên máy tính

- Đễ kiểm tra xem hai đỉnh (u,v) của đồ thị có kề nhau hay không

Nhược điểm của ma trận liền kề:

Bất kể số cạnh của đồ thị là nhiều hay ít, ma trận liền kề luôn luôn đòi

hỏi n2

ô nhớ để lưu các phần tử ma trận, điều đó gây lãng phí bộ nhớ dẫn tới việc không thể biểu diễn được đồ thị với số đỉnh lớn

Ma trận trọng số:

Định nghĩa 1.25 Đồ thị có trọng số là đồ thị ứng với mỗi cạnh (u,v) 

E gán một giá trị C(u,v) nào đó gọi là trọng số của (u,v)

Ma trận trọng số là ma trận vuông A[n,n] trong đó giá trị được xác định

Trang 24

1.1.3.2 Biểu diễn đồ thị bằng danh sách cạnh

Dùng trong trường hợp đồ thị có ít cạnh, số cạnh m < 6n, với n là số

đỉnh

Danh sách cạnh của đồ thị G = (V,E) có m cạnh sẽ bao gồm hai mảng một chiều có kích thước m

Mảng Dau sẽ lưu các đỉnh đầu của các cạnh

Mảng Cuoi sẽ lưu đỉnh cuối của các cạnh

Trang 25

1.1.3.3 Biểu diễn đồ thị bằng danh sách kề

Cho đồ thị G = (V,E) có n đỉnh Đồ thị G có thể được biểu diễn bằng n danh sách liên kết Với mỗi đỉnh u, tạo ra một danh sách các đỉnh kề với đỉnh u.

1.2 Lý thuyết lớp các bài toán P và NP

1.2.1 Khái niệm các loại thời gian tính

Thời gian tính tốt nhất: là thời gian tính tối thiểu cần thiết để thực hiện thuật toán với mọi bộ dữ liệu đầu vào kích thước n

Thời gian tính tồi nhất: là thời gian tính tối đa cần thiết để thực hiện thuật toán với mọi bộ dữ liệu đầu vào có kích thước n

Thời gian tính trung bình: là thời gian tính cần thiết để thực hiện thuật toán trên một tập hữu hạn các bộ dữ liệu đầu vào có kích thước n Thời gian

tính trung bình được tính theo công thức sau:

Thời gian tính trung bình = (Tổng thời gian tính tất cả các bộ dữ liệu có thể)/ Số bộ dữ liệu

3

4

5

Trang 26

Định nghĩa 1.26 Bài toán quyết định là bài toán mà đầu ra chỉ có thể là

„yes‟ hoặc „no‟ (đúng/sai, 0/1)

Đối với một bài toán quyết định, có những bộ dữ liệu vào cho ra câu trả

lời (đầu ra) là „yes‟, chúng ta gọi đây là bộ dữ liệu „yes‟, nhưng cũng có những bộ dữ liệu vào cho ra câu trả lời là „no‟, chúng ta gọi những bộ dữ liệu

này là bộ dữ liệu „no‟

1.2.2 Khái niệm phép quy dẫn đa thức

Định nghĩa 1.27 Giả sử chúng ta có hai bài toán quyết định A và B

Chúng ta nói A có thể quy dẫn về B nếu như sau một thời gian tính đa thức nếu tồn tại một thuật toán thời gian đa thức R cho phép biến đổi bộ dữ liệu x của A thành bộ dữ liệu vào R(x) của B sao cho x là bộ dữ liệu yes của A khi và chỉ khi R(x) là dữ liệu vào yes của B

Nếu A quy dẫn về được B sau thời gian đa thức và B có thể giải được sau thời gian đa thức thì A cũng có thể giải được sau thời gian đa thức

1.2.3 Lớp bài toán P

Định nghĩa 1.28 Một máy Turing M được gọi là có độ phức tạp thời

gian T(n) (hoặc thời gian chạy T(n)) nếu mỗi khi M được cho một nguyên liệu đầu vào w có độ dài n thì M sẽ dừng sau khi thực hiện tối đa T(n) bước chuyển, bất kể M có kiểm nhận w hay không

Chúng ta chủ yếu quan tâm khi T(n) là một hàm đa thức

Một ngôn ngữ L thuộc lớp P nếu có một hàm đa thức T(n) sao cho L = L(M) với một máy Turing đơn định M nào đó có độ phức tạp thời gian T(n)

Ví dụ: Thuật toán Kruskal tìm cây khung bé nhất của một đồ thị có m

nút và e cạnh với thời gian O(m+ elog2e) (trên máy tính thông thường) Thời

Trang 27

1.2.3 Lớp bài toán NP

Định nghĩa 1.29: Ngôn ngữ L thuộc lớp NP (Nondeterministic

Polynomial) nếu  máy Turing không đơn định M và một độ phức tạp thời

gian T(n) sao cho L=L(M) và khi M được cho một nguyên liệu có độ dài n thì

nó sẽ kiểm nhận sau không quá T(n) bước chuyển

Nhận xét: Vì mỗi máy Turing đơn định đều là máy Turing không đơn

định không bao giờ có lựa chọn bước chuyển nên P NP Tuy nhiên, dường như NP cũng chứa nhiều bài toán không thuộc lớp P Một câu hỏi toán học sâu sắc còn bỏ ngỏ là liệu P = NP hay không, nghĩa là mọi thứ có thể thực hiện được bởi một NTM (Nondeterministic Turing Machine) thật sự trong thời gian đa thức có thể được thực hiện bởi một DTM (Deterministic Turing

Machines) trong một thời gian đa thức hay không, dù có thể là một hàm đa thức bậc cao hơn

1.2.4 Lớp bài toán NP-đầy đủ (NP-Complete).

Định nghĩa 1.30 Ta nói L là bài toán thuộc loại NP-C nếu các khẳng

định sau là đúng:

1) L thuộc NP

2) Với mọi ngôn ngữ L’  NP có một phép thu thời gian đa thức L’ về L Định lý 1.3 Nếu bài toán P 1 là NP-C, P 2 là NP và có một phép thu thời gian đa thức từ P 1 về P 2 thì P 2 cũng là NP-C

Chứng minh: Ta cần chứng tỏ rằng mỗi ngôn ngữ L thuộc NP đều thu

được P 2 trong thời gian đa thức Khi đó theo định nghĩa P 2 sẽ thuộc NP-C

Thật vậy, vì P 1 là NP-C nên có một phép thu đa thức L về P 1 Giả sử

thời gian của phép thu này là P(n) Vì thế một chuỗi W∈L có chiều dài n được biến đổi thành một chuối x ∈ P1 có chiều dài tối đa là P(n) Ta cũng biết rằng

Trang 28

có một phép thu đa thức từ P1 về P2 Giả sử thời gian của phép thu này là

q(m) Thế thì phép thu này biến đổi chuỗi x ∈ P1 về chuỗi y nào đó thuộc P2với thời gian tối đa là q(p(n)) Vì thế phép biến đổi W ∈ L về y ∈ P2 mất thời

gian tối đa là p(n) + q(p(n)), đây cũng là một đa thức Như vậy, ta kết luận rằng L có thể thu về P2 trong thời gian đa thức

Định lý 1.4 Nếu có một bài toán nào đó là NP-C mà lại thuộc lớp P thì

ta có P = NP

Chứng minh: Giả sử có bài toán Q ∈ NP-C và Q ∈ P Thế thì mọi ngôn ngữ L trong NP đều thu được về Q trong thời gian đa thức Nếu Q ∈ P thì L ∈

P Như vậy NP ∈ P Kết hợp với điều hiển nhên là P ∈ NP ta được P = NP

Nhận xét: Chúng ta vẫn tin tưởng rằng nhiều bài toán thuộc lớp NP

nhưng không thuộc P nên chúng ta sẽ xem việc chứng minh một bài toán là NP-C có giá trị ngang với việc chứng minh rằng nó không thể giải được trong

thời gian đa thức, và vì thế không có lời giải đúng nào bằng máy tính (và ta sẽ

chỉ đi tìm lời giải gần đúng)

Trang 29

Chương II: CHU TRÌNH HAMILTON

Năm 1857, nhà toán học người Ailen là Hamilton(1805-1865) đưa ra trò chơi “đi vòng quanh thế giới” như sau:

Cho một hình thập nhị diện đều (đa diện đều có 12 mặt, 20 đỉnh và 30 cạnh), mỗi đỉnh của hình mang tên một thành phố nổi tiếng, mỗi cạnh của hình (nối hai đỉnh) là đường đi lại giữa hai thành phố tương ứng Xuất phát từ một thành phố, hãy tìm đường đi thăm tất cả các thành phố khác, mỗi thành phố chỉ một lần, rồi trở về chỗ cũ

Trò chơi trên dẫn tới việc khảo sát một lớp đồ thị đặc biệt, đó là đồ thị Hamilton

2.1 Chu trình Hamilton: Định nghĩa, tính chất và các điều kiện đủ

2.1.1 Một số khái niệm

Định nghĩa 2.1 Trong đồ thị G = (V,E) đường đi qua tất cả các đỉnh

của đồ thị mỗi đỉnh đúng một lần được gọi là đường đi Hamilton

Ví dụ: Đồ thị có đường đi Hamilton là a  b  c d

Hình 2.1 Đồ thị có đường đi Hamilton, không có chu trình Hamilton

Định nghĩa 2.2 Chu trình bắt đầu từ một đỉnh v nào đó qua tất cả các

đỉnh còn lại mỗi đỉnh đúng một lần rồi quay trở về v được gọi là chu trình

Hamilton

c

d

Trang 30

Định nghĩa 2.3 Đồ thị G được gọi là đồ thị Hamilton nếu nó chứa chu

trình Hamilton và gọi là đồ thị nửa Hamilton nếu nó có đường đi Hamilton

Rõ ràng đồ thị Hamilton là nửa Hamilton, nhưng điều ngược lại không còn đúng

Ví dụ về đồ thị Hamilton:

Hình 2.2 Đồ thị Hamilton

Bài toán chu trình Hamilton (HC) được phát biểu như sau:

Instance: Một đồ thị G = (V,E)

Question: G có chu trình Hamilton hay không?

Bài toán HC đã được Karp (1972, [15]) chứng minh là bài toán NP-C (NP-đầy đủ), chính vì thế mà không tồn tại thuật toán đa thức xác định sự tồn tại của chu trình Hamilton trong đồ thị cho trước Cho đến nay chúng ta vẫn chưa tìm ra điều kiện cần và đủ để kiểm tra xem một đồ thị cho trước có là Hamilton hay không, và vấn đề này vẫn còn là một vấn đề mở Hiện tại mới chỉ có các điều kiện đủ để một đồ thị là đồ thị Hamilton hay có đường đi

Hamilton

2.1.2 Một số tính chất của đồ thị Hamilton

Trang 31

a) Mọi đỉnh của đồ thị G phải có bậc không nhỏ hơn 2

b) Nếu một đỉnh có bậc bằng 2 thì hai cạnh của nó phải nằm trên bất kỳ

một chu trình Hamilton của G

c) Nếu một đỉnh có bậc lớn hơn 2 và hai cạnh liền kề của nó nằm trên một chu trình Hamilton thì các cạnh còn lại của nó không nằm trên chu trình Hamilton đó

Một số điều kiện đủ về sự tồn tại đường đi Hamilton và chu trình Hamilton

Định lý 2.2 (Định lý Rédei) [2] Đồ thị đầy đủ vô hướng K n với n ≥ 3 là

đồ thị Hamilton

Chứng minh: Chúng ta có thể xây dựng chu trình Hamilton trong K n

xuất phát từ bất kỳ đỉnh nào Một chu trình như thế có thể xây dựng bằng cách ghé thăm các đỉnh theo một thứ tự tùy chọn, sao cho đường đi bắt đầu và kết thúc tại cùng một đỉnh, mọi đỉnh đều được ghé thăm đúng một lần Luôn

đúng, vì giữa hai đỉnh bất kỳ của K n đều có cạnh

Hình 2.3 Đồ thị K 5 có chu trình Hamilton (a→b→c→d→e→a)

Định lý 2.3 (Định lý Dirac [5]): Giả sử G là một đơn đồ thị liên thông

có n đỉnh, trong đó n ≥ 3, khi đó G có chu trình Hamilton nếu bậc của mỗi đỉnh ít nhất bằng n/2

a

Trang 32

Chứng minh:

Thêm vào đồ thị G k đỉnh mới và nối chúng với tất cả các đỉnh của G Giả sử k là số nhỏ nhất các đỉnh cần thêm vào để cho đồ thị thu được G’ là đồ thị Hamilton Ta sẽ chỉ ra rằng k = 0

Thực vậy, giả sử ngược lại là k > 0

Ký hiệu v, p, w, , v là chu trình Hamilton trong G’, trong đó v, w là đỉnh của G còn p là một trong số các đỉnh mới Khi đó w không kề với v vì nếu ngược lại, ta không cần sử dụng p và điều đó là mâu thuẫn với giả thiết k nhỏ nhất Hơn nữa đỉnh (w’ chẳng hạn) kề với w không thể đi liền sau đỉnh v’ (kề với v) vì rằng khi đó có thể thay

v → p→ w → → v’→ w’ → → v

bởi v → v’ → → w → w’ → → v bằng cách đảo ngược đoạn của chu trình nằm giữa w và v’ Từ đó suy ra là số đỉnh của đồ thị G’ không

kề với w là không nhỏ hơn số đỉnh kề với v (tức là ít nhất cũng là bằng ),

đồng thời số đỉnh của G’ kề với w ít ra là phải bằng Do không có đỉnh

nào của G’ vừa không kề, lại vừa kề với w, cho nên tổng số đỉnh của đồ thị G’ (G’ có n+k đỉnh) không ít hơn n+2k Mâu thuẫn thu được đã chứng minh định lý

Trang 33

Hệ quả 2.1 [16]: Nếu G là đơn đồ thị có n (n ≥ 3) đỉnh và mọi đỉnh

của G đều có bậc không nhỏ hơn thì G là đồ thị nửa Hamilton (hay G có đường đi Hamiltom)

Định lý 2.4 (Định lý Ore 1960 [2]):

Nếu G là một đơn đồ thị có n đỉnh, với n ≥ 3 sao cho deg(u)+deg(v) ≥ n với mọi cặp đỉnh không liền kề u và v trong G, khi đó G là đồ thị Hamilton

Chứng minh: Sử dụng phương pháp chứng minh bằng phản chứng

Giả sử G thỏa deg(v) + deg(w)  n; v,w không liền kề trong G nhưng

G không có chu trình Hamilton Khi đó ta có thể ghép thêm vào G những cạnh cho đến khi nhận được một đồ thị con H của K n sao cho H không có chu trình Hamilton, nhưng với mọi cạnh e  K n nhưng e  H, ta có (H + e) có chu trình Hamilton Việc ghép thêm cạnh vào G là hoàn toàn thực hiện được và

không ảnh hưởng gì đến điều kiện của giả thiết

Do H  K n nên tồn tại a, b V sao cho ab  H nhưng H + ab có chu

trình Hamilton C Bản thân H không có chu trình Hamilton mà H + ab có chu

trình Hamilton  ab  C Giả sử ta liệt kê các đỉnh của H trong chu trình C như sau:

a(=v 1 )  b(=v 2 )  v 3 v4  vn-1  vn ; 3  i  n

Khi đó, nếu cạnh bv i  H, ta có thể kết luận avi-1  H vì nếu cả hai bvi

và av i-1 cùng nằm trong H, ta có chu trình:

b  v i vi+1   vn-1  vn a  vi-1  vi-2   v3

Ngày đăng: 27/12/2014, 18:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Vũ Đình Hòa, Đỗ Như An, Kết quả mới về đồ thị Hamilton tối đại, Tạp chí tin học và điều khiển học, T.22, S2, 2006, 117-122 Khác
[2] Kenneth H. Rosen (Người dịch: Phạm Văn Thiều, Đặng Hữu Thịnh), Toán rời rạc ứng dụng trong tin học, NXB Khoa học và Kỹ thuật, 2003 Khác
[3] Nguyễn Đức Nghĩa, Nguyễn Tô Thành, Giáo trình Toán rời rạc, NXB Đại học Quốc gia Hà Nội, 2009.Tiếng Anh Khác
[5] Diestel R., Graph theory, Electronic Edition 2000, Springer- Verlag, 2000 Khác
[6] Nikoghosyan Zh., Review Article Graph Invariants and Large Cycles: A Survey, 2011 Khác
[7] A Proskurowski. Minimum dominating cycles in 2-trees, International Journal of Computer &amp; Information Sciences, 8(5):405–417, 1979 Khác
[8] Lu M., H.Liu and Tian F., Two sufficient conditions for dominating cycles, Journal of Graph Theory, vol. 49, No. 2, pp.135–150, 2005 Khác
[9] Vu Dinh Hoa, Do Nhu An, Recognizing dominating cycles is NP- hard, Tạp chí tin học và điều khiển học, T. 18, No 3, 2002, 223-227 Khác
[10] Vu Dinh Hoa (1993), On the length of longest Dominating cycles in graphs, Discrete Mathemtics 121, 1993, pp.211-222 Khác
[11] Vu Dinh Hoa, Vertex set containing in longest dominating cycles, Acta Math. Vietnam, Volume 19, No 1 (1994), pp. 25-30 Khác
[12] Aho, J. Ullman, Data Structures and Algorithms, Springer, 2008 Khác
[13] Lizhi Du, A Polynomial Time Algorithm for Hamilton Cycle, Proceedings of the International MultiConference of Engineers and Computer Scientists 2010, Volume 1, HongKong Khác
[16] Graham R. L., Grótschel M., Lovász L. (1995), Handbook Of Combinatorics Vol1, 2, elsevier Khác
[17] Sheehan J., Graph with Exacly one Hamilton Circuit, Graph J. theory 1, 1977, 37-43 Khác
[18] C.S.J.A. Nash-Williams, Edge- disjoint Hamiltonian circuits in graphs with vertices of large valency, in: L. Mirsky, ed., Studies in Pure Mathematics, Academic Press, London, 1971, 157-l 83 Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w