
Bộ môn Khoa học Dữ liệu
Thực hành Toán rời rạc Trang 3
CHƯƠNG 8: ĐỒ THỊ DẠNG CÂY
Mục tiêu:
- Tìm hiểu về đồ thị cây: định nghĩa, tính chất, các loại cây, các thuộc tính của cây.
- Các thuật toán xử lý cây: duyệt cây, cây khung và cây khung tối thiểu.
- Giới thiệu ứng dụng cây trong thực tiễn xử lý bằng Python.
- Các thao tác lệnh bổ sung với gói NetworkX.
Nội dung chính:
1. Đồ thị cây (Tree)
Bài này giới thiệu về một loại đồ thị đặc biệt, đó là cây. Cây là một dạng đồ thị đặc biệt nên nhìn
chung cây sẽ áp dụng được tất cả các thuật toán xử lý của đồ thị như tìm đường đi ngắn nhất,…
Ngoài ra, cây có riêng những tính chất và các bài toán riêng.
1.1. Định nghĩa, tính chất
- Cây (tree): là một đồ thị liên thông và không có chu trình.
- Rừng (forest): một rừng có cây. Mỗi cây là một đồ thị liên thông, do đó, rừng là đồ thị
có thành phần liên thông. Mỗi thành phần liên thông là 1 cây.
- Cây có hướng là một đồ thị có hướng. Trong cây có hướng, một đỉnh được gọi là rễ (root)
nếu từ đó có thể có đường đi đến đến các đỉnh còn lại.
1.2. Định lý cơ bản về cây
Những điều sau đây là tương đương:
i. G là cây.
ii. Giữa 2 cặp đỉnh bất kỳ có 1 dây chuyền duy nhất nối chúng với nhau.
iii. G liên thông tối tiểu, nghĩa là nếu xóa đi 1 cạnh của G thì không còn liên thông nữa.
iv. Thêm một cạnh vào giữa 2 đỉnh không kề nhau thì ta sẽ có một chu trình sơ cấp duy nhất.
v. G liên thông và có n-1 cạnh.
vi. G không có chu trình và có n-1 cạnh.
1.3. Cây khung và cây khung tối thiểu
Cây khung hay còn gọi là cây tối đại (cây bao trùm/chùm): Cho một đồ thị = (, ), một đồ
thị cây = (, ) được gọi là cây khung của nếu là đồ thị con của đồ thị : có mọi đỉnh
của đồ thị G và ⊂ .
Cây khung nhỏ nhất: Xét G có trọng số cạnh, khi đó, nếu tổng các cạnh của cây là nhỏ nhất thì
đó là cây khung của đồ thị G. Cây khung nhỏ nhất được minh họa với các ứng dụng như: xây
dựng mạng lưới ống nước/dây điện ngắn nhất tại các thành phố hoặc khu vực dân cư.