2017-01-22 91 views
-1

我使用Django和試圖建立一個有限自動機的模型,這就是我想出迄今: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,任何幫助,將不勝感激!

回答

0

以下內容可以模擬有限自動機的轉換函數的單個轉換。但值得注意的是,確定性有限自動機和非確定性有限自動機轉換看起來不同。 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 
     ) 
+0

我沒有想到做這件事的時候,謝謝指出! – Meryem