diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 4dcf374..6d18914 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -37,8 +37,7 @@ jobs:
python -m pip install --upgrade pip setuptools
pip install -r requirements-tests.txt
pip install -r requirements-assignment.txt
- pip install -r requirements-hebo.txt
pip install -e .[arch_sbo,botorch,trieste,tpe,rocket,egor]
- name: Test with pytest
- run: pytest sb_arch_opt --durations=0
+ run: pytest -v sb_arch_opt --durations=10
diff --git a/.github/workflows/tests_basic.yml b/.github/workflows/tests_basic.yml
index 17f100e..5a2da98 100644
--- a/.github/workflows/tests_basic.yml
+++ b/.github/workflows/tests_basic.yml
@@ -49,4 +49,4 @@ jobs:
run: echo "${{ steps.license_check_report.outputs.report }}"
- name: Test with pytest
- run: pytest sb_arch_opt --durations=0
+ run: pytest -v sb_arch_opt --durations=10
diff --git a/.github/workflows/tests_slow.yml b/.github/workflows/tests_slow.yml
index 6652ca4..0285819 100644
--- a/.github/workflows/tests_slow.yml
+++ b/.github/workflows/tests_slow.yml
@@ -34,7 +34,6 @@ jobs:
python -m pip install --upgrade pip setuptools
pip install -r requirements-tests.txt
pip install -r requirements-assignment.txt
- pip install -r requirements-hebo.txt
pip install -r requirements-ota.txt
pip install -e .[arch_sbo,botorch,trieste,tpe,rocket,egor]
pip install jupyter ipython ipykernel
@@ -54,4 +53,4 @@ jobs:
run: echo "${{ steps.license_check_report.outputs.report }}"
- name: Test with pytest
- run: RUN_SLOW_TESTS=1 pytest sb_arch_opt --durations=0
+ run: RUN_SLOW_TESTS=1 pytest -v sb_arch_opt --durations=20
diff --git a/README.md b/README.md
index ede9731..afe576f 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+![SBArchOpt Logo](https://github.com/jbussemaker/SBArchOpt/blob/main/docs/logo.svg)
+
# SBArchOpt: Surrogate-Based Architecture Optimization
[![Tests](https://github.com/jbussemaker/SBArchOpt/workflows/Tests/badge.svg)](https://github.com/jbussemaker/SBArchOpt/actions/workflows/tests.yml?query=workflow%3ATests)
diff --git a/docs/algo/hebo.md b/docs/algo/hebo.md
index 3e85a88..2637827 100644
--- a/docs/algo/hebo.md
+++ b/docs/algo/hebo.md
@@ -12,7 +12,7 @@ Artificial Intelligence Research, 74, pp.1269-1349, DOI: [10.1613/jair.1.13643](
## Installation
```
-pip install -r requirements-hebo.txt
+pip install sb-arch-opt[hebo]
```
## Usage
diff --git a/docs/icon.png b/docs/icon.png
new file mode 100644
index 0000000..3d6c428
Binary files /dev/null and b/docs/icon.png differ
diff --git a/docs/index.md b/docs/index.md
index ef5b15d..2b530c2 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,3 +1,5 @@
+![SBArchOpt Logo](logo.svg)
+
# SBArchOpt: Surrogate-Based Architecture Optimization
SBArchOpt (es-bee-ARK-opt) provides a set of classes and interfaces for applying Surrogate-Based Optimization (SBO)
@@ -25,6 +27,23 @@ The library provides:
- Connectors to various external SBO libraries
- Analytical and realistic test problems that exhibit one or more of the architecture optimization challenges
+## Installation
+
+First, create a conda environment (skip if you already have one):
+```
+conda create --name opt python=3.9
+conda activate opt
+```
+
+Then install the package:
+```
+conda install numpy
+pip install sb-arch-opt
+```
+
+Note: there are optional dependencies for the connected optimization frameworks and test problems.
+Refer to their documentation for dedicated installation instructions.
+
## Citing
If you use SBArchOpt in your work, please cite it:
diff --git a/docs/logo.svg b/docs/logo.svg
new file mode 100644
index 0000000..778ccec
--- /dev/null
+++ b/docs/logo.svg
@@ -0,0 +1,75 @@
+
+
+
+
diff --git a/docs/overrides/partials/copyright.html b/docs/overrides/partials/copyright.html
new file mode 100644
index 0000000..a1179ce
--- /dev/null
+++ b/docs/overrides/partials/copyright.html
@@ -0,0 +1,8 @@
+
+
+ {% if config.copyright %}
+
+ {{ config.copyright }}
+
+ {% endif %}
+
diff --git a/docs/style.css b/docs/style.css
new file mode 100644
index 0000000..5be27f1
--- /dev/null
+++ b/docs/style.css
@@ -0,0 +1,3 @@
+:root {
+ --md-primary-fg-color: #330a5e;
+}
\ No newline at end of file
diff --git a/docs/tutorial.ipynb b/docs/tutorial.ipynb
index 748b117..c321837 100644
--- a/docs/tutorial.ipynb
+++ b/docs/tutorial.ipynb
@@ -2,6 +2,12 @@
"cells": [
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
+ },
"source": [
"# SBArchOpt Tutorial\n",
"\n",
@@ -23,31 +29,43 @@
"4. Implement your own optimization problem\n",
"\n",
"Note: a \"seed\" argument is used to get reproducible results when randomization is involved. This is useful for tutorials and testing, however should be avoided when using in production (i.e. when solving real problems)!"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
+ },
"source": [
"### Simple Example: Evolutionary Algorithm (NSGA2)\n",
"\n",
"The code below shows a simple example of solving an architecture optimization problem using NSGA2, a multi-objective evolutionary algorithm.\n",
"Continue with the rest of the tutorial for mode background information."
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "code",
"execution_count": 5,
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2023-07-24T08:14:54.968960400Z",
+ "start_time": "2023-07-24T08:14:54.642961100Z"
+ },
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
+ },
"outputs": [
{
"data": {
- "text/plain": "