backtojuan / AutomatonProgram

Interactive application for finding connected and minimum automaton given an automaton.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Scope


This application allows you to create a finite automaton of different types (Mealy and Moore) and from them calculate its connected or minimum automaton.


Instructions


  1. Clone this repository into your eclipse work-space.

  2. Import this repository into your eclipse IDE.

  3. Run program from main

  4. Once it is open, the GUI will be shown with the following elements:

    generalView(1)

    generalView(2)

    generalView(3)

    On screen you can see different tabs. The "Automaton" tab presents an interactive form where it is listed all necessary fields to create an automaton, add states and add transitions. The "Connected resume" tab presents the resultant connected automaton given the one it was created previously on the "Automaton" tab. The "Minimum resume" tab presents the resultant minimum automaton given the one it was created previously on the "Automaton" tab.

    When you decide it is time to close the application you must click the "door out" icon.

  5. Let's start by creating an automaton:

    createAutomaton(1)

    createAutomaton(2)

    createAutomaton(3)

    createAutomaton(4)

    In the first section, you must need to select if your automaton is either a "Mealy" or "Moore" one. Then you need to specify the alphabet set for the automaton, on the alphabet field you need to enter each symbol of the alphabet separated with a comma. Then you need to specify how many states and how many transitions the automaton contains. If everything is right you can click on the button "start" to start adding states.

  6. To add states:

    addState(1)

    addState(2)

    addState(3)

    In the second section, you must need to enter the name or identifier of the state and if the case that your automaton is a moore one you will have to enter the ouput symbol associated with that state. If everything is right you can click on the button "add" to add the state. Once you have entered all your states you will not have the opportunity to enter more than the number that you specified In the automaton section.

  7. To add transitions:

    addTransition(1)

    addTransition(2)

    In the third section, you must need to enter the input of the transition, and specify from which state the transition goes and to which one it ends after processing the input symbol. In the case that the automaton is a mealy one you will need to specify the output symbol associated with that transition. (Remember the input/output symbol must match with the symbols of the alphabet that you specified in the first section when creating the automata). If everything is right you can click on the button "add" to add the transition. Once you have entered all your transitions you will not have the opportunity to enter more than the number that you specified In the automaton section.

  8. To generate the connected automaton:

    connectedAutomaton(1)

    connectedAutomaton(2)

    To generate the connected automaton, you just need to press the button "Generate Connected Automaton" once done, on the

    connected tab you will see the resume of the automaton.

  9. To generate the minimum automaton:

    minimumAutomaton(1)

    minimumAutomaton(2)

    To generate the minimum automaton, you just need to press the button "Generate Minimum Automaton" once done, on the connected tab you will see the resume of the automaton.

  10. To start with a new automaton:

    addNewAutomaton(1)

    addNewAutomaton(2)

    Once you added you have created your automaton, added your states, added your transitions and obtained either the connected automaton or the minimum one you can choose if you want to add a new automaton, the "Add a new automaton" button will help you with this, resetting the form to repeat the process again starting with step 5.

About

Interactive application for finding connected and minimum automaton given an automaton.


Languages

Language:Java 98.2%Language:CSS 1.8%