Optimization


重要網站

  1. NEOS Guide for Optimization
  2. Decision Tree for Optimization Software
  3. Global Optimization
  4. Optimization Online

lp_solve

lp_solve 是實用級的線性規劃/整數規劃解題工具, 以 netlib 的線性規劃問題測試時, 可以在合理的時間內解決上千變數/條件的問題, 媲美甚至超越許多同性質的商用軟體. (而不只是 教學級 的軟體).

在任何 unix 環境下, 或在 MS Windows 外掛的 cygwin 環境下都可以編譯 lp_solve. 直接下 make 就會產生一個 lp_solve 的可執行檔. 再打 make test 它會把 lp_examples 子目錄裡面的範例問題跑一遍, 並與預先存好的結果比較. 如果出現 "*** ... please check ***" 的警訊不多, 應該就沒有問題.

它接受兩種輸入格式: 古老的 .mps 格式 (見 MPS.description) 及簡單易懂的 .lp 格式 (見範例目錄下的檔案) 如果你有實際的線性規劃問題要解, 但手邊的資料格式不對, 可以先用簡短的 perl 程式將你的資料轉為 .mps 或 .lp 再來解. 如果沒有用命令列選項特別指定, lp_solve 內定讀取 .lp 格式. 請自行手動測試一遍: ./lp_solve < lp_examples/ex3.lp

lp 格式說明: 第一列是 objective function; 以下各列是 constraints. 你可以在每個 constraint 前面加上一個任意取的名字 (後面加冒號與 constraint 不等式分開); 而第一列前面則可以加上 max: 或 min: 表示要求最大值或最小值. 但 objective function 內不可以有常數項.

它還有很多選項可用, 請下 ./lp_solve -h | less 詳讀其說明.

另外有三個附屬小程式: lp2mps 與 mps2lp 可以將 .lp 與 .mps 檔互轉; demo 則示範如何寫 c 程式去呼叫它的副程式庫, 想將來 lp_solve 納入你的 c 程式的人, 可以參考 demo.c 與 HARTMUT_DOCUMENTATION. 你的成果必須符合 LGPL 的要求.

沒有時間看的有趣網站

  1. 積沙成塔---多層感知機架構
  2. Omuses: a tool for the Optimization of Multistage Systems
  3. SADE Technology
  4. COOOL (tools for writing optimization code)
  5. The Ant System: Optimization by a colony of cooperating agents - Dorigo, Maniezzo, Colorni (ResearchIndex)
  6. maximizing the det. of a matrix subject to linear matrix inequalities