資源簡介
遺傳算法
代碼片段和文件信息
import?numpy?as?np??
from?scipy.optimize?import?fsolve?basinhopping??
import?random??
import?timeit??
??
??
#?根據解的精度確定染色體(chromosome)的長度??
#?需要根據決策變量的上下邊界來確定??
def?getEncodedLength(delta=0.0001?boundarylist=[]):??
????#?每個變量的編碼長度??
????lengths?=?[]??
????for?i?in?boundarylist:??
????????lower?=?i[0]??
????????upper?=?i[1]??
????????#?lamnda?代表匿名函數f(x)=050代表搜索的初始解??
????????res?=?fsolve(lambda?x:?((upper?-?lower)?*?1?/?delta)?-?2?**?x?-?1?50)??
????????length?=?int(np.floor(res[0]))??
????????lengths.append(length)??
????return?lengths??
????pass??
??
??
#?隨機生成初始編碼種群??
def?getIntialPopulation(encodelength?populationSize):??
????#?隨機化初始種群為0??
????chromosomes?=?np.zeros((populationSize?sum(encodelength))?dtype=np.uint8)??
????for?i?in?range(populationSize):??
評論
共有 條評論