ANP-网络层次分析法
网络层次分析法(Analytic Network Process, ANP)是在 AHP 基础上发展起来的网络化多指标决策方法。与传统层次结构不同,ANP 允许指标之间存在反馈关系与相互依赖关系,并通过超矩阵(supermatrix)描述这种网络影响。
ANP-网络层次分析法
1. 方法概述
网络层次分析法(Analytic Network Process, ANP)是在 AHP 基础上发展起来的网络化多指标决策方法。与传统层次结构不同,ANP 允许指标之间存在反馈关系与相互依赖关系,并通过超矩阵(supermatrix)描述这种网络影响。
就本项目的具体实现而言,ANP 的计算分为两个阶段:
- 在指标层构造网络依赖关系,并由各控制准则下的两两比较矩阵生成超矩阵与极限超矩阵,从而得到稳定指标权重;
- 将稳定指标权重应用于方案-指标数据表,对原始指标进行同向化与归一化处理后,采用加权求和方式计算综合得分与排序。
因此,本项目中的 ANP 并不是“直接在超矩阵中同时放入方案节点”的全量实现,而是“先用 ANP 求指标权重,再做多指标综合评价”的工程化实现。
设指标集合记为
$$ C=\{C_1,C_2,\ldots,C_n\} \tag{1} $$
设共有 \(m\) 个评价方案,原始方案-指标数据矩阵记为
$$ X=(x_{pq})_{m\times n},\quad p=1,2,\ldots,m,\ q=1,2,\ldots,n \tag{2} $$
其中 \(x_{pq}\) 表示方案 \(A_p\) 在指标 \(C_q\) 上的原始取值。
ANP 求得的稳定指标权重向量记为
$$ w=\big(w_1,w_2,\ldots,w_n\big)^\top,\quad w_i\ge 0,\quad \sum_{i=1}^{n}w_i=1 \tag{3} $$
式(3)中的 \(w_i\) 即项目最终用于综合评分的指标权重。
2. 输入结构与符号定义
本项目要求输入文件为 Excel,并建议至少包含以下工作表:
Data或数据:第一列为方案名称,后续列为指标值;PC_<指标名>:控制准则为该指标时,各指标对其影响强度的两两比较矩阵;Clusters:可选,用于描述指标所属簇;Cluster_Weights:可选,用于描述簇间影响矩阵或簇权重向量。
项目界面内置的模板导出功能会自动生成一个标准示例文件,其中包含 Data、多个 PC_ 工作表、Clusters、Cluster_Weights 与 README。因此,在论文或附录中可直接将该模板结构作为输入数据组织方式的说明依据。
对于控制准则 \(C_j\),其对应的两两比较矩阵记为
$$ P^{(j)}=\big(a_{ik}^{(j)}\big)_{n\times n} \tag{4} $$
其中 \(a_{ik}^{(j)}\) 表示“在控制准则 \(C_j\) 下,指标 \(C_i\) 相对于指标 \(C_k\) 对 \(C_j\) 的影响强度比值”。
程序对两两比较矩阵采用如下基本约束:
$$ a_{ik}^{(j)}>0,\qquad a_{ii}^{(j)}=1,\qquad a_{ik}^{(j)}=\frac{1}{a_{ki}^{(j)}} \tag{5} $$
这意味着矩阵必须满足正数性、单位对角线与互反性要求。若任一 PC_ 矩阵不满足式(5),程序将直接报错并中止计算。
除数值约束外,程序还要求各 PC_ 矩阵的行名与列名必须和当前参与计算的指标集合完全一致。若研究者只选择部分指标参与计算,则两两比较矩阵也必须同步裁剪到该指标子集,否则程序会报出“矩阵行列名与数据表指标不一致”的错误。
3. 局部权重求解与一致性检验
3.1 控制准则下的局部权重
对每一个 \(P^{(j)}\),程序采用特征向量法提取局部优先权向量 \(u^{(j)}\)。其计算形式为
$$ P^{(j)}u^{(j)}=\lambda_{\max}^{(j)}u^{(j)} \tag{6} $$
取最大特征值对应的特征向量后,再进行归一化处理:
$$ \tilde{u}_i^{(j)}= \frac{\left|u_i^{(j)}\right|}{\sum_{r=1}^{n}\left|u_r^{(j)}\right|}, \quad i=1,2,\ldots,n \tag{7} $$
式(7)与项目代码一致,即对主特征向量取实部后取绝对值归一化,以保证结果稳定且非负。
3.2 一致性指标与一致性比率
对 \(n\) 阶两两比较矩阵,程序按照
$$ CI^{(j)}=\frac{\lambda_{\max}^{(j)}-n}{n-1} \tag{8} $$
计算一致性指标,并进一步定义一致性比率为
$$ CR^{(j)}=\frac{CI^{(j)}}{RI_n} \tag{9} $$
其中 \(RI_n\) 为 \(n\) 阶随机一致性指标。项目默认采用阈值 \(CR\le 0.10\) 作为可接受一致性的判定标准。
若某个控制准则对应的 \(CR^{(j)}\) 超过阈值,结果表中的 Pairwise_Summary 会将其标记为 cr_high,提示研究者返回原始比较矩阵进行修正。
4. 超矩阵、加权超矩阵与极限超矩阵
4.1 超矩阵构造
本项目以“每个控制准则对应一列”的方式构造未加权超矩阵 \(W\)。对第 \(j\) 个控制准则,其列向量直接由式(7)得到的局部权重给出,即
$$ W_{:,j}=\tilde{u}^{(j)},\qquad j=1,2,\ldots,n \tag{10} $$
因此,\(W\) 的第 \(j\) 列表示“在控制准则 \(C_j\) 下,各指标对其影响的相对权重”。若所有 PC_ 矩阵都存在,则 \(W\) 为列随机矩阵。
需要说明的是,若某个指标 \(C_j\) 缺失对应的 PC_<指标名> 工作表,程序不会直接停止,而是将该列按“仅自身影响”处理,即该列退化为单位基向量。这一处理会在结果表中标记为 missing_use_identity。
4.2 多簇网络加权
若用户提供了 Clusters 工作表,则可将指标划分到不同簇中。记指标 \(C_i\) 所属簇为
$$ g(i)\in\{1,2,\ldots,K\} \tag{11} $$
其中 \(K\) 为簇的数量。设簇间影响矩阵为
$$ B=\big(b_{\alpha\beta}\big)_{K\times K} \tag{12} $$
其中 \(b_{\alpha\beta}\) 表示“簇 \(\alpha\) 中元素对簇 \(\beta\) 中控制元素的影响权重”。项目允许 Cluster_Weights 以方阵形式输入,也允许以簇权重向量形式输入;无论采用哪种形式,程序都会先做列归一化。
在此基础上,未加权超矩阵 \(W\) 被转换为加权超矩阵 \(W^{(w)}\):
$$ W^{(w)}_{ij}=W_{ij}\,b_{g(i),g(j)} \tag{13} $$
为保证后续极限迭代可解释,程序还会对 \(W^{(w)}\) 的每一列再做一次归一化:
$$ \bar{W}_{ij}= \frac{W^{(w)}_{ij}}{\sum_{r=1}^{n}W^{(w)}_{rj}} \tag{14} $$
若某一列求和为 0,则程序会退回到单位列,以保证矩阵乘法过程稳定。
4.3 极限超矩阵与稳定权重
项目采用幂法求解稳定向量。设初始向量为均匀分布
$$ v^{(0)}=\left(\frac{1}{n},\frac{1}{n},\ldots,\frac{1}{n}\right)^\top \tag{15} $$
随后按下式迭代:
$$ v^{(t+1)}=\bar{W}v^{(t)} \tag{16} $$
当 \(\|v^{(t+1)}-v^{(t)}\|_1\le \varepsilon\) 时,认为迭代收敛,此处 \(\varepsilon\) 由参数 tol 给定。最终得到的稳定向量记为
$$ w=\lim_{t\to\infty}v^{(t)} \tag{17} $$
这就是项目的最终指标权重。程序同时把极限超矩阵写成“各列均等于稳定权重向量”的形式,即
$$ W^{(\infty)}=\big[w,\ w,\ \ldots,\ w\big] \tag{18} $$
因此,导出结果中的 Limit_Supermatrix 可以直接视为稳定权重在各控制准则列上的复制形式。
需要补充说明的是,若幂法迭代未得到有限且可归一化的结果,程序会自动退回到“取最接近特征值 1 的特征向量并归一化”的方式求解稳定权重。这一回退机制保证了极限权重求解的数值稳健性。
5. 指标同向化、归一化与综合得分
ANP 权重求得后,项目并不直接输出“仅有权重”的结果,而是将权重应用于方案评价数据。程序支持正向指标、负向指标与适度指标三类口径。
5.1 Min-Max 归一化
对正向指标,采用
$$ r_{pq}=\frac{x_{pq}-\min_p x_{pq}}{\max_p x_{pq}-\min_p x_{pq}} \tag{19} $$
对负向指标,采用
$$ r_{pq}=1-\frac{x_{pq}-\min_p x_{pq}}{\max_p x_{pq}-\min_p x_{pq}} \tag{20} $$
对适度指标,设目标值为 \(s_q^\ast\),程序采用
$$ r_{pq}=1-\frac{|x_{pq}-s_q^\ast|}{\max\big(|\max_p x_{pq}-s_q^\ast|,\ |\min_p x_{pq}-s_q^\ast|\big)} \tag{21} $$
式(21)反映了“越接近目标值越优”的实现逻辑。
若某指标在样本中为常数列,或适度指标的分母为 0,则程序会直接将该列归一化结果记为 0,以避免出现除零问题。
5.2 Z-score 口径
当用户选择 z-score 时,程序先对指标做标准化,再将结果线性映射到 \([0,1]\) 区间。其基础形式可表示为
$$ z_{pq}=\frac{x_{pq}-\mu_q}{\sigma_q}, \qquad r_{pq}=\frac{z_{pq}-\min_p z_{pq}}{\max_p z_{pq}-\min_p z_{pq}} \tag{22} $$
对负向指标,程序仍然使用 \(1-r_{pq}\) 进行方向翻转;适度指标则继续使用式(21)的目标值口径。
若某指标标准差为 0,程序同样将该列标准化结果记为 0。这意味着在样本内部完全没有区分度的指标,不会对最终评分产生额外差异贡献。
5.3 综合得分与排序
设归一化后的决策矩阵为 \(R=(r_{pq})_{m\times n}\),则方案 \(A_p\) 的综合得分为
$$ S_p=\sum_{q=1}^{n}r_{pq}w_q \tag{23} $$
项目当前仅支持 weighted_sum 评分方式,因此式(23)就是最终得分模型。随后按 \(S_p\) 从大到小进行排序,得到方案优先序:
$$ \operatorname{Rank}(A_p)=\operatorname{rank}_{\downarrow}(S_p) \tag{24} $$
导出结果中的 Scores 表包含 alternative、score 与 rank 三列,分别对应方案名称、综合得分和排序名次。
6. 逆向流程:由专家评分自动生成 PC 矩阵
除标准正向流程外,本项目还提供“逆向流程”。其适用情形是:研究者已经有方案数据,但尚未构造 PC_<指标名> 两两比较矩阵,只能先提供专家评分表。
设第 \(h\) 位专家对指标 \(C_q\) 的评分为 \(s_q^{(h)}\),对应专家权重为 \(\beta_h\),且满足 \(\sum_h \beta_h=1\)。程序先计算各指标的加权平均评分:
$$ \bar{s}_q=\sum_{h=1}^{H}\beta_h s_q^{(h)} \tag{25} $$
然后依据评分比值构造互反矩阵:
$$ \tilde{a}_{ij}= \operatorname{clip}\left(\frac{\bar{s}_i}{\bar{s}_j},\ \frac{1}{9},\ 9\right), \qquad \tilde{a}_{ji}=\frac{1}{\tilde{a}_{ij}} \tag{26} $$
其中 \(\operatorname{clip}(\cdot)\) 表示将比值截断到 Saaty 常用的 \([1/9,9]\) 区间内。需要特别指出的是,本项目的逆向实现会将由式(26)得到的同一个互反矩阵复制到所有 PC_<指标名> 工作表中。换言之,逆向流程本质上是一种工程化近似:它利用统一专家评分结构生成一组可供 ANP 计算使用的控制矩阵,而不是为每个控制准则分别独立采集判断矩阵。
因此,在论文中应将逆向流程表述为“专家评分驱动的矩阵自动构造机制”或“面向工程应用的 ANP 输入生成模块”,而不宜将其误写为标准 ANP 理论的必备组成部分。
7. 算法流程总结
结合本项目实现,ANP 的计算流程可概括为:
- 读取
Data表与所有PC_矩阵,确定方案集合与指标集合; - 对每个
PC_<指标名>矩阵执行互反性校验与一致性检验; - 通过特征向量法提取各控制准则下的局部权重,构造超矩阵 \(W\);
- 若存在
Clusters与Cluster_Weights,则构造加权超矩阵并列归一化; - 采用幂法迭代得到稳定权重向量 \(w\),并形成
Limit_Supermatrix; - 根据指标方向对原始数据进行同向化与归一化;
- 按式(23)计算综合得分,并按式(24)输出排序;
- 自动导出权重、得分、超矩阵、极限超矩阵、图表与复现脚本。
从论文方法流程图的角度,可将其概括为“输入矩阵 -> 局部权重 -> 超矩阵 -> 多簇加权 -> 极限权重 -> 方案评分 -> 结果导出”。
8. 关键参数说明
本项目当前暴露的核心参数包括:
pairwise_prefix:两两比较矩阵工作表前缀,默认PC_;normalization:数据归一化方式,可选min-max或z-score;tol:幂法收敛容差,默认 \(10^{-12}\);max_iter:最大迭代次数,默认 5000;consistency_threshold:一致性阈值,默认 0.10;score_method:综合评分方式,当前仅支持weighted_sum。
在实际论文写作中,若使用本项目默认参数,可直接写为:“ANP 超矩阵稳定向量采用幂法求解,收敛容差设为 \(10^{-12}\),最大迭代次数为 5000,一致性阈值设为 0.10,方案综合得分采用加权求和模型。”
9. 结果解释与评价指标
对于本项目导出的 ANP 结果,应重点解释以下几类信息:
Pairwise_Summary:用于报告各控制准则对应矩阵的 \(\lambda_{\max}\)、\(CI\)、\(CR\),判断比较矩阵是否合理;Supermatrix:展示未加权网络关系结构;Weighted_Supermatrix:展示考虑簇间影响后的加权网络结构;Limit_Supermatrix:展示极限状态下的稳定权重结构;Weights:给出最终指标权重,是论文结果部分最核心的表格之一;Normalized_Data:用于解释方案在统一尺度下的表现;Scores:给出综合得分与名次,是最终排序依据。
对结果的论文解释通常应回答三个问题:
- 哪些指标在网络反馈结构下具有最高稳定权重;
- 某些
PC_矩阵是否存在一致性不足,需要说明专家判断的不稳定性; - 不同方案的排序主要由哪些高权重指标驱动。
10. 程序输出与论文写作对应关系
表 1 程序导出项与论文写作对应关系
| 程序导出项 | 对应 Sheet | 论文建议位置 | 主要用途 |
|---|---|---|---|
| 参数设置 | Parameters |
方法章节 | 说明前缀、归一化方式、容差、一致性阈值等 |
| 原始数据 | RawData |
附录 | 展示方案-指标原始表 |
| 比较矩阵摘要 | Pairwise_Summary |
方法或附录 | 报告 \(\lambda_{\max}\)、\(CI\)、\(CR\) |
| 超矩阵 | Supermatrix |
附录 | 展示局部权重构成的网络矩阵 |
| 加权超矩阵 | Weighted_Supermatrix |
附录 | 展示簇间影响修正结果 |
| 极限超矩阵 | Limit_Supermatrix |
方法或附录 | 展示稳定权重结构 |
| 指标-簇映射 | Clusters |
附录 | 说明多簇设定 |
| 簇权重 | Cluster_Weights |
附录 | 说明簇间影响结构 |
| 最终权重 | Weights |
结果章节 | 报告各指标 ANP 权重 |
| 归一化数据 | Normalized_Data |
附录 | 展示统一量纲后的指标值 |
| 综合得分 | Scores |
结果章节 | 报告方案得分与排名 |
| 图表清单 | 图表清单 |
附录 | 记录图件路径 |
| 复现脚本 | repro_anp_*.py |
附录或补充材料 | 固化输入文件、参数设置与导出路径 |
11. 论文写作模板
11.1 方法章节模板
“本文采用网络层次分析法(ANP)确定指标权重。首先围绕指标间相互依赖关系构造控制准则下的两两比较矩阵 \(P^{(j)}\)(式(4)),并检验其正数性、单位对角线与互反性(式(5))。随后采用特征向量法提取各控制准则下的局部优先权向量(式(6)—式(7)),据此构造超矩阵 \(W\)(式(10))。在存在多簇结构时,进一步引入簇间影响矩阵 \(B\) 对超矩阵进行加权修正(式(12)—式(14))。最后,利用幂法迭代求得稳定权重向量 \(w\)(式(15)—式(18)),并将其与归一化后的方案数据结合,采用加权求和模型计算综合得分与排序(式(19)—式(24))。”
11.2 结果章节模板
“ANP 结果显示,指标 \([C_1]\)、\([C_2]\) 和 \([C_3]\) 的稳定权重最高,分别为 \([w_1]\)、\([w_2]\) 和 \([w_3]\)。两两比较矩阵的一致性检验结果表明,各控制准则对应矩阵的 \(CR\) 值均低于 0.10,说明专家判断具有可接受的一致性。进一步结合归一化后的方案数据计算综合得分,结果表明方案 \([A^*]\) 的得分最高,排序居于首位,说明其在高权重指标上的综合表现最优。”
11.3 逆向流程说明模板
“考虑到原始研究数据中未直接给出控制准则下的两两比较矩阵,本文采用项目内置的逆向评分生成机制:先收集专家对各指标的重要性评分,再按专家权重求加权平均评分,并据此构造互反矩阵(式(25)—式(26))。该过程属于面向工程应用的输入生成步骤,其目的是为后续 ANP 网络权重分析提供可计算矩阵基础。”
12. 实现说明与注意事项
12.1 适用范围
本项目的 ANP 实现适用于以下场景:
- 指标之间存在明显相互依赖或反馈关系;
- 研究重点是“指标网络权重 + 方案综合评价”;
- 已具备方案-指标数据,同时希望通过专家判断引入主观结构信息;
- 需要将结果直接落入论文方法部分,并配套导出复现实验文件。
12.2 实现说明与注意事项
- 本项目核心上是“ANP 求指标权重 + 加权求和评价”,论文中不宜误写为“方案节点已直接纳入超矩阵的完整 ANP 网络”;
- 若
PC_矩阵缺失,程序会自动采用“仅自身影响”列向量,这一情形应在论文中说明; - 若某些矩阵
CR偏高,应优先修正专家判断,再解释权重结果; - 逆向流程生成的是工程化近似矩阵,不应被表述为标准理论 ANP 的唯一矩阵来源;
- 当指标量纲差异明显时,应明确说明所采用的归一化方式及指标方向设定;
- 若
Clusters与Cluster_Weights未提供,程序默认退化为单簇网络,此时分析结果更接近单层依赖结构下的 ANP 权重。
13. 符号说明表
| 符号 | 含义 |
|---|---|
| \(C\) | 指标集合 |
| \(A_p\) | 第 \(p\) 个评价方案 |
| \(X=(x_{pq})\) | 原始方案-指标数据矩阵 |
| \(P^{(j)}\) | 控制准则为 \(C_j\) 的两两比较矩阵 |
| \(\lambda_{\max}^{(j)}\) | 第 \(j\) 个比较矩阵的最大特征值 |
| \(CI^{(j)}\) | 一致性指标 |
| \(CR^{(j)}\) | 一致性比率 |
| \(W\) | 未加权超矩阵 |
| \(B\) | 簇间影响矩阵 |
| \(\bar{W}\) | 列归一化后的加权超矩阵 |
| \(W^{(\infty)}\) | 极限超矩阵 |
| \(w\) | 稳定指标权重向量 |
| \(R=(r_{pq})\) | 同向化与归一化后的决策矩阵 |
| \(S_p\) | 方案 \(A_p\) 的综合得分 |
| \(\beta_h\) | 第 \(h\) 位专家权重 |
| \(\bar{s}_q\) | 指标 \(C_q\) 的加权平均专家评分 |
14. 公式与实现对应关系
为了保证论文说明与程序实现的一致性,可将主要公式与代码模块对应如下。
表 2 核心公式与程序实现对应表
| 公式编号 | 公式含义 | 主要实现位置 |
|---|---|---|
| 式(4)—式(5) | PC_ 两两比较矩阵读取与互反性校验 |
core/calculator.py |
| 式(6)—式(9) | 特征向量法权重求解与一致性检验 | core/calculator.py |
| 式(10) | 超矩阵列构造 | core/calculator.py |
| 式(11)—式(14) | 簇映射与加权超矩阵构造 | core/calculator.py |
| 式(15)—式(18) | 幂法求稳定向量与极限超矩阵输出 | core/calculator.py |
| 式(19)—式(22) | 指标同向化与归一化 | core/calculator.py |
| 式(23)—式(24) | 综合得分与排序 | core/calculator.py |
| 式(25)—式(26) | 专家评分逆推 PC_ 矩阵 |
utils/anp_reverse_builder.py |
| 结果表与图表导出 | Excel、柱状图、图表清单 | utils/anp_exporter.py |
| 复现实验脚本 | 输入复制、参数固化、脚本生成 | utils/anp_repro_builder.py |
| 正向/逆向 UI 入口与模板导出 | 示例文件、评分模板、逆推导入 | ui/anp_params_widget.py、ui/main_window.py |
| 结果目录与自动导出 | 结果路径、自动保存、复现脚本按钮 | ui/anp_results_widget.py |
若论文附录需要说明可复现性,可补充写明:项目测试脚本已经覆盖“逆推生成输入文件”“导出 Excel”“导出并执行复现脚本”等关键链路,因此文中所述方法不仅有数学表达,也有完整的工程复现路径。
15. 可直接用于附录的简短结论模板
“本文基于 ANP 超矩阵方法刻画指标之间的相互依赖关系,并通过极限超矩阵提取稳定指标权重。在此基础上,结合归一化后的方案-指标数据,采用加权求和方式得到各方案综合得分与排序。项目程序同步输出比较矩阵摘要、超矩阵、极限超矩阵、最终权重、方案得分、图表与复现脚本,从而保证了 ANP 分析过程的透明性、可追踪性与可复现性。”
16. 论文模板补充
16.1 方法描述模板
“本文采用 ANP 方法处理指标之间存在反馈与依赖关系的综合评价问题。首先构造簇内和簇间的两两比较矩阵,并通过特征向量法求取局部权重;随后构造未加权超矩阵与加权超矩阵,并通过幂法迭代得到极限超矩阵,从而提取稳定指标权重。在此基础上,将极限权重应用于方案评价矩阵,得到各方案综合得分与排序结果。”
16.2 结果解释模板
结果部分可写为:结果表明,极限超矩阵所对应的稳定权重反映了指标网络结构中的长期影响强度。若某些指标在局部比较中权重较高且在极限超矩阵中仍保持较大权重,则说明其在整体网络中的主导作用较强;方案综合得分越大,表示其在考虑指标相互依赖后的整体表现越优。
16.3 表格标题模板
- 表 1 ANP 两两比较矩阵与一致性检验结果表
- 表 2 ANP 超矩阵与极限超矩阵结果表
- 表 3 ANP 最终指标权重结果表
- 表 4 方案综合得分与排序结果表
16.4 图表题注模板
- 图 1 ANP 指标权重分布图。
- 图 2 ANP 方案综合得分排序图。
- 图 3 ANP 指标网络结构与簇间影响关系示意图。
16.5 表格示例
表 1 ANP 最终权重与方案得分结果表示例
| 项目 | 指标/方案 | 数值 |
|---|---|---|
| 最终权重 | \(C_1\) | |
| 最终权重 | \(C_2\) | |
| 综合得分 | \(A_1\) | |
| 综合得分 | \(A_2\) |
表注:指标权重来自极限超矩阵稳定列向量;方案综合得分按项目当前实现中的加权求和口径计算。
17. 单篇终审补充
17.1 图题与表题对齐建议
Parameters表可写为:表X ANP 参数设置表。RawData表可写为:表X ANP 原始方案数据表。Data_Head表可写为:表X ANP 数据预览表。Pairwise_Summary表可写为:表X ANP 两两比较矩阵摘要表。Supermatrix表可写为:表X ANP 未加权超矩阵表。Weighted_Supermatrix表可写为:表X ANP 加权超矩阵表。Limit_Supermatrix表可写为:表X ANP 极限超矩阵表。Clusters表可写为:表X ANP 簇结构信息表。Cluster_Weights表可写为:表X ANP 簇权重表。Weights表可写为:表X ANP 最终指标权重表。Normalized_Data表可写为:表X ANP 归一化数据表。Scores表可写为:表X ANP 方案综合得分表。图表清单表可写为:表X ANP 图表索引与路径表。cluster_weights_bar.png建议写为:图X ANP 簇权重分布图。weights_bar.png建议写为:图X ANP 指标权重分布图。scores_bar.png建议写为:图X ANP 方案综合得分图。
17.2 终审说明
- 当前代表性结果目录宜分别保留正向与逆向两套证据:正向可采用
results/ANP-网络层次分析法-20260320_235433-正向,逆向可采用results/ANP-网络层次分析法-20260320_235437-逆向。正文若讨论“双流程一致性”,应分开引用这两个目录。 - 当前较新目录中的真实工作表为
Parameters/RawData/Data_Head/Pairwise_Summary/Supermatrix/Weighted_Supermatrix/Limit_Supermatrix/Clusters/Cluster_Weights/Weights/Normalized_Data/Scores/图表清单。早期结果目录可能没有图表清单,论文若要引用图表索引功能,应优先使用较新目录。 - 当前稳定实体图文件为
charts/cluster_weights_bar.png、charts/weights_bar.png、charts/scores_bar.png,在较新目录中还可能出现带_1后缀的重复导出副本。正文引用时应以图表清单或当前目录下主图路径为准,不要把副本当成新增图。 - 正向流程的真实 repro 脚本为
repro_anp_20260320_235433.py,通过FILE_PATH = 'repro_inputs/anp_sample.xlsx'读取输入副本;逆向流程的真实 repro 脚本为repro_anp_20260320_235437.py,通过FILE_PATH = 'repro_inputs/anp_reverse_input_20260320_235437.xlsx'读取逆向构造输入。附录必须把正逆向输入路径区分开。 - 旧目录中存在 Windows 网络盘路径口径的
FILE_PATH,但当前较新目录已经统一为repro_inputs/...相对路径。论文和附录应以较新目录的可移植复现脚本为准。
17.3 全量强化补充
- 当前 ANP 文档必须按真实磁盘现状保留两套平行证据,而不能只写单一路径:正向目录为
具体的算法3/多指标评价/ANP-网络层次分析法/results/ANP-网络层次分析法-20260320_235433-正向,逆向目录为具体的算法3/多指标评价/ANP-网络层次分析法/results/ANP-网络层次分析法-20260320_235437-逆向。 - 正向主工作簿为
ANP-网络层次分析法-20260320_235433-正向.xlsx,逆向主工作簿为ANP-网络层次分析法-20260320_235437-逆向.xlsx。两者当前实际工作表一致,均为Parameters、RawData、Data_Head、Pairwise_Summary、Supermatrix、Weighted_Supermatrix、Limit_Supermatrix、Clusters、Cluster_Weights、Weights、Normalized_Data、Scores、图表清单。 - 两个目录的首层主图结构也一致,均包含
charts/cluster_weights_bar.png、charts/scores_bar.png、charts/scores_bar_1.png、charts/weights_bar.png、charts/weights_bar_1.png。其中带_1后缀的文件属于重复导出副本,不应在论文中解释为新的分析图类型。 - 正向目录的复现入口是
repro_anp_20260320_235433.py + repro_inputs/anp_sample.xlsx,执行后再生成repro_outputs/anp_results_20260320_235433.xlsx及其repro_outputs/charts/...图片;逆向目录的复现入口则是repro_anp_20260320_235437.py + repro_inputs/anp_reverse_input_20260320_235437.xlsx,并对应生成repro_outputs/anp_results_20260320_235437.xlsx。 - 这说明 ANP 不是“主目录里同时混放主结果和复现输出不分层”的结构,而是比较标准的三层链路:首层主运行结果、
repro_inputs/输入副本、repro_outputs/再生产物。正文若写可复现性,应把这三层关系写清。 - 论文写作时若要强调“正向与逆向的一致性”,可以把
Weights与Scores作为双目录对照主表,但不能省略“逆向输入来自逆推构造文件”的前提,因为两个目录的FILE_PATH实际并不相同。 图表清单在当前目录中已经是真实存在的主工作表,因此图号、图名和路径建议优先按该表落地,而不是只靠手写列举charts/*.png。- 由于当前较新目录已统一采用
repro_inputs/...相对路径和repro_outputs/...输出目录,本文档后续若再出现旧版绝对路径叙述,应以本节磁盘证据为准进行修正。
18. 软件实现核查补充(2026-07)
- 当前实现的代表性目录应分别绑定正向与逆向两套证据:
results/ANP-网络层次分析法-20260320_235433-正向与results/ANP-网络层次分析法-20260320_235437-逆向。 - 正文应围绕
Parameters、RawData、Data_Head、Pairwise_Summary、Supermatrix、Weighted_Supermatrix、Limit_Supermatrix、Clusters、Cluster_Weights、Weights、Normalized_Data、Scores、图表清单来写。 - 图证应对应
cluster_weights_bar.png、weights_bar.png、scores_bar.png,并说明scores_bar_1.png、weights_bar_1.png是重复导出副本。 - 正向与逆向复现脚本口径不同,前者用
repro_inputs/anp_sample.xlsx,后者用repro_inputs/anp_reverse_input_20260320_235437.xlsx,正文必须区分。