验证确定性有限自动机转换函数对于每个唯一的输入字母表只有一个输出状态
validate that deterministic finite automata transition function has exactly one output state for each unique input alphabet
假设我的 DFA 具有以下结构:
dfa = DFA(
{'q0','q1'}, # States
{'0','1'}, # Alphabets
{'q0':{'0':'q0', '1': 'q1'},
'q1':{'0':'q1', '1': 'q0'}}, # Transition_funcs
'q0', # Start_state
{'q1'} # Final_state
)
我想要做的是验证对于每个状态,我的转换 table 对于每个字母表或 sigma 都有一个且只有一个转换函数。我所做的如下:
class DFA(object):
def __init__(self, States=None, Alphabets=None, Transitio_funcs=None, Start_state=None, Final_states=None):
self.States = Sates
self.Alphabets = Alphabets
self.Transition_funcs = Transition_funcs
self.Start_state = Start_state
self.Final_state = Final_state
def validate(self):
input = {}
output = {}
for k,v in self.Transition_funcs.items():
for k1,v1 in v.items():
input[k1] = count.get(k1,0) +1
output[v1] = count.get(v1,0) +1
for ks,vals in input:
if vals != 1
return False
for ks,vals in output:
if vals != 1
return False
return True
我的理解是,由于每个唯一的输入都有唯一的输出状态,我需要检查每个输入字母表只有一个计数,每个输出状态只有一个计数。但是,我收到以下错误:
if vals != 1
^
SyntaxError: invalid syntax
如果有人能指出我到底缺少什么,我将不胜感激。
您的两个 if
语句中都缺少 :
,因此 SyntaxError
.
应该是,
if vals != 1:
假设我的 DFA 具有以下结构:
dfa = DFA(
{'q0','q1'}, # States
{'0','1'}, # Alphabets
{'q0':{'0':'q0', '1': 'q1'},
'q1':{'0':'q1', '1': 'q0'}}, # Transition_funcs
'q0', # Start_state
{'q1'} # Final_state
)
我想要做的是验证对于每个状态,我的转换 table 对于每个字母表或 sigma 都有一个且只有一个转换函数。我所做的如下:
class DFA(object):
def __init__(self, States=None, Alphabets=None, Transitio_funcs=None, Start_state=None, Final_states=None):
self.States = Sates
self.Alphabets = Alphabets
self.Transition_funcs = Transition_funcs
self.Start_state = Start_state
self.Final_state = Final_state
def validate(self):
input = {}
output = {}
for k,v in self.Transition_funcs.items():
for k1,v1 in v.items():
input[k1] = count.get(k1,0) +1
output[v1] = count.get(v1,0) +1
for ks,vals in input:
if vals != 1
return False
for ks,vals in output:
if vals != 1
return False
return True
我的理解是,由于每个唯一的输入都有唯一的输出状态,我需要检查每个输入字母表只有一个计数,每个输出状态只有一个计数。但是,我收到以下错误:
if vals != 1
^
SyntaxError: invalid syntax
如果有人能指出我到底缺少什么,我将不胜感激。
您的两个 if
语句中都缺少 :
,因此 SyntaxError
.
应该是,
if vals != 1: