NETFLOW程序


工作基础矩阵

$\mb{T}$是的基础矩阵NPSC公司。完成以下分区:

\开始{等式*}\Strong{T=}\left[\begin{array}{cc}\Str强{A}&\Strong}B}\\Strong{C}&\Strong{D}\\end{arrary}\right]\end{equation*}

哪里

  • n个是节点数。

  • k个是侧面约束的数量。

  • $\b{A}\:(n次n)$是网络组件的基础。该矩阵的大多数列是问题的节点弧关联列矩阵。与列关联的弧$\mb{A}$称为键基本变量或键弧,形成生成树。此子矩阵的生成树的数据结构基础的$\mb{T}$启用涉及以下内容的计算$\mb{T}$以及$\mb{T}$更新后非常有效,尤其是那些处理$\mb{A}$(或$\mb{A^{-1}}$).

  • $\mb{C}\:(k\次n)$是关键圆弧的边约束系数列。

  • $\mb{B}\:(n\乘以k)$是非树弧的节点弧关联矩阵列。的列$\mb{B}$具有非零元素与基本的非平移树弧相关。

  • $\mb{D}\:(k\乘以k)$是非关键基本变量的约束系数列。非关键基本变量不仅包括非关键基本弧但也包括基本的松弛变量、剩余变量、人工变量或非圆弧变量。

因素更方便$\mb{T}$通过块三角矩阵$\mb{P}$$\mb{M}$,因此$\mb{P}=\mb{TM}$.矩阵$\mb{P}$$\mb{M}$使用,而不是$\mb{T}$因为他们的工作负担较轻。您可以在求解单纯形迭代线性时执行块替换方程组

\开始{等式*}\Strong{P=}\left[\begin{array}{cc}\Str强{A}&\Strong}0}\\Strong{C}&\Strong{D}(D)_w\\end{array}\right]\end{equation*}
\开始{方程式*}\Strong{M=}\left[\begin{array}{cc}\Strang{I}&-\Strong}A}^{-1}\Str强{B}\\Strong{0}&\Strong{I}\end{arrays}\right]\end{equation*}

哪里$\mb{D_w}=\mb{D}-\mb{CA^{-1}B}$称为工作基矩阵。

要执行块替换,需要$\mb{A}$矩阵,以及$\mb{C}$,$\mb{B}$,以及$\mb{D_w}$矩阵。因为$\mb{C}$矩阵由约束系数矩阵的列组成$\mb{C}$从一次迭代到另一次迭代只需要改变信息,指定约束系数矩阵的哪些列组成$\mb{C}$.

这个$\mb{A^{-1}乙}$矩阵通常非常稀疏。幸运的是$\mb{A^{-1}乙}$可以使用树结构轻松初始化。在大多数迭代中,只有一列被新列替换。价值观从单纯形迭代的前面步骤中可能已经知道了新列元素的个数。

工作基矩阵是计算复杂度最高的子矩阵。然而,PROC NETFLOW通常可以使用经典的单纯形枢轴技术。在许多迭代中,只有一列$\mb{D_w}$变化。有时不需要更新$\mb{D_w}$或者说是相反的。

如果INVD_2D(发票_二维)在中指定PROC网络流量声明,$\mb{D_w^{-1}}$在下一个单纯形迭代开始之前。已更改列的新内容是已知的。的新元素更改的行受一行内容的影响$\mb{A^{-1}乙}$这是非常稀少的。

如果INVD_2D(发票_二维)未在中指定PROC网络流量语句,Bartels-Glub更新可用于更新逻辑单元因素$\mb{D_w}$. 必须选择是否执行一系列更新(多少取决于一行中非零的数量$\mb{A^{-1}B}$)或重构。