Vấn đề tối ưu hóa NP-đầy đủ của NP


24

Tôi hơi bối rối bởi một số thuật ngữ tôi đã gặp về sự phức tạp của các vấn đề tối ưu hóa. Trong một lớp thuật toán, tôi gặp vấn đề về phân tích cú pháp lớn được mô tả là NP-Complete. Tuy nhiên, tôi không chắc chắn chính xác thuật ngữ NP-Complete nghĩa là gì trong bối cảnh của một vấn đề tối ưu hóa. Điều này chỉ có nghĩa là vấn đề quyết định tương ứng là NP-đầy đủ? Và điều đó có nghĩa là vấn đề tối ưu hóa trên thực tế có thể khó hơn (có lẽ nằm ngoài NP)?

Cụ thể, tôi lo ngại về thực tế rằng trong khi vấn đề quyết định hoàn thành NP là thời gian đa thức có thể kiểm chứng được, thì một giải pháp cho vấn đề tối ưu hóa tương ứng dường như không thể kiểm chứng được thời gian đa thức. Điều đó có nghĩa là vấn đề không thực sự nằm ở NP, hay việc xác minh thời gian đa thức chỉ là một đặc điểm của các vấn đề quyết định NP?


3
kiểm tra câu hỏi này
Ran G.


1
@RanG., Tôi không chắc đây có phải là bản sao chính xác không .
Kaveh

@Kaveh bạn nói đúng, nhưng câu trả lời tuyệt vời của uli hoàn toàn trả lời câu hỏi này.
Ran G.

@RanG., Có thể có nhiều hơn một câu trả lời tuyệt vời. :)
Kaveh

Câu trả lời:


13

Một nỗ lực cho một câu trả lời một phần:

Các vấn đề quyết định đã được điều tra một thời gian trước khi các vấn đề tối ưu hóa xuất hiện, theo nghĩa là chúng được xử lý từ quan điểm thuật toán gần đúng.

Bạn phải cẩn thận khi mang các khái niệm từ các vấn đề quyết định. Nó có thể được thực hiện và một khái niệm chính xác về tính đầy đủ NP cho các vấn đề tối ưu hóa có thể được đưa ra. Nhìn vào câu trả lời này . Tất nhiên nó khác với tính đầy đủ của NP đối với các vấn đề quyết định, nhưng nó dựa trên các ý tưởng về tội lỗi (giảm).

Nếu bạn phải đối mặt với một vấn đề tối ưu hóa không cho phép xác minh bằng một giải pháp khả thi, thì bạn không thể làm gì nhiều. Đó là lý do tại sao người ta thường cho rằng:

  • Chúng tôi có thể xác minh hiệu quả nếu đầu vào thực sự là một ví dụ hợp lệ của vấn đề tối ưu hóa của chúng tôi.
  • Kích thước của các giải pháp khả thi được giới hạn bởi đa thức bởi kích thước của các đầu vào.
  • Chúng tôi có thể xác minh hiệu quả nếu một giải pháp là một giải pháp khả thi của đầu vào.
  • Giá trị của một giải pháp có thể được xác định một cách hiệu quả.

Mặt khác, chúng ta không thể hy vọng đạt được nhiều thứ.

Lớp phức tạp chỉ chứa các vấn đề quyết định cho mỗi định nghĩa. Vì vậy, không có bất kỳ vấn đề tối ưu hóa trong đó. Và định nghĩa dựa trên Trình xác minh của mà bạn đề cập là dành riêng cho . Tôi đã không gặp phải nó với các vấn đề tối ưu hóa.NPN P N PNPNP

Nếu bạn muốn xác minh rằng một giải pháp không chỉ khả thi mà còn tối ưu, tôi sẽ nói rằng điều này cũng khó như giải quyết vấn đề tối ưu hóa ban đầu bởi vì, để bác bỏ một giải pháp khả thi và có thể tối ưu nhất định là không tối ưu, bạn phải đưa ra một giải pháp tốt hơn, có thể yêu cầu bạn tìm ra giải pháp tối ưu thực sự.

Nhưng điều đó không có nghĩa là vấn đề tối ưu hóa khó hơn. Xem câu trả lời này , tất nhiên phụ thuộc vào các định nghĩa chính xác.


Bạn có thể vui lòng cung cấp một bài viết hoặc một tài liệu tham khảo, nơi tôi có thể tìm thêm thông tin về một định nghĩa chính xác, giảm, v.v., cho độ cứng NP cho các vấn đề tối ưu hóa? Cho đến nay, tôi không thể tìm ra một. Điều đó sẽ rất thú vị với tôi. Cảm ơn bạn.
John Threepwood


-1

Lý do hầu hết các vấn đề tối ưu hóa có thể được phân loại là P, NP, NP-đầy đủ, v.v., là các điều kiện Kuhn-Tucker. Tôi sẽ nói về các vấn đề lập trình tuyến tính, nhưng KTC áp dụng trong nhiều vấn đề tối ưu hóa khác. Đối với mỗi vấn đề tối ưu hóa có một kép. Nếu mục tiêu trong vấn đề ban đầu là tối đa hóa một số chức năng, thì chức năng kép (thường) có chức năng được giảm thiểu. * Các giải pháp khả thi, nhưng không tối ưu cho vấn đề ban đầu sẽ không khả thi / không hợp lệ cho vấn đề kép và ngược lại -versa. Nếu, và chỉ khi, một giải pháp khả thi cho chính và kép, thì đó là một giải pháp tối ưu cho cả hai. (Về mặt kỹ thuật, có thể là một trong số lượng lớn các giải pháp tối ưu cho kết quả tương tự.)

Vì vậy, việc tìm một giải pháp tối ưu cho một vấn đề tối ưu hóa tương đương với việc tìm một giải pháp hợp lệ cho chính và kép. Bạn có thể sử dụng các thuật toán tối ưu hóa để tìm giải pháp đó, nhưng quá trình tổng thể là bằng chứng tồn tại.

  • Nếu bạn muốn chuyển từ tối thiểu hóa sang tối đa hóa, hãy nhân hàm mục tiêu với -1.

3
Tôi không thấy các điều kiện KKT liên quan đến độ cứng NP như thế nào, bạn có thể giải thích về điều đó không?
Thằn lằn rời rạc

2
Tôi thực sự không thấy làm thế nào điều này trả lời câu hỏi. P , NP , v.v., là các lớp của vấn đề quyết định. Các vấn đề tối ưu hóa không phải là vấn đề quyết định, vì vậy chúng không thuộc bất kỳ lớp nào trong số các lớp đó theo định nghĩa .
David Richerby

2
Tôi cũng không thấy cách này trả lời câu hỏi - đây là một nhận xét thú vị, nhưng dường như nó trả lời một câu hỏi khác với câu hỏi đã được hỏi. Câu hỏi đặt ra ý nghĩa của việc nói rằng một vấn đề tối ưu hóa là NP-đầy đủ và liệu các vấn đề tối ưu hóa có thể được nói là trong NP hay không, cho rằng chúng không phải là vấn đề quyết định. Phần này mô tả cách đưa ra một vấn đề tối ưu hóa (trong đó các giải pháp không thể kiểm chứng được), chúng ta thường có thể xây dựng một vấn đề tương ứng trong đó các giải pháp có thể được xác minh. Những thứ rất thú vị, nhưng tôi không chắc nó trả lời câu hỏi đã được hỏi.
DW

1
@DW Lý do chính tại sao tôi nghĩ rằng điều này không thực sự trả lời câu hỏi là, ngoài những gì đã được đề cập, KKT giới hạn cài đặt để tối ưu hóa toán học của các hàm 'thông thường' (ví dụ: liên tục, khác biệt, lồi). Cài đặt này không thể áp dụng cho hầu hết các sự cố NP-hard.
Thằn lằn rời rạc
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.