Docstrings
NonconvexTOBS.TOBSAlg — Type
TOBSAlg()Topology optimization of binary structures (TOBS), a sequential-linearization heuristic for binary nonlinear programs. Each iteration linearizes the objective and the inequality constraints around the current design and solves the resulting binary linear program (a MILP, via TOBSOptions' optimizer) under a move limit; infeasible subproblems trigger a feasibility-restoration phase. All variables must have bounds 0 and 1. Equality constraints are not supported.
NonconvexTOBS.TOBSOptions — Type
TOBSOptions(; kwargs...)Options of the TOBSAlg heuristic:
movelimit: maximum move limit per iteration as a fraction of the number of variables (at mostmovelimit * nvariables may flip). Default0.1.pastN: number of past iterations used for the moving average of the objective history. Default20.convParam: convergence tolerance on the moving average of the relative objective change over the lastpastNiterations. Default0.001.constrRelax: constraint relaxation applied to the linearized constraints (a violated constraint must remove a fraction1 - constrRelaxof its violation each iteration). Default0.9.timeLimit: time limit (seconds) of each MILP solve. Default1.0.optimizer: the JuMP optimizer type used for the MILP subproblems. DefaultHiGHS.Optimizer.maxiter: maximum number of outer iterations. Default200.timeStable: average the objective gradient with the previous iteration's gradient (time-stability filter) whentrue. Defaulttrue.relaxDecay: geometric factor shrinking an inflatedmovelimit/constrRelaxback toward their defaults after successful steps. Default0.9.maxInfeasible: consecutive infeasible subproblems before switching to the feasibility-restoration phase. Default5.