def makeAutomata(self): Q = [self.empty] # On remplit d'abord Q for i in range(0, len(self.S)): b = False for j in range(0, i): if i != j and self.S.table[i] == self.S.table[j]: b = False break if self.S.key[ i] not in Q and self.S.table[i] != self.S.table[j]: b = True if b: Q.append(self.S.key[i]) automata = Automata(self.alphabet, Q) # Ensuite, on peut remplir les tables Fa et Fr for qu in range(len(Q)): if self.allKey.getValue(Q[qu] + self.empty) == 1: automata.Fa.append(qu) else: automata.Fr.append(qu) # Enfin, on peut créer la table contenant les états et les transitions for qu in range(len(Q)): for a in self.alphabet: for qw in range(len(Q)): if self.getRow(Q[qu] + a) == self.getRow(Q[qw]): automata.setValue(qw, qu, a) break print("\n-- Q ------------------------------") print(automata.Q) print("\n-- Fa ------------------------------") print(automata.Fa) print("\n-- Fr ------------------------------") print(automata.Fr) return automata