matlab马科维茨代码QMD算法
这是用于商最小度算法(QMD)的健壮Matlab代码。
在数值分析中,最小度算法是用于在应用Cholesky分解之前对对称稀疏矩阵的行和列进行置换的算法,以减少Cholesky因子中的非零数。
最小度算法经常用在有限元方法中,其中只能根据网格的拓扑而不是偏微分方程中的系数来进行节点的重新排序,从而在使用相同的网格来节省效率时各种系数值。
QMD算法的上限严格为O(n²m)。
语境
找到最佳排序的问题是一个NP完全问题,因此很棘手,因此改用启发式方法。
最小度算法是从Markowitz于1959年首次提出的用于解决非对称线性规划问题的方法中衍生出来的,下面将对此进行粗略地描述。
在高斯消除的每个步骤中,都执行行和列置换,以使枢轴行和列中偏离对角非零的数量最小。
Tinow和Walker在1967年描述了一种对称形式的Markowitz方法,Rose后来又推导了该图的图形理论形式,其中仅模拟了因式分解,这被称为最小度算法。
当存在相同程度的选择时,这种算法的一个关键方面是突破打破策略。
输入和输出
perm
:
the
output
permutatio
2022-08-06 21:02:13
19KB
系统开源
1