2012-12-17 31 views
6

Cho một đồ thị G, tại sao sau thuật toán tham lam không được bảo đảm để tìm maximum independent set của G:Tại sao thuật toán tham lam lại không tìm được tập hợp đồ thị độc lập tối đa?

Greedy(G): 
S = {} 
While G is not empty: 
    Let v be a node with minimum degree in G 
    S = union(S, {v}) 
    remove v and its neighbors from G 
return S 

tôi tự hỏi ai đó có thể chỉ cho tôi một ví dụ đơn giản của một đồ thị mà thuật toán này không?

+0

Tôi tự hỏi, Nếu thuật toán này thất bại, thuật toán phù hợp để giải quyết vấn đề là gì? –

+0

@TravelingSalesman Tôi nghĩ bạn có thể tìm thấy câu trả lời trong cùng một [bài viết wikipedia] (http://en.wikipedia.org/wiki/Independent_set_%28graph_theory%29#Finding_maximum_independent_sets). Như tôi thấy, thuật toán tham lam này tìm thấy một tập độc lập và tập hợp đó là tương đối lớn, vì vậy bạn có thể sử dụng nó để tìm giải pháp tối ưu. Tôi không thực sự là một chuyên gia, vì vậy xin đừng tin tôi :) –

+0

Không sao đâu. Cảm ơn bạn. –

Trả lời

7

Tôi không chắc chắn đây là ví dụ đơn giản, nhưng đây là một trong những thất bại: http://imgur.com/QK3DC

Đối với bước đầu tiên, bạn có thể chọn B, C, D, F hoặc kể từ khi tất cả họ đều có trình độ 2. Giả sử chúng ta loại bỏ B và những người hàng xóm của nó. Điều đó lá F và D với mức độ 1 và E với mức độ 2. Trong hai bước tiếp theo, chúng tôi loại bỏ F và D và kết thúc với một kích thước thiết lập của 3, đó là tối đa.

Thay vào đó, giả sử bước đầu tiên, chúng tôi đã xóa C và các nước lân cận. Điều này khiến chúng ta với F, A và E, mỗi cái có kích thước bằng 2. Chúng ta lấy một trong hai thứ này, và đồ thị trống và giải pháp của chúng ta chỉ chứa 2 nút, như chúng ta đã thấy, không phải là tối đa .

+0

Cảm ơn bạn rất nhiều! Tôi không chắc chắn nếu điều này là theo quy tắc Q & A, nhưng tôi có một câu hỏi khác. Giả sử rằng mỗi đỉnh của một đồ thị có một số các cạnh sự cố khác nhau. Giả định đó có đủ cho thuật toán tham lam hoạt động chính xác không? –

+3

Đó là một điều kiện không thể, thực sự (ngoại trừ trong trường hợp thoái hóa của 1 nút). Nó khá dễ dàng để chứng minh. Giả sử có n nút, tất cả đều có một mức độ khác nhau. Mức độ lớn nhất mà nút có thể có là n-1. Điều đó có nghĩa là các nút _must_ có độ {0, 1 ... n-1}. Tuy nhiên, không thể có nút có độ 0 và nút có độ n-1 (nút không được kết nối với bất kỳ nút nào và nút được kết nối với mọi nút). Do đó, trong bất kỳ biểu đồ nào có ít nhất 2 nút, ít nhất 2 nút phải có số lượng cạnh cố định bằng nhau. – gms7777

+0

Cảm ơn bạn! Tôi đã không suy nghĩ khi tôi đăng một bình luận :) –

Các vấn đề liên quan