我正在寻找Python模块或代码以将不对称矩阵置换为三角形形式

时间:2019-03-13 07:04:29

标签: python-3.x matrix permutation symmetric triangular

我有一个不对称矩阵。

    A   B   C   D
A   0   0   1   0
B   1   0   0   1
C   0   0   0   0
D   1   1   1   0

我正在尝试将行和列切换为三角形。

赞:

    C   A   D   B
C   0   1   1   0
A   0   0   1   1
D   0   0   0   1
B   0   0   1   0

有人提供了一些由VBA制作并在Microsoft Excel中使用的代码。根据那些代码中的注释,我发现了由Fortran撰写的1978年发表的论文(“算法529:置换为块三角形式。”)。我还发现了一篇论文(Tarjan算法对矩阵的块三角化的实现),可以描述这一概念。

我看着numpy,但是没有找到这样的功能。我想知道某些软件包中是否有现成的模块来完成此过程。非常感谢。

1 个答案:

答案 0 :(得分:0)

顺便说一句,我在示例中没有看到三角矩阵。

问题是NP-complete,因此您可以生成行和列的所有排列,直到达到三角矩阵为止。 (或尝试从链接的文章中实现算法)


记录的文章名称

Obtaining a Triangular Matrix by Independent Row-Column Permutations
Guillaume Fertin, Irena Rusu, Stéphane Vialette