Bài toán đỉnh cover (The vertex-cover problem):

Một phần của tài liệu Tiểu luận môn học THIẾT KẾ VÀ PHÂN TÍCH THUẬT TOÁN NP-Completeness (Trang 35)

5. CÁC BÀI TOÁN NP-ĐẦY ĐỦ (NP-COMLETE PROBLEMS ): 1 Bài toán clique ((The clique problem) :

5.2.Bài toán đỉnh cover (The vertex-cover problem):

Một đỉnh cover của một đồ thị vô hướng G = (V,E) là một tập con V’V

như thế nếu (u,v) ∈E, thì uV’ hoặc vV’ . Đó là, mỗi đỉnh “covers” của nó

vốn gắn liền các cạnh và một đỉnh cover cho G là một tập các đỉnh mà các

covers tất cả các cạnh trong E. Kích cỡ của một đỉnh cover có một đỉnh cover

{w,z} kích cỡ 2.

Bài toán đỉnh cover là để tìm một đỉnh cover của kích cỡ nhỏ nhất trong một đồ thị đã cho. Bắt đầu lại bài toán tối ưu này như một bài toán quyết định, chúng ta ước xác định khi mà một đồ thị có một đỉnh cover của một kích cỡ k đã cho. Như một ngôn ngữ, chúng ta định nghĩa :

VERTEX-COVER = {<G,k> : đồ thị G có một đỉnh cover kích cỡ k}. Theo định lý chỉ ra rằng bài toán là NP-đầy đủ.

Định lý 12 : Bài toán vertex cover là NP-đầy đủ.

Chứng minh :

Đầu tiên chúng ta chỉ ra rằng VERTEX-COVER ∈ NP. Cho rằng, chúng ta

cho một đồ thị G = (V,E) và một số nguyên k. Chứng nhận chúng ta chọn một đỉnh cover chính nó V’V. Thuật toán xác minh khẳng định rằng : |V’| = k và sau đó nó kiểm tra, cho mỗi cạnh (u,v) ∈ Eu ∈V’ hoặc vV’ . Xác minh này có thể đã biểu diễn hoàn toàn trực tiếp trong thời gian đa thức.

Chúng ta chứng tỏ rằng bài toán đỉnh cover là NP-khó bằng cách chỉ ra rằng

CLIQUE ≤ p VERTEX-COVER. Việc rút gọn này dựa trên khái niệm của “phần

bù (complement)” của một đồ thị. Cho một đồ thị vô hướng G=(V,E), chúng ta

định nghĩa phần bù của G như G=(V,E), mà E={(u,v) : u,vV, uv và (u,v)

E}. Nói cách khác, G là đồ thị chứa chính xác các cạnh mà không nằm trong

G.

Hình 15.Việc rút gọn CLIQUE thành VERTEX-COVER. Hình (a) là một đồ thị vô hướng G= (V,E) với clique V’ = {u,v,x,y}.

Hình (b) là đồ thị Gsinh ra bởi thuật toán rút gọn mà có đỉnh cover V - V’ = {w,z}

Hình 15., biểu diễn một đồ thị và phần bù của nó và các minh họa sự rút gọn từ CLIQUE đến VERTEX-COVER. Thuật toán rút gọn lấy một trường hợp như dữ liệu vào <G,k> của bài toán clique. Nó tính phần bù G , mà dễ dàng làm trong thời gian đa thức. Dữ liệu ra của thuật toán rút gọn là một trường hợp < G,|

V| - k> của bài toán đỉnh cover. Để chứng minh đầy đủ, chúng ta chỉ ra rằng sự chuyển dịch này thuật sự là một sự rút gọn. Đồ thị G có một clique kích cỡ k khi và chỉ khi đồ thị G có một đỉnh cover kích cỡ |V| - k.

Cho rằng G có một clique V’V với |V’| = k. Chúng ta khẳng định rằng, V - V’ là một đỉnh cover trong G. Lấy bất kỳ cạnh (u,v) trong E, thì (u,v)E, mà ngụ ý rằng tại ít nhất một đỉnh của u hoặc vV’, khi mỗi cặp các đỉnh trong V’

là đã kết nối bởi một cạnh của E. Tương đương, tại ít nhất một đỉnh của u hoặc v

trong V - V’, mà nghĩa là cạnh (u,v) là đã được covered bởi V - V’. Khi (u,v) đã chọn bất kỳ từ E, mỗi cạnh của E được covered bởi một đỉnh trong V - V’. Sau đó, tập V - V’ có kích cỡ |V| - k, thành lập từ một đỉnh cover cho G.

Ngược lại, cho rằng G có một đỉnh cover V’ ⊆ V, mà |V’| = |V| - k. Thì, với mọi u,v ∈ V, nếu (u,v)E thì uV’ hoặc vV’ hoặc cả hai u,vV’.

Trái ngược của sự dính líu này là với mọi u,vV, nếu uV’vV’

thì (u,v)E. Nói cách khác, V - V’ là một clique và nó có kích cỡ |V| - |V’| = k. Khi VERTEX-COVER là NP-đầy đủ, chúng ta không mong chờ để tìm một thuật toán thời gian đa thức cho việc tìm một kích cỡ nhỏ nhất đỉnh cover. Phần 35.1 sẽ trình bày một thời gian đa thức “thuật toán gần đúng (approximate algorithm)”, tuy nhiên, mà các kết quả “gần đúng” các giải pháp cho bài toán đỉnh cover, kích cỡ của một đỉnh cover kết quả bởi thuật toán là tại hầu hết hai lần kích cỡ nhỏ nhất của một đỉnh cover.

Vì thế, chúng ta không nên chỉ đặt hy vọng bởi vì một bài toán là NP-đầy đủ. Có thể là một thuật toán gần đúng thời gian đa thức mà chứa gần-tối ưu các giải pháp, thậm chí việc tìm một giải pháp tối ưu là NP-đầy đủ.

Một phần của tài liệu Tiểu luận môn học THIẾT KẾ VÀ PHÂN TÍCH THUẬT TOÁN NP-Completeness (Trang 35)