标签: automata

构建正则表达式和有限自动机

我需要一些帮助来理解如何使用以下内容来制作将用于生成epsilon NFA的正则表达式.

字母是{0,1}

语言是:所有字符串的集合,以101开头,以01010结尾.

有效字符串将是:

  • 101010
  • 10101010
  • 101110101
  • 1011101010

我更关心理解如何制作正则表达式.

regex automata

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

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

图灵机:取两个数字的模?

设计一个图灵机,输入两个非负数并对它们进行模运算,例如 mod(3,7)=3 和 mod(7,3)=1。显然,指定有关 TM 输入和输出的任何假设和格式。

automata turing-machines

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

这种类型不是广义DFA有什么特别的原因吗?如果是这样,那真的是什么?

我正在Scala中组建一个基本结构库,用于生产或个人学习.我专注于在类型理论,猫理论,集合论中对所述结构的清晰描述.其中一种类型,

abstract case class Fold[A, B]() {
  type I
  def trans: I => A => I
  def start: I
  def output: I => B

  def cojoin: Fold[A, Fold[A, B]] 
  def copoint: B    
  def dimap[Z, C](f: Z => A, g: B => C): Fold[Z, C]
 }
Run Code Online (Sandbox Code Playgroud)

这是(我很确定)同构的,
(信用:http://www.haskellforall.com/2013/08/composable-streaming-folds.html)

abstract case class Fold'[A, B]() {
  type W
  def MonW: Monoid[W]
  def tally: A => W
  def summerize: W => B
}
Run Code Online (Sandbox Code Playgroud)

对我来说,其中一种类型非常类似于DFA,而在https://www.fpcomplete.com/user/edwardk/cellular-automata/part-2中 ,Kmett先生基本上也说了很多.我的问题是,如果不是 DFA,这种类型是什么?

haskell scala automata

0
推荐指数
1
解决办法
119
查看次数

在类型类中键入变量

关于类型类,我有一个奇怪的问题.所以你可以像这样定义一个基本类型:

class Property x where
    checkThing :: x -> Int -> Bool
    transformThing :: x -> x
Run Code Online (Sandbox Code Playgroud)

如果要使用具有多个参数的类型类,可以启用:

{-# LANGUAGE MultiParamTypeClasses #-}
Run Code Online (Sandbox Code Playgroud)

这将让你做以下事情:

class Property x y where
    checkThing :: x -> Int -> Bool
    transformThing :: x -> y -> Int
Run Code Online (Sandbox Code Playgroud)

这是我的问题:想象一下,我想为自动机(可接受语言的那种)编写一个类型类.我会写一个看起来像这样的类型:

class Automata machine where
    isDeterministic :: machine -> Bool
    acceptsInput :: machine -> String -> Bool
Run Code Online (Sandbox Code Playgroud)

自动机接受输入并确定该输入是否是语言的一部分.上述课程适用于此.但等待这个仅限于字符列表(String)如果我想通过Automata进行推广呢?好吧,我可以在我的类定义中添加另一个变量:

class Automata machine alphabet where
    isDeterministic :: machine -> Bool
    acceptsInput :: machine -> [alphabet] -> Bool
Run Code Online (Sandbox Code Playgroud)

嗯那没关系.但字母表可能与机器没有直接关系.我很幸运!我可以启用:

{-# LANGUAGE …
Run Code Online (Sandbox Code Playgroud)

generics haskell types automata

0
推荐指数
1
解决办法
99
查看次数