CKYL排序法

方法概述

CKYL(Condorcet-Kemeny-Young-Levenglick)排序法是一种基于投票理论与成对比较的多准则决策方法。它将每个评价指标视为一位“投票者”,根据各方案在该指标上的表现给出偏好关系,然后通过聚合所有指标的偏好,寻找与全体指标偏好最为一致的总体排序。

CKYL法的核心思想是:

  • 对原始数据进行正向化和标准化处理,使所有指标转化为“越大越好”的形式。
  • 对于每个指标,构建成对比较矩阵,表示方案之间的优劣关系(偏好方向)。
  • 利用指标权重,将各指标的成对比较矩阵加权汇总,得到综合偏好矩阵。
  • 寻找一个方案的全排序,使得该排序与综合偏好矩阵的总不一致性(Kendall距离)最小。
  • 根据指标数量和计算复杂度,平台自动或手动选择精确算法(枚举)、遗传算法或贪心算法来求解最优排序。

该方法源自投票理论中的Condorcet准则和Kemeny最优排序概念,能够有效处理多个指标间的偏好冲突,得到具有民主基础的妥协排序。

计算步骤

1. 构建原始数据矩阵

设有 \(n\) 个评价对象(方案),\(m\) 个评价指标,原始数据矩阵为:

\[ X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1m} \\ x_{21} & x_{22} & \cdots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{nm} \end{bmatrix} \]

2. 数据正向化

根据每个指标的类型,将原始数据转换为“越大越好”的形式(极大型)。平台支持以下四种类型:

(1)极大型指标(越大越好)

保持不变: \[ y_{ij} = x_{ij} \]

(2)极小型指标(越小越好)

\[ y_{ij} = \max(x_j) - x_{ij} \]

(3)中间型指标(越接近某固定值 \(a\) 越好)

\(M = \max |x_{ij} - a|\),则: \[ y_{ij} = 1 - \frac{|x_{ij} - a|}{M} \]\(M=0\)(所有值均等于 \(a\)),则 \(y_{ij}=1\)

(4)区间型指标(落在区间 \([a,b]\) 内最好)

\(M = \max(a - \min(x_j), \max(x_j) - b)\),则: \[ y_{ij} = \begin{cases} 1 - \frac{a - x_{ij}}{M}, & x_{ij} < a \\ 1, & a \leq x_{ij} \leq b \\ 1 - \frac{x_{ij} - b}{M}, & x_{ij} > b \end{cases} \]\(M=0\)(所有值均落在区间内),则 \(y_{ij}=1\)

3. 数据标准化

为消除量纲影响,需对正向化后的数据进行标准化。平台支持四种标准化方法:

(1)极差标准化(Min-Max)

\[ z_{ij} = \frac{y_{ij} - \min(y_j)}{\max(y_j) - \min(y_j)} \]

(2)Z-score标准化

\[ z_{ij} = \frac{y_{ij} - \mu_j}{\sigma_j} \] 然后线性变换到 \([0.001, 1]\) 区间(确保正值)。

(3)比重法标准化(列和法)

\[ z_{ij} = \frac{y_{ij}}{\sum_{i=1}^{n} y_{ij}} \]\(y_{ij}\) 出现非正值,则先进行极差标准化再计算比重。

(4)向量归一化

\[ z_{ij} = \frac{y_{ij}}{\sqrt{\sum_{i=1}^{n} y_{ij}^2}} \]

注意:所有标准化后的值均为正数,以保证后续成对比较的合理性。

4. 构建加权标准化矩阵

设各指标权重为 \(w_j\)\(j=1,\dots,m\)),且 \(\sum_{j=1}^{m} w_j = 1\)。加权标准化值为: \[ v_{ij} = z_{ij} \times w_j \]

5. 构建成对比较矩阵

对于每个指标 \(k\),构建一个 \(n \times n\) 的成对比较矩阵 \(P^{(k)}\),其中元素 \(p_{ij}^{(k)}\) 表示方案 \(i\) 相对于方案 \(j\) 的偏好方向: - 若 \(v_{ik} > v_{jk}\),则 \(p_{ij}^{(k)} = 1\)(方案 \(i\) 优于方案 \(j\)); - 若 \(v_{ik} < v_{jk}\),则 \(p_{ij}^{(k)} = -1\); - 若 \(v_{ik} = v_{jk}\),则 \(p_{ij}^{(k)} = 0\)

6. 计算汇总偏好矩阵

将各指标的成对比较矩阵加权求和,得到综合偏好矩阵 \(Q\)\[ Q_{ij} = \sum_{k=1}^{m} w_k \cdot p_{ij}^{(k)} \] \(Q_{ij}\) 的正负表示方案 \(i\) 相对于方案 \(j\) 的总体偏好方向,绝对值表示偏好强度(但通常只使用符号)。

7. 寻找最优排序(最小化总不一致性)

CKYL 的目标是找到一个方案的全排序 \(\pi\)(即 \(1,2,\dots,n\) 的一个排列),使得该排序与综合偏好矩阵的总体不一致性最小。定义不一致性(Kendall距离)为: \[ D(\pi) = \sum_{i<j} \left[ \text{若 } \pi(i) \text{ 排在 } \pi(j) \text{ 之前但 } Q_{\pi(j),\pi(i)} > 0 \right] \cdot |Q_{\pi(j),\pi(i)}| \] 即对于每一对方案,如果排序方向与综合偏好方向相反,则累加偏好强度作为惩罚。

平台根据方案数量 \(n\) 自动选择算法: - 精确算法\(n \leq 10\)):枚举所有 \(n!\) 个排列,找到全局最优解。 - 遗传算法\(11 \leq n \leq 30\)):使用排列编码的遗传算法进行全局优化,参数可调。 - 贪心算法\(n > 30\)):多次随机重启 + 局部邻域搜索,快速获得近似最优解。

8. 输出排序结果

算法输出使 \(D(\pi)\) 最小的排序 \(\pi\),并给出对应的 Kendall 距离值。最终方案按排序顺序给出排名(排名 1 为最优)。

案例分析

案例背景:某企业拟从四个供应商(A、B、C、D)中选择合作伙伴,评价指标包括:产品质量(极大型)、价格(极小型)、交货准时率(极大型)。原始数据如下:

供应商 产品质量 价格 交货准时率
A 85 200 0.95
B 90 180 0.90
C 75 210 0.85
D 80 190 0.92

设三个指标权重相等,均为 \(1/3\)。采用极差标准化,算法自动选择(\(n=4 \leq 10\),将使用精确算法)。

计算过程

1. 数据正向化

  • 产品质量(极大型):保持不变。
    • A: 85, B: 90, C: 75, D: 80
  • 价格(极小型):需转换为极大型。\(\max=210\)
    • A: \(210-200=10\)
    • B: \(210-180=30\)
    • C: \(210-210=0\)
    • D: \(210-190=20\)
  • 交货准时率(极大型):保持不变。
    • A: 0.95, B: 0.90, C: 0.85, D: 0.92

正向化矩阵 \(Y\)

\[ Y = \begin{bmatrix} 85 & 10 & 0.95 \\ 90 & 30 & 0.90 \\ 75 & 0 & 0.85 \\ 80 & 20 & 0.92 \end{bmatrix} \]

2. 数据标准化(极差法)

  • 产品质量:\(\min=75\), \(\max=90\),范围 15。
    • A: \((85-75)/15 = 0.6667\)
    • B: \((90-75)/15 = 1.0000\)
    • C: \((75-75)/15 = 0.0000\)
    • D: \((80-75)/15 = 0.3333\)
  • 价格:\(\min=0\), \(\max=30\),范围 30。
    • A: \((10-0)/30 = 0.3333\)
    • B: \((30-0)/30 = 1.0000\)
    • C: \((0-0)/30 = 0.0000\)
    • D: \((20-0)/30 = 0.6667\)
  • 交货准时率:\(\min=0.85\), \(\max=0.95\),范围 0.1。
    • A: \((0.95-0.85)/0.1 = 1.0000\)
    • B: \((0.90-0.85)/0.1 = 0.5000\)
    • C: \((0.85-0.85)/0.1 = 0.0000\)
    • D: \((0.92-0.85)/0.1 = 0.7000\)

标准化矩阵 \(Z\)

\[ Z = \begin{bmatrix} 0.6667 & 0.3333 & 1.0000 \\ 1.0000 & 1.0000 & 0.5000 \\ 0.0000 & 0.0000 & 0.0000 \\ 0.3333 & 0.6667 & 0.7000 \end{bmatrix} \]

3. 构建加权标准化矩阵(权重均为 \(1/3\)

\[ V = Z \times \frac{1}{3} = \begin{bmatrix} 0.2222 & 0.1111 & 0.3333 \\ 0.3333 & 0.3333 & 0.1667 \\ 0.0000 & 0.0000 & 0.0000 \\ 0.1111 & 0.2222 & 0.2333 \end{bmatrix} \]

4. 构建成对比较矩阵

以指标1(产品质量)为例,比较方案间的优劣: - \(v_{A1} = 0.2222\), \(v_{B1} = 0.3333\)\(v_{A1} < v_{B1}\),所以 \(p_{AB}^{(1)} = -1\), \(p_{BA}^{(1)} = 1\) - 类似可得所有成对比较。

5. 汇总偏好矩阵

对三个指标的成对比较矩阵加权求和,得到综合偏好矩阵 \(Q\)(行列对应 A,B,C,D):

\[ Q = \begin{bmatrix} 0 & -1 & 1 & -1 \\ 1 & 0 & 1 & 1 \\ -1 & -1 & 0 & -1 \\ 1 & -1 & 1 & 0 \end{bmatrix} \] (注:为了简化,此处仅显示偏好方向,实际计算中保留小数。)

6. 寻找最优排序(精确算法)

枚举所有 24 种排列,计算每个排列的 Kendall 距离。例如,排序 \(\pi = [B, A, D, C]\) 表示 B 最优,A 次之,D 第三,C 最差。计算该排序与综合偏好矩阵的冲突:

检查每一对方案: - (B,A): 排序中 B 在 A 前,综合偏好 \(Q_{AB} = -1\) 表示 A 劣于 B,即 B 优于 A,与排序一致 → 无冲突。 - (B,D): B 在 D 前,\(Q_{DB} = -1\) 表示 D 劣于 B,一致 → 无冲突。 - (B,C): B 在 C 前,\(Q_{CB} = -1\) 表示 C 劣于 B,一致 → 无冲突。 - (A,D): A 在 D 前,\(Q_{DA} = 1\) 表示 D 优于 A,与排序相反 → 冲突,贡献 \(|Q_{DA}| = 1\)。 - (A,C): A 在 C 前,\(Q_{CA} = -1\) 表示 C 劣于 A,一致 → 无冲突。 - (D,C): D 在 C 前,\(Q_{CD} = -1\) 表示 C 劣于 D,一致 → 无冲突。

总冲突距离 \(= 1\)

类似计算其他排列,发现排序 \([B, A, D, C]\) 是冲突最小的之一。由于本例中偏好矩阵较为清晰,可能得到唯一最优解。

7. 最终排序

最优排序为:B > A > D > C,即供应商B最优,C最差。

结论:供应商B在三个指标上综合表现最佳,获得最一致的偏好。

常见问题

Q1: CKYL 方法与其他多准则决策方法有何区别?

A: CKYL 源于投票理论,强调方案之间的成对比较,并通过寻找与全体指标偏好最一致的排序来做出决策。它不直接计算综合得分,而是基于偏好关系,因此对指标值的尺度不敏感,更注重排序的一致性。

Q2: 算法如何选择?

A: 平台根据方案数量自动推荐: - ≤10 个方案:使用精确算法(枚举),保证全局最优。 - 11~30 个方案:使用遗传算法,在合理时间内搜索高质量解。 - >30 个方案:使用贪心算法(多次随机重启 + 邻域搜索),快速得到近似解。 用户也可手动指定算法。

Q3: 为什么需要数据标准化?

A: 标准化可以消除量纲影响,并将所有指标转化为正向形式,使成对比较的基准一致。同时,标准化后的值均为正数,便于构造偏好矩阵。

Q4: 如何理解综合偏好矩阵和 Kendall 距离?

A: 综合偏好矩阵 \(Q_{ij}\) 的正负表示方案 \(i\) 相对于 \(j\) 的总体偏好方向(正表示 \(i\) 优于 \(j\))。Kendall 距离度量候选排序与综合偏好矩阵的冲突程度:每出现一对方案排序方向与偏好方向相反,就累加偏好强度作为惩罚。距离越小,排序与全体指标的偏好越一致。

Q5: 支持多工作表吗?

A: 支持。平台允许上传包含多个工作表的Excel文件,每个工作表可代表不同数据集(如不同年份、不同专家群体),系统会分别分析并输出结果,便于对比。

平台功能

CKYL法分析平台提供以下核心功能:

数据输入

  • 支持CSV、Excel、TXT多种格式。
  • Excel文件支持多工作表,自动识别工作表名称。
  • 数据格式要求:第一行为指标名称,第一列为方案名称,数据区域为数值型。

参数设置

  • 指标类型:为每个指标指定类型(极大型、极小型、中间型、区间型),并设置相应参数。
  • 权重设置:自定义每个指标的权重,或一键设为等权重。
  • 标准化方法:选择“极差标准化”、“Z-score标准化”、“比重法标准化”或“向量归一化”。
  • 算法选择:自动或手动选择精确算法、遗传算法、贪心算法,并可调整相应参数(种群大小、迭代次数、变异率、重启次数等)。
  • 小数位数:控制输出精度(默认6位)。
  • 显示中间结果:可选是否展示正向化矩阵、标准化矩阵、成对比较矩阵等中间步骤。

结果展示

  • 详细分析报告:包含各方案的最终排名、所用算法、Kendall距离。
  • 计算过程:展示原始数据、正向化矩阵、标准化矩阵、加权矩阵、成对比较矩阵、汇总偏好矩阵。
  • 可视化图表:方案排名图、偏好矩阵热力图。
  • AI智能分析:基于DeepSeek API自动解读结果,提供决策建议(每日限3次)。
  • 多格式导出:支持Excel和HTML报告下载。

工作表管理

  • 多工作表自动识别,支持批量分析。
  • 实时显示每个工作表的验证状态。
  • 支持对比不同工作表的排名结果。

使用建议

  1. 准备阶段:明确评价对象和指标体系,确定每个指标的类型(极大型/极小型/中间型/区间型)。

  2. 数据收集:使用平台提供的模板文件填写数据,确保数据完整且无缺失值。每个工作表可代表不同的数据集。

  3. 参数设置

    • 正确设置指标类型,负向指标务必选择“极小型”。
    • 根据决策偏好设置权重,或使用等权重作为基准。
    • 选择合适的标准化方法,一般情况下推荐极差标准化。
    • 若方案数量较多,可手动选择遗传算法或贪心算法并调整参数以提高求解质量。
  4. 结果解读

    • 最终排名反映了与全体指标偏好最一致的顺序。
    • 结合偏好矩阵热力图,观察方案之间的优劣关系。
    • 若多个方案的排名接近,可进一步分析其在各指标上的表现。
  5. 迭代优化

    • 若结果与预期不符,可检查指标类型设置是否正确,或调整权重。
    • 尝试不同标准化方法,观察排名的稳定性。
    • 对于重要决策,可使用精确算法(若方案数少)验证结果。

平台界面

官方地址:https://superr.online

CKYL法工具界面

平台界面包含:数据上传区、参数设置区、多工作表预览、分析结果展示和AI分析模块


参考文献

  1. Condorcet M. Essai sur l’application de l’analyse à la probabilité des décisions rendues à la pluralité des voix[M]. Paris, 1785.
  2. Kemeny J G. Mathematics without numbers[J]. Daedalus, 1959, 88(4): 577-591.
  3. Young H P, Levenglick A. A consistent extension of Condorcet’s election principle[J]. SIAM Journal on Applied Mathematics, 1978, 35(2): 285-300.
  4. 基于投票理论的多准则决策方法及其应用[J]. 系统工程理论与实践,2012.