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报告下载。
工作表管理
- 多工作表自动识别,支持批量分析。
- 实时显示每个工作表的验证状态。
- 支持对比不同工作表的排名结果。
使用建议
准备阶段:明确评价对象和指标体系,确定每个指标的类型(极大型/极小型/中间型/区间型)。
数据收集:使用平台提供的模板文件填写数据,确保数据完整且无缺失值。每个工作表可代表不同的数据集。
参数设置:
- 正确设置指标类型,负向指标务必选择“极小型”。
- 根据决策偏好设置权重,或使用等权重作为基准。
- 选择合适的标准化方法,一般情况下推荐极差标准化。
- 若方案数量较多,可手动选择遗传算法或贪心算法并调整参数以提高求解质量。
结果解读:
- 最终排名反映了与全体指标偏好最一致的顺序。
- 结合偏好矩阵热力图,观察方案之间的优劣关系。
- 若多个方案的排名接近,可进一步分析其在各指标上的表现。
迭代优化:
- 若结果与预期不符,可检查指标类型设置是否正确,或调整权重。
- 尝试不同标准化方法,观察排名的稳定性。
- 对于重要决策,可使用精确算法(若方案数少)验证结果。
平台界面

平台界面包含:数据上传区、参数设置区、多工作表预览、分析结果展示和AI分析模块
参考文献:
- Condorcet M. Essai sur l’application de l’analyse à la probabilité des décisions rendues à la pluralité des voix[M]. Paris, 1785.
- Kemeny J G. Mathematics without numbers[J]. Daedalus, 1959, 88(4): 577-591.
- Young H P, Levenglick A. A consistent extension of Condorcet’s election principle[J]. SIAM Journal on Applied Mathematics, 1978, 35(2): 285-300.
- 基于投票理论的多准则决策方法及其应用[J]. 系统工程理论与实践,2012.