randperm 亂數生成函式
randi , rand , linesace
一直在想怎麼找出一個限定數值內又具備亂數的元素容器工具
想到之前寫相交公式的時候用到的數值生成函式
在加上亂數分佈,要如何生出想要的函式
好險有找到,省下自己寫副程式的時間
這次 內插法,我想到直接用 GA 可以改善內插法的後續問題
內插法目前,開始使用亂數排序當DEMO
我先挑起 10~20組解 , 在設定一個門檻值 可能85~90%的解
當我的基因池,開始做交配的動作
可能 門檻值跟基因池的設定可以縮短找解空間的時間複雜度
可是在門檻值的部份比較麻煩,寫好之後
第一次跑居然跑到準確率88.95%,比TABU 禁忌表還好
我都爽了一下,在之後開始就沒有到88%過了囧
好像是以前在玩天堂甩骰子一樣,每按一下F5 就在丟能力值
有時候可以骰到寫牛,骰到 力牛,或是精智法或是少見的力體法
那種跑結果的FU有點爽,沒想到寫演算法可以有這種FU
真是不錯,當設門檻值後,這部份可能要花時間跑 找符合值的基因序列
所以要等集滿基因池的序列組,才開始進行交配進化 . . . . .
門檻值越高,相對基因序列的染色體相對猜中最佳解的機會就越高
在進行交配機率相對當然提高,門檻值 基因池 跟 基因演算法的
突變率、交配方式都有一定的關係,不過這應該是可以預期寫得出來的
所以樂觀其成。
大致上 想到的方法是 while 去跑 門檻直的基因序列挑選
當達到預設的基因池序列數量,就開始跑 交配 演算法
到時候要讀懂 基因演算法的精神 ,希望下禮拜可以寫出來 。
84%
89.9%
90%
雖然是90% 但是跟最佳解的相似度 並不高......
不是個什麼好現象,所以要是相似度不高的基因序列被放到基因池裡面
訓練交配的話,不是什麼好下場,要跑到最佳解 . . . .
真的有得等,所以基因池裡的基因序列真的很重要
要是相似度高的,樂觀其成!! 要是相似度低的真的是有得等了 . . . . . .
要砍掉重練,所以基因的配對世代次數很重要,不能虛耗太多時間複雜度在這個上面
90.26%
90.8%
92.5% 大約骰第20次左右,目前最好的結果,破90!
凌晨 3:19
骰出 93% QQ
PS: 從以上圖形中發現,有可能正確率到90% 可是跟最佳解的染色體組合差很多
要是真的遇到這種狀況,就算找了10組20組跑出來的解要交配出最佳解
我看也很難 . . . . . . . . .
有可能這種情況交配後的結果會落入
僵局 !!! . . . 永遠都找不到最佳解
可能的方式,就是把基因池裡面的序列放棄重新來過 !!
重新找 基因染色體的序列組,再重做一次 !!
剛剛在跑圖形的時候,突然有個靈感,在基因池的篩選過程中
我的相交公式嚴格說起來也可以當作是門檻值在用
不過效益很像不大 .. . . . . .. . . . . . . 當 有相交現象產生時
必定不是最佳解組合可以考慮拋棄, 但是很多組合都也不是最佳解
真的是要孰輕孰重阿 . .. . 基因的特點要放在 相似度 也就是Fitness
這點倒是說得很傳神!! 相似度 像或不像! 在TSP圖形上真的特別明顯
要是不像的下去跑,怎麼跑都不像。﹍。
要是像的下去跑,怎麼跑都像 . . . . O﹍O
當 正確率高的狀況下,就可以考慮放進基因池
先決條件是,準確率高的基因染色體序列 相似度要高才有用
不然準確率高,染色體序列相似度不高也沒用
所以要想出很多機制去挑選染色體序列的基因組,不然放進基因池也是做白工
PS: 我在觀察低於80%以下的圖形很多幾乎都有愛心問題
很多線段都有相交到!!理論上完美的內插法不應該出現相交問題
要透過 深度雙向連結上的重新改善下手,要從連結串列的深度逆向追蹤下手才行
寫了一個迴圈跑100結果準備 觀測
最後懶得跑 只到37次就停了,沒想到跑出兩次超過95%以上的結果
第32次 96.95
第34次 99.03
BUG !! 設迴圈下去跑,居然題庫沒有全部載入
糗 . . . .. . . . . MATLAB 是哪招 . . . .
http://www.more.ms.unimelb.edu.au/students/operationsresearch/lecturenotes/620362_Heuristics.pdf
沒有留言:
張貼留言