Presentation

The S2ML+X Toolbox is a set of proof of concept tools, developed in Python. They do not aim at an industrial use. Rather, I am developing them for pedagogical and experimental purposes. For this reason, they may be not fully documented and they stand at different maturity level.

Each of these tools implements a modeling language of the S2ML+X family, i.e. consists of a base mathematical framework (the X) on top of which the set of object- and prototype-oriented constructs gathered in S2ML are provided, see (Batteux, Prosvirnova and Rauzy 2018) and (Rauzy and Haskins 2018) for in depth discussions. Each tool comes with its own dedicated assessment algorithms.

The documentation of tools consists in general of a presentation (slides). Examples are also provided.

Executing the tools of the S2ML+X Toolbox requires a Python environment. Normally, any Python environment is suitable. I am using the Anaconda as it is very complete and free of use.

Tools

As of today, the toolbox contains the following tools.

Janos (S2ML+DFE)

Base mathematical framework

The base mathematical framework of Janos consists of systems of stochastic, data-flow equations. Although apparently quite limited, this framework makes it possible to design quite a few interesting model. This said, Janos has been designed primarily for pedagogical purposes, i.e. as an introduction to modeling and Monte-Carlo simulation.

Assessment algorithms

The assessment algorithm of Janos is essentially a stochastic simulator.

Download

A zip archive containing the source code of the version 1.2.1 of Janos as well as its documentation and a bunch of examples can be downloaded here.

Reseda (S2ML+NET)

Base mathematical framework

The base mathematical framework of Reseda consists in hierarchical networks. A hierarchical network is made of a hierarchy of blocks, which are containers for nodes, edges and sub-blocks. Edges can be unidirectional or bidirectional. Nodes and edges can be associated with attributes describing their characteristics. Attributes are pairs made of a name and an expression.

Assessment algorithms

Reseda implements classical graph algorithms on the one hand, and some model-checking techniques on the other hand.

Graph algorithms are the following (see e.g. (Cormen & al, 2001) for a reference book).

Model-checking techniques are implemented via a set of primitives making it possible to calculate sets of nodes and edges. These primitives implement the following calculations.

Download

A zip archive containing the source code of the version 1.0.0 of Reseda as well as its documentation and a bunch of examples can be downloaded here.

Andrey (S2ML+MRK)

Base mathematical framework

Andrey implements (hierarchical) Markov chains, i.e. Markov chains with the possibility to group states and transitions into blocks. Both discrete-time Markov chains and continuous-time Markov chains can be solved.

Assessment algorithms

Andrey implements numerical algorithms to solve for Markov chains. The book by Stewart (Stewart, 1994) is the reference on these algorithms.

Download

A zip archive containing the source code of the version 1.0.0 of Andrey as well as its documentation and a bunch of examples can be downloaded here.

Emmy (S2ML+FDS)

Base mathematical framework

The base mathematical framework of Emmy consists of finite degradation structures. Finite degradation structures are a breakthrough in reliability theory I made in 2019 with my PhD student Liu Yang. (Rauzy and Yang, 2019a). They generalize the algebraic framework underlying the notion of minimal cutsets to multistate systems. Emmy is a calculation engine for the S2ML+FDS language. I developed this tool to check a number of research hypotheses. Unfortunately, I had no time so far to document this tool.

Assessment algorithms

The assessment algorithms of Emmy are implemented on top of decision diagram package. These algorithms are described in (Rauzy and Yang, 2019b).

Download

A zip archive containing the source code of the version 1.0.0 of Emmy as well as its documentation and a few examples can be downloaded here.

Scola (S2ML+Process Algebra)

Base mathematical framework

Scola stands for scenario-oriented language. Scola aims at supporting systems architecture studies by giving the system architect a mean to describe and to play scenarios. Scola is relatively close to the Business Processes Model and Notation (BPMN) formalism (White & Miers 2008), although simpler and more formal.

Assessment algorithms

Scola implements a simple step-by-step simulator (with a small graphical user interface).

Download

A zip archive containing the source code of the version 1.1.0 of Scola as well as its documentation and a bunch of examples can be downloaded here.

Sherlock

Base mathematical framework

Sherlock is a primitive solver for numerical constraint satisfaction problems, i.e. problems in which variables take their values into sets or ranges of integers. This presentation specifies the input language of Sherlock and presents the algorithms implemented by the tool. Sherlock is developed in Python, for pedagogical purposes only. Its efficiency is by orders of magnitude worse than those of available commercial tools. The objective is to familiarize students with constraint satisfaction problems as a modeling language.

Assessment algorithms

Sherlock implements several base algorithms to solve constraint satisfaction problems.

Download

A zip archive containing the source code of the version 1.0.1 of Sherlock as well as its documentation and a bunch of examples can be downloaded here.

Licensing

The tools of the S2ML+X toolbox are free software: you can redistribute it and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. They are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with each of the tool. If not, see here.

Documentation (and examples) associated with the tools of the S2ML+X toolbox are distributed under Creative Common License CC-BY-ND.

References

Contact

The S2ML+X Toolbox is developed by Prof. Antoine B. Rauzy.

Norwegian University of Science and Technology

Department of Mechanical and Industrial Engineering

Richard Birkelands vei 2B (Office P307)

7491 Trondheim, Norway

+47 918 97 151 (mobile phone)

Antoine.Rauzy@ntnu.no