Computer science 为在Σ;上定义的以下语言构造NFA{0, 1}. D={0^n10^m10^q | n,m,q∈;n,q≡;nm(mod 5)}

Computer science 为在Σ;上定义的以下语言构造NFA{0, 1}. D={0^n10^m10^q | n,m,q∈;n,q≡;nm(mod 5)},computer-science,Computer Science,需要帮助解决以下问题: 为在∑={0,1}上定义的以下语言构造NFA D={0^n 10^m10^q | n,m,q∈ N、 q≡ 纳米(模5)} 我对如何在语言的q部分创建NFA分解感到困惑。我们可以使用五种状态来记住n mod 5的值: _______________0______________ / \ | | V

需要帮助解决以下问题:

为在∑={0,1}上定义的以下语言构造NFA

D={0^n 10^m10^q | n,m,q∈ N、 q≡ 纳米(模5)}


我对如何在语言的q部分创建NFA分解感到困惑。

我们可以使用五种状态来记住n mod 5的值:

        _______________0______________
       /                              \
       |                              |
       V                              |
----->q0--0-->q1--0-->q2--0-->q3--0-->q4
现在我们需要阅读1:

        _______________0______________
       /                              \
       |                              |
       V                              |
----->q0--0-->q1--0-->q2--0-->q3--0-->q4
       |       |       |       |       |
       1       1       1       1       1
       |       |       |       |       |
       V       V       V       V       V
      q0'     q1'     q2'     q3'     q4'
现在,我们可以单独查看每个案例。对于q0',我们知道我们在第一节中看到了许多0,这些0与0 mod 5一致。因此,nm=0(mod 5)是已知的。我们可以接受任意数量的0,然后是1,如果没有进一步的输入,则可以接受:我们可以让q0'执行以下操作:

     _0_
    /   \
    |   |
    \   /
----->q0'--1-->qA
对于q1',我们将有q=nm(mod 5)=m(mod 5),因为在这种情况下n=1(mod 5)。我们可以通过记住m(mod 5)的当前值,然后在q中查找那么多0来实现这一点。也就是说,q1'可以替换为:

        _______________0________________________
       /                                        \
       |                                        |
       V                                        |
----->q1'--0-->q1''--0-->q1'''--0-->q1''''--0-->q1'''''
       |        |        |          |           |
       1        1        1          1           1
       |        |        |          |           |
       V        V        V          V           V
       qA<--0--qA'<--0--qA''<--0--qA'''<--0--qA''''
状态qA',qA'',qA''和qA''与前面介绍的相同,但请注意现在的顺序不同:这反映了这样一个事实:2x0=0(与前面一样),2x1=2(不是1),2x2=4(不是2),等等

我们可以为第3季度和第4季度做同样的事情:

        _______________0________________________
       /                                        \
       |                                        |
       V                                        |
----->q3'--0-->q3''--0-->q3'''--0-->q3''''--0-->q3'''''
       |        |        |          |           |
       1        1        1          1           1
       |        |        |          |           |
       V        V        V          V           V
       qA      qA'''    qA'        qA''''      qA''


        _______________0________________________
       /                                        \
       |                                        |
       V                                        |
----->q4'--0-->q4''--0-->q4'''--0-->q4''''--0-->q4'''''
       |        |        |          |           |
       1        1        1          1           1
       |        |        |          |           |
       V        V        V          V           V
       qA      qA''''   qA'''      qA''        qA'
将所有这些不同的DFA组合到一个巨大的DFA中,可以保证为您提供一个可以工作的DFA。我不能确定是否存在实质上类似的NFA。本DFA规定:

  • q0,q0:两种状态
  • q1,q1',..,q1'':6个状态
  • q2,q2',..,q2'':6个状态
  • q3,q3',..,q3'':6个状态
  • 第四季度、第四季度、第四季度:6个州
  • qA,qA',..,qA'':5个州

  • 这一共是32个州。如果您想尝试最小化,您可能可以删除其中一些。

    我们可以使用五种状态来记住n mod 5的值:

            _______________0______________
           /                              \
           |                              |
           V                              |
    ----->q0--0-->q1--0-->q2--0-->q3--0-->q4
    
    现在我们需要阅读1:

            _______________0______________
           /                              \
           |                              |
           V                              |
    ----->q0--0-->q1--0-->q2--0-->q3--0-->q4
           |       |       |       |       |
           1       1       1       1       1
           |       |       |       |       |
           V       V       V       V       V
          q0'     q1'     q2'     q3'     q4'
    
    现在,我们可以单独查看每个案例。对于q0',我们知道我们在第一节中看到了许多0,这些0与0 mod 5一致。因此,nm=0(mod 5)是已知的。我们可以接受任意数量的0,然后是1,如果没有进一步的输入,则可以接受:我们可以让q0'执行以下操作:

         _0_
        /   \
        |   |
        \   /
    ----->q0'--1-->qA
    
    对于q1',我们将有q=nm(mod 5)=m(mod 5),因为在这种情况下n=1(mod 5)。我们可以通过记住m(mod 5)的当前值,然后在q中查找那么多0来实现这一点。也就是说,q1'可以替换为:

            _______________0________________________
           /                                        \
           |                                        |
           V                                        |
    ----->q1'--0-->q1''--0-->q1'''--0-->q1''''--0-->q1'''''
           |        |        |          |           |
           1        1        1          1           1
           |        |        |          |           |
           V        V        V          V           V
           qA<--0--qA'<--0--qA''<--0--qA'''<--0--qA''''
    
    状态qA',qA'',qA''和qA''与前面介绍的相同,但请注意现在的顺序不同:这反映了这样一个事实:2x0=0(与前面一样),2x1=2(不是1),2x2=4(不是2),等等

    我们可以为第3季度和第4季度做同样的事情:

            _______________0________________________
           /                                        \
           |                                        |
           V                                        |
    ----->q3'--0-->q3''--0-->q3'''--0-->q3''''--0-->q3'''''
           |        |        |          |           |
           1        1        1          1           1
           |        |        |          |           |
           V        V        V          V           V
           qA      qA'''    qA'        qA''''      qA''
    
    
            _______________0________________________
           /                                        \
           |                                        |
           V                                        |
    ----->q4'--0-->q4''--0-->q4'''--0-->q4''''--0-->q4'''''
           |        |        |          |           |
           1        1        1          1           1
           |        |        |          |           |
           V        V        V          V           V
           qA      qA''''   qA'''      qA''        qA'
    
    将所有这些不同的DFA组合到一个巨大的DFA中,可以保证为您提供一个可以工作的DFA。我不能确定是否存在实质上类似的NFA。本DFA规定:

  • q0,q0:两种状态
  • q1,q1',..,q1'':6个状态
  • q2,q2',..,q2'':6个状态
  • q3,q3',..,q3'':6个状态
  • 第四季度、第四季度、第四季度:6个州
  • qA,qA',..,qA'':5个州
  • 这一共是32个州。如果你想尝试最小化,你也许可以去掉一些