我不明白PDA图中的箭头......
我有一个PDA接受所有带有括号的字符串,如((((()))))
,(())
,((()))
等。它有两种状态,第一个状态有一个循环的箭头和行为这被描述为(,ε/(
。
对于我所看到的内容,如果堆栈顶部有ε,则此描述会接受(
符号,如果有,则ε
将替换为{{1} }}。
所以如果堆栈在开头看起来像这样:
(
现在看起来像这样:
ε
即使(ε
不再位于堆栈顶部,这个循环箭头如何继续接受每个(
符号呢?
答案 0 :(得分:1)
你需要另一种表示该状态的行为:(,( - >( 这种转变应该带你到另一个状态(辅助状态)。 该辅助状态的唯一转换是ε,ε->(
从原始状态开始,你需要弹出(当你看到一个时从堆栈中弹出) ),( - >ε
以下是我的一个类似的例子,其中包含的不仅仅是b(问题编号1)