# Boolean matrix factorization in julia?

**URL:** https://discourse.julialang.org/t/boolean-matrix-factorization-in-julia/38668
**Category:** Numerics
**Created:** [May 3, 2020, 12:01pm UTC](https://discourse.julialang.org/t/boolean-matrix-factorization-in-julia/38668 "2020-05-03T12:01:52Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Ken-B](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken-b/32/1780_2.png) [@Ken-B](https://discourse.julialang.org/u/Ken-B)
#### Post date: [May 3, 2020, 12:01pm UTC](https://discourse.julialang.org/t/boolean-matrix-factorization-in-julia/38668/1 "2020-05-03T12:01:52Z")

</div>

Anyone know of a package that can do Boolean Matrix Factorization (BMF) in julia?

Basically for a boolean matrix A {m x n} and a rank k, find boolean matrix X {m x k} and boolean matrix Y {k x n} such that A = X \* Y (approximately). Apparently this is NP hard.

I’ve tried LowRankModels.jl, but it always returns real-valued X,Y.

Thanks!

---

<div class="post-metadata">

### Author: ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)
#### Post date: [May 3, 2020, 1:56pm UTC](https://discourse.julialang.org/t/boolean-matrix-factorization-in-julia/38668/2 "2020-05-03T13:56:42Z")

</div>

I think you can just code this in JuMP using constraints?

---

<div class="post-metadata">

### Author: ![Ken-B](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken-b/32/1780_2.png) [@Ken-B](https://discourse.julialang.org/u/Ken-B)
#### Post date: [May 3, 2020, 9:29pm UTC](https://discourse.julialang.org/t/boolean-matrix-factorization-in-julia/38668/3 "2020-05-03T21:29:10Z")

</div>

There exist specialized algorithms for BMF, but indeed, it didn’t occur to me to just write it up in JuMP. Thanks for the tip!
