This question is about the TTT algorithm for blackbox automata inference as defined in [1] and [2]. I am finding it difficult to understand all the innovations made by the algorithm. I understand how
- Discrimination tree is important in pairwise distinguishing of states (as opposed to observation table approach)
- I understand the necessity of finding the shortest suffix from the counter example, and how binary search (and exponential back-off) works for identifying such a suffix quickly compared to linear search
- I also understand the prefix transformation, which can reduce the long prefix from the counter example (what remains after finding the shortest suffix) to the smallest prefix supported by the learned automata.
However,
(a) I am finding it difficult to understand the intuition behind discriminator finalization. Is it the idea that a counter example may contain more than one novel state, and we can find such novel states by searching from the right most end of the counter example, at each point where the learned DFA and the blackbox differ? (b) Is there any other innovation I am missing? (c) Are there any better performing algorithms out there for DFA learning? I am familiar with L# and variants [3], and ADT [4], but the performance seems roughly on par with TTT? (Fig 4)[3] and [5].
Finally, it seems the biggest jump in terms of performance so far has been the discrimination tree. Is this correct? Looking at Table 5.2 of [2], the performance of OP, KV and TTT are roughly in the same ballpark.
[1]: The TTT algorithm: a redundancy-free approach to active automata learning
[2]: Foundations of Active Automata Learning: An Algorithmic Perspective
[3]: A New Approach for Active Automata Learning Based on Apartness
[4]: Active Automata Learning with Adaptive Distinguishing Sequences
[5]: Benchmarking Combinations of Learning and Testing Algorithms for Automata Learning