solve_proxy

compas_cem.optimization.solve_proxy(topology, constraints, parameters, algorithm, iters, eps=1e-06, kappa=1e-08, tmax=100, eta=1e-06)[source]

Solve a constrained form-finding problem through a Proxy hyperspace tunnel.

Parameters:
  • topology (compas_cem.diagrams.TopologyDiagram) – A topology diagram.

  • constraints (list) – A list with the constraints to optimize for.

  • parameters (list) – A list of optimization parameters.

  • algorithm (str, optional) – The name of the gradient-based local optimization algorithm to use. Only the following local gradient-based optimization algorithms are supported:

    • SLSQP: Sequential Least Squares Programming

    • LBFGS: Low-Storage Broyden-Fletcher-Goldfarb-Shanno

    • MMA: Method of Moving Asymptotes

    • TNEWTON: Preconditioned Truncated Newton

    • AUGLAG: Augmented Lagrangian

    • VAR: Limited-Memory Variable-Metric Algorithm

    Defaults to “SLSQP”. Refer to the NLopt documentation for more details on their theoretical underpinnings.

  • iters (int, optional) – The maximum number of iterations to run the optimization algorithm for. Defaults to 100.

  • eps (float, optional) – The convergence threshold for the output value of the objective function. Defaults to 1e-6.

  • kappa (float, optional) – The convergence threshold for the norm of the gradient of the objective function. Defaults to 1e-8.

  • tmax (int, optional) – The maximum number of iterations the CEM form-finding algorithm will run for. If eta is hit first, the form-finding algorithm will stop early. Defaults to 100.

  • eta (float, optional) – The numerical converge threshold of the CEM form-finding algorithm. If tmax is hit first, the form-finding algorithm will stop early. Defaults to 1e-6.

Returns:

  • topology (compas_cem.diagrams.TopologyDiagram) – The topology diagram with optimal parameters as found by the optimization algorithm.

  • form (compas_cem.diagrams.FormDiagram) – The constrained form diagram.

  • objective (float) – The final value of the objective function.

  • grad_norm (float) – The cummulative norm of the gradients.

  • iters (int) – The elapsed number of iterations.

  • duration (float) – The total optimization time in milliseconds.

  • status (str) – The final status of the optimization problem as per NLOpt.