标签: finite-automata

是否使用goto?

这个问题可能听起来有些陈词滥调,但我处于这种情况.

我正在尝试实现一个有限状态自动机来解析C中的某个字符串.当我开始编写代码时,我意识到如果我使用标签来标记不同的状态并使用goto从一个状态跳转到另一个案件来了.

在这种情况下使用标准的break和flag变量非常麻烦,很难跟踪状态.

什么方法更好?最重要的是,我担心这会给我的老板留下不好的印象,因为我正在实习.

c parsing goto finite-automata

20
推荐指数
6
解决办法
4032
查看次数

你如何规范有限状态机?

  1. 您如何找到最小的确定性FSM?
  2. 有没有办法规范化非确定性FSM?
  3. 是否有线性时间限制算法来查找给定机器的最小FSM?
  4. 有没有办法看看两个FSM是否相同?

这不是一个家庭作业问题.我正在看这个系列讲座而且很好奇.

computer-science finite-automata

18
推荐指数
3
解决办法
2767
查看次数

有限自动机如何在代码中实现?

如何在Python代码中实现dfanfa解决这个问题?

有什么好方法在python中做到这一点?他们曾经在现实世界的项目中使用过吗?

python automata finite-automata dfa nfa

15
推荐指数
1
解决办法
1万
查看次数

NFA最小化而不确定

众所周知,如何从常规语言的NFA到最小的DFA.但是,DFA可能具有指数级更大的州.

我需要的是一种减少NFA的方法,再次给出一个NFA但具有较少数量的状态.Ti我不需要结果是确定性的,但我希望它保持尽可能小,同时保留公认的语言(可能不是绝对最佳,但越小越好).

这个问题的最佳算法是什么?或者也许不是"最好的",但至少"最容易实现非极端效率"?或者问题是否有一个众所周知的名称,以便我自己能找到好的信息来源?

regex language-agnostic algorithm computer-science finite-automata

12
推荐指数
1
解决办法
1663
查看次数

反转后无限重复的最短位串

Marvin Minsky在口语考试中问我以下问题:

作为蚂蚁行走,它每次执行步骤时都会打印二进制数(例如,101).什么是最小长度,以数字为单位,二进制数可以是什么,可以告诉蚂蚁行进的方向而不查看字符串的开头或结尾?蚂蚁告诉你二进制数.

示例:蚂蚁的二进制数为101,因此,蚂蚁会留下如下所示的路径:101101101101101101101.请注意,无法确定蚂蚁的行进方式.因此,这个特定的数字不起作用(但可能有三位二进制数).

示例:蚂蚁的二进制数是011,因此,蚂蚁留下如下所示的踪迹:011011011011011011.再次,没有办法在不查看字符串末尾的情况下判断蚂蚁的行进方式.

这个问题的答案是什么?请注意,答案不仅仅是二进制数的一个例子.答案需要包括一个证明,即长度小于n-1的二进制数将起作用,其中n是有效的示例二进制数的长度.详尽的枚举证明是可以的,但令人不快.:)

string finite-automata

10
推荐指数
1
解决办法
1231
查看次数

有限自动机有什么用?

有限自动机有什么用?以及我们在计算理论中研究的所有概念.我还没见过他们的用途.

theory finite-automata

10
推荐指数
1
解决办法
2万
查看次数

如何执行FST(有限状态传感器)组合

考虑以下FST:

T1 

0 1 a : b
0 2 b : b
2 3 b : b
0 0 a : a
1 3 b : a

T2

0 1 b : a
1 2 b : a
1 1 a : d
1 2 a : c
Run Code Online (Sandbox Code Playgroud)

如何在这两个FST上执行合成操作(即T1 o T2)我看到了一些算法,但是不太了解.如果有人能够以一种简单的方式解释它,那将是一个重要的帮助.

请注意,这不是作业.这个例子来自给出解决方案的演讲幻灯片,但我无法弄清楚如何实现它.

nlp finite-automata state-machine

10
推荐指数
1
解决办法
6041
查看次数

NFA到DFA转换的简洁描述?

有人可以比我更简洁地向SO社区描述NFA到DFA的转换算法吗?(最好是500字以内.)我见过的图表和讲座只会让我以为我曾经认识的东西感到困惑.我最有信心从状态图生成初始NFA转换表,但之后,我丢失了epsilons和子集中的DFA.

1)在转换(delta)表中,哪一列代表新的DFA状态?它是生成状态的第一列吗?

2)在下面我的例子的第{2,3}行中,{2,3}在状态图方面对NFA的意义是什么?(对不起,我必须在图片中思考.)我认为这将是DFA中的"输入0回环"?

3)从表格到DFA或识别所得到的DFA的接受状态的任何简单的"经验法则"?

有限自治

delta  |  0    |  1     |
=======+=======+========+
{1}    |{1}    |{2}     |
{2}    |{3}    |{2,3}   |
{3}    |{2}    |{2,4}   |
{2,3}  |{2,3}  |{2,3,4} |
{2,4}  |{3,4}  |{2,3,4} |
{2,3,4}|{2,3,4}|{2,3,4} |
{3,4}  |{2,4}  |{2,4}   |
Run Code Online (Sandbox Code Playgroud)

编辑:这是上面的点格式表,欢呼Regexident.

digraph dfa {
    rankdir = LR;
    size = "8,5"
/*  node [shape = doublecircle]; "1";*/
    node [shape = circle];

    "1" -> "1" [ label = "0" ];
    "1" -> "2" [ label = "1" ];

    "2" -> "3"   [ …
Run Code Online (Sandbox Code Playgroud)

algorithm finite-automata dfa nfa

10
推荐指数
2
解决办法
3912
查看次数

NFA到DFA的问题

首先,这不是要求算法将NFA转换为DFA的问题.

众所周知(并且证明)NFA的等效DFA最多有2 n个状态,即使大多数时候它与NFA的状态数或多或少相同.

我如何预测NFA等效DFA所具有的州数量?哪种特定类型的NFA需要等效DFA才能拥有2 n个状态?

我之所以提出这个问题,是因为能够"发明"一些肯定会产生的NFA,而不考虑最小化,2 n - 1个状态加上"死态".

computer-science finite-automata computation-theory

9
推荐指数
1
解决办法
7727
查看次数

DFA可以有epsilon/lambda转换吗?

找不到任何肯定的东西.任何epsilon过渡的NFA都是epsilon-NFA?谢谢.

automata finite-automata state-machine dfa automata-theory

9
推荐指数
2
解决办法
2万
查看次数