【发布时间】:2017-09-14 12:26:23
【问题描述】:
【问题讨论】:
-
这是一道数学题。不会编程!?
【问题讨论】:
您可以运行正式的笛卡尔积机器构造,以算法推导出 L1 和 L2 的交集和并集的自动机。但是,由于这些语言非常简单,因此提供语言并为每种语言写下 DFA 可能会更简单。
L1 是所有至少有一个 a 的 as 和 bs 字符串的语言。 L2是所有至少有两个b的as和bs字符串的语言。
要接受L1和L2的交集,我们至少需要看到一个as和两个bs。下面,我们有六个状态:
q5,我们还需要一个a
--->q0-a->q1-b->q2-b->q3 -b->q4-a->q2 q3 -b->q5-a->q3
(缺少转换的地方,它们是自循环)
请注意,有六个状态:这与我们分别在两个和三个状态的原始 DFA 上进行笛卡尔积机器构造相同。
对于联合,我们可以使用完全相同的 DFA,并将接受状态集更改为 q1、q3、q5。这捕捉到了这样一个事实,即当任一条件为真时我们现在接受(并且状态 q1 和 q5 是其中一个,但不是两个(如在 q3 中)条件都满足)。
【讨论】: