2021年数学建模国赛C题问题一详细思路和代码
2021年高教社杯數學建模C題問題一詳細思路和代碼
話不多說,先上Github代碼:
謝謝友友們的支持吖,這里是21年國賽C題的分析,文末有小編精心整理的代碼和源文件哦,這里小編已經再Github上開源了,想要的小伙伴可以點贊+關注+收藏哦,即可在文末評論區領取完整源代碼!
1 問題分析
問題一要求我們利用近五年企業的訂貨量和供應商的供貨量數據對供應商的供貨特征進行量化分析,并以企業生產重要性為目標建立數學模型,選擇出相對重要的供應商。
供貨特征是供應商管理績效的直接表現,目前業內廣泛認可的指標有:質量、成本、交貨、服務、技術、資產、員工與流程,合稱QCDSTAP。結合本題所給的數據,我們最終選擇了成本、交貨和資產作為本題量化的供貨特征。關于成本指標,可以利用供應商所供應的原材料采購單價來衡量;關于交貨指標,在本題中,它主要反應了供應商是否按訂貨量交貨,可以利用企業訂貨量與對應的供應商供貨量之間差距來衡量,差額越小,說明該供應商的交貨越符合規范;關于資產指標,它主要反應了供應商的經濟規模,可以用供應商5年間的供貨量之和來衡量。
企業生產中“降本增效”是生產中最重要的,本題基于降本增效,建立起供應商對于企業生產重要性的評估模型。供貨特征中交貨和資產反映了“增效”,而成本反映了“降本”,所以我們以量化的三個供貨特征,通過權重計算得到每個供應商的重要性。為了確定各指標的權重,我們首先利用主成分分析對原始數據降維,并利用降維的數據對供應商進行了K-means聚類,將供應商分為兩類:重要與不重要。然后,結合分類結果,利用灰色關聯分析對量化的三個供貨特征指標進行了分析,確定了各指標與供應商重要性的關聯度。最后利用得到的關聯系數,結合熵權法,確定了各指標的權重。
為了確定50家最重要的供應商,我們引入商業采購中常見的“二八法則”,即數量20%的采購物占總采購價值的80%,其余80%的采購物占總采購價值的20%。本文的采購價值,是通過的供應商的重要性來表示。最后基于供應商累計重要性為80%的切分點,確定了50家最重要的供應商。具體思路流程圖如下:
2 數據預處理與分析
本題附件一和附件二中數據量均不大,沒有缺失值,但是觀察分析后我們發現存在一些異常值。即:企業的訂貨量和供貨商的供貨量相差非常大,達到了幾百到幾千立方米。雖然題目中指出由于原材料的特殊性,供應商不能保證嚴格按訂貨量供貨,實際供貨量可能多于或少于訂貨量。但是對于相差幾百甚至幾千的數據,可能會嚴重影響到企業的生產需求,故我們對于這類數據做均衡處理。即當訂貨量和供貨量相差大于20時,我們以訂貨量為基準,對供貨進行均衡化調節,重新產生一個和訂貨量相近的數據取代替附件中供貨量,以此消除相差過大帶來的影響。
為了直觀把握企業每周的訂貨量和供應商每周供應量的變化情況,我們對其數值進行了可視化,如下圖
從圖上來看,企業的訂貨量和供應商的供貨量呈周期性變化,有一定的規律,后續問題也可通過此規律進行分析
3 供貨特征的量化
下面具體介紹供應商的成本指標、交貨指標和資產指標的量化方法。
成本指標
供貨商供貨時,原材料的價格體現了其供貨特點,本題中共有三種原材料,其采購單價各不相同,我們利用原材料的種類可以很好的量化得到成本指標。設單位采購價格為1,得到了ABC三種原材料的價格分別為1.2、1.2和1。供貨商的成本指標就取對應的所供原材料價格,實現對成本指標的量化。
交貨指標
供貨商供貨時是否按企業訂貨量交貨決定了交貨指標的好與壞,這里我們利用企業訂貨量和其對應的供貨商供貨量的差值來量化交貨指標,差值越小,則說明供貨商交貨越符合規范。為了描述供貨商在五年之中的交貨情況,我們把一個供貨商五年中每一周的差值的絕對值相加,其綜合越小,則供貨商在五年里的交貨越符合規范,下面給出交貨指標的計算公式:
資產指標
供應商資產規模大小一定程度上反映著它的供貨特點,為了合理量化供應商的資產指標,我們認為五年內供貨量大的供貨商,其資產應該較大,據此給出資產指標的具體計算方法:
4 供貨商在保障企業生產中的重要性量化模型
為了保障企業生產,我們建立了評估供貨商在保障企業生產中的重要程度的模型,基于量化的供貨特征計算得到了每個供貨商的重要性。下面給出重要性的計算公式。
供貨特征指標與供貨商重要性的關聯分析
分析發現,我們量化后的三個供貨特征均對企業保障生產中“降本增效”的目的起著關鍵作用,很難說清楚哪一個指標更重要,為了弄清三個指標與供貨商重要性的關聯,我們首先利用K-means聚類把供貨商從理論上為分為“重要”與“不重要”,即 “戰略型供應商”和“考察型供應商”,因為K-means聚類算法具有將相似的個體進行區分的效果,所以從理論上來講,我們的分類可以達到目的。在聚類之前我們對原始的240維的數據進行了主成分分析,以貢獻率大于80%為基準,把數據維度降到了11維,然后再進行聚類。
然后再利用分類后的結果作為供應商是否重要的體現,利用灰色關聯分析,探究三個指標對供應商是否重要的影響。下圖是利用Python對402家供貨商進行K-means聚類后,再利用PCA降維后(11維降到2維)可視化的結果
聚類后降維可視化的樣本分布
聚類結果
分析聚類結果后,我們發現兩類供貨商的數量基本在40和360左右波動,也反映了重要的供貨商較少的理論。
把聚類后的結果與量化計算得到的三個供貨特征相結合,得到了灰色關聯分析之前的數據如下:
把聚類后的結果與量化計算得到的三個供貨特征相結合,得到了灰色關聯分析之前的數據如下
利用上表數據,結合灰色關聯分析成本、交貨和資產對供應商重要性的影響,得到了如下結果
從灰色關聯分析結果來看,成本、交貨和資產均與供應商的重要性有非常大的關聯,一定程度也說明我們指標的選取的正確性
熵權法確定指標權重
灰色關聯分析后,我們得到了各個指標與供應商重要性的關聯系數,但是由于各
指標與供應商的關聯正負性不一致,為了得到量綱與意義一致的權重,我們利用熵權法得到各指標的權重。下面是熵權法的計算流程
最后,計算求得的各指標權重為:
5 基于二八法則確定最重要的供應商
二八法則是商業采購中普適的法則,要求數量20%的采購物占總采購價值的80%,據此,可以將供應商劃分為重點供應商和普通供應商,前者數量20%,供應品價值80%。
我們已經量化計算得到了各供應商的重要性,并按重要性從高到低排列,可以利用計算結果結合二八法則,確定出最重要的供應商,再從中選取重要性最高的50家供應商。
如下圖,是利用二八法則,以累計重要性占比為80%左右進行劃分的曲線圖
從圖上來看,供貨商數量在50左右時,其累計重要性占比確實接近80%,這也說明我們的評估模型得到的結果時基本符合二八法則的,按重要性從高往低依次取50個供應商作為最重要的供應商,結果如下表
Matlan代碼鏈接:
數據預處理
%% 數據預處理 order = xlsread('..\附件1 近5年402家供應商的相關數據.xlsx', '企業的訂貨量(m3)', 'B2:IH403'); supply = xlsread('..\附件1 近5年402家供應商的相關數據.xlsx', '供應商的供貨量(m3)', 'B2:IH403'); for i = 1:402for j = 1:240difference = supply(i, j) - order(i, j);%若供貨量遠小于訂貨量,將供貨量設置為訂貨量的臨近值if difference < -100supply(i, j) = order(i, j) + round((rand() - 0.5) * 20);endend end xlswrite('..\附件1 近5年402家供應商的相關數據.xlsx', supply, '供應商的供貨量(m3)', 'B2:IH403');熵權法
%% 熵權法 算權重 function [score, weights] = shangquan(x) %實現用熵值法求各指標(列)的權重及各數據行的得分 %x為原始數據矩陣, 一行代表一個樣本, 每列對應一個指標 %type指示向量,1表示正向指標,2表示負向指標 %score 返回各行(樣本)得分,weights 返回各列權重%%數據的歸一化處理 X(:, 1) = guiyi(x(:, 1), 2, 0.002, 0.996); %若歸一化到[0,1], 0會出問題 X(:, 2) = guiyi(x(:, 2), 2, 0.002, 0.996); X(:, 3) = guiyi(x(:, 3), 1, 0.002, 0.996);%%計算第j個指標下,第i個樣本占該指標的比重p(i,j) for i = 1 : 402for j = 1 : 3p(i, j) = X(i, j) / sum(X(:, j));end end%%計算第j個指標的熵值e(j) k = 1 / log(402); for j = 1 : 3e(j) = -k * sum(p(:, j) .* log(p(:, j))); end %計算信息熵冗余度 d = ones(1, 3) - e; %求權值w weights = d ./ sum(d); %求綜合得分 score = 100 * weights * X'; end目前小編只提供部分代碼,代碼目前已經在小編的github賬戶開放,喜歡的友友可以點贊收藏哦!有需要的小伙伴可以點擊下方鏈接哦!
2021國賽C題代碼
總結
以上是生活随笔為你收集整理的2021年数学建模国赛C题问题一详细思路和代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bigemap 百度教程
- 下一篇: 【1】PASCAL VOC数据集下载