Lập trình tuyến tính 0-1: tính toán công thức tối ưu


14

Hãy xem xét không gian chiều và cho là một ràng buộc tuyến tính có dạng , trong đó , và .{ 0 , 1 } n c a 1 x 1 + a 2 x 2 + a 3 x 3 + . . . + Một n - 1 x n - 1 + một n x nk một iR x i{ 0 , 1 } k Rn{0,1}nca1x1+a2x2+a3x3+ ... +an1xn1+anxnkaiRxi{0,1}kR

Rõ ràng, có tác dụng chia trong hai tập con và . chứa tất cả và chỉ những điểm thỏa mãn , trong khi chứa tất cả và chỉ những điểm đó làm sai lệch .{ 0 , 1 } n S c S ¬ c S c c S ¬ c cc{0,1}nScS¬cSccS¬cc

Giả sử rằng . Bây giờ, đặt là tập con của sao cho tất cả ba câu lệnh sau giữ:O S c|Sc|nOSc

  1. nO chứa chính xác điểm.n
  2. Điểm như vậy là độc lập tuyến tính.n
  3. điểm như vậy là những điểm ở khoảng cách tối thiểu từ siêu phẳng được đại diện bởi . Chính xác hơn, gọi là khoảng cách của một điểm từ siêu phẳng . Sau đó, sao cho thỏa mãn 1 và 2, đó là trường hợp . Nói cách khác, là, trong số tất cả các tập con của thỏa mãn cả hai điều kiện 1 và 2, một tập hợp tối thiểu hóa khoảng cách các điểm của nó từ siêu phẳng .c d ( x , c ) x { 0 , 1 } n c B S c B x B d ( x , c ) x O d ( x , c ) O S c cncd(x,c)x{0,1}ncBScBxBd(x,c)xOd(x,c)OScc

Câu hỏi

  1. Cho , có thể tính hiệu quả không? OcO
  2. Đó là thuật toán được biết đến nhiều nhất để tính toán nó?

 

Ví dụ với n=3

Ví dụ với n = 3

S¬c={(1,0,1)} , .O={(0,0,1),(1,1,1),(1,0,0)}

 

Cập nhật ngày 05/12/2012

Động lực

Động lực là sử dụng nó nên có thể để xác định các hạn chế tối ưu , như nó phải là siêu phẳng xác định bởi các điểm trong . c * n OOcnO

Ràng buộc tối ưu là ràng buộc dẫn đến đa giác tối ưu .P *cP

Đa giác tối ưu là một đỉnh có tất cả các đỉnh và chỉ các đỉnh nguyên của đa giác ban đầu (một đỉnh nguyên là một đỉnh có tọa độ là tất cả các số nguyên). PPP

Công thức tối ưu

Quá trình này có thể được lặp cho mỗi chế của một 0-1 dụ , mỗi lần thay tương ứng với nó tối ưu hạn chế . Cuối cùng, điều này sẽ dẫn đến sự tối ưu polytope của . Sau đó, vì các đỉnh của là tất cả và chỉ các đỉnh nguyên của đa giác ban đầu của , nên mọi thuật toán cho đều có thể được sử dụng để tính toán giải số nguyên tối ưu. Tôi biết rằng việc có thể tính toán cách hiệu quả sẽ bao hàm , tuy nhiên câu hỏi bổ sung sau đây vẫn tồn tại:L P I c c * P * Tôi P * P Tôi L P P * P = N PcLPIccPIPPILPPP=NP

Câu hỏi bổ sung

Có bất kỳ công việc trước đó dọc theo những dòng này? Có ai đã điều tra nhiệm vụ của máy tính, đưa ra một đa giác , đa giác tối ưu tương ứng của nó ? Đó là thuật toán nổi tiếng nhất để làm điều đó?P *PP


Điều này có vẻ khó NP để thực hiện chính xác, bằng cách giảm từ tổng tập hợp con. Cho các số nguyên nhị phân , để kiểm tra xem có tập hợp con nào với , chúng ta có thể kiểm tra xem có một điểm nào trên siêu phẳng . Bạn có quan tâm đến xấp xỉ? s v 1 x 1 + + v 1 x n = sv1,,vnsv1x1++v1xn=s
Colin McQuillan

@ColinMcQuillan: Câu hỏi có ý nghĩa cho một giải pháp chính xác, tuy nhiên tôi chắc chắn cũng quan tâm đến các xấp xỉ. Tại sao bạn không biến bình luận của bạn thành một câu trả lời?
Giorgio Camerani

@ColinMcQuillan: Ngoài ra, siêu phẳng của bạn được xác định bằng cách sử dụng một đẳng thức, trong khi của tôi được xác định bằng cách sử dụng bất đẳng thức. Bạn có chắc chắn rằng điều này làm cho không có sự khác biệt về độ cứng? Tôi đã không kiểm tra điều đó, vì vậy tôi chỉ hỏi.
Giorgio Camerani

Tôi là một chút nhầm lẫn về tất cả các hạn chế đối với . Nếu bạn đang tìm kiếm thông tin về thân tàu lồi của S c thì có rất nhiều kết quả trong tài liệu nghiên cứu hoạt động về đa giác ba lô 0-1. Về mặt công thức gần đúng, xem điều này . OSc
Austin Hội trưởng

Câu trả lời:


6

Điều này có vẻ khó NP để thực hiện chính xác, bằng cách giảm từ tổng tập hợp con. Giả sử chúng ta có một thủ tục hiệu quả để tính toán . Với số nguyên dương v 1 , ... , v n mã hóa trong hệ nhị phân, chúng tôi muốn kiểm tra xem liệu có là một tập hợp con tổng hợp để s . Tiền xử lý bằng cách loại bỏ bất kỳ số nguyên nào lớn hơn s .Ov1,,vnss

Gọi các thủ tục để có được một bộ nhỏ điểm đáp ứng v 1 x 1 + + v 1 x ns , đáp ứng điều kiện minimality của bạn (này để thỏa mãn tiền xử lý | S c |n ). Bộ này chắc chắn sẽ chứa một điểm trên siêu phẳng v 1 x 1 + + v 1 x n = s nếu có một điểm.Ov1x1++v1xns|Sc|nv1x1++v1xn=s


v1,...,vnRsv1=3,v2=7,v3=5,s=2v2{v2,v3}

2
ai

1
@GiorgioCamerani: Tôi cần phải nói tích cực - Tôi đã cập nhật câu trả lời của mình.
Colin McQuillan

1

Dường như với tôi bạn đang cố gắng để có được vỏ lồi của IP - về bản chất đây là điều mà các thuật toán cắt cố gắng đạt được. Mặc dù về mặt lý thuyết, các phương pháp này rất kém trong thực tế.

Có tất cả lý thuyết về việc tạo ra sự bất bình đẳng hợp lệ. Một điểm khởi đầu tốt sẽ là lý thuyết cuốn sách về lập trình số nguyên của shrijver.

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.