You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+32-16
Original file line number
Diff line number
Diff line change
@@ -1,21 +1,25 @@
1
1
# Algorithm Configuration for the AIPlan4EU Unified Planning
2
2
3
-
Use algorithm configuration on several planners within the unified planning framework to enhance their performance. Development is conducted by the Decision and Operation Technologies group from Bielefeld University (https://github.com/DOTBielefeld).
3
+
Use algorithm configuration on several planners within the unified planning framework to enhance their performance. Find the documentation at (https://up-ac.readthedocs.io/en/latest/). Development is conducted by the Decision and Operation Technologies group from Bielefeld University (https://github.com/DOTBielefeld).
4
4
5
5
# Installation
6
6
7
-
At the moment an installation is only possible via
7
+
You need to first install Unified Planning before installing up_ac. It is highly recommended to use a separate virtual environment for up_ac.
8
+
9
+
## Unified Planning
10
+
11
+
This project was developed in Python 3.8.5. The integrated version of Unified Planning is 1.1.0.113.dev1. The easiest way to install Unified Planning with all available engines is via
If a planning engine which is integrated in this algorithm configuration extension is not available on your system, you can install it via
19
+
You can then install up_ac via
16
20
17
21
```
18
-
pip install --pre unified-planning[<engine_name>]
22
+
pip install up_ac
19
23
```
20
24
21
25
## Planning engines integrated in the algorithm configuration
@@ -33,7 +37,7 @@ It is possible to adjust the configuration space of each engine according to you
33
37
34
38
# Automated Algorithm Configuration methods
35
39
36
-
There are three methods currently integrated in this implementation. It is possible to integrate further algorithm configuration methods using the classes
40
+
There are four methods currently integrated in this implementation. It is possible to integrate further algorithm configuration methods using the classes
37
41
```
38
42
up_ac.configurators.Configurator
39
43
```
@@ -52,36 +56,47 @@ Smac can be installed via
52
56
pip install smac==2.0.1
53
57
```
54
58
55
-
. For further details refer to (https://automl.github.io/SMAC3/main/).
59
+
For further details refer to (https://automl.github.io/SMAC3/main/).
56
60
57
61
## Optano Algorithm Tuner (OAT)
58
62
59
-
To use OAT, run the following two functions after installation of up_ac.
63
+
To use OAT, run the following in Python after installation of up_ac.
60
64
61
65
```
62
-
up_ac.utils.download_OAT.get_OAT()
63
-
up_ac.utils.download_OAT.copy_call_engine_OAT()
66
+
from up_ac.utils.download_OAT import get_OAT, copy_call_engine_OAT
67
+
68
+
get_OAT()
69
+
copy_call_engine_OAT()
64
70
```
65
71
66
72
The first function generates a directory for OAT, downloads compiled code for OAT and saves it in the up_ac directory. The second function moves code to the OAT directory. Once you have run these functions, you do not need to run them again, except if you have removed the OAT directory.
67
73
68
74
To remove the OAT directory run:
69
75
70
76
```
71
-
up_ac.utils.download_OAT.delete_OAT()
77
+
from up_ac.utils.download_OAT import delete_OAT
78
+
79
+
delete_OAT()
72
80
```
73
81
74
82
For further details on OAT refer to (https://docs.optano.com/algorithm.tuner/current/).
75
83
76
84
## Irace
77
85
78
-
In order to use Irace you need to install R on your system. After that you need to install the R package for irace from the R console by:
86
+
In order to use Irace you need to have R on your system. You also need to install the R packages 'remotes' and 'irace' from the R console by:
87
+
88
+
```
89
+
install.packages("remotes")
90
+
remotes::install_version("irace", version = "3.5", repos = "https://cloud.r-project.org")
91
+
```
92
+
93
+
After that you need to leave the R terminal and install the Irace Python package via
The algorithm configuration implementation will then access irace via the python package rpy2.
99
+
It is the Irace version implemented in up_ac and secured on this account for that reason. The algorithm configuration implementation will then access irace via the python package rpy2.
85
100
86
101
For further details on Irace refer to (https://github.com/cran/irace) and the python implementation of irace (https://github.com/auto-optimization/iracepy).
87
102
@@ -90,10 +105,11 @@ For further details on Irace refer to (https://github.com/cran/irace) and the py
90
105
Selector can be installed via
91
106
92
107
```
108
+
pip install swig
93
109
pip install selector-ac
94
110
```
95
111
96
-
Selector is an ensemble-based automated algorithm configurator and incorporates functionalities and models from CPPL, GGA and SMAC. Since Selector is implemented with a different version of SMAC than the one used for the SMAC configurator in this library, you should use a separate environment/ virtual environment to configure planners with Selector. For further details on Selector refer to (https://github.com/dotbielefeld/selector).
112
+
Preinstalling swig may be necessary, depending on your Python interpreter. Selector is an ensemble-based automated algorithm configurator and incorporates functionalities and models from CPPL, GGA and SMAC. Since Selector is implemented with a different version of SMAC than the one used for the SMAC configurator in this library, you should use a separate environment/ virtual environment to configure planners with Selector. For further details on Selector refer to (https://github.com/dotbielefeld/selector).
For further details on Irace refer to the `irace GitHub <https://github.com/cran/irace>`_ and the `python implementation of irace <https://github.com/auto-optimization/iracepy>`_.
23
28
29
+
The algorithm configuration implementation will then access irace via the python package rpy2.
24
30
31
+
For further details on Irace refer to the `irace GitHub <https://github.com/cran/irace>`_ and the `python implementation of irace <https://github.com/auto-optimization/iracepy>`_.
25
32
26
33
27
34
.. automodule:: up_ac.Irace_configurator
@@ -38,10 +45,12 @@ The Optano algorithm tuner (OAT) executes tuning on optimization functions using
38
45
While it is able to run on a single computing node it also supports multiple workers.
39
46
Before being able to use OAT first execute the following code after having installed up-ac.
40
47
41
-
.. code-block:: bash
48
+
.. code-block:: python
49
+
50
+
from up_ac.utils.download_OAT import get_OAT, copy_call_engine_OAT, delete_OAT
42
51
43
-
up_ac.utils.download_OAT.get_OAT()
44
-
up_ac.utils.download_OAT.copy_call_engine_OAT()
52
+
get_OAT()
53
+
copy_call_engine_OAT()
45
54
46
55
47
56
The first function generates a directory for OAT, downloads compiled code for OAT and saves it in the up_ac directory.
@@ -50,9 +59,9 @@ Once you have run these functions, you do not need to run them again, except if
50
59
51
60
To remove the OAT directory run:
52
61
53
-
.. code-block:: bash
62
+
.. code-block:: python
54
63
55
-
up_ac.utils.download_OAT.delete_OAT()
64
+
delete_OAT()
56
65
57
66
For more details on OAT refer to `the documentation <https://docs.optano.com/algorithm.tuner/current/>`_.
It then uses an aggressive racing mechanism to efficiently compare configurations and iteratively refine the model, directing the search towards regions of the space where better configurations are likely to be found.
72
81
In the autoconfiguration Smac can also make use of instance features to improve the predictions.
73
82
83
+
You can install it via
84
+
85
+
.. code-block:: bash
86
+
87
+
pip install smac==2.0.1
88
+
89
+
74
90
For more details on SMAC refer to `the SMAC3 GitHub <https://automl.github.io/SMAC3/main/>`_.
75
91
92
+
76
93
.. automodule:: up_ac.Smac_configurator
77
94
:members:
78
95
@@ -88,6 +105,13 @@ Selector is an ensemble-based automated algorithm configurator. The current impl
88
105
89
106
For more details on Selector refer to `the Selector GitHub <https://github.com/dotbielefeld/selector>`_.
Copy file name to clipboardExpand all lines: engines.rst
+5-3
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@
3
3
Planning engines
4
4
==================
5
5
6
+
Except for Tamer and Pyperplan and anytime plan quality, you can configure all planning engines listed here for runtime, plan quality and anytime plan quality regarding your instance set.
7
+
6
8
LPG
7
9
---
8
10
**Support Features:**
@@ -44,15 +46,15 @@ EnhSP
44
46
45
47
- Optimality only assured for specific PDDL+ fragments (simple numeric planning problems)
46
48
47
-
symk
49
+
SymK
48
50
----
49
51
50
52
**Support Features:**
51
53
52
54
- State-of-the-art classical optimal and top-k planner based on symbolic search extending Fast Downward. It can find a single optimal plan or a set of k different best plans with the lowest cost for a given planning task.
53
55
- Supported in the Oneshot and Anytime Planners in both quality and runtime modes.
54
56
55
-
tamer
57
+
Tamer
56
58
------
57
59
58
60
Tamer is a temporal planner that supports temporal action-based problems.
@@ -62,7 +64,7 @@ Tamer is a temporal planner that supports temporal action-based problems.
62
64
- Supported in the Oneshot Planner in the runtime mode.
0 commit comments