1. Trang chủ
  2. » Công Nghệ Thông Tin

Tiểu luận tìm cây phủ chiều ngang

21 339 6

Đ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 21
Dung lượng 238,5 KB

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

Nội dung

Lý thuyết đồ thị là một lĩnh vực nghiên cứu đã có từ lâu và có nhiều ứng dụng trong ngành công nghệ thông tin. Những tư tưởng cơ bản của lý thuyết đồ thị được đề xuất vào những năm đầu của thế kỷ 18 bởi nhà toán học lỗi lạc người Thụy Sỹ: Leonhard Euler. Chính ông là người đã sử dụng đồ thị để giải bài toán nổi tiếng về 7 cái cầu ở thành phố Konigberg.Lý thuyết đồ thị có rất nhiều bài toán được ứng dụng có hiệu quả trong nhiều lĩnh vực. Một trong những bài toán đó chính là bài toán tìm cây phủ của đồ thị.Để ứng dụng phần lý thuyết đã học về Toán ứng dụng vào trong đề tài của tiểu luận, em trình bày hai vấn đề :Thuật toán tìm cây phủ của đồ thị theo chiều ngang.Áp dụng thuật toán trên cho đồ thị không liên thông.

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG

ĐÀ NẴNG, 06/2015

Trang 2

LỜI MỞ ĐẦU

Lý thuyết đồ thị là một lĩnh vực nghiên cứu đã có từ lâu và có nhiều ứngdụng trong ngành công nghệ thông tin Những tư tưởng cơ bản của lý thuyết đồ thịđược đề xuất vào những năm đầu của thế kỷ 18 bởi nhà toán học lỗi lạc người ThụySỹ: Leonhard Euler Chính ông là người đã sử dụng đồ thị để giải bài toán nổi tiếng

về 7 cái cầu ở thành phố Konigberg

Lý thuyết đồ thị có rất nhiều bài toán được ứng dụng có hiệu quả trong nhiềulĩnh vực Một trong những bài toán đó chính là bài toán tìm cây phủ của đồ thị

Để ứng dụng phần lý thuyết đã học về Toán ứng dụng vào trong đề tài củatiểu luận, em trình bày hai vấn đề :

 Thuật toán tìm cây phủ của đồ thị theo chiều ngang

 Áp dụng thuật toán trên cho đồ thị không liên thông

Em xin chân thành cảm ơn thầy PGS.TSKH Trần Quốc Chiến đã hướng

dẫn và cung cấp kiến thức và tài liệu để em có thể hoàn thành tiểu luận này

Học viên thực hiện

Nguyễn Trọng Ân

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU 2

CHƯƠNG I 1

ĐẠI CƯƠNG VỀ ĐỒ THỊ 1

CÂY 1

I.Định nghĩa 1

1 Định nghĩa 1 1

2 Định nghĩa 2 1

3 Định nghĩa 3 2

2 2 II.Tính chất 2

1 Định lý 1 (Định lý tương đương) 2

2 Định lý 2 2

III.Cây m-phân 3

1 Định nghĩa 3

2 Định lý 1 3

3 Hệ quả 3

4 Định lý 2 3

CÂY PHỦ 3

I.Định nghĩa 4

II.Định lý 4

4 CHƯƠNG II 5

BÀI TOÁN TÌM CÂY PHỦ THEO CHIỀU NGANG 5

I.Giới thiệu bài toán 5

CHƯƠNG III 6

THIẾT KẾ VÀ CÀI ĐẶT BÀI TOÁN 6

I.Thuật toán 6

II.Thiết kế cấu trúc dữ liệu 6

1.Dữ liệu đầu vào 6

2.Dữ liệu đầu ra 6

3.Hàng đợi Q 7

4.Cây phủ SpanningTree 7

Trang 4

III.Áp dụng thuật toán cho đồ thị không liên thông 8

1.Ý tưởng 8

IV.Cài đặt bài toán 8

KẾT LUẬN 16

TÀI LIỆU THAM KHẢO 17

Trang 5

Gốc của cây là một đỉnh đặc biệt, thông thường là đỉnh trên cùng.

Mức của đỉnh là độ dài đường đi từ gốc lên đỉnh đó.

Độ cao của cây là mức lớn nhất của cây ( tức mức của đỉnh cách xa gốc nhất).

Trong ví dụ trên nếu ta chọn v1 là gốc thì v2, v3 là những định mức 1, các đỉnh v4, v5,

v6, v7 có mức 2, và độ cao của cây là 2

Trang 6

y là hậu thế của x, nếu x là tiền bối của y

y và z là anh em nếu chúng đều là con của đỉnh x

x là đỉnh lá nếu nó không có con

x là đỉnh trong của cây nếu nó có con

T liên thông và mỗi cạnh là cầu

Hai đỉnh bất kỳ được nối với nhau bởi một đường đi duy nhất

T không chứa chu trình và nếu thêm một cạnh nối hai đỉnh thì ta thu được đúng 1 chu trình

T liên thông và nếu them một cạnh nối hai đỉnh thì ta thu được đúng 1 chu trình

2 Định lý 2

Tâm của cây là tập hợp hoặc chỉ có một đỉnh hoặc có hai đỉnh kề nhau

Trang 7

III Cây m-phân

1 Định nghĩa

Cây m-phân ( m ∈N*) là cây mà mọi đỉnh trong có tối đa m con và có ít nhấtmột đỉnh có m con

Cây m-phân đầy đủ là cây mà mọi đỉnh trong có đúng m con

Cây cân bằng là cây mà mọi đỉnh lá có mức là h hay h-1, trong đó h là chiều

cao của cây

Cho T là cây m-phân có l lá và chiều cao h khi đó

Nếu T là cây m-phân cân bằng đầy đủ thì h= [logml]

Trong đó [x] (trần nguyên của x) ký hiệu số nguyên nhỏ nhất lớn hơn hoặc bằng x

CÂY PHỦ

3

Trang 9

CHƯƠNG II

BÀI TOÁN TÌM CÂY PHỦ THEO CHIỀU

NGANG

I Giới thiệu bài toán

Cho một đồ thị bất kỳ, hãy tìm cây phủ của đồ thị Đầu vào của bài toán là tập các thông tin về số cạnh, số đỉnh cũng như các cạnh trong đồ thị Đầu ra của bài toán là tập các thông tin về số thành phần liên thông, các đinh cũng như các cạnh phủ của từng đồ thị liên thông của đồ thị

5

Trang 10

Đầu vào: Đồ thị G=(V,E)

Đầu ra: Cây phủ T hoặc kết luận đồ thị không liển thong

Rút đỉnh x ∈ Q Duyệt các đỉnh y ∈ Ke(x), nếu y ∉ T thì thêm cạnh (x,y) và

đỉnh y vào T và đẩy y vào hàng đợi Q

Nếu Q ≠ ∅ và T chưa phủ hết các đỉnh, thì quay lại bước 2, ngược lại sang bước 3

(3) Kết luận:

Nếu T phủ hết các đỉnh của đồ thị, thì T là cây phủ, ngược lại đồ thị không liên thông

II Thiết kế cấu trúc dữ liệu

1 Dữ liệu đầu vào

File dữ liệu đầu vào: GRAPH.INP có cấu trúc

Trang 11

File kết quả: GRAPH.OUT

x1, , xi {các đỉnh của thành phần liên thông thứ 1}

(u1, v1),(u2, v2), {các cạnh cây phủ của thành phần liên thông thứ 1}

y1, , yj {các đỉnh của thành phần liên thông thứ 2}

(r1, t1), (r2, t2), … {các cạnh cây phủ của thành phần liên thông thứ 2

3 Hàng đợi Q

Hàng đợi Queue có 5 thuộc tính:

- Capacity: kiểu integer, chỉ số phần tử tối đa mà queue có thể chứa

- Size: kiểu integer, chỉ số phần tử hiện tại mà queue chứa

- Front: kiểu integer, chỉ vị trí phần tử đầu tiên của queue

- Rear: kiểu integer, chỉ vị trí phần tử sau cùng của queue

4 Cây phủ SpanningTree

Cây phủ Cây phủ SpanningTree có 4 thuộc tính:

- mT: kiểu mảng integer, chỉ tập hợp các đỉnh đã duyệt qua

- mCount: kiểu integer, chỉ số phần tử của mảng mT

Trang 12

- mSpanningEdges: kiểu mảng hai chiều integer, chỉ tập hợp các cạnh phủ đã

- mCountSpanningEdges: kiểu integer, chỉ số phần tử của mảng

mSpanningEdges

Kết quả của bài toán là tập các cây phủ SpanningTree, nếu số phần tử của tập này

là 1 thì đồ thị có cây phủ, ngược lại lớn hơn 1, đồ thị không liên thông và tập này là tập rừng phủ của đồ thị

III Áp dụng thuật toán cho đồ thị không liên thông

1 Ý tưởng

Đối với bài toán đúng tức là đồ thị liên thông, khi duyệt hết các đỉnh và các cạnh và hàng đợi Q rỗng, ta kiểm tra tập đỉnh trong T đã phủ đồ thị hết chưa bằng cách so sánh số lượng phần tử của T(countT) và số đỉnh của đồ thị(n)

countT == n

Nếu đúng thì trả về true, tức là đồ thị liên thông và có tập phủ Ngược lại, trả

về false, đồ thị không liên thông

Nếu đồ thị không liên thông, ta đi tìm rừng phủ cho đồ thị theo các bước sau:

(1) Thêm tập T kết quả vào tập các cây phủ SpanningTree Trong tập các

cạnh đầu vào của hàm tìm cây phủ, loại các cạnh chứa đỉnh đã tồn trong tập T

(2) Gọi hàm tìm cây phủ với tập các cạnh đầu vào mới có, nếu kết quả trả về false, lặp lại bước 1, ngược lại sang bước 3

(3) Thêm tập T kết quả vào tập các cây phủ SpanningTree Kết thúc

IV Cài đặt bài toán

Trang 13

(the index at which we insert the element) */

typedef struct Queue

Trang 14

/* createQueue function takes argument the maximum number of elements the Queue can hold, creates

a Queue according to it and returns a pointer to the Queue */

Queue * CreateQueue(int maxElements)

{

/* Create a Queue */

Queue *Q;

Q = (Queue *)malloc(sizeof(Queue));

/* Initialise its properties */

Q->elements = (int *)malloc(sizeof(int)*maxElements);

Trang 16

void WriteToAFile(SpanningTree ST[], int countST){

Trang 17

//printf("Dang duyet nextVertice %d\n", nextVertice);

SpanningEdges[countSpanningEdges][0]=a[i][0];SpanningEdges[countSpanningEdges++][1]=a[i][1];

Enqueue(Q, nextVertice);

}}

Trang 18

int main()

{

printf("***********************************************\n");

printf("\n");

printf("TIM CAY PHU THEO CHIEU NGANG\n");

printf("Hoc vien: NGUYEN TRONG AN\n");

Trang 20

KẾT LUẬN

 Em đã nắm bắt được một phần lý thuyết cơ bản về đồ thị toán ứng dụng

 Xây dựng được thuật toán tìm cây phủ theo chiều ngang

 Áp dụng thuật toán cho bài toán đồ thị không liên thông

Trang 21

TÀI LIỆU THAM KHẢO

[1] PGS.TSKH Trần Quốc Chiến – Bài Giảng Toán Ứng Dụng – Trường Đại Học

Bách Khoa Đà Nẵng - 2015

[2] Các tài liệu trên Internet

17

Ngày đăng: 22/12/2015, 20:10

HÌNH ẢNH LIÊN QUAN

Ví dụ 3.1.2. Đồ thị sau là rừng có 3 cây - Tiểu luận tìm cây phủ chiều ngang
d ụ 3.1.2. Đồ thị sau là rừng có 3 cây (Trang 6)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w