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

Cấu trúc dữ liệu và thuật toán nguyễn văn núi chương 4 dothi

17 82 0

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

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

Nội dung

Một số khái niệm cơ bản trên đồ thị 3.. Biểu diễn đồ thị trong máy tính 4.. Một số bài toán ứng dụng đồ thị...  G là đồ thị có trọng số nếu các cạnh/cung của nó giá trị... MỘT SỐ KHÁI

Trang 1

Chương 4

MÔ HÌNH DỮ LIỆU ĐỒ THỊ

Trang 2

MỤC TIÊU

Trang 3

NỘI DUNG CHÍNH

1 Định nghĩa đồ thị

2 Một số khái niệm cơ bản trên đồ thị

3 Biểu diễn đồ thị trong máy tính

4 Cách duyệt (thăm) đồ thị

5 Một số bài toán ứng dụng đồ thị

Trang 4

1 ĐỊNH NGHĨA ĐỒ THỊ

- Đồ thị là một cấu trúc rời rạc, ký hiệu G = <V, E>

V là tập các đỉnh ( vertices) , mỗi đỉnh tương đương 1 phần tử

dữ liệu

E là tập các cạnh/cung (Edges) - tập các cặp (u,v) mà u,v là

hai đỉnh thuộc V Biểu diễn mối quan hệ giữa các phần tử

4

3

4

3

5

Ví dụ:

G 1 =<V 1 , E 1 >

V 1 ={1, 2, 3, 4}

E 1 ={Tập cung}

={1  2, 1  3, 2  4, 3  2, 4  3}

G 2 = <V 2 , E 2 >

V 2 = {1, 2, 3, 4,5}

E 2 = {Tập cạnh}

={1  2, 1  3, 2  3, 2  4, 2  5, 3  4, 4  5}

Trang 5

PHÂN LOẠI ĐỒ THỊ

Dựa vào đặc tính của tập E, ta có:

G là đơn đồ thị nếu giữa hai đỉnh u và v bất kì có nhiều nhất

một cạnh

G là đa đồ thị nếu giữa hai đỉnh u và v bất kì có thể có nhiều

hơn một cạnh

G là đồ thị vô hướng nếu E gồm các cặp (u,v)=(v,u), gọi là

các cạnh

G là đồ thị có hướng nếu E gồm các cặp (u,v)<>(v,u), gọi là

các cung

 G là đồ thị có trọng số nếu các cạnh/cung của nó giá trị

Trang 6

Một số ví dụ

– Hình 1: Đơn đồ thị, vô hướng

– Hình 2: Đơn đồ thị, có hướng

– Hình 3: Đa đồ thị, vô hướng

– Hình 4: Đa đồ thị, có hướng

Hình 1 Hình 2

Hình 3 Hình 4

Trang 7

2 MỘT SỐ KHÁI NIỆM CƠ BẢN TRÊN ĐỒ THỊ

a) Cạnh liên thuộc, đỉnh kề, bậc

 Nếu e=(u,v) là 1 cạnh  E thì ta nói u,v kề nhau (adjacent)

và e là liên thuộc với u và v

 Nếu e = (u,v) là một cung thì ta nói u nối tới v và v nối từ u Cung e đi ra khỏi đỉnh u ( đỉnh đầu) và đi vào đỉnh v ( đỉnh cuối), ta cũng nói u kề v

Bậc (degree) của v ( deg(v)) là số cạnh liên thuộc với v

1

4

1

4

Trang 8

b) Đường đi và chu trình

 Một đường đi P=(v1…vp) mà cạnh (vi-1vi)  E với i=2…p

 P gọi là đường đi đơn nếu tất cả các đỉnh trên đường đi không trùng nhau

 Đường đi con của P là một đoạn liên tục dọc theo P

 P gọi là chu trình nếu v1=vp

 Một đồ thị là liên thông nếu với mọi cặp đỉnh (u,v) đều có đường đi từ u đến v

2 MỘT SỐ KHÁI NIỆM CƠ BẢN TRÊN ĐỒ THỊ

Trang 9

3 BIỂU DIỄN ĐỒ THỊ TRONG MÁY TÍNH

a) Ma trận kề

b) Danh sách kề

Trang 10

a) Ma trận kề

• Đánh số thứ tự các đỉnh của đồ thị từ 1 đến n

• Biểu diễn đồ thị bằng một ma trận vuông cấp n gọi là

ma trận kề:

 a[i,j]=1 nếu i kề j (tức (i,j) là cạnh/cung thuộc E

 a[i,j]=0 nếu i không kề j (tức (i,j) là cạnh/cung không thuộc E.)

* Ví dụ:

5

4

3

2

1

1

2

5

0 0 1 1 0

0 0 0 1 1

1 0 0 0 1

1 1 0 0 0

0 1 1 0 0

A =

1

2

5

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

1 0 0 0 0

0 1 0 0 0

A =

5

4

3

2

1

5

4

3

2

1

5

4

3

2

1

Trang 11

Nhận xét

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

 Trực quan, dễ cài đặt

 Kích thước luôn là N2 dẫn đến lãng phí đặc biệt lãng phí với

ma trận thưa nhiều đỉnh, ít cạnh/cung

 G là đồ thị có trọng số, thay giá trị 1 của ma trận kề bởi giá trị trọng số tương ứng => gọi là ma trận trọng số

Trang 12

b) Danh sách kề

- Với mỗi đỉnh u  V ta cho tương ứng một danh sách các đỉnh kề với u

- Ví dụ:

1

2

3

4

5

2

1

3

4

5

3 2

4

5

Trang 13

4 Các phép duyệt đồ thị

Duyệt đồ thị? Mỗi đỉnh chỉ được thăm duy nhất 1 lần

Các phương pháp duyệt đồ thị

loang

Trang 14

a) Duyệt theo chiều rộng chiều rộng

(BFS - Breath first search)

Giả sử u là đỉnh xuất phát Nguyên tắc duyệt:

thăm kề với các đỉnh này và tiếp tục lặp lại với các đỉnh mới

Tên gọi khác: Duyệt theo vết dầu loang

2

1

3 4

8

9

Giả sử đỉnh u  đỉnh 1,

=> Kết quả duyệt BFS là:

1 2  3 4 5  6  7 8

Ví dụ: Xét đồ thị như hình bên

Trang 15

b) Duyệt theo chiều sâu (DFS - Depth first search)

Giả sử u là đỉnh xuất phát

=> Nguyên tắc duyệt như sau:

 Thăm u, rồi thăm đến các đỉnh u1, u2,

…., uk kề u với điều kiện khi thăm đến

đỉnh ui (i = 1 k) thì một phép duyệt theo

chiều sâu xuất phát từ ui lại được thực

hiện

 Khi thăm đến đỉnh v mà mọi đỉnh kề v

đều đã được thăm thì quay lui đến đỉnh

v’ còn có đỉnh w chưa được thăm, một

phép duyệt theo chiều sâu xuất phát từ w

lại được thực hiện

 Phép duyệt kết thúc khi mọi đỉnh liên

thông với u đều được thăm

Ví dụ: Xét đồ thị như hình

2

1

3 4

8

9

Giả sử đỉnh u đỉnh 1,

=> Kết quả duyệt là:

1 2  5 8 6  3  7 4

Trang 16

5 Bài toán cây khung

Định nghĩa:

Cho đồ thị G=<V,E> là đồ thị vô hướng; cây T=<V,F> trong đó F là tập con của E,

 T được gọi là cây khung của G nếu T liên thông và phi

chu trình

 Nếu G là đồ thị vô hướng có trọng số: Giá của cây khung

là tổng trọng số của các cạnh trong nó

Trang 17

Ví dụ

Nhận xét:

G là đồ thị vô hướng liên thông có thể có nhiều cây khung Nếu

G là đồ thị trọng số => tìm cây khung nhỏ nhất có ý nghĩa thực tiễn? Tìm như thế nào?

Ngày đăng: 11/12/2019, 15:13

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm