Vấn đề này, mà tôi sẽ gọi CO cho Đặt hàng cột, là NP-hard . Đây là một sự giảm bớt từ vấn đề NP-hard Vertex Cover (VC) sang nó:
Các dạng vấn đề quyết định của VC và CO
Đặt đối tượng VC đầu vào là (V,E,k) . Nó đại diện cho câu hỏi: "Với đồ thị (V,E) , có thể chọn một tập hợp nhiều nhất k đỉnh từ V sao cho mọi cạnh trong E là sự cố trên ít nhất một đỉnh được chọn?" Chúng tôi sẽ xây dựng một thể hiện ( A , k') của Công ty đại diện cho câu hỏi: "Căn cứ vào ma trận Một với các yếu tố trong { - 1 , 0 , 1 }, có thể hoán vị các cột của Một sao cho số 1 xuất hiện trước -1 trên ít nhất k' hàng không? "Hai vấn đề này được nêu trong mẫu vấn đề quyết định , theo đó câu trả lời cho mỗi câu là CÓ hoặc KHÔNG: nói chính thức , đây là dạng của một vấn đề hoàn toàn NP (hoặc không). Không quá khó để thấy rằng dạng bài toán tối ưu hóa tự nhiên hơn được nêu trong câu hỏi của OP gần như tương đương về độ phức tạp: tìm kiếm nhị phân trên ngưỡng tham số có thể được sử dụng để giải quyết vấn đề tối ưu hóa bằng cách sử dụng trình giải quyết vấn đề quyết định, trong khi một lệnh gọi duy nhất của trình giải quyết vấn đề tối ưu hóa, theo sau là một so sánh duy nhất, là đủ để giải quyết vấn đề quyết định.
Xây dựng một thể hiện của CO từ một thể hiện của VC
Đặt n = | V|và m = | E|. Chúng ta sẽ xây dựng một ma trận Một với ( n + 1 ) m + n hàng và n + 1 cột. Đỉnh ( n + 1 ) m hàng sẽ được hình thành của m khối n + 1 hàng mỗi, với mỗi khối đại diện cho một cạnh đó nhu cầu được bảo hiểm . Đáy n các hàng chứa các "cờ" đỉnh, sẽ làm cho một cột (tương ứng với một đỉnh) phải chịu một chi phí cố định nếu nó được bao gồm ở phía bên trái của giải pháp CO (tương ứng với một đỉnh được bao gồm trong nắp đỉnh của Giải pháp VC).
Đối với mỗi đỉnh vTôi , tạo một cột trong đó:
- Trong số các hàng trên cùng ( n + 1 ) m , khối thứ j của n + 1 hàng đều chứa +1 khi cạnh ej xảy ra trên vTôi và 0 khác, và
- n hàng dưới cùng đều bằng 0 ngoại trừ Tôi -th, là -1.
Tạo thêm một cột "hàng rào" bao gồm ( n + 1 ) m bản sao của -1, theo sau là n bản sao của +1.
Cuối cùng, đặt ngưỡng k' cho thể hiện CO được xây dựng: ( n + 1 ) m + n - k . Nói cách khác, chúng tôi cho phép tối đa k hàng trong đó -1 xuất hiện trước +1. Chúng ta hãy gọi số hàng vi phạm này là "chi phí" của giải pháp CO.
Bằng chứng
Sự tương ứng giữa một giải pháp cho thể hiện CO và một tập hợp các đỉnh trong thể hiện VC ban đầu là: Mỗi cột ở bên trái của hàng rào tương ứng với một đỉnh nằm trong tập hợp và mỗi cột ở bên phải của hàng rào tương ứng với một đỉnh không.
Theo trực giác, các -1 ở trên cùng của cột "hàng rào" buộc phải lựa chọn một tập hợp con của các cột được đặt ở bên trái của nó, cùng nhau chứa +1 trong tất cả các vị trí này - tương ứng với một tập hợp các đỉnh xảy ra trên mọi cạnh. Mỗi cột xuất hiện ở bên trái của "hàng rào" có -1 trên một hàng riêng biệt ở đâu đó trong n hàng dưới cùng , phát sinh chi phí là 1; các +1 ở dưới cùng của "hàng rào" đảm bảo rằng tất cả các cột được đặt ở bên phải của nó không phải chịu chi phí như vậy.
Rõ ràng một giải pháp VC sử dụng tối đa các đỉnh k tạo ra một giải pháp cho trường hợp CO được xây dựng với chi phí tối đa là k : Chỉ cần đặt hàng các cột tương ứng với các đỉnh trong nắp đỉnh tùy ý, theo sau là hàng rào, theo sau là tất cả các cột còn lại theo thứ tự .
Vẫn còn phải chỉ ra rằng một giải pháp cho trường hợp CO với chi phí nhiều nhất là k tương ứng với một đỉnh đỉnh với nhiều nhất là k đỉnh.
Giả sử ngược lại rằng tồn tại một giải pháp cho trường hợp CO với chi phí nhiều nhất là k để lại một số hàng trong hàng ( n + 1 ) m hàng đầu với -1 trước +1. Hàng này thuộc về một khối ( n + 1 ) hàng tương ứng với một cạnh cụ thể bạn v . Mỗi hàng trong khối này trong trường hợp Một ban đầu giống hệt nhau khi xây dựng; các cột hoán vị có thể thay đổi các hàng này, nhưng không ảnh hưởng đến thực tế là chúng giống hệt nhau. Do đó, mỗi hàng n + 1 giống hệt nhau này có -1 trước +1 trong giải pháp, ngụ ý chi phí ít nhất làn + 1 . Nhưngk ≤ n < n + 1 : mâu thuẫn.
Vì mỗi khối m của các hàng trong hàng ( n + 1 ) m hàng có +1 trước -1, nên mỗi cạnh tương ứng được bao phủ bởi một đỉnh tương ứng với một cột ở bên trái của hàng rào: đó là , tập hợp con của các đỉnh này tạo thành một nắp đỉnh. Vì không có hàng nào trong số (n+1)m hàng đầu có -1 trước +1, nên nơi duy nhất mà chi phí có thể tích lũy trong giải pháp là ở n hàng dưới cùng , từ các cột được đặt ở bên trái của hàng rào. Mỗi cột như vậy có chi phí chính xác là 1, do đó, chi phí tối đa là k , phải có tối đa kcác cột như vậy, và do đó tại hầu hết các đỉnh k trong bìa.
Cuối cùng, rõ ràng rằng thể hiện CO có thể được xây dựng trong thời gian đa thức từ thể hiện VC, nghĩa là nếu tồn tại thuật toán đa thức thời gian để giải CO, thì mọi trường hợp VC cũng có thể được giải quyết trong thời gian đa thức bằng cách xây dựng một thể hiện CO như mô tả trước ở trên và sau đó giải quyết nó. Vì VC là NP-hard, CO cũng vậy.