# Bilinear Matrix Inequalities (BMIs)

**URL:** <https://discourse.julialang.org/t/bilinear-matrix-inequalities-bmis/6717>\
**Category:** Optimization (Mathematical)\
**Created:** [October 27, 2017, 10:17am UTC](https://discourse.julialang.org/t/bilinear-matrix-inequalities-bmis/6717 "2017-10-27T10:17:39Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [October 27, 2017, 10:17am UTC](https://discourse.julialang.org/t/bilinear-matrix-inequalities-bmis/6717/1 "2017-10-27T10:17:39Z")

</div>

With the [new design of the interface used in JuliaOpt](https://discourse.julialang.org/t/mathoptinterface-and-upcoming-breaking-changes-in-jump-0-19/4874), it is now possible to formulate BMIs in JuMP. There exists several BMI solver in Matlab (e.g. [BMIsolver](https://set.kuleuven.be/optec/Software/bmisolver-a-matlab-package-for-solving-optimization-problems-with-bmi-constraints)) but I am not aware of any existing in Julia. I am currently in need of a good BMI solver in Julia. Is there anyone working on one ?  
**NOTE** : There is [BilinearJuMP](https://github.com/IainNZ/BilinearJuMP.jl) which is related.

---

<div class="post-metadata">

**Author:** ![tkoolen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkoolen/32/1603_2.png) [@tkoolen](https://discourse.julialang.org/u/tkoolen)\
**Post date:** [October 27, 2017, 4:26pm UTC](https://discourse.julialang.org/t/bilinear-matrix-inequalities-bmis/6717/2 "2017-10-27T16:26:19Z")

</div>

I implemented the approach from [this paper](https://www.researchgate.net/profile/Masayoshi_Tomizuka/publication/3912474_Rank_minimization_approach_for_solving_BMI_problems_with_random_search/links/0deec521ff5eabc849000000.pdf) once in Matlab, but I don’t currently have any plans to port that code to Julia. It’s not that hard to implement though. It worked alright, not great (I’ve never had great luck with BMI solvers in general).

I think it would be nice to have something like [BMIBNB](https://yalmip.github.io/solver/bmibnb/), the branch-and-bound ‘super-solver’ (in the sense that it internally uses other existing solvers) from Yalmip in Julia.
