Độ phức tạp của thuật toán đơn giản


36

Giới hạn trên của thuật toán đơn giản để tìm giải pháp cho Chương trình tuyến tính là gì?

Làm thế nào tôi sẽ đi tìm một bằng chứng cho trường hợp như vậy? Có vẻ như trường hợp xấu nhất là nếu mỗi đỉnh phải được truy cập thì đó là . Tuy nhiên, trong thực tế, thuật toán đơn giản sẽ chạy nhanh hơn đáng kể so với điều này cho các vấn đề tiêu chuẩn hơn.O(2n)

Làm thế nào tôi có thể suy luận về độ phức tạp trung bình của một vấn đề đang được giải quyết bằng phương pháp này?

Bất kỳ thông tin hoặc tài liệu tham khảo được đánh giá rất cao!


5
Lưu ý rằng, như mashca đã nói trong một câu trả lời , chúng tôi không thực sự có thuật toán đơn giản. Có rất nhiều thuật toán đơn giản khác nhau tùy thuộc vào sự lựa chọn của quy tắc xoay vòng.
Tsuyoshi Ito

2
Một khối lập phương có kích thước có đỉnh, và do đó, nếu một giới hạn trên cho bất kỳ biến thể đơn giản nào trên các khối (ví dụ: Klee-Minty). Tuy nhiên, có các khối đa diện ở chiều với các mặt , chẳng hạn như các đa giác tuần hoàn kép, có nhiều hơn , vì vậy không phải là giới hạn trên của thời gian chạy của phương pháp đơn giản đối với ma trận ràng buộc vuông trong chung. n2nn2n2n2n
Rahul Savani

Câu trả lời:


72

Thuật toán đơn giản thực sự truy cập vào tất cả đỉnh trong trường hợp xấu nhất ( Klee & Minty 1972 ), và điều này hóa ra đúng với bất kỳ quy tắc trục xác định nào. Tuy nhiên, trong một bài viết đánh dấu bằng cách sử dụng phân tích được làm mịn, Spielman và Teng (2001) đã chứng minh rằng khi các đầu vào của thuật toán bị nhiễu một chút ngẫu nhiên, thời gian chạy dự kiến ​​của thuật toán đơn giản là đa thức cho bất kỳ đầu vào nào - về cơ bản điều này nói rằng bất kỳ vấn đề nào cũng có một vấn đề "gần đó" mà phương pháp đơn giản sẽ giải quyết một cách hiệu quả, và nó bao gồm khá nhiều chương trình tuyến tính trong thế giới thực mà bạn muốn giải quyết. Sau đó, Kelner và Spielman (2006) đã giới thiệu2n một thuật toán đơn giản ngẫu nhiên thời gian đa thức mà truley hoạt động trên bất kỳ đầu vào nào, ngay cả những thuật toán xấu cho thuật toán đơn giản ban đầu.


36

Như Lev đã nói, trong trường hợp xấu nhất, thuật toán truy cập vào tất cả các đỉnh 2d trong đó d là số lượng biến. Tuy nhiên, hiệu suất của thuật toán đơn giản cũng có thể phụ thuộc rất nhiều vào quy tắc trục cụ thể được sử dụng. Theo như tôi biết, vẫn còn là một câu hỏi mở nếu tồn tại một quy tắc trục xác định cụ thể với thời gian chạy trường hợp xấu nhất theo cấp số nhân. Nhiều ứng cử viên đã được loại trừ bởi kết quả ràng buộc thấp hơn. Gần đây, Friedmann, Hansen và Zwick cũng cho thấy giới hạn dưới không đa thức đầu tiên đối với một số quy tắc trục ngẫu nhiên tự nhiên với một số chỉnh sửa được cung cấp sau .

Tuy nhiên, thêm vào kết quả phân tích được làm mịn được đề cập bởi Lev: Theo bài báo bán nguyệt của Spielman và Tengs giới thiệu phân tích được làm mịn, Vershynin đã cải thiện giới hạn của họ hơn nữa vào năm 2006. Ông cho thấy thời gian chạy dự kiến ​​trên các trường hợp hơi bị nhiễu chỉ là số lượng logarit. ràng buộc n , giảm từ n86 .


4
và như JeffE đã chỉ ra trong một câu hỏi khác ( cstheory.stackexchange.com/questions/2149/ mẹo ) phương pháp phụ trợ tốt nhất hiện tại là một loại đơn giản kép.
Suresh Venkat

Liên kết đến giấy Vershynin đã chết.
kutschkem

8

Để có cái nhìn sâu sắc về phân tích trường hợp xấu nhất và trường hợp trung bình của phương pháp đơn giản, bạn nên đọc "Phân tích được làm mịn: Tại sao thuật toán Simplex thường mất thời gian đa thức". bởi Spielman và Teng.


3

Một tài liệu tham khảo tốt về lý do tại sao Simplex không chạy trong thời gian đa thức, thay vì lý do theo cấp số nhân là Tối ưu hóa kết hợp của Papadimitriou & Steiglitz, Phần 8.6 trong đó họ chứng minh rằng Simplex không phải là thuật toán thời gian đa thức.


1

D= =200

GLPK Simplex Optimizer, v4.65
200 rows, 200 columns, 20100 non-zeros
Preprocessing...
199 rows, 200 columns, 20099 non-zeros
Scaling...
 A: min|aij| =  1.000e+00  max|aij| =  1.607e+60  ratio =  1.607e+60
...
Constructing initial basis...
Size of triangular part is 199
*     0: obj =   0.000000000e+00 inf =   0.000e+00 (200)
*     1: obj = -6.223015278e+139 inf =   0.000e+00 (0)
OPTIMAL LP SOLUTION FOUND
Time used:   0.0 secs
Memory used: 3.4 Mb

Bất cứ ai cũng có thể đề xuất các cách khác để xây dựng các vấn đề khó khăn cho phương pháp đơn giản, chậm nhưng không bị ràng buộc về bộ nhớ?

Đã thêm: hình vuông Latin hay hoán vị 3d-ma trận dường như có nhiều đỉnh - bao nhiêu?
Lý thuyết và thực hành gần với lý thuyết hơn là trong thực tế.


-1

Các gốc thuật toán Simplex có thể bất đồng; nó chu kỳ trên một số trường hợp nhất định. Do đó, không có ràng buộc chung. Các câu trả lời khác cung cấp cho bạn câu trả lời cho các sửa đổi khác nhau của thuật toán Simplex.

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.