Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 关于nfa和dfa的问题_Regex_Dfa_Nfa - Fatal编程技术网

Regex 关于nfa和dfa的问题

Regex 关于nfa和dfa的问题,regex,dfa,nfa,Regex,Dfa,Nfa,希望你能帮我做这个 我有一个主要问题是“如何判断正则表达式是否会被和/或接受?” 我的问题是,哪个正则表达式是等价的?解释 1.(a+b)**b(a+b)**b(a+b)* 2.2亚的斯亚贝巴* 3.abab(a+b)* 我们是否必须绘制NFA和DFA,然后通过最小化算法进行查找?如果我们这样做了,那么我们如何知道NFA/DFA接受哪个正则表达式,以便我们可以从答案开始?太令人困惑了 第二个是非常相似的一个,问题要求我证明语言(a^nb^n | n>1}不被DFA接受…grrrr…我怎么知道这一

希望你能帮我做这个

我有一个主要问题是“如何判断正则表达式是否会被和/或接受?”

我的问题是,哪个正则表达式是等价的?解释 1.(a+b)**b(a+b)**b(a+b)*

2.2亚的斯亚贝巴*

3.abab(a+b)*

我们是否必须绘制NFA和DFA,然后通过最小化算法进行查找?如果我们这样做了,那么我们如何知道NFA/DFA接受哪个正则表达式,以便我们可以从答案开始?太令人困惑了

第二个是非常相似的一个,问题要求我证明语言(a^nb^n | n>1}不被DFA接受…grrrr…我怎么知道这一点?(顺便说一句,这是一组所有字符串,其中a的数字后面跟着相同的b的数字)


我希望我解释得很清楚……

如果你被要求证明某些语言不被DFA/NFA接受,你几乎总是必须应用,也就是说。

NFA和DFA接受等价的(常规)语言,所以证明一种语言是常规语言的一种方法是为其创建NFA或DFA

为了表明一种语言不在类中,您通常会使用泵引理

维基百科有一个非常类似的例子,除了n>=0;不过我不会帮你完成家庭作业


要确定两个正则表达式是否不相等,请创建一个被一个接受但被另一个拒绝的字符串。

首先,关于术语的说明:语言是某些字母表上的一组字符串。DFA和NFA识别正则语言,而不是正则表达式。可能有几个正则表达式定义ame语言。对于两种语言L1和L2,如果L1的每个成员都是L2的成员,反之亦然,则L1和L2是等效的

关于第一个问题,语言L1由{a,b}上的所有字符串组成,至少有两个'b'。语言L2由{a,b}上的所有字符串组成,正好有两个'b'。 字符串“abbb”是L1和L3的一个元素,但不是L2。因此剩下L1和L3 比较。L1的任何元素S必须至少包含两个“b”。让前两个“b” 在S中,匹配表达式E3中的两个显式“b”;然后其他组件
a*
a*
(a+b)*
始终可以匹配,并且S必须在L3中。因此L1是L3的子集。 类似地,L3的任何元素S必须至少包含两个“b”。让它们与表达式E1中的两个显式“b”匹配;其他组件
(a+b)*
(a+b)*
,和
(a+b)*
也将匹配 有匹配项,S也在L1中。所以L1是L3的子集,L3是L1的子集,所以 L1和L3必须等效


关于您的第二个问题:使用。假设您有一个接受该语言的DFA…表明它也必须接受非该语言中的字符串,因此不可能存在这样的DFA。让我们使用该语言中的任何字符串…S的任何子字符串都将具有所有a、所有b或两者…那么在“泵”之后会发生什么它?

hi sth.…难道没有更简单或更简短的方法来证明DFA/NFA的接受吗?@Loop:表明一种语言被接受和表明它不能被接受是两种不同的问题。这个问题的意图肯定是你使用了泵引理。谢谢Jim…..这么多…我试过了,但是你能不能对第二个问题再解释一下…。再次感谢…@Loop:假设一个DFA有n个状态,但接受一种具有任意长字符串的语言。那么DFA必须有一个循环,并且该循环有n个或更少的状态转换。因此,任何围绕该循环使用DFA的输入字符串都有一个可以“泵送”(重复)的子字符串任意次数,但仍被DFA接受。