1 / 64

第七章 智能应用系统开发实例

内容提要: 分层设计原理 智能识别系统 智能诊断系统 智能规划系统. 基于框架的智能系统 神经网络的应用 遗传算法的应用. 第七章 智能应用系统开发实例. 7.1 分层设计原理. 分层设计的基本思想 : 将初始问题分解为等效的几个子问题; 对每个子问题进行分析;如果必要继续分解子问题,直到子问题 能够用程序设计语言将其轻而易举地表达清楚 为止。 可用树状结构表示分层设计的结果 。. 7.1 分层设计原理. 例: 求一组数的平均值 初始化:提示信息,输入一组数字。 计算:计算这组数的累加和,计算平均值。

maja
Download Presentation

第七章 智能应用系统开发实例

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 内容提要: 分层设计原理 智能识别系统 智能诊断系统 智能规划系统 基于框架的智能系统 神经网络的应用 遗传算法的应用 第七章 智能应用系统开发实例 人工智能及其应用

  2. 7.1 分层设计原理 • 分层设计的基本思想: • 将初始问题分解为等效的几个子问题; • 对每个子问题进行分析;如果必要继续分解子问题,直到子问题能够用程序设计语言将其轻而易举地表达清楚为止。 • 可用树状结构表示分层设计的结果。 人工智能及其应用

  3. 7.1 分层设计原理 • 例: 求一组数的平均值 • 初始化:提示信息,输入一组数字。 • 计算:计算这组数的累加和,计算平均值。 • 输出:输出解释信息、程序运行结果。 人工智能及其应用

  4. 求平均值的分层设计过程 下图为分层设计结果 人工智能及其应用

  5. 求平均值的分层设计过程 此设计结果描述为Prolog程序:ch7ex01.pro /*Program ch7ex01.pro*/ DOMAINS n=integer s,ave=real slist=integer* PREDICATES init(n,slist) calc(n,slist,ave) average sum(slist,s) input(n,slist) output(ave) 人工智能及其应用

  6. CLAUSES average :- init(N,List), calc(N,List,Ave), output(Ave). init(N,List) :- write(“Calculate the average of a list of numbers.\n"), nl, write("How many numbers ? "), readint(N), nl, write("Now type in "), write(N), write(" Numbers"), nl, nl, input(N,List). calc(N,List,Ave) :- sum(List,Sum), Ave=Sum/N. output(Ave) :- nl, nl, write("The average of your numbers is ==>"), write(Ave), nl, nl. input(0,[]) :- !. input(N,[H|T]) :- readint(H), M = N - 1, input(M,T). sum([],0) :- !. sum([H|T],S) :- sum(T,S1), S=H+S1. GOAL average. 人工智能及其应用

  7. 7.2 智能识别系统 • 问题描述 • 系统结构与设计 • 智能识别系统的使用 人工智能及其应用

  8. 问题描述 Kennel俱乐部关于种狗的分类: 人工智能及其应用

  9. 系统结构与设计 • 识别用户的狗。 • 把识别结果输出给用户。 • 显示提示信息。 • 清除识别过程中的中间结果及信息。 人工智能及其应用

  10. 系统结构与设计 即“dogs”系统的最高层目标可以用Prolog的规则表示如下: dogs :- init, identify(Dog), outmessage(Dog), forget. 此最高层目标说明了整个程序由以下四个子目标组成: • Init—显示提示信息,告诉用户程序的目的和操作方法。 • identify—识别用户的狗。 • out_message—把识别结果输出给用户,输出信息中包括狗的种类名;或者告诉用户无法识别狗品种的原因。 • forget—从系统中清除掉刚才识别过的狗的信息,以避免在识别另一只狗时发生混淆。 人工智能及其应用

  11. 智能识别系统的使用 • 例:“dogs”智能识别系统识别纯种狗greyhound • (1)运行该系统时,在用户终端上会显示出下述信息: • This is a program to identify predigree dogs,according to the groupings of the Kennel Club of Great Britain. • The program will ask you a series of questions to which you must answer’ yes’ or ‘no’. • The program will then attempt to identify your dog. • Press the return key to continue. • 在按下回车键之后,系统将向用户提出一系列问题,用户要用“yes”或“no”来回答。下面就是这些问答信息和系统推出的识别结果。 人工智能及其应用

  12. 智能识别系统的使用 Is it a hunting dog that tracks by sight or scent? yes. Is it a muscular dog? yes. Is it a compact dog? no. Does it have a short coat? yes. Is it used for racing? yes. ******************************************** Your dog is a(n)greyhound Program finished. Do you wish to run the program again? no. 人工智能及其应用

  13. 智能识别系统的使用 (2)而下面的对话告诉我们,当该系统无法识别用户的狗品种时,它是如何回答的: Is it a hunting dog that tracks by sight or scent? yes. Is it a muscular dog? no. ******************************************** Failure! I cannot identify your dog. Program finished. 当系统识别不出这只狗时,系统会再次询问用户是否希望重新运行这一程序。如果回答“no”,系统就会终止。 Do you wish to run the Program again? no. 人工智能及其应用

  14. 7.3 智能诊断系统 • 问题描述及系统开发方法 • 系统结构与设计 • 智能诊断系统的使用 人工智能及其应用

  15. 可信度一般形式 : 如果: 条件(X1)的可信度为(Y1)且 条件(X2)的可信度为(Y2)且 条件(X3)的可信度为(Y3)且 …… 则有:结论(X)的可信度为(Y)。 问题描述及系统开发方法 人工智能及其应用

  16. 问题描述及系统开发方法 开发智能诊断系统的过程可分为下列五个步骤: (1)确定问题范围:即确定对象问题的范围,以及问题范围内所涉及的领域、对象和关系。本例将介绍的营养分析系统其知识范围包括了13种营养缺乏症,涉及的对象是45种症状,对象的全体构成了深度优先逆向推理系统。 (2)收集事实:即收集支持每个营养缺乏症所需要的事实。有关营养分析的事实表列出了开发一个营养分析系统所需的事实,它们是按照各种缺乏症及其相关症状分别排列的。 人工智能及其应用

  17. 营养缺乏症及其症状表现事实表 人工智能及其应用

  18. 问题描述及系统开发方法 (3)列事实表:用上表描述中的事实可得到下页事实表(全表见书中表7-2)。其中,用列表示结论(即缺乏症),用行表示证据(即症状)。相关的结论与证据用行、列交叉点处加“×”标记表示。 (4)事实分组:对事实表中的症状进行分组,尽量把相似的症状放在一起。本例仅采用一级分组,分组结果见事实分组表。 (5)编写程序 人工智能及其应用

  19. 事实表 人工智能及其应用

  20. 事实分组表 人工智能及其应用

  21. 系统结构与设计 分层设计: • 输入症状 • 智能诊断 • 清空数据库 • 退出 人工智能及其应用

  22. 系统结构与设计 • 顶层菜单式规则: go_once_read_choice(1) :- go_choice(1), go_once, !. go_once_read_choice(4) :- !. go_once_read_choice(_):-write(“choice error”), nl, write(“Please make option again(“1-4):”), nl, readint(Choice), go_once_read_choice(Choice). • 第一个go_once_read_choice(1)规则表示进入第一个功能分支—输入症状。进入“智能诊断”或“清空数据库”与此同理。 • 第二个go_once_read_choice(4)规则表示退出系统。 • 第三个go_once_read_choice(_)规则表示用户没有输入1-4的选项时,要求重新输入,直到输入合法的选项为止。 人工智能及其应用

  23. 第二级菜单式规则: (1)输入症状: go_choice(1)为用户提供了“眼睛、嘴、骨骼…”共7大类输入症状选项以及退出功能。branch_main是某一大类中的症状分类子菜单,规则设计方法与go_choice类似。 go_choice(1) :- write(“*************************************”),nl, write(“ The Enter Symptom_1 Menu”), nl, write(“*************************************”),nl, write(“please select category of symptom:”), nl, write(“=====1:Eyes\n”, “=====2:Mouth\n” ),……, nl, readint(Choice), branch_main(Choice), Choice>0, Choice<8, go_choice(1). go_choice(1). 即规则go_choice(1)和branch_main分类罗列事实分组中的7类45种症状,并且为用户提供输入选择项。然后,用谓词process将用户所选择的症状存入事实数据库xpositive谓词中. 人工智能及其应用

  24. 第二级菜单式规则: 当用户选项与事实数据库xpositive(eyes,3)相匹配时,就可认为是Vitamin_A的缺乏症,信度为0.1。谓词conclude根据公式 NN=N+(1-N)*CF 计算营养缺乏症的信度;然后把缺乏症和信度因子存入事实数据库谓词deficiency。对信度大于0.19的缺乏症给予输出。 conclude(Deficiency,CF) :- retract(dbdeficiency,N)), NN=N+(1-N)*CF, assertz(dbdefiency(Deficiency)), !. conclude(Deficiency,CF) :- assertz(dbdeficiency(Deficiency,CF)), !. writelistx :- dbdeficiency(Deficiency,N), writeout(Deficiency,N), fail. writelistx :- xflag(1), nl, write(“The analysis has not been approved ”), nl, !. writelistx :- xflag(0), nl, write(“Sorry, I cannot make a diagnosis”), nl. writeout(Deficiency,N) :- N>=0.19, setflag1, nl, write(“There’s evidence of a”,Deficiency), write(“deficiency”,N), nl. writeout(_,_). 人工智能及其应用

  25. 第二级菜单式规则: (3)清空数据库 : go_choice(3)进入清空数据库这一功能分支,系统采用clear_facts谓词分别来清除事实数据库中的症状、营养缺乏症、姓名、性别、年龄等信息,为下一次运行做好准备。 例如清除症状数据库为: clear_facts :- retract(xpositive(_,_)), fail. 人工智能及其应用

  26. 智能诊断系统的使用 第一步:清空事实数据库; 第二步:输入症状; 第三步:执行诊断; 第四步:显示最后诊断结果。 人工智能及其应用

  27. 7.4 智能规划系统 • 规划问题 • 系统结构与设计 • 智能规划系统的使用 人工智能及其应用

  28. 规划问题 • 智能系统在AI应用系统中的级别: • 例:以在给定房间中安置特定家具为实例,介绍智能规划系统的设计思想。如下页图所示,该智能规划系统首先应该接受给定的房间基本信息和欲安置家具基本信息,然后依次扫描合适的安置条件,直至达到最终规划目标。 人工智能及其应用

  29. 规划问题 房间内家具安置的正向推理路径: 人工智能及其应用

  30. 系统分层设计: 数据库初始化。 输入原始数据。 扫描条件子句,寻找成功的匹配。 扫描动作子句。 程序不断地进行扫描。 系统结构与设计 人工智能及其应用

  31. 系统结构与设计 系统中的知识可用如下一系列规则表达: 规则1 : IF 条件1 THEN 目标1 规则2 : IF 条件2 THEN 动作1 规则3 : IF 目标1 AND 条件3 THEN 动作2 …… 参照上页图,可通过下述规则实现正向推理策略: run :- initialize, input_data, /* Get the input data */ scan_conditions(A, B, C), /* Scan for a matching condition set */ try_action(A, B, C), /* Scan for the corresponding goal & action */ fail. run :- print_summary. /* Print the planning result */ 人工智能及其应用

  32. 智能规划系统的使用 (1)initialize:将相关的房间初始信息送入事实数据库; (2)input_data:通过与用户会话获得各个欲安置家具的名称、尺寸,房间内门窗的方位及尺寸信息,以及电源插座的位置信息。 (3)scan_conditions:寻求匹配的可安置条件,并寻找对应的try_action动作子句,尝试完成各项家具的安置规划。 (4)print_summary:系统输出已安置的规划结果及未安置的家具,并根据现有房间条件和安置结果输出建议用户购买的物品清单。 人工智能及其应用

  33. 7.5 基于框架表示的智能系统 • 基于框架的智能系统设计 • 框架系统的使用 人工智能及其应用

  34. 基于框架的智能系统设计 • 天气预报系统分层设计结构 • 天气知识框架槽 • 会话框架 人工智能及其应用

  35. 基于框架的智能系统设计 天气预报系统的分层设计: 人工智能及其应用

  36. 基于框架的智能系统设计 天气框架槽 • 框架中包含了现行的天气条件组。 • 所有的槽(除最后一个)均可以通过与用户对话得到填充。 • 最后一个槽要通过其它槽计算或演绎得到。 人工智能及其应用

  37. 基于框架的智能系统设计 • 建立框架目的: 用于存放会话的问题。 • 框架的Prolog表示: query(Slotname,Question). • 会话框架: 人工智能及其应用

  38. 基于框架的智能系统设计 该系统的顶层目标: go :- init, /*Clear the Facts Database & load the initial knowledge*/ user_enter_value, /*Dialog with the user and get the input data */ use_rules, /*Use the observed values to forecast the weather*/ write_weather. /*Output the weather forecast*/ go :- write(“Sorry,I can not determine the weather.”). init :- clear_rule, load_kd. clear_rule :- retract(_), fail. clear_rule. load_kd :- consult(“WeatherFrame_KD.dba”). 人工智能及其应用

  39. 框架系统的使用 天气预报框架系统运行时,会依次询问并要求用户输入其观测值: • 气压值:非常低、低、正常、高、非常高;相应输入选项分别是数字1-5。 • 气压变化情况:剧烈下降、缓慢下降、急剧上升和缓慢上升;相应输入选项分别是数字1-4。 • 风向:北、东北、东、东南、南、西南、西、西北;相应输入选项分别是数字1-8。 • 季节:春、夏、秋、冬;相应输入选项分别是数字1-4。 人工智能及其应用

  40. 框架系统的使用 一个该系统运行结果示例如下: What is the barometric pressure? 4 How is the barometric pressure changing? 1 What direction is the wind from? 4 What is the season? 1 The Possible Result(s)is (are) as follows: (1)Windy,rain within 12 hours. Press any key to return…… 人工智能及其应用

  41. 7.6 神经网络的应用 • BP神经网络的应用 • 用Hopfield网络求解TSP问题 人工智能及其应用

  42. BP神经网络的应用 • “熟人”的学习问题: • 下页图所示网络的目标:确定输入的两个人是否相识,其任务为学习图中上半部分一组3人中的任何一人是下半部分一组3人中任何一人的熟人,用节点A 代表。 • 如果网络的输出大于0.9,那么就判定这两个人“相识”;如果输出小于0.1,就判定为“不相识”;其它 结果被认为是模糊不定的。 人工智能及其应用

  43. BP神经网络的应用 • 假设输入仅为二值,即0或1,H1和H2为隐节点,具有“与门”的作用。 • 在该问题中假设Robert、Raquel和Romeo是同胞,而Joan、James和Juliet也是同胞,因此不能把他们相互视为熟人。 人工智能及其应用

  44. 下表给出这样的认识描述:对于15种可能的输入组合,其对应“熟人”的输出有9种,而对应“同胞”的输出为6种。下表给出这样的认识描述:对于15种可能的输入组合,其对应“熟人”的输出有9种,而对应“同胞”的输出为6种。 人工智能及其应用

  45. BP神经网络的应用 “熟人”问题的学习结果 : 人工智能及其应用

  46. BP神经网络的应用 学习行为与比率参数的关系: 人工智能及其应用

  47. 用Hopfield网络求解TSP问题 • 适用于: 模糊推理模型、非线性辨识和自适应控制模型中的问题学习求解。 • 旅行商最优路径问题(TSP): 设有n个城市,两两城市间均有直线路径 ,要求寻找一条闭合的路径,该路径必须历经每个城市,且仅经过一次,当返回起始城市时总的路径长度最短。 人工智能及其应用

  48. 用Hopfield网络求解TSP问题 为建立表述TSP问题状态与结果的人工神经网络模型,以n=5为例设置如下表所示的置换矩阵。 人工智能及其应用

  49. 用Hopfield网络求解TSP问题 置换矩阵中的每列最多有一个“1”,表示每次仅经过一个城市;每行最多有一个“”1,表示每个城市仅被经历过一次;置换矩阵中“1”的个数为(城市个数)。 • 能量函数的构造: 各城市间的距离用 表示,作为约束信息以确定各神经元间的联接强度;神经元输出电压表示为 ,其中x表示城市名,i 表示该城市在路径中的顺序, 表示城市x 在路径中被访问的次序为i。 人工智能及其应用

  50. 用Hopfield网络求解TSP问题 (1) 置换矩阵: 上式满足最小时对应如下情况: 第一项对应置换矩阵中每一行最多一个“1”; 第二项对应置换矩阵中每一列最多一个“1”; 第三项对应置换矩阵中只有个“1”。 此外,因为路径是循环的,所以 ,满足取模“n”的规律。 人工智能及其应用

More Related