Tóm tắt lý thuyết

Một phần của tài liệu Lập trình pascal tập 2 (Trang 22 - 25)

Bài 4. Mô phỏng đồ thị

A. Tóm tắt lý thuyết

Một đồ thị vó hướng G gồm hai tập hợp hữu hạn V và E, kí hiệu G = (V,E); trong đó V là tập các đỉnh của đồ thị và E là tập các cạnh của đồ thị.

Giả sử ta có tập đỉnh V gồm n đỉnh là các số nguyên {1,2, khi đó E là tập hợp con các tích Đêcac V x V mà nếu ( i j ) e E thì (j,i) e E, và ta đồng nhất (i j ) với (j,i); (i j = 1, 2 , n).

Nêu ( i j ) là một cạnh của đô thị ta nói cạnh đó được nôi từ đỉnh i đên đỉnh j và hai đỉnh i và j là kề nhau.

Bậc của m ột đỉnh trong đồ thị là số đỉnh kề với nó.

Bậc của đồ thị là số lớn nhất trong số các bậc của tất cả các đỉnh cùa đồ thị đó.

Một đồ thị được gọi là đơn đồ thị nếu giữa hai đinh khác nhau chi có nhiều nhất 1 cạnh nối; nếu giữa hai đỉnh nào đó có nhiều hom 1 cạnh nối thì đồ thị được gọi là đa đồ thị. Hình vẽ sau cho ví dụ về hai loại đồ thị.

Trong đồ thị phía trên: đỉnh Detroi kề với đỉnh Chicago và N ew York, Chicago kề với Denver, Detroi, N e w York và Washington... Đỉnh Detroi không kề với Denver vì giữa chúng không có cạnh nối, tuy nhiên chúng

liên thông với nhau vì giữa chúng có đường đi (qua Chicago hoặc qua N e w York và Chicago...).

Từ đây về sau chúng ta sẽ chỉ xét các đơn đồ thị.

2. Đồ thị có hưóng

Đ ỏ thị cò hướng G = (V,E); trong đó: V là tập các đỉnh của đồ thị; E là tập các cung của đồ thị.

Nêu ( i j ) là một cung thì ta nói (i,j) là một cung đi từ đỉnh i tới đinh j.

Chú

Trong đồ thị vô hướng thì ( i j ) là một cạnh cũng như là (j,i). Nhưng trong đồ thị có hướng cung (i,j) hoàn toàn khác với cung (j,i).

Ví dự. Ta có đồ thị vô hướng Gi và đồ thị có hướng G2 dưới đây:

3. Biểu diễn đồ thị trên m áy tính + Biểu diễn bằng ma trận kề

Cho đồ thị G = (V,E) vô lurớng (hoặc có hướng). Để ghi nhận các cạnh (hay cung) của G ta dùng một ma trận hai chiều a[l ..n, 1 ..n], n là số đinh của đồ thị, trong đỏ a[i,j] = 1 hay a [i J ] = 0 tuỳ thuộc vào có hay không có cạnh (hay Cling) từ i đến j. Khi đó, ma trận a gọi là m a trận kể của đô thị G

Ví dụ. với đồ thị vô hướng G ị và đồ thị có lurớng G 2 ở trẽn ta có ma trận kề như sau:

21

' 0 1 1 f ' 0 1 0 1 '

1 0 1 1 1 0 1 1

G, : G2 :

1 1 0 0 0 0 0 0

1 1 0 0 0 0 1 0

Nhận xét

Vì trong đồ thị vô hướng cạnh ( i j ) cũng là cạnh (j,i) nên ta có a [i j ] = a[j,i], do đó ma trận kề của đồ thị vô hướng là ma trận đối xứng.

+ Biểu diễn bằng ma trận liên ílĩuộc

- Với đồ thị có hướng: G = (V,E), tập V gồm n đỉnh ( 1 , 2 , n) và tập E gồm m cung (e l, e2, em). Ma trận liên thuộc để biểu diễn đồ thị G kí hiệu là b[l..n,l..m ] được xác định như sau:

b[i j ] = -1 nếu i là đỉnh đầu của cung ej.

= 1 nếu i là đinh cuối của cung ej.

= 0 nếu i không phải là đinh kề cùa ej.

- Với đồ thị vô hướng, b[i,j] được xác định như sau:

b[iJ] = 1 nếu i là đinh đầu hay đỉnh cuối cùa cung ej.

= 0 nếu i không phải là đỉnh kề với ej.

+ iBiểu diễn qua (lanh sách kề

Với mỗi đinh i của đồ thị ta có một danh sách tất cả các đinh kề với i, ta kí hiệu là List(i). Để thể hiện List(i) ta có thể dùng các kiểu dữ liệu kiểu tập hợp hay kiểu mảng.

Ví dụ: với đồ thị G| ta có List( 1) = [2,3,4].

+ Biếu diễn liệt kê các cạnh (cung)

Đối với đồ thị vỏ hướng G = (V, E) có tập E gồm m cạnh, ta dùng một mảng a[ 1 ..m, 1 ..2] để liệt kê tất cà các cạnh cùa đồ thị. Cạnh i cùa đô thị sẽ nối đinh a[i,l] với đỉnh a[i,2]. Đe tránh thiếu sót ta liệt kê từ đinh 1, 2, ... trở đi.

Vỉ dự. với đồ thị Gi ta liệt kẽ các cạnh:

] 1

2

9

2 3 4

2 3 3 4 4

4

1

2

1

2

Đối 'ới đồ thị có hướng ta liệt kê tương tự.

C lĩú ý: Đối với đồ thị vừa có cạnh (m 1 cạnh) và vừa có cung (m2 cung) ta liệ kê m 1 cạnh trước, sau đó mới liệt kê tới m2 cung.

4. Đròng đi và tính liên thông Định nghĩa

M ột đường đi từ đỉnh u tới đinh V là một dãy canh'ei, e2, ek mà

e , = (J„ Uj+|), 1 < i < k - 1 , U| = u; u k = V.

Một ỉưòng đi khép kín (v = u) gọi là một chu trình.

Đô tlị eoi là Hên thông nêu với mọi cặp đinh (u,v) của nó ta luôn có đườru đi từ 11 tới V. Từ đó có thể suy ra một đồ thị không liên thông nếu tôn tỉi một cặp đỉnh (u,v) mà không có đường đi nào nối chúng.

Một phần của tài liệu Lập trình pascal tập 2 (Trang 22 - 25)

Tải bản đầy đủ (PDF)

(266 trang)