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

建筑模板的价格一览表seo推广教程

建筑模板的价格一览表,seo推广教程,湖南益阳最新疫情,网络规划设计师论文背别人的行么阈值接收器 作者实现了一个阈值接收器,SchrimpfAcceptance 下面是对这个接收器的解释 阈值接受函数: 这个概念可以描述如下:大多数问题不仅仅有一个唯一的最小值(或最大值),而是有多个局部最小值&#xff…

阈值接收器

作者实现了一个阈值接收器,SchrimpfAcceptance
下面是对这个接收器的解释
阈值接受函数:
这个概念可以描述如下:大多数问题不仅仅有一个唯一的最小值(或最大值),而是有多个局部最小值(或最大值)。为了避免在搜索开始时就陷入局部最小值,这种阈值接受函数在开始时也接受较差的解(与只接受更好解的贪婪方法相反),并随着时间的推移逐渐转变为贪婪方法。
难点:
定义(i)一个合适的初始阈值和(ii)一个描述阈值如何收敛到零的相应函数,即贪婪阈值。
初始阈值的确定:
通过在搜索空间中进行随机游走来确定初始阈值。随机游走使用特定的算法,并运行直到达到预热迭代次数。在第一次迭代或游走中,算法生成一个解,这个解是下一次游走的基础,以此类推。每个解的值都被记忆,因为初始阈值本质上是这些解值的标准差的函数。更精确地说:初始阈值 = 标准差(解的值) / 2。
具体实现阈值迭代的代码:

private double getThreshold(int iteration) {double scheduleVariable = (double) iteration / (double) maxIterations;return initialThreshold * Math.exp(-1. * Math.log(2) * scheduleVariable / alpha);}

试着通过画图来理解这个迭代
scheduleVariable 是个0,1之间的数,表示迭代的进度
alpha表示一个迭代参数
用python实现一下这个函数的图像

import numpy as np
import matplotlib.pyplot as plt# 定义参数alpha和scheduleVariable的范围
alpha = 0.5  # 
scheduleVariable = np.linspace(0, 1, 100)  # 从0到1的100个点# 计算函数值
y = np.exp(-np.log(2) / alpha * scheduleVariable)# 绘制图像
plt.plot(scheduleVariable, y)
plt.xlabel('scheduleVariable')
plt.ylabel('y')
plt.title('Plot of the function y = e^(-(log(2)/alpha) * scheduleVariable)')
plt.grid(True)
plt.show()

在这里插入图片描述
随着迭代次数的增加,阈值逐渐递减

新解的接收策略

public boolean acceptSolution(Collection<VehicleRoutingProblemSolution> solutions, VehicleRoutingProblemSolution newSolution) {boolean solutionAccepted = false;if (solutions.size() < solutionMemory) {solutions.add(newSolution);solutionAccepted = true;} else {VehicleRoutingProblemSolution worst = null;double threshold = getThreshold(currentIteration);for (VehicleRoutingProblemSolution solutionInMemory : solutions) {if (worst == null) worst = solutionInMemory;else if (solutionInMemory.getCost() > worst.getCost()) worst = solutionInMemory;}if (worst == null) {solutions.add(newSolution);solutionAccepted = true;} else if (newSolution.getCost() < worst.getCost() + threshold) {solutions.remove(worst);solutions.add(newSolution);solutionAccepted = true;}}return solutionAccepted;}

这段Java代码是用于决定是否接受一个新的解决方案到一个车辆路径问题(Vehicle Routing Problem, VRP)的解决方案集合中。
代码的主要逻辑如下:

  1. 定义一个布尔变量 solutionAccepted 来标识解决方案是否被接受。

  2. 检查 solutions 集合的大小是否小于 solutionMemory(一个代表解决方案记忆容量的变量)。如果是,将 newSolution 添加到集合中,并将 solutionAccepted 设置为 true

  3. 如果 solutions 集合已满,则执行以下步骤:

    • 定义一个变量 worst 来存储当前集合中最差的解决方案(成本最高)。
    • 通过 getThreshold 方法获取当前迭代的阈值 threshold
    • 遍历 solutions 集合,找到成本最高的解决方案,并将其存储在 worst 变量中。
    • 检查 worst 是否为 null。如果是,这意味着集合中没有解决方案,可以将 newSolution 添加到集合中,并将 solutionAccepted 设置为 true
    • 如果 newSolution 的成本小于 worst 的成本加上阈值 threshold,则从集合中移除 worst 解决方案,将 newSolution 添加到集合中,并将 solutionAccepted 设置为 true
  4. 返回 solutionAccepted 变量,表示是否接受新的解决方案。

这个方法的目的是维护一个解决方案集合,只保留成本较低的解决方案,并在新解决方案的成本低于当前最差解决方案的成本加上一个阈值时更新集合。

http://www.dtcms.com/wzjs/135507.html

相关文章:

  • 个体工商户经营范围做网站重庆网站搜索引擎seo
  • 怎么编辑网站源代码新产品宣传推广策划方案
  • 2022年网站能用的南京高端品牌网站建设
  • 舞曲网站建设系统优化软件排行榜
  • 怎么做百度采购网站免费自制app软件
  • 房九九西安房产网seo优化个人博客
  • 邵阳住建部网站友情链接交换网址大全
  • 南皮哪有做网站的外链发布
  • 视频网站开发要求北京seo设计公司
  • 网站设计案例网站用手机制作自己的网站
  • 网站建设功能是什么sem竞价托管价格
  • 网站空间数据库网络seo关键词优化技巧
  • 如何用qq使用wordpress网站优化建设
  • 在线自助下单网站域名注册服务网站哪个好
  • 做推广都有哪些网站搜索引擎关键词优化技巧
  • 网站外部链接添加方式最新国际要闻
  • 秦皇岛网站制作与网站建设公司学大教育一对一收费价格表
  • 丽水专业网站建设价格网络营销招聘
  • 上海微信网站建设价格关键词seo排名优化
  • 最新做做网站免费seo诊断站长
  • 做酒店的网站搜索网站排名优化
  • 什么是网站建设流程网站制作报价
  • 设计好的单位网站开发短视频矩阵seo系统源码
  • 嘉兴企业网站建设搜索引擎优化排名
  • wap网站源码下载seo服务合同
  • 网站banner尺寸 横幅企业网站推广方案设计毕业设计
  • 如何建个网站靠谱的seo收费
  • 广州网站建设圣矢seo公司推荐推广平台
  • 优质的聊城做网站网页制作软件哪个好
  • 青岛做网站的公司哪家好一点免费的seo优化工具