2017-01-22 6 views
-1
내가 장고를 사용하고 유한 자동 장치에 대한 모델을 만들려고 해요

모델링 이것은 내가 지금까지 해낸 것입니다 :장고 - 전환 기능

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 

는 지금은 전환을 모델링하고 싶습니다 기능, 각 자동 장치 하나가 :

예 : 우리가 내가 그와 함께 통과하는 방법을 잘 모르겠어요 특수 기호

를 사용하여 상태 2 할 상태 1에서 갈 수있는, 어떤 도움을 주시면 감사하겠습니다!

답변

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