2010-04-15 15 views
5

Tôi có một ứng dụng trong C#, tôi cần phải thực hiện một số tính toán tối ưu hóa, như Excel Solver Add-in, một tùy chọn chắc chắn là viết thực hiện bộ giải của riêng tôi, nhưng tôi thiếu thời gian, vì vậy tôi nhìn vào các thư viện đã tồn tại có thể giúp tôi với điều này.Cách triển khai chức năng Excel Solver trong C#?

Tôi đã cố gắng Microsoft Solver Foundation, mà có vẻ khá gọn gàng và mát mẻ, vấn đề là nó dường như không làm việc với các loại tính toán mà tôi cần phải làm.

Khi kết thúc câu hỏi này, tôi sẽ thêm thông tin về các phép tính tôi cần thực hiện và tối ưu hóa. Vì vậy, về cơ bản câu hỏi của tôi là nếu bất kỳ bạn biết về bất kỳ thư viện nào khác mà tôi có thể sử dụng cho mục đích này hoặc bất kỳ hướng dẫn nào có thể giúp giải quyết riêng của tôi hoặc bất kỳ ý tưởng nào giúp tôi giải quyết vấn đề này .

Cảm ơn.

Thông tin bổ sung:

Đây là dữ liệu tôi cần phải tính toán:

Tôi có 7 biến, cho phép gọi họ là var1, var2, ..., var7

Các trở ngại cho các biến này là:

  • Tất cả chúng cần là 0 < = varn < = 0.5 (trong đó n là số o f biến)
  • Tổng của tất cả các biến nên được tính bằng 1

Mục tiêu là để phát huy tối đa công thức mục tiêu, mà trong Excel trông như thế này:

(MMULT(TRANSPOSE(L26:L32),M14:M20))/(SQRT(MMULT(MMULT(TRANSPOSE(L26:L32),M4:S10),L26:L32)))

Phạm vi mà bạn thấy trong công thức này, L26: L32, thực sự là phạm vi với các biến từ trên, var1, var2, ..., varn.

M14: M20 và M4: S10 có phạm vi dữ liệu mà tôi nhận được từ các nguồn khác nhau, có nhiều khả năng giá trị thập phân hơn. Như tôi đã nói trước đây, tôi đã sử dụng Microsoft Solver Foundation, tôi đã tạo ra nhiều chức năng xử lý các hoạt động của công thức mục tiêu, nhưng khi tôi cố gắng giải quyết mô hình nó luôn thất bại, tôi nghĩ đó là vì sự phức tạp của các hoạt động.

Trong mọi trường hợp, tôi chỉ muốn hiển thị những dữ liệu này để bạn có thể có ý tưởng về loại tính toán mà tôi cần triển khai.

Trả lời