当前位置: 首页 > news >正文

作品展示html5网站模板jsp企业网站

作品展示html5网站模板,jsp企业网站,渠道营销推广方案,佛山企业网站多少钱引力搜索算法过程#xff0c;包括了初始化、适应度评估、质量计算、加速度计算、更新速度和位置的一些步骤。 import numpy as np import random as rd from math import exp, sqrt import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotli… 引力搜索算法过程包括了初始化、适应度评估、质量计算、加速度计算、更新速度和位置的一些步骤。 import numpy as np import random as rd from math import exp, sqrt import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib.animation import FuncAnimation# 定义目标函数 def objFunction(x1, x2):return x1 ** 2 x2 ** 2# 初始化种群的位置和速度 def init(n):position, velocity [], []for i in range(n):X1 rd.uniform(-10, 10)X2 rd.uniform(-10, 10)V1 rd.uniform(-3, 3)V2 rd.uniform(-3, 3)position.append([X1, X2])velocity.append([V1, V2])return position, velocity# 计算适应度值 def fitnessEva(position):fitness []for i in range(len(position)):fitness.append(objFunction(position[i][0], position[i][1]))return fitness# 找到最佳和最差的适应度值 def findBestAndWorst(position):return min(fitnessEva(position)), max(fitnessEva(position))# 计算每个个体的质量 def calculateMass(fitness):mass []Mass []for i in range(len(fitness)):mass.append((fitness[i] - max(fitness)) / (min(fitness) - max(fitness)))for i in range(len(mass)):Mass.append(mass[i] / sum(mass))return Mass# 计算每个个体的加速度 def calculateAcceleration(position, Mass, G, topK):acceleration []Fi0, Fi1 0, 0for i in range(len(position)):for j in range(len(position)):if i ! j and j in topK:Fi0 rd.random() * G * ((Mass[i] * Mass[j]) / (calculateDistance(position[i], position[j]) r)) * (position[j][0] - position[i][0])Fi1 rd.random() * G * ((Mass[i] * Mass[j]) / (calculateDistance(position[i], position[j]) r)) * (position[j][1] - position[i][1])if Mass[i] ! 0:acceleration.append([Fi0 / Mass[i] / 10, Fi1 / Mass[i] / 10]) # 这里除10是为了避免粒子的加速度过大else:acceleration.append([10, 10])Fi0 0Fi1 0return acceleration# 找出适应度更优的前K个粒子 def findTopK(fitness, K):topK []dic {}for i in range(len(fitness)):dic[i] fitness[i]fitness.sort()for i in range(K):topK.append(list(dic.keys())[list(dic.values()).index(fitness[i])])return topK# 更新速度和位置 def updateVelocityAndPosition(acceleration, position, velocity):for i in range(len(velocity)):velocity[i][0] rd.random() * velocity[i][0] acceleration[i][0]velocity[i][1] rd.random() * velocity[i][1] acceleration[i][1]position[i][0] position[i][0] velocity[i][0]position[i][1] position[i][1] velocity[i][1]# 计算两个点之间的距离 def calculateDistance(p1, p2):return sqrt((p1[0] - p2[0]) ** 2 (p1[1] - p2[1]) ** 2)# 检查位置是否在可行域内 def checkPosition(position):for i in range(len(position)):if position[i][0] -10:position[i][0] -10elif position[i][0] 10:position[i][0] 10if position[i][1] -10:position[i][1] -10elif position[i][1] 10:position[i][1] 10if __name__ __main__:G 100r 1K 50iterx, maxIterx 0, 50position, velocity init(50)fig plt.figure(figsize(10, 8))ax fig.add_subplot(111, projection3d)scatter ax.scatter([], [], [], cpink, markero)path_lines [ax.plot([], [], [], colorlightyellow)[0] for _ in range(50)]ax.set_xlim(-10, 10)ax.set_ylim(-10, 10)ax.set_zlim(0, 200)ax.set_title(Gravitational Search Algorithm Visualization)ax.set_xlabel(X1)ax.set_ylabel(X2)ax.set_zlabel(Fitness)def animate(iteration, position, velocity, G, K, path_history):fitness fitnessEva(position) # 适应性评估G G * exp(-20 * iteration / maxIterx) # 更新引力常量Mass calculateMass(fitness) # 更新粒子质量topK findTopK(fitness, K) # 找出适应度更优的前K个粒子acceleration calculateAcceleration(position, Mass, G, topK) # 计算粒子加速度updateVelocityAndPosition(acceleration, position, velocity) # 根据加速度更新速度与位置checkPosition(position) # 检查粒子是否冲出了解空间K K - iteration # 更新K值# Update scatter plotscatter._offsets3d ([pos[0] for pos in position],[pos[1] for pos in position],fitness)# Update path historyfor i in range(len(position)):path_history[i].append(position[i] [fitness[i]])path_lines[i].set_data(np.array(path_history[i]).T[:2])path_lines[i].set_3d_properties(np.array(path_history[i]).T[2])best_fitness min(fitnessEva(position))best_position position[fitnessEva(position).index(best_fitness)]ax.set_title(fIteration {iteration}: Best Fitness {best_fitness:.4f})return scatter,path_history [[] for _ in range(50)]ani FuncAnimation(fig, lambda frame: animate(frame, position, velocity, G, K, path_history), framesmaxIterx,interval200, blitTrue, repeatFalse)plt.show()best_fitness min(fitnessEva(position))best_position position[fitnessEva(position).index(best_fitness)]print(最优解:, best_fitness)print(最优解对应的位置:, best_position)
http://www.hkea.cn/news/14513087/

相关文章:

  • 手机网站 免费个人网站备案需要什么资料
  • 中国网站为什么做的那么丑网站编辑兼职
  • 基于wordpress学校网站企业软件开发公司
  • codeorg免费编程网站有没有像一起做网店做男装的网站
  • 注册新公司网上核名网站优秀网站网址
  • app定制网站建设应有尽有沈阳酒店团购网站制作
  • 从事网站开发网站浏览历史能恢复吗怎么设置
  • 具有营销型网站的公司网迎客 网站建设
  • 如何做淘客网站个人网站seo入门
  • .net和php那个做网站好外链价格
  • 网站流量变现win7环境wordpress
  • 网站建设商家公司网页设计与制作教程第五版课后答案
  • 苏中建设 官方网站南昌建设局
  • 做乡村旅游的网站网站开发最快的语言
  • cc网站域名注册地图网站制作
  • 网站建设百度推广总结机械行业网站 方案
  • 网站推广计划表手机建站平台
  • 游戏网站怎么赚钱福州网站怎么做的
  • 如何在网站后台添加商品大型彩灯制作公司
  • 网站建设与制作dw8教程做网站的相关教程
  • 网站推广的主要方法东莞建设网站公司哪家好
  • 用邮箱做网站千博网站管理系统安装
  • 游戏开发需要学多久优化是什么意思?
  • 小创业公司网站怎么做深圳建筑信息平台
  • 定制营销型网站制作网站搜索怎么做
  • 网站服务器配置参考指南网站被主流搜索引擎收录的网页数量是多少
  • 企业网站软件注册公司的流程有哪些
  • 这么开网站广告推广投放平台
  • wordpress电影资源网站兰州seo优化入门
  • 黄山企业网站建设微信小程序后端开发教程