UltraDES 2.2.5.3
dotnet add package UltraDES --version 2.2.5.3
NuGet\Install-Package UltraDES -Version 2.2.5.3
<PackageReference Include="UltraDES" Version="2.2.5.3" />
<PackageVersion Include="UltraDES" Version="2.2.5.3" />
<PackageReference Include="UltraDES" />
paket add UltraDES --version 2.2.5.3
#r "nuget: UltraDES, 2.2.5.3"
#:package UltraDES@2.2.5.3
#addin nuget:?package=UltraDES&version=2.2.5.3
#tool nuget:?package=UltraDES&version=2.2.5.3

UltraDES
UltraDES is a library for modeling, analysis and control of Discrete Event Systems. It has been developed at LACSED | UFMG.
Before using UltraDES
Requirements:
- Supported OS: Windows, MAC OS or Linux (Mono or .Net Core).
- Your computer must have a C# capable IDE (Visual Studio, VSCode, LinqPad, etc.).
- Download the latest version of UltraDES (https://github.com/lacsed/UltraDES.git), by clicking on Clone or Download and then Download Zip ou use the UltraDES Nuget package.
First steps
- Extract all the files of the zip or tar.gz file in your working directory.
- Double click on the UltraDES.sln file.
- Congratulations, you are ready to use UltraDES!
What is inside
Initially you are going to find four projects in the Solution Explorer:
- Other examples
- Test - Modular Supervisor
- Test - Monolithic Supervisor
- UltraDES (non executable)
To read the codes, click on the file .cs inside each project.
How to run the projects
- Before running the code, you need to set the project as Startup Project.
- On Solution Explorer select the project you want to run.
- On the menu Project, select Set as Startup Project - Project>Set as Startup Project.
- To run the code, click on Debug menu - Debug>Start Debugging.
Creating a new project on Visual Studio
- On the menu File, select New > Project.
- On the New Project window:
- Select Visual C# > Console App (.NET Framework).
- Give your project a name.
- The location of your project should be the same as the other UltraDES projects.
- In the Solution field, choose Add to Solution.
- Click on OK to create your project.
- Remember to set your project as Startup Project (see How to run the projects).
- Congratulations, you just created your project!
Inside your project
- In the Solution Explorer, double click on your project.
- Inside your project, right click on the item References>Add Reference...
- On the Reference Manager window, select Projects>Solution and select UltraDES.
- Click Ok to close the window.
- To write your code, click on the file .cs inside your project.
- On the .cs file of your project, add the UltraDES library in the header (
using UltraDES;).
In your main function, add the code below to create and see your first Automaton.
Creating States
State s1 = new State("s1", Marking.Marked);
State s2 = new State("s2", Marking.Unmarked);
Creating Events
Event e1 = new Event("e1", Controllability.Controllable);
Event e2 = new Event("e2", Controllability.Uncontrollable);
Event e3 = new Event("e3", Controllability.Controllable);
Event e4 = new Event("e4", Controllability.Uncontrollable);
Creating Transitions
var t = new Transition(s1, e1, s2);
Creating an Automaton
var G1 = new DeterministicFiniteAutomaton(new[]
{
new Transition(s1, e1, s2),
new Transition(s2, e2, s1)
}, s1, "G1");
var G2 = new DeterministicFiniteAutomaton(new[]
{
new Transition(s1, e3, s2),
new Transition(s2, e4, s1)
}, s1, "G2");
Operations with Automata
Making a Parallel composition
var Gp = G1.ParallelCompositionWith(G2);
Showing the Automaton
G.ShowAutomaton("G");
Other examples
For more examples on how to create more complex automata or how to use the methods, read the other projects.
Try UltraDES
Research
If you use UltraDES in your paper, please cite using:
@article{UltraDES2017,
title={UltraDES-A Library for Modeling, Analysis and Control of Discrete Event Systems},
author={Alves, Lucas V. R. and Martins, Lucas R. R. and Pena, Patrícia N.},
journal = {Proceedings of the 20th World Congress of the International Federation of Automatic Control},
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.Bcl.AsyncInterfaces (>= 8.0.0)
- Microsoft.Bcl.HashCode (>= 1.1.1)
- Newtonsoft.Json (>= 13.0.3)
- System.Numerics.Vectors (>= 4.6.0)
- System.Text.Encoding.CodePages (>= 8.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on UltraDES:
| Package | Downloads |
|---|---|
|
PlanningDES
A set of interfaces, classes and functions to facilitate the creation of production planning algorithms using UltraDES |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.2.5.3 | 5 | 8/11/2026 |
| 2.2.5.1 | 345 | 2/1/2025 |
| 2.2.4 | 502 | 5/17/2024 |
| 2.2.3 | 994 | 3/15/2021 |
| 2.2.1 | 644 | 10/27/2020 |
| 2.2.0 | 737 | 7/31/2020 |
| 2.1.5 | 756 | 7/29/2020 |
| 2.1.4.1 | 709 | 6/29/2020 |
| 2.1.3.2 | 700 | 6/18/2020 |
| 2.1.3 | 1,235 | 4/28/2020 |
| 2.1.2.3 | 879 | 8/27/2019 |
| 2.1.2.1 | 962 | 5/2/2019 |
| 2.1.2 | 887 | 4/23/2019 |
| 2.1.1.3 | 1,066 | 9/27/2018 |
- Bug fixes