ICA project
Apr. 4th, 2007 12:55 amThe ICA project has been going well... I've been naming my methods after papers, like csda05_Bmatrix() and jmlr06_Bmatrix().
So far it's been easy to implement row- and column-swapping heuristics.
But now I have to solve a linear assignment problem, in order to find the row-permutation that makes the diagonal as close as possible to 0. Now this problem is well-studied, and good algorithms are known, so I would feel bad about hacking something up.
There's a pretty big selection of algorithms to choose from. The one implemented by the authors is the Hungarian algorithm. Looking at it, it's 467 lines of Matlab. Arghhhh!
Maybe I'll just borrow someone else's Java code, e.g. this.
So far it's been easy to implement row- and column-swapping heuristics.
But now I have to solve a linear assignment problem, in order to find the row-permutation that makes the diagonal as close as possible to 0. Now this problem is well-studied, and good algorithms are known, so I would feel bad about hacking something up.
There's a pretty big selection of algorithms to choose from. The one implemented by the authors is the Hungarian algorithm. Looking at it, it's 467 lines of Matlab. Arghhhh!
Maybe I'll just borrow someone else's Java code, e.g. this.