日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

数学建模——智能优化之遗传算法详解Python代码

發(fā)布時間:2025/3/21 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学建模——智能优化之遗传算法详解Python代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

數(shù)學(xué)建模——智能優(yōu)化之遺傳算法詳解Python代碼

import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Axes3DDNA_SIZE = 24 POP_SIZE = 200 CROSSOVER_RATE = 0.8 MUTATION_RATE = 0.005 N_GENERATIONS = 50 X_BOUND = [-3, 3] Y_BOUND = [-3, 3]def F(x, y):return 3*(1-x)**2*np.exp(-(x**2)-(y+1)**2)- 10*(x/5 - x**3 - y**5)*np.exp(-x**2-y**2)- 1/3**np.exp(-(x+1)**2 - y**2)def plot_3d(ax):X = np.linspace(*X_BOUND, 100)Y = np.linspace(*Y_BOUND, 100)X,Y = np.meshgrid(X, Y)Z = F(X, Y)ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=cm.coolwarm)ax.set_zlim(-10,10)ax.set_xlabel('x')ax.set_ylabel('y')ax.set_zlabel('z')plt.pause(3)plt.show()def get_fitness(pop): x,y = translateDNA(pop)pred = F(x, y)return (pred - np.min(pred)) + 1e-3 #減去最小的適應(yīng)度是為了防止適應(yīng)度出現(xiàn)負(fù)數(shù),通過這一步fitness的范圍為[0, np.max(pred)-np.min(pred)],最后在加上一個很小的數(shù)防止出現(xiàn)為0的適應(yīng)度def translateDNA(pop): #pop表示種群矩陣,一行表示一個二進(jìn)制編碼表示的DNA,矩陣的行數(shù)為種群數(shù)目x_pop = pop[:,1::2]#奇數(shù)列表示Xy_pop = pop[:,::2] #偶數(shù)列表示y#pop:(POP_SIZE,DNA_SIZE)*(DNA_SIZE,1) --> (POP_SIZE,1)x = x_pop.dot(2**np.arange(DNA_SIZE)[::-1])/float(2**DNA_SIZE-1)*(X_BOUND[1]-X_BOUND[0])+X_BOUND[0]y = y_pop.dot(2**np.arange(DNA_SIZE)[::-1])/float(2**DNA_SIZE-1)*(Y_BOUND[1]-Y_BOUND[0])+Y_BOUND[0]return x,ydef crossover_and_mutation(pop, CROSSOVER_RATE = 0.8):new_pop = []for father in pop: #遍歷種群中的每一個個體,將該個體作為父親child = father #孩子先得到父親的全部基因(這里我把一串二進(jìn)制串的那些0,1稱為基因)if np.random.rand() < CROSSOVER_RATE: #產(chǎn)生子代時不是必然發(fā)生交叉,而是以一定的概率發(fā)生交叉mother = pop[np.random.randint(POP_SIZE)] #再種群中選擇另一個個體,并將該個體作為母親cross_points = np.random.randint(low=0, high=DNA_SIZE*2) #隨機(jī)產(chǎn)生交叉的點child[cross_points:] = mother[cross_points:] #孩子得到位于交叉點后的母親的基因mutation(child) #每個后代有一定的機(jī)率發(fā)生變異new_pop.append(child)return new_popdef mutation(child, MUTATION_RATE=0.003):if np.random.rand() < MUTATION_RATE: #以MUTATION_RATE的概率進(jìn)行變異mutate_point = np.random.randint(0, DNA_SIZE) #隨機(jī)產(chǎn)生一個實數(shù),代表要變異基因的位置child[mutate_point] = child[mutate_point]^1 #將變異點的二進(jìn)制為反轉(zhuǎn)def select(pop, fitness): # nature selection wrt pop's fitnessidx = np.random.choice(np.arange(POP_SIZE), size=POP_SIZE, replace=True,p=(fitness)/(fitness.sum()) )return pop[idx]def print_info(pop):fitness = get_fitness(pop)max_fitness_index = np.argmax(fitness)print("max_fitness:", fitness[max_fitness_index])x,y = translateDNA(pop)print("最優(yōu)的基因型:", pop[max_fitness_index])print("(x, y):", (x[max_fitness_index], y[max_fitness_index]))if __name__ == "__main__":fig = plt.figure()ax = Axes3D(fig) plt.ion()#將畫圖模式改為交互模式,程序遇到plt.show不會暫停,而是繼續(xù)執(zhí)行plot_3d(ax) ![請?zhí)砑訄D片描述](https://img-blog.csdnimg.cn/e6fd6d3dc132411c9d531415d2b6c545.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTM0NTIx,size_16,color_FFFFFF,t_70)pop = np.random.randint(2, size=(POP_SIZE, DNA_SIZE*2)) #matrix (POP_SIZE, DNA_SIZE)for _ in range(N_GENERATIONS):#迭代N代x,y = translateDNA(pop)if 'sca' in locals(): sca.remove()sca = ax.scatter(x, y, F(x,y), c='black', marker='o');plt.show();plt.pause(0.1)pop = np.array(crossover_and_mutation(pop, CROSSOVER_RATE))#F_values = F(translateDNA(pop)[0], translateDNA(pop)[1])#x, y --> Z matrixfitness = get_fitness(pop)pop = select(pop, fitness) #選擇生成新的種群print_info(pop)plt.ioff()plot_3d(ax)

總結(jié)

以上是生活随笔為你收集整理的数学建模——智能优化之遗传算法详解Python代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: wwwxxx国产| 百合sm惩罚室羞辱调教 | 国产在线播放一区二区 | 精品国产一二三四区 | 天天色天天射天天干 | 美国av毛片 | 亚洲精品xxx | 中文在线观看免费高清 | www.久久久久 | 日韩黄色视屏 | 奇米影视中文字幕 | 欧美揉bbbbb揉bbbbb | 亚洲精品一区二 | 国产中文字字幕乱码无限 | 不许穿内裤随时挨c调教h苏绵 | 亚洲成a人v | 在线看成人片 | av久色| 日韩一区欧美一区 | 精品国产一区在线观看 | 欧美精品久 | 美女激情网站 | 日韩黄色在线播放 | 另类捆绑调教少妇 | 91av免费在线观看 | 琪琪射 | 妞干网这里只有精品 | 国产久操视频 | 天码人妻一区二区三区在线看 | 国产美女菊爆在线播放APP | 亚洲激情综合 | 亚洲综合五月 | 日韩国产欧美视频 | 亚洲最大黄色网址 | 久久网一区二区 | av优选在线观看 | 久久久久婷 | 亚洲熟妇无码爱v在线观看 九色福利 | 红桃视频网站 | 亚洲国产精品99久久 | 亚洲精品久久久久久一区二区 | 黄色特级网站 | 亚洲最大成人网色 | jizz欧美大全 | 亚洲国产精品麻豆 | 开心激情久久 | 国产黄色高清 | 在线观看的黄网 | 性一交一乱一乱一视频 | 自拍偷拍激情视频 | 一区二区三区在线观看视频 | 天天摸夜夜添狠狠添婷婷 | 激情五月色婷婷 | av在线www| 激情小说中文字幕 | 日本少妇网站 | 国产区av | 国产农村妇女精品一区二区 | 亚洲精品1 | 日韩精品午夜 | 99re视频在线观看 | 亚洲aaaaaa | 青青草免费在线观看 | 成人在线观看免费 | 爆操少妇| 天天曰夜夜操 | 手机在线看片 | 国产毛片视频网站 | 少妇导航av | 国产精品偷伦视频免费看 | 久久久久久久久国产精品一区 | 亚洲欧美日韩久久 | 国产一区欧美二区 | 亚洲一区二区视频网站 | 波多野结衣一区二区三区 | 91成人天堂久久成人 | 日韩高清一二三区 | 奇米狠狠| 快色在线观看 | 亚洲黄视频 | 久青草视频在线 | 美女免费网站 | 久久久久久久久久久久久久av | 国产成人精品av久久 | av网站免费在线观看 | 中文字幕视频观看 | 久久一 | 色5月婷婷 | 精品一区二三区 | 亚洲精品二区三区 | 天天撸天天射 | 国产精品66 | 国产激情小视频 | 亚洲www啪成人一区二区麻豆 | 久久久久免费看 | 色婷婷aⅴ一区二区三区 | 精品九九九九 | 欧美又粗又大xxxxbbbb疯狂 | 欧美激情视频在线观看 |