- #1

- 2

- 0

## Main Question or Discussion Point

When I have a matrix like this:

0 0 1 0

0 1 0 0

1 0 0 1

0 0 1 1

0 0 0 1

I can get most non zero values in the centre changing only the order of rows

1 0 0 1

0 1 0 0

0 0 1 0

0 0 1 1

0 0 0 1

Probably when I am allowed to change the order of columns and rows at the same time I will even get a better result, getting rid of the 1 in the top-right corner.

Is there an algorithm that can be used to optimise a n by m matrix, having most of its non zero values near its diagonal?

Background:

The columns are the different client orders, the rows the different articles. I like to divide the clients that require a simular set of articles in different groups. The real amount of clients is about 500, articles about 2500, so I need an algorithm that also works for larger matrices (calculation has to be made each day upfront).

Thanks,

Nasko

0 0 1 0

0 1 0 0

1 0 0 1

0 0 1 1

0 0 0 1

I can get most non zero values in the centre changing only the order of rows

1 0 0 1

0 1 0 0

0 0 1 0

0 0 1 1

0 0 0 1

Probably when I am allowed to change the order of columns and rows at the same time I will even get a better result, getting rid of the 1 in the top-right corner.

Is there an algorithm that can be used to optimise a n by m matrix, having most of its non zero values near its diagonal?

Background:

The columns are the different client orders, the rows the different articles. I like to divide the clients that require a simular set of articles in different groups. The real amount of clients is about 500, articles about 2500, so I need an algorithm that also works for larger matrices (calculation has to be made each day upfront).

Thanks,

Nasko