1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng Toán rời rạc: Chương 5 - Nguyễn Lê Minh

59 42 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 59
Dung lượng 1,34 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 giảng Toán rời rạc - Chương 5: Lý thuyết đồ thị cung cấp cho người học các kiến thức: Khái niệm đồ thị, các loại đồ thị, bậc của đồ thị, biểu diễn đồ thị, tính liên thông trong đồ thị, chu trình Euler – Hamilton, tìm đường đi ngắn nhất. Mời các bạn cùng tham khảo.

Trang 1

TOÁN RỜI RẠC

Chương 5: LÝ THUYẾT ĐỒ THỊ

GV: NGUYỄN LÊ MINH

Bộ môn Công nghệ thông tin

Trang 2

 Tính liên thông trong đồ thị

 Chu trình Euler – Hamilton

 Tìm đường đi ngắn nhất

Trang 4

Đồ thị có hướng

Đồ thị có hướng G = (V, E) trong đó:

• Tập khác rỗng V là tập hợp hữu hạn các đỉnh của đồ thị

• E là tập hợ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.

• Mỗi cạnh e∈E liên kết với 1 cặp đỉnh (i,j)∈ 𝑉2, quy địnhhướng đi từ i -> j

Trang 5

Đồ thị vô hướng

Đồ thị vô hướng G = (V, E) trong đó:

• Tập khác rỗng V là tập hợp hữu hạn các đỉnh của đồ thị

• E là tập hợ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.

• Mỗi cạnh e∈E liên kết với 1 cặp đỉnh (i,j)∈ 𝑉2, không quyđịnh thứ tự

Trang 6

Cạnh song song và khuyên

• Nếu đồ thị có cạnh nối từ một đỉnh với chính nó, cạnh này

được gọi là khuyên

• Nếu hai cạnh V và V’ cùng liên kết với cặp (i,j) thì V và V’

được gọi là cặp cạnh song song với nhau

Trang 8

Các loại đồ thị

Đồ thị hai phía (Đồ thị lưỡng phân)

Là một đồ thị trong đó tập các đỉnh có thể được chia thànhhai tập không giao nhau thỏa mãn điều kiện không có cạnhnối hai điểm bất kỳ thuộc cùng một tập

Trang 11

Bậc của đỉnh

Bậc của đỉnh v trong đồ thị vô hướng G=(V,E), ký hiệu deg(v),

là số các cạnh liên thuộc với nó, riêng khuyên tại một đỉnh

được tính hai lần cho bậc của nó

Deg(v) = 1 -> đỉnh treo

Deg(v) = 0 -> đỉnh cô lập

VD: Deg(9) = ?

Deg(0) = ?

Trang 12

Bậc của đỉnh

Trong đồ thị có hướng G=(V,E),

• Bán bậc ra của một đỉnh v (𝑑𝑒𝑔+ (v)) là số cung đi ra

e

Trang 15

Đường đi

Xét đồ thị G = <V, E> Một đường đi độ dài n từ u tới v, n là một số nguyên dương, trong một đồ thị là một dãy:

u = x0 x1 x2 … xn = v sao cho  i  {0,…,n-1}, (xi, xi+1)  E

Trang 16

Chu trình

Xét đồ thị G = <V, E> Một chu trình độ dài n (n là một số

nguyên dương) là một đường đi có độ dài n với đỉnh đầu vàđỉnh cuối trùng nhau

Trang 17

Đường đi - Chu trình

• Một đường đi (chu trình) được gọi là đường đi đơn (chu trình đơn) nếu nó không lặp lại cạnh nào

• Một đường đi (chu trình) được gọi là đường đi sơ cấp (chu trình sơ cấp) nếu nó không lặp lại đỉnh nào

Trang 19

Sự liên thông

Một đồ thị không liên thông là hợp của nhiều đồ thị con liên

thông rời nhau Mỗi đồ thị con này được gọi là một thành phần liên thông của đồ thị ban đầu

Đồ thị trên có 3 thành phần liên thông

Trang 22

Ma trận liền kề

Ma trận liền kề của đồ thị G=(V,E) ứng với thứ tự các đỉnh v1,

v2, … , vn là ma trận cấp MxM

𝐴 = (𝑎𝑖𝑗)𝑖≤𝑗,𝑗≤𝑛∈ 𝑀(𝑛, 𝑍)

Trong đó aij là số cạnh hoặc cung nối từ vi tới vj

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

Ma trận liền kề của 1 đồ thị có hướng là ma trận không đối

xứng

Trang 23

Ma trận liền kề

Trang 24

Ma trận liên thuộc

Ma trận liên thuộc của đồ thị có hướng G=(V,E) gồm n đỉnh,

m cạnh (cung) là ma trận gồm n hàng tương ứng n đỉnh, m cột tương ứng m cạnh (cung) , A = aij với aij được định nghĩa

• Aij = 1 nếu cạnh Ei đi ra khỏi đỉnh Vi

• Aij = -1 nếu cạnh Ei đi vào đỉnh Vi

• Aij = 0 trong các trường hợp còn lại

1

4 2

Trang 25

Thành phần 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ị

• Một thành phần liên thông của đồ thị là 1 lớp tương đươngđược xác định bởi quan hệ liên kết

• Số thành phần liên thông của đồ thị là số lượng các lớp

tương đương

• Đồ thị liên thông là đồ thị chỉ có 1 thành phần liên thông

Trang 26

Thành phần liên thông

Trang 27

Thành phần liên thông

• Thuật toán xác định các thành phần liên thông trong đồ thị(Tự tìm hiểu)

Trang 28

Đồ thị Euler

Cho đồ thị G=(V,E)

• Đường đi Euler: Đường đi đơn

trong G đi qua mọi cạnh của nó,

mỗi cạnh chỉ đi qua một lần được

gọi là đường đi Euler

• Chu trình Euler: Chu trình đơn

trong đồ thị G đi qua mọi cạnh

của nó, mỗi cạnh chỉ đi qua một

lần được gọi là chu trình Euler

Trang 29

Đồ thị Euler

Cho đồ thị có hướng G=(V,E)

• Đường đi có hướng Euler: Đường đi đơn có hướng qua mọi cạnh của đồ thị

• Chu trình có hướng Euler: Là chu trình đơn có hướng qua mọi cạnh của đồ thị

Đồ thị có chứa chu trình Euler gọi là đồ thị Euler

Trang 30

Đồ thị Euler

Trang 31

Đồ thị Euler

Những đồ thị nào là đồ thị Euler

Trang 32

Đồ thị Euler

Trang 34

Thuật toán tìm chu trình Euler

• Giả sử G = (V, E) là đồ thị vô hướng, liên thông, tất cả các

đỉnh đều có bậc chẵn hơn nữa G là hữu hạn Khi đó, tất cả các đỉnh đều có bậc lớn hơn 1

• Gọi chu trình Euler cần tìm là C

 Chọn 1 đỉnh bất kỳ cho vào C

Nếu G không còn cạnh nào thì dừng.

 Chọn một cạnh nối đỉnh vừa chọn với một đỉnh kề với nó theo nguyên tắc: chỉ chọn cạnh cầu nếu không còn cạnh

Trang 35

Đồ thị Euler

Trang 36

Đồ thị Euler

Trang 37

Đồ thị chứa chu trình Hamilton gọi là đồ thị Hamilton

Trang 38

Đồ thị Hamilton

Đồ thị trên không có chu trình Hamilton và đường đi Eulernhưng có đồ thị Hamilton

Trang 39

Định lý Dirac (1952)

Nếu G là 1 đơn đồ thị có n đỉnh và mỗi đỉnh của G đều cóbậc nhỏ hơn n/2 thì G là 1 đồ thị Hamilton

Trang 40

Đồ thị Hamilton

Quy tắc xác định chu trình Hamilton

• Nếu G có đỉnh bậc <2 thì G không có chu trình

Hamilton

• Nếu G có đỉnh bậc =2 thì 2 cạnh kề với nó phải nằm

trong chu trình Hamilton

• Các cạnh thừa (Ngoài 2 cạnh đã chọn trong chu trìnhHamilton phải được bỏ đi trong quá trình xác định chutrình)

Trang 43

Cây khung (Tiếp)

• Đơn đồ thị T là 1 đồ thị vô hướng n đỉnh, các mệnh đềtương đương sau: (tt)

 Hai đỉnh bất kỳ của T được nối với nhau bởi đúng 1

đường đi

 T không chứa chu trình nhưng khi thêm vào 1 cạnh bất

kỳ sẽ thu được 1 chu trình

Trang 45

Cây khung của đồ thị

• Còn được gọi là: cây bao trùm, cây tối đại

• Spanning tree

• Cây khung của đồ thị G là một đồ thị con của G, chứatất cả các đỉnh của G, liên thông và không có chu trình

Trang 46

Cây khung nhỏ nhất

• Cho G=(V,E) là đồ thị vô hướng, liên thông Mỗi cạnhe∈E được gắn một trọng số (weight) hay chi phí (const) không âm được gọi là độ dài (length) của cạnh đó

• Giả sử T = (Vt,Et) là cây khung đồ thị G Độ dài c(T) củacây khung T là tổng độ dài các cạnh của nó

c(T) = 𝑒∈𝐸 𝑐(𝑒)

• Một đồ thị mà cách cạnh được gán trọng số như trênđược gọi là đồ thị có trọng số

Trang 47

Cây khung nhỏ nhất

Trang 48

Thuật toán tìm cây khung

nhỏ nhất

• Thuật toán Prim

• Thuật toán Kruskal

Trang 49

Thuật toán Prim

• Cho G=(V,E) là một đồ thị liên thông có trọng số gồm n đỉnh

• Thuật toán xuất phát từ một cây chỉ chứa đúng một

đỉnh và mở rộng từng bước một, mỗi bước thêm một cạnh mới vào cây, cho tới khi bao trùm được tất cả các đỉnh của đồ thị

Trang 50

Thuật toán Kruskal

• Cho G=(V,E) là một đồ thị liên

Trang 51

Thuật toán tìm đường đi ngắn

nhất

• Thuật toán Dijkstra

• Thuật toán Bellman-Ford (Tự tìm hiểu)

• Thuật toán Johnson (Tự tìm hiểu) …

Trang 52

Thuật toán Dijkstra

• Tìm đường đi ngắn nhất từ đỉnh a đến đỉnh z trong đồ thị có trọng số Trọng số của cạnh (i,j) là w(i,j) > 0 và đỉnh x sẽ mang nhãn L(x) Khi kết thúc thuật giải L(z) chính là chiều dài đường đi ngắn nhất từ a đến z

• Đầu vào: Đồ thị liên thông G = (V, E) có trọng số w(i, j)

> 0 với mọi cạnh (i, j), đỉnh a và đỉnh z

• Đầu ra: Chiều dài đường đi ngắn nhất và đường đi

ngắn nhất

Trang 53

Thuật toán Dijkstra

• Phương pháp:

1 Gán L(a) = 0 Với mọi đỉnh x ≠ a gán L(x) = ∞ Kí hiệu T = V

2 Chọn v ∈T sao cho L(v) có giá trị nhỏ nhất Đặt: T = T – {v}

3 Nếu z ∄ T → Kết thúc L(z) là đường đi ngắn nhất từ a đến z Từ z

lần ngược theo các đỉnh được ghi nhớ ta có đường đi ngắn nhất Ngược lại sang bước 4.

4 Với mỗi x ∈ T kề với v gán:

L(x) = min{L(x), L(v) + w(v, x)}

Nếu L(x) này thay đổi thì ghi nhớ đỉnh v cạnh x để sau này xây dựng đường đi ngắn nhất (Quay về bước 2)

Trang 54

Thuật toán Dijkstra

• Ví dụ

Trang 55

Thuật toán Dijkstra

• Ví dụ

Trang 56

Thuật toán Dijkstra

• Ví dụ

Trang 57

Thuật toán Dijkstra

• Ví dụ

Trang 58

Thuật toán Dijkstra

• Tìm đường đi ngắn nhất:

Trang 59

Bài tập

• Tìm đường đi ngắn nhất:

Ngày đăng: 25/10/2020, 18:28

TỪ KHÓA LIÊN QUAN

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