Skip to content

factors() factorizes not recognized strings #26

@sunyixu

Description

@sunyixu

The method produces the factorization of strings that are not recognized by the automaton.
Not sure if it was purposely intended to work this way.
Example:

HashSet<State> statesR = new HashSet<>();
        HashSet<Transition> deltaR = new HashSet<>();
        State q00 = new State("q0", true, false);
        State q1 = new State("q1", false, false);
        State q2 = new State("q2", false, false);
        State q3 = new State("q3", false, false);
        statesR.add(q00);
        statesR.add(q1);
        statesR.add(q2);
        statesR.add(q3);
        deltaR.add(new Transition(q00, q1, "b"));
        deltaR.add(new Transition(q1, q2, "u"));
        deltaR.add(new Transition(q2, q3, "g"));
        FA result = new FA(new Automaton(deltaR, statesR));

        System.out.println("factorization --> " + Automaton.factors(result.getAutomaton()));

The above println prints "(((((bug + bu) + b) + g) + (ug + u)) + ε)" even though "bug" is not actually a string of the language of the automaton.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions