Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DFA Minimizer (Hopcroft) Visualizer

Qt 6 Widgets desktop app to build a DFA interactively and visualize Hopcroft minimization step-by-step.

Build

Prerequisites

  • C++17 compiler
  • Qt 6 (Widgets, Core, Gui)
  • CMake >= 3.16

Windows (MSVC)

cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release

Run build\\Release\\DfaHopcroftVisualizer.exe.

Linux

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/DfaHopcroftVisualizer

Console smoke tests

./build/DfaHopcroftVisualizer --test

Usage

  • Left "Builder" dock: edit alphabet, add/delete states, add transition mode (click source then target, enter symbols), set start, toggle accept, complete with sink, view transitions and validation, import/export JSON.
  • Center canvas: drag states, rubber-band select, middle-mouse pan, Ctrl+wheel zoom, double-click state to rename, double-click edge to edit symbols.
  • Right "Hopcroft" dock: run minimization, step through timeline, view explanations, toggle minimized view.

JSON schema

{
  "alphabet": ["a","b"],
  "states": [
    {"id":"q0","start":true,"accept":false,"x":120,"y":200},
    {"id":"q1","start":false,"accept":true,"x":320,"y":200}
  ],
  "transitions": [
    {"from":"q0","symbol":"a","to":"q1"},
    {"from":"q0","symbol":"b","to":"q0"}
  ]
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages