toqito icon indicating copy to clipboard operation
toqito copied to clipboard

Compute the nonnegative rank of a nonnegative matrix

Open vprusso opened this issue 1 year ago • 10 comments

The nonnegative rank of a matrix, $A$, is defined as the smallest integer $k$ such that there exists nonnegative matrices $L$ and $R$ where $L$ is a $n \times k$ matrix and where $R$ is a $k \times m$ matrix such that $A = LR$.

https://core.ac.uk/download/pdf/82127902.pdf

vprusso avatar Jul 02 '24 15:07 vprusso

Please assign this issue to me.

sahilsingh2402 avatar Mar 06 '25 16:03 sahilsingh2402

Hey! Greetings @vprusso I think I can attempt solving this issue. Please assign me this.

GauravR-Malik avatar Mar 22 '25 13:03 GauravR-Malik

@GauravR-Malik Same as my other comment, someone is already working on this issue.

https://github.com/vprusso/toqito/issues/652#issuecomment-2745294220

purva-thakre avatar Mar 22 '25 14:03 purva-thakre

@GauravR-Malik Same as my other comment, someone is already working on this issue.

#652 (comment)

Sure. Didn't look at the time of commenting!

GauravR-Malik avatar Mar 22 '25 14:03 GauravR-Malik

@sahilsingh2402 Are you still interested in tackling this issue?

vprusso avatar Mar 26 '25 01:03 vprusso

Yes, I am working on this.

sahilsingh2402 avatar Mar 26 '25 01:03 sahilsingh2402

Hey @vprusso @purva-thakre, are there any existing functions in Toqito that I could use to implement this, or would it be better to build it from scratch? Also, would it be appropriate to use sklearn.decomposition.NMF for this task?

https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.NMF.html

sahilsingh2402 avatar Mar 26 '25 03:03 sahilsingh2402

Hi @sahilsingh2402

are there any existing functions in Toqito that I could use to implement this, or would it be better to build it from scratch?

No, the point of this feature is to create a function that implements this. Maybe I'm confused by your question?

Also, would it be appropriate to use sklearn.decomposition.NMF for this task?

I don't see how this is related. The most relevant resource that describes how to implement this is already in the description of this issue.

vprusso avatar Mar 26 '25 11:03 vprusso

This repository might be useful: here. It implements several iter-solvers that were developed after the base paper mentioned earlier and are claimed to be more efficient.

RajdeepAher avatar Mar 31 '25 08:03 RajdeepAher

This repository might be useful: here. It implements several iter-solvers that were developed after the base paper mentioned earlier and are claimed to be more efficient.

Good find, yep that may be quite useful for not just this task but likey some others as well. Cool, I hadn't stumbled on that before. Thanks for mentioning that!

vprusso avatar Mar 31 '25 11:03 vprusso