基于VisualProlog的TSP_货郎担_问题实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
两城市互通
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT @),L.A*J,1 /3/L,J,)2 A3//,AJ,LZA.JVKA.JVKL.1J*/A,K/?2I A-*?1,1 A3//,AJ,LZ]K^KG.1JK6?25_N )3*LZ]K^KG.1JK6?25; A3//,AJ,LZ]K^KG.1JK6?25_N )3*LZ^K]KG.1JK6?25; TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ‘ 判断一个城市是否在城市列表里面 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT @),L.A*J,1
城市交通数据库
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT @),L.A*J,1 /3/L,J,)2 )3*LZA.JVKA.JVKL.1J*/A,K/?2I A-*?1,1 )3*LZSP?[*/SKS1[*/0[*.SK8"""K8I; )3*LZSP?[*/SKS0?*/0\[3?SK8!""K8I; )3*LZSP?[*/SKS4,.M./0SK$""K8I; )3*LZSP?[*/SKS/*/M./0SK<""K8I; )3*LZS1[*/0[*.SKS4,.M./0SKD""K8I; )3*LZS1[*/0[*.SKS/*/M./0SK!""K8I; )3*LZS1[*/0[*.SKS0?*/0\[3?SK$#"K8I; )3*LZS0?*/0\[3?SKS4,.M./0SK8#""K8I; )3*LZS0?*/0\[3?SKS/*/M./0SK88""K8I; )3*LZS4,.M./0SKS/*/M./0SK$#"K8I; TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
%&’(%)*+,-./0 &*-,12*/ ’)34-,2 5 即 货 郎 担 问 题 ! 是 一 个 经 典的图论问题 " 它可以被简单 地 描 述 为 有 6 个 城 市 ! 它 们 之 间
的距离已知 " 有一货郎要从某一城市出发走遍所有城市 ! 且每个 城市只能经过一次 ! 最后回到原处 ! 问如何选择路线可使他所走 过的路径最短 " 容易看出 %&’ 问题是一个典型的易于描述却难 以处理地 6’ 完全问题 " 有效地解决 %&’ 问题在可计 算 理 论 上 有着重要地理论价值 " 789 分析 6 个城 市 的 %&’ 问 题 可 知 !6 个 城 市 及 其 之 间 地 路 径 构成了一个无向连通图 " 若采用穷举搜索算法 ! 即找到该图中的 所有回路 ! 在求出路径最短的最佳路径 " 如果对于 6!8"" 的 %&’ 问题 ! 则共有 :;<<<= 条路线 " 在如此庞大的 搜 索 空 间 中 搜 索 最 优解是相当困难的 " 当然 ! 借助神经网络 # 遗传算法 # 蚁群算法及 其改进算法 ! 能减小搜索空间进而快速收敛求出最优解 " 但是无 论采用哪种算法来实现具体的 %&’ 问题 ! 如果采用过程式语言 编程 ! 必须事先告诉计算机每一步该做什么才能求解问题 " 也就 是说程序员必须在计算机运行前知道怎么解决 问 题 " 而 >.1?*’)3-30 语言是一种描述性语言 ! 程序员 只 要 给 出 求 解 问 题 所 需 的事实和规则即可 " 7!9 因此 >.1?*- ’)3-30 语言非常适合专家系 统 # 规划和其它 "# 相关问题的求解 " 二 ’ !"#$%& ’()&)* 语言简介 ’)3-30 即 @)30)*22./0 ./ -30.A! 它 建 立 在 一 阶 谓 词 逻 辑 $B3)/ 子 句 % 的 理 论 基 础 上 " 8CD! 年 由 E;F3-2,)*?,) $ 法 国 马 赛 大 学 % 研 制 成 功 第 一 个 ’)3-30 程 序 解 释 系 统 " 8CDD 年 由 G; H*)),/ $ 英 国 爱 丁 堡 大 学 % 实 现 了 第 一 个 ’)3-30 程 序 编 译 系 统 " ’)3-30 能够高效地实现逻辑推理功能 ! 因 此 它 是 人 工 智 能 程 序 设计采用的主要语言 " ’)3-30 具有以下特点 & (8I’)3-30 是一种描述性语言 " 只需给 出 求 解 所 需 的 事 实 和 规则 !’)3-30 就能用演绎推理求解问题 " (!I ’)3-30 的数据和程序有统一的树状数据结构 " 数据类型 包括常量 # 变量 # 结构和表 " (=I ’)3-30 具有匹配合一 # 递归 # 回溯等功能 " (:I’)3-30 具有平行处理的潜力 ! 特别 有 利 于 采 用 数 据 流 机 的体系结构 ! 提高并行处理能力 " >.1?*- ’)3-30 是由丹麦 ’)3-30 G,+,-3@2,/J F,/J,) 推出的可 视化的 ’)3-30 语言开发工具 " 它既具有传统 ’)3-30 的推理能力 ! 又具有友好的图形用户界面 " 它的应用已不仅仅局限于人工智 能的研究领域 " 一个完整的 >.1?*- ’)3-30 程序一般包括常量段 # 领域 段 # 数 据库段 # 谓词段 # 目标段和子句段等六个部分 " 各段以其相应的 关 键 字 A3/1J*/J1K L32*./K L*J*4*1,K @),L.A*J,1K 03*- 和 A-*?1,1 开 头加以标识 " 另外 ! 在程序首部还可以设置指示编译程序执行特 定任务的编译指令 ! 这 和 F 语 言 的 包 含 头 文 件 十 分 相 似 " 以 下 是 >.1?*- ’)3-30#;! 个 人 版 的 界 面 $ 图 8 %! 通 过 单 击 菜 单 中 的 ’)3M,AJNO6,P ’)3M,AJ 弹出的 E@@-.A*J.3/ QR@,)J 对话 框 可 以 轻 松 的建立一个 >.1?*- ’)3-30 项目 "
!""#年第 $ 期

建பைடு நூலகம்


%%1
基于 !"#$%& ’()&)* 的 +,’!货郎担"问题实现
陈东方 王 诚
武汉 ! 武汉科技大学计算机学院 " 湖北
!"##$% #
# 摘 要 $ 货郎担问题是一个典型的易于描述却难以处理地 &’ 完全问题 $ 而 ()*+,- ’./-/0 语言的匹配合一 % 递归 和回溯等特点非常适合求解这类问题 $ 本文利用 ()*+,- ’./-/0 实现了简单的货郎担问题 $ % 关键字 & ()*+,- ’./-/0 货郎担问题 回溯 一 ’ 引言
回溯查找两个不同城市之间经过其他 所有城市的所有可能路径




ZI86 7PIQ’66KI9-,71SQ9P8HS5 SQ9P8HS%5H65 [显示所有通路 7PIQWPI.-,7-KI9-,71SQ9P8HS5 SQ9P8HS%B [显示最短通路
!""#年第 $ 期
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED G.,+328-,7 G.I2,+9., 7PIQ’66KI9-,7123-4523-4%@1353% G.I2,+9., Q.3-,=.I-,123-4 R3.7-23-4523-4C37-5+37-8H2,% 26897,7 7PIQ’66KI9-,71J3-4F5J3-4!%?@ Q.3-,1S’66 .I9-,7 T.I/ S5J3-4F5S -I S5J3-4!5S 8.,?UHS%5 .I9-,1J3-4F5J3-4!5;>5(373-,+23-475 L37-5#%5 Q.3-,=.I-,1J3-4F5(373-,+23-475L37-%5H65 T836B 7PIQ’66KI9-,71=5=%B Q.3-,=.I-,1J3-4F5(373-,+23-475L37-%?@ A 5 Q.3-,1J3-4F5S @@V S5(373-,+23-475S @@V S5J3-4F5S L37-8H2,N S5L37-%5H6B DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
查找显示最短路径
首 先 ! 在 +I/83H7 $ 领 域 段 % 定 义 将 要 使 用 变 量 的 论 域 & 然 后 在城市交通数据库中定义不确定谓词 .I8+ ! 通过子句描述不同 城 市 之 间 距 离 & 接 着 定 义 谓 词 2IHH,2-,+ #/,/0,. 和 .I9-, ! 通 过 子句分别描述两城市互通 # 判断一个城市是否在城市列表里面 以 及 从 一 个 城 市 到 另 一 个 城 市 的 道 路 查 询 & 再 定 义 7PIQ’66! KI9-,7 和 7PIQWPI.-,7-KI9-,7 谓 词 来 分 别 求 解 所 以 路 径 和 最 短 路径 & 最后在 ZI86$ 目标域 % 定义求解的目标 " (37986 \.I6IZ 程序的运行机理主要是基于匹配合一和回溯 " 求解所有路径过程先从目标开始 ! 首先把 7PIQ’66KI9-,7 1SQ9P8HS5SQ9P8HS%与 G.I2,+9., 7PIQ’66KI9-,7123-4523-4%@1353% 匹 配 合 一 ! 将 变 量 23-4 与 常 量 S Q9P8HS 进 行 绑 定 & 然 后 系 统 寻 找 能 与 目 标 谓 词 匹 配 合 一 的 事 实 或规则头部 ! 本实例中事实均不能与目标直接匹配 ! 而存在规则 头部 7PIQWPI.-,7-KI9-,7 1J3-4F5J3-4!% 与目标相匹配 " 于是 ! 对原目标的求解就转化为 对新目标 Q.3-,1S’66 .I9-,7 T.I/ S5J3-4F5S -I S5J3-4!5S 8.,?UHS%
引用论域
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT L32*./1 A.JV W 1V243- X城市名称 A.JV-.1J W A.JVU X城市列表 L.1J*/A, W ./J,0,) X距离 /?2 W./J,0,) X经过的道路数 W经 X过的城市数 Y8 TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
""H
+,-,./ /,/0,.123-4523-4637-% 26897,7 /,/0,.1:5;:<=>%?@A B /,/0,.1:5;=<C>%?@ /,/0,.1:5C%B DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 从 23-4F 到 23-4! 的道路查询 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED G.,+328-,7 HIH+,-,./ .I9-,123-4523-4523-4C37-5 23-4C37-5+37-8H2,5H9/% 26897,7 .I9-,1J3-45J3-45(373-,+23-475 (373-,+23-475 "5"% ?@ A B .I9-,1J3-4F5J3-4!5(373-,+23-475 K,796-(373-,+23-475L37-8H2,5M9/%?@ 2IHH,2-,+1J3-4F5:5L37-F5F%5 HI-1/,/0,.1:5(373-,+23-47%%5 .I9-,1:5J3-4!5;:<(373-,+23-47>5 K,796-(373-,+23-475L37-!5M9/F%5 L37-8H2,NL37-FOL37-!5 M9/NM9/FOFB DEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
图 8 >.1?*- ’)3-30#;! 个人版界面图 三 ’ 简单 +,’ 问题实例 已知 < 个不同城市两两之间的距离 $ 如城市交通数据库所 描述 %! 现要求出从武汉出发回到武汉的所以路径以及其中最短 的路径 " >.1?*- ’)3-30 实现代码如下 &
./A-?L, S2*.-;./AS TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
相关文档
最新文档