Django - 转换函数建模
Django - Modeling a transition function
我正在使用 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
现在我想对转换函数建模,每个自动机都有一个:
示例: 我们可以使用符号 1
从状态 1 转到状态 2
我不确定如何完成,如有任何帮助,我们将不胜感激!
以下可以模拟有限自动机的转移函数的单个转移。然而,值得注意的是,确定性有限自动机和 non-deterministic 有限自动机转换看起来不同。 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
)
我正在使用 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
现在我想对转换函数建模,每个自动机都有一个:
示例: 我们可以使用符号 1
从状态 1 转到状态 2我不确定如何完成,如有任何帮助,我们将不胜感激!
以下可以模拟有限自动机的转移函数的单个转移。然而,值得注意的是,确定性有限自动机和 non-deterministic 有限自动机转换看起来不同。 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
)