2009-07-30 26 views
14

Tôi đang xem xét các tùy chọn cho khung lập trình tuyến tính và phi tuyến tính (tối ưu hóa).Microsoft Solver Foundation có phù hợp với nhu cầu của tôi không?

Yêu cầu là:

  1. Hỗ trợ các vấn đề lập trình phi tuyến tính với khoảng tuyến tính và. 100-1000 biến và lên đến khoảng 1000 ràng buộc (tôi thu thập đó là khá đơn giản). Các vấn đề phi tuyến tính có những ràng buộc liên quan đến phép nhân hoặc chia nhiều biến - không có gì phức tạp hơn thế.

  2. Tích hợp tốt với môi trường MS (SQL Server, MS Access, .NET, Excel)

  3. Rất vui được có sẽ hỗ trợ cho quảng cáo hoc định nghĩa vấn đề (ví dụ một số loại ngôn ngữ kịch bản hoặc hỗ trợ cho việc xác định và giải quyết vấn đề trong giao diện người dùng Excel)

  4. Tôi sẽ sử dụng Excel một mình nhưng tôi cũng cần khả năng giao tiếp với trình giải quyết theo chương trình (môi trường .NET) cho các vấn đề lớn hơn.

Để truy cập theo chương trình, tôi có ý định phát triển giao diện trừu tượng cho người giải quyết (để chúng tôi có thể thay đổi người giải quyết nếu cần). Sau đó, tôi tình cờ gặp MS Solver Foundation (http://code.msdn.microsoft.com/solverfoundation) đã có giao diện này. Tôi tự hỏi nếu nó phù hợp với các hóa đơn đối với các yêu cầu khác của chúng tôi và những gì người dùng ý kiến ​​có của nó.

Trả lời

4

Hóa ra Microsoft Solver Foundation không hỗ trợ lập trình phi tuyến tính. Kể từ tháng 1 năm 2010, nhóm nghiên cứu official word về điều này là họ đang xem xét nó nhưng nó không có trong kế hoạch trước mắt của họ.

Vì vậy, tôi đã giải quyết trên AMPL làm giao diện ngôn ngữ lập mô hình và KNITRO cho thuật toán bộ giải. KNITRO có vẻ tốt bởi vì nó bao gồm ba thuật toán trong một (2 biến thể của Interior Point Method và 1 của Active Set method). Xem thêm trang Wikipedia cho KNITRO.

Tôi định cư trên AMPL và KNITRO sau khi thử các phiên bản đánh giá của cả hai trên cổng web tuyệt vời được Quỹ tài trợ quốc gia Hoa Kỳ và US Department of Energy tài trợ tại Hoa Kỳ Argonne National Laboratory được gọi là NEOS. NEOS cung cấp giao diện web để tải lên mô hình toán học của bạn bằng AMPL hoặc GAMS (và đối với một số trình giải quyết), sau đó nhận lại kết quả của bạn qua trang kết quả và qua email. Có được cho là một giao diện email để gửi các vấn đề nhưng tôi đã không thành công trong việc đó để làm việc.

Bây giờ, tất cả điều này đều tốn tiền. KNITRO và AMPL là các sản phẩm thương mại. Cuối cùng giải pháp sẽ có giá khoảng 8.000 USD.Không rẻ. Nếu bạn đang tìm kiếm giải pháp miễn phí, tôi nghĩ rằng các tùy chọn được giới hạn khá nhiều cho IPOPT cho người giải quyết (mà tôi cũng đã thử trên NEOS và thấy rằng nó hoạt động tốt nhưng tôi không thể chọn nó vì các lý do phi kỹ thuật khác) gửi giao diện AMPL. Bạn có thể thiết lập vấn đề của mình thông qua API của IPOPT. Không giống như API của Micrsoft Solver Foundation, giao diện IPOPT phức tạp hơn một chút và khó khăn nhất, nó yêu cầu ứng dụng gọi điện của bạn thực hiện callback tính toán các dẫn xuất đầu tiên (và, có thể, thứ hai) của các phương trình phi tuyến tính của mô hình của bạn. Việc mô hình hóa giao diện ngôn ngữ (như AMPL) sẽ giải quyết vấn đề này cho bạn bởi vì chúng có thể tính các dẫn xuất biểu tượng từ tất cả các phương trình được viết bằng ngôn ngữ của chúng.

+6

tại thời điểm hiện tại [trang chủ] (http://code.msdn.microsoft.com/solverfoundation) __ "Solver Foundation 3.0 cung cấp các khả năng mới để xây dựng và giải quyết phi tuyến "__ – bobobobo

+1

Solver Foundation đã ngừng hoạt động như một sản phẩm độc lập khoảng một năm trước: http://nathanbrixius.wordpress.com/2012/05/25/no-more-standalone-releases-of-microsoft-solver-foundation / – vitaut

2

Dựa trên các yêu cầu được liệt kê của bạn, có vẻ như Microsoft Solver Foundation đáp ứng mọi yêu cầu của bạn và sau đó một số yêu cầu. Đọc "Quỹ giải quyết là gì?" tài liệu trên trang web của Solver Foundation. Nó đề cập đến lập trình tuyến tính, lập trình phi tuyến tính, Develop in .NET, có thể sử dụng trong Excel, Solver Foundation cũng đi kèm với một bổ trợ Microsoft Office Excel để cung cấp một môi trường mô hình hoàn chỉnh trong một giao diện quen thuộc.

+2

Tôi đã thử Microsoft Solver Foundation nhưng nó không hỗ trợ các vấn đề phi tuyến tính. – Emmanuel

+4

Kể từ tháng 11 năm 2010, Solver Foundation 3.0 hỗ trợ các mô hình phi tuyến – bobobobo

3

Tôi đã thử Solver Foundation về một vấn đề tôi đã cố gắng (không thành công) để giải quyết trong quá khứ và đã giải quyết nó trong 2 ngày, bao gồm cả việc học Solver API. Hiệu suất bộ giải là tuyệt vời và API SFS (Dịch vụ nền tảng của Solver) là AWESOME.

1

Thư viện GLPK dựa trên GNU là một tùy chọn tuyệt vời, miễn phí. Tôi đã ném 1000 và 1000 của các vấn đề cột vào nó không phải lo lắng. Nó có một vài định dạng định nghĩa vấn đề khác nhau, nhưng dễ nhất cho tôi sử dụng thông qua API C hoặc C++. Cải tiến cho các động cơ đằng sau nó xảy ra tất cả các thời gian. Tôi tin rằng một số hàm bao có sẵn quá (ví dụ. Perl, Python).

Các vấn đề liên quan