public static <I> DFACacheOracle<I> createDAGPCCacheOracle(Alphabet<I> alphabet,
                                                               MembershipOracle<I, Boolean> delegate) {
        return new DFACacheOracle<>(new IncrementalPCDFADAGBuilder<>(alphabet), delegate);
    }
public static < I > DFACacheOracle < I > createDAGPCCacheOracle ( Alphabet < I > alphabet , MembershipOracle < I , Boolean > delegate ) { return new DFACacheOracle < > ( new IncrementalPCDFADAGBuilder < > ( alphabet ) , delegate ) ; }
Creates a prefix-closed cache oracle for a DFA learning setup, using a DAG for internal cache organization.

@param alphabet
the alphabet containing the symbols of possible queries
@param delegate
the oracle to delegate queries to, in case of a cache-miss.
@param <I>
input symbol type

@return the cached {@link DFACacheOracle}.

@see IncrementalPCDFADAGBuilder