dtControl logo


Represent controllers as decision trees. Improve memory footprint, boost explainability while preserving guarantees.



In this video, we provide a quick setup guide for dtControl. Hereby, we recommend downloading dtControl from the Python Package Index (PyPI). Before installing, we recommend creating a virtual environment so that dependencies of dtControl do not conflict with any other packages already installed on your local system. However, we describe all necessary steps within this video.

Get Experiments

In case you don't have any controller files on your local machine, this video demonstrates how to download our commonly used controller files. The same controller files are used throughout our tutorial series can be found in our repository.

Add and Run Experiments

Once the setup process is completed, this video shows how to add and run single experiments to dtControl. The controller file used throughout this video can be found here. However, before actually uploading the controller to dtControl, make sure it is unzipped as shown in the previous video "Get Experiments".

Algebraic Predicates

As shown in our recent paper, it is possible to derive algebraic predicates from domain knowledge for the cruise-control model. Hereby, we were able to construct a decision tree representing the whole permissive controller for the cruise-control model with 11 nodes. This video demonstrates how to enter those algebraic predicates, which can be found here (Appendix A.1).

Inspect Result

Once the result of an experiment is available, this video demonstrates all available features to inspect and understand the resulting decision tree.

Edit Result

In case one might not be 100% satisfied with the obtained result, this video exemplifies how to edit and reconstruct parts of the resulting decision tree. Hereby, we demonstrate the interactive tree builder, as well as the retrain-from-node feature.

Simulate Result

This video provides a quick introduction to our simulation mode, in which one can simulate a run of the system under the control of the decision tree and visualize the decisions made. The system dynamics file used throughout this video, can be found here.