Chứng minh rằng chẩn đoán đồ thị theo hướng là NP-hard


11

Tôi có một bài tập về nhà mà tôi đã vùi đầu trong một thời gian và tôi đánh giá cao bất kỳ gợi ý nào. Đó là về việc chọn một vấn đề đã biết, tính đầy đủ của NP đã được chứng minh và xây dựng một sự giảm thiểu từ vấn đề đó sang vấn đề sau tôi sẽ gọi DGD (chẩn đoán đồ thị theo hướng).

Vấn đề

Một thể hiện của DGD bao gồm các đỉnh V = tôi . O . B , cạnh đạo diễn E và một số nguyên dương k . Có ba loại đỉnh: đỉnh chỉ có cạnh I , đỉnh chỉ có cạnh O và đỉnh có cả cạnh B đến và đi . Hãy hơn nữa D = O × tôi .(V,E,k)V=I.O.BEkIOBD=O×I

Bây giờ, vấn đề là liệu chúng ta có thể bao gồm tất cả các nút với tối đa phần tử của D không , tức làkD

SD,|S|k. vV. (v1,v2)S. v1vv2

nơi phương tiện đó có một con đường hướng từ một đến b .abab


Tôi nghĩ rằng vấn đề Tập hợp thống trị là vấn đề tôi nên giảm bớt, bởi vì điều này cũng liên quan đến việc bao gồm một tập hợp con của các nút với một tập hợp con khác. Tôi đã thử tạo một cá thể DGD bằng cách trước tiên tạo hai nút cho mỗi phần tử của tập hợp thống trị, sao chép tất cả các cạnh và sau đó đặt của đối tượng DGD bằng với đối tượng DS.k

Giả sử một cá thể DS đơn giản với các nút , 23 và các cạnh ( 1 , 2 )( 1 , 3 ) . Đây là một ví dụ có với k = 1 ; tập hợp thống trị trong trường hợp này chỉ bao gồm nút 1 . Giảm với phương pháp vừa mô tả, điều này sẽ dẫn đến một trường hợp DGD với hai con đường ( 1 2 1 ' )( 1 3 1 ' )123(1,2)(1,3)k=11(121)(131); để trang trải tất cả các nút, chỉ cần một cặp sẽ là đủ. Điều này sẽ hoạt động hoàn hảo, vì thực tế không phải là tập hợp thống trị của thể hiện DS, dĩ nhiên, không thể được xác định trong thời gian đa thức, đây là một yêu cầu ở đây.(1,1)

Tôi đã phát hiện ra rằng có rất nhiều cách đẹp để chuyển các cạnh và đỉnh khi giảm, nhưng vấn đề của tôi là bằng cách nào đó bày tỏ DGD của về DS của k . Thống trị Set dường như là một vấn đề phù hợp để giảm bớt, nhưng vì điều này tôi nghĩ rằng có lẽ tôi nên cố gắng giảm từ một vấn đề không có k như vậy ?kkk


Chào mừng bạn Tôi đã cố gắng làm rõ các tuyên bố vấn đề; đây có phải là ý của bạn không? Btw, bạn có thể muốn chọn tên người dùng dễ nhận biết hơn "user8879". :)
Raphael

Vâng, cảm ơn, đây thực sự là một phiên bản nhỏ gọn hơn.
dùng8879

Câu trả lời:


9

Thay vào đó, hãy giảm từ NP- Complete SET-COVER .

S1,,Sm{1,,n}kN(V,E,k)

  • V={s1,,sm,o1,,om,e1,,en,o}
  • E={(si,oi)i=1,,n}{(si,ej)jSi}{(ej,o)j=1,,n}
  • k=m+k

m(si,oi)oikm(si,o)ej

p


{1,2,3,4,5}S={{1,2,3},{2,4},{3,4},{4,5}}

thí dụ
[ nguồn ]


1
Điều này gần như đúng, trong đó tôiB thực sự được bao phủ hoàn toàn, nhưng O thì không. Ví dụ set-cover là một thể hiện có cho k = 2, nhưng trong trường hợp DGD k = 2 để lại s2s3 . Tôi nghĩ rằng điều này có thể được giải quyết bằng cách tự động thêm một cạnh từ mỗi nút trong O thành o .
dùng8879

(si,o)siS

Có ngay bây giờ: tạo một nút bổ sung trong B cho mỗi nút trong O , sau đó liên kết nó với nút tương ứng trong O và đến o . Trong ví dụ này, bạn nhận được bốn đường dẫn bổ sung (s1 -> s1 '-> o, v.v.). Cuối cùng, sau khi tăng k với bốn thì nên hoàn thành.
dùng8879

si
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.