-2

我正在使用 Django 并尝试为有限自动机创建一个模型,这就是我到目前为止想出的:

class Alphabet(models.Model):
    alphabet = models.CharField(max_length = 10, null = True, blank = True)
    automata = models.ForeignKey(Automata, on_delete = models.CASCADE)

class States(models.Model):
    state = models.CharField(max_length = 10, null = True, blank = True)
    final = models.BooleanField(default = False)
    initial = models.BooleanField(default = False)
    automata = models.ForeignKey(Automata, on_delete = models.CASCADE)

class Automata(models.Model):
    pass

现在我想对转换函数进行建模,每个自动机都有一个:

示例:我们可以使用 symbol1 从 state1 转到 state2

我不确定如何处理,任何帮助将不胜感激!

4

1 回答 1

1

下面可以对有限自动机的转移函数的单个转移进行建模。然而,值得注意的是,确定性有限自动机和非确定性有限自动机转换看起来不同。DFA 转换映射到单个状态,而 NFA 转换映射到一组状态。添加关系时,您必须牢记这一点。

class Transition(models.Model):

    current_state = models.ForeignKey(State)
    symbol = models.CharField(max_length=1)
    next_state = models.ForeignKey(State)

    def __str__(self):
        return "T({0}, {1}) = {2}".format(
            self.current_state,
            self.symbol,
            self.next_state
        )
于 2017-01-22T01:10:19.280 回答