Skip to main content

dfa_minimize

Function dfa_minimize 

Source
pub fn dfa_minimize(dfa: &Dfa) -> Dfa
Expand description

Minimize a DFA via partition refinement (Hopcroft’s algorithm).

The returned DFA is the unique minimal equivalent; state ids are renumbered so that the start state is 0.

§Examples

use vyre_std::pattern::{regex_to_nfa::regex_to_nfa, nfa_to_dfa::nfa_to_dfa, dfa_minimize::dfa_minimize};

let nfa = regex_to_nfa("a|aa").unwrap();
let dfa = nfa_to_dfa(&nfa).unwrap();
let minimized = dfa_minimize(&dfa);
assert!(minimized.state_count <= dfa.state_count);