Có giới hạn trong thực tế về số lượng các ràng buộc đối với một vấn đề lập trình tuyến tính không?


8

Tôi chưa quen với lập trình tuyến tính và đã xây dựng một chương trình tuyến tính (LP) với thứ tự biến và , mặc dù ma trận ràng buộc rất thưa thớt. 10 1310131013

Tôi muốn biết liệu LP của thang đo này có dễ điều khiển hay không?


Tôi đoán bạn có nghĩa là biến và ràng buộc? 10 1310131013
Geoff Oxberry

Vâng, xin lỗi về định dạng xấu.
nhấn

Câu trả lời:


9

10 5 10 61013 vượt quá khả năng trên các siêu máy tính lớn nhất hiện nay do phần lớn giới hạn bộ nhớ. Các vấn đề lớn nhất mà tôi thấy thực tế đã giải quyết được theo thứ tự hàng và cột, nhưng yếu tố quan trọng nhất có xu hướng là số lượng các số khác, trong đó chúng ta chỉ cần giải quyết các vấn đề với . Xem trang điểm chuẩn song song của Mittelman để cảm nhận về những gì người giải quyết thương mại và có sẵn miễn phí tốt nhất có thể làm với một loạt các vấn đề ở kích thước này.105106


6

Một số lượng lớn các ràng buộc bất bình đẳng thường có thể điều chỉnh được bằng các kỹ thuật tạo ràng buộc, mỗi lần xử lý chỉ có một số lượng hạn chế và thêm các ràng buộc bị vi phạm tại giải pháp hiện tại vào tập ràng buộc (trong khi xóa các ràng buộc được thỏa mãn mạnh mẽ). Nhưng trong các trường hợp tôi đã thấy, điều này đòi hỏi số lượng biến không chùng cũng bị hạn chế.

Vì vậy, câu hỏi là liệu bạn có thể cải tổ vấn đề của mình theo cách mà chính vấn đề hoặc vấn đề kép của nó có ít biến hơn so với các ràng buộc.

Chỉnh sửa: Xem thêm công việc gần đây của Nesterov về '' Phương pháp nâng cấp cho các vấn đề tối ưu hóa quy mô lớn '', http://dial.academielouvain.be/vital/access/service/Doad/boreal:107876/PDF_01 . Kỹ thuật của anh ta hoạt động trong những hoàn cảnh thuận lợi với độ phức tạp nếu các yêu cầu độ chính xác ở mức trung bình.O(nlogn)


3

Nhận xét của tôi về câu trả lời của Aron đã quá dài, nhưng tôi muốn làm tăng thêm câu trả lời của anh ấy:

Tôi thích đưa ra ví dụ về điểm chuẩn song song. Một số ý kiến ​​để thêm vào đây. Tất cả bốn người giải được kiểm tra là thương mại, nhưng có sẵn giấy phép học tập miễn phí. Hơn nữa, bài kiểm tra cắt giảm thời gian chạy ở 25000 giây, hoặc ~ 8h, tùy ý và phụ thuộc nhiều vào các hạn chế tài nguyên bên ngoài (ví dụ, trong một công ty, mọi người có thể không sẵn sàng chờ đợi hơn một ngày để có kết quả; một số người có thể chạy mô phỏng của họ trong nhiều tháng). Thử nghiệm được chạy trên một máy lõi tứ đơn, đối với tôi, về hiệu năng cạnh chảy máu.

Khi tôi đang tìm kiếm dữ liệu để trả lời câu hỏi này, tôi đã tìm thấy những bài báo cách đây hơn 10 năm đang giải quyết các vấn đề có cùng kích thước, điều đó cho tôi thấy rằng chúng ta có thể làm tốt hơn với cơ sở hạ tầng hiện có. Chắc chắn không phải là biến, nhưng dựa trên tỷ lệ của các phương thức điểm bên trong , nếu đại số tuyến tính và song song được triển khai tốt, và bạn có thời gian và một cụm có kích thước khiêm tốn, tôi không thấy tại sao bạn không thể cố gắng giải quyết vấn đề với hoặc có thển 3.5 10 7 10 8 81013n3.5107 108các biến số (chỉ khi bạn có cấu trúc đặc biệt, bạn có thể khai thác bằng các phương pháp phân rã như phân rã của Benders hoặc Dantzig-Wolfe, cộng với các thuật toán tạo mặt phẳng cắt). (Tôi sẽ nói thêm rằng tôi đang bỏ qua ảnh hưởng của các ràng buộc, điều này làm phức tạp các vấn đề tùy thuộc vào số lượng bit được lưu trữ; hiệu ứng này chỉ làm cho các ước tính dưới đây trở nên bi quan hơn.)

Tôi tin rằng GAM có cách triển khai song song và vì nó sử dụng các bộ giải như CPLEX, Gurobi, MOSEK và Xpress (nghĩa là bốn bộ giải trong điểm chuẩn Aron trích dẫn), tôi không hiểu tại sao người ta không thể chạy các trường hợp song song người giải quyết (trên thực tế, tôi biết điều này là có thể đối với CPLEX và Gurobi). Các yếu tố giới hạn sẽ là bộ nhớ (vì bộ nhớ đắt tiền) và giao tiếp nhiều hơn sức mạnh xử lý, vì cuối cùng, một chương trình tuyến tính sẽ giảm đi việc xây dựng và giải quyết một hệ phương trình tuyến tính (một sự đơn giản hóa lớn, vâng, nhưng đại số tuyến tính là thứ chúng ta biết cách song song).

Nhưng các biến là quá nhiều. Giả sử rằng bộ nhớ và giao tiếp không phải là đối tượng, bạn cần phải xử lý vấn đề lớn nhất trong điểm chuẩn và chia tỷ lệ thời gian chạy trên máy đó theo hệ số khoảng trước khi có thể khai thác cấu trúc đặc biệt mà vấn đề cụ thể của bạn có thể có. Điều đó không có nghĩa là bạn không thể cố gắng giải quyết nó bằng cách sử dụng các phương pháp mà Giáo sư Neumaier đã đề xuất, nhưng một giải pháp cho sự tối ưu có thể là không thể mà không phải chờ đợi một thời gian thực sự dài, sử dụng một máy tính khổng lồ và có một triển khai có thể mở rộng Bộ giải LP điều chỉnh cho máy tính khổng lồ đó. 10 2410131024

Là một thứ tự rất lớn về ước tính cường độ, Intel Core 2 Quad được sử dụng trong các trích dẫn Aron chuẩn có thể hoạt động ở tốc độ tối đa 40 gigaflop. Giả sử bạn đã sử dụng Jaguar, siêu máy tính của Phòng thí nghiệm quốc gia Oak Ridge và bạn có thể sử dụng toàn bộ máy (cực kỳ khó, nhưng hãy mơ lớn), bạn sẽ có khoảng 2 petaflop trong tầm tay (dựa trên TOP 500 số ở đây , hoặc gấp khoảng 50000 lần sức mạnh tính toán, không tính các hình phạt do giao tiếp, hạn chế bộ nhớ hoặc thực tế là không ai từng chạy ở tốc độ cao nhất (thậm chí không phải là điểm chuẩn LINPACK).

Biến từ thành có nghĩa là khoảng 10.000 nhân tăng, bạn có thể chia ra một cách có thể hiểu được giữa một cụm 50-100 máy và chờ đợi một tháng (giả sử bạn sẵn sàng chờ đợi, bạn có máy móc, và một lần nữa, bộ nhớ và giao tiếp không giới hạn, tất cả đều là "ifs" lớn). Biến từ đến có nghĩa là đi từ máy tính để bàn của bạn sang sử dụng tất cả Jaguar và chờ khoảng đến năm. (Và một lần nữa, những hiệu ứng này cũng bỏ qua thực tế là bạn sẽ có nhiều ràng buộc hơn!) 10 7 10 6 10 13 10 17 10 18106107106101310171018


Tôi sẽ bắt đầu với ước tính thời gian sử dụng siêu máy tính sẽ mất bao lâu, nhưng một trong những vấn đề là nhiều bộ giải LP nhanh hơn dựa vào phân tách Cholesky, và cuối cùng sẽ làm nổ tung việc sử dụng bộ nhớ do lấp đầy trong. Ngoài ra, các máy này thực hiện song song bộ nhớ chia sẻ, nhưng song song bộ nhớ phân tán thực sự, vì lý do nào đó, hơi hiếm trong các bộ giải LP thương mại ngay bây giờ.
Aron Ahmadia

O(n3.5)

O(n2.5)

@AronAhmadia: Đồng ý. Tất cả những gì tôi thấy trong hướng dẫn sử dụng là các yếu tố Cholesky dày đặc hoặc thưa thớt được sử dụng để giải quyết hệ thống phương pháp rào cản. Không ai sử dụng các phương thức không gian con Krylov cả, tôi cũng không thấy song song bộ nhớ phân tán (tức là dựa trên MPI). Tôi không thấy các vấn đề tối ưu hóa (ngoại trừ các vấn đề bị ràng buộc bởi PDE) được giải quyết trên các siêu máy tính. Có lẽ tôi không nhìn đúng giấy tờ.
Geoff Oxberry

O(n)O(n3)O(ne2)en=1013

0

Đó là một câu hỏi cũ, nhưng này, hơn 25 năm trước ai đó đã có thể giải quyết một ràng buộc 1.1M, vấn đề biến 2.6M trong 3 giờ trên cụm PC. http://www.maths.ed.ac.uk/~gondzio/CV/finance.pdf

Tôi muốn xem các phương trình tạo, có lẽ thật thông minh khi thực hiện một số phân tách nghiêm trọng trước khi bạn đưa vấn đề này vào các thuật toán, và tôi muốn nói với tư cách là một học viên rằng có lẽ nên nhai nó trước khi cho nó ăn phần cứng. Cũng âm thanh như kích thước sẽ gây ra lỗi số trong công thức cho bộ nhớ máy tính hạn chế và độ chính xá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.