lingo算法
- 教育綜合
- 2023-10-26 12:59:50
lindo與lingo軟件有什么區(qū)別
一、主體不同
1、lingo:是交互式的線性和通用優(yōu)化求解器。
2、lindo:是一個解決二次線性整數(shù)規(guī)劃問題的方便而強(qiáng)大的工具。
二、特點(diǎn)不同
1、lingo:特色在于內(nèi)置建模語言,提供十幾個內(nèi)部函數(shù),可以允許決策變量是整數(shù)(即整數(shù)規(guī)劃,包括 0-1 整數(shù)規(guī)劃),方便靈活,而且執(zhí)行速度非???。
2、lindo:主要設(shè)計原則是,如果一個用戶只是想解決一個簡單的問題,就不應(yīng)該在學(xué)習(xí)LINDO的基本特性上花費(fèi)太多的準(zhǔn)備成本。
三、用處不同
1、lingo:可以用于求解非線性規(guī)劃,也可以用于一些線性和非線性方程組的求解等,功能十分強(qiáng)大,是求解優(yōu)化模型的最佳選擇。
2、lindo:LINDO能在商業(yè)、工業(yè)、研究和政府等領(lǐng)域發(fā)揮巨大作用。
參考資料來源:百度百科-LINGO
參考資料來源:百度百科-LINDO
lingo有沒有算法求使一些值的最大值最小,就是:min(max(a,b,c,d,.....)),a,b,c,d...中最大的那個數(shù)最小。
這樣做成了非線性規(guī)劃了,辦法是轉(zhuǎn)化為線性規(guī)劃來做。對于這題,設(shè)定一個F則有 MIN=F; st. F>=a; F>=b; F>=c; ...... 當(dāng)然,也可以用非線性做,變成MIN=@SMAX(a,b,c,.....),但是求解很慢,需要全局求解。Lingo 怎樣實(shí)現(xiàn)窮舉法
題目模糊,且條件不全,不知道是你自己沒有打全,還是老師沒給全,或者需要自己去搜尋。這是個優(yōu)化問題,需要列出目標(biāo)函數(shù)和約束條件,然后通過lingo軟件編程求解,lingo求解的方法一般都是窮舉法,把所有可能的結(jié)果都找出然后根據(jù)你的約束條件篩選,然后在根據(jù)你的目標(biāo)函數(shù)吧所有的方案進(jìn)行比較,選出滿足你的目標(biāo)(即受益最大)的那個解(最優(yōu)解)。具體怎么做,需要你自己去學(xué)習(xí),我在這只能說一個大體的思路。希望能對你有幫助。怎么知道lingo死循環(huán)
lingo基本上不可能死循環(huán) 因?yàn)閘ingo的算法都是軟件自帶的 lingo只是將你給的問題轉(zhuǎn)化成約束和目標(biāo) 然后套用自帶的算法來求解 而自帶的算法很明顯會非常穩(wěn)定 基本上沒有死循環(huán)的可能性 所謂的jacobian overflow一般是lingo9的提示 這個不是什么溢出 而是lingo9破解版帶的幫助文件不全 在你有錯誤的時候找不到幫助文件 所以會提示這個 不要誤會 解的時間過長說明你的問題過于復(fù)雜 lingo自帶的算法解這個問題很慢 要知道整型的情況很大程度上依靠的是枚舉 非線性的算法效率也不會太高 總之不要認(rèn)為那是死循環(huán)學(xué)了lingo還用去學(xué)遺傳算法什么的嗎?
你提這個問題,說明你沒有用lingo解決過大型、復(fù)雜優(yōu)化問題。 lingo直接能算?你要看問題的性質(zhì)和規(guī)模。要是沒有有效算法的稍大一點(diǎn)問題,lingo是能算,但是時間也許需要幾年、幾個世紀(jì)。。。或許太陽系毀滅了還算不出了,只是“unknown”狀態(tài)。這不是危言聳聽。而且對于復(fù)雜的優(yōu)化問題,lingo根本算不上強(qiáng)健,復(fù)雜優(yōu)化問題很容易導(dǎo)致lingo崩潰(早期版本尤為突出,新出的14好一點(diǎn)),因?yàn)樗饕槍?jīng)典問題采用經(jīng)典算法求解。 遺傳算法、神經(jīng)網(wǎng)絡(luò)這種智能優(yōu)化算法就是用在這種場合的!可以減少運(yùn)算時間,代價是求得的只是近似最優(yōu)解。它們一定可以找到解。 但是實(shí)際使用時情況也許并不是這樣。 對于大規(guī)展開全文閱讀