第十二章 有限状态机和动态规划——地图与本地搜索的核心技术
智能手机的定位和导航功能,只有三项关键技术:
①利用卫星定位
②地址的识别
③根据用户输入的起点和终点,在地图上规划最短路线或者最快路线。
1 地址分析和有限状态机
有限状态机是一个特殊的有向图,它包括一些状态(节点)和连接这些状态的有向弧。
每一个有限状态机都有一个开始状态和一个终止状态,以及若干中间状态。每一条弧上带有从一个状态进入下一个状态的条件。
使用有限状态机识别地址,关键是要解决两个问题:
①通过一些有效地址建立状态机
②给定一个有效状态机后,地址字串的匹配算法
当然上述会遇到一些问题:有限状态机要求严格匹配,即用户输出不能有错别字且要标准。
如何解决呢?模糊匹配,提出基于概率的有限状态机。这种基于概率的有限状态机和离散的马尔可夫链基本上等效。
2 全球导航和动态规划
全球导航的关键算法是计算机科学图论中的动态规划(Dynamic Programming)的算法
在图论中,一个抽象的图包括一些节点和连接它们的弧。如果再考虑每条弧的长度,或者说权重,那么这个图就是加权图(Weighted Graph)。
中国公路网中每个城市是一个节点,每一条公路是一条弧。图中弧的权重对应于地图上的距离,或者是行车时间等等。
对于找一个图中给点两个点之间的最短路线(Shortest Path),例如从北京到广州。
利用横切线:
将一个“寻找全程最短路线”的问题,分解成一个个寻找局部最短路线的小问题。
上图的动态规划的计算量是10*10*15,而穷举则是10**15,前后差了亿万倍。
3 延伸阅读:有限状态传感器
有限状态机严格的数学模型:
定义:有限状态机是个五元组,其中:
∑是输入符号的结合
S是一个非空的有限状态集合
So是S中的一个特殊状态,起始状态
δ是一个从空间S *∑到S的映射函数,即δ:S*∑→S
f是S中另外一个特殊状态,终止状态
这里面映射函数δ对于一些变量,即状态和输入符号的组合可能没有合适的对应状态(函数值),也就是说,在一些状态下,有些符号不能被接受
有限状态机在语音识别和自然语言理解中起着非常重要的作用,这些领域使用的是一种特殊的有限状态机——加权的有限状态传感器(Weighted Finite State Transducer ,WFST)
有限状态传感器(Finite State Transduces,FST)的特殊性在于,有限状态机中的每个状态由输入和输出符号定义,
状态4的定义是“输入is 或者are ,输出为better 或者 worse”的状态。
在语音识别中,每个被识别的句子都可以用一个WFST来表示:
WFST中的每一条路径就是一个候选的句子,其中概率最大的那条路径就是这个句子的识别结果。