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

怎样维护网站建设新网站怎么做友情链接

怎样维护网站建设,新网站怎么做友情链接,网络营销专业怎么样,做外贸翻译用哪个网站阈值接收器 作者实现了一个阈值接收器,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/805724.html

相关文章:

  • 论mvc框架在网站开发的应用软件开发公司账务处理
  • 长沙交互网站设计服务商杭州知名设计公司
  • 网站编程培训学校有哪些互联网舆情监测中心待遇
  • 网站建设公司外链怎么做建设部网站有建筑施工分包
  • 网站直播怎么做网站开发的基本语言
  • 推广网站建设二个字最吉利最旺财的公司名
  • 报表网站建设注册网站在哪里注册
  • 怎么为网站做外链江苏大才建设集团网站
  • 2w网站建设模式广告设计公司清晨必发图片
  • 网站建设域名怎么选择双峰做网站
  • 建设银行郑州市自贸区分行网站灰色行业推广平台网站
  • 北京建网站开发广州建设工程质量安全网站
  • 1对1视频wordpress seo 优化插件
  • 天津做网站哪家好天津平台网站建设哪家好
  • mysql做网站怎么查看数据海南的网站建设公司
  • 电影网站开发教程多少钱?
  • 自己做的网站能在线支付外贸公司怎么开
  • 网站制作便宜为什么无法卸载wordpress
  • 珠海商城网站制作wordpress 更新慢
  • 网址查询网站做h网站风险
  • 连云港专业网站优化网页设计评价
  • html可以做网站后台吗微信如何投放广告
  • 东莞装饰网站建设东莞做网站优化天助网络
  • 承德网站建设有限公司网站可以个人做吗
  • 网站建设 深路互动阿里云购买网站空间
  • 网站自适应布局 html5国内免费域名
  • 创世做的网站源码泊头网站制作案例
  • 大连企业招聘网站专业做邯郸网站优化
  • 成都网站建设 公司网站两侧对联广告图片
  • 网站关键词字数建设一个企业网站需要多少钱