Automata.Visualization
1.0.0
See the version list below for details.
dotnet add package Automata.Visualization --version 1.0.0
NuGet\Install-Package Automata.Visualization -Version 1.0.0
<PackageReference Include="Automata.Visualization" Version="1.0.0" />
paket add Automata.Visualization --version 1.0.0
#r "nuget: Automata.Visualization, 1.0.0"
// Install Automata.Visualization as a Cake Addin #addin nuget:?package=Automata.Visualization&version=1.0.0 // Install Automata.Visualization as a Cake Tool #tool nuget:?package=Automata.Visualization&version=1.0.0
Automata.Core - Core library (if you do not need visualization).
Automata.Visualization - Full library that also includes visualization and rendering of automata.
🔂 Automata: A lightweight library for Finite-State Automata
The Automata library provides functionality for working with finite-state automata.
⭐ Example Features:
- Create NFAs (Non-deterministic Finite Automata) from sequences or other data.
- Convert NFAs to DFAs (Deterministic Finite Automata).
- Minimize Automata to reduce states while preserving functionality.
📝 Source Code and Contributions
Find the source code and contribute on GitHub:
Automata GitHub Repository
🔨 Automata.Core - Core Library
The core library provides essential tools for finite-state automata operations. It offers a lightweight and clean solution without visualization features.
💡 C# Example: Create and Manipulate Automata
// Generate random symbol sequences (numbers as symbols in this example)
var sequences = Enumerable.Range(0, 10)
.Select(_ => Enumerable.Range(0, 8)
.Select(_ => Random.Shared.Next(4).ToString()));
// Create an empty NFA.
NFA nfa = new NFA();
// Add all sequences to the NFA
nfa.AddAll(sequences);
// Determinize the NFA to a DFA
DFA dfa = nfa.ToDFA();
// Minimize the DFA
DFA minDFA = dfa.Minimized();
🖼️ Automata.Visualization: Automata.Core + Visualization
The Automata.Visualization library extends the core Automata functionality with visualization capabilities, powered by MSAGL (Microsoft Automatic Graph Library).
🔑 Key Features:
- Visualize automata as graphs.
- Includes all core Automata functionality.
💡 C# Full example program: Automata Visualization
using Automata.Visualization;
// Creates the main console window.
ConsoleWindow consoleWindow = ConsoleWindow.Create();
// Write some colored text output to the console window
consoleWindow.WriteLine("Creating graph...", System.Drawing.Color.Blue);
//Create some random sequences
var sequences = Enumerable.Range(0, 10).Select(_ => Enumerable.Range(0, 8).Select(_ => Random.Shared.Next(4).ToString()));
// Create and display a minimized graph object from the sequences
var graph = GraphFactory.CreateGraph(sequences, minimize: true);
// Open a new non-modal window that displays the graph in it.
consoleWindow.ShowGraph(graph);
// Write some more colored text output to the console window
consoleWindow.WriteLine("Graph created.", System.Drawing.Color.Green);
📦 NuGet Package releases on Nuget.org
🔧 NuGet Installation
Install the packages via the .NET CLI or Package Manager in Visual Studio.
Automata.Core
dotnet add package Automata.Core
Automata.Visualization
dotnet add package Automata.Visualization
💻 Target Framework Compatibility
- Automata.Core: .NET 9.0 and later
- Automata.Visualization: .NET 9.0 and later
🔗 Dependencies
Automata.Core:
- None
Automata.Visualization:
-
These dependencies will be automatically installed when you install
Automata.Visualization
via NuGet.
📜 License
This project is licensed under the MIT License.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0-windows7.0 is compatible. |
-
net9.0-windows7.0
- Automata.Core (>= 1.0.0)
- Microsoft.Msagl.GraphViewerGDI (>= 1.1.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.