UltraDES 2.2.5.2
dotnet add package UltraDES --version 2.2.5.2
NuGet\Install-Package UltraDES -Version 2.2.5.2
<PackageReference Include="UltraDES" Version="2.2.5.2" />
<PackageVersion Include="UltraDES" Version="2.2.5.2" />
<PackageReference Include="UltraDES" />
paket add UltraDES --version 2.2.5.2
#r "nuget: UltraDES, 2.2.5.2"
#:package UltraDES@2.2.5.2
#addin nuget:?package=UltraDES&version=2.2.5.2
#tool nuget:?package=UltraDES&version=2.2.5.2
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
<a href="https://github.com/lacsed/UltraDES-Python"><img src="https://img.shields.io/static/v1?label=Go%20to&message=UltraDES%20Python&color=orange&style=for-the-badge"></a> </br> <a href="https://lacsed.github.io/UltraDES/"><img src="https://img.shields.io/static/v1?label=Go%20to&message=UltraDES%20Online&color=purple&style=for-the-badge"></a>
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},
pages={5831--5836},
year={2017},
}
| 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.2 | 96 | 7/12/2026 |
| 2.2.5.1 | 338 | 2/1/2025 |
| 2.2.4 | 497 | 5/17/2024 |
| 2.2.3 | 988 | 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 | 708 | 6/29/2020 |
| 2.1.3.2 | 700 | 6/18/2020 |
| 2.1.3 | 1,235 | 4/28/2020 |
| 2.1.2.3 | 878 | 8/27/2019 |
| 2.1.2.1 | 962 | 5/2/2019 |
| 2.1.2 | 886 | 4/23/2019 |
| 2.1.1.3 | 1,066 | 9/27/2018 |
- Some improvements and bug fixes