Dana Angluin在1987年的开创性论文中提出了一种多项式时间算法,用于从成员资格查询和理论查询(拟议DFA的反例)中学习DFA。
她表明,如果您尝试学习具有个状态的最小DFA ,而最大的countexample的长度为m,那么您需要进行O (m n 2)个成员资格查询,最多需要进行n − 1个理论查询。
学习常规集所需的查询数量是否有了重大改进?
参考文献和相关问题
Dana Angluin(1987)“从查询和反例中学习规则集”,《启发与计算》 75:87-106
Dana Angluin在1987年的开创性论文中提出了一种多项式时间算法,用于从成员资格查询和理论查询(拟议DFA的反例)中学习DFA。
她表明,如果您尝试学习具有个状态的最小DFA ,而最大的countexample的长度为m,那么您需要进行O (m n 2)个成员资格查询,最多需要进行n − 1个理论查询。
学习常规集所需的查询数量是否有了重大改进?
Dana Angluin(1987)“从查询和反例中学习规则集”,《启发与计算》 75:87-106
Answers:
在 对cstheory.SE的回答中,列夫·雷津(Lev Reyzin)指导我了解罗伯特· 沙皮尔(Robert Schapire)的论点,该论点改进了5.4.5节中对成员资格查询的限制。反例查询的数量保持不变。在反例查询之后,Schapire使用的算法有所不同。
在最高级别,Schapire力从Angluin的算法有额外的条件,对于一个封闭的(小号,ē ,牛逼)和各s ^ 1,S ^ 2 ∈ 小号,如果小号1 ≠ 小号2则[R o w (s 1)≠ r o w (s 2)。这保证了| S |也使得一致性Angluin算法的性能容易的去满足。为了确保这一点,他必须以不同的方式处理反例的结果。
给定一个反,Angluin简单地添加ž及其所有前缀小号。Schapire通过向E添加单个元素e来做一些更细微的事情。在Angluin的意义上,这个新的e将使(S ,E ,T )不被关闭,并且通过在S上引入至少一个新字符串,同时保持所有行都不同来进行更新以使其闭合。e的条件是:
其中是输出函数,q 0是初始状态,δ是真正的“未知” DFA的更新规则。。换句话说,ē必须作为一个见证未来区分小号从小号'一个。
为了弄清楚这个从ž我们做一个二进制搜索找出一个子[R 我这样ž = p 我[R 我和0 ≤ | p 我| = 我< | z | 使得我们的被推测机器的行为基于一个输入字符而有所不同。更具体地说,我们让小号我是对应于状态字符串按照我们猜想机达到p 我。我们使用二进制搜索(这是日志m来找到一个使得o (δ (q 0,s k r k))≠ o (δ (q 0,s k + 1 r k + 1)。换句话说,r k + 1区分两个指出我们猜想的机器发现等,因而满足该条件Ë,所以我们把它添加到Ë。
我不知道我的答案是否仍然有用。最近,已经描述了一种新算法的实现,该算法称为“观察包”,或者在某些情况下由Falk Howar实现。该算法类似于L *,但使用Rivest-Shapire或其他方法(请参见Steffen和Isberner)进行句柄反例分解;它使用一种数据结构,一个鉴别树(一个二叉树)来有效地进行“筛选”,即插入一个新状态的A转换(其中A是字母的每个符号),直到没有封闭为止。该算法有两个版本:根据是否将分解中建立的后缀添加到每个组件中(在该组件中添加后缀的比例),OneGlobally和OneLocally(算法的比率是,组件中的所有前缀都等于短前缀,并根据找到的后缀表示目标中的相同状态稍后,在一个新的反例中,发现了一个新的后缀,该后缀区分出同一组件的至少2个前缀(这导致该组件分成两个组件)。使用OneLocally,成员资格查询要少得多,但是当目标DFA较大时,等效查询的数量会急剧增加。而是,OneGlobally的成员资格查询数始终小于L *(但大于OneLocally),并且等效查询的数量与L *类似 后来有了一个新的反例,发现了一个新后缀,该后缀可以区分同一组件的至少2个前缀。这导致该组件分成两个组件)。使用OneLocally,成员资格查询要少得多,但是当目标DFA较大时,等效查询的数量会急剧增加。而是,OneGlobally的成员资格查询数始终小于L *(但大于OneLocally),并且等效查询的数量与L *类似 后来有了一个新的反例,发现了一个新后缀,该后缀可以区分同一组件的至少2个前缀。这导致该组件分成两个组件)。使用OneLocally,成员资格查询要少得多,但是当目标DFA较大时,等效查询的数量会急剧增加。而是,OneGlobally的成员资格查询数始终小于L *(但大于OneLocally),并且等效查询的数量与L *类似
我知道也存在另一种算法:TTT算法也比观察包更好,但我对此并不了解.TTT算法应该是最新技术