Skip to content

Commit d848861

Browse files
committed
add line breaks and change key features
1 parent b596e45 commit d848861

File tree

1 file changed

+36
-12
lines changed

1 file changed

+36
-12
lines changed

README.md

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Designed for researchers benchmarking new optimization algorithms, practitioners
5858
<a href="https://github.com/sponsors/SimonBlanke"><img src="https://img.shields.io/badge/Sponsor-EA4AAA?style=flat-square&logo=githubsponsors&logoColor=white" alt="Sponsor"></a>
5959
</p>
6060

61-
---
61+
<br>
6262

6363
## Installation
6464

@@ -84,15 +84,15 @@ pip install surfaces[full] # All optional features
8484

8585
</details>
8686

87-
---
87+
<br>
8888

8989
## Key Features
9090

91-
| [**30+ Algebraic Functions**](#algebraic-functions)<br><sub>Classic benchmarks from optimization literature: Sphere, Rastrigin, Ackley, Rosenbrock, and more.</sub> | [**ML Hyperparameter Surfaces**](#machine-learning-functions)<br><sub>Real hyperparameter optimization landscapes using scikit-learn models with cross-validation.</sub> | [**Engineering Problems**](#engineering-functions)<br><sub>Constrained optimization from engineering literature: welded beams, pressure vessels, spring design.</sub> |
91+
| [**30+ Algebraic Test Functions**](#algebraic-functions)<br><sub>Classic benchmarks from optimization literature: Sphere, Rastrigin, Ackley, Rosenbrock, and more.</sub> | [**ML Hyperparameter Test Functions**](#machine-learning-functions)<br><sub>Real hyperparameter optimization problems using scikit-learn models with cross-validation.</sub> | [**Constrained Engineering Test Functions**](#engineering-functions)<br><sub>Constrained optimization from engineering literature: welded beams, pressure vessels, spring design.</sub> |
9292
| :--- | :--- | :--- |
93-
| [**Function Modifiers**](#using-modifiers)<br><sub>Add noise, delays, or transformations to any function. Simulate real-world conditions.</sub> | [**BBOB and CEC Suites**](#benchmark-suites)<br><sub>Industry-standard benchmark suites used in optimization competitions.</sub> | [**Optimizer Integration**](#integration-with-optimizers)<br><sub>Works with any optimizer that accepts a callable and search space.</sub> |
93+
| [**Surrogate Models**](#surrogate-models)<br><sub>Pre-trained neural networks for fast ML test function evaluation. 100-1000x faster with realistic characteristics.</sub> | [**BBOB and CEC Suites**](#benchmark-suites)<br><sub>Standard academic benchmark suites used in optimization competitions.</sub> | [**Optimizer Integration**](#integration-with-optimizers)<br><sub>Works with Optuna, Ray Tune, scipy, Gradient-Free-Optimizers and any optimizer that accepts a callable.</sub> |
9494

95-
---
95+
<br>
9696

9797
## Quick Start
9898

@@ -121,7 +121,7 @@ Value: -0.35
121121
Optimum: {'x0': 0.0, 'x1': 0.0, 'x2': 0.0}
122122
```
123123

124-
---
124+
<br>
125125

126126
## Core Concepts
127127

@@ -155,7 +155,7 @@ Optimum: {'x0': 0.0, 'x1': 0.0, 'x2': 0.0}
155155

156156
**Optimizer**: Any algorithm that can call the function with parameters from the search space.
157157

158-
---
158+
<br>
159159

160160
## Examples
161161

@@ -263,6 +263,30 @@ print(f"Noisy: {noisy_result:.4f}, True: {true_value:.4f}")
263263

264264
<br>
265265

266+
<details>
267+
<summary><b>Surrogate Models</b></summary>
268+
269+
```python
270+
from surfaces.test_functions.machine_learning import KNeighborsClassifierFunction
271+
272+
# Real evaluation (slow but accurate)
273+
func_real = KNeighborsClassifierFunction(dataset="digits", cv=5, use_surrogate=False)
274+
275+
# Surrogate evaluation (1000x faster)
276+
func_fast = KNeighborsClassifierFunction(dataset="digits", cv=5, use_surrogate=True)
277+
278+
# Same interface, dramatically different speed
279+
result_real = func_real({"n_neighbors": 5, "algorithm": "auto"}) # ~100ms
280+
result_fast = func_fast({"n_neighbors": 5, "algorithm": "auto"}) # ~0.1ms
281+
282+
# Surrogates capture realistic ML landscape characteristics:
283+
# multi-modality, hyperparameter interactions, plateaus
284+
```
285+
286+
</details>
287+
288+
<br>
289+
266290
<details>
267291
<summary><b>Benchmark Suites</b></summary>
268292

@@ -334,7 +358,7 @@ opt.search(func, n_iter=50)
334358

335359
</details>
336360

337-
---
361+
<br>
338362

339363
## Ecosystem
340364

@@ -346,7 +370,7 @@ This library is part of a suite of optimization tools. For updates, [follow on G
346370
| [Gradient-Free-Optimizers](https://github.com/SimonBlanke/Gradient-Free-Optimizers) | Core optimization algorithms for black-box function optimization |
347371
| [Surfaces](https://github.com/SimonBlanke/Surfaces) | Test functions and benchmark surfaces for optimization algorithm evaluation |
348372

349-
---
373+
<br>
350374

351375
## Documentation
352376

@@ -357,7 +381,7 @@ This library is part of a suite of optimization tools. For updates, [follow on G
357381
| [Examples](https://github.com/SimonBlanke/Surfaces#examples) | Code examples for common use cases |
358382
| [GitHub Issues](https://github.com/SimonBlanke/Surfaces/issues) | Bug reports and feature requests |
359383

360-
---
384+
<br>
361385

362386
## Contributing
363387

@@ -367,7 +391,7 @@ Contributions welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
367391
- **Feature requests**: [GitHub Discussions](https://github.com/SimonBlanke/Surfaces/discussions)
368392
- **Questions**: [GitHub Issues](https://github.com/SimonBlanke/Surfaces/issues)
369393

370-
---
394+
<br>
371395

372396
## Citation
373397

@@ -383,7 +407,7 @@ If you use this software in your research, please cite:
383407
}
384408
```
385409

386-
---
410+
<br>
387411

388412
## License
389413

0 commit comments

Comments
 (0)