You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey, thanks for your interest! Applying the tools in SourceCodeMcCormick during initialization would be a good idea (and it would simplify things from a user perspective). Currently, the ParBB algorithm that uses SCMC-generated functions is built as an extension of the EAGO solver, which relies on JuMP. One potential future direction for SCMC is to automatically interpret the objective and constraints during initialization, as you said.
The main challenge, I think, is that solvers in general won't know how to handle SCMC functions. ParBB, for example, needed a custom parallelized branch-and-bound algorithm to realize any of the GPU benefits of SCMC. If the SCMC utilities were built into something like Optimization.jl during initialization, I imagine they would only be useful if EAGO with the ParBB extension were also incorporated. Without the parallelization aspect, it may be more efficient, currently, to use the McCormick.jl package for generating McCormick-based relaxations for deterministic global optimization purposes. Feel free to reply here or reach out to us via the PSORLab email ([email protected]) if you'd like to discuss further!
Hey, this is very cool and something I'd be very interested in supporting in Optimization.jl. I think something like https://github.com/Vaibhavdixit02/SymbolicAnalysis.jl/blob/main/src/canon.jl where the McMormick transformations get applied as rules in a pass during initialization of OptimizationCache from a OptimizationProblem would be really awesome https://github.com/SciML/OptimizationBase.jl/blob/ddbf374206c8f80ce0e6e6fcf31f4841e55cc886/src/cache.jl#L111-L134. Happy to flesh this out myself if you are onboard or if someone wants to do it I can help out. Look forward to your thoughts!
The text was updated successfully, but these errors were encountered: