T là cây.

Một phần của tài liệu Khóa luận tốt nghiệp toán Những vấn đề cơ bản và một số thuật toán trên đồ thị (Trang 48)

2- T không chứa chu trình vàcón — 1 cạnh.

3- T liên thông và có n — 1 cạnh.

4- T liên thông và mỗi cạnh của nó đều là cầu.

5- Hai đỉnh bất kỳ của T được nối với nhau bởi đúng 1 đường đi. 6- T không chứa chu trình nhưng nếu thêm vào nó một cạnh ta thu

23 được đúng một chu trình.

3.2. Bài toán cây khung cực tiểu

24 Giả sử G = (y,E,w) là đồ thị liên thông có trọng số với

w:E—>R

25 là hàm trọng số cạnh.Với mỗi cây

khung T = (V,E') của đồ thịG, ta

26 định nghĩa độ dài của cây khung T, ký hiệu w(T), là giá trị: w{T) = Ỵjw(e).

27 eeE'

28 Bài toán: Cho đồ thị ừọng số G = (У, E, w). Hãy tìm một cây khung T - (V,E') của G sao cho w(T) của câu T là nhỏ nhất trong số các độ dài của các cây khung của G.

29 Sau đây, ta sẽ xét hai thuật toán thông dụng để giải bài toán cây khung cực tiểu của đồ thị liên thông có trọng số.

3.2.1. Thuật toán Kruskal

30 Tư tưởng: Thuật toán Kruskal không phải xét các cạnh với thứ tự tuỳ ý mà xét các cạnh theo thứ tự đã sắp xếp theo trọng số.

31 Giả sử đồ thị G = (У, E,w) liên thông có trọng số với n đỉnh và w : E —» К. Khởi tạo cây T ban đầu không có cạnh nào. Xét tất cả các cạnh của đồ thị từ cạnh có ữọng số nhỏ đến cạnh có trọng số lớn, nếu việc thêm cạnh đó vào T không tạo thành chu trình đơn trong T thì kết

32 nạp thêm cạnh đó vào T. Cứ làm như vậy cho tới khi:

- Hoặc đã kết nạp được ft - 1 cạnh vào trong T thì ta được T là cây khung nhỏ nhất.

- Hoặc chưa kết nạp đủ ft - 1 cạnh nhưng hễ cứ kết nạp thêm một cạnh bất kỳ trong số các cạnh còn lại thì sẽ tạo thành chu trình đơn. Trong trường họp này đồ thị G là không liên thông, việc tìm kiếm cây khung thất bại. Thuật toán Kruskal được mô tả như sau:

33 procedure

Kruskal; begin

34 T:= 0;

Một phần của tài liệu Khóa luận tốt nghiệp toán Những vấn đề cơ bản và một số thuật toán trên đồ thị (Trang 48)