非确定性有限状态机与确定性有限状态机的转换及相关证明
在计算机科学领域,有限状态机是一个重要的概念,其中非确定性有限状态机(NDFA)和确定性有限状态机(DFA)的转换及相关性质的证明是关键内容。下面将详细介绍NDFA转换为DFA的过程以及相关的正确性证明。
1. 计算空转移表
计算空转移表时,输入为NDFA的状态集和转移规则。通过映射一个函数为给定状态创建表项,该映射函数计算某个状态的空转移。具体计算委托给一个辅助函数,该函数使用广度优先搜索,有两个累加器,一个用于待访问状态,另一个用于已访问状态。初始时,第一个累加器仅包含正在处理的状态,第二个累加器为空。
;; 计算状态的空转移
(define (compute-empties state rules)
;; 辅助函数,使用广度优先搜索
(define (bfs to-visit visited)
(if (empty? to-visit)
visited
(let* [(current (first to-visit))
(e-transitions (get-e-trans current (append to-visit visited) rules))
(new-states (map third e-transitions))
(unvisited-new-states (filter (lambda (s) (not (member s (append to-visit visited)))) new-states)
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



