AutoMinimizer is an interactive visualization tool designed to simplify the process of Deterministic Finite Automata (DFA) minimization. The tool provides a step-by-step visual guide to the DFA minimization process using the Myhill-Nerode Theorem, making it easier for students and professionals to understand and apply the concepts of automata theory.
- Interactive DFA Visualization: Visualize the DFA before and after minimization.
- Step-by-Step Minimization: Follow the Myhill-Nerode Theorem's steps to minimize the DFA.
- State Management: Add, remove, and modify states and transitions.
- Import/Export: Import and export DFA configurations in
.altformat. - Resizable Panels: Adjust the layout to focus on either the state table, DFA graph, or minimization process.
To run AutoMinimizer locally, follow these steps:
-
Clone the repository:
git clone https://github.com/yam-1111/AutoMinimizer.git cd AutoMinimizer -
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173to view the application.
- Define the Alphabet: Enter the alphabet symbols separated by commas in the "Alphabet (Σ)" input field.
- Add States: Use the "Add State" button to add new states to the DFA.
- Set State Types: Use the dropdown menu to set the type of each state (Start, Transition, Final, or Start+Final).
- Define Transitions: For each state, define transitions for each symbol in the alphabet.
- Minimize the DFA: Use the "Next Iteration" button in the Myhill-Nerode Visualizer to step through the minimization process.
- Export/Import: Save your DFA configuration using the "Export" button or load a previously saved configuration using the "Import" button.
- React: A JavaScript library for building user interfaces.
- TypeScript: A typed superset of JavaScript that compiles to plain JavaScript.
- Tailwind CSS: A utility-first CSS framework for rapidly building custom user interfaces.
- Vite: A fast build tool for modern web development.
- Shadcn/ui: A collection of reusable components for building user interfaces.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Polytechnic University of the Philippines for supporting this project.
- Myhill-Nerode Theorem for providing the theoretical foundation for DFA minimization.
- React and Tailwind CSS for making the development of this tool efficient and enjoyable.
For any questions or feedback, please reach out to:
AutoMinimizer - Simplifying DFA Minimization through Visualization.