Có phải là một quy tắc rằng các vấn đề riêng biệt là NP-hard và các vấn đề liên tục không?


27

Trong giáo dục khoa học máy tính của tôi, tôi ngày càng nhận thấy rằng hầu hết các vấn đề riêng biệt là NP-đầy đủ (ít nhất), trong khi tối ưu hóa các vấn đề liên tục hầu như luôn luôn có thể dễ dàng đạt được, thường là thông qua các kỹ thuật gradient. Có ngoại lệ cho điều này?


14
Chắc chắn là có, rất nhiều trong số họ. Bipartite và khớp chung, và các phép cắt min là ba bài toán rời rạc thời gian đa thức cổ điển. Nhiều vấn đề tối ưu hóa không lồi liên tục là NP-hard: tìm đường kính của tập lồi hoặc tính toán định mức tiêm của một tenxơ 3 chiều.
Sasho Nikolov

6
Đây là một vấn đề tối ưu hóa liên tục đơn giản mà NP-khó giải quyết: cstheory.stackexchange.com/questions/14630/ mẹo
Jukka Suomela

8
Tôi không chắc bạn có vấn đề gì trong đầu, nhưng nhiều vấn đề liên tục được "giải quyết" bằng phương pháp gradient không thực sự "giải quyết": phương pháp chỉ tìm thấy một số loại tối ưu cục bộ.
Suresh Venkat

1
Tất cả các câu trả lời cho đến nay dường như là phản mẫu, nhưng thật tuyệt khi thấy một số trường hợp quy tắc này dường như không đúng. Hai điều mà tôi nghĩ đến là lập trình tuyến tính so với lập trình số nguyên và tối ưu hóa lồi so với tối đa hóa mô đun.
usul

13
Tôi nghĩ rằng toàn bộ điều rời rạc và liên tục là một cá trích đỏ. Một vấn đề phải có cấu trúc rất đặc biệt để có thể giải quyết một cách hiệu quả. Tôi nghĩ rằng sự khác biệt thực sự ở đây là trong trường hợp các vấn đề liên tục dễ dàng, cấu trúc đặc biệt có xu hướng lồi lõm, trong khi trong trường hợp các vấn đề rời rạc dễ dàng, mọi thứ có vẻ phức tạp hơn: đôi khi cấu trúc là giao thoa hoặc giao thoa matroid, nhưng thường thì không. Điều này có lẽ có liên quan nhiều hơn với thực tế là chúng ta chưa hiểu rõ về toán học rời rạc.
Sasho Nikolov

Câu trả lời:


41

Một ví dụ mà tôi yêu thích là vấn đề trong đó, được phân biệt , quyết định xem:π - π cos ( một 1 z ) cos ( một 2 z ) ...a1,a2,,anN

ππcos(a1z)cos(a2z)cos(anz)dz0

Thoạt đầu, đây có vẻ như là một vấn đề liên tục để đánh giá tích phân này, tuy nhiên rất dễ để thấy rằng tích phân này không phải là không tồn tại một phân vùng cân bằng của tập , vì vậy vấn đề tích phân này là NP thực sự hoàn chỉnh.{a1,,an}

Tất nhiên, tôi khuyến khích chơi xung quanh với một số công cụ số để thuyết phục bản thân rằng hầu hết (nếu không phải tất cả) các thủ thuật số để đánh giá tích phân này sẽ bị thất bại khi đủ lớn.n


4
Vì chúng ta đang ở trong chủ đề này, tài liệu tham khảo sớm nhất về vấn đề này tôi có thể tìm thấy là trong "Bản chất của tính toán" của Moore và Mertens. Họ không cung cấp tài liệu tham khảo, vì vậy tôi cho rằng họ đã phát minh ra nó, hoặc nó xuất phát từ văn hóa dân gian. Tôi sẽ đánh giá cao nếu ai đó biết nguồn gốc của vấn đề này.
Joe Bebel

Có lẽ không chỉ hầu hết mà tất cả các kỹ thuật số sẽ mở rộng một cách thảm khốc cho đủ lớn ? Vì bài toán hoàn thành NP, một kỹ thuật số chính xác để đánh giá tích phân đó được chia tỷ lệ đa thức trong sẽ đủ để hiển thị P = NP. nnn
EP

1
Đúng, một thuật toán luôn luôn đánh giá tích phân đó một cách chính xác theo đa thức thời gian trong sẽ đủ để hiển thị P = NP. Mặt khác, tôi không thể loại trừ 100% khả năng của một số kỹ thuật số nhất định mà tôi không biết bằng cách nào đó làm tốt trong các trường hợp cụ thể của tích phân này, ngay cả khi lớn, giống như cách người giải SAT thường có thể để tìm các bài tập thỏa mãn cho một số công thức với hàng ngàn biến, mặc dù hiệu suất trong trường hợp xấu nhất là xấu. Vì vậy, ngay cả khi tôi nghi ngờ các phương pháp như vậy tồn tại, tôi đã tiết lộ câu trả lời của mình một chút. nnn
Joe Bebel

3
Rõ ràng nguồn gốc của vấn đề này là: David Plaisted, Một số vấn đề chia số đa thức và số nguyên là NP-hard. Tạp chí SIAM về máy tính, 7 (4): 458 Mạnh464, 1978. Tài liệu tham khảo nằm ở phía sau của Moore và Mertens, chỉ không nằm trong chính nội dung của văn bản.
Joe Bebel

26

Có nhiều vấn đề liên tục ở dạng "kiểm tra xem liệu đầu vào tổ hợp này có thể được nhận ra như một cấu trúc hình học" hoàn chỉnh cho lý thuyết hiện sinh của các thực thể , một dạng tương tự liên tục của NP. Đặc biệt, điều này ngụ ý rằng những vấn đề này là NP-hard chứ không phải là giải quyết đa thức. Các ví dụ bao gồm kiểm tra xem một biểu đồ đã cho có phải là biểu đồ khoảng cách đơn vị hay không, liệu biểu đồ đã cho có thể được vẽ trong mặt phẳng với các cạnh của đoạn thẳng và nhiều nhất là một số giao cắt nhất định hay không, liệu có thể kéo dài một sắp xếp pseudoline để tạo thành một đường không sắp xếp.

Có những vấn đề liên tục khác thậm chí còn khó hơn: ví dụ, tìm một con đường ngắn nhất trong số các chướng ngại vật đa diện trong 3d là hoàn thành PSPACE (Canny & Reif, FOCS'87).


1
"Con đường ngắn nhất trong số các chướng ngại vật đa diện" chỉ liên tục trong tên, phải không? Chúng ta có thể nghĩ về không gian cấu hình như một sự kết hợp của một số phần rời rạc tương ứng với các đường dẫn 'ôm' một loạt các chướng ngại vật nhất định; sau đó tối ưu hóa cục bộ trong từng phần nhất định (nghĩa là trong bất kỳ chướng ngại vật nào) là đơn giản nhưng quyết định đường nào có khoảng cách tốt nhất toàn cầu là phần khó của vấn đề.
Steven Stadnicki

13

Mặc dù điều này không trả lời chính xác câu hỏi ban đầu của bạn, nhưng đây là một ví dụ (phỏng đoán) về một loại phản biện triết học: một vấn đề trong đó cách trình bày rời rạc nhưng tất cả độ cứng đều xuất phát từ khía cạnh 'liên tục' của vấn đề.

Vấn đề là vấn đề Sum of Square Roots : đưa ra hai bộ số nguyên và , là ? (Có các công thức khác, nhưng đây là công thức tôi thích.) Trong khi nó không được biết chắc chắn B = { b 1 , b 2 , ... , b n } Σ m iA={a1,a2,,am}B={b1,b2,,bn}i=1maij=1nbjkhó, người ta nghi ngờ rằng nó có thể là NP-hard và thực tế có thể nằm ngoài NP (có, như đã lưu ý trong các ý kiến, lý do tuyệt vời để tin rằng nó không phải là NP hoàn chỉnh); ngăn chặn duy nhất được biết đến cho đến nay là một số cấp cao hơn trong hệ thống phân cấp đa thức. Rõ ràng việc trình bày vấn đề này là rời rạc nhất có thể - một tập hợp các số nguyên và một câu hỏi có / không về chúng - nhưng thách thức nảy sinh bởi vì trong khi tính toán căn bậc hai cho bất kỳ độ chính xác cụ thể nào là một vấn đề dễ dàng, chúng có thể cần phải được tính toán đến độ chính xác cao (có khả năng siêu đa thức) để giải quyết bất bình đẳng theo cách này hay cách khác. Đây là một vấn đề 'rời rạc', tạo ra một số bối cảnh tối ưu hóa đáng ngạc nhiên và giúp đóng góp vào sự phức tạp của chính họ.


4
Tôi cũng thích ví dụ này rất nhiều, mặc dù đáng để chỉ ra rằng có những lý do mạnh mẽ để tin rằng nó không hoàn thành NP; xem ( cstheory.stackexchange.com/a/4010/8985 )
Joe Bebel

@JoeBebel Điểm rất tốt - Tôi đã sửa đổi ngôn ngữ của mình một chút để phản ánh điều đó. Cảm ơn bạn!
Steven Stadnicki

6

Các vấn đề riêng biệt thường có xu hướng khó hơn (ví dụ LP so với ILP) nhưng bản thân nó không phải là vấn đề riêng biệt ... đó là cách các ràng buộc ảnh hưởng đến cách bạn có thể tìm kiếm tên miền của mình. Ví dụ, bạn có thể nghĩ rằng tối ưu hóa đa thức là điều mà bạn có thể làm một cách hiệu quả, nhưng quyết định độ lồi của tứ phân (đa thức bậc 4) là NP-hard .

Điều đó có nghĩa là ngay cả khi bạn đã có tối ưu bằng cách nào đó, chỉ cần chứng minh rằng bạn đang ở mức tối ưu là NP-hard.


Tôi nghĩ rằng sự bất mãn cũng là một phần của vấn đề. Ví dụ, bạn sẽ có một biến ILP của LP. Ví dụ, bạn có thể nhắm đến việc tìm giải pháp cho biến thể LP, nhưng sau đó vẫn có 2^n" hàng xóm thú vị " mà bạn cần tìm kiếm.
Willem Van Onsem

@CommuSoft: Không thực sự ... sự bất mãn không phải là vấn đề. Kiểm tra bài toán đường đi ngắn nhất , đây là một vấn đề riêng biệt nhưng vẫn giảm đến một trường hợp đặc biệt của lập trình tuyến tính tích phân , có thể giải quyết được trong thời gian P (không bị nhầm lẫn với lập trình tuyến tính số nguyên , rõ ràng là NP-hard).
Mehrdad

điều đó không thực sự gây ngạc nhiên: vì lập trình tuyến tính số nguyên là NP-đầy đủ, mọi vấn đề trong P (có thể được giải quyết trong thời gian poly), có thể được chuyển đổi theo thời gian poly trong một vấn đề ILP.
Willem Van Onsem

@CommuSoft: Bạn đã đọc bình luận đầy đủ chưa? Tôi không nói về ILP.
Mehrdad

xin lỗi, đọc nhanh Nhưng vẫn còn bởi vì các ràng buộc là hoàn toàn không có hình dạng , do đó, chỉ bằng "ân sủng" của các ràng buộc có cấu trúc tốt, các vấn đề như vậy có thể giải quyết dễ dàng. Trong sự phân biệt nói chung là một khía cạnh có vấn đề trong các vấn đề.
Willem Van Onsem

5

Mặc dù đối với một số vấn đề phổ biến, nó thực sự đúng, tôi nghĩ cả hai giả định là - tùy thuộc vào những gì bạn xác định là một vấn đề tối ưu hóa - không đúng.

Đầu tiên một số định nghĩa: hầu hết các vấn đề tối ưu hóa không phải là một phần của NP . Ví dụ cho vấn đề Knapsack : người ta không thể khai thác tính không xác định để xây dựng túi có giá trị nhất, đơn giản vì các nhánh không xác định khác nhau không có bộ nhớ dùng chung. NP cũng được định nghĩa là "có thể kiểm chứng đa thức" (xác minh chứng chỉ) [1, p. 34]. Trong trường hợp này, chứng chỉ là ví dụ một túi : một chuỗi bit trong đó nếu bit thứ i được đặt, nó ngụ ý mục thứ i là một phần của túi. Bạn thực sự có thể kiểm tra trong thời gian đa thức nếu túi đó có giá trị hơn ngưỡng nhất định (đây là biến thể quyết định), nhưng bạn không thể - theo như chúng tôi biết - dựa trên một túi duy nhất, (số lượng đa thức của túi), quyết định xem túi đó có giá trị nhất trong tất cả các túi có thể. Đó là một sự khác biệt quan trọng giữa ví dụ NPEXP : trong EXP , bạn có thể liệt kê tất cả các túi có thể và làm sổ sách kế toán về túi nào là tốt nhất.

Các biến thể quyết định những vấn đề tối ưu hóa là trong một số trường hợp một phần của NP , chúng ta cần thực hiện một sự phân biệt rõ ràng giữa các hương vị tối đa hóahương vị quyết định . Trong quyết định, câu hỏi là: " Đưa ra một vấn đề tối ưu hóa, và một tiện ích bị ràng buộc, có một giải pháp với một tiện ích lớn hơn hoặc bằng ràng buộc đó " (hoặc sửa đổi một chút cho vấn đề tối thiểu hóa).

Tôi cũng cho rằng bởi NP bạn có nghĩa là (giả) một phần của NP đó không phải là một phần của P . Nếu P = NP , tất nhiên NP-đầy đủ vẫn tồn tại, nhưng nó sẽ bằng P (chỉ trùng với P đối với một số khái niệm giảm, như giảm nhiều lần một đa thức của @ AndrásSalamon), điều đó không ấn tượng ( và sẽ giảm " khoảng cách " bạn nêu trong câu hỏi của bạn).

Tôi ngày càng nhận thấy rằng hầu hết các vấn đề riêng biệt là NP-đầy đủ.

Bây giờ chúng tôi đã sắp xếp ra: có rất nhiều vấn đề tối ưu hóa trong P : vấn đề đường đi ngắn nhất , vấn đề dòng chảy tối đa (đối với công suất tích phân), cây bao trùm tối thiểukhớp tối đa . Mặc dù những vấn đề này có thể trông "tầm thường để giải quyết" với bạn, đây vẫn là những vấn đề tối ưu hóa, và trong nhiều trường hợp, việc xây dựng (và chứng minh tính đúng đắn) không dễ dàng như vậy. Vì vậy, yêu cầu không giữ tất cả các vấn đề riêng biệt là NP-đầy đủ. Do P không bằng NP , do đó, các vấn đề này không thể hoàn thành NP .

ΣiP

Trong khi đó tối ưu hóa các vấn đề liên tục hầu như luôn luôn dễ dàng đạt được.

Một vấn đề liên tục phổ biến đó là NP-hardlập trình bậc hai .

x

xTQx2+cTx

Axb

Trên thực tế lập trình tuyến tính từ lâu đã được coi là NP-hard , nhưng với heuristic thực hiện rất tốt ( phương pháp Simplex ). Thuật toán Karmarkar của tuy nhiên là trong P .

Từ thời điểm vấn đề tối ưu hóa liên quan đến các đối tượng không lồi, nói chung sẽ khó - nếu không nói là không thể - để tìm ra một thuật toán hiệu quả.

Tài liệu tham khảo

[1] Độ phức tạp tính toán, một cách tiếp cận hiện đại , Sanjeev Arora và Boaz Barak


2
Các đoạn định nghĩa thực sự là loại nhầm lẫn. Knapsack là một vấn đề tối ưu hóa NP. Không phải là "không biết" nếu phiên bản tối ưu hóa nằm trong NP: không phải, đơn giản là theo định nghĩa. Ngoài ra, tôi không nghĩ rằng chúng ta biết bất kỳ vấn đề nào là NP hoàn thành có điều kiện trên NP không bằng PIe 3-SAT sẽ hoàn thành NP ngay cả khi P = NP (thực tế nếu P = NP thì mọi vấn đề trong P đều là NP hoàn chỉnh).
Sasho Nikolov

@ AndrásSalamon: điểm lấy. Tôi đã loại bỏ phần đó. Nó thực sự là một chút cẩu thả.
Willem Van Onsem

@ AndrásSalamon: hiển nhiên đó là sự thật. Do đó, nó nói: " Cho P không bằng NP, do đó, các vấn đề này không thể hoàn thành NP. "
Willem Van Onsem

@ AndrásSalamon: Vâng P=NP, nếu mọi vấn đề trong NP- Complete là theo định nghĩa một phần của NP và do đó bằng cách mở rộng P , bây giờ P có nghĩa là có một thuật toán đa thức. Vấn đề là, tôi nghĩ việc chuyển đổi không thành vấn đề, bởi vì đối với mọi ngôn ngữ trong P đều phải tồn tại thuật toán đa thức. Cho dù bạn có thực hiện phép biến đổi (nhiều nhất là đa thức) hay không, đều không liên quan. Nó vẫn còn đa thức, do đó trong P . Nói cách khác, vì phần tử gốc nằm trong P , bạn có thể thực hiện mọi phép biến đổi đa thời gian miễn phí (không dẫn đến lớp phức tạp higer).
Willem Van Onsem

2
Knapsack như một vấn đề tối ưu hóa chắc chắn không phải là NP hoàn chỉnh, bởi vì nó không phải là vấn đề quyết định, vì vậy không phải trong NP. Trong mọi trường hợp, tôi hiểu những gì bạn đang nói, nhưng đây là loại chi tiết cấp dưới mà tôi nghĩ nên được sử dụng trên một diễn đàn cấp nghiên cứu như CStheory @ SE, giống như tôi không mong đợi để xem giải thích về cách hội tụ trong xác suất không giống như sự hội tụ gần như chắc chắn trên Mathoverflow.
Sasho Nikolov
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.