Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 1 addition & 22 deletions docs/_templates/sidebar/scroll-end.html
Original file line number Diff line number Diff line change
@@ -1,22 +1 @@
{%- set _versions = versions | default([]) -%}
{%- set _current = current_version | default({'name': version}) -%}

{%- if _versions %}
<div class="sidebar-tree">
<p class="caption" role="heading">
<span class="caption-text">Version</span>
</p>
<label for="version-selector" class="visually-hidden">Version</label>
<select
id="version-selector"
onchange="if (this.value) window.location.href = this.value;"
style="width: 100%;"
>
{%- for item in _versions %}
<option value="{{ item.url }}" {% if item.name == _current.name %}selected{% endif %}>
{{ item.name }}
</option>
{%- endfor %}
</select>
</div>
{%- endif %}
{# Version selector moved to scroll-start.html (top of sidebar). #}
38 changes: 38 additions & 0 deletions docs/_templates/sidebar/scroll-start.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{%- set _versions = versions | default([]) -%}
{%- set _current = current_version | default({'name': version}) -%}
{%- set _docs_base = '/BLADE' -%}

{%- if _versions %}
<div class="sidebar-tree">
<p class="caption" role="heading">
<span class="caption-text">Version</span>
</p>
<label for="version-selector" class="visually-hidden">Version</label>
<select
id="version-selector"
style="width: 100%;"
onchange="
if (!this.value) return;
const target = this.value;
if (/^https?:\/\//.test(target)) {
window.location.href = target;
} else if (target.startsWith('{{ _docs_base }}/')) {
window.location.href = target;
} else if (target.startsWith('/')) {
window.location.href = '{{ _docs_base }}' + target;
Comment on lines +21 to +22
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve generated version URLs without forcing /BLADE

The new redirect logic rewrites every root-relative version URL to '/BLADE' + target, which breaks navigation whenever docs are served from a different base path (for example local http.server previews or a custom-domain Pages root). In those environments selecting a version now sends users to a non-existent /BLADE/... path instead of the URL produced by sphinx-multiversion, so version switching regresses outside this single deployment layout.

Useful? React with 👍 / 👎.

} else {
window.location.href = '{{ _docs_base }}/' + target;
}
"
>
{%- for item in _versions %}
<option
value="{{ item.url }}"
{% if item.name == _current.name %}selected{% endif %}
>
{{ item.name }}
</option>
{%- endfor %}
</select>
</div>
{%- endif %}
95 changes: 84 additions & 11 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,9 @@ BLADE

**BLADE** is a Python framework for benchmarking the Llm Assisted Design and Evolution of algorithms.
**BLADE** (Benchmark suite for LLM-driven Automated Design and Evolution) provides a standardized benchmark suite for evaluating automatic algorithm design algorithms, particularly those generating metaheuristics by large language models (LLMs).
It focuses on **continuous black-box optimization** and integrates a diverse set of **problems** and **methods**, facilitating fair and comprehensive benchmarking.
It focuses on **heuristic optimization** and integrates a diverse set of **problems** and **methods**, facilitating fair and comprehensive benchmarking.


🔥 News
--------

- 2025.03 ✨✨ **iohblade v0.0.1 released**!


Features
--------

Documentation Guide
-------------------

Expand Down Expand Up @@ -88,8 +79,90 @@ BLADE incorporates several benchmark function sets to provide a comprehensive ev
- A collection of 1,000 pre-defined instances from the GECCO MA-BBOB competition, evaluating algorithm performance on diverse affine-combined functions. `Reference <https://iohprofiler.github.io/competitions>`_
- 1,000
- Yes
* - **HLP** (High-Level Properties)
- Generated benchmarks guided by high-level property combinations (e.g., separable, multimodality).
- Generator-Based
- Yes

In addition, several real-world applications are included, such as several photonics problems.
In addition, several real-world applications are included.

Real World Benchmarks
---------------------

.. list-table::
:header-rows: 1
:widths: 30 70

* - Name
- Description
* - **Analysis**
-
* - Auto-Correlation 1
- Minimise ``max(g) / I^2`` for non-negative signals under fixed discretisation of ``[-1/4, 1/4]``.
* - Auto-Correlation 2
- Maximise ``L_2^2 / (L_1 · L_∞)`` for non-negative signals using discrete auto-convolution.
* - Auto-Correlation 3
- Minimise ``max(||g||) / I^2`` for real-valued signals with non-zero integral.
* - **AutoML**
-
* - AutoML Pipelines
- Generate and evaluate machine learning pipelines using scikit-learn.
* - **Combinatorics**
-
* - Erdős Minimum-Overlap Problem
- Minimise the suprenum overlap integral between complementary measurable functions.
* - Euclidean Steiner Tree Problem
- Minimise ``MST(points + Steiner points) / MST(points)`` ratio by adding optimal Steiner nodes.
* - Graph Colouring Problem
- Minimise the number of colours needed to colour graph nodes so adjacent nodes never share a colour.
* - **Fourier**
-
* - Fourier Uncertainty Inequality
- Minimise uncertainty bound for functions of form ``P(x)e^{-πx²}`` under Hermite constraints.
* - **Geometry**
-
* - Heilbronn (Unit Triangle)
- Maximise the area of the smallest triangle formed by 11 points in a unit-area triangle.
* - Heilbronn (Unit Convex Region)
- Maximise the area of the smallest triangle formed by 13-14 points in a unit-area convex region.
* - Kissing Number (11D)
- Maximise number of integer vectors satisfying high-dimensional kissing constraints.
* - Min/Max Distance Ratio
- Minimise squared ratio of maximum to minimum pairwise distances (2D/3D variants).
* - Spherical Code
- Maximise the minimum pairwise angle among 30 points on a unit sphere.
* - **Kernel Tuner**
-
* - Kernel Tuning Benchmark
- Evaluate metaheuristics for hardware kernel optimisation under constraints.
* - **Logistics**
-
* - Travelling Salesman Problem
- Minimise total tour distance visiting each 2D point exactly once.
* - Vehicle Routing Problem
- Minimise total travel distance for capacitated vehicles serving weighted customers.
* - **Matrix Multiplication via Tensor Decomposition**
-
* - Tensor CP Factorisation
- Find smallest CP rank enabling exact matrix multiplication under quantised factors.
* - **Number Theory**
-
* - Sums vs Differences
- Maximise ``c(U)`` measuring imbalance between sumsets and difference sets.
* - **Packing**
-
* - Circle Packing
- Maximise total packed circle area inside a circular container without overlap.
* - Hexagonal Packing
- Minimise area of smallest enclosing hexagon containing disjoint regular hexagons.
* - Rectangle Packing
- Pack disjoint circles inside a fixed-perimeter rectangle under containment constraints.
* - Unit Square Packing
- Pack disjoint circles inside a unit square while satisfying non-overlap constraints.

These benchmarks are provided with ready-to-run instances in
``run_benchmarks/``, while reusable benchmark definitions are organized under
``iohblade/benchmarks`` by domain.

Included Search Methods
-----------------------
Expand Down