我有一个不对称矩阵。
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,但是没有找到这样的功能。我想知道某些软件包中是否有现成的模块来完成此过程。非常感谢。
答案 0 :(得分:0)
顺便说一句,我在示例中没有看到三角矩阵。
问题是NP-complete,因此您可以生成行和列的所有排列,直到达到三角矩阵为止。 (或尝试从链接的文章中实现算法)
记录的文章名称
Obtaining a Triangular Matrix by Independent Row-Column Permutations
Guillaume Fertin, Irena Rusu, Stéphane Vialette