Trên biểu đồ , chúng tôi thực hiện quy trình sau:
- Ban đầu, tất cả các nút trong không màu.
- Trong khi có các nút không màu trong , mỗi nút không màu thực hiện như sau:
- Chọn một số thực ngẫu nhiên và gửi nó cho tất cả các hàng xóm của nó;
- So sánh số của nó với số hàng xóm của nó; nếu số riêng của nó là nhỏ nhất, thì hàng xóm sẽ tự tô màu đỏ và thông báo cho tất cả các hàng xóm.
- Nếu một hàng xóm trở thành màu đỏ, thì nút này tự sơn màu đen.
Ví dụ:
- Giả sử đồ thị là một đường dẫn: abcde.
- Giả sử các số trong bước đầu tiên là: 1-2-0-3-4.
- Các nút a và c được sơn màu đỏ; các nút b và d được sơn màu đen.
- Trong bước thứ hai, chỉ có nút e vẫn không bị đổi màu; nó là tối thiểu tầm thường để nó tự sơn màu đỏ.
CÂU HỎI CỦA TÔI LÀ: số bước trung bình mà quá trình này thực hiện trước khi tất cả các nút được tô màu là gì?
Tính toán hiện tại của tôi đưa tôi đến ước tính , có vẻ như quá tốt để trở thành sự thật. Đây là tính toán:
Xét một nút với hàng xóm d . Xác suất mà v sẽ nhỏ nhất trong số các lân cận của nó là 1 / ( d + 1 ) . Nếu điều này xảy ra, thì v và tất cả các hàng xóm của nó sẽ được tô màu. Vì vậy, số đỉnh dự kiến được tô màu mỗi bước là ( d + 1 ) / ( d + 1 ) = 1 trên mỗi nút . Do đó, tổng số đỉnh dự kiến được tô màu mỗi bước là O ( n ) , do đó, trong O ( 1 thời gian tất cả các nút sẽ được tô màu.
Nếu phân tích này là sai (có lẽ là trường hợp), thì số bước thực tế là bao nhiêu?
EDIT: Theo ghi nhận của @JukkaSuomela, thuật toán được mô tả ở trên là do Metivier et al, 2011 và được giải thích và phân tích trong các ghi chú bài giảng này . Họ chứng minh rằng thời gian chạy là .
Nhưng, tôi vẫn không tin rằng phân tích này chặt chẽ. Trong tất cả các đồ thị tôi đã kiểm tra, có vẻ như thuật toán hoàn thành trong thời gian dự kiến .
Câu hỏi của tôi bây giờ là: đồ thị trường hợp xấu nhất trong đó thuật toán này thực sự yêu cầu các bước trung bình là gì?