当前位置: 首页 > 知识库问答 >
问题:

解决方案克隆以连续产生“新最佳分数”的步骤发生

宿楚青
2023-03-14

最近引起我注意的是,当产生“新的最佳分数”时,一个步骤比其他步骤慢。这无疑是解决方案克隆,每一步都会产生“新的最佳分数”。

因此,如果“新的最佳分数”步骤不是连续的,这是可以的。例如,如果我们连续有50个步骤,解决方案克隆过程将执行50次。更聪明的方法是在序列结束时进行克隆过程(仅一次)。

这是一个可以很容易实现的东西,还是有其他东西可以阻止它?

另一个想法是在每个“新的最佳分数”步骤进行克隆,但只克隆由作为步骤选择的移动更改的规划实体实例,并将其附加到最佳解决方案中。

共有1个答案

赫连冠玉
2023-03-14

如果一行有50个步骤,前23个步骤改进了最佳解决方案,我们需要在该工作解决方案的第23个步骤中进行规划克隆吗?是的,我们这样做了,因为不能保证接下来的27个步骤中的任何一个都会提高最佳分数,所以我们不想在步骤23失去解决方案的状态。并不是每一步都能提高最好的分数,有些步骤的分数更差(尤其是在接受较晚的情况下)。

也就是说,在构造启发式中,我们实际上不做中间规划克隆,因为我们可以保证解决方案只会改进(初始化的变量越多越好)。

在任何情况下,使“规划克隆”变轻的最佳方法是设计一个“规划实体”类没有任何传入引用的模型(当然,解决方案类除外)

 类似资料:
  • 问题内容: 我已经开发了一些类似于DAO的自定义类,以满足我的项目的一些非常特殊的要求,这是一个不在任何框架内运行的服务器端进程。 该解决方案非常有效,除了每次发出新请求时,我都会通过MySQLdb.connect打开一个新连接。 将其切换为在python中使用连接池的最佳“插入”解决方案是什么?我在想像Java的通用DBCP解决方案。 该过程运行很长时间,并且有许多线程需要发出请求,但不是所有线

  • 本文向大家介绍centos克隆linux虚拟机的完整步骤分享,包括了centos克隆linux虚拟机的完整步骤分享的使用技巧和注意事项,需要的朋友参考一下 前言 当一个Linux完全设置完成以后,就可以使用克隆的方式来在短时间内创建出多个Linux来;本文将给大家详细介绍关于centos克隆linux虚拟机的相关内容,下面话不多说了,来一起看看详细的介绍吧 步骤如下 1)克隆一个新的虚拟机 2)在

  • 本文向大家介绍IONIC自定义subheader的最佳解决方案,包括了IONIC自定义subheader的最佳解决方案的使用技巧和注意事项,需要的朋友参考一下 IONIC subheader是我们常用的一个css 属性,但是这个subheader的高度是固定的,当然也是可以改变的,但是如果改了subheader的告诉,还要更改content的top值,稍微有些麻烦,如果是动态告诉的subheade

  • 问题内容: 至少有六打Django应用程序为Django提供OpenID身份验证: django-openid django-openid-auth 另一个django-openid-auth,似乎已经死了 django-authopenid django-socialauth(还提供对Twitter和Facebook帐户的身份验证) django-socialregistration(也具有Fa

  • 我正在寻找解决这个问题的有效方法,即...编写一个程序来查找总和等于给定数字的所有整数对。例如,如果输入整数数组是{2, 6, 3, 9, 11}并且给定总和是9,则输出应该是{6,3} 现在我尝试的是以下内容,但我知道这不是一个可行且有效的解决方案。。 从数组中取一个数字,然后循环遍历数组和输出对,这等于给定的总和。您对第一个数组中的所有数字都这样做,

  • 问题内容: 我想知道是否有推荐的方法可以在Java中进行实例的深层克隆/复制。 我有3个解决方案,但我可能会想念一些,我想征求你的意见 编辑:包括Bohzo命题,并提炼问题:更多是关于深克隆而不是浅克隆。 自己做: 在属性之后手动编写代码,并检查是否也复制了可变实例。 优点: -控制将执行的操作 -快速执行 缺点: -繁琐的编写和维护 -容易发生错误(复制/粘贴失败,缺少属性,重新分配了可变属性)