1、1利 用 状 态 空 间 法 解 决 十 五 数 码 游 戏 问 题学 号 19110227 姓 名 季 佳 辉 完 成 时 间 2013 年 11 月1 十 五 数 码 游 戏 简 介十 五 数 码 游 戏 问 题 是 在 4*4方 格 盘 上 , 放 有 15个 数 码 , 剩 下 第 16 个 为 空 , 每 一空 格 其 上 下 左 右 的 数 码 可 移 至 空 格 。 问 题 给 定 初 始 位 置 和 目 标 位 置 , 要 求 通 过 一系 列 的 数 码 移 动 , 将 初 始 位 置 转 化 为 目 标 位 置 。2 十 五 数 码 游 戏 问 题 的 状 态 空 间 法
2、表 示问 题 的 状 态 空 间 是 指 表 示 问 题 可 能 态 及 关 系 图 , 记 作 三 元 态 ( , , ) 。 它含 三 个 集 合 : 初 始 态 集 ; 操 作 符 集 ; 目 标 态 集 。 十 五 数 码 问 题 状 态 空 间 法 :初 始 态 , , , , , , , , , , , , , , , 。 目 标 态 , , , , , , , , , , , , , , , ( 表 示 空 格 ) 。操 作 符 集 空 格 左 移 、 上 移 、 右 移 、 下 移 , 实 现 状 态 转 换 。3 十 五 数 码 游 戏 问 题 的 盲 目 搜 索 技 术1.
3、 宽 度 优 先 搜 索如 果 搜 索 是 以 接 近 起 始 节 点 的 程 度 依 次 扩 展 节 点 的 , 那 么 这 种 搜 索 就 叫 做 宽 度 优先 搜 索 。 这 种 搜 索 是 逐 层 进 行 的 ; 在 对 下 一 层 的 任 一 节 点 进 行 搜 索 之 前 , 必 须 搜索 完 本 层 的 所 有 节 点 。 其 搜 索 过 程 如 图 ( 1) 所 示 。图 1 宽 度 优 先 搜 索 示 意 图MS OPFL FRFNF2宽 度 优 先 搜 索 算 法 如 下 :( 1) 把 起 始 节 点 放 到 OPEN 表 中 (如 果 该 起 始 节 点 为 一 目 标
4、 节 点 , 则 得 到 解 )( 2) 如 果 OPEN 是 个 空 表 , 则 无 解 , 失 败 退 出 ; 否 则 继 续 下 一 步( 3) 把 第 一 个 节 点 (记 作 节 点 n )从 OPEN 表 移 出 , 并 把 它 放 入 CLOSED 的已 扩 展 节 点 表 中( 4) 扩 展 节 点 n 。 如 果 没 有 后 继 节 点 , 则 转 向 第 (2)步( 5) 把 n 的 所 有 后 继 节 点 放 到 OPEN 表 的 末 端 , 并 提 供 从 这 些 后 继 节 点 回 到n 的 指 针( 6) 如 果 n 的 任 一 个 后 继 节 点 是 个 目 标
5、节 点 , 则 找 到 一 个 解 ( 反 向 追 踪 得 到 从目 标 节 点 到 起 始 节 点 的 路 径 ) , 成 功 退 出 , 否 则 转 向 第 (2)步其 流 程 图 如 图 2 所 示是否否 是图 2 宽 度 优 先 算 法 流 程 图把 S 放 入 OPEN 表OPEN是 否 为空 表 ?把 第 一 个 节 点 n,从 OPEN 表 移出 ,并 把 它 放 入 CLOSED 表扩 展 n,把 它 的 后 继 节 点 放 入 OPEN表 的 末 端 ,提 供 回 到 n 的 指 针 失 败起 始成 功是 否 有 任 何 后 继节 点 为 目 标 节 点 ?32、 深 度 优
6、 先 搜 索在 深 度 优 先 搜 索 中 , 首 先 扩 展 最 新 产 生 的 (即 最 深 的 )节 点 。 深 度 相 等 的 节 点 可 以任 意 排 列 。 首 先 , 扩 展 最 深 的 节 点 的 结 果 使 得 搜 索 沿 着 状 态 空 间 某 条 单 一 的 路 径从 起 始 节 点 向 下 进 行 下 去 ; 只 有 当 搜 索 到 达 一 个 没 有 后 裔 的 状 态 时 , 它 才 考 虑 另一 条 替 代 的 路 径 。 为 了 避 免 考 虑 太 长 的 路 径 (防 止 搜 索 过 程 沿 着 无 益 的 路 径 扩 展下 去 ), 往 往 给 出 一 个
7、节 点 扩 展 的 最 大 深 度 界 限 。 任 何 节 点 如 果 达 到 了 深 度 界 限 ,那 么 都 将 把 它 们 作 为 没 有 后 继 节 点 处 理 。 其 搜 索 过 程 如 图 ( 3) 所 示 。图 1 深 度 优 先 搜 索 示 意 图深 度 优 先 搜 索 算 法 如 下 :( 1) 把 起 始 节 点 S 放 到 未 扩 展 节 点 的 OPEN 表 中 。 如 果 此 节 点 为 一 目 标 节 点 ,则 得 到 解( 2) 如 果 OPEN 为 一 空 表 , 则 无 解 、 失 败 退 出( 3) 把 第 一 个 节 点 (记 作 节 点 n )从 OPE
8、N 表 移 到 CLOSED 表( 4) 如 果 节 点 n 的 深 度 等 于 最 大 深 度 , 则 转 向 第 (2)步( 5) 扩 展 节 点 n , 产 生 其 全 部 后 继 节 点 , 并 把 它 们 放 入 OPEN 表 的 前 头 。 如果 没 有 后 继 节 点 , 则 转 向 第 (2)步( 6) 如 果 后 继 节 点 中 有 任 一 个 节 点 为 目 标 节 点 , 则 求 得 一 个 解 ( 反 向 追 踪 从 目标 节 点 到 起 始 节 点 的 路 径 ) , 成 功 退 出 ; 否 则 , 转 向 第 (2)步MS PF FRFNF OL4是否 是否是 否否
9、图 2 深 度 优 先 算 法 流 程 图把 S 放 入 OPEN 表OPEN是 否 为空 表 ?把 OPEN 表 中 的 第 一 个 节 点 n移 入 CLOSED 表扩 展 节 点 n,把 其 后 裔 放 入 OPEN表 的 前 头 成 功起 始成 功是 否 有 任 何 后 继节 点 为 目 标 节 点 ?S是 否 为 目 标节 点 ? 失 败节 点 n的 深 度 是 否等 于 深 度 界 限 ?54 十 五 数 码 游 戏 问 题 的 启 发 式 搜 索 技 术估 价 函 数 :f(n) = g(n) + h(n)是 对 下 列 函 数 的 一 种 估 计 或 近 似 :f*(n)= g
10、*(n) + h*(n)f*(n): 从 初 始 节 点 到 节 点 n的 一 条 最 佳 路 径 的 实 际 代 价 加 上 从 节 点 n 到 目 标 节点 的 最 佳 路 径 的 代 价 之 和 。g*(n): 从 初 始 节 点 到 节 点 n之 间 最 小 路 径 的 实 际 代 价h*(n): 从 节 点 n到 目 标 节 点 的 最 小 代 价 路 径 上 代 价定 义利 用 与 问 题 有 关 的 知 识 ( 即 : 启 发 信 息 ) 来 引 导 搜 索 , 达 到 减 少 搜 索 范 围 , 降 低问 题 复 杂 度 的 搜 索 过 程 称 为 启 发 式 搜 索 方 法
11、。核 心 问 题 :启 发 信 息 应 用 , 启 发 能 力 度 量 和 如 何 获 得 启 发 信 息 。启 发 信 息 的 强 度强 : 降 低 搜 索 工 作 量 , 但 可 能 导 致 找 不 到 最 优 解 。弱 : 一 般 导 致 工 作 量 加 大 , 极 限 情 况 下 变 为 盲 目 搜 索 , 但 可 能 可 以 找 到 最 优 解 。全 局 最 佳 优 先 搜 索 :(1) 把 起 始 节 点 放 到 OPEN表 中 , 并 计 算 估 价 函 数 f(S0)。(2) 如 果 OPEN是 个 空 表 , 则 没 有 解 , 失 败 退 出 ; 否 则 继 续 。(3)
12、把 OPEN表 中 的 第 一 个 节 点 ( 股 价 函 数 最 小 的 节 点 n) , 移 入 CLOSED表 。(4) 如 果 n是 目 标 节 点 , 问 题 得 解 , 退 出 。 否 则 继 续 。(5) 判 断 节 点 n是 否 可 扩 展 。 若 否 则 转 向 第 (2)步 , 若 是 则 转 向 (6)。(6) 对 节 点 n 进 行 扩 展 , 并 对 其 所 有 后 继 节 点 计 算 估 价 函 数 f( n) 的 值 , 并 为每 个 后 继 节 点 设 置 指 向 n节 点 的 指 针 。 把 这 些 后 继 节 点 都 送 入 OPEN表 , 然 后 对OPE
13、N表 中 的 全 部 节 点 按 照 估 价 函 数 值 从 小 到 大 的 顺 序 排 序 。(7) 转 向 第 (2)步 。65 例 子 及 分 析对 于 每 一 种 算 法 至 少 给 出 两 个 例 子 及 说 明 , 包 括 起 始 状 态 、 目 标 状 态 、 所 走 的 步 数 及 其 对 应操 作 符 、 生 成 的 状 态 总 数 ( OPEN 表 和 CLOSED 表 的 大 小 ) 、 搜 索 CPU 时 间 ( 毫 秒 ) 等 。测 试 的 例 子(1)(2) ( 深 度 界 限 为 5)7深 度 优 先 搜 索 :(3)任 意 的 初 始 状 态 与 目 标 状 态
14、 。0 1 2 3 0 2 1 34 5 6 7 5 4 6 78 9 10 11 8 9 10 1112 13 14 15 12 13 14 158宽 度 优 先 搜 索 :910A*算 法 :1112136 体 会 与 致 谢这 次 作 业 让 我 的 编 程 能 力 有 了 很 大 的 提 高 , 查 阅 资 料 等 能 力 也 有 很 大 的 提升 。 让 我 对 人 工 智 能 技 术 有 了 进 一 步 的 认 识 。 在 解 决 问 题 和 算 法 设 计 上 的 能 力 也极 大 地 提 高 。 这 次 作 业 我 花 了 近 7天 的 事 件 收 集 相 关 材 料 阅 读
15、并 消 化 , 并 写 出 宽度 遍 历 , 深 度 遍 历 搜 索 算 法 。 这 里 我 也 要 谢 谢 我 朋 友 的 帮 助 , 在 我 没 有 思 路 的 情况 下 帮 助 我 , 给 我 提 供 思 路 。 通 过 这 次 实 验 更 加 熟 悉 状 态 空 间 的 宽 度 优 先 搜 索 、深 度 优 先 搜 索 算 法 及 计 算 机 语 言 对 常 用 数 据 结 构 如 链 表 、 队 列 等 的 描 述 应 用 。 学到 了 不 少 知 识 。7 实 验 程 序 简 单 说 明1. 宽 度 优 先 遍 历 : 我 没 有 用 随 机 产 生 初 始 节 点 的 方 法 , 而 是 由 用 户 自 己 输 入 。2. 深 度 优 先 遍 历 : 节 点 数 据 由 用 户 自 己 输 入 。3. 启 发 式 搜 索 : 节 点 数 据 由 用 户 自 己 输 入 。