Presentation is loading. Please wait.

Presentation is loading. Please wait.

第七章 智能应用系统开发实例 内容提要: 分层设计原理 智能识别系统 基于框架的智能系统 智能诊断系统 神经网络的应用 智能规划系统

Similar presentations


Presentation on theme: "第七章 智能应用系统开发实例 内容提要: 分层设计原理 智能识别系统 基于框架的智能系统 智能诊断系统 神经网络的应用 智能规划系统"— Presentation transcript:

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

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

3 7.1 分层设计原理 例: 求一组数的平均值 初始化:提示信息,输入一组数字。 计算:计算这组数的累加和,计算平均值。
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 average :- init(N,List), calc(N,List,Ave), output(Ave).
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)且
…… 则有:结论(X)的可信度为(Y)。 人工智能及其应用

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

17 营养缺乏症及其症状表现事实表 序号 缺 乏 症 症 状 1 维生素A缺乏症
缺 乏 症 症 状 1 维生素A缺乏症 Bitot氏斑(眼球上的白色斑点);夜盲症(暗处眼睛无调节能力);麦粒肿,结膜炎;牙龈脆弱、出血;皮肤粗糙、干燥、发红;粉刺、痤疮; 2 维生素B1缺乏症 弱视(视力模糊);神经过敏;智力减退;健忘;迟钝,浮肿;厌食;精神混乱;精神不易集中;眩晕;皮肤溃疡 3 维生素B2缺乏症 眼球发红,对光敏感;角膜溃疡;紫舌;嘴裂;眩晕;皮肤溃疡;油性皮肤;迟钝、浮肿 4 维生素B3缺乏症 舌、嘴、牙龈、口腔溃疡;红舌;精神过敏、抑郁;忧虑、易疲劳、失眠;精神抑郁;皮肤干燥、发暗、有鳞屑;消化不良 5 维生素B5缺乏症 关节炎;巨舌;嘴裂;胀肚;精神、抑郁;眩晕;角膜溃疡 6 维生素B6缺乏症 角膜溃疡;舌、嘴、齿龈溃疡;嘴裂;(妇女)体内积水 7 维生素B12缺乏症 光舌或亮舌;条件反射慢;口吃;精神不易集中、抑郁 8 维生素C缺乏症 伤口愈合慢;对传染病的抵抗力低;角膜溃疡;牙龈脆弱、出血;口腔溃疡;关节炎;粉刺,痤疮;皮肤干裂; 人工智能及其应用

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

19 事实表 缺乏症症状 A B1 B2 B3 B5 B6 B12 C E 钙 叶酸 铁 蛋白质 Bitot氏斑(眼) 夜盲症 麦粒肿,结膜炎 ×
人工智能及其应用

20 事实分组表 × 缺乏症 症 状 A B1 B2 B3 B5 B6 B12 C E 钙 叶酸 铁 蛋白质 眼 睛 Bitot氏斑(眼) 夜盲症
症 状 A B1 B2 B3 B5 B6 B12 C E 叶酸 蛋白质 Bitot氏斑(眼) × 夜盲症 麦粒肿, 结膜炎 弱视 眼球发红, 对光敏感 角膜溃疡 人工智能及其应用

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

22 系统结构与设计 顶层菜单式规则: go_once_read_choice(1) :- go_choice(1), go_once, !.
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 clear_facts :- retract(xpositive(_,_)), fail.
第二级菜单式规则: (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种。
Robert Raquel Romeo Joan James Juliet 熟人 同胞 1 人工智能及其应用

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

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

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

48 用Hopfield网络求解TSP问题 为建立表述TSP问题状态与结果的人工神经网络模型,以n=5为例设置如下表所示的置换矩阵。 城市名称
路径访问顺序 1 2 3 4 5 A B C D E 人工智能及其应用

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

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

51 用Hopfield网络求解TSP问题 (2) 路径最短:
(2) 路径最短: 上式表示若路径中包括距离 ,则城市x的访问次序为i时,城市y的访问次序应为i-1或i+1。 能量函数描述为: 人工智能及其应用

52 用Hopfield网络求解TSP问题 例:下图是Hopfield网络应用于含8个城市的TSP问题求解过程,(a)图表示8个城市的初始位置;(b)图为网络结构(共8×8个神经元)及网络最终运行结果,其中各圆圈的大小表示相应神经元输出值的大小;(c)图是根据(b)图结果得出的最终路径。 人工智能及其应用

53 7.7 遗传算法的应用 遗传算法优化神经网络 基于遗传算法的混合Flow-shop调度方法 人工智能及其应用

54 遗传算法优化神经网络 用遗传算法实现网络优化的步骤: (1) 初始化过程:确定BP网络结构、遗传算法进化参数。
(2) 根据网络结构产生网络权值,作为遗传算法中个体的表现型;排列网络权值,组成个体基因型;按照群体规模生成初始群体。 (3) 由神经网络的误差函数确定个体的适应度函数。 (4) 根据适应度函数计算群体中个体的适应度值。 人工智能及其应用

55 遗传算法优化神经网络 (5) 判断是否满足进化结束条件。若满足则结束进化过程,输出最优解对应的个体表现型,即优化的网络权值;否则,执行(6),继续进化过程。 (6) 对当前群体进行选择、交叉、变异等遗传操作,产生下一代群体,转(4)。 人工智能及其应用

56 遗传算法优化神经网络 算法的实现: (1) 编码 (2) 群体设定 (3) 适应度函数的确定 (4) 遗传操作 人工智能及其应用

57 混合Flow-shop调度方法 混合Flow-shop调度问题(Hybrid Flow-shop Scheduling Problem, HFSP)是一般FSP问题的推广,与FSP不同之处在于某些工序上存在并行工作的机器,被称为柔性流水线。 HFSP问题可描述为:需要加工多个工件,所有工件的加工路线相同,都需要依次通过各道工序,在所有工序中至少有一个工序存在着多台机器并行。需要解决的问题是确定并行机器的分配以及同一台机器上工件的加工次序,目标是使最大加工时间最小化。 人工智能及其应用

58 混合Flow-shop调度方法 HFSP问题遗传算法求解的编码方法:
假设要加工N个工件,每个工件都要依次经过S个加工工序,每个工序的并行机器为 , 所有工序中至少有一个工序存在并行机器,即至少存在一个 大于1的情况。构造如下 的维HFSP编码矩阵: 人工智能及其应用

59 混合Flow-shop调度方法 根据上述编码矩阵可确定染色体。染色体由S个小段组成,每个小段包括N个基因。染色体可表示为: 例:对于3个工件、3道工序,各工序的并行机器数分别为3、2、2的混合Flow-shop调度问题,各机器编号如下图所示。 人工智能及其应用

60 混合Flow-shop调度方法 假设产生编码矩阵: 对矩阵的各元素分别取整,并根据各工序上的并行机器编号原则,可得到各工件与机器的对应关系:
根据编码矩阵可得染色体如下: 人工智能及其应用

61 混合Flow-shop调度方法 基于遗传算法的HFSP问题求解: 产生初始群体 选择适应度函数 选择算子 交叉算子 变异操作
人工智能及其应用

62 混合Flow-shop调度方法 HFSP实例:
某汽车发动机厂金加工车间要加工12个工件,每个工件需经过车、刨、磨3个工序,现有3台车床,2台刨床,4台磨床,每台机床的加工能力不同(加工时间不同),具体加工时间如下页表所示: 人工智能及其应用

63 工件 工序1 工序2 工序3 机器1 机器2 机器3 机器4 机器5 机器6 机器7 机器8 机器9 1 2 3 4 5 6 8 9 7
10 11 12 人工智能及其应用

64 混合Flow-shop调度方法 得到的最好染色体(最优解)为:
[2.77,3.51,1.74,3.52,2.42,1.36,3.28,3.94,1.09,1.22,2.24,3.64,0,1.60,1.13,1.24,2.97,1.73,1.88,1.08,2.68,1.16,2.69,2.51,2.96,0,4.99,3.29,4.95,2.35,1.10,1.01,1.73,1.35,3.06,1.20,4.13,3.67] 人工智能及其应用


Download ppt "第七章 智能应用系统开发实例 内容提要: 分层设计原理 智能识别系统 基于框架的智能系统 智能诊断系统 神经网络的应用 智能规划系统"

Similar presentations


Ads by Google