1樓:網友
matlab是不需要預定義變數的,如果你要限制變數的範圍,可以獨自單個定義。
如果它們的範圍相同,可以直接賦值。
請問多變數遺傳演算法的matlab程式還有嗎?
2樓:網友
matlab本身就整合了遺傳演算法,留有介面可以進行二次開發。
遺傳演算法可以求解多個變數,比如200多個變數都可以。
3樓:藍色d象牙塔
應該還有備份吧,忘了。
matlab遺傳演算法工具箱優化變數定義問題
4樓:網友
你定義的目標函式有問題。應把h1、h2、h3看成乙個變數組,即h=[h1,h2,h3],即。
function y=fitfun1(h)y=25*h(1)+50*h(2)-10*h(3) %為了說明問題,把函式表示式寫成該形式。
如還不能理解,最好把具體問題貼出來,包括其約束條件,以便我們幫助你。
你好,用matlab遺傳演算法工具箱優化的時候,變數的範圍在哪輸入呢
5樓:網友
樓主這個會了嗎?我也想問。
6樓:鉞聯昱
你用的什麼工具箱。
如何在遺傳演算法中設定變數約束條件
7樓:4終
2、在優化工具箱中選擇遺傳演算法,圖中標出的選項。
3、遺傳演算法介面有一部分是輸入約束條件的,根據題目輸入對應的引數即可。
4、在命令列視窗將以上矩陣用變數代替,則在工具箱中直接輸入變數即可。
5、最後將已經定義好的引數,直接輸入在對應的位置即可。
8樓:由恨雲表旻
開啟遺傳演算法工具箱的窗體中會有下圖所示的選項,即是約束條件的。
至於新增的方式,這裡要重點的提一下,首先將問題抽象成規劃問題的標準形式(如果你不懂什麼是標準形式的話,建議你去翻閱運籌學那本書,上告訴你什麼是標準形式),然後用矩陣語言寫出來,最後將矩陣的係數填寫到線性不等約束和線性相等約束中,同時定義所求變數x的上界和下界(記住有多少個變數就有多少列,如果你發現有些條件中沒有出現某些變數,那麼就應該用0補足,這個是matlab解決規劃問題與lingo想比較麻煩的乙個地方,)。
當然可以,介面的東西是為了方便不熟悉matlab程式設計的人而設計出來的,但是其底層的演算法和介面肯定是有的。
碰到不懂的函式,請記得:help 函式名。
help ga 之後會得到一下一些函式。
gafind minimum of function using genetic algorithm
這個是定義。
syntax
這個是語法也即是呼叫的規則。
x = ga(fitnessfcn,nvars)
x = ga(fitnessfcn,nvars,a,b)
x = ga(fitnessfcn,nvars,a,b,aeq,beq)
x = ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub)
x = ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub,nonlcon)
x = ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub,nonlcon,options)
x = ga(problem)
x,fval] = ga(..
x,fval,exitflag] = ga(..
直接給你將最長的那個吧。
x = ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub,nonlcon,options)
x是返回所求的解。
fitnessfcn是適應度函式。
nvars是適應度函式中所含變數的維數。
a是不等式約束中變數的係數矩陣,b是不等式約束中不含變數的值矩陣。
aeq是等式約束中變數的係數矩陣,beq是等式約束中不含變數的值矩陣。
lb是下界,ub是上界。
nonlcon 是非線性約束條件。
至於options嘛。
我也木有用過,其實你也可以不用管的。
懂了木有呢,親?
9樓:牛得天下
1、一般有兩種方法,一種是在生成初始種群時只生成滿足約束的個體;另一種是隨機產生個體,並且在隨後的操作中判斷個體是否滿足約束條件。
2、這是遺傳演算法的特點決定的;遺傳演算法是一種隨機搜尋演算法,每次都因種群規模的不同、引數的不同而得到不同的結果。即便引數都相同,每次運算得到的近似最優解也不一定相同。一般取n次運算中的最好結果來作為最終的最優解。
當然,如果你的約束條件設定不妥,或者引數設定不適當,那麼也會造成每次運算的近似最優解相差過大,且質量不高。這些都要注意。
3、我用matlab自己編寫遺傳演算法來解決問題,因為其自帶的工具箱比較固定,只能解決簡單、典型的問題。但你的問題稍加複雜時,工具箱的作用就發揮不出來。
在matlab裡面GA遺傳演算法工具箱中怎麼找到多個區域性最優解,我現在只能找到全域性最優解
這個需要根據引數設定來進行的,引數設定合理就可以得到全域性最優解,反之,可能得到區域性最優解 用matlab優化工具箱自帶的遺傳演算法 只能找到近似最優解 時,往往重複計算很多次都不能得到最優解 要想得到較精確的最優解,可以通過設定function tolerance的誤差值,constraint ...
遺傳演算法工具箱的具體使用
matlab遺傳演算法工具箱函式及例項講解 核心函636f707962616964757a686964616f31333332623934數 1 function pop initializega num,bounds,eevalfn,eevalops,options 初始種群的生成函式 輸出引數 ...
遺傳演算法中的錦標賽選擇演算法的思想是什麼
我理解的是,在50個人中,隨機選擇兩組人,每組10個人,對於每組的10個人按適應度進行排列,選擇兩組中適應度最好的兩個個體作為母代進行兩兩交叉 然後再從剩下來的48個人中,隨機選擇兩組人,每組10個人,對於每組的10個人按適應度進行排列,選擇兩組中適應度最好的兩個個體作為母代進行兩兩交叉 依此類推,...