Bootstrap

职员晋升问题

  • 模型问题描述:

职场中公平、公正地实施职员晋升,是管理者的一件非常重要而又困难的工作种简单易行、具有一定合理性的办法是,由评委会先订立全面评价一位职员的几条准则,如工作年限﹑教育程度、工作能力,道德品质等,并且确定各条准则在职员晋升这个总目标中所占的权重,然后按照每一条准则对每位申报晋升的职员进行比较和评判,最后将准则的权重与比较、评判的结果加以综合,得到各位申报者的最终排序,作为管理者对职员晋升的决策.

  • 建立的模型:

    A:判断矩阵(n×n 矩阵),用于描述各准则或方案之间的相对重要性。

    w:特征向量(权向量),表示每个准则或方案的相对权重,是判断矩阵的近似特征向量。

    λmax:最大特征根,表示判断矩阵的主特征值,用于衡量矩阵的一致性。

    CI:一致性指标,衡量判断矩阵一致性的指标

A*w= λmax*w

CI=λmax- nn-1

CR= CIRIn

CRcombine=k =14xk*CRk

  • 模型的求解与分析:

  求解的目标:

  • 计算每一层判断矩阵的最大特征根 λmax
  • 计算每一层判断矩阵的特征向量(权向量) w。
  • 计算一致性指标 CI 和一致性比率 CR。
  • 在多层次决策问题中,计算第 3 层对第 1 层的组合权向量以及一致性比率。

  分析内容:

  • 分析各层次判断矩阵的一致性,检查是否满足合理的标准。
  • 比较不同层次间的一致性比率,评估决策模型的整体合理性。
  • 分析各层次的特征向量(权向量),并根据权重进行组合,得出最终的决策权重

实验报告部分

  • 实验步骤:(实验代码)

TR

clc; clear;

% 输入判断矩阵 A

A = [1, 1/2, 1/3, 1/2;

     2, 1,   1/2, 1;

     3, 2,   1,   2;

     2, 1,   1/2, 1];

% 计算第2层的数据

[lamda, x, CI, CR] = TRfun(A);

disp('=== 第2层数据 ===');

disp(['最大特征根 λ: ', num2str(lamda)]);

disp('特征向量(权向量) w:');

disp(x);

disp(['一致性指标 CI: ', num2str(CI)]);

disp(['一致性比率 CR: ', num2str(CR)]);

disp(' ');

% 第3层判断矩阵 B

B = zeros(3, 3, 4);

B(:, :, 1) = [1, 1/2, 1/4;

              2, 1,   1/3;

              4, 3,   1];

B(:, :, 2) = [1, 2, 3;

              1/2, 1, 2;

              1/3, 1/2, 1];

B(:, :, 3) = [1, 1, 2;

              1, 1, 2;

              1/2, 1/2, 1];

B(:, :, 4) = [1, 3, 4;

              1/2, 1, 2;

              1/4, 1/2, 1];

% 初始化第3层数据存储

lamda3 = zeros(1, 4);

x3 = zeros(3, 4);

CI3 = zeros(1, 4);

CR3 = zeros(1, 4);

disp('=== 第3层数据 ===');

for i = 1:4

    [lamda3(i), x3(:, i), CI3(i), CR3(i)] = TRfun(B(:, :, i));

    disp(['第 ', num2str(i), ' 个子判断矩阵:']);

    disp(['  最大特征根 λk: ', num2str(lamda3(i))]);

    disp('  特征向量(权向量) w(3)k:');

    disp(x3(:, i));

    disp(['  一致性指标 CIk: ', num2str(CI3(i))]);

    disp(['  一致性比率 CRk: ', num2str(CR3(i))]);

    disp(' ');

end

% 计算最下层对目标层的组合权向量

w = x3 * x; % 组合权向量

disp('=== 最下层对目标(第1层)的组合权向量 ===');

disp(w);

% 计算组合一致性比率

% 第2层和第3层的组合一致性比率

disp('=== 组合一致性比率 ===');

CR_combine = sum(x .* CR3');

disp(['第2层和第3层的组合一致性比率: ', num2str(CR_combine)]);

% 最下层对第1层的组合一致性比率

disp(['最下层对第1层的组合一致性比率: ', num2str(CR_combine + CR)]);

TRfun

function [lamda,w,CI,CR]=TRfun(A)

RI=[0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49];

[lamda,w]=HEfun(A);

n=size(A,1);

CI=(lamda-n)/(n-1);

CR=CI/RI(n);

end

HEfun

function [lamda,w]=HEfun(A)

n=size(A,1);

for k=1:n %a.将A的每一列向量归一化

    AA(:,k)=A(:,k)./sum(A(:,k));

end

ww=sum(AA,2); %b.对AA按行求和,ww为列向量

w=ww./sum(ww); %c.归一化,得w为近似特征列向量

lamda=sum(A*w./w)/n;

end

;