赞
踩
1.1问题背景
1.2需要解决的问题
本题目要求根据问题背景与附件数据,需解决以下问题:
1、根据附件1中402家供应商的相关数据,量化分析供货商的供货特征,建立能够反映保障企业生产重要性的数学模型,并确定50家最重要的供货商。
二、问题分析
2.1 概论
2.2 问题1
问题1要求量化分析供货商的供货特征,并以此建立能够反映保障企业生产重要性的数学模型......
四、符号说明
符号 | 意义 |
rij | 第i家供应商第j周的供货量 |
wi | 第i家供应商总供货量 |
mij | 第i家供应商第j周的订货量 |
si | 第i家供应商的总预定量 |
ti | 第i家供应商的平均供货强度 |
vi | 第i家供应商的到货率 |
di | 第i家供应商的供货量方差 |
ki | 第i家供应商的供给弹性 |
五、模型的建立与求解
5.1 问题 1 模型的建立与求解
5.1.1 反映保障企业生产重要性的指标体系构建
(1)TOPSIS法的构建原则
学者们大多数首先根据具体行业、具体企业研究供应商的评价指标,从价格、质量、交货、服务等方面进行效应分析[1]。本文对于评价指标的选择,是依据建筑和装饰板材生产企业的订购特性,在选取过程中注重典型性和全面性、数据的可行性和可对比性、系统性和综合性,从而能够更加充分反映保障企业生产重要性指标,依据原则和选取过程:
典型全面性原则:
......
数据的可行性和可对比性原则:
......
系统性和综合性原则:
......
基于TOPSIS法,综合评价供应商的供货能力大小,主要操作步骤流程图如下:
......
(二)建立评价体系
(1)评价指标的选取
......
1.总供货量
能够反映供应商的总供货能力,本文将第i家供应商每周的供货量累加,得到第i家供应商的总供货量。
2.总预定量
能够反映企业对于该供应商的偏好程度,本文将第i家供应商每周的订货量累加,得到第i家供应商的总预定量。
3.平均供货强度
能够反映供应商生产能力的强弱,本文将第i家供应商的总供货量取均值,得到第i家供应商的平均供货强度。
4.供货量方差
能够反映供应商供货的稳定性,本文将先求取第i家供应商的总供货量,从而计算得出第i家供应商的供货量方差。
5.到货率
能够反映供应商的信誉程度,本文将第i家供应商总供货量与接收到的总预定量的比值定义为第i家供应商的到货率。
6.供给弹性
能够反映供货商同时满足大订货量和小订货量的能力,本文第i家供应商的供货量方差取均值,得到第i家供应商的供给弹性。
5.1.2 基于逼近理想解排序法(TOPSIS)建立供货能力评价模型
(一)数据处理
(1)根据评价指标构建原始矩阵
本文选择了6个评价指标来综合评价供应商的供货能力大小,并根据其各自量化解释得到原始评价矩阵(见支撑材料initial.m)。
(2)评价指标的极性判断
由于我们选取了6个评价指标以评价供应商的供货能力,但这些指标的评价极性并不相同,因此在建立评价模型之前,我们首先要进行极性判断。
表1 指标的极性判断
指标 | 极性 |
总供货量 | 极大型 |
总预定量 | 极大型 |
平均供货强度 | 极大型 |
供货量方差 | 极小型 |
到货率 | 极大型 |
供给弹性 | 极小型 |
(二)模型的构建
(1)统一指标得到正向化矩阵
我们将所有的指标转化为极大型定义为指标正向化,首先将极小型指标转化为极大型指标:
其中,xi表示第i列指标值,(j ∈ [0,6]), maxxi表示第i列指标的最大值。
(2)对正向化后的矩阵进行标准化
为消除不同指标量纲的影响,首先假设我们由n个要评价的对象,m个评价指标构成的正向化矩阵如下:
那么,对其标准化的矩阵记为Z, Z中的每一个元素:
(3)计算得分并归一化处理
假设n个要评价的对象,m个评价指标构成的标准化矩阵:
定义最大值
定义最小值
定义第i(i=1,2,…,n)个评价对象与最大值的距离
定义第i(i=1,2,…,n)个评价对象与最小值的距离
那么,我们可以计算得出第i(i=1,2,…,n)个评价对象未归一化的得分:
5.1.3供货能力评价模型的求解
(一)权重的确立
本文对以评价供应商供货能力的6个评价指标,根据层次分析法对标准化矩阵进行计算权重,结果如下:
表2指标评价权重
评价指标 | 总供货量 | 总预定量 | 平均供货强度 | 供货量方差 | 到货率 | 供给弹性 |
权重 | 0.2204 | 0.1130 | 0.1398 | 0.2845 | 0.1940 | 0.0483 |
(二)供应商供货能力综合排名
供货商 | 综合评分 | 供货商 | 综合评分 |
S229 S140 S361 S108 S151 S340 S282 S201 S275 S139 S329 S308 S330 S131 S356 S268 S306 S348 S194 S352 S143 S307 S395 S126 S247 | 0.017235095 0.017031381 0.016362375 0.012853264 0.011144935 0.009044797 0.00892533 0.008670938 0.008411549 0.008358436 0.008316349 0.007990901 0.007797596 0.007427926 0.007087673 0.007036999 0.006862651 0.006065154 0.005718808 0.005165547 0.004962011 0.004800531 0.004783978 0.004264855 0.003821354 | S37 S284 S374 S365 S31 S40 S364 S174 S76 S206 S175 S169 S178 S221 S367 S338 S213 S237 S50 S30 S53 S67 S342 S106 S253 | 0.003577343 0.003459567 0.00342508 0.003291143 0.003277424 0.002975574 0.002893104 0.002857754 0.002851678 0.002832495 0.002831788 0.00283054 0.002819332 0.002812092 0.002800131 0.002796252 0.00279552 0.002773518 0.002769272 0.002759933 0.002756649 0.002753882 0.00274503 0.002731955 0.002721675 |
clear;clc load gonghuo.mat load dinghuo.mat w = sum(X,2);%指标1 s = sum(Y,2);%指标2 a = [240]; A = repmat(a,402,1); t = w./A; %指标3 d = var(X,0,2);%指标4 v = w./s;%指标5 k = d./A;%指标6 |
原始矩阵的计算 |
clear;clc load initial.mat %%正向化 [n,m] = size(X); disp(['共有' num2str(n) '个评价对象, ' num2str(m) '个评价指标']) Position = [4,6]; Type = [1,1]; %这里需要对这些列分别处理,因此我们需要知道一共要处理的次数,即循环的次数 for i = 1 : size(Position,2) X(:,Position(i)) = Positivization(X(:,Position(i)),Type(i),Position(i)); end disp('正向化后的矩阵 X = ') disp(X) %%标准化 Z = X ./ repmat(sum(X.*X) .^ 0.5, n, 1); disp('标准化矩阵 Z = ') disp(Z) %%特征值法计算权重 clc [V,D] = eig(A); Max_eig = max(max(D)) ; D == Max_eig; [r,c] = find(D == Max_eig , 1); V(:,c) disp('特征值法求权重的结果为:'); disp( V(:,c) ./ sum(V(:,c)) ); V(:,c) disp('特征值法求权重的结果为:'); disp( V(:,c) ./ sum(V(:,c)) ); %%计算与最大值的距离和最小值的距离,并算出得分 weigh = ones(1,m) ./ m; D_P = sum([(Z - repmat(max(Z),n,1)) .^ 2 ] .* repmat(weigh,n,1) ,2) .^ 0.5; % D+ 与最大值的距离向量 D_N = sum([(Z - repmat(min(Z),n,1)) .^ 2 ] .* repmat(weigh,n,1) ,2) .^ 0.5; % D- 与最小值的距离向量 S = D_N ./ (D_P+D_N); % 未归一化的得分 disp('最后的得分为:') stand_S = S / sum(S) [sorted_S,index] = sort(stand_S ,'descend') |
求取得分 |
function [posit_x] = Min2Max(x)
posit_x = max(x) - x;
%posit_x = 1 ./ x; %如果x全部都大于0,也可以这样正向化
end
function [posit_x] = Positivization(x,type,i)
if type == 1 %极小型
posit_x = Min2Max(x); %调用Min2Max函数来正向化
end
正向化函数 |
没想到答案正确,嘿嘿嘿。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。