Lập trình số nguyên với một số biến cố định


12

Bài báo nổi tiếng năm 1983 của H. Lenstra Lập trình số nguyên với một số biến cố định nói rằng các chương trình số nguyên với số lượng biến cố định có thể giải được theo đa thức thời gian theo chiều dài của dữ liệu.

Tôi giải thích như sau.

  1. Nói chung, lập trình số nguyên vẫn là NP hoàn chỉnh nhưng nếu có sẵn kích thước bài toán điển hình của tôi (khoảng 10.000 biến, số lượng ràng buộc tùy ý) trong thực tế thì tôi có thể xây dựng một thuật toán chia tỷ lệ theo số lượng các ràng buộc nhưng không phải trong số lượng biến và ràng buộc.
  2. Kết quả cũng có thể áp dụng cho lập trình nhị phân vì tôi có thể buộc bất kỳ số nguyên nào thành 0-1 bằng cách thêm một ràng buộc thích hợp.

Là giải thích của tôi chính xác?

Liệu kết quả này có bất kỳ ý nghĩa thực tế? Đó là, có một triển khai có sẵn hay nó được sử dụng trong các bộ giải phổ biến như CPLEX, Gurobi hoặc Mosek?

Một số trích dẫn từ bài báo:

Độ dài này có thể, theo mục đích của chúng tôi, được xác định là n · m · log (a + 2), trong đó a biểu thị mức tối đa của các giá trị tuyệt đối của các hệ số của A và b. Thật vậy, không có thuật toán đa thức như vậy có khả năng tồn tại, vì vấn đề được đề cập là NP-Complete

[...]

Người ta đã phỏng đoán [5], [10] rằng với bất kỳ giá trị cố định nào của n đều tồn tại thuật toán đa thức cho giải pháp của bài toán lập trình tuyến tính số nguyên. Trong bài báo hiện tại, chúng tôi chứng minh phỏng đoán này bằng cách thể hiện một thuật toán như vậy. Mức độ của đa thức mà thời gian chạy của thuật toán của chúng tôi có thể được giới hạn là một hàm số mũ của n.


2
"Tôi có thể xây dựng một thuật toán chia tỷ lệ đa thức theo số lượng ràng buộc hoặc biến nhưng không phải là số lượng biến và ràng buộc." Điểm / câu hỏi thú vị - cho đến nay chúng ta đã thấy điều này đúng với các ràng buộc (giữ số lượng biến cố định), nhưng có lẽ sẽ rất thú vị khi hỏi liệu nó có thể đúng với các biến không (giữ số lượng ràng buộc cố định) ? Theo trực giác, nó cảm thấy như nó không phải là sự thật, nói chung IP sẽ là đa thời gian, nhưng tôi không chắc chắn.
usul

Trong phần 4 của bài báo Lenstra nói rằng "bài toán lập trình tuyến tính số nguyên có giá trị cố định là m có thể giải được đa thức". (m là số lượng các chống chỉ định) Điều này như là một hệ quả của kết quả chính. Phần này không rõ ràng với tôi. Trên một suy nghĩ thứ hai có thể anh ta giả định cố định n VÀ m; có nghĩa là nó là đa thức trong "a" (tối đa của các giá trị tuyệt đối của các hệ số của A và b). (Tôi đã loại bỏ phần "hoặc biến" khỏi câu hỏi của tôi ở trên do hậu quả).
Bernhard Kausler

6
@usul: đó là sự thật và nó không ngụ ý rằng IP là polytime. nó chỉ có nghĩa là có một thuật toán mất thời gian theo cấp số nhân trong và đa thức tính bằng m và một thuật toán khác mất thời gian theo cấp số nhân trong m và đa thức trong nnmmn
Sasho Nikolov

Câu trả lời:


19

Thuật toán nhanh nhất hiện tại thực sự là tuyến tính theo độ dài của chương trình tuyến tính nguyên cho mọi giá trị cố định của . Trong luận án tiến sĩ của mình, Lokshtanov (2009) đã tóm tắt một cách độc đáo các kết quả của Lenstra (1983), Kannan (1987) và Frank & Tardos (1987) theo định lý sau.n

Integer Lập trình tuyến tính có thể được giải quyết bằng phép tính số học và không gian đa thức trong L . Ở đây L là số bit trong đầu vào và n số lượng biến trong chương trình tuyến tính số nguyên.O(n2.5n+o(n)L)LLn

Do đó, vấn đề là cố định - tham số tuyến tính được tham số hóa bằng số lượng biến.

1) Có, Lập trình tuyến tính Integer là NP "hoàn toàn". Thời gian chạy của kết quả lý thuyết ở trên chỉ phụ thuộc tuyến tính vào số lượng ràng buộc, do đó, nó có tỷ lệ độc đáo trong số lượng các ràng buộc. Tuy nhiên tôi biết không có triển khai thực tế của thuật toán này.

2) Có, làm cho các biến lấy giá trị nhị phân là đơn giản như bạn quan sát.

Cập nhật. Sự phụ thuộc vào thực sự có thể được cải thiện trong thời gian chạy cho Lập trình tuyến tính Integer. Dựa trên Clarkson (1995)Eisenbrand (2003) (xem các ý kiến dưới đây) người ta có thể có được một thuật toán với thời gian chạy O ( 2 n n m + 8 n n L trong đómlà số lượng ràng buộc vàslà số bit tối đa cần thiết để mã hóa một ràng buộc hoặc hàm mục tiêu.

O(2nnm+8nnmlogmlogm+n2.5n+o(n)slogm)
ms

1
À, cảm ơn vì thuật ngữ "tuyến tính tham số cố định". Đó là những gì bài viết của Lenstra nói về. Xem thêm: vi.wikipedia.org/wiki/Parameterized_complexity
Bernhard Kausler

4
nO(n2nm)

T(n,m,S)nmSÔi(2nm+(đăng nhậpm)T(n,f(n),S)Ôi(S)f(n)nO(n)

1
Điều này không thay đổi các sự kiện cơ bản trong câu trả lời của bạn, nhưng một tài liệu tham khảo có liên quan khác là KL Clarkson. Các thuật toán Las Vegas cho lập trình tuyến tính và số nguyên khi kích thước nhỏ. J. ACM 42 (2): 488 bóng499, 1995, doi: 10.1145 / 201019.201036.
David Eppstein

2
mnO(n2.5n+o(n)L)T(n,f(n),s)f(n)=4nL=4nsf(n)O(2nnm+n2.5n+o(n)(logm)s)

4

Dưới đây là một số điểm liên quan đến ý nghĩa thực tế của kết quả loại Lenstra và các triển khai có thể có trong CPLEX, Gurobi, v.v. Một trong những bước quan trọng trong hầu hết các thuật toán như vậy đối với IP là phân nhánh theo hướng "tốt" hoặc "mỏng", tức là, hyperplanes dọc theo chiều rộng của polytope không quá lớn (đa thức trong các biến và kích thước của dữ liệu). Nhưng Mahajan và Ralphs (in sẵn ở đây ) đã chỉ ra rằng vấn đề chọn một phân tách tối ưu là NP-đầy đủ. Vì vậy, nó sẽ xuất hiện khó khăn để tạo ra các triển khai thực tế hiệu quả của lớp đại số này.

Hầu hết các thuật toán được triển khai trong các gói như CPLEX có thể được phân loại là các phương pháp cắt nhánh. Nhóm kỹ thuật này thường hoạt động tốt trên các trường hợp IP khả thi và thường có thể tìm thấy các giải pháp gần tối ưu. Nhưng trọng tâm của thuật toán kiểu Lenstra là trong các trường hợp IP tồi tệ nhất không thể bắt đầu và mục tiêu là chứng minh tính không khả thi của chúng (và họ nghiên cứu tính phức tạp của nhiệm vụ này). AFAIK, không có loại vấn đề nào liên quan thực tế phù hợp với mô tả này. Vì vậy, mọi người CPLEX / Gurobi có thể sẽ không sớm thực hiện thuật toán đại số kiểu Lenstra.

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.