第三章 不确定和非单调推理方法

  3.4.4 定性模拟法
  1. 结构描述和行为描述
  定性模拟是从结构的定性描述出发,来导出行为描述的。结构的定性描述由系统的状态参量和约束关系组成。认为参量是时间的光滑函数,约束是参量间的二元或多元关系。如速度的导数是加速度表为DERIV(Vel,acc),f=ma 表为MULT(maf),f随g单调增加表为M+(f,g),单调减表为M(f,g)。
  行为描述关心参量的变化。假设参量f(t)是[a,b]到[-∞,∞]的光滑函数。f是界标值是一具有限集合,至少包含f(a),f(b)。
  集合 {t|t∈[a,b]∧f(t) 是界标值}的元素称作区分点。
  设l1<l2<…<lk是f:[a,b]→[-∞,∞]的界标值,对任意的t∈[a,b] f在t的定性状态QS(f,t)规定为有序对<qval,qdir>。其中
  
  设ti,ti+1是相邻的区分点,f在(ti,ti+1)内的定性状态QS(f,ti,ti+1)规定为QS(f,t),其中t∈(ti,ti+1)。
  f在[a,b]上定性行为规定为f的定性状态序列:QS(f,t0),QS(f,t0,t1)QS(f,t1)…,QS(f,tn)。其中ti为区分点且ti<ti+1
  若 F={f1,…,fk}则F的定性状态规定为
  QS(F,ti)={QS(f1,ti)…,QS(fk,ti)}
  QS(F,ti,ti+1)={QS(f1,ti,ti+1),…,QS(fk,ti,ti+1)}
  其中ti f1,…,fk 区分点并集的元素。
  2. 定性状态转移
  依假设f 是光滑函数,f从一个定性状态转换成另一定性状态是受介值定理和中值定理限制的。定性状态转换有两类,一类是P转换从时间点到时间区间,另一类是I转换从时间区间到时间点。
  转换表
  P转换  QS(f,ti)QS(f ,ti,ti+1)
     <lj,std>      <lj,std>
     <lj,std>      <(lj,lj+1),inc>
     <lj,std>      <(lj-1,lj),dec>
     <lj,inc>      <(lj,lj+1>,inc >
     <(lj,lj+1),inc>   <(lj,lj+1),inc>
     <lj,dec>      <(lj-1,lj),dec>
     <(lj,lj+1),dec>   <(lj,lj+1),dec>

  I转换  QS(f,ti,ti+1) QS(f,ti+1)
     <lj,std> <lj std>
     <(lj,lj+1),inc>  <lj+1,inc>
     <(lj,lj+1),inc>  <lj+1,inc>
     <(lj,lj+1),inc>  <(lj, lj+1)inc>
     <(lj,lj+1),dec>  <lj,std>
     <(lj,lj+1),dec>  <lj,dec>
     <(lj,lj+1),dec>  <(lj,lj+1) ,dec>
     <(lj,lj+1),inc>  < l*,std>
     <(lj,lj+1),dec>  < l*,std>

  3. QSIM 算法
  已知初始状态,利用转换规则来实现定性模拟有QSIM算法。
  首先将初始状态送入ACTIVE表中,然后重复(1)-(6)直至ACTIVE空为止。
  (1) 从ACTIVE 中选一状态。
  (2) 对每个参量依转换表找出所有可能的后继状态。
  (3) 对约束中参量的转换生成二元组,三元组集合。依约束关系做一致性滤波。
  (4) 对有公共参量的约束,对元组进行组对。再对组对的元组作一致性滤波。
  (5) 从剩下的元组生成所有可有的全局解释。每个解释生成一个新的状态作为当前状态的后继状态。
  (6) 对新状态作全局滤波,剩下的状态送入ACTIVE表。所说的全局滤波是排除无变化情形(如I1、I4、I7)、循环情形(新状态与某个前辈状态相同)、发散情形(某参数值为∞,这时当前时间点必为结束点)。
  4.举例:上抛球运动的定性模拟
  以向上抛球的运动过程为例来说明QSIM算法。设球的高度为y,速度为v,加速度A。
  已知约束关系 
    DERIV (Y,V)
    DERIV (V,A)
    A(t)=g<0
  初始状态(t0,t1)球向上运动
    QS(A,t0,t1)=<g,std >
    QS(V,t0,t1)=<(0, ∞),dec>
    QS(y,t0,t1)=<(0, ∞),inc>
  对每个参量做各种可能的转换,当前处于时间区间上,所以需使用I转换。
  A <g,std><g,std>
  V <(0, ∞ ),dec>
   <(0, ∞),dec><0,dec>
   <(0, ∞),dec><(0, ∞),dec>
   <(0, ∞),dec><l*,std>
  Y <(0, ∞),iec><(0, ∞),inc>
   <(0, ∞),inc>< l*,std >
  对约束形成元组集合,先对单个约束做一致性滤波,滤掉的以C表示。然后对元组做组对再做一致性滤波,滤掉的以W表示。
  依 DERIV(Y,V)组对
    ()   C   ()  W 
    ()   C   ()
    ()       ()  C
    (, )   W   (,)   C
  依 DERIV(V,A)组对
    ()   C   ()
    ()       ()  C
其中如元组()中,使Y的定性状态变为<(0, ∞),inc>而使V的定性状态变为<0,std>,这与约束DERIV(Y,V)不一致。于是()被过滤掉。又元组()中的和元组()中的I9都是对V的转换,由于()已被滤掉,所以导致()也被滤掉。
  对剩下的元组形成两个全局解释。
   Y   V   A
        
        
其中第一种解释为无变化情形被滤掉。第二种解释是唯一的后继状态。这时
   QS(A,t1)=<g,std>
   QS(v,tl)=<0,dec>
   QS(y,t1)=<yMAX,std>
其中YMAX是新的界标值。