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

64
人人人人人人人人 1 人人人 人人人人人 人人人人 人人人人 人人人人人人 人人人人人 人人人人人 人人人人人 人人人人人人人人 人人人人人人人 人人人人人

description

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

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

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

人工智能及其应用 1

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

内容提要: 分层设计原理 智能识别系统 智能诊断系统 智能规划系统

基于框架的智能系统 神经网络的应用 遗传算法的应用

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

人工智能及其应用 2

7.1 分层设计原理 分层设计的基本思想 :

将初始问题分解为等效的几个子问题; 对每个子问题进行分析;如果必要继续分解子问题,直到子问题能够用程序设计语言将其轻而易举地表达清楚为止。

可用树状结构表示分层设计的结果。

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

人工智能及其应用 3

7.1 分层设计原理 例: 求一组数的平均值

初始化:提示信息,输入一组数字。 计算:计算这组数的累加和,计算平均值。 输出:输出解释信息、程序运行结果。

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

人工智能及其应用 4

求平均值的分层设计过程 下图为分层设计结果

求平均值第一层

初始化 计 算 输 出

显示有关程序信息

读入N

读入N个数

计算平均值

计算N 个数的总和

显示平均值

输出提示信息

第二层

第三层

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

人工智能及其应用 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)

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

人工智能及其应用 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.

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

人工智能及其应用 7

7.2 智能识别系统 问题描述 系统结构与设计 智能识别系统的使用

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

人工智能及其应用 8

问题描述Kennel俱乐部关于种狗的分类:

种 狗Pedigree Dogs

猎 狗Hounds

玩具狗Toys

犭更Terriers

捡物狗Gun Dogs

工具狗Working Dogs

商品狗Utilities

Begele

Creyhound

IrishWolfhound

EnglishSetter

ColdenRetriever

Pointer

CairnTerrier

IrishTerrier

StaffordshireBull Terrier

Chihuahua

Pug

YorkshireTerrier

Husky

Rottweiler

St Bernard

Bulldog

Chow Chow

Dalmatian

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

人工智能及其应用 9

系统结构与设计 识别用户的狗。 把识别结果输出给用户。 显示提示信息。 清除识别过程中的中间结果及信息。

dogs

显示提示信息 识 别 狗 输 出 结 论/解 释 结 论

忘记对话中掌握的信息

向用户提问 记住用户对问题的回答

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

人工智能及其应用 10

系统结构与设计即“ dogs”系统的最高层目标可以用 Prolog 的规则表示如下: dogs :- init, identify(Dog), outmessage(Dog), forget.

此最高层目标说明了整个程序由以下四个子目标组成: Init— 显示提示信息,告诉用户程序的目的和操作方法。 identify— 识别用户的狗。 out_message— 把识别结果输出给用户,输出信息中包括狗的种类名;或者告诉用户无法识别狗品种的原因。

forget— 从系统中清除掉刚才识别过的狗的信息,以避免在识别另一只狗时发生混淆。

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

人工智能及其应用 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” 来回答。下面就是这些问答信息和系统推出的识别结果。

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

人工智能及其应用 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.

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

人工智能及其应用 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.

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

人工智能及其应用 14

7.3 智能诊断系统 问题描述及系统开发方法 系统结构与设计 智能诊断系统的使用

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

人工智能及其应用 15

问题描述及系统开发方法 可信度一般形式 :

如果 : 条件 (X1)的可信度为 (Y1)且 条件 (X2)的可信度为 (Y2)且 条件 (X3)的可信度为 (Y3)且 ……

则有:结论 (X)的可信度为 (Y)。

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

人工智能及其应用 16

问题描述及系统开发方法开发智能诊断系统的过程可分为下列五个步骤:

(1)确定问题范围 :即确定对象问题的范围,以及问题范围内所涉及的领域、对象和关系。本例将介绍的营养分析系统其知识范围包括了 13 种营养缺乏症,涉及的对象是 45 种症状,对象的全体构成了深度优先逆向推理系统。

(2)收集事实 :即收集支持每个营养缺乏症所需要的事实。有关营养分析的事实表列出了开发一个营养分析系统所需的事实,它们是按照各种缺乏症及其相关症状分别排列的。

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

人工智能及其应用 17

序号 缺 乏 症 症 状

1 维生素 A 缺乏症Bitot 氏斑 ( 眼球上的白色斑点 ) ;夜盲症 (暗处眼睛无调节能力 ) ;麦粒肿,结膜炎;牙龈脆弱、出血;皮肤粗糙、干燥、发红;粉刺、痤疮;

2 维生素 B1 缺乏症 弱视 (视力模糊 ) ;神经过敏;智力减退;健忘;迟钝,浮肿;厌食;精神混乱;精神不易集中;眩晕;皮肤溃疡

3 维生素 B2 缺乏症 眼球发红,对光敏感;角膜溃疡;紫舌;嘴裂;眩晕;皮肤溃疡;油性皮肤;迟钝、浮肿

4 维生素 B3 缺乏症 舌、嘴、牙龈、口腔溃疡;红舌;精神过敏、抑郁;忧虑、易疲劳、失眠;精神抑郁;皮肤干燥、发暗、有鳞屑;消化不良

5 维生素 B5 缺乏症 关节炎;巨舌;嘴裂;胀肚;精神、抑郁;眩晕;角膜溃疡6 维生素 B6 缺乏症 角膜溃疡;舌、嘴、齿龈溃疡;嘴裂; (妇女 ) 体内积水7 维生素 B12 缺乏症 光舌或亮舌;条件反射慢;口吃;精神不易集中、抑郁

8 维生素 C 缺乏症 伤口愈合慢;对传染病的抵抗力低;角膜溃疡;牙龈脆弱、出血;口腔溃疡;关节炎;粉刺,痤疮;皮肤干裂;

营养缺乏症及其症状表现事实表

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

人工智能及其应用 18

问题描述及系统开发方法(3)列事实表 :用上表描述中的事实可得到下页事实表(全表见书中表 7-2)。其中,用列表示结论(即缺乏症),用行表示证据(即症状)。相关的结论与证据用行、列交叉点处加“ ×”标记表示。

(4)事实分组:对事实表中的症状进行分组,尽量把相似的症状放在一起。本例仅采用一级分组,分组结果见事实分组表。

(5)编写程序

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

人工智能及其应用 19

缺乏症症状 A B1 B2 B3 B5 B6B12

C E 钙 叶酸 铁

蛋白质

Bitot氏斑(眼 )

× ×

夜盲症 ×

麦粒肿,结膜炎 ×

事实表

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

人工智能及其应用 20

缺乏症症 状 A B1 B2 B3 B5 B6

B12

C E 钙 叶酸 铁 蛋白质

眼睛

Bitot氏斑 (眼 ) × ×

夜盲症 ×

麦粒肿,结膜炎 ×

弱视 ×

眼球发红,对光敏感 ×

角膜溃疡 × × × × ×

事实分组表

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

人工智能及其应用 21

系统结构与设计分层设计 :

输入症状 智能诊断 清空数据库 退出

营养分析诊断系统

输入症状 退 出清空数据库智能诊断

按症状做分组选择

存事实库

症状匹配

累计可信度

输出结果

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

人工智能及其应用 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的选项时,要求重新输入,直到输入合法的选项为止。

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

人工智能及其应用 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谓词中 .

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

人工智能及其应用 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(_,_).

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

人工智能及其应用 25

第二级菜单式规则:

(3)清空数据库 :

go_choice(3)进入清空数据库这一功能分支,系统采用clear_facts谓词分别来清除事实数据库中的症状、营养缺乏症、姓名、性别、年龄等信息,为下一次运行做好准备。

例如清除症状数据库为:

clear_facts :- retract(xpositive(_,_)), fail.

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

人工智能及其应用 26

智能诊断系统的使用

第一步:清空事实数据库 ;

第二步:输入症状 ;

第三步:执行诊断 ;

第四步:显示最后诊断结果。

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

人工智能及其应用 27

7.4 智能规划系统

规划问题 系统结构与设计 智能规划系统的使用

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

人工智能及其应用 28

规划问题 智能系统在 AI应用系统中的级别:

过程式系统诊断系统

规划系统决策系统

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

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

人工智能及其应用 29

规划问题房间内家具安置的正向推理路径:

房间尺寸安置书桌

椅子尺寸

书柜尺寸

写字椅尺寸

书桌尺寸

安置书柜

安置写字椅

安置椅子

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

人工智能及其应用 30

系统结构与设计 系统分层设计:

数据库初始化。 输入原始数据。 扫描条件子句,寻找成功的匹配。

扫描动作子句。 程序不断地进行扫

描。

规划系统

安置结果输出家具安置规划

扫描对应的目标并产生安置动作

扫描匹配的条件组

输入各种原始数据

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

人工智能及其应用 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 */

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

人工智能及其应用 32

智能规划系统的使用 (1)initialize :将相关的房间初始信息送入事实数据库;

(2)input_data :通过与用户会话获得各个欲安置家具的名称、尺寸,房间内门窗的方位及尺寸信息,以及电源插座的位置信息。

(3)scan_conditions :寻求匹配的可安置条件,并寻找对应的 try_action动作子句,尝试完成各项家具的安置规划。

(4)print_summary :系统输出已安置的规划结果及未安置的家具,并根据现有房间条件和安置结果输出建议用户购买的物品清单。

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

人工智能及其应用 33

7.5 基于框架表示的智能系统

基于框架的智能系统设计 框架系统的使用

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

人工智能及其应用 34

基于框架的智能系统设计

天气预报系统分层设计结构

天气知识框架槽

会话框架

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

人工智能及其应用 35

基于框架的智能系统设计

天气预报系统的分层设计:

天气预报系统

与用户对话并接收测量数据

查找匹配的天气预报结果值

输出

预报

结果

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

人工智能及其应用 36

基于框架的智能系统设计

气压表压力 (高,低,正常,等等 )

气压表压力变化 (稳定,缓慢下降 )

风向 (东,东南,… )

季节 (春,夏,秋,东 )

天气结果 (晴,多云,雨,…)

框架中包含了现行的天气条件组。

所有的槽 (除最后一个 )均可以通过与用户对话得到填充。

最后一个槽要通过其它槽计算或演绎得到。

天气框架槽

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

人工智能及其应用 37

基于框架的智能系统设计

建立框架目的: 用于存放会话的问题。

框架的 Prolog表示: query(Slotname,Question).

会话框架: 槽 名

问 题

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

人工智能及其应用 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”).

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

人工智能及其应用 39

框架系统的使用 天气预报框架系统运行时,会依次询问并要求用户输入其观测值:

气压值:非常低、低、正常、高、非常高;相应输入选项分别是

数字 1-5 。 气压变化情况:剧烈下降、缓慢下降、急剧上升和缓慢上升;相

应输入选项分别是数字 1-4 。 风向:北、东北、东、东南、南、西南、西、西北;相应输入选项分别是数字 1-8 。

季节:春、夏、秋、冬;相应输入选项分别是数字 1-4 。

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

人工智能及其应用 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……

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

人工智能及其应用 41

7.6 神经网络的应用

BP神经网络的应用 用 Hopfield网络求解 TSP问题

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

人工智能及其应用 42

BP 神经网络的应用 “熟人”的学习问题:

下页图所示网络的目标:确定输入的两个人是否相识,其任务为学习图中上半部分一组 3人中的任何一人是下半部分一组 3人中任何一人的熟人,用节点 A 代表。

如果网络的输出大于 0.9,那么就判定这两个人“相识”;如果输出小于 0.1,就判定为“不相识”;其它 结果被认为是模糊不定的。

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

人工智能及其应用 43

BP 神经网络的应用 假设输入仅为二值,即 0

或 1, H1和 H2为隐节点,具有“与门”的作用。

在该问题中假设 Robert 、Raquel 和 Romeo 是同胞,而 Joan 、 James 和 Juliet

也是同胞,因此不能把他们相互视为熟人。

Robert

Raquel

Romeo

Joan

James

Juliet

A

H1

H2

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

人工智能及其应用 44

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

Robert Raquel Romeo Joan James Juliet 熟人 同胞

1 1 0 0 0 0 0 1

1 0 1 0 0 0 0 1

0 1 1 0 0 1 0 1

1 0 0 1 0 0 1 0

1 0 0 0 1 0 1 0

1 0 0 0 0 1 1 0

0 1 0 1 0 0 1 0

0 1 0 0 1 0 1 0

0 1 0 0 0 1 1 0

0 0 1 1 0 0 1 0

0 0 1 0 1 0 1 0

0 0 1 0 0 1 1 0

0 0 0 1 1 0 0 1

0 0 0 1 0 1 0 1

0 0 0 0 1 1 0 1

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

人工智能及其应用 45

BP 神经网络的应用“熟人”问题的学习结果:

0

0. 1

0. 2

0. 3

0. 4

0. 5

100 200 300 400 500权值变化周期

均方误差

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

人工智能及其应用 46

BP 神经网络的应用学习行为与比率参数的关系:

0

0. 1

0. 2

0. 3

0. 4

0. 5

0. 6

0. 7

100 200 300 400 500 600 700 800 900权值变化周期

均方误差

8. 04. 00. 250. 51. 02. 0

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

人工智能及其应用 47

用 Hopfield 网络求解 TSP 问题 适用于: 模糊推理模型、非线性辨识和自适应控制模型中的问题学习求解。

旅行商最优路径问题 (TSP) : 设有 n个城市,两两城市间均有直线路径 ,

要求寻找一条闭合的路径,该路径必须历经每个城市,且仅经过一次,当返回起始城市时总的路径长度最短。

ijd

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

人工智能及其应用 48

用 Hopfield 网络求解 TSP 问题

为建立表述 TSP问题状态与结果的人工神经网络模型,以 n=5为例设置如下表所示的置换矩阵。

城市名称路径访问顺序

1 2 3 4 5

A 0 1 0 0 0

B 0 0 0 1 0

C 1 0 0 0 0

D 0 0 0 0 1

E 0 0 1 0 0

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

人工智能及其应用 49

用 Hopfield 网络求解 TSP 问题

置换矩阵中的每列最多有一个“ 1”,表示每次仅经过一个城市;每行最多有一个“” 1,表示每个城市仅被经历过一次;置换矩阵中“ 1”的个数为(城市个数)。

能量函数的构造: 各城市间的距离用 表示,作为约束信息以确定各神经元间的联接强度;神经元输出电压表示为 ,其中 x 表示城市名, i 表示该城市在路径中的顺序, 表示城市 x 在路径中被访问的次序为 i 。

yxd ,

ixV ,

1, ixV

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

人工智能及其应用 50

用 Hopfield 网络求解 TSP 问题(1) 置换矩阵:

上式满足最小时对应如下情况: 第一项对应置换矩阵中每一行最多一个“ 1”; 第二项对应置换矩阵中每一列最多一个“ 1”; 第三项对应置换矩阵中只有个“ 1”。

此外,因为路径是循环的,所以 ,满足取模“ n”的规律。

2

,,,,, 222

nVC

VVB

VVA

x iix

i x xyiyix

x i ijjxix

jyjny VV ,,

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

人工智能及其应用 51

用 Hopfield 网络求解 TSP 问题(2) 路径最短:

上式表示若路径中包括距离 ,则城市 x 的访问次序为 i 时,城市 y 的访问次序应为 i-1 或 i+1 。

能量函数描述为:

)(2 1,,,,

iyyxx xy i

ixyx VVVdD

yxd ,

x xy iiyiyixyx

x iix

i x xyiyix

x i ijjxix

VVVdD

nVC

VVB

VVA

E

)(2

222

1,1,,,

2

,,,,,

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

人工智能及其应用 52

用 Hopfield 网络求解 TSP 问题

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

A

H

G

F

E

D

C

B

1 8765432

(a) (b) (c)

A

H

G

F

ED

C

B

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

人工智能及其应用 53

7.7 遗传算法的应用

遗传算法优化神经网络 基于遗传算法的混合 Flow-shop调度方法

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

人工智能及其应用 54

遗传算法优化神经网络 用遗传算法实现网络优化的步骤: (1) 初始化过程:确定 BP网络结构、遗传算法进化参

数。 (2) 根据网络结构产生网络权值,作为遗传算法中个

体的表现型;排列网络权值,组成个体基因型;按照群体规模生成初始群体。

(3) 由神经网络的误差函数确定个体的适应度函数。 (4) 根据适应度函数计算群体中个体的适应度值。

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

人工智能及其应用 55

遗传算法优化神经网络

(5) 判断是否满足进化结束条件。若满足则结束进化过程,输出最优解对应的个体表现型,即优化的网络权值;否则,执行 (6),继续进化过程。

(6) 对当前群体进行选择、交叉、变异等遗传操作,产生下一代群体,转 (4)。

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

人工智能及其应用 56

遗传算法优化神经网络 算法的实现:

(1) 编码

(2) 群体设定

(3) 适应度函数的确定

(4) 遗传操作

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

人工智能及其应用 57

混合 Flow-shop 调度方法 混合 Flow-shop调度问题( Hybrid Flow-shop

Scheduling Problem , HFSP)是一般 FSP 问题的推广,与 FSP 不同之处在于某些工序上存在并行工作的机器,被称为柔性流水线。

HFSP 问题可描述为:需要加工多个工件,所有工件的加工路线相同,都需要依次通过各道工序,在所有工序中至少有一个工序存在着多台机器并行。需要解决的问题是确定并行机器的分配以及同一台机器上工件的加工次序,目标是使最大加工时间最小化。

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

人工智能及其应用 58

混合 Flow-shop 调度方法 HFSP 问题遗传算法求解的编码方法: 假设要加工 N个工件,每个工件都要依次经过 S

个加工工序,每个工序的并行机器为 , 所有工序中至少有一个工序存在并行机器,即至少存在一个 大于 1的情况。构造如下 的维 HFSP编码矩阵:

Si ,,2,1 iM

iM NS

SNSS

N

N

aaa

aaa

aaa

A

21

22221

11211

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

人工智能及其应用 59

混合 Flow-shop 调度方法 根据上述编码矩阵可确定染色体。染色体由 S

个小段组成,每个小段包括 N 个基因。染色体可表示为:

例:对于 3 个工件、 3道工序,各工序的并行机器数分别为 3 、 2 、 2 的混合 Flow-shop调度问题,各机器编号如下图所示。

],,,,0,,0,,,,,0,,,,[ 212222111211 SNSSNNk aaaaaaaaaInd

机器1

机器2

机器3

机器4

机器5

机器6

机器7

工序1 工序2 工序3

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

人工智能及其应用 60

混合 Flow-shop 调度方法 假设产生编码矩阵:

对矩阵的各元素分别取整,并根据各工序上的并行机器编号原则,可得到各工件与机器的对应关系:

根据编码矩阵可得染色体如下:

2.14.21.1

3.21.26.1

9.14.21.2

A

121

221

122

)(' AIntA

]2.1,4.2,1.1,0,3.2,1.2,6.1,0,9.1,4.2 ,1.2[Ind

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

人工智能及其应用 61

混合 Flow-shop 调度方法 基于遗传算法的 HFSP问题求解:

产生初始群体 选择适应度函数 选择算子 交叉算子 变异操作

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

人工智能及其应用 62

混合 Flow-shop 调度方法 HFSP 实例:

某汽车发动机厂金加工车间要加工 12个工件,每个工件需经过车、刨、磨 3个工序,现有 3台车床,2台刨床, 4台磨床,每台机床的加工能力不同(加工时间不同),具体加工时间如下页表所示:

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

人工智能及其应用 63

工件工序 1 工序 2 工序 3

机器 1 机器 2 机器 3 机器 4 机器 5 机器 6 机器 7 机器 8 机器 9

1 2 2 3 4 5 2 3 2 3

2 4 5 4 3 4 3 4 5 4

3 6 5 4 4 2 3 4 2 5

4 4 3 4 6 5 3 6 5 8

5 4 5 3 3 1 3 4 6 5

6 6 5 4 2 3 4 3 9 5

7 5 2 4 4 6 3 4 3 5

8 3 5 4 7 5 3 3 6 4

9 2 5 4 1 2 7 8 6 5

10 3 6 4 3 4 4 8 6 7

11 5 2 4 3 5 6 7 6 5

12 6 5 4 5 4 3 4 7 5

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

人工智能及其应用 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 ]