Độ cứng NP của chuyên môn Set Cover


8

Là vấn đề sau NP-cứng?

Cho một tập của số thực (mục tiêu) x 1 , ... , x N và một "đinh ba" được xác định bởi hai quãng đường một , b từ trung tâm của chiếc đinh ba, số lượng tối thiểu là gì K vị trí p 1 , ... , p K của cây đinh ba để bao gồm tất cả các mục tiêu, tức là K k = 1 { p k - a , p k , p k + b } { xNx1,,xNabKp1,Giáo dục,pK

k= =1K{pk-một,pk,pk+b}{x1,Giáo dục,xN}.

Rõ ràng, đây là một trường hợp đặc biệt của vấn đề bộ bìa : Xem xét tất cả các bộ , với p k{ x n + t | n { 1 , ... , N } , t { a , 0 , - b } }{pk-một,pk,pk+b}pk{xn+t|n{1,Giáo dục,N},t{một,0,-b}}đại diện cho tất cả các vị trí tiềm năng "có liên quan", chúng tôi tìm kiếm số lượng tập hợp tối thiểu bao trùm vũ trụ . Tương tự, chúng ta có thể biểu diễn bài toán dưới dạng biểu đồ lưỡng cực của các nút vị trí và nút đích và xem xét bài toán nhấn .{x1,Giáo dục,xN}

Lưu ý rằng vấn đề không phải là NP-hard nếu cây đinh ba mất một trong những "trò đùa" của nó: Sau đó, mỗi mục tiêu có thể được bao phủ từ 2 vị trí và mỗi vị trí bao phủ tối đa 2 mục tiêu, do đó biểu đồ lưỡng cực tương ứng của các vị trí và mục tiêu tiềm năng là một liên hiệp các con đường. Trong mỗi đường dẫn, thật dễ dàng để xác định một bộ nhấn tối thiểu (cụ thể là các nút vị trí bên trong).

Nhưng trường hợp đinh ba có khó không?


4
Tôi cho rằng điều này có thể được thực hiện trong thời gian đa thức bằng cách sử dụng lập trình động. Bạn đã thử chưa?
James King

Tôi đã thử lập trình động, tôi không có thành công với nó. Vấn đề là các vị trí có thể được liên kết với nhau thông qua các mục tiêu xuyên suốt (nghĩ về rất nhiều mục tiêu có khoảng cách a và b), do đó, việc thay đổi một mục tiêu có thể có hiệu ứng "toàn cầu". Điều này làm cho khó phân chia vấn đề hoặc giảm trường hợp có thêm một mục tiêu / vị trí cho trường hợp trước đó. Mặt khác, bản chất "cục bộ" về cách các vị trí được liên kết với nhau không cho phép giảm dễ dàng, ví dụ như Set Cover. Cảm giác của tôi vẫn nói với tôi rằng vấn đề là NP-hard, nhưng tôi thực sự không chắc chắn.
Jan Pöschko

1
Xây dựng ba mảng L, M, và R. Hãy L [i] (tương ứng, M [i], R [i]) là kích thước của bộ nhỏ nhất của cây đinh ba mà a) cây đinh ba nhấn tất cả các điểm và b) x i bị đánh bởi ngạnh bên trái (tương ứng, giữa, phải) của cây đinh ba. Ba mảng này sẽ giúp phát triển một thuật toán lập trình động cho vấn đề. x1Giáo dụcxTôixTôi
James King

@James: Tôi sợ rằng tôi hoàn toàn thiếu một cái gì đó, nhưng bạn cũng không phải phân biệt điểm nào x_ {i + 1}, trên mạng, x_N là những trò chơi tình cờ được bao phủ bởi các cây đinh ba được sử dụng cho đến nay?
Tsuyoshi Ito

@TsuyoshiIto Có chắc chắn. Tôi chỉ đưa ra một gợi ý nhỏ. Bạn sẽ phải kiểm tra những thứ như vậy khi điền vào các mảng, nhưng sẽ chỉ mất thời gian liên tục cho mỗi điểm.
James King

Câu trả lời:


2

Tổng quat

Vấn đề này là NP-hard; chính xác hơn, vấn đề quyết định liên quan (trong đó chúng tôi hỏi liệu một số mục tiêu của các vụ tai nạn có thể bao gồm tất cả các x i đã cho hay không) là NP-hard. Chúng tôi sẽ đề cập đến vấn đề quyết định này là Vấn đề che giấu cây số.kxTôi

Để chứng minh rằng Bài toán che phủ cây đinh ba số là NP-hard, chúng tôi giới thiệu bài toán trung gian sau, chúng tôi sẽ gọi Bài toán che lưới tam giác lưới:

Input : Một tập hợp hữu hạn của cặp toạ độ nguyên và một giá trị số nguyên k .SZ+×Z+k

Đầu ra : Có hoặc không, với đầu ra là có khi và chỉ khi tồn tại tập với | T | k đến nỗi S ( x , y ) T { ( x , y ) , ( x , y + 1 ) , ( x + 1 , y ) }TZ×Z|T|kS(x,y)T{(x,y),(x,y+1),(x+1,y)}

Suy nghĩ về vấn đề này bằng đồ thị, chúng tôi đang cung cấp một tập hợp con của các mạng số nguyên và hỏi để trang trải tất cả các điểm trong tập hợp con này với phụ length- ( 1 , 1 , ktam giác vuông theo một hướng cụ thể (cụ thể là các tam giác này phải có các đỉnh có dạng(x,y),(x,y+1)(x+1,y)). Chúng tôi được yêu cầu nói có nếu và chỉ khi điều này là có thể.(1,1,2)(x,y)(x,y+1)(x+1,y)

Để chỉ ra rằng Cover Trident Numerical là NP-hard, chúng tôi cung cấp hai mức giảm: giảm từ Planar 3SAT sang Grid Triangle Cover và giảm từ Grid Triangle Cover sang Numerical Trident Cover. Cùng nhau, những điều này hợp thành việc giảm từ bài toán NP-hard Planar 3SAT sang bài toán Cover Trident Cover số, ngụ ý rằng Cover Trident Numerical là NP-hard.

Lưu ý rằng vì chúng tôi đang sử dụng các số thực trong Bài toán bao gồm đinh ba số, nên vấn đề về mã hóa và kích thước đầu vào sẽ xuất hiện. Chúng tôi tránh vấn đề này bằng cách luôn sử dụng số có dạng trong trường hợp số học Trident Bìa của chúng tôi, cho phép một mã hóa hiệu quả đơn giản bằng cách mã hóap+qp+q2 như(p,q). Trong thực tế, vấn đề vẫn còn khó khăn ngay cả khi các số bị hạn chế hơn nữa là số nguyên, mặc dù việc giảm đó đòi hỏi nhiều công việc hơn một chút, và do đó được bỏ qua ở đây.p+q2(p,q)

Giảm 1: Từ Vỏ tam giác lưới đến Vỏ đinh ba số.

Giả sử chúng ta được cung cấp một ví dụ của bài toán Grid Triangle Cover bao gồm một tập và một số k .SZ+×Z+k

Sau đó chúng ta xây dựng một thể hiện Numerical Trident Cover (bao gồm một danh sách các số thực , một cặp một , b , và một số mục tiêu của cây đinh ba k ' ) như sau.x1,...,xNmột,bk'

Đặt các phần tử của s 1 = ( p 1 , q 1 ) , s 2 = ( p 2 , q 2 ) , . . . , s | S | = ( p | S | , q | S | ) . Với mỗi i từ 1 đến N = | S | hãy x iSS1= =(p1,q1),S2= =(p2,q2),...,S|S|= =(p|S|,q|S|)Tôi1N= =|S| . Hãy đểmột=1b=xTôi= =-pTôi+qTôi2một= =1 . Cuối cùng, chok=k. Đây là ví dụ đầu ra của Numerical Trident Cover.b= =2k'= =k

Việc giảm này rõ ràng là một hoạt động thời gian đa thức, vì vậy điều duy nhất còn lại cho thấy là việc giảm là bảo tồn câu trả lời.

Để làm điều này, hãy xem xét những nơi "hợp lý" để đặt các cây đinh ba. Những nơi duy nhất mà chúng ta có thể đặt một cây đinh ba để nó chạm vào ít nhất một là các vị trí có dạng x i , x i + a hoặc x i - b . Đối với mỗi x i s, ba giá trị này là tất cả các hình thức - v một + v b xTôixTôixTôi+mộtxTôi-bxTôi cho một số nguyênvavb. Như vậy chúng ta có thể hạn chế sự chú ý của chúng tôi đến các số có dạng-vmột+vb-vmột+vb2vmộtvb . Xác định song ánhfgiữa các thiết lập của tất cả cácp+q-vmột+vb2f và các thiết lập của tất cả các cặp số nguyên theo quy tắcf(-vmột+vbp+q2. Lưu ý rằngfánh xạxiđếnsi.f(-vmột+vb2)= =(vmột,vb)fxTôiSTôi

Cũng lưu ý rằng nếu một đinh ba tọa lạc tại sau đó ba ngạnh của nó được đặt tại-(p+1)+q-p+q2 ,-p+q-(p+1)+q2-p+(q+1)-p+q2 . Nói cách khác, hình ảnh của ba ngạnh dướifbao gồm các điểm(p,q),(p+1,q)(p,q+1). Hình ảnh một đinh ba dướiflà chính xác một hình tam giác có dạng chúng tôi đang sử dụng để trang trải các giá trị trongS. Tương tự, mọi ánh xạ tam giác được định hướng đúng đến một đinh ba dướif - 1 . Trong thực tế, các hình tam giác và đinh ba ở trạng thái chính xác theof.-p+(q+1)2f(p,q)(p+1,q)(p,q+1)fSf-1f

là tính từ, nên rõ ràng trường hợp một số bộ ba bao gồm { x 1 , . . . , x | S | } nếu và chỉ khi hình ảnh của các đinh ba dưới f che S = { s 1 , . . . , s | S | } = { f ( x 1 ) , . . . , f ( x | S |f{x1,...,x|S|}f . Sau đó, từ hình ảnh của một chiếc đinh ba dưới f là một phụ length- ( 1 , 1 S= ={S1,...,S|S|}= ={f(x1),...,f(x|S|)}fhình tam giác trong định hướng đúng đắn, chúng ta có thể kết luận rằng chúng ta có thể trang trải cácxis vớikcây đinh ba khi và chỉ khi chúng ta có thể trang trải các bộSvớikphụ length-(1,1(1,12)xTôikSkhình tam giác theo hướng thích hợp. Chúng tôi kết luận rằng giảm là bảo tồn câu trả lời.(1,12)

Giảm 2: Từ Planar 3SAT sang Grid Triangle Cover.

Đối với việc giảm này, chúng tôi được cung cấp một thể hiện 3SAT dưới dạng biểu đồ lưỡng cực phẳng. Các đỉnh trong một phần tương ứng với các biến và các đỉnh của phần kia, mỗi độ 3, tương ứng với các mệnh đề. Mỗi cạnh được dán nhãn là dương hoặc âm, cho biết cách nào biến được đưa vào mệnh đề (tích cực hoặc tiêu cực).

(S,k)Sk

Đầu tiên chúng tôi mô tả một dây. Một dây bao gồm một chuỗi gồm một số điểm lẻ (trong mạng số nguyên) trong đó đầu tiên và cuối cùng được gọi là các đầu cuối sao cho mỗi cặp liên tiếp có thể được bao phủ bởi một hình tam giác mà không có tam giác chạm vào bất kỳ điểm nào khác trong dây. Ví dụ, hãy xem xét các dây sau:

xoo       x
   o       o
   o ooo   o
   o o  oooo
    oo

pp+12

Ở đây chúng tôi chỉ ra hai cách để bao gồm ví dụ từ phía trên (trong đó hai điểm được gắn nhãn cùng một số nếu chúng được bao phủ bởi cùng một tam giác):

x11       9
   2       9
   2 556   8
   3 4  6778
    34

hoặc là

112       x
   2       9
   3 566   9
   3 5  7788
    44

Một mối quan tâm là chúng ta có thể muốn kết nối hai thiết bị đầu cuối với một dây nhưng không thể làm như vậy bởi vì bất kỳ "dây" nào giữa hai thiết bị đầu cuối đó sẽ có chiều dài thậm chí. Tuy nhiên, đó không phải là trường hợp: chúng ta luôn có thể chọn tuyến đường cho dây để làm cho dây đó có chiều dài lẻ (và do đó là dây hợp lệ). Thay thế bất kỳ đoạn dây ngang nào có chiều dài 6 bằng đoạn dây 7 chiều dài sau đây có thể khắc phục tính chẵn lẻ của chiều dài dây:

oo  oo
  ooo 

Tiếp theo chúng tôi giới thiệu một tiện ích mệnh đề. Mệnh đề chỉ đơn giản là kết nối một trong các đầu cuối của ba dây theo cách mà nếu một trong các dây được thỏa mãn sao cho đầu cuối chung được che, thì tam giác bao phủ đầu cực chung đó không bao phủ bất kỳ điểm nào từ các dây khác:

      o
      o
      o
   ooox
       ooo

Để thiết bị đầu cuối dùng chung được bảo hiểm, ít nhất một trong ba dây phải thỏa mãn sao cho các tam giác thỏa mãn dây không che đầu cực không chia sẻ của dây.

Cuối cùng, chúng tôi giới thiệu các tiện ích biến. Tiện ích biến là một vòng lặp giống như dây lớn (có độ dài chẵn) với các đầu cuối tùy ý xuất hiện ở bên cạnh mỗi ba hàng như sau:

oo
o o
o ox
o o
o o
o ox
o o
o o
o ox
o o
o o
o ox
o o
 oo

Biến có thể phát triển theo chiều dọc để phù hợp với số lượng thiết bị đầu cuối cần thiết Các thiết bị đầu cuối trên các hàng chẵn lẻ tương ứng với các lần xuất hiện tích cực của biến và các thiết bị trên các hàng chẵn lẻ tương ứng với các lần xuất hiện âm. Cũng như dây, các điểm không đầu cuối của tiện ích biến có thể được thỏa mãn bằng cách sử dụng số lượng tam giác tối thiểu (một nửa số điểm trong vòng lặp) theo đúng hai cách. Hai cài đặt này bao gồm tất cả các thiết bị đầu cuối xảy ra tích cực hoặc tất cả các thiết bị đầu cuối xảy ra tiêu cực của tiện ích biến.

Đặt tất cả lại với nhau là khá rõ ràng: chúng tôi xây dựng biểu đồ lưỡng cực bằng cách sử dụng các tiện ích thay đổi, tiện ích mệnh đề (thiết bị đầu cuối dùng chung) và dây kết nối các thiết bị đầu cuối. Tổng số tam giác cần thiết để bao phủ các điểm không đầu cuối của dây và biến sau đó là số tam giác đích.

Rõ ràng chúng ta không thể bao phủ toàn bộ lưới với ít hơn các hình tam giác đó. Hơn nữa, chúng ta có thể yên tâm rằng các điểm không đầu cuối được bao phủ bởi vì các biến và dây sẽ được thỏa mãn theo một trong hai cách được mô tả. Do đó, nhiệm vụ duy nhất là đáp ứng các thiết bị đầu cuối.

Tại mỗi biến, tất cả các cực dương hoặc tất cả các cực xuất hiện âm sẽ được thỏa mãn bởi tiện ích biến. Các thiết bị đầu cuối khác tại tiện ích phải được thỏa mãn bởi các dây kèm theo của chúng. Sau đó, các đầu cuối mệnh đề có thể được thỏa mãn khi và chỉ khi mọi mệnh đề được gắn vào ít nhất một dây mà đầu cuối khác không sử dụng hết dây (một dây có đầu cuối khác được thỏa mãn bởi tiện ích biến được đính kèm của nó). Nói cách khác, tất cả các thiết bị đầu cuối đều hài lòng khi và chỉ khi việc gán biến theo cài đặt của các tiện ích biến thỏa mãn mọi mệnh đề.

Như bạn có thể thấy, phiên bản Grid Triangle Cover được sản xuất là một thể hiện có khi và chỉ khi đối tượng Planar 3SAT đầu vào là một thể hiện có. Vì mức giảm này cũng là thời gian đa thức (tất cả các tiện ích đều yêu cầu đa thức không gian theo kích thước của thể hiện đầu vào), chúng tôi kết luận rằng chúng tôi có mức giảm hợp lệ.

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.