x3cflux.run_multi_optimization

class x3cflux.run_multi_optimization(simulator, starting_points: ndarray, bounds: Dict[str, Tuple[float, float]] = None, num_procs: int = -1, **kwargs)

Run multi-start parallel optimization from given starting points.

Optimization uses the interior point optimizer ipopt and its Python interface cyipopt. ipopt can be configured by passing the appropriate kwargs. See A. Wächter and L. T. Biegler (2006), https://link.springer.com/article/10.1007/s10107-004-0559-y.

Parameters:
  • simulator – Labeling simulator to evaluate the SSR and its gradient

  • starting_points – Starting point/initial guess of metabolic parameters. Shape has to be (N, M) with N being the number of metabolic parameters and M being the number of multi-starts

  • bounds – Parameter boundary constraints

  • num_procs – Number of parallel workers. If the value is below one, the number of workers is set to the number of available CPU’s.

  • kwargs – Pass ipopt options as kwargs. See https://coin-or.github.io/Ipopt/OPTIONS.html

Returns:

Matrix of optimal parameters and vector of SSR values at each local optimum