17、有限状态机与正则表达式的闭包性质及等价性

有限状态机与正则表达式的闭包性质及等价性

1. 补集运算

补集运算是针对有限状态自动机(DFA)的一种操作。对于一个 DFA (M),其语言 (L(M)) 的补集 (\overline{L(M)}) 定义为:
(\overline{L(M)} = {w | w \notin L(M)})
也就是说,(\overline{L(M)}) 包含了所有不在 (L(M)) 中的字符串。

要构造一个能识别 (\overline{L(M)}) 的自动机,该自动机需要在 (M) 拒绝时接受,在 (M) 接受时拒绝。由于 (M) 是 DFA,我们可以通过反转 (M) 的状态角色来实现。具体而言,(M) 的终态在构造的自动机中不再是终态,而 (M) 中的其他状态则成为终态。

以下是补集构造器的实现代码:

;; dfa →dfa
;; Purpose: Construct a dfa for the complement of given dfa’s language
(define (complement-fsa M)
  (let* [(new-finals (filter (λ (s) (not (member s (sm-finals M))))
                            (sm-states M)))]
    (make-dfa (sm-states M)
              (sm-sigma M)
              (sm-start M)
              new-finals
              (sm-rules 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值