✨Chu trình trung bình nhỏ nhất

Chu trình trung bình nhỏ nhất

Trong lý thuyết đồ thị, bài toán chu trình trung bình nhỏ nhất yêu cầu tìm trong một đồ thị có hướng cho trước một chu trình có trọng số trung bình nhỏ nhất. Trọng số trung bình của một chu trình là tỉ số giữa tổng trọng số các cung của chu trình và số cung của nó. Bài toán này có nhiều ứng dụng trong lý thuyết đồ thị, và phân tích hệ thống sự kiện rời rạc.

Định nghĩa

Xét đồ thị có hướng G = (V, E) và một hàm trọng số w:E\rightarrow \mathbb{R}. Trọng số của một chu trình C, ký hiệu là w(C), là tổng trọng số các cung của C, :w(C) = \sum_{e\in C}w(e) Trọng số trung bình của C được định nghĩa là tỉ số \frac{w(C)}.

Thuật toán

Cho đơn giản, mở rộng G bằng cách thêm vào một đỉnh gốc s có cung độ dài 0 tới tất cả các đỉnh khác. Do G không có thêm chu trình nào nên chu trình trung bình nhỏ nhất là không đổi.

Thuật toán Karp

Có rất nhiều thuật toán cho bài toán tìm chu trình trung bình nhỏ nhất. Thuật toán đầu tiên cho bài toán này là của Karp. Định nghĩa d_t(s, u) là độ dài đường đi ngắn nhất từ s tới u gồm đúng t cung. Nếu không có đường đi nào gồm đúng t cung thì dt(s,u) = \infty. Định nghĩa, :\mu^* = \min{v\in V} \max_{0\le k\le n-1} \frac{d_n(s, v) - d_k(s,v)}{n-k} Có thể chứng minh rằng \mu^ chính là trung bình nhỏ nhất của các chu trình trong G. Để tính \mu^, thuật toán tính tất cả các giá trị dt(s,u)~\forall u\in V, 0\le t\le n theo công thức sau: :d{t+1}(s,v) = \min_{u\in V} d_t(s,u) + w(u, v) Thời gian thực thi của thuật toán là O(VE).