  Nonconvex mixed-integer nonlinear programs (MINLPs) represent a challenging
class of optimization problems that often arise in engineering and scientific
applications. Because of nonconvexities, these programs are typically solved
with global optimization algorithms, which have limited scalability. However,
nonlinear branch-and-bound has recently been shown to be an effective heuristic
for quickly finding high-quality solutions to large-scale nonconvex MINLPs,
such as those arising in infrastructure network optimization. This work
proposes Juniper, a Julia-based open-source solver for nonlinear
branch-and-bound. Leveraging the high-level Julia programming language makes it
easy to modify Juniper's algorithm and explore extensions, such as branching
heuristics, feasibility pumps, and parallelization. Detailed numerical
experiments demonstrate that the initial release of Juniper is comparable with
other nonlinear branch-and-bound solvers, such as Bonmin, Minotaur, and Knitro,
illustrating that Juniper provides a strong foundation for further exploration
in utilizing nonlinear branch-and-bound algorithms as heuristics for nonconvex
MINLPs.
