我有一個問題,我想用遺傳算法(GA)來解決。你可以把它簡化爲以下問題:Genetic Algortihm - 可變長度優化的策略
我想優化公司,這意味着,在汽車數量和車型的拼車。我已經有一個健身功能calcFitness(carList)
,它評估給定的設置,如'商務車,運輸車'或'商務車,商務車,運輸車'。現在,問題是,如何使用GA來解決這個可變長度問題。
我有四個想法,你怎麼能解決這些問題一般爲:(?不知道,如果可能的話)
- 也許在某種程度上實現GA允許可變長度的染色體,並在單次運行解決問題
- 估算最大可行數量的汽車(例如20輛),併爲1到20的每個汽車插槽號碼運行固定長度的GA並比較20個結果
- 與#2類似,但沒有固定的上限: 1輛車,並增加插槽的數量,直到增加的數字的最佳解決方案比前面的更差olution(基於梯度的方法)
- 兩個堆疊的固定長度氣:父GA是用於優化汽車槽另一GA的,並在其適應度函數優化這些時隙的assignement數量單獨負責叫做
你對這些一般方法有什麼看法?對於這些可變長度的情況,GA有沒有其他想法或可能的替代方案
謝謝你的回答。連續交叉是什麼意思?你會允許突變來改變染色體長度嗎? – nkxandroid
是的,但是有幫助的特定形式取決於問題。例如,在我目前的遺傳算法中,我有多個基因添加,刪除,k個基因被l個基因取代,......但其中很大一部分是針對該領域的。通常,它應該足以一次修改(變更,添加,刪除)一個。 –
連續交叉=沒有預定數量的交叉點。在固定長度上,這將會在每個位置上翻轉有偏見的硬幣,不管是否交叉。 –