Artificial intelligence 爬山算法简单示例

Artificial intelligence 爬山算法简单示例,artificial-intelligence,hill-climbing,Artificial Intelligence,Hill Climbing,我对爬山算法有点困惑。 我想“运行”算法,直到我在树中找到第一个解(“a”是初始状态,h和k是最终状态),它说状态附近的数字是启发值。这是树: 我的问题: 我试着在树上爬山,所以我们开始一个->f->g,然后什么?结束(没有结果),但我读到爬山不能回去做一个新的选择(例如j或e)?是这样吗? 如果我能回去怎么办?我的意思是,当我们改变初始选择时,我们选择e而不是g,或者选择j而不是f 对不起,我的问题太简单了。爬山不能保证不会陷入局部最小值/最大值。 然而,只有最纯粹的爬山形式才不允许你后退

我对爬山算法有点困惑。 我想“运行”算法,直到我在树中找到第一个解(“a”是初始状态,h和k是最终状态),它说状态附近的数字是启发值。这是树:

我的问题: 我试着在树上爬山,所以我们开始一个->f->g,然后什么?结束(没有结果),但我读到爬山不能回去做一个新的选择(例如j或e)?是这样吗? 如果我能回去怎么办?我的意思是,当我们改变初始选择时,我们选择e而不是g,或者选择j而不是f


对不起,我的问题太简单了。

爬山不能保证不会陷入局部最小值/最大值。 然而,只有最纯粹的爬山形式才不允许你后退


一个简单的爬山即兴表演可以避免局部极小值问题(以牺牲更多的时间和记忆为代价)是禁忌搜索,在这里你可以记住以前的坏结果并有目的地避免它们

爬山时避免陷入局部极大值的一种常见方法是使用随机重启。在您的示例中,如果G是一个局部极大值,那么算法将停止在那里,然后选择另一个随机节点重新启动。因此,如果选择J或C(或者可能是A、B或D),你会在H或K中找到全局最大值。冲洗并重复足够的次数,你会发现全局最大值或接近的值;取决于时间/资源限制和问题空间


注意,像爬山这样的局部搜索是不完整的,不能保证找到全局最大值。当然,好处是它只需要一小部分资源。在实践中,并应用到正确的问题上,这是一个非常有效的解决方案。

爬山的问题之一是陷入局部极小值&这是当你达到F时发生的情况。爬山的改进版本(实际使用)是通过在搜索树中选择一个随机节点来重新启动整个过程&再次继续寻找最佳解决方案。如果再次陷入局部极小值,则必须使用其他随机节点重新启动。一般来说,你可以重新进行这个寻找最优解决方案的过程的时间是有限的。达到此限制后,您可以在过程中达到的所有局部最小值中选择最小值。虽然它还没有完成,但这一次有更好的机会找到全局最优解。

您可以尝试使用一种称为“防止搜索陷入局部极小值”的技术。本质上,在模拟退火中,有一个参数
T
,它控制你向次优邻域状态移动的可能性。如果
T
较高,则您更有可能向相邻州移动次优,从而在卡在该州时可能逃脱局部最小值,如果您使用正常爬山,则不会出现这种情况。

实际上,在爬山过程中,您通常不会回溯,因为您没有跟踪状态(这是局部搜索)你会远离一个极大值。回溯搜索和禁忌搜索都不能帮助回答这个问题:前者只会让你远离一个局部极大值,而后者则会阻止你重新访问同一个局部极大值。这两种方法都不能帮助你达到全球最大值泰森10月16日12点22分59分


“当你记得以前的坏结果并故意避免它们时”我不同意,你把好的解决方案也标记为禁忌,但你不想再次走同样的路

以下是解决方案:

A->F,成本最低F->G,成本为3,但没有路径

从G以外的最低成本重新启动,因为E已经插入到队列/堆栈/优先级队列或您使用的任何数据结构中

因此E->I,但I的成本比E高,因此您被卡住了:S

从F E&G以外的最低成本重新启动,因此我们选择J,因为J的成本比B低,相差2,即J=8 B=10

J->K,成本为0,因此K是目标

注意:建议的爬山变体是随机选择一个点,但选择除已访问节点以外的最小成本比随机选择要好


另一个注意事项是:当节点E没有访问I时,因为I的值高于E,算法已经将其插入数据结构中,因此,选择除已访问之外的最小成本将从I创建一个新路径,因为我从未访问过,因此它的值低于J,这是我跳过的唯一路径

根据纯爬山的路线将是 a->J->k 如果从左到右展开儿童的, 如果你把它们从右向左展开,你会得到这个局部极小值A->F->G,
但通常我们从左到右展开。

-有趣的是爬山是局部搜索。你需要定义州与州之间的某种邻居关系。通常这种关系是对称的。你有一个定向树,这让我想起了搜索树。这个问题把事情搞混了。实际上,在爬山中,你通常不会后退,因为你没有跟踪状态(这是本地搜索),你会偏离最大值。回溯搜索和禁忌搜索都不能帮助回答这个问题:前者只会让你远离一个局部极大值,而后者则会阻止你重新访问同一个局部极大值。这两种方法都不能帮助你达到一个全球最大值。“如果你记得以前的坏结果并故意避免它们”,我不同意,你把它们标记为禁忌也是好的解决方案,但你不想再次走同样的道路。在纯爬山中,扩展顺序并不重要。每一步,都会选择最低成本行动