LINGO是一種綜合工具,旨在使線性、非線性(凸/非凸/全局)、二次、二次約束、二階錐、半定、隨機和整數優化模型的建立和求解更快、更容易和更高效。LINGO提供了一個完全集成的包,其中包括用于表示優化模型的強大語言、用于構建和編輯問題的全功能環境以及一組快速內置解決方案。
LINGO簡介
LINGO版本區別介紹
LINGO 能方便地與 Excel、文本文件、數據庫文件等其他軟件交換數據;主要表達方式如下:
· 通過 Windows 剪貼板傳遞數據
· 通過文本文件讀取數據,并把數據(計算結果)寫入文本文件
· 通過 Excel 文件中導入數據,并將計算結果導出到 Excel 文件中
Lingo提供與Access數據庫之間的數據傳遞,LINGO提供 ODBC(開放式數據庫)接口,為數據庫管理系統(DBMS)定義了一個標準化接口,其他軟件可以通過這個接口訪問任何 ODBC 支持的數據庫,LINGO 為Access、DBase、Excel、FoxPro、Oracle、Paradox、SQL Sever、Text Files 安裝了驅動程序,能與這些類型的數據庫文件交換數據。
在LINGO模型求解時,系統會首先對模型進行編譯(Compile),在 LINGO 對模型進行編譯、求解或執行其他與模型相關的命令時,都可能會出現一些語法或運行錯誤。出現錯誤時,系統會彈出一個出錯報告窗口,顯示錯誤代碼,并指出錯誤所在。這些錯誤報告信息能夠提示用戶發現原來模型中的錯誤,從而才能有可能盡快改正錯誤,得到正確的模型。Lingo 提供了完整詳盡您的錯誤編碼及含義對照表。LINGO 的動態鏈接庫接口 (DLL)與對象鏈接與嵌入(OEL)的接口Lingo 可以隨時調用的DLL(動態數據庫),調用 DLL 的能力是所有 Windows 開發環境的標準特性 ( 例如: C#.NET, VB.NET, Visual Java, Visual Basic, Visual C++, 或者 Delphi. 等諸如之類的Windows 開發環境無縫地將 Lingo 的函數功能嵌入到您自己的應用程序中。)。LINGO 的 DLL 接口功能非常強大,您的應用程序可以充當優化問題的用戶前端——處理數據輸入和存儲,以及準備將信息傳遞到內存中的 Lingo。還可以設置它來顯示解決方案,并為用戶生成定制的報告。Lingo 包括可調用的 DLL 和 OLE 接口,它可以讓您訪問所有的特性和命令。簡言之, Lingo 支持接口廣泛,例如常用的 C++、Java、Python、.Net、Matlab、Visual Basic、C#.NET、VB.NET、Delphi、DLL、OLE、ODBC等等。
您可能想要構建一個客戶或同事使用的自定義優化應用程序,而不是單純的使用 LINGO 的交互式環境。Lingo 給您提供了多種選擇,將其功能整合到您自己的應用程序中。
所有Lingo解算器都包含預處理例程。線性和非線性解算器包括縮放和模型縮減技術。在困難復雜的數字模型中,擴展程序可以提高速度和穩定性。模型還原技術通常可以通過分析原始的公式,并將其簡化為更小的問題,從而使模型更快地解決問題。整數解析器包括廣泛的預處理和切割生成例程。
可以交互式地使用 LINGO,也可以從用戶編寫的應用程序(僅在 Windows 平臺上)調用。它有一個標準的用戶界面和一個模型編輯器。Windows 版本可以讀取數據并將解決方案信息寫入 Excel 和各種數據庫應用程序。它有一種可用于矩陣代的建模語言。Lingo 的矩陣函數功能支持的操作包括:特征值和特征向量的計算、矩陣的行列式,矩陣的分解,矩陣的逆矩陣反矩陣,和矩陣的轉置等功能。
Lingo的建模語言可以幫助您大幅度地縮短您的模型開發時間。在不到一個頁面的情況下,使用Lingo可以有效地表達非常大的模型。建模語言與標準的數學符號的相似性使它很容易被閱讀。對于開發人員來說,模型更容易維護,并且讓同事能夠閱讀和理解。使用Lingo,您可以輕松地使您的模型“可伸縮”。這意味著您的模型的維度可以在不需要更改您的問題表達式的情況下進行更改。例如,假設您正在尋找從幾個不同的倉庫向幾個不同的客戶提供產品的便宜的方法。如果倉庫或客戶的數量發生了變化,那么許多建模包將需要對問題的制定進行重大的更改。然而,用 Lingo 來說,您的問題不需要修改。您可以簡單地更改數據文件的大小,而 Lingo 則負責其余的內容。
LINGO包括一套全面的分析工具,用于調試不可行的線性、整數和非線性程序,使用高級技術將不可行性的來源隔離到原始約束的最小子集。它還具有執行敏感性分析的工具,以確定對某些數據組件(例如,目標向量和右導數值 e.g. objective vector and right-hand-size values)變化的最優基礎的靈敏度。
Lingo內置的QP(國際上廣泛認可的識別工具)識別工具是一個有用的代數預處理器,它可以自動判斷任意的 NLP 是否實際上是一個凸二次模型。然后,更快的識別和模傳遞給二次方程解算器,這可以作為(barrier)屏障解決方案的一部分。當障礙求解器選項與全局選項結合時,LINGO 除了可以自動識別圓錐模型規劃,還可以自動識別凸二次模型。
線性化是一種綜合的重新制定工具,它可以自動轉換許多不平滑的函數和操作符(例如:最大和絕對值) 為一系列線性的,數學上等價的表達式。許多不平滑的模型可能是完全線性化的。這使得線性求解程序能夠快速找到一個全局的解決方案,否則將會是一個難以處理的非線性問題。
在NLP和混合整數NLP的解決方案空間中,多啟動求解器可以智能地生成一系列候選起始點。一個傳統的NLP解析器,每個起始點都被調用,以找到一個局部最優值。對于非凸型NLP模型,由多起點解算器所發現的最佳解的質量往往優于傳統的非線性解算器的單一解。用戶可調參數控制了多啟動的最大數量。
Lingo的混合整數解析的能力擴展到線性、二次方和一般的非線性、整數規劃模型。它包含了一些先進的解決方案技術,如切割生成、樹重新排序以動態地減少樹的生長,以及先進的啟發式和預處理策略。
隨機規劃求解程序利用多階段隨機模型,在不確定的情況下支持決策。用戶通過標識分布函數來描述這種不確定性,這些分布函數要么是內置的,要么是用戶定義的,描述了每個隨機動態變量。隨機動態解算器將最優化模型,使初始階段的成本最小化,并在計劃周期范圍內控制預期成本。先進的采樣模式也可用于近似連續的分布。Lingo 的隨機解算器也支持機會約束模型,根據特定的概率,允許一個或多個約束條件被違反。
The barrier 解算器是內生法優化的強大選項,主要用于線性優化中,解決大規模運算的問題,比常用的單純形算法的運算速度要快得多;同時也可用于求解二次方、二次約束和圓錐規劃的優化問題。對于大規模的、稀疏的模型,Lingo的先進的屏障解算方法提供了巨大的速度優勢。
全局規劃解析器結合了一系列的范圍邊界(例如:區間分析和凸分析)和范圍縮小技術(例如:線性規劃和約束傳播)在一個分支和約束的框架內,以找到已被證明的非凸非線性程序的全局解決方案。傳統的非線性解決方案有可能會被困在最優的局部解決方案中,但您在使用全局規劃解析器時,情況不再是這樣了。Global Solver 提供全局最優解的選項,不同于一般算法只能獲得局部的最優解,它可以通過多起始點的方式,通過劃分凸規劃,調用分支定界管理程序,從多個局部最優解中確定全局最優解, 將非線性模型優化到全球最優解。
這個選項主要用于錐規劃優化、解決了二階錐(SOC)編程模型和單純整數雙層錐規劃(PICONE),Conic 選項必須同時配合Barrier選項一起使用。
Bar、Bubble、Contour、Curve、Histogram、Line、Net arc、Net node、Pie、Radar、Scatter、Spacetime、Surface 、Tornado
Lingo 提供了快速啟動和運行所需的所有工具。Lingo 使用者手冊有詳細的功能定義, 可使你迅速入門和上手,每個版本都包含了 Lingo 的優化建模的副本,這是一個全面的建模文本,討論所有主要的線性、整數和非線性優化問題。此外,Lingo 還提供了數十個實用工作的案例,供您修改和擴展。
LINGO Super
LINGO Hyper
LINGO Industrial
LINGO Extended