Skip to content

Commit b3325d9

Browse files
committed
Refactor Egor configuration
* Create EgorConfig * Add configure method to Egor builders
1 parent 33d23c0 commit b3325d9

File tree

9 files changed

+523
-722
lines changed

9 files changed

+523
-722
lines changed

ego/examples/ackley.rs

+8-5
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,15 @@ fn ackley(x: &ArrayView2<f64>) -> Array2<f64> {
1414
fn main() {
1515
let xlimits = array![[-32.768, 32.768], [-32.768, 32.768], [-32.768, 32.768]];
1616
let res = EgorBuilder::optimize(ackley)
17+
.configure(|config| {
18+
config
19+
.regression_spec(RegressionSpec::CONSTANT)
20+
.correlation_spec(CorrelationSpec::ABSOLUTEEXPONENTIAL)
21+
.infill_strategy(InfillStrategy::WB2S)
22+
.n_iter(200)
23+
.target(5e-1)
24+
})
1725
.min_within(&xlimits)
18-
.regression_spec(RegressionSpec::CONSTANT)
19-
.correlation_spec(CorrelationSpec::ABSOLUTEEXPONENTIAL)
20-
.infill_strategy(InfillStrategy::WB2S)
21-
.n_iter(200)
22-
.target(5e-1)
2326
.run()
2427
.expect("Minimize failure");
2528
println!("Ackley minimum y = {} at x = {}", res.y_opt, res.x_opt);

ego/examples/mopta08.rs

+15-12
Original file line numberDiff line numberDiff line change
@@ -262,19 +262,22 @@ fn main() -> anyhow::Result<()> {
262262
xlimits.column_mut(1).assign(&Array1::ones(dim));
263263

264264
let res = EgorBuilder::optimize(mopta_func(dim))
265+
.configure(|config| {
266+
config
267+
.n_cstr(N_CSTR)
268+
.cstr_tol(&cstr_tol)
269+
.n_clusters(1)
270+
.n_start(50)
271+
.n_doe(n_doe)
272+
.n_iter(n_iter)
273+
.regression_spec(RegressionSpec::CONSTANT)
274+
.correlation_spec(CorrelationSpec::SQUAREDEXPONENTIAL)
275+
.infill_optimizer(InfillOptimizer::Slsqp)
276+
.kpls_dim(kpls_dim)
277+
.outdir(outdir)
278+
.hot_start(true)
279+
})
265280
.min_within(&xlimits)
266-
.n_cstr(N_CSTR)
267-
.cstr_tol(&cstr_tol)
268-
.n_clusters(1)
269-
.n_start(50)
270-
.n_doe(n_doe)
271-
.n_iter(n_iter)
272-
.regression_spec(RegressionSpec::CONSTANT)
273-
.correlation_spec(CorrelationSpec::SQUAREDEXPONENTIAL)
274-
.infill_optimizer(InfillOptimizer::Slsqp)
275-
.kpls_dim(kpls_dim)
276-
.outdir(outdir)
277-
.hot_start(true)
278281
.run()
279282
.expect("Minimize failure");
280283
println!(

ego/examples/rosenbrock.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ fn rosenbrock(x: &ArrayView2<f64>) -> Array2<f64> {
1919
fn main() {
2020
let xlimits = array![[-2., 2.], [-2., 2.]];
2121
let res = EgorBuilder::optimize(rosenbrock)
22+
.configure(|config| config.n_iter(100).target(1e-2))
2223
.min_within(&xlimits)
23-
.n_iter(100)
24-
.target(1e-2)
2524
.run()
2625
.expect("Minimize failure");
2726
println!("Rosenbrock minimum y = {} at x = {}", res.y_opt, res.x_opt);

0 commit comments

Comments
 (0)