题目描述
问题一分析(基于APH、PCA和TOPSIS的供应商评价与选择)
问题一需要我们对附件一中的402家供应商的数据进行处理并量化分析,并构建数学模型选择当中最重要的50家供应商。
附件一:
部分订货量
部分供货量
注意:W001代表第一周。
确定评价指标
从这些数据,我们可以构建如下的指标:
- 木材单价: 单价
- 平均成本: 平均供货量/单价
- 平均供货量: 供货总量/供货周数
- 供货频率: 供货周数/总周数
- 供订误差方差: (供货量-订货量)/订货量的方差
- 供货超额频次: 供货超额频次/(供货超额频次+供货缺额频次)
- 平均订货量: 订货总量/订货周数
- 订货频率: 订货周数/总周数
- 违约率: 有订单但供货为0/订单总数
topsis(优劣解距离法)
TOPSIS是一种用来评价多个对象或方案好坏的方法。这种方法的基本思想是通过找出最好的(正理想解)和最差的(负理想解)方案,然后计算每个方案与这两个理想解的距离,从而确定每个方案的相对优劣。
下面将详细介绍TOPSIS的操作过程:
-
确定决策方案和评价指标:
- 首先,明确要评估的决策方案集合,这些方案可以是产品、服务、项目等。
- 确定用于评价这些方案的评价指标集合。这些指标可以是成本、供应能力、长期合作性等多个方面。
-
评价指标正向化处理:
- 指标分为极大型、极小型指标、中间型指标、区间型指标。
- 极大型:指标的值越大越好,例如供货能力。
- 极小型:指标的值越小越好,例如违约率。
- 通常情况下,将所有的指标转化为极大型,称为指标正向化。
-
构建决策矩阵:
- 构建一个决策矩阵,其中行代表不同的决策方案,列代表评价指标。
- 在矩阵中填入每个方案在各个指标上的具体数值。
-
数据标准化处理:
- 由于评价指标的单位和量纲可能不同,为了消除这种差异,需要对数据进行标准化处理。
- 标准化处理有多种方法,如最大最小值法、标准差法等。处理后的数据将转化为无量纲的相对数值,便于后续计算。
-
确定权重:
- 根据各评价指标的重要性程度,确定相应的权重。
- 权重可以通过熵权法、层次分析法、主成分分析法等方法来确定。
-
计算加权决策矩阵:
- 将标准化后的决策矩阵与权重向量相乘,得到加权决策矩阵。
- 加权决策矩阵中的每个元素表示相应方案在相应指标上的加权得分。
v i j = w j × r i j v_{ij} = w_j \times r_{ij} vij=wj×rij
- 其中, v i j v_{ij} vij 是加权决策矩阵中第 i i i 个方案在第 j j j 个指标上的加权数值。
-
确定正负理想解:
-
正理想解是指在所有决策方案中,每个指标都达到最优值的方案。
-
负理想解是指在所有决策方案中,每个指标都达到最劣值的方案。
-
正理想解 V + V^{+} V+:
V + = ( v 1 + , v 2 + , . . . , v n + ) V^{+} = (v_{1}^{+}, v_{2}^{+}, ..., v_{n}^{+}) V+=(v1+,v2+,...,vn+)
其中, v j + = max i v i j v_{j}^{+} = \max_{i} v_{ij} vj+=maxivij。 -
负理想解 V − V^{-} V−:
V − = ( v 1 − , v 2 − , . . . , v n − ) V^{-} = (v_{1}^{-}, v_{2}^{-}, ..., v_{n}^{-}) V−=(v1−,v2−,...,vn−)
其中, v j − = min i v i j v_{j}^{-} = \min_{i} v_{ij} vj−=minivij。
-
-
计算距离:
-
计算每个决策方案与正负理想解之间的距离。
-
距离可以使用欧几里得距离、曼哈顿距离、切比雪夫距离等多种方法计算。
-
距离越小,表示该方案越接近理想解。
-
第 i i i 个方案到正理想解的距离 D i + D_{i}^{+} Di+:
D i + = ∑ j = 1 n ( v i j − v j + ) 2 D_{i}^{+} = \sqrt{\sum_{j=1}^{n} (v_{ij} - v_{j}^{+})^{2}} Di+=j=1∑n(vij−vj+)2 -
第 i i i 个方案到负理想解的距离 D i − D_{i}^{-} Di−:
D i − = ∑ j = 1 n ( v i j − v j − ) 2 D_{i}^{-} = \sqrt{\sum_{j=1}^{n} (v_{ij} - v_{j}^{-})^{2}} Di−=j=1∑n(vij−vj−)2
-
-
计算接近度指数:
-
根据距离,计算每个决策方案的接近度指数。
-
接近度指数反映了方案与理想解的接近程度,通常使用与正理想解的距离与正负理想解距离之和的比值来表示。
-
第 i i i 个方案的接近度指数 C i C_{i} Ci:
C i = D i − D i + + D i − C_{i} = \frac{D_{i}^{-}}{D_{i}^{+} + D_{i}^{-}} Ci=Di++Di−Di− -
接近度指数 C i C_{i} Ci 的值越大, D i D_{i} Di 的值越大,表示第 i i i 个方案越接近正理想解,即方案越优。
-
-
排名评价对象:
- 根据接近度指数对评价对象进行排序。
- 接近度指数越高,表示该方案越优,排名越靠前。
-
敏感性分析(可选):
- 对权重进行敏感性分析,检验最优方案对权重的稳定性。
- 这有助于了解权重变化对最终决策结果的影响程度。
回顾知识点的视频:
数学建模——优劣解距离法Topsis模型讲解(综合评价问题)
topsis权重的确定
下面是层次分析法(Analytic Hierarchy Process, AHP)、主成分分析法(Principal Component Analysis, PCA)和熵权法(Entropy Weight Method, EWM)的优缺点对比表格:
方法 | 优点 | 缺点 |
---|---|---|
层次分析法(AHP) | 1. 结构化决策过程,易于理解和操作。 | 1. 主观性强,依赖于专家的判断和经验。 |
2. 能够处理多目标、多准则的复杂问题。 | 2. 决策过程可能受到个人偏好和群体意见的影响。 | |
3. 适用于定性和定量指标的混合使用。 | 3. 可能产生不一致的判断矩阵。 | |
4. 提供了决策树的形式,便于展示决策过程。 | ||
主成分分析法(PCA) | 1. 通过降维处理,简化数据结构。 | 1. 主要适用于连续变量,对离散变量处理效果较差。 |
2. 客观性强,基于数据的统计特性进行分析。 | 2. 对数据的缺失和异常值敏感。 | |
3. 能够提取出数据中的主要特征和趋势。 | 3. 无法解释每个主成分的具体含义。 | |
4. 适用于大规模数据集的处理和分析。 | ||
熵权法(EWM) | 1. 基于熵理论,客观性强,不依赖于专家打分。 | 1. 对数据的标准化处理敏感,可能导致结果的不稳定。 |
2. 能够消除指标间的量纲差异和相关性。 | 2. 在处理极端值时可能产生不合理的结果。 | |
3. 计算过程简单明了,易于实现。 | 3. 可能无法充分反映指标的实际重要程度。 | |
4. 适用于多指标、多对象的综合评价问题。 |
- 在这里我们使用层次分析法(即AHP法)和主成分分析法来确定TOPSIS模型中的各指标权重。
- 层次分析法的确定存在较重的主观性。为了弥补这部分不足,我们采用了主成分分析法确定另一组权重。然后采用加权的形式将两组权重进行组合,扬长避短的将两种方法结合在一起。我们对层次分析法得到的权重和主成分分析法得到的权重分配从而得到一个综合权重。基于层次分析法得到的权向量为 W 1 W_1 W1,主成分分析法得到的权向量为 W 2 W_2 W2,则组合权重为:
W 3 = λ 1 W 1 + λ 2 W 2 W_3=λ_1 W_1+λ_2 W_2 W3=λ1W1+λ2W2
λ 1 + λ 2 = 1 λ_1+λ_2=1 λ1+λ2=1
层次分析法
层次分析法(Analytic Hierarchy Process,简称AHP)是一种多目标决策分析方法,由美国运筹学家T. L. Saaty教授在20世纪70年代初期提出。这种方法将复杂问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型。通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标)、多方案优化决策的系统方法。
1.构建层次模型
最底层方案层为供应商,这里的方案层省略掉,因为我们没有使用层次分析法计算每一个供应商对应的分数来以此确定前50家供应商。
2.构造对比矩阵
我们根据查阅的文献,将各个指标按照重要程度进行排序,进而构建成对比矩阵,如下:
3.权重向量的计算
- 首先,计算准则层中对比矩阵的最大特征值及其对应的特征向量,需要计算一致性指标(如CI)和一致性比率(CR),以检验判断矩阵的一致性,如果CR小于0.1,则表明通过一致性检验。归一化的特征向量为 [0.58214919, 0.34836301, 0.06948779],表示该层准则对应的权重。
- 接下来,分别计算指标层中每一个对比矩阵的最大特征值及其对应的特征向量,需要计算一致性指标(如CI)和一致性比率(CR),以检验判断矩阵的一致性,如果CR小于0.1,表面通过一致性检验。分别归一化每个对比矩阵的特征向量,用来表示指标对应的权重。
- 最后,进行层次合成。分别将每个指标的权重乘以所属准则的权重,以此作为每个指标的最终权重。
主成分分析法
主成分分析法(Principal Component Analysis,简称PCA)是一种常用的数据分析方法,其主要目的是通过降维技术来简化数据集,同时保持数据集中对方差贡献最大的特征。通过正交变换,PCA将原始数据集中的可能存在相关性的变量转换为一组线性不相关的变量,这些新变量称为主成分。主成分按照方差大小依次排列,第一主成分具有最大的方差,第二主成分的方差次大,并且与第一主成分不相关,以此类推。
PCA(主成分分析)的主要步骤包括:
- 数据标准化:将原始数据按列组成矩阵,并对每一列(即每一个属性字段)进行标准化处理,通常是通过减去均值并除以标准差,使得每个属性的均值为0,标准差为1。
- 计算协方差矩阵:协方差矩阵表示了不同属性之间的相关性。计算标准化后数据的协方差矩阵。
- 计算协方差矩阵的特征值和特征向量:特征值表示了对应特征向量方向上数据的变异程度,而特征向量则是这些方向本身。
- 选择主成分:将特征向量按照对应的特征值大小从上到下排序,并选择前k个最大的特征值对应的特征向量。这里的k通常根据预设的主元个数或者主元贡献率达到某个阈值(如85%)来确定。
- 形成主成分矩阵:用选出的k个特征向量组成一个新的矩阵。
- 转换数据:将原始数据矩阵乘以这个新的主成分矩阵,得到降维后的数据。
通过以上步骤,PCA能够将原始的高维数据转换为低维数据,同时尽可能保留数据中的主要信息,实现数据的降维和简化。这在很多机器学习、数据挖掘和数据分析的应用中都非常有用。
1.方差贡献率即某个主成分的方差占全部方差合计的比重。方差贡献率越大,说明该主成分所包含的原始变量的信息越多。
2.主成分的系数表示原始变量与主成分之间的线性关系。
3.如果用主成分系数乘以主成分的方差贡献率,这表示每个原始变量对主成分的贡献程度。我们用原始变量对主成分的贡献程度来表示主成分分析法所得的权重。
4.原始变量对主成分的贡献程度越大,表示该原始变量在主成分的形成过程中起到了更为重要的作用,即该变量对主成分的变异影响更大。这意味着该原始变量在整体数据结构中的信息量更大,更能反映数据的特征。
最终的权重
权重确定了,通过topsis计算出每个企业的得分,由高到低排序,选出排名前50名的供应商。
第二问(基于线性规划的订货与转运方案)
首先,要求我们找出至少多少个供应商可以保持供应。在这里,我们希望这些企业的平均供货量高,平均供货频率高以及最终得分高,因此,我们这里需要制定一个供给评分。按照评分对供应商排序,然后对他们的平均供货量进行累计求和,找到累计求和大于企业现有的产能的最小值,从而得到需要至少m家。
接着,我们选取把确定订货的供应商作为订货对象,构建向供应商订货的线性规划模型。我们根据附件一中的供应商五年的历史数据,确定了的满足企业产能的最小供货量和每个周供货下限,然后在此范围内随机生成
o
u
t
p
u
t
w
output_w
outputw,即供货商一周的总产量之和。最后,我们采取构建循环的方式,制定24周的订货计划。
- 目标函数:成本最小化
- 约束条件:
- 该企业收购所有供货商的供货
- 供货商的供货量满足每周的产能
- 该企业的订货量下限为0,上限不超过相应供应商的生产上限或者不超过单个转运商每周的转运上限
最后,做出的订购方案的基础上,合理地选择转运商,使得材料在运输过程中耗损最小。由于每个供货商尽量指定一家转运商,因此,我们将其转化为指派问题进行求解。同样的,我们通过循环,求解24周的转运计划。
构建指派模型评分矩阵:评分矩阵的元为: c t i = r t s i c_{ti}=r_t s_i cti=rtsi,其中 r t r_t rt为第t家转运商的损耗率, s i s_i si是第i家企业的供货量。
- 目标函数:损耗量最小
- 约束条件:
- 每家企业只能选择一个转运商
- 一个转运商可为多家供货商进行转运,但不会超过供货商的数目
- 每家转运商存在转运上限
回顾学习:
整数规划的典型例题
关于指派问题的求解:
0-1类型的指派问题确实可以转化为0-1整数规划问题,并利用线性规划工具箱进行求解。在0-1指派问题中,每个任务只能被分配给一个工人,且每个工人只能负责一个任务,这可以通过设置决策变量为0或1来实现。其中,决策变量为1表示对应的任务被分配给对应的工人,为0则表示没有分配。
转化过程如下:
-
定义决策变量:设 x i j x_{ij} xij为决策变量,其中 i i i表示任务, j j j表示工人。如果 x i j = 1 x_{ij}=1 xij=1,则表示任务 i i i被分配给工人 j j j;如果 x i j = 0 x_{ij}=0 xij=0,则表示任务 i i i没有被分配给工人 j j j。
-
建立目标函数:根据指派问题的要求,可以建立最小化总成本或最大化总效益的目标函数。例如,如果有一个成本矩阵 C C C,其中 c i j c_{ij} cij表示任务 i i i由工人 j j j完成的成本,则目标函数可以表示为 min ∑ i ∑ j c i j x i j \min \sum_{i} \sum_{j} c_{ij}x_{ij} min∑i∑jcijxij。
-
建立约束条件:
- 每个任务必须被分配:对于每个任务 i i i,必须有 ∑ j x i j = 1 \sum_{j} x_{ij} = 1 ∑jxij=1,确保每个任务都被分配给一个工人。
- 每个工人只能负责一个任务:对于每个工人 j j j,必须有 ∑ i x i j = 1 \sum_{i} x_{ij} = 1 ∑ixij=1,确保每个工人只负责一个任务。
- 决策变量为0或1: x i j ∈ { 0 , 1 } x_{ij} \in \{0, 1\} xij∈{0,1},表示任务是否被分配。
-
利用线性规划工具箱求解。
第三问(基于非支配排序遗传算法的订货方案求解)
为了压缩生产成本,企业需要尽可能多的购买性价比高的A类原材料和尽可能少的购买性价比较低的C类原材料,因而可以转化为一个多目标规划问题,以最小化不同材料的成本为目标函数。
可以用NSGA-II非支配排序遗传算法来求解多目标规划问题。
同样的,我们通过循环,求解24周的订购方案。接着采用第二问的指派模型来求解转运方案。
第四问
假设企业产能增加取决于他们要合作的企业数量。企业越多,则可以提高的产能越高。在确定了供货商合作数量后,我们再根据问题二所构建的线性规划模型求解供货商订货方案,最后利用问题二构建的指派问题模型进行获得运输方案。最终,我们求得产能可提升5977.6立方米。