精华内容
下载资源
问答
  • 一、案例描述在一个工厂里,有一百多个岗位,这些岗位复杂程度各不相同,工作的环境各不一样,一个合理的岗位工资分配制度对于提高员工满意度、体现人力资源的公平性具有非常重要的作用,而该工厂所处的行业比较特殊...

    一、案例描述

    在一个工厂里,有一百多个岗位,这些岗位复杂程度各不相同,工作的环境各不一样,一个合理的岗位工资分配制度对于提高员工满意度、体现人力资源的公平性具有非常重要的作用,而该工厂所处的行业比较特殊,没有可以借鉴的经验,必须由该工厂对自已的岗位工资水平进行合理地定义。

    现已知社会的平均工资水平,该公司决定比社会平均工资水平高10%做为公司总的基数,如何对工厂内部各个岗位的工资基数进行分配,这是该文章要解决的问题。

    以一线员工的岗位工资为例,在对公司各层次的调查中,大家一致同意将劳动强度、岗位技术含量、生产出的产品对质量的影响以及该岗位员工的获得性做为一个评判标准:

    劳动强度(labour

    intensity,简称LI):越高则工资应该越高;

    技术含量(Technical

    content,简称TC):越高则工资应该越高;

    对质量影响(Influence on

    quality,简称IQ):影响越大则工资应该越高;

    工人获得性(Worker

    acquired,简称WA):越难获得的岗位,工资应该越高。

    以A、B、C、D

    四个岗位为例,利用层次分析法进行分析求出这四个岗位的薪酬水平应该怎样分配,才是合理的,在这里A、B、C、D

    是我们要分析的决策变量。

    二、编辑数据文件

    编辑一个数据文件,名称为"案例1.yaml",保存到R项目文件夹中,内容如下:

    ------------------------

    Version:

    2.0

    Alternatives:

    &alternatives

    A岗位:

    LI: 100

    TC: 30

    IQ: 40

    WA: 30

    B岗位:

    LI: 85

    TC: 70

    IQ: 80

    WA: 70

    C岗位:

    LI: 60

    TC: 100

    IQ: 20

    WA: 90

    D岗位:

    LI: 70

    TC: 60

    IQ: 60

    WA: 50

    Goal:

    name:

    岗位价值评估

    preferences:

    pairwise:

    - [LI, TC, 2/3]

    - [LI, IQ, 3/4]

    - [LI, WA, 3]

    - [TC, IQ, 3]

    - [TC, WA, 6]

    - [IQ, WA, 6]

    children:

    LI:

    preferences:

    scoreFunction: function(a) a$LI

    children:

    *alternatives

    TC:

    preferences:

    scoreFunction: function(a) a$TC

    children:

    *alternatives

    IQ:

    preferences:

    scoreFunction: function(a) a$IQ

    children:

    *alternatives

    WA:

    preferences:

    scoreFunction: function(a) a$WA

    children:

    *alternatives

    ------------------------

    注意,以上内容可复制到一个文本文件中保存,后缀名改为.yml,当然,也可以不改后缀名,直接用.txt。

    三、R语言分析

    在R中编辑一小段代码,用于载入数据文件,进行层次分析。代码如下:

    ------------------------

    #

    载入ahp包

    library(ahp)

    #

    将数据文件转码(因含有中文)

    x

    readLines("案例1.yaml")

    x

    iconv(x, 'UTF-8', 'UTF-8')

    writeLines(x,

    "案例1C.yaml")

    # 进行层次分析

    # 加载数据文件

    ahpfile

    Load("案例1C.yaml")

    # 生成层次图

    Visualize(ahpfile)

    # 计算

    Calculate(ahpfile)

    # 生成表格化数据

    AnalyzeTable(ahpfile)

    ------------------------

    四、分析结果

    1. 层次结构图

    2.权重分析表

    3.结果分析

    ABCD四个岗位,B岗位的重要性最大,其余依次为CDA岗位。

    从结果可以得到ABCD四个岗位的重要性的量化指标,当设置平均工资为100元时,各岗位的工资基数计算如下:

    A岗位 = 0.18 × 4000 =

    720元

    B岗位 = 0.30 × 4000 =

    1200元

    C岗位 = 0.27 × 4000 =

    1080元

    D岗位 = 0.25 ×4000 =

    1000元

    不过从不一致性系数看,设计数据文件时候还存在一些问题,不一致性比较高,在实际运用中应进行修正。

    展开全文
  • 一、层次分析法原理层次分析法(analytic hierarchy process,ahp)由美国运筹学家托马斯·塞蒂(t. l. saaty)于20世纪70年代中期提出,用于确定评价模型中各评价因子/准则的权重,进一步选择最优方案。该方法仍具有较...

    一、层次分析法原理

    层次分析法(analytic hierarchy process,ahp)由美国运筹学家托马斯·塞蒂(t. l. saaty)于20世纪70年代中期提出,用于确定评价模型中各评价因子/准则的权重,进一步选择最优方案。该方法仍具有较强的主观性,判断/比较矩阵的构造在一定程度上是拍脑门决定的,一致性检验只是检验拍脑门有没有自相矛盾得太离谱。

    相关的理论参考可见:wiki百科

    二、代码实现

    需要借助python的numpy矩阵运算包,代码最后用了一个b1矩阵进行了调试,相关代码如下,具体的实现流程已经用详细的注释标明,各位小伙伴有疑问的欢迎留言和我一起讨论。

    import numpy as np

    class ahp:

    """

    相关信息的传入和准备

    """

    def __init__(self, array):

    ## 记录矩阵相关信息

    self.array = array

    ## 记录矩阵大小

    self.n = array.shape[0]

    # 初始化ri值,用于一致性检验

    self.ri_list = [0, 0, 0.52, 0.89, 1.12, 1.26, 1.36, 1.41, 1.46, 1.49, 1.52, 1.54, 1.56, 1.58,

    1.59]

    # 矩阵的特征值和特征向量

    self.eig_val, self.eig_vector = np.linalg.eig(self.array)

    # 矩阵的最大特征值

    self.max_eig_val = np.max(self.eig_val)

    # 矩阵最大特征值对应的特征向量

    self.max_eig_vector = self.eig_vector[:, np.argmax(self.eig_val)].real

    # 矩阵的一致性指标ci

    self.ci_val = (self.max_eig_val - self.n) / (self.n - 1)

    # 矩阵的一致性比例cr

    self.cr_val = self.ci_val / (self.ri_list[self.n - 1])

    """

    一致性判断

    """

    def test_consist(self):

    # 打印矩阵的一致性指标ci和一致性比例cr

    print("判断矩阵的ci值为:" + str(self.ci_val))

    print("判断矩阵的cr值为:" + str(self.cr_val))

    # 进行一致性检验判断

    if self.n == 2: # 当只有两个子因素的情况

    print("仅包含两个子因素,不存在一致性问题")

    else:

    if self.cr_val < 0.1: # cr值小于0.1,可以通过一致性检验

    print("判断矩阵的cr值为" + str(self.cr_val) + ",通过一致性检验")

    return true

    else: # cr值大于0.1, 一致性检验不通过

    print("判断矩阵的cr值为" + str(self.cr_val) + "未通过一致性检验")

    return false

    """

    算术平均法求权重

    """

    def cal_weight_by_arithmetic_method(self):

    # 求矩阵的每列的和

    col_sum = np.sum(self.array, axis=0)

    # 将判断矩阵按照列归一化

    array_normed = self.array / col_sum

    # 计算权重向量

    array_weight = np.sum(array_normed, axis=1) / self.n

    # 打印权重向量

    print("算术平均法计算得到的权重向量为:\n", array_weight)

    # 返回权重向量的值

    return array_weight

    """

    几何平均法求权重

    """

    def cal_weight__by_geometric_method(self):

    # 求矩阵的每列的积

    col_product = np.product(self.array, axis=0)

    # 将得到的积向量的每个分量进行开n次方

    array_power = np.power(col_product, 1 / self.n)

    # 将列向量归一化

    array_weight = array_power / np.sum(array_power)

    # 打印权重向量

    print("几何平均法计算得到的权重向量为:\n", array_weight)

    # 返回权重向量的值

    return array_weight

    """

    特征值法求权重

    """

    def cal_weight__by_eigenvalue_method(self):

    # 将矩阵最大特征值对应的特征向量进行归一化处理就得到了权重

    array_weight = self.max_eig_vector / np.sum(self.max_eig_vector)

    # 打印权重向量

    print("特征值法计算得到的权重向量为:\n", array_weight)

    # 返回权重向量的值

    return array_weight

    if __name__ == "__main__":

    # 给出判断矩阵

    b = np.array([[1, 1 / 3, 1 / 8], [3, 1, 1 / 3], [8, 3, 1]])

    # 算术平均法求权重

    weight1 = ahp(b).cal_weight_by_arithmetic_method()

    # 几何平均法求权重

    weight2 = ahp(b).cal_weight__by_geometric_method()

    # 特征值法求权重

    weight3 = ahp(b).cal_weight__by_eigenvalue_method()

    总结

    到此这篇关于python实现ahp算法(层次分析法)的文章就介绍到这了,更多相关python ahp算法(层次分析法)内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

    希望与广大网友互动??

    点此进行留言吧!

    展开全文
  • 数学建模层次分析法案例 关于大学毕业生就业选择问题 传统的常用的研究自然科学和社会科学的方法有
  • 数学建模 层析分析法 AHP 数学建模 某市为了合理建设市政工程,使综合效益最高,提出的决策方案有:建铁路,建高速公路,景观工程,综合管线工程,水利工程。在决策时要考虑经济效益,社会效益,环境效益三个方面。...
  • 运用层次分析法建模,大体上可按下面四个步骤进行: 建立递阶层次结构模型; 构造出各层次中的所有判断矩阵; 层次单排序及一致性检验; 层次总排序及一致性检验。 2 层次结构模型 层次分析法是用来根据多种准则,...

    1 建模步骤

    运用层次分析法建模,大体上可按下面四个步骤进行:

    建立递阶层次结构模型;
    构造出各层次中的所有判断矩阵;
    层次单排序及一致性检验;
    层次总排序及一致性检验。

    2 层次结构模型

    层次分析法是用来根据多种准则,或是说因素从候选方案中选出最优的一种数学方法
    在这里插入图片描述
    在这里插入图片描述

    3 构建成对比较矩阵

    在这里插入图片描述
    准则层的五个因素比较矩阵
    在这里插入图片描述

    4 实际问题解决

    在这里插入图片描述
    Bi是三个地点关于准则层的比较矩阵。
    如B1是三个地点对景色的比较矩阵。

    5 代码和结果分析

    5.1 代码 1

    %层次分析法(AHP)
    disp('请输入判断矩阵A(n阶)');
    A = input('A=');
    [n,n] = size(A);
    x = ones(n,100);
    y = ones(n,100);
    m = zeros(1,100);
    m(1) = max(x(:,1));
    y(:,1) = x(:,1);
    x(:,2) = A*y(:,1);
    m(2) = max(x(:,2));
    y(:,2) = x(:,2)/m(2);
    p=0.0001; i=2; k=abs(m(2)-m(1));
    while k>p
        i=i+1;
        x(:,i) = A*y(:,i-1);
        m(i) = max(x(:,i));
        y(:,i) = x(:,i)/m(i);
        k=abs(m(i)-m(i-1));
    end
    a = sum(y(:,i));
    w = y(:,i)/a;
    t = m(i);
    disp(w);
    %一致性检验
    CI = (t-n)/(n-1);
    RI = [0 0 0.52 0.89 1.12 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
    CR = CI/RI(n);
    if CR<0.10
        disp('此矩阵一致性可以接受!');
        disp('CI=');disp(CI);
        disp('CR=');disp(CR);
    end
    

    在这里插入图片描述

    请输入判断矩阵A(n阶)
    A=[1 1/2 4 3 3;2 1 7 5 5;1/4 1/7 1 1/2 1/3;1/3 1/5 2 1 1;1/3 1/5 3 1 1]
        0.2636
        0.4758
        0.0538
        0.0981
        0.1087
    
    此矩阵一致性可以接受!
    CI=
        0.0180
    
    CR=
        0.0161
    

    5.2 代码 2

    function [Q]=test1(B)
    %Q为权值,B为对比矩阵
    %导入判别矩阵B
    [n,m]=size(B);
    %判别矩阵具有完全一致性
    for i=1:n
        for j=1:n
            if B(i,j)*B(j,i)~=1   
            fprintf('i=%d,j=%d,B(i,j)=%d,B(j,i)=%d\n',i,j,B(i,j),B(j,i))  
            end  
        end
    end
    %求特征值特征向量,找到最大特征值对应的特征向量
    [V,D]=eig(B);
    tz=max(D);
    tzz=max(tz);
    c1=find(D(1,:)==max(tz));
    tzx=V(:,c1);%特征向量
    %权
    quan=zeros(n,1);
    for i=1:n
    quan(i,1)=tzx(i,1)/sum(tzx);
    end
    Q=quan;
    %一致性检验
    CI=(tzz-n)/(n-1);
    RI=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59];
    %判断是否通过一致性检验
    CR=CI/RI(1,n);
    if CR>=0.1
       fprintf('没有通过一致性检验\n');
    else
      fprintf('通过一致性检验\n');
    end
     
    end
    

    在这里插入图片描述

    5.3 分析

    若想求出去题干中去哪个旅游地最好,也就是确定方案,可以对B使用上面代码,得到权重,与准则层做*和+计算,得出旅游地的最佳选择!

    展开全文
  • 层次分析法应用案例

    2013-08-23 15:40:00
    层次分析法应用案例是关于层次分析的案例,有很多,很有用,下载看看吧
  • 层次分析法昆明理工大学2013.12.17框架第一节 指标体系的建立第二节 指标权重的确定第三节 层析分析法的思想和原理第四节 层次分析法的模型和步骤第五节 层次分析法的应用第一节 指标体系的建立一.指标体系的建立应...
  • (一)、什么是AHP层次分析法层次分析法就是一种定性与定量相结合、系统的、层次化的分析方法;这种方法的特点就是在对复杂决策问题的本质、影响因素及其内在关系等进行深入研究的基础上,利用较少的定量信息使决策...
  • 层次分析法原理及应用案例

    万次阅读 2020-10-30 15:04:00
    层次分析法是指将一个复杂的多目标决策问题作为一个系统,将目标分解为多个目标或准则,进而分解为多指标(或准则、约束)的若干层次,通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标...
  • 层次分析法经典案例篇一:层次分析法步骤层次分析法实例与步骤结合一个具体例子,说明层次分析法的基本步骤和要点。【案例分析】市政工程项目建设决策:层次分析法问题提出市政部门管理人员需要对修建一项市政工程...
  • 层次分析法(AHP)是美国运筹学家匹茨堡大学教授萨蒂(T.L.Saaty)于上世纪70年代初,为美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的...
  • AHP(层次分析法)原理及案例先结合日常生活中的例子深入浅出的讲解了AHP的原理,随后结合案例给出了层次分析法的具体操作实现过程。
  • 对学生建模论文的综合评价分析 摘要 本文研究的是五篇建模论文的评价和比较问题。首先,研读分析了五篇论文,...其次,进行综合量化评价,主要运用的方法是层次分析法和模糊综合评判。最后,依据所得权重大小对论文排序。
  • 层次分析法讲解 PPT

    2011-12-05 22:36:35
    很好的一个讲义,深入浅出讲解了层次分析法,可以配合层次分析法案例PPT一起用
  • 详细介绍了层次分析法基本原理、计算方法及案例分析
  • 是一种实用的多准则决策方法。它把复杂的决策问题表示为一个有序的递阶层次结构,通过人们的主观判断和科学计算给出备选方案的优劣顺序。
  • 介绍了AHP的原理,以及三个难度增加的应用案例分析
  • AHP 层次分析法 一. AHP 层次分析法介绍 AHP 层次分析法简介 AHP,即层次分析法(Analytic Hierarchy Process,AHP)是一种系统化的、层次化的多目标综合评价方法。在评价对象的待评价属性复杂多样,结构各异,...
  • 层次分析法详细介绍和具体案例层次分析法(AHP-Analytic Hierachy process)---- 多目标决策方法 70 年代由美国运筹学家T•L•Satty提出的,是一种定性与定量分析相结合的多目标决策分析方法论。吸收利用行为科学的...
  • 层次分析法

    2011-12-05 22:38:03
    很好的一个讲义,以案例形式深入浅出讲解了层次分析法,可以配合层次分析法一起用
  • 模糊层次分析案例

    2017-12-27 10:48:20
    层次分析法介绍,里面有详细教程和案例分析,计算过程详细
  • 夜摊经济崛起,如何在保证最低的成本下,获取最大的收益?...层次分析法的实现实操案例:上海夜摊选址本文关键词:层次分析法(AHP)、选址、Excel操作一、层次分析法的实现1.1 层次分析法的应用现实生活中,影响决策...
  • 采用了层次分析法对被评估企业商标资产贡献进行分析,为收益法评估商标价值时确定成分成率提供参考。一、理论陈述层次分析法(Analytic Hierarchy Process),简称AHP法,是美国著名的运筹学家萨迪教授在1980年提出并...
  • 我写过层次分析法的Matlab实现:张敬信:【评价算法】层次分析法​zhuanlan.zhihu.com其中的ahp函数是来自《吴鹏. Matlab高效编程技巧与应用:25个案例分析》,我只是增加或改写了注释说明。但是该函数对大家使用不...
  • 层次聚类分析Matlab编码计算”01—AHP层次决策分析计算函数求判断矩阵最大特征根和归一化特征向量:function [maxEigVal,w] = maxEigValVec(A)%求最大特征值及对应的归一化特征向量%A为判断矩阵%maxEigval:最大...
  • 8.1 系统评价决策模型概论 8.1.1 问题的引入 8.1.2 系统评价决策模型的基本概念 8.1.3 系统评价决策模型的要素 8.1.4 系统评价决策模型的...8.2 案例分析-汽车选购 8.2.1 问题引入 8.2.2 决策矩阵的规范化 ...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 190
精华内容 76
关键字:

层次分析法案例