Skip to content

Commit eb7d11c

Browse files
committed
Manage LHS optim failure due to bad surrogate
1 parent 6df24d4 commit eb7d11c

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

ego/src/lhs_optimizer.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use egobox_doe::{Lhs, LhsKind, SamplingMethod};
33
use ndarray::{Array1, Array2, Axis, Zip};
44
use ndarray_rand::rand::{Rng, SeedableRng};
55
use rand_xoshiro::Xoshiro256Plus;
6-
use rayon::prelude::*;
6+
//use rayon::prelude::*;
77

88
#[cfg(not(feature = "blas"))]
99
use linfa_linalg::norm::*;
@@ -114,9 +114,17 @@ impl<'a, R: Rng + Clone + Sync + Send> LhsOptimizer<'a, R> {
114114
})
115115
.collect();
116116
let values = Array1::from_vec(vals.iter().map(|(_, y, _)| *y).collect());
117-
let index_min = values
118-
.argmin()
119-
.unwrap_or_else(|err| panic!("Cannot find min in {}: {:?}", values, err));
117+
let index_min = values.argmin().unwrap_or_else(|err| {
118+
log::error!(
119+
"LHS optimization failed! Cannot find minimum in {} (Error: {})",
120+
values,
121+
err
122+
);
123+
if values.is_empty() {
124+
log::info!("No valid value maybe due to ill-formed surrogate models");
125+
}
126+
panic!("Optimization Aborted!")
127+
});
120128
(
121129
true,
122130
vals[index_min].0.to_owned(),
@@ -142,7 +150,6 @@ impl<'a, R: Rng + Clone + Sync + Send> LhsOptimizer<'a, R> {
142150

143151
// Make n_start optim
144152
let x_optims = (0..self.n_start)
145-
.into_par_iter()
146153
.map(|_| self.find_lhs_min(lhs.clone()))
147154
.collect::<Vec<_>>();
148155

0 commit comments

Comments
 (0)