状态空间法教案
第一章 状态空间法..
第一章 状态空间法
控制系统的状态空间描述
一.问题的引出 1 --古典控制理论的局限性
1、仅适用于SISO的线性定常系统(外部描述
,时不变系统) 2、古典控制理论本质上是复频域的方法.(理 论) 3、设计是建立在试探的基础上的.(应用) 4、系统在初始条件为零,或初始松驰条件下, 才能采用传递函数.
此例中 D=0, y x2
即
x1 y 0 1 x2
• 由此,我们可以得出,现代控制理论或状态空 间分析方法是建立在系统采用有限个一阶微分 方程描述的基础上,而有限个一阶微分方程组 成了向量—矩阵方程,因而从本质上来说,现 代控制理论的分析方法是时域分析方法.
控制系统的状态空间描述---线性系统的状态空间表达 式 • 状态空间表达式是描述系统行为的数学模型 ,它包括 状态方程和输出方程,状态方程由有限个一阶微分方 程组成,而输出方程则是状态向量和输入的函数.
3.状态空间表达式
1)线性时变系统: x ( t ) A ( t ) x ( t ) B ( t ) u ( t )
y (t ) C (t ) x (t ) D (t )u (t )
2)线性时不变系统: x Ax Bu
y Cx Du
在通常情况下,大多数还是研究线性时不变 系统,即线性定常系统,因此本课程的主要研究 对象是线性定常系统。
定义4.状态空间
若状态向量x(t),可唯一地由 R n 空间中一组规范 正交基底(单位坐标向量)线性组合表示,则状态向 量x(t)是n维状态空间( R n ,n)中的一个向量,所有 状态向量x(t)集合组成n维的状态空间( R n ,n) 或定义为: 通常状态变量均为有实际意义的实 数值,因此状态向量的取值空间是有限维实向量空 间,称为状态空间。
《人工智能》教案 第3课 状态空间表示法与产生式表示法
课题状态空间表示法与产生式表示法课时2课时(90 min)教学目标知识技能目标:(1)了解知识表示的状态空间表示法(2)了解知识表示的产生式表示法(3)熟悉必胜策略和字符转换的规则思政育人目标:(1)关注知识表示的最新方法,增强探究意识(2)关心国家大事,抓住机遇,展现新作为,增强爱党、爱国情感(3)弘扬精益求精、科学严谨、追求卓越的工匠精神教学重难点教学重点:状态空间表示法的运用教学难点:产生式表示法的运用教学方法讲授法、讨论法、问答法教学用具计算机、投影仪、多媒体课件、教材教学设计课前任务→考勤(2 min)→问题导入(3 min)→传授新知(20 min)→新知导入(3 min)→传授新知(45 min)→课堂练习(12 min)→课堂小结(3 min)→作业布置(2 min)教学过程主要教学内容及步骤设计意图课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务请大家再次回顾一下知识表示法的相关知识,查找资料,搜集一下还有哪些知识的表示方法。
【学生】完成课前任务通过课前任务,使学生了解所学课程的重要性,增加学生的学习兴趣考勤(2 min)【教师】通过APP让学生签到【学生】签到,班干部交假条培养学生的组织纪律性,掌握学生的出勤情况问题导入(3 min)【教师】提出以下问题,并邀请学生回答假设有7个钱币,任一选手只能将已分好的一堆钱币分成两堆个数不等的钱币,两位选手轮流进行,直到每一堆都只有一个或两个钱币为止。
哪个选手遇到不能分的情况就为输。
假设对方先走,请找出我方必胜的策略并将这种策略描述出来。
【学生】思考,讨论【教师】通过学生的回答引入要讲的知识,并板书:状态空间表示法综合大家的讨论,咱们来看一下这种策略应该怎么表示。
本节课主要介绍知识表示法中状态空间表示法的相关知识。
通过问题导入的方法,引导学生主动思考,激发学生的学习兴趣2【学生】聆听传授新知(20 min)【教师】提问:什么是状态空间表示法?【学生】讨论、举手回答【教师】总结人工智能研究中运用的问题求解方法多数是采用试探搜索方法。
《状态空间描述法》课件
案例二:飞行器姿态控制系统设计
总结词
飞行器的姿态控制是保证飞行安全的关键环 节。通过状态空间描述法,可以建立飞行器 姿态控制系统的数学模型,为控制系统设计 提供依据。
详细描述
飞行器的姿态控制涉及多个动态变量,如角 速度、角位移、俯仰角、偏航角等。状态空 间描述法能够全面地描述这些变量之间的关 系,建立起飞行器姿态控制的数学模型。基 于这个模型,可以设计各种控制器,如PID 控制器、模糊控制器等,以实现对飞行器姿 态的精确控制。
PART 05
状态空间描述法的应用实 例
REPORTING
案例一:倒立摆控制系统设计
要点一
总结词
要点二
详细描述
倒立摆是一个不稳定的系统,其控制目标是使摆杆保持稳 定,避免倒塌。状态空间描述法在倒立摆控制系统中被广 泛应用,通过建立状态方程和输出方程,对系统进行精确 的数学描述,为控制系统设计提供基础。
状态空间图
• 状态空间图:以图形方式表示系统状态变量、输 入和输出的关系,有助于直观理解系统的动态行 为。
PART 03
状态空间描述法的实现
REPORTING
建立状态方程和输出方程
状态方程
描述系统内部状态变量的动态关系,通 常表示为x(t+1)=Ax(t)+Bu(t)。
VS
输出方程
描述系统输出与状态变量和输入的关系, 通常表示为y(t)=Cx(t)+Du(t)。
如何克服局限性
降维处理
并行计算和分布式计算
对于高维系统,可以通过降维处理来 降低系统的维度,从而简化状态空间 描述法的计算。
采用并行计算和分布式计算技术可以 降低大规模系统的计算复杂性,提高 计算效率。
线性系统的状态空间分析法
第九章线性系统的状态空间分析法一、教学目的和要求通过学习,了解系统状态空间描述常用的基本概念,掌握线性定常系统状态空间表达式的建立方法。
二、重点状态空间分析的常用概念,根据系统机理建立状态空间表达式方法。
三、教学内容:以“经典控制的不足”为切入点引进线性系统的状态空间分析与综合。
1、系统数学描述的两种基本方法一种是外部描述。
一种是内部描述。
对比举例2、系统描述中常用的基本概念输入和输出、松弛性、因果性、线性、时不变形3、系统状态空间描述常用的基本概念状态和状态变量、状态向量、状态空间、状态轨迹、状态方程、输出方程、状态空间表达式、自制系统、线性系统、线性系统的状态空间表达式、线性定常系统、线性系统的结构图、状态空间分析法。
将概念讲解、举例、对比来加深理解。
4、举例熟悉对概念理解5、根据系统机理建立状态空间表达式方法步骤:①确定输入输出向量;②根据系统机理(电学、力学等)建立系统方程;③选择状态变量,根据方程建立状态方程;④列写输出方程;⑤将状态方程、输出方程变换为向量—矩阵形式。
举例:RLC网络(单输入-单输出);机械位移系统(双输入-三输出)第一节 线性系统的状态空间描述一、教学目的和要求掌握线性定常系统状态空间表达式的建立方法。
二、重点由传递函数建立状态空间表达式 三、教学内容:1、由系统微分方程建立状态空间表达式方法(单输入-单输出) (1)系统输入量中不含倒数项。
()(1)(2)12100...n n n n n y a y a y a y a y uβ∙----+++++=式中y ,u 分别为系统的输出、输入量;0110,,...,,n a a a β-是由系统特性确定的常数。
由于给定n 个初值1(0),(0),...(0)yn y y - 及t ≧0的u (t )时,可唯一确定t>0时系统得的行为,可选取n 个状态变量为(1),,...,12n x y x y x y n -===,故上式可化为12231 (011210)x xx xxx nn x a x a x a x un n n y xβ∙∙∙∙∙∙∙===-=----+-=再将上式写成向量-矩阵形式,并画出状态变量图。
第九讲_状态空间方法
状态空间方法基础
9.1 基本要求 1. 掌握由系统输入—输出的微分方程式、系统动态结构图、及简单物理模型图建立系统状 态空间模型(A,b,c,d) 的方法。 2. 熟练掌握矩阵指数 e 的计算方法,熟练掌握由时域和复数域求解状态方程的方法。熟 练掌握由动态方程计算传递函数的公式。 3. 正确理解可逆线性变换, 熟练掌握可逆线性变换前、后动态方程各矩阵的关系。 4. 正确理解可控性和可观测性的概念,熟练掌握和运用可控性判据和可观性判据。 5. 熟练掌握可逆线性变换矩阵的构成方法, 能将可控系统 (或是可观系统) 通过可逆线性 变换化为可控标准形(或是可观标准形)。 能将不可控系统(或是不可观系统)通过可逆线性变 换进行可控性分解(或是可观性分解) 。 6. 正确理解对偶原理, 会将原系统的有关可观测性的问题转化为对偶系统的可控性问题来 研究。或者将原系统的有关可控性的问题转化为对偶系统的可观测性问题来研究。 7. 正确理解单变量系统零、极点对消与动态方程可控、可观测的关系。熟练掌握传递函数 的可控性标准形实现、可观性标准形实现、对角形实现的构成方法。 8. 正确理解状态反馈对可控性,可观性的影响, 正确理解状态反馈可任意配置闭环极点的 充要条件, 能熟练地根据给定的期望闭环极点计算反馈增益阵。 9. 熟练掌握全维状态观测器的公式和设计方法, 熟练掌握由观测器得到的状态估计值代替 状态值构成的状态反馈系统, 由于分离特性, 可分别进行闭环极点配置和观测器极点配置。 10. 正确理解系统齐次方程渐近稳定和系统 BIBO 稳定的概念, 熟练掌握判别渐近稳定的方 法和判别系统 BIBO 稳定的方法。当给定动态方程时,会进行稳定性分析,当动态方程中有 未定参数时,会根据稳定要求确定参数范围。 11. 正确理解李雅普诺夫方程正定对称解存在的条件和解法, 能通过解李雅普诺夫方程进 行稳定性分析。
状态空间设计法
BK X(k) X(k 1) A BK ~ ~ X(k 1) 0 X(k) A LC
BK A BK de tz I 0 A LC 0
de t(z I A BK)(z I A LC) A LC 0
若期望的极点为βi (i 1,2,, n),期望观测器特征多项式:
η(z ) (z β i ) z I A LC 0
i 1
n
对于高阶系统,也有Ackerman公式:
K η(A)Q e
1 T n o
n n 1 en 0 0 1 η(z) z α1z αn
闭环特征方程
zI A BK 0
设计反馈控制规律L,使得闭环系统具有所需要的极点配置。
闭环控制极点:
βi (i 0,1,2, , n)
求得闭环特征方程为:
βc (z) (z β1 )(z β2 )(z βn ) zn α1zn1 αn 0
反馈控制矩阵K应满足方程:
2
0.24 1 λ(A) A A 0.24I 0 0.24
2
1 1 0.24 1 K enQ λ(A) 0 1 0 0.24 1 0.24 1 0
1 c
第二节
状态观测器设计法
观测器的设计思想:根据能够测量的系统输出量和输入量,重 构出全部状态。
相应的离散状态方程
x(k 1) Ax(k) Bu(k) y(k) Cx(k)
A e A 1T T A1 τ B e dτ 0
假设控制规律是线性状态反馈
u(k) kX(k)
自动控制原理课件8状态空间分析法
状态方程描述了自动控制系统中各个元件之间的动态关系。
系统转换
通过将系统转换成状态空间形式,我们可以更好地描述和理解系统的行为。
状态矩阵与控制矩阵
状态矩阵和控制矩阵是描述系统状态和输入的重要工具。
系统传递函数
1 概念
传递函数表示系统的输入 和输出之间的关系。
2 输入输出方程
通过传递函数,我们可以 分析系统的稳定性和响应 特性。
自动控制原理课件8状态 空间分析法
在本课件中,我们将学习状态空间分析法在自动控制中的应用。通过简洁而 生动的文本和精美的图片,我们将探索这一方法的定义、优势以及设计过程。
引言
状态空间分析法是一种用于自动控制系统设计和分析的方法。它与传统的频 域和时域分析方法相比,具有更直观和全面的特点。
系统状态方程
总结与展望
1 优缺点
我们将总结状态空间分析法的优点和不足之 处。
2 未来发展方向
我们将探讨状态空间分析法未来的发展方向 和应用领域。
参考文献
在本课件中,我们引用了一些重要的参考文基于极点配置的控制器设计方法 可帮助我们实现期望的系统响应。
使用最优控制方法设计控制器可 以提高系统的性能。
实例分析
线性系统表示
我们将以一个实际的线性系统为例,展示如何进行状态空间分析。
控制器设计算法
我们将运用控制器设计算法,设计出最佳的控制器。
仿真实验结果展示
通过仿真实验,我们将验证设计的控制器的性能和稳定性。
3 稳定性分析
稳定性分析方法帮助我们 确定系统的稳定性。
状态转移矩阵
1
线性时不变系统
状态转移矩阵可以用于描述线性时不变
性质
2
系统的状态演变。
线性状态空间法
•
x2=y(1)
X n 1 X n
•
·········
X n Y (n)
xn=y(n-1)
6
其状态空间体现式为
X AX BU
Y CX
X1 X2 X= …… Xn-1 Xn
0 0 B= … 0 β0
0 1 0 ··· 0
0 0 1 ··· 0
A=
…………
0 0 0 ··· 1
-an -an-1 -an-2 ··· -a1
I )]}
S
2.Sylve假seteA如tr重P(根A)d定是d理方[e:阵stA旳Ad任j(意A多 项s式I )],且方s 阵A
具有s个相同特征值,则有:
14
求下列矩阵旳矩阵指数。
61 A=
-4 2
-3 2 A=
1 -2
01 A=
-2 -3
11 A=
-4 5
15
eAt旳某些性质
(1). d dt
17
1.无输入的情况(即U(t)=0)
X AX
1. ①只有一种状态变量A→a,且有X(0)=X0
2.
X(t)= eat ·X0
3. ②推广到多种变量,n个
4.
X(t)= eAt ·X0
5.
18
2.有输入的情况
X AX BU
(1). X aX bU
X (t) ea(tt0 ) X (t0 )
x1,x2,…,xn做轴构成旳n维空间称。 4 状态方程:状态变量旳一阶导数与状态变量、
输入量旳关系。
2
2 线性定常系统旳状态空间描述
一状态变量选用
u1
x1
输入 被控过程 状态变量 输出装置
状态空间法教案
一、问题引入结合一些典型问题(分油问题)提出问题:我们是怎样解决这些问题的?在人工智能领域又可以通过怎样的方法去解决呢?(状态空间法)2、引导学生思考问题,并得出结论。
二、讲授新课(一)基础知识部分1、什么是状态空间法?许多问题求解方法是采用试探搜索方法的。
也就是说,这些方法是通过在某个可能的解空间内寻找一个解来求解问题的。
这种基于解答空间的问题表示和求解方法就是状态空间法,它是以状态和算符(operator)为基础来表示和求解问题的。
2、状态空间法三要点1) 状态(state):表示问题解法中每一步问题状况的数据结构;2) 算符(operator):把问题从一种状态变换为另一种状态的手段;3) 状态空间方法:基于解答空间的问题表示和求解方法,它是以状态和算符为基础来表示和求解问题的。
由上可知,对一个问题的状态描述,必须确定3件事:1) 该状态描述方式,特别是初始状态描述;2) 操作符集合及其对状态描述的作用;3) 目标状态描述的特性。
问题的状态空间可用一个三元序组来表示:S:问题的全部初始状态的集合F:操作的集合G:目标状态的集合4、用状态空间表示问题的步骤:1)定义状态的描述形式2)用所定义的状态描述形式把问题所有可能的状态都表示出来,并确定初始状态和目标状态的集合描述3)定义一组算符,使得利用这些算符可以把问题由一个状态转为另一个状态。
4)利用状态空间图表示求解过程。
(二)实践应用部分【分油问题】有A、B、C三个不带刻度的瓶子,分别能装8kg, 5kg和3kg油。
如果A瓶装满油,B和C是空瓶,怎样操作三个瓶,使A中的油平分两份?(假设分油过程中不耗油)解:第一步:定义问题状态的描述形式:设Sk=(b,c)表示B瓶和C瓶中的油量的状态。
其中:b表示B瓶中的油量。
c表示C瓶中的油量。
初始状态集:S={(0,0)}目标状态集:G={(4,0)}第二步:定义操作符:操作:把瓶子倒满油,或把瓶子的油倒空。
《状态空间表示法教学案例》
状态空间表示法教学案例
一、教材分析:
状态空间表示法是《人工智能》中知识表示的一种方法,知识的表示法有很多,相对于框架表示法、“与/或”图表示法、产生式规则表示法,我觉得状态空间表示法更能直观地表现出计算机搜索过程中的各种状态。
二、学情分析:
对于状态空间表示法,其实学生并不是很陌生,现在很多小游戏里已经涉及到了各种状态空间,只是学生没能意识并上升到“状态空间”的概念。
比方说八数码、推箱子子等等,都是从初始状态达到目标状态的典型案例。
本课开始前就可以采用这些小游戏来引入,让学生对教学内容由陌生变熟悉。
三、教学目标:
1、知识与技能
(1)了解状态空间表示知识的一般步骤
(2)学会用状态空间图来表示具体问题
(3)学会画状态空间图
2、过程与方法
(1)用小游戏引入状态空间,让学生了解初始状态和目标状态的确定(2)与数学知识相整合,采用小组合作和任何驱动的教学方法让学生学会用状态图表示具体问题
(3)通过拓展任务,进一步提高分析问题和用状态空间表示的能力水平。
3、情感态度与价值观
(1)培养学生多维判断问题分析问题意识。
(2)培养学生从注重观察、思考问题的习惯。
四:教学重点与难点:
重点:用状态空间表示法的术语描述八数码、水壶装水的过程
难点:找到所有的可能,并准确地用状态空间图描述出来,画出状态空间图。
五、教学策略
从学生的兴趣出发,用小游戏激发学生分析问题和描述状态空间的兴趣,进而进一步地开展状态空间表示法的教学。
六、教学过程。
第7章状态空间法
7.1.2
状态空间法的建立
1. 状态变量的选取是非唯一的。 2. 选取方法 (1)可选取初始条件对应的变量或与其相关的变量作 为系统的状态变量。 (2)可选取独立储能(或储信息)元件的特征变量或 与其相关的变量作为控制系统的状态变量。(如电感电 流i、电容电压uc 、质量m 、速度v 等。
例7.2 图示弹簧——质量——阻尼器系统,外作用力
u r R 1 i1
1 c1
1 c1
(i
1
i 2 ) dt
1 c2
(i
1
i 2 ) dt R 2 i 2
i
2
dt
uc
1 c2
i
2
dt u r
其中,ur 为输入,uc 为输出,R1、C1、 R2、C2为常数。试
列写系统状态方程和输出方程。
选 解:
u r R 1 i1
在已知ur(t)的情况下,只要知道 uc(t)和i(t)的变化特性,则 其他变量的变化均可知道。故uc(t)和i(t)称为“状态变量”。记
x 1 ( t ) u c ( t ), x 2 ( t ) i ( t ) 及 dx i ( t ) dt x i i , )
u(t)为该系统的输入量,质量的位移y(t)为输出量,试列写该
系统的状态方程和输出方程。
m d
2
y t
f
dy t dt
dt
Ky t u t
x 1 t y t 、 x 2 t y t
x 1 x 2 t
可求出系统的微分方程
y 3 2 y y r y
( n 1 )
6.状态空间设计法
控制器的状态空间设计法在这个部分,我们将展示如何用状态空间(时域)的方法设计控制器并观察。
本教程中用到的MTALAB关键命令有:eig,ss,lsim,place,acker目录•建模•稳定性•可控性和可观性•用极点配置控制•引入参考输入•观测器的设计建模Introduction: System Modeling系统建模部分。
对于单输入单输出系统,这状态空表示如下:这球的垂直位置是h,i是通过电磁铁的电流,V是电压,M是球的质量,g是重力加稳定性其我们想要做的第一件事情就是分析开环系统(不带任何控制)是否稳定。
正如所讨论的介绍:系统分析部分,系统矩阵的特征值,A(相当于传递函数的极点)确定的稳定性。
A矩阵的特征值是det(sI—A)=0的s的值。
poles =31.3050-31.3050-100.0000其中一个极点在又半平面,换言之,有正实数部分说明系统开环不稳定。
检查一下这个不稳定的系统,当有一个非零初始条件下,添加以下代码到您的m文件可控性和可观性如果存在一个控制输入u(t)那么一个系统是可控的,在有限的时间内系统的任何状态转移到零。
它可以表明,当且仅当其可控性矩阵,CO,具有满秩(即,如果CO的秩等于 n,其中n是状态的数量)。
LTI模型的可控性矩阵的秩可以用MATLAB命令rank (ctrb(A,B))或者rank(ctrb(sys))确定。
可控性和可观测性的双重概念。
一个系统(A,B)是可控的当且仅当一个系统(A’,C,B’,D)的观察。
当我们设计一个观察的这事有用的,正如我们下面将看到。
用极点配置控制让我们采用极点配置为系统建立一个控制器。
一个完整的状态反馈系统的原理图如下所示。
采用全状态,我们的意思是说,对于控制器任何时间所有的状态变量是已知的。
例如,在这个系统中,我们需要一个传感器测量球的位置,一个测量速度,和电磁铁的电流测量。
为简单起见,我们假设R = 0。
输入是超调量太大(传递函数中德零点可以增加超调量,在状态空间形式下你看不到零点)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、问题引入
结合一些典型问题(分油问题)提出问题:
我们是怎样解决这些问题的?在人工智能领域又可以通过怎样的方法去解决呢?(状态空间法)
2、引导学生思考问题,并得出结论。
二、讲授新课
(一)基础知识部分
1、什么是状态空间法?
许多问题求解方法是采用试探搜索方法的。
也就是说,这些方法是通过在某个可能的解空间内寻找一个解来求解问题的。
这种基于解答空间的问题表示和求解方法就是状态空间法,它是以状态和算符(operator)为基础来表示和求解问题的。
2、状态空间法三要点
1) 状态(state):表示问题解法中每一步问题状况的数据结构;
2) 算符(operator):把问题从一种状态变换为另一种状态的手段;
3) 状态空间方法:基于解答空间的问题表示和求解方法,它是以状态和算符为基础来表示和求解问题的。
由上可知,对一个问题的状态描述,必须确定3件事:
1) 该状态描述方式,特别是初始状态描述;
2) 操作符集合及其对状态描述的作用;
3) 目标状态描述的特性。
问题的状态空间可用一个三元序组来表示:
S:问题的全部初始状态的集合
F:操作的集合
G:目标状态的集合
4、用状态空间表示问题的步骤:
1)定义状态的描述形式
2)用所定义的状态描述形式把问题所有可能的状态都表示出来,并确定初始状态和目标状态的集合描述
3)定义一组算符,使得利用这些算符可以把问题由一个状态转为另一个状态。
4)利用状态空间图表示求解过程。
(二)实践应用部分
【分油问题】有A、B、C三个不带刻度的瓶子,分别能装8kg, 5kg和3kg油。
如果A瓶装满油,B和C是空瓶,怎样操作三个瓶,使A中的油平分两份?(假设分油过程中不耗油)
解:第一步:定义问题状态的描述形式:
设Sk=(b,c)表示B瓶和C瓶中的油量的状态。
其中:
b表示B瓶中的油量。
c表示C瓶中的油量。
初始状态集:S={(0,0)}
目标状态集:G={(4,0)}
第二步:定义操作符:
操作:把瓶子倒满油,或把瓶子的油倒空。
f1:从A瓶往B瓶倒油,把B瓶倒满。
f2:从C瓶往B瓶倒油,把B瓶倒满。
f3:从A瓶往C瓶倒油,把C瓶倒满。
f4:从B瓶往C瓶倒油,把C瓶倒满。
f5:从B瓶往A瓶倒油,把B瓶倒空。
f6:从B瓶往C瓶倒油,把B瓶倒空。
f7:从C瓶往A瓶倒油,把C瓶倒空。
f8:从C瓶往B瓶倒油,把C瓶倒空。
第三步:求解过程:
由上述状态空间图,可见从初始状态(0,1)到目标状态(4,0)的任何一条通路都是问题的一个解。
其中:{f1, f4, f7, f6, f1, f4, f7}是算符最少的解之一。
【传教士问题】设有3个传教士和3个野人来到河边,打算乘一只船从右岸渡到左岸去。
该船的负载能力为两人。
在任何时候,如果野人人数超过传教士人数,那么野人就会把传教士吃掉。
他们怎样才能用这条船安全地把所有人都渡过河去?
解:第一步:定义问题状态的描述形式:
设Sk=(M,C,B)表示传教士和野人在河右岸的状态。
其中:
M表示传教士在右岸的人数。
C表示野人在右岸的人数。
B用来表示船是不是在右岸。
(B=1表示在右岸,B=0表示在左岸)。
初始状态集:S={(3,3,1)}
目标状态集:G={(0,0,0)}
第二步:定义算符:
算符R(i, j)表示划船将i个传教士和j个野人送到左岸的操作。
算符L(i, j)表示划船从左岸将i个传教士和j个野人带回右岸的操作。
由于过河的船每次最多载两个人,所以i+j≤2。
这样定义的算符集F中只可能有如下10个算符。
F:R(1,0), R(2,0), R(1,1), R(0,1), R(0,2)
L(1,0), L(2,0), L(1,1), L(0,1), L(0,2)
第三步:求解过程:
由上述状态空间图,可见从初始状态(3,3,1)到目标状态(0,0,0)的任何一条通路都是问题的一个解。
其中:{R(1,1), L(1,0), R(0,2), L(0,1), R(2,0), L(1,1), R(2,0), L(0,1), R(0,2), L(1,0), R(1,1)}是算符最少的解之一。
三、巩固练习
1、八数码问题(即九宫问题)
在一个3×3的九宫中有1-8这8个数及一个空格随机的摆放在其中的格子里,如左图所示。
现在要求实现这个问题:将该九宫格调整为如中(或右)图所示的形式。
调整的规则是:每次只能将与空格(上、下、或左、右)相邻的一个数字平移到空格中。
2、汉诺塔问题
古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上。
有一个和尚想把这64个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。
在移动过程中可以利用B座,要求写出移动的步骤。
四、总结
本节课旨在帮助学生学习知识表示的方法——状态空间法,并通过两个具体案例,帮助学生将所学的内容应用于实践,最后通过两个小练习帮助学生巩固练习。