Điều gì là quá lớn đối với các phương pháp đại số / tối ưu hóa tuyến tính tiêu chuẩn?


8

Các đại số tuyến tính số khác nhau và các phương pháp tối ưu hóa số có các chế độ kích thước khác nhau trong đó chúng là một 'ý tưởng tốt', bên cạnh các thuộc tính riêng của chúng. Ví dụ, đối với các vấn đề tối ưu hóa rất lớn, phương pháp độ dốc, độ dốc ngẫu nhiên và phương pháp gốc tọa độ được sử dụng thay cho phương pháp Newton hoặc Điểm nội thất vì bạn không phải đối phó với Hessian. Tương tự, các phương pháp giải tuyến tính dày đặc dừng khả thi sau một kích thước nhất định.

Vì vậy, do cả thuật toán và phần cứng máy tính luôn thay đổi liên tục, cách tốt để biết và theo kịp, mức độ quá lớn đối với đại số tuyến tính tiêu chuẩn và bộ giải tối ưu hóa là gì?

(Tôi đang nghĩ về điều này bởi vì khi bạn là người dùng cuối của thuật toán số, điều quan trọng là phải có ý tưởng mơ hồ khi những thuật toán đó có thể được áp dụng. Một phần trong đó là cấu trúc vấn đề và loại giải pháp mong muốn, nhưng một phần của nó cũng chỉ là kích thước của vấn đề.)

EDIT: Để cụ thể hơn, điều khiến tôi suy nghĩ về điều này là thay đổi quy tắc ngón tay cái ở giới hạn trên để giải quyết vấn đề lớn về thuật toán điểm nội bộ. Các bài báo trước đó cho biết kích thước nên ở khoảng 1000 trong khi các bài báo sau đã sửa đổi lên tới 5000 và thậm chí các bài báo gần đây còn cho phép lớn hơn tùy thuộc vào việc bạn có thể tận dụng sự thưa thớt hay không. Đó là một phạm vi khá lớn, vì vậy tôi tò mò không biết cái gì là lớn đối với các phương pháp điểm nội thất nghệ thuật.


1
Tôi hiểu tại sao điều này sẽ tốt để biết, nhưng khi câu hỏi đứng, dường như tôi quá mơ hồ và chung chung để được trả lời. Khả năng ứng dụng của các phương pháp như là một hàm của kích thước của vấn đề phụ thuộc rất nhiều vào các vấn đề và phương pháp được đề cập.
OscarB

Câu hỏi của bạn có vẻ hơi quá rộng ... Như @OscarB đã chỉ ra, tính khả thi và độ phức tạp của thuật toán tối ưu hóa phần lớn phụ thuộc vào loại vấn đề bạn đang cố gắng giải quyết. Bạn nên tinh chỉnh câu hỏi của mình hơn một chút ... Ví dụ: bạn có thể đặt câu hỏi trong bối cảnh của một vấn đề tối ưu hóa cụ thể hoặc loại vấn đề.
Paul

Câu hỏi có thể được trả lời cho các thuật toán nối tiếp và thuật toán song song, riêng biệt. Tôi nghĩ rằng sự lựa chọn của các thuật toán phụ thuộc chủ yếu vào bộ nhớ và thời gian tiêu thụ cho một vấn đề nhất định. Nếu bạn nói rằng một số thuật toán không thể áp dụng được khi vấn đề quá lớn, tôi nghĩ bạn có nghĩa là độ phức tạp tiệm cận của bộ nhớ và / hoặc thời gian sử dụng đang tăng quá nhanh với kích thước của vấn đề. Vì vậy, chỉ cần tìm ra sự phức tạp tiệm cận của thuật toán của bạn.
Hui Zhang

Câu trả lời:


7

O(n)

Lưu ý rằng vẫn có thể sử dụng tối ưu hóa dựa trên Newton với không gian thiết kế lớn, bạn chỉ cần giải quyết lặp lại với Hessian. Có nhiều cách tiếp cận để làm như vậy một cách hiệu quả.

Vì vậy, tất cả phụ thuộc vào cách bạn định nghĩa "phương pháp tiêu chuẩn". Nếu định nghĩa của bạn bao gồm các phương pháp bảo tồn cấu trúc đa cấp, thì các vấn đề cực kỳ lớn có thể xảy ra. Nếu định nghĩa của bạn bị giới hạn ở các phương pháp dày đặc không có cấu trúc, kích thước bài toán khả thi sẽ nhỏ hơn nhiều vì các thuật toán không "có thể mở rộng" theo thời gian hoặc không gian.


3

Giới hạn chủ yếu được đưa ra bởi bộ nhớ cần thiết để lưu trữ biểu diễn ma trận và thời gian để truy xuất nó từ bộ nhớ.

Điều này làm cho một vài ngàn giới hạn cho phương pháp ma trận dày đặc trong các môi trường đơn giản. Đối với các vấn đề thưa thớt, giới hạn cho người giải quyết trực tiếp cao hơn nhiều, nhưng phụ thuộc vào mô hình thưa thớt, vì phải điền vào chỗ trống. Giới hạn cho các phương pháp lặp cho các bộ giải tuyến tính là chi phí của một vectơ ma trận nhân lên.

Giới hạn để giải các bài toán con tuyến tính trực tiếp chuyển thành các giới hạn tương ứng cho các bộ giải cục bộ cho các hệ phương trình phi tuyến và các bài toán tối ưu hóa.

Người giải quyết toàn cầu có giới hạn nghiêm trọng hơn nhiều, vì chúng bị giới hạn bởi số lượng các bài toán con cần được giải quyết trong một nhánh và khung ràng buộc, hoặc bởi lời nguyền của chiều trong các phương pháp tìm kiếm ngẫu nhiên.


3

Đối với một loại vấn đề nhất định, các cách tốt để tìm ra cái gì tạo nên mức độ "quá lớn" lớn đến mức nào:

  • tìm kiếm tài liệu trong lĩnh vực của bạn; hiểu những yếu tố nào sẽ giới hạn thời gian thực hiện (bao gồm sử dụng bộ nhớ và giao tiếp)
  • nhìn vào các bộ vấn đề thử nghiệm (tốt hơn cho các thuật toán nối tiếp so với các thuật toán song song, vì tôi không biết nhiều bộ vấn đề thử nghiệm cho các thuật toán song song)
  • chia thuật toán thành các phần nhỏ hơn, cấu thành và sử dụng những gì bạn biết về các phần để suy luận về toàn bộ (ví dụ: Các phương thức không gian con Krylov đun sôi thành các vòng lặp của các sản phẩm vector ma trận, do đó bạn phải tìm ra có bao nhiêu lần lặp là "quá nhiều" và điều gì làm cho một sản phẩm vector ma trận "quá lớn")
  • hãy tự mình thử (trên máy nối tiếp hoặc nếu bạn có tài nguyên, máy song song). Xem mức độ lớn của một cá thể bạn có thể chạy hoặc chạy một số phiên bản có kích thước khác nhau và thực hiện phân tích tỷ lệ theo kinh nghiệm (thời gian so với kích thước sự cố).

Để đưa ra một ví dụ, trong tối ưu hóa toàn cầu, câu trả lời cụ thể phụ thuộc rất nhiều vào cấu trúc. Như Arnold Neumaier lưu ý, các thuật toán tối ưu hóa toàn cầu xác định có xu hướng bị giới hạn bởi số lượng các bài toán con phải được giải quyết trong khuôn khổ phân nhánh và liên kết (hoặc phân nhánh). Tôi đã giải quyết các chương trình tuyến tính số nguyên hỗn hợp (MILP) có chứa hàng ngàn biến nhị phân, nhưng tôi nghi ngờ rằng lý do tôi có thể giải quyết các vấn đề lớn như vậy (nói một cách tương đối, đối với các MILP) là do cấu trúc vấn đề là cần ít giải pháp phụ để giải quyết một số tập hợp các biến nhị phân quan trọng và phần còn lại có thể được đặt thành không. Tôi biết rằng vấn đề của tôi là "lớn"; Tôi đã chế tạo các loại MILP khác có kích thước tương tự để giải quyết chậm hơn hàng chục nghìn lần.

Có những bộ thử nghiệm tối ưu hóa toàn cầu cung cấp cho bạn ý tưởng về "chạy bộ", và tài liệu có thể cung cấp cho bạn ý tưởng về những vấn đề "lớn". Các chiến thuật tương tự tồn tại để tìm ra trạng thái hiện đại về quy mô vấn đề trong các lĩnh vực khác, đó là cách Jed Brown và Arnold Neumaier có thể trích dẫn những số liệu này. Thật tuyệt khi có được những con số này, nhưng nó có giá trị hơn nhiều để có thể tự mình tìm ra cách để có được chúng khi đến lú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.