精华内容
下载资源
问答
  • 边界分析

    2021-07-13 10:33:40
    在测试技术中,边界分析与同等价类划分有这同意重要的地位,测试工作中频繁使用的程度与等价类划分基本一致,每使用一次等价类划分都应该对应使用边界分析,对着两个方法结合的深入理解,以及灵活...

    1.定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,测试用例来自等价类的边界。 在测试技术中,边界值分析法与同等价类划分法有这同意重要的地位,测试工作中频繁使用的程度与等价类划分法基本一致,每使用一次等价类划分法都应该对应使用边界值分析法,对着两个方法结合的深入理解,以及灵活使用也是软件测试工作的基础。

    2.设计思想 根据大量的测试统计数据,很多错误是发生在输入或输出范围的边界上,而不是发生在输入/输出范围的中间区域。因此针对各种边界情况设计测试用例,可以查出更多的错误。所以,边界值分析法是一种很实用的黑盒测试用例方法,它具有很强的发现故障缺陷能力。        程序错误更可能出现在输入变量的附近,因此选取正好等于、刚刚大于、刚刚小于边界的值;根据输入参数的个数,可以分为单缺陷问题和多缺陷问题。 单缺陷问题即程序输入由一个输入取极值,其他输入取正常值;反之,多缺陷问题就是程序由多个输入参数同时取极值时所产生的问题。       

    3.边界值类型 通常边界值的类型分为:数值、字符、速度、地址、大小、范围、数量等等。 上述类型的边界值应该在最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最快/最慢、最长/最短中取边界值;如下述取值:

    4.边界值测试

    1)对于有一个输入变量的应用程序,设计测试用例的时候,使得一个变量在输入值,取最大值、最大值+1、最大值-1、正常中间值、最小值-1、最小值、最小值+1;其中包含两个非法取值(最大值+1,最小值-1);

    2)对于有n个输入变量的应用程序,那边界值分析的测试用例个数应为7n+1个;

    3)以上两点均是根据单缺陷问题思想所设计的用例;

    4)根据多缺陷问题思想,需对上述设计的用例进行补充;在多缺陷思想中,拒绝单缺陷的输入,应注重当多个变量取极值时出现的问题。即对每个输入变量进行边界值的分析,然后对每个输入变量的边界值集合进行笛卡尔积计算。对于无效输入值不进行计算(根据等价类分析法,一个用例只能存在覆盖一个输入变量的非法值)那对于有n个输入变量的程序,该测试用例会存在5^n个用例。 综上来看对于n个输入变量的程序,会产生7n+1个单缺陷输入用例和5^n个多缺陷用例。

    5)边界特殊值,特殊值使用业务领域知识,进行赋值,如64,128,2月29日等;

    展开全文
  • 值法是一种依据各指标值所包含的信息量大小,来确定决策指标权重的客观赋权法。 灰色系统理论的研究对象是部分信息已知而部分信息未知的“贫信息”’不确定性系统,利用已知信息来确定系统的未知信息,对样本量...

    熵值法

    在信息论中,熵值能够很好的反映信息无序化程度,其值越小,系统无序度越低,信息的效用值越大,其权重也相应越大;反之,其值越大,系统无序度越高,信息的效用值越小,权重也越小。

    步骤

    熵值法赋权计算步骤如下:
    1)确定 m m m个需进行评价的样本对象和 n n n个评价指标,构建一个对应的判断矩阵 R = ( x i j ) m n , ( i = 1 , 2 , . . . , m , j = 1 , 2 , . . . n ) R=(x_{ij})_{mn},(i=1,2,...,m,j=1,2,...n) R=(xij)mn,(i=1,2,...,mj=1,2,...n).
    2)将判断矩阵进行标准化,即将各指标进行同度量化。该模型采用比重法对指标判断矩阵原始值进行标准化:
    P i j = x i j ∑ i = 1 m x i j P_{i j}=\frac{x_{i j}}{\sum_{i=1}^{m} x_{i j}} Pij=i=1mxijxij
    3)计算第 j j j项指标的熵值,利用熵值公式计算评价指标的熵值:
    e j = − k ∑ i = 1 m P i j ln ⁡ P i j ,  其中  k = 1 ln ⁡ m ( i = 1 , … , m ; j = 1 , … , n ) e_{j}=-k \sum_{i=1}^{m} P_{i j} \ln P_{i j}, \text { 其中 } k=\frac{1}{\ln m}(i=1, \ldots, m ; j=1, \ldots, n) ej=ki=1mPijlnPij, 其中 k=lnm1(i=1,,m;j=1,,n)
    4)计算第 j j j项指标的差异性系数 g j g_j gj。熵值越小,指标间差异性越大,指标在综合评价中所起作用就越大:
    g j = 1 − e j g_j=1-e_j gj=1ej
    5)用熵值法估算各指标的权重,本质上是计算各项指标的价值系数,最后可以得到第 j j j项指标的权重系数 ω j \omega_j ωj
    ω j = g j ∑ i = 1 n g j \omega_{j}=\frac{g_{j}}{\sum_{i=1}^{n} g_{j}} ωj=i=1ngjgj

    python实现

    def Entropy_(standardized_data,weight_num=None,up_layer_num=None,weight_interval=None):
        '''
        :param standardized_data: 需要计算权重的数据
        :param weight_num: 权重个数
        :param up_layer_num: 是否要计算第二层权重,需要则传入上层指标个数
        :param weight_interval: 若要计算第二层权重,传入第一层指标个数区间
        :return: 第一层的差异性系数g,权重w,熵值e
        '''
        rows, cols = standardized_data.shape
        k = 1/math.log(rows)
        standardized_data_arr = np.array(standardized_data)
        standardized_data_log = np.log(standardized_data_arr)
        use_data = pd.DataFrame(standardized_data_arr*standardized_data_log)
        use_data.loc['col_sum'] = use_data.apply(lambda x:x.sum())
        #计算熵值
        e = use_data.loc['col_sum']*(-k)
        #计算差异性系数
        g = 1-e
        if up_layer_num is not None:
            #权重计算
            g_arr = np.zeros(shape=[up_layer_num])
            for i in range(up_layer_num):
                for j in weight_interval[i]:
                    g_arr[i] = g_arr[i] + g.iloc[j]
            #权重
            w = np.zeros(weight_num)
            for i in range(up_layer_num):
                for j in weight_interval[i]:
                    w[j] = g[j] / g_arr[i]
        else:
            # 权重计算
            w = np.array([i/np.sum(g) for i  in g])
        w = pd.DataFrame(w)
        return g,e,w
    

    灰色关联分析

    灰色系统理论的研究对象是部分信息已知而部分信息未知的“贫信息”’不确定性系统,利用已知信息来确定系统的未知信息,对样本量没有严格的规定,也不要求服从任何典型分布规律,且不会出现量化结果与定性分析不一致的情况。而关联分析是灰色系统分析、评级和决策的基础,其基本思想是根据数据指标呈现出的序列曲线的几何形状相似程度来判断两个指标之间的联系是否紧密,通过关联度表征两个事物间的关联程度。

    灰色关联度分析步骤

    1)延用熵值法中构建的原始数据判断矩阵 R = ( x i j ) m × n R=(x_{ij})_{m×n} R=(xij)m×n,矩阵如下:
    R = [ x 11 ⋯ x 1 n ⋮ ⋱ ⋮ x m 1 ⋯ x m n ] R=\left[\begin{array}{ccc} x_{11} & \cdots & x_{1 n} \\ \vdots & \ddots & \vdots \\ x_{m 1} & \cdots & x_{m n} \end{array}\right] R=x11xm1x1nxmn
    2)选取最优指标集
    各评价指标的最优值组成的集合称为最优集,它是评价对象比较的基准,记录为
    F = k j , ( j = 1 , 2 , 3 , . . . , n ) F=k_j,(j=1,2,3,...,n) F=kj,(j=1,2,3,...,n)
    式子中 k j k_j kj为第 j j j个指标的最优值。在最优值的选取过程中,若指标为成本型指标,则最优值选取当中的最小值;若指标为效益型指标,则最优值选取当中的最大值。最优指标集和各待评价对象的指标组成一个矩阵 D:
    D = [ k 1 ⋯ k n x 1 ⋯ x n ⋮ ⋱ ⋮ x m 1 ⋯ x m n ] D=\left[\begin{array}{ccc} k_{1} & \cdots & k_{n} \\ x_{1} & \cdots & x_{n} \\ \vdots & \ddots & \vdots \\ x_{m 1} & \cdots & x_{m n} \end{array}\right] D=k1x1xm1knxnxmn
    式中, x i j x_{ij} xij为第 i i i个评价对象的第 j j j个指标的原始数值.
    3)计算关联系数,求取评判矩阵
    根据灰色系统理论,将最优数列作为参考数列,将其他数列作为被比较数列,用关联分析法分别求得第 i i i个评价对象的第 j j j个指标与第 j j j个最优指标的关联系数 e i j e_{ij} eij,计算公式如下:
    e i j = min ⁡ i min ⁡ j ∣ k j − x i j ∣ + ρ max ⁡ i max ⁡ j ∣ k j − x i j ∣ ∣ k j − x i j ∣ + ρ max ⁡ i max ⁡ j ∣ k j − x i j ∣ e_{i j}=\frac{\min _{i} \min _{j}\left|k_{j}-x_{i j}\right|+\rho \max _{i} \max _{j}\left|k_{j}-x_{i j}\right|}{\left|k_{j}-x_{i j}\right|+\rho \max _{i} \max _{j}\left|k_{j}-x_{i j}\right|} eij=kjxij+ρmaximaxjkjxijminiminjkjxij+ρmaximaxjkjxij
    式中, ρ \rho ρ为分辨系数,其取值范围在[0,1],一般取 ρ = 0.5 \rho=0.5 ρ=0.5 min ⁡ i min ⁡ j ∣ k j − x i j ∣ \min _{i} \min _{j}\left|k_{j}-x_{i j}\right| miniminjkjxij为两级最小差, max ⁡ i max ⁡ j ∣ k j − x i j ∣ \max _{i} \max _{j}\left|k_{j}-x_{i j}\right| maximaxjkjxij为两级最大差。
    则各指标的评判矩阵即关联系数记录为 E E E,如下:
    E = [ e 11 ⋯ e 1 n ⋮ ⋱ ⋮ e m 1 ⋯ e m n ] E=\left[\begin{array}{ccc} e_{11} & \cdots & e_{1 n} \\ \vdots & \ddots & \vdots \\ e_{m 1} & \cdots & e_{m n} \end{array}\right] E=e11em1e1nemn
    式中, e i j e_{ij} eij为第 i i i个样本第 j j j个指标与第 j j j个最优指标的关联系数。
    4)建立灰色单层次评判矩阵
    R X = E × W RX=E×W RX=E×W
    式中, R X = [ r 1 , r 2 , … , r m ] T R X=\left[r_{1}, r_{2}, \ldots, r_{m}\right]^{T} RX=[r1,r2,,rm]T m m m个被评价对象的综合评价结果向量;即 r i = ∑ i = 1 m ω j e i j r_i = \sum_{i=1}^{m} \omega_{j}e_{ij} ri=i=1mωjeij W = [ ω 1 , … , ω n ] W=\left[\omega_1,\ldots,\omega_n \right] W=[ω1,,ωn] n n n个评价指标的权重分配向量,其中 ∑ j = 1 n ω j = 1 \sum_{j=1}^{n} \omega_{j}=1 j=1nωj=1
    5)根据实际指标情况,可建立多层评判标准
    当评价对象的各个指标间分为不同层次时,需要采用多层次综合评价法。灰色多层次综合评判是以单层次综合评价为基础,需将单层次评价结果矩阵作为下一个层次的原始指标列,再重复进行下一层次单层评判计算,依次类推至最高层。若灰色关联度越大,说明该评价对象与参考指标越接近,即第 i i i个评价对象越优于其他,通过关联度这指标排出样本之间的优劣次序。

    python实现

    暂无
    

    层次分析法

    层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。
    层次分析法属于主观赋权法,具有简洁、系统性分析的优点,但主观性强,不易令人信服,并且当数据量较大时,权重难以确定。

    计算步骤

    1)建立层次结构模型
    将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。 最高层是指决策的目的、要解决的问题。 最低层是指决策时的备选方案。 中间层是指考虑的因素、决策的准则。对于相邻的两层,称高层为目标层,低层为因素层。
    2)构造判断(成对比较)矩阵
    两两因素相互比较,对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高准确度。如对某一准则,对其下的各方案进行两两对比,并按其重要性程度评定等级。 为要素与要素重要性比较结果,表1列出Saaty给出的9个重要性等级及其赋值。按两两比较结果构成的矩阵称作判断矩阵:
    重要性等级及赋值
    3)层次单排序及其一致性检验
    对应于判断矩阵最大特征根 λ m a x \lambda_{max} λmax的特征向量,经归一化后记为 W W W W W W的元素为同一层次因素对于上一层次因素某因素相对重要性的排序权值,这一过程称为层次单排序。能否确认层次单排序,则需要进行一致性检验,所谓一致性检验是指对 A A A确定不一致的允许范围。其中, n n n阶一致阵的唯一非零特征根为 n n n;$n 阶 正 互 反 阵 阶正互反阵 A$的最大特征根 λ ≥ n \lambda ≥n λn, 当且仅当 λ = n \lambda = n λ=n时, A A A为一致矩阵。
    一致性指标用CI计算,CI越小,说明一致性越大,计算公式为:
    C I = λ − n n − 1 CI= \frac{\lambda-n}{n-1} CI=n1λn
    C I = 0 CI=0 CI=0,有完全的一致性; C I CI CI接近于 0 0 0,有满意的一致性; C I CI CI 越大,不一致越严重。
    为衡量 C I CI CI 的大小,引入随机一致性指标 R I RI RI
    R I = C I 1 + C I 2 + ⋯ + C I n n RI=\frac{CI_1+CI_2+\dots+CI_n}{n} RI=nCI1+CI2++CIn
    其与矩阵阶数的关系,一般情况下,矩阵阶数越大,则出现一致性随机偏离的可能性也越大,其对应关系如表2:
    在这里插入图片描述
    考虑到一致性的偏离可能是由于随机原因造成的,因此在检验判断矩阵是否具有满意的一致性时,还需将 C I CI CI和随机一致性指标 R I RI RI进行比较,得出检验系数 C R CR CR,公式如下:
    C R = C I R I CR=\frac{CI}{RI} CR=RICI
    一般,如果 C R < 0.1 CR<0.1 CR<0.1 ,则认为该判断矩阵通过一致性检验,否则就不具有满意一致性。
    4)层次总排序及其一致性检验

    python实现

    # python3.7
    # -*- coding: utf-8 -*-
    #@Author    : huinono
    #@Software  : PyCharm
    
    import warnings
    import numpy as np
    import pandas as pd
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    warnings.filterwarnings('ignore')
    
    mpl.rcParams['font.sans-serif'] = 'SimHei'
    mpl.rcParams['axes.unicode_minus'] = 'False'
    
    plt.rcParams['font.sans-serif'] = 'SimHei'
    plt.rcParams['axes.unicode_minus'] = 'False'
    
    '''
    1、构建判断矩阵:准则层和方案层判断矩阵
    2、对方案层判断矩阵求特征向量
    3、计算最大特征值与层次单排序的一致性检验
    4、层次总排序的一致性检验
    5、求得权重
    '''
    class AHP(object):
        def __init__(self):
            self.RI = [0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]
    
        def VectorsCal(dself,data):
            data_sum = np.sum(data,axis=1)
            data_mean = data_sum/data.shape[0]
            data_vecs = data_mean/np.sum(data_mean)
            return data_vecs
    
        def SOConsistencyCheck(self,vals_max,n):
            CI = (vals_max-n)/(n-1)
            if CI == 0:
                CR=0
                RI = self.RI[n - 1]
            else:
                RI = self.RI[n-1]
                CR = CI/RI
            return CR,CI,RI
    
        def weightCal(self,weight_interval,weight_num,JudgmentMatrix_all):
            '求特征向量'
            matrix_vecs_ = [self.VectorsCal(con) for con in JudgmentMatrix_all]
            '计算最大特征值和单排序一致性检验'
            matrix_vals_vecs = [np.linalg.eig(con) for con in JudgmentMatrix_all]
            matrix_vals_max = [np.max(vals_vecs[0]) for vals_vecs in matrix_vals_vecs]
            matrix_CR = [self.SOConsistencyCheck(matrix_vals_max[i], JudgmentMatrix_all[i].shape[0])[0] for i in range(len(matrix_vals_max))]
            matrix_CI = [self.SOConsistencyCheck(matrix_vals_max[i], JudgmentMatrix_all[i].shape[0])[1] for i in range(len(matrix_vals_max))]
            matrix_RI = [self.SOConsistencyCheck(matrix_vals_max[i], JudgmentMatrix_all[i].shape[0])[2] for i in range(len(matrix_vals_max))]
            '总排序一致性检验'
            C1 = matrix_vecs_[-1].reshape(-1, 1)
            matrix_zero = np.zeros(weight_num)
            P = []
            length = len(weight_interval)
            for i in range(length):
                if i == 0:
                    P1 = np.concatenate([matrix_vecs_[i], matrix_zero[weight_interval[i][-1] + 1:]], axis=0).reshape(-1, 1)
                    P.append(P1)
                elif i == length-1:
                    P3 = np.concatenate([matrix_zero[:weight_interval[i][0]], matrix_vecs_[i]], axis=0).reshape(-1, 1)
                    P.append(P3)
                else:
                    P2 = np.concatenate([matrix_zero[:weight_interval[i][0]], matrix_vecs_[i], matrix_zero[weight_interval[i][-1] + 1:]],axis=0).reshape(-1, 1)
                    P.append(P2)
            weight_one = np.dot(np.concatenate(P, axis=1), C1)
            if np.dot(matrix_CI[1:], C1) == 0 and np.dot(matrix_RI[1:],C1) == 0:
                CR1 = 0
            else:
                CR1 = np.dot(matrix_CI[1:], C1) / np.dot(matrix_RI[1:],C1)
            return weight_one,matrix_CR,CR1,matrix_vecs_,matrix_vals_max
    
    展开全文
  • 二、逐点比较法圆弧插补圆弧插补加工:是将加工点到圆心的距离与被加工圆弧的名义半径相比较,并根据偏差大小确定坐标进给方向,以逼近被加工圆弧。下面以第一象限逆圆弧为例,讨论圆弧的插补方法。如图 3 — 4 所示...

    二、逐点比较法圆弧插补

    圆弧插补加工:

    是将加工点到圆心的距离与被加工圆弧的名义半径相比较,并根据偏差大小确定坐标进给方向,以逼近被加工圆弧。下面以第一象限逆圆弧为例,讨论圆弧的插补方法。

    如图 3 — 4 所示,设要加工圆弧为第一象限逆圆弧 AB ,原点为圆心 o ,起点为 A(

    1808afad4a1935f9cbbe8fa0baf6021a.gif) ,终点为 B(

    2008621155254201105172315393796.gif) ,半径为 R 。瞬时加工点为 P(

    68406becda28b3e59aa3891bdfcc41f8.gif) ,点 P 到圆心距离为

    2008621155332201105172315393798.gif

    若点 P 正好在圆弧上,则有

    b67e02e76b5ecbec4e85ddb51e84ebc0.gif

    b8166f4fc31f7af7679886b22d2a31e8.gif

    图 3 — 4 逐点比较法第一象限圆弧插补 即

    405440a2c4b55a9296ea687e4a174ac3.gif

    若点 P 在圆弧外侧,则有

    39101baef56bfb65e0b1a4ee5efedb6e.gif

    6423b5a42c861cd3257d2391abe31065.gif

    若点 P 在圆弧内侧,则有

    41c1745baf1849acc5d44951ad4dc7ce.gif

    22426b7f464e1dd28433ea039c58419c.gif

    显然,若令

    bcb982e92e64011bdc0963bcb9ef4e85.gif(3 — 4)

    则有:

    e6427d5689ae9ef240a73b7386796629.gif,则点 P 在圆弧上;

    fa16185f885bbea23c9c377c15919d90.gif,则点 P 在圆弧外侧;

    2008621153739201105172315393809.gif,则点 P 在圆弧内侧。

    bfa659dcb4aa280460aea78d43037036.gif时,为逼近圆弧,应向 --X 方向进给一步;当

    2008621153739201105172315393809.gif时,应向 +y 方向进给一步。这样,就可获得逼近圆弧的折线图。

    与直线插补偏差计算公式相似,圆弧插补的偏差计算也采用递推的方法以简化计算。若加工点

    f09def1b7345b53e7c74f764a11a51e1.gif

    为逼近该圆需沿 --X 方向进给一步,移到新加工点

    a89545e3e7135c901031e3d36193b374.gif,此时新加工点的坐标值为

    3abb0f65ba5532f73d66919133a4c2df.gif

    200862115586201105172315393815.gif

    新加工点的偏差为

    3ee84961d4e86cb5412a4db93151709a.gif

    e2d7a2cc9f13c92a9bcfae8f6198afc5.gif

    95c68afd4b9dc6b8116405e753a33195.gif

    若加工点

    fbeb0ffbcdcd87d3717c02b3dd218c4f.gif

    为逼近该圆需沿十 y 方向进给一步,移到新加工点

    86599d5f24ed35a7e43386621917264e.gif,此时新加工点的坐标值为

    9cf5a52ee309686ee094058f20a9edbd.gif

    200862116018201105172315393822.gif

    新加工点的偏差为

    6c931a6f02a025a9b131349f1d130749.gif

    cb64339a72b6dcc27e2324d9533e6ce3.gif

    2d477e4389b73ca06a62877ceb4bbe6c.gif

    从式 (3 — 5) 和式 (3 — 6) 两式可知,递推偏差计算仅为加法 ( 或减法 ) 运算,大大降低了计算的复杂程度。由于采用递推方法,必须知道开始加工点的偏差,而开始加工点正是圆弧的起点,故

    8ba2de8af7dca7e987acc56e4de6d541.gif。除偏差计算外,还要进行终点判别。一般用 x 、 y 坐标所要走的总步数来判别。令

    200862116129201105172315393827.gif,每走一步则 J 减 l ,直至 J=0 到达终点停止插补。

    综上所述,逐点比较法圆弧插补与直线插补一样,每走一步都要完成位置判别、坐标进给、偏差计算、终点判别四个步骤 ( 节拍 ) 。图 3 — 5 所示为第一象限逆圆弧逐点比较法插补的程序框图。下面举例说明圆弧插补的过程。

    be3af73ffef4035fb13ceae849d01084.png

    例 3-2 设要加工圆弧为第一象限逆圆弧 AB ,如图 3-6 所示。原点为圆心,起点为 A(6 , 0) ,终点为 B(0 , 6) ,终点计数值

    311db2b126d569b0888cc9a991ac02c7.gif,加工过程的运算节拍如表 3 — 3 所示。

    b9610eb05195865d612ea78680590479.gif

    68d9012ec81fafd4b35d44b79bbaeef2.png

    对于第—象限的顺圆及其第二、第三、第四象限的顺圆、逆圆插补计算,可根据相同原理得到其插补计算方法。图 3 — 7 所示为四个象限圆弧插补的进给方向示意图。表 3 — 4 列出了四 个象限的顺圆、逆圆的圆弧插补偏差计算公式,其中偏差计算

    36a22621d33fbf18b0e545da8e5f4ff5.png

    公式中的

    f9e4c47279d5d6c17740e92aeae546c1.gif均为绝对值。表中 SRl 、 SR2 、 SR3 、 SR4 分别代表第一、第二、第三、第四象限顺圆弧, NRI 、 NR2 、 NR3 、 NR4 分别代表第一、第二、第三、第四象限逆圆弧。表中 x 、 y ,均为加工点坐标值的绝对值。

    bbf172b531a247b0357a1f4c40c3817a.png

    展开全文
  • 层次分析(AHP)

    千次阅读 2021-03-16 17:12:26
    1.问题的提出 日常生活中有很多的决策问题。...面临各种各样的方案,要进行比较、判断、评价、直至最后的决策。这个过程中都是一些 主观的因素,这些因素可能由于个人情况的不同,有相应不同的比重,所以这样主

    1.问题的提出

    日常生活中有很多的决策问题。决策是指在面临多种方案时需要依据一定的标准选择某一种方案。日常生活中有许多决策的问题。比如:

    • 买钢笔,一般要依据质量、颜色、实用性、价格、外形等方面的因素选择某一支钢笔。
    • 假期旅游,是去风光秀丽的苏州,还是去迷人的北戴河,或者是去山水甲天下的桂林,那一般会依据景色、费用、食宿条件、旅途等因素来算着去哪个地方。

    面临各种各样的方案,要进行比较、判断、评价、直至最后的决策。这个过程中都是一些 主观的因素,这些因素可能由于个人情况的不同,有相应不同的比重,所以这样主观因素给数学方法的解决带来了很多的不便。

    2.AHP

    简单介绍一下什么是AHP?

    层次分析法,简称AHP,它是一种 运筹学理论 。是指将与决策总是有关的元素分解目标、准则、方案 等层次,在此基础之上进行定性和定量分析的决策方法。

    “该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国国防部研究”根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种 层次权重决策分析方法。”

    层次分析法(Analytic Hierarchy Process,AHP)这是一种定性和定量相结合的、系统的、层次化的分析方法。这种方法的特点就是在对复杂决策问题的本质、影响因素及其内在关系等进行深入研究的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策问题提供简便的决策方法。是对难以完全定量的复杂系统做出决策的模型和方法

    层次分析法的原理,层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同的层次聚集组合,形成一个多层次的分析结构模型,从而最终 使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定

    所以,AHP理论本质是通过把一个复杂的问题拆解为多个目标或准则,并且通过定性量化的方式为每个目标进行赋权的一个过程。

    简单来说AHP就是拆解加赋权,下面详细讲一下过程。
    层次分析法的步骤,运用层次分析法构造系统模型时,大体可以分为以下四个步骤:

    • 建立层次结构模型;
    • 构造判断(成对比较)矩阵;
    • 层次单排序及其一致性检验;
    • 层次总排序及其一致性检验;

    3.层次分析法的基本步骤

    将决策的目标、考虑的因素(决策准则)和决策对象按他们之间的相互关系分成最高层、中间层和最低层,绘制层次结构图。

    1.最高层(目标层):决策的目的、要解决的问题;
    2.中间层(准则层或指标层):考虑的因素、决策的准则;
    3.最低层(方案层):决策时的备选方案;

    3.1 建立层次结构模型

    在这里插入图片描述

    3.2 构造判断矩阵

    什么是判断矩阵?

    判断矩阵就是以参与指标计算的所有ferture组成的一个方阵,并且给出两两“比较量化值”。举例如下:

    对于A和B两个因子,1表示:A和B一样重要;3表示:A比B重要一些;5表示:A比B重要;7表示:A比B重要的多;9表示:A比B极其重要,具体标准如下图所示:

    因素i比因素j量化值
    同等重要1
    稍微重要3
    较强重要5
    强烈重要7
    极端重要9
    l两相邻判断的中间值2,4,6,8

    这其实就是一个典型的小组投票的过程,通过在方阵行列元素的两两比较,最终可以生成一个判断矩阵。比如对于有 A,B,C,D四个feature(分别代表钱,人员,时间,其它) 的判断矩阵如下图所示:

    ABCD
    A1.002.005.004.00
    B0.501.001.671.33
    C0.200.601.000.80
    D0.250.751.251.00

    3.3 层次单排序及一致性检验

    所谓一致性校验是指在进行投票的时候的公平性和一致性。
    比如你认为A比B重要,B比C重要,但是从最后的结果来看是C比A重要,这样即为不一致。
    一致性校验是通过计算校验系数来实现的,通常用CR来表示,小于0.1即表示一致性校验通过。

    CR包含一致性指标(CI)和随机一致性指标(RI)两部分,CR=CI/RI。

    CI和RI是一个固定值,与矩阵的阶数有关。
    一致性校验是通过计算校验系数来实现的,通常用CR来表示,小于0.1即表示一致性校验通过。

    1.模拟
    用EXCEL来进行计算(这里用三个参数来模拟
    在这里插入图片描述
    构建判断矩阵A(正交矩阵),用aij表示第i个因素相对于第j个因素的比较结果:

    在这里插入图片描述
    2.计算权重:
    将矩阵A的各行向量进行几何平均(方根法),然后进行归一化,即得到各评价指标权重和特征向量W:

    在这里插入图片描述

    3.一致性检验:

    在这里插入图片描述
    这里的n是指矩阵的维度

    • CI = 0,有完全的一致性;
    • CI 接近于0,有满意的一致性;
    • CI越大,不一致越严重;
      为了衡量 CI的大小,引入随机一致性指标 RI。方法为随机构造500个成对比较矩阵

    定义一致性比率:
    [公式]
    RI系数如下表格

    矩阵阶数34567891011
    RI0.51490.89311.11851.24941.34501.42001.46461.491.51

    一般,当一致性比率CR < 0.1 时,认为A的不一致程度在容许的范围之内,有满意的一致性,通过一致性检验,可用其归一化特征向量作为权向量,否则要重新构造成对比较矩阵A,对 其 加以调整。

    4.计算公式
    各列键入公式:

    按行相乘:F3=PRODUCT(C3:E3),下拉至F5。

    开n次方:G3=POWER(F3,1/3),下拉至G5;G6=SUM(G3:G5)。

    权重wi:H3=G3/G$6,下拉至H5。

    AWi:I3=C3H$3+D3H$4+E3*H$5,下拉至I5。

    AWi/wi:J3=I3/H3,下拉至J5;J6=AVERAGE(J3:J5)。

    CI:K3=(J6-3)/2。

    CR:L3=K3/0.5149

    5.进行计算

    在这里插入图片描述
    6.结束
    通过进行小组投票和自动计算,最终CR的值为0.03706,因此一致性检验通过

    权重Wi列即为每个feature的权重,因此最终我们可以得出该指标的计算公式为:

    target = A * 0.1047 + B * 0.6369 + c * 0.2582

    完美解决!

    4.总结

    大家这里或许会有个疑问:

    采用AHP的方法进行赋权,小组投票阶段是主观判断重要性的,所以是不是会带来误差?

    会,一定会。

    不过 策略一定是建立在业务之上的,撇开业务谈策略都是伪策略。

    采用AHP模型进行多因子赋权,

    需要对该业务有足够的了解,更需要对该target下的多个feature有 足够的了解 ,哪个对于target的贡献度是最大的。

    比如对于一个商品,什么样的商品是用户喜欢的?用户喜欢的商品有哪些feature?每个feature对于用户喜欢的贡献程度是什么样的?这些都是需要业务经验参与的。

    如果说科学的方法都有一个前提假设,那么AHP也有一个前提,就是 先了解业务,再谈策略

    以上,希望能帮助到大家。
    在这里插入图片描述

    本公众号分享自己从程序员小白到经历春招秋招斩获10几个offer的面试笔试经验,其中包括【Java】、【操作系统】、【计算机网络】、【设计模式】、【数据结构与算法】、【大厂面经】、【数据库】期待你加入!!!

    1.计算机网络----三次握手四次挥手
    2.梦想成真-----项目自我介绍
    3.你们要的设计模式来了
    4.震惊!来看《这份程序员面试手册》!!!
    5.一字一句教你面试“个人简介”
    6.接近30场面试分享
    7.你们要的免费书来了

    展开全文
  • C#怎么比较三个数的大小并按从大到小的顺序输出?要用if语句.usingSystem;...三个数要求按大小顺序把它们输出(用传统流程图)先令一个中间值t;然后依次比较a,b,c;具体过程是这样先比较a和b的值,如果...
  • 冒泡排序基本思想:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,...
  • 决策树算法:ID3,C4.5,CART优点:1、易于理解和解释,可以可视化分析,容易提取出规则2、可以同时处理标称型和数值型数据3、测试数据集时,运行速度比较快4、决策树可以很好的扩展到大型数据库中,同时其大小独立...
  • 图像

    2021-04-20 00:36:58
    图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二图像。二图像是指在图像中,灰度等级只有两种,也就是说,图像中的任何像素点的...
  • 勘探原理与方法刘 国 兴2003.5总学时64,讲授54学时,实验10绪论:(1学时)绪论中讲5个方面的问题1. 对电勘探所属学科及具体定义。2. 电勘探所利用的电学性质及参数。3. 电勘探找矿的基本原理。在此主要...
  • 刚接触移动应用的界面设计,最先跳入脑海的疑问是:画布尺寸设计多大(特别是Android)、图标和字体大小怎么定、需要设计多套设计稿么、如何切图以配合开发的实现?本篇将结合iOS和android官方的设计规范、搜集的资料...
  • 了解如何在 Dreamweaver 中插入、编辑、替换图像和调整其大小。图像可以通过为网站访问者提供额外的上下文,构成网站的组成部分。尽管存在多种图形文件格式,但在网页中通常应使用 GIF、JPEG 和 PNG 文件格式。GIF ...
  • 有限差分以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的为未知数的代数。该方法是一种直接将问题变为代数问题的近似数值解法,数学概念直观,表达...
  • 基于拉依达准则的奇异数据滤波第四章 智能仪器的基本数据处理算法 数据处理能力是智能仪器水平的标志,不能充分发挥软件作用,等同硬件化的数字式仪器. 基本数据处理算法内容提要 克服随机误差的数字滤波算法 消除...
  • 说明:三分可以用来查找凸函数的最大(小)。 如果 lmid 和 rmid 在最大(小)的同一侧:由于单调性,一定是二者中较大(小)的那个离最值近一些,较远的那个点对应的区间不可能包含最值,所以可以舍弃。 ...
  • 2、它们之间的关系为:(1)由于每比较一趟后,所需的比较的元素个数就减少1,所以总共比较的趟数为n-1趟(2)由于元素是相邻之间进行两两比较的,所以每趟比较的次数为本趟元素个数减去1;3、详细过程如下表二、代码...
  • 实现一个调整链表的函数,将链表调整为左边部分都是小于pivot的节点,中间部分都是等于pivot的节点,右部分都是大于pivot的节点 分析 根据题目可得,与之前的快排原型荷兰国旗问题十分相似。但是原问题的数据...
  • MATLAB单纯形详解 单纯形 我们以这样一个方程组做为例子,来看一下单纯形是如何解题的 这是一个已经化成标准形式的方程组,x4和x5是我们加入的松弛变量 第一步确定一个基可行解 我们将上面方程组写作Ax=b的...
  • 在建模时,清理数据样本非常重要,这样做可以确保观察结果充分代表问题。...学完本教程,你将会明白:数据集中出现的不太可能的观察往往就是异常,异常的出现有很多种原因。标准差可用于识别符...
  • 图像分析:OpenCV中的二化阈值操作1.二图像的定义2.OpenCV中的基本阈值操作3.OTSU二寻找算法3.TRIANGLE二寻找算法4.自适应二化阈值算法 1.二图像的定义 二图像就是图像中灰度只有2个的图像,...
  • 1钦州学院数学与计算机科学学院数学实验报告实验完成日期2010年11月5日,第10周,星期五成绩等级(五级分制)评阅教师评阅日期年月日数学实验报告填写要求:思路清晰,中间结果和最终结果真实;字迹工整,报告完整。...
  • 实验 算术表达式求

    2021-01-03 20:20:24
    实验 算术表达式求 ** 数据结构课设 发出来分享 水平有限 希望各位网友多多交流和指正 ** 一、实验目的: 1. 熟练掌握栈的结构,以及这种数据结构的特点; 2. 能够在两种存储结构上实现栈的基本运算,特别注意...
  • 模极大去噪算法步骤: 1.对含噪信号进行尺度为,J=1,2,......,J的小波变换,并求出每个尺度上变换系数的模极大。 2.从最大尺度开始,确定一个阈值T,把该尺度上模极大小于T的极值点去掉,保留其他的,得到...
  • 归并排序的基本思想是分治:先把一个链表分割成只有一个节点的链表,然后按照一定顺序、自底向上合并相邻的两个链表。只要保证各种大小的子链表是有序的,那么最后返回的链表就一定是有序的.归并排序分为分割和...
  • 算法设计与分析------蛮力(c++) 一、蛮力(穷举 枚举) 1、定义 ​ 蛮力是一种简单直接地解决问题的方法,通常直接基于问题的描述和所涉及的概念定义,找出所有可能的解。 然后选择其中的一种或多种解,若...
  • C语言:冒泡排序(升序排序

    千次阅读 多人点赞 2021-08-07 11:09:06
    动态演示: 思路分析 相邻两个数两两相比,n[i]跟n[j+1]比,如果n[i]>...因为没一个数都要与其他数比较一次,(n-1)2次,分解:n2+2n-1, 去掉低次幂和常数,剩下n2,所以最后的时间复杂度是n2 空间复杂度是O
  • 如果要查找的元素比中间值arr[mid]小,那么查找的区间就缩小到arr[0]到arr[mid-1],如果要查找的元素比中间值arr[mid]大,那么查找的区间就缩小到arr[mid+1]到arr[sz-1],然后不断进行这样的操作,直到找到该元素...
  • 本质:层次分析就是给两两比较的指标进行量化比较实现权重的大小(专家打分) 1.确定评价的标准,目标,可选的方案 层次结构图 目标层:最终目标 准则层:各项指标 方案层:哪些选择 2.形成判断矩阵,正互反矩阵 理论上是...
  • 1.阈值化分割原理通过对图像的灰度直方图进行数学统计,选择一个...在这种情况下,选取位于这两个峰值中间的谷底对应的灰度T作为灰度阈值,将图像中各个像素的灰度与这个阈值进行比较,根据比较的结果将图像中的...
  • 色相(度)=原色色相(RGB最大值色相)+(-)(中间值-最小值)*60/(最大值-最小值) 二、饱和度: 饱和度=[(最大值-最小值)/最大值]*100% 三、亮度: 亮度=(最大值 /255)*100% 四、明度:30%*R+59%*G+11%*B 五、...
  • 本文中的二化与OpenCV中所介绍的二化方法最大的一个不同就是,对于模板的核大小,OpenCV中不管核大小为多大,其运行速度都是几乎一样,但是本文中的致命缺陷就是随着核大小的增大,运行速度也会变慢。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,150
精华内容 46,060
关键字:

中间值法比较大小