What (deterministic) global optimization packages support trigonometric functions such as $\sin, \cos, \tan$ in the constraints or objective function? What limitations do they have?
I am not asking about heuristic or metaheuristic algorithms.
Operations Research Stack Exchange is a question and answer site for operations research and analytics professionals, educators, and students. It only takes a minute to sign up.
Sign up to join this communitySCIP does not currently support any trigonometric functions as of this post from May 2018.
COUENNE appears to handle $\sin$ and $\cos$ expressions.
ANTIGONE appears to not support any trigonometric functions as of 2013.
BARON states in the manual to not support any trigonometric functions in March 2019.
LINDOGLOBAL supports cos, sin, tan, cosh, sinh, tanh, arccos, arcsin, arctan.
COCONUT and MINOTAUR: no information found yet.
Here is an option for MATLAB users which is not mentioned in any other answers.
YALMIP's BMIBNB iI a global branch and bound solver https://yalmip.github.io/solver/bmibnb/. It is used in combination with (i.e., calls) a MILP solver (such as CPLEX, GUROBI, SCIP, MOSEK) and a "call back" for evaluation continuous variable local optimization solver (such as FMINCON, KNITRO, IPOPT, SNOPT, FILTERSD) as an upper solver. It can then handle most functions in MATLAB, as well as integer variables.
It can be combined with SDP solvers as upper solver, including in principle with a nonlinear SDP solver such as PENLAB as upper solver. That provides a capability not available in any other global solver I am aware of, to globally optimize non-convex nonlinear semidefinite-constrained optimization problems; and may be mixed integer-constrained as well.
Here's a made up stupid example
sdpvar x; % declare x to be a continuous variable
intvar y; % declare y to be an integer variable
Constraints = [x+y >= 2,-5 <= x <= 5,-4 <=y <= 7];
Objective = atan(sin(x+y))+x^2-y^2 +4*sin(y^3) % some nonsense with trig functions
options = sdpsettings('solver','bmibnb','bmibnb.uppersolver','fmincon');
optimize(Constraints,Objective,options) % solve the problem
The key limitation is that BMIBNB was developed by one person with limited time devoted, as opposed to much larger scale development efforts for other solvers. Also, it may run out of time or memory, and it is only as good as the solvers it calls for subproblems. If used with an unreliable MILP solver, it may give erroneous results. Really badly scaled or ill-conditioned problems can cause screw ups.
All variables must be explicitly bounded, i.e., finite box constraints are required.
From the presentation given by Vigerske, S. (2015), it is noted that the solvers Couenne by P. Belotti and LindoAPI by Y. Lin and L. Schrage can handle trigonometric expressions. Both are deterministic global optimisation solvers for MINLP.
Reference
[1] Vigerske, S. (2015). MINLP - Global Solvers. Available from: http://co-at-work.zib.de/files/stefan_minlp.pdf.
Octeract Engine (the solver I develop), is a deterministic global MINLP solver that supports all trigonometric functions (including hyperbolic functions).