软件工程经济学-日常作业+大作业

ops/2025/2/1 19:43:35/

目录

一、作业1

作业内容

解答

二、作业2

作业内容

解答

三、作业3

作业内容

解答

四、大作业

作业内容

解答

1.建立层次结构模型

(1)目标层

(2)准则层

(3)方案层

2.构造判断矩阵

(1)准则层判断矩阵

(2)方案层判断矩阵

3.层次单排序及其一致性检验

代码

运行结果

4.层次总排序及其一致性检验

代码

运行结果

决策


一、作业1

作业内容

练习题1:请根据下表绘制相应的网络计划图 

解答

二、作业2

作业内容

练习题2:请根据下表绘制相应的网络计划图

解答

三、作业3

作业内容

作业3:某软件工程项目经工作分解后,给出了活动明细表,如下表所示:

1、求解每个活动的te值,并填入表中;

2、绘制对应计划网络图;

3、求解该计划网络图的关键活动、关键节点和关键路线。

解答

1、求解每个活动的te值,并填入表中

编号

活动代号

t0

tm

tp

te

紧前活动

1

A

6

7.5

12

8

-

2

B

4.5

4.8

6.3

5

A

3

C

1.2

2

2.8

2

A

4

D

5

6.7

10.2

7

A

5

E

4.6

5.7

8.6

6

B

6

F

5.5

6

6.5

6

C

7

G

0

0

0

0

B

8

H

5.5

7

8.5

7

F、G

9

I

3.5

5.2

5.7

5

H

10

J

4.7

5.9

7.7

6

D、E、I

2、绘制对应计划网络图

3、求解该计划网络图的关键活动、关键节点和关键路线

关键活动:A、C、F、H、I、J

关键节点:1、2、3、5、6、7、8

关键路线:A->C->F->H->I->J

四、大作业

作业内容

 要求:某企业计划采购一批生产设备,现有四家供应商提供的设备备选。请运用层次分析法,从设备的功能性、价格、外观、售后服务等多个方面(可添加考虑因素,自由发挥)进行综合评价,选出最优的供应商。

解答

1.建立层次结构模型
(1)目标层

选择最优的生产设备供应商

(2)准则层

功能性(B1)

价格(B2)

外观(B3)

售后服务(B4)

(3)方案层

供应商C1

供应商C2

供应商C3

供应商C4

2.构造判断矩阵
(1)准则层判断矩阵

为了建立准则层的判断矩阵,我们对各个准则进行成对比较,判断它们在选择供应商时的重要性。我们使用1-9标度法进行比较(1表示两者同等重要,9表示一个因素比另一个重要9倍,反之使用倒数)。

功能性 (B1)

价格 (B2)

外观 (B3)

售后服务 (B4)

功能性 (B1)

1

5

3

7

价格 (B2)

1/5

1

1/3

2

外观 (B3)

1/3

3

1

4

售后服务 (B4)

1/7

1/2

1/4

1

(2)方案层判断矩阵

接下来,我们对每个准则下的供应商进行成对比较。以下为供应商在功能性(B1)、价格(B2)、外观(B3)和售后服务(B4)方面的判断矩阵。我们同样采用1-9标度法进行比较。

供应商在功能性(B1)方面的判断矩阵:

C1

C2

C3

C4

C1

1

3

1/5

2

C2

1/3

1

1/7

1/3

C3

5

7

1

9

C4

1/2

3

1/9

1

供应商在价格(B2)方面的判断矩阵:

C1

C2

C3

C4

C1

1

1/3

5

1/7

C2

3

1

7

1/3

C3

1/5

1/7

1

1/9

C4

7

3

9

1

供应商在外观(B3)方面的判断矩阵:

C1

C2

C3

C4

C1

1

1/2

3

1/5

C2

2

1

5

1/3

C3

1/3

1/5

1

1/7

C4

5

3

7

1

供应商在售后服务(B4)方面的判断矩阵:

C1

C2

C3

C4

C1

1

5

1/3

2

C2

1/5

1

1/7

1/3

C3

3

7

1

5

C4

1/2

3

1/5

1

3.层次单排序及其一致性检验
代码
import numpy as np# 计算特征向量和最大特征值def calculate_eigenvector(matrix):# 计算矩阵的特征值和特征向量eigvals, eigvecs = np.linalg.eig(matrix)# 选择最大特征值的索引max_eigval_index = np.argmax(eigvals)max_eigval = eigvals[max_eigval_index]# 归一化特征向量eigvec = eigvecs[:, max_eigval_index]eigvec = eigvec / np.sum(eigvec)  # 归一化,使其和为1return eigvec.real, max_eigval.real# 一致性检验def consistency_check(matrix, max_eigval):n = matrix.shape[0]  # 矩阵的维度CI = (max_eigval - n) / (n - 1)  # 一致性指标 CIRI = [0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45]  # 随机一致性指标 RI(根据矩阵维度n)CR = CI / RI[n - 1]  # 一致性比率 CRreturn CI, CR# 示例:准则层判断矩阵B1_matrix = np.array([[1, 5, 3, 7],[1 / 5, 1, 1 / 3, 2],[1 / 3, 3, 1, 4],[1 / 7, 1 / 2, 1 / 4, 1]])# 计算特征向量和最大特征值eigvec_B1, max_eigval_B1 = calculate_eigenvector(B1_matrix)# 输出特征向量和最大特征值print("准则层特征向量:", eigvec_B1)print("准则层最大特征值:", max_eigval_B1)# 一致性检验CI_B1, CR_B1 = consistency_check(B1_matrix, max_eigval_B1)# 输出一致性检验结果print("准则层一致性指标 CI:", CI_B1)print("准则层一致性比率 CR:", CR_B1)# 判断一致性if CR_B1 < 0.1:print("准则层判断矩阵一致性通过")else:print("准则层判断矩阵一致性不通过,需要重新构造判断矩阵")
运行结果

4.层次总排序及其一致性检验
代码
import numpy as np# 计算特征向量和最大特征值def calculate_eigenvector(matrix):eigvals, eigvecs = np.linalg.eig(matrix)max_eigval_index = np.argmax(eigvals)max_eigval = eigvals[max_eigval_index]eigvec = eigvecs[:, max_eigval_index]eigvec = eigvec / np.sum(eigvec)  # 归一化,使其和为1return eigvec.real, max_eigval.real# 一致性检验def consistency_check(matrix, max_eigval):n = matrix.shape[0]  # 矩阵的维度CI = (max_eigval - n) / (n - 1)  # 一致性指标 CIRI = [0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45]  # 随机一致性指标 RI(根据矩阵维度n)CR = CI / RI[n - 1]  # 一致性比率 CRreturn CI, CR# 计算层次总排序def calculate_total_ranking(criteria_weights, matrix_list):# matrix_list 是方案层的判断矩阵列表rankings = []for i, matrix in enumerate(matrix_list):eigvec, max_eigval = calculate_eigenvector(matrix)CI, CR = consistency_check(matrix, max_eigval)# 计算每个方案在该准则下的权重weight = np.dot(eigvec, criteria_weights[i])rankings.append(weight)# 综合排序,得到每个方案的总权重total_weights = np.sum(rankings, axis=0)return total_weights# 示例:准则层判断矩阵B1_matrix = np.array([[1, 5, 3, 7],[1 / 5, 1, 1 / 3, 2],[1 / 3, 3, 1, 4],[1 / 7, 1 / 2, 1 / 4, 1]])# 示例:方案层判断矩阵C1_matrix = np.array([[1, 3, 1 / 5, 2],[1 / 3, 1, 1 / 7, 1 / 3],[5, 7, 1, 9],[1 / 2, 3, 1 / 9, 1]])C2_matrix = np.array([[1, 1 / 3, 5, 1 / 7],[3, 1, 7, 1 / 3],[1 / 5, 1 / 7, 1, 1 / 9],[7, 3, 9, 1]])C3_matrix = np.array([[1, 2, 1 / 3, 1 / 5],[1 / 2, 1, 1 / 9, 1 / 7],[3, 9, 1, 7],[5, 7, 1 / 7, 1]])C4_matrix = np.array([[1, 1 / 2, 3, 1 / 4],[2, 1, 5, 1 / 3],[1 / 3, 1 / 5, 1, 1 / 7],[4, 3, 7, 1]])# 计算准则层的权重(特征向量)criteria_matrix = B1_matrix  # 假设准则层只有一个判断矩阵criteria_weights, max_eigval_B1 = calculate_eigenvector(criteria_matrix)# 计算方案层的综合权重matrix_list = [C1_matrix, C2_matrix, C3_matrix, C4_matrix]  # 方案层判断矩阵列表total_weights = calculate_total_ranking(criteria_weights, matrix_list)# 输出层次总排序print("各方案的综合权重:", total_weights)# 判断是否一致CI_B1, CR_B1 = consistency_check(criteria_matrix, max_eigval_B1)print("准则层一致性指标 CI:", CI_B1)print("准则层一致性比率 CR:", CR_B1)# 根据综合权重选择最优方案best_supplier_index = np.argmax(total_weights)print(f"最优供应商是供应商 C{best_supplier_index + 1}")
运行结果

决策

最优供应商为C3


http://www.ppmy.cn/ops/154837.html

相关文章

HTTPS 协议原理

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; HTTPS 是什么&#x1f98b; 定义 二&#xff1a;&#x1f525; 概念准备&#x1f98b; 什么是"加密"&#x1f98b; 为什么要加密&#x1f98b; …

小程序-基础加强

前言 这一节把基础加强讲完 1. 导入需要用到的小程序项目 2. 初步安装和使用vant组件库 这里还可以扫描二维码 其中步骤四没什么用 右键选择最后一个 在开始之前&#xff0c;我们的项目根目录得有package.json 没有的话&#xff0c;我们就初始化一个 但是我们没有npm这个…

【8】思科IOS AP升级操作

1.概述 本文主要针对思科AP的升级操作进行记录,思科的AP目前主要分为IOS和COS AP,IOS AP是我们常见的AP3502/AP1602/AP2702等等型号的AP,而COS AP是AP2802/3802等型号的AP。当然这里所指的都是一些室内AP,如AP1572等室外AP也同样适用。本文先对IOS AP的升级操作进行总结,…

设计模式 - 行为模式_Template Method Pattern模板方法模式在数据处理中的应用

文章目录 概述1. 核心思想2. 结构3. 示例代码4. 优点5. 缺点6. 适用场景7. 案例&#xff1a;模板方法模式在数据处理中的应用案例背景UML搭建抽象基类 - 数据处理的 “总指挥”子类定制 - 适配不同供应商供应商 A 的数据处理器供应商 B 的数据处理器 在业务代码中整合运用 8. 总…

Redis实现,分布式Session共享

依赖 不指定版本防止冲突 直接用版本依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.4</version><relativePath/> <!-- lookup parent from …

Spring Boot 后端跨域解决方案:解锁前后端通信的障碍

随着前后端分离架构的普及&#xff0c;跨域资源共享&#xff08;Cross-Origin Resource Sharing, CORS&#xff09;问题成为了许多开发者必须面对的一个挑战。当Web浏览器尝试从一个源加载资源到另一个不同的源时&#xff0c;出于安全考虑&#xff0c;它会实施同源策略&#xf…

【Linux】日志设计模式与实现

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;Linux系统编程 这里将会不定期更新有关Linux的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目…

关于hexo-deploy时Spawn-Failed的几种解决方案

title: 关于hexo deploy时Spawn Failed的几种解决方案 tags: 技术踩坑 abbrlink: 31824 date: 2023-08-20 11:42:13 前言 昨天晚上&#xff0c;我兴致勃勃的打开了cmd窗口&#xff0c;准备写一篇有关了解Kaggle的博客&#xff0c;当我文思泉涌&#xff0c;啪嗒啪嗒地码完整篇…