综上所述,我们的基本思想是:当前状态表呈现了任一时刻可变结构受限生成过程的全部描述。它描述了当前组成可变结构受限生成过程的所有机制,并及时地记录下这些机制的状态。当前状态表中的所有条目会被同时执行。
详细表述就是,当前状态表中的每个条目都具有标准的形式:
(标识)(转换函数索引)(输入条件1)(输入条件2)…(输入条件k)(局部状态)
正如固定结构受限生成过程模型那样,每个转换函数f均取自固定的有限合规函数集F;由于F是有限的,所以可以用固定长度的字符串对索引集进行编码。由于类似的编码方法可以用在标准形式的所有其他部分,于是就可以使用一个不长的定长字符串的字母序列,对具有标准形式的描述进行编码。
对当前状态表中的每一个条目而言,标识表示条目的地址,转换函数的索引确定了与条目对应的转换函数f∈F(当条目被解释为机制时,使用此转换函数),每个输入条件接受一个标识集的子集,局部状态可按受限生成过程模型设计者的要求确定。通过在当前状态表中搜寻标识满足输入条件的条目,就可以确定每一时刻每个输入的取值(见图9-1)。
要确定可变结构受限生成过程的行动,需要执行下列步骤(见图9-3):
1.将当前状态表中每个机制的输入条件与表中的其他条目进行核对。
a.如果表中只有一个条目,其标识满足输入条件,则将该条目对应的描述串赋值给输入,作为输入的当前值。
b.如果表中存在多个条目,且它们的标识满足输入条件,则从中随机选取一个对应的描述串作为输入的取值。
c.如果表中没有标识满足输入条件的条目,则输入一定是从可变结构受限生成过程的外部获得的自由输入。另一种选择是引入空值,使转换函数可以有效地忽略此时的输入。
2.一旦为条目确定了输入值,该条目的转换函数f∈F将被赋予这些输入值,从而决定机制的下一个状态。F中的转换函数要这样设计,令其输出也是当前状态表中的标准描述串。
3.所有由各个f计算得到的后续状态都被加入当前状态表中。
a.如果表中没有标识与之相同的描述串,则将新的描述串加入表中,生成新串的原描述串仍保留在表中。
b.如果表中已经存在一个描述串与新串的标识相同,则该描述串由新串替换。有时不是进行替换,而是允许输出串删除当前状态表中与它标识相匹配的描述串,这种做法非常有用。删除操作可根据输出串的局部状态有条件地执行。
c.如果表中已经存在多个描述串与新串的标识相同,则随机选择一个由新串进行替换或删除。
如果计算所得描述串——当前状态表中新条目的输入条件或标识有所改变,则可变结构受限生成过程中相互作用的几何结构也将改变。一种可能是,如果某一机制的输入条件被改变,那么通常该条件将会转而处理某个新的标识,其结果是该条件将从另一个不同的机制接受输入。另一种可能是,如果某个描述的标识发生了变化,则该描述能够满足不同的输入条件,随后成为其他机制的输入。