A small tool which can convert automatically synthesised formally verified controllers into concise decision trees.
Project description
########################################################################## dtControl: Decision Tree Learning Algorithms for Controller Representation ##########################################################################
System requirements
To run dtControl, you need Python 3.6.8 or higher with several other libraries which are automatically installed if installing with the python-based pip
package manager. We have tested the installation and basic functionality on Ubuntu Linux, MacOS Catalina and Windows 10.
Installing dtControl on your machine
For most users, running the following command should install the latest version of dtControl, as long as you have Python 3.6.8 or newer and pip
installed on your system::
$ pip install dtcontrol
Note that in case you have both Python 2 as well as Python 3 installed, you might have to run python3 -m pip install dtcontrol
.
Manual Installation
Note: In case of difficulty when following any of the instructions in this section, please check the section 'Common Installation Issues' below
-
Make sure you have
python3.6.8
(or newer) andpip3
.On Ubuntu 16.10 or newer::
$ sudo apt-get install python3.6 python3-pip
On MacOS::
$ brew install python3
On Windows, you could, for example install Python 3 and
pip
viaChocolatey <https://docs.python-guide.org/starting/install3/win/>
_. -
Use a virtual environment to make sure that the installation is clean and easy, and does not interfere with any other python packages installed in your system. Create a new folder
dtcontrol
and create a virtual environment inside it and activate the virtual environment::$ mkdir dtcontrol $ cd dtcontrol $ python3 -m venv venv $ source venv/bin/activate
Run
python
and verify that the displayed version is greater than 3.6.8. PressCtrl+D
to exit the python console again. -
With the virtual environment activated, run::
$ pip install dtcontrol
This should install dtControl and all its dependencies. Try running dtControl by typing dtControl in the console. It should print the help text.
Uninstallation You can delete the dtcontrol
folder created above to delete all traces of dtcontrol as well as its dependencies.
Common Installation Issues
- If
sudo apt-get install python3.6
does not work, thisaskubuntu answer <https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get)>
_ might help you. - In case of errors when trying to run
virtualenv
, check that it is located in a directory that is included in your path; thisstackoverflow answer <https://stackoverflow.com/questions/31133050/virtualenv-command-not-found>
_ might be relevant. - If you don't see what went wrong, leave the virtual environment (run "deactivate"), delete the folder
rm -rf ~/dtcontrol-venv
and go through all the installation steps again. If errors still occur, pleaseraise an issue <https://gitlab.lrz.de/i7/dtcontrol/-/issues/new?issue%5Bassignee_id%5D=&issue%5Bmilestone_id%5D=>
_ orcontact us <https://dtcontrol.model.in.tum.de>
_.
Running the experiments
This section assumes you have installed dtControl so that upon entering dtControl in your command line, the help text is displayed. Additionally it assumes that you have unzip-ed all examples in ./dtcontrol/examples
. If you installed dtControl via pip
and you do not have the examples folder, you can download dtControl examples <https://gitlab.lrz.de/i7/dtcontrol/-/archive/master/dtcontrol-master.zip?path=examples>
_ and extract them into ./dtcontrol/examples
.
To execute a single algorithm on a single model, run a command like::
$ dtcontrol --input ./dtcontrol/examples/cartpole.scs --use-preset maxfreq --timeout 30m
If run successfully, this should create a benchmark.html
file displaying the results of the current run. It should also create a decision_trees
folder containing the output (DOT and C files) decision trees.
We have pre-defined a few preset methods, which can be listed using::
$ dtcontrol preset --list
Run dtcontrol preset --sample
or see the manual <https://dtcontrol.readthedocs.io>
_ for details on how to pick and mix your own presets.
Other commands can be found by running::
$ dtcontrol --help
Reading the output
To get an overview of the results, the file benchmark.html
is created in the directory from which you call dtControl. You can open it in any browser.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for dtcontrol-1.11.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b043fca98f2bcaaeb2f349aa4b84603547286ad9cc4d828bda6bc7080812d39 |
|
MD5 | 1739348e6184d8f0528de698ed0784c6 |
|
BLAKE2b-256 | 7f2e99d7a4461162b3538433391769610c33993b8fef1c8e928b36b9b7f55062 |