人工智能中的手段-目标分析2025年5月6日 | 阅读 6 分钟 我们已经学习了可以正向或反向推理的策略,但对于解决复杂而庞大的问题,混合使用这两种方向是更合适的。这种混合策略可以先解决问题的主要部分,然后再回头解决在组合大问题时出现的小问题。这种技术被称为手段-目标分析。 手段-目标分析 (Means-Ends Analysis) 是一种用于限制人工智能程序搜索的问题解决技术。它是反向和正向搜索技术的混合。MEA 技术最初于 1961 年由 Allen Newell 和 Herbert A. Simon 在他们名为 General Problem Solver (GPS) 的问题解决计算机程序中引入。MEA 分析过程着重于评估当前状态和目标状态之间的差异。 手段-目标分析如何工作?手段-目标分析过程可以递归地应用于一个问题。这是一种控制问题解决搜索的策略。以下是描述 MEA 技术解决问题工作方式的主要步骤:
算子子目标在 MEA 过程中,我们检测当前状态和目标状态之间的差异。一旦出现这些差异,我们就可以应用算子来减小差异。但有时算子可能无法应用于当前状态。因此,我们为当前状态创建一个子问题,在该子问题中可以应用算子。这种通过反向链接选择算子,然后设置子目标来满足算子先决条件的类型称为算子子目标。 手段-目标分析算法我们设当前状态为 CURRENT,目标状态为 GOAL,则 MEA 算法的步骤如下:
上述算法更适合简单问题,对于解决复杂问题则不够充分。 手段-目标分析示例让我们看一个例子,其中我们知道初始状态和目标状态如下。在此问题中,我们需要通过查找初始状态和目标状态之间的差异并应用算子来达到目标状态。 ![]() 解决方案为了解决上述问题,我们将首先找到初始状态和目标状态之间的差异,然后为每个差异生成一个新状态并应用算子。此问题中的算子是:
1. 评估初始状态: 在第一步中,我们将评估初始状态,并将其与目标状态进行比较,以找出两者之间的差异。 ![]() 2. 应用删除算子: 我们可以看到第一个差异是目标状态中没有点符号,而初始状态中有,所以,我们首先应用 **删除算子** 来移除这个点。 ![]() 3. 应用移动算子: 应用删除算子后,出现了一个新状态,我们将再次将其与目标状态进行比较。比较这些状态后,还有一个差异,即正方形在圆的外面,所以,我们将应用 **移动算子**。 ![]() 4. 应用扩展算子: 现在在第三步中生成了一个新状态,我们将此状态与目标状态进行比较。比较状态后,仍然存在一个差异,即正方形的大小,因此,我们将应用 **扩展算子**,最终,它将生成目标状态。 ![]() 手段-目标分析的用途人工智能 (AI) 系统通常采用手段-目标分析。由于分析中涉及的计算过程模仿了人类认知和解决问题能力的某些特征,因此它是开发像人类一样行为的 AI 系统中的一项关键的基于目标的解决问题技术。通过结合反向和正向搜索策略,AI 系统还采用手段-目标分析,通过评估问题当前状态与期望状态之间的差异来限制程序内的搜索。 实施现在,我们将通过应用加、减或乘等运算来模拟从起始数字到目标数字的移动,这将有助于理解 MEA。 代码 输出 移动 1: Start -> point_B (h=4) ![]() 移动 2: point_B -> point_D (h=3) ![]() 移动 3: point_D -> point_E (h=2) ![]() 移动 4: point_E -> Goal (h=0) ![]() Reached the goal Final Path: 1: Start 2: point_B 3: point_D 4: point_E 5: Goal 算法从标记为“Start”的节点开始,在每一步分析所有附近的节点,并根据估计的最短路径(启发式)选择似乎最接近目标的节点。在给定的例子中,路径是 Start-> point_A->point_C-> point_E-> Goal。这表明代理程序始终选择了预期剩余成本最低的方向,从而系统地缩小了与目标的差距。该图通过突出显示的每次移动,可以轻松观察决策过程。 下一主题AI 中的对抗搜索 |
我们请求您订阅我们的新闻通讯以获取最新更新。