Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 验证确定性有限自动机转换函数对于每个唯一的输入字母表都只有一个输出状态_Python_Regex_Regular Language_Finite Automata_Computation Theory - Fatal编程技术网

Python 验证确定性有限自动机转换函数对于每个唯一的输入字母表都只有一个输出状态

Python 验证确定性有限自动机转换函数对于每个唯一的输入字母表都只有一个输出状态,python,regex,regular-language,finite-automata,computation-theory,Python,Regex,Regular Language,Finite Automata,Computation Theory,假设我的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 ) 我试图做的是验证对于每个状态,我的转换表对于每个字母表或s

假设我的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
    )
我试图做的是验证对于每个状态,我的转换表对于每个字母表或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:

您删除了
,因为我是python新手,所以要花几个小时才能弄清楚。谢谢