邻接矩阵:减少上限带宽

时间:2018-11-10 14:01:59

标签: algorithm matlab sorting graph-theory adjacency-matrix

我有向图的二进制邻接矩阵。现在,我想对其重新排序,以使对角线上方的元素数量以及与对角线的距离最小。

为您提供应用程序背景:我正在使用基于任务的设计结构矩阵。 例如,我有三个任务,A,B,C。这意味着我有A,B,C行,并因此有A,B,C列。现在,如果任务B需要任务A的输入,则元素(b ,a)为1,否则为0。

任务的顺序显示了任务执行的顺序。 因此,如果在任务B需要输入之前执行输入任务A,则该任务在对角线下方。如果它们在对角线上方(例如,如果A依赖于B的输入),则意味着将来会生成输入,这很不好。

要优化任务的顺序,矩阵应为较低的三角形矩阵,以便在需要输入之前生成输入。由于这通常是不可能的,因此最佳方法是减少对角线上方的对角线数量,并减少到对角线的距离。

对矩阵重新排序时,问题是行和列的顺序必须保持相同。因此,如果我将A行向下移动一排,我会自动需要将A列向左移动一列。

好吧,我用Google搜索并找到了Cuthill-Mckee算法,但是它仅适用于对称矩阵,并且由于我有向图,所以我的矩阵是不对称的,可能有对称项。

此外,Reid-Scott算法只是减小了整体带宽,因此对较低的带宽有不必要的限制。

基本上,我正在寻找一种算法,只是将上限带宽最小化,因为对角线以下的所有条目都无关紧要。

我希望我可以全面地提出我的问题。我不熟悉图论,也不学习数学或计算机科学,所以一个友好的提示会很不错。

非常感谢!

0 个答案:

没有答案