Tips:这是帮人做的作业,这里放上来,如果遇到后面逻辑关系有变化,只要修改list中的dict,基本上就适用于所有的逻辑关系图。

目录

逻辑关系图​编辑

双代号网络图

时间参数计算公式

结果(分别是最早开始时间,最早完成时间,最迟开始时间,最迟完成时间,总时差,自由时差)

代码


逻辑关系图

双代号网络图

时间参数计算公式

①最早开始时间:是指各紧前工作全部完成之后,工作i-j有可能开始的最早时间,用ES(i-j)表示。

 ES(i-j)=0(i=1)

②最早完成时间:指在各紧前工作全部完成后,工作i-j有可能完成的最早时间,用EF(i-j)表示。EF(i-j)=ES(i-j)+D(i-j) 

③最迟开始时间:指在不影响整个任务按期完成的前提下,工作i-j必须开始的最迟时间,用LS(i-j)表示。

LS(i-j)=LF(i-j)+D(i-j)

④最迟完成时间:指在不影响整个任务按期完成的前提下,工作i-j必须完成的最迟时间,用LF(i-j)表示。

LF(i-j)=min{LS(i-j)}

⑤总时差:指在不影响总工期的前提下,工作i-j可以利用的机动时间,用TF(i-j)表示。

TF(i-j)=LF(i-j)+EF(i-j)

⑥自由时差:指在不影响其紧后工作最早开始的前提下,工作i-j可以利用的机动时间,用FE(i-j)表示。

FE(i-j)=min{ES(i-j)-EF(i-j)}

结果(分别是最早开始时间,最早完成时间,最迟开始时间,最迟完成时间,总时差,自由时差)

代码

dictA = {'工作名称':'A','紧前工作':'-','持续时间':3}
dictB = {'工作名称':'B','紧前工作':'A','持续时间':3}
dictC = {'工作名称':'C','紧前工作':'A','持续时间':3}
dictD = {'工作名称':'D','紧前工作':'B','持续时间':8}
dictE = {'工作名称':'E','紧前工作':'B,C','持续时间':5}
dictF = {'工作名称':'F','紧前工作':'C','持续时间':4}
dictG = {'工作名称':'G','紧前工作':'D,E','持续时间':4}
dictH = {'工作名称':'H','紧前工作':'E,F','持续时间':2}
dictI = {'工作名称':'I','紧前工作':'H,G','持续时间':2}list = [dictA,dictB,dictC,dictD,dictE,dictF,dictG,dictH,dictI]# 最早开始时间
list1 = []
for i in range(len(list)):listtmp = {'index':'','value':0}if list[i]['紧前工作'] == '-':list1.append(0)continuetmp = list[i]["紧前工作"].split(',')for x in tmp:index = ord(x)-ord('A')if listtmp['index'] == '':listtmp['index']=indexlisttmp['value'] = list1[index]else:if list1[ord(x)-ord('A')] > listtmp['value']:listtmp['index'] = indexlisttmp['value'] = list1[index]list1.append(list[listtmp['index']]['持续时间'] + listtmp['value'])
print(list1)# 最早完成时间
list2 = []
for i in range(len(list1)):list2.append(list1[i] + list[i]['持续时间'])
print(list2)# 计算工期
Tp = list2[len(list2)-1]
# 最迟开始时间
list3=[]
# 最迟完成时间
list4=[]
for i in range(len(list)-1,-1,-1):if i==len(list)-1:list4.append(Tp)list3.append(Tp-list[i]['持续时间'])continueelse:min_value = 100for j in range(len(list)-1,i,-1):tmp = list[j]["紧前工作"].split(',')if list[i]['工作名称'] in tmp:if min_value > list3[len(list)-j-1]:min_value = list3[len(list)-j-1]list4.append(min_value)list3.append(list4[len(list)-i-1]-list[i]['持续时间'])
list3.reverse()
list4.reverse()
print(list3)
print(list4)# 总时差
list5 = []
for i in range(len(list)):list5.append(list3[i]-list1[i])
print(list5)# 自由时差
list6 = []
for i in range(len(list)-1,-1,-1):if i==len(list)-1:list6.append(Tp-list2[i])continueelse:min_value = 100for j in range(len(list) - 1, i, -1):tmp = list[j]["紧前工作"].split(',')if list[i]['工作名称'] in tmp:if min_value > list1[j]:min_value = list1[j]list6.append(min_value-list2[i])
list6.reverse()
print(list6)

根据逻辑关系图以及双代号网络图编写求时间参数(python版)相关推荐

  1. 计算机系统集成双代号网络图讲解,系统集成项目管理工程师双代号时标网络图知识解读...

    系统集成项目管理工程师双代号时标网络图知识解读 一.双代号时标网络计划的概念及特点 1.双代号时标网络计划的概念 双代号时标网络计划(简称时标网络计划)是以时间坐标为尺度绘制的网络计划,它是综合应用横 ...

  2. 双代号网络图节点编号原则_『干货』二级建造师考试高频考点 双代号网络图的详细解析...

    准备二级建造师考试的朋友们注意了,一年一度的二级建造师考试马上又要开始了,不管现在是不是已经开始备考,都要注意双代号网络图是二建考试中的一个高频考点,话说在管理科目中双代号网络图在2015-2018年 ...

  3. 双代号网络图节点编号原则_一表多图(表格/横道图/网络图)让计划编制效率提高10倍...

    会用Excel就会用斑马进度计划!可以在表格中做计划,双代号网络图和横道图同步生成,也可以直接绘制双代号网络图横道图,一种输入多种输出,通过双代号网络计划保证计划逻辑关系和关键线路完整性和正确性,指导 ...

  4. 双代号网络图基础算法_最新(免锁版)网络图横道图绘制软件,内附安装教程,制图做更快...

    最新(免锁版)网络图横道图绘制软件,内附安装教程,制图做更快 网络图横道图绘制可制作双代号网络计划.单代号网络图.横道图(及甘特图Gantt),是最常用的计划与控制手段之一,项目管理的必备工具,还可作 ...

  5. 单代号网络图计算例题_工程人如何绘制进度计划?(双代号网络图、横道图等)...

    网络图:是由箭线和节点.线路组成的,用来表示工作流程的有向.有序的网状图形,每个工作都有两个节点,用圆圈表示,和一个有方向的箭线构成,箭线的长度代表工期的长短. 横道图:又称甘特图(Gantt cha ...

  6. [架构之路-193]-《软考-系统分析师》-2-应用数学 - 项目周期与关键路径(PERT图、甘特图、单代号网络图、双代号网络图)

    1.  关键概念 1.1 关键路径 关键路径通常(但并非总是)是决定项目工期的进度活动序列.它是项目中最长的路径,即使很小浮动也可能直接影响整个项目的最早完成时间.关键路径的工期决定了整个项目的工期, ...

  7. 【转】双代号网络图的绘制

    转载地址:https://sanwen8.cn/p/p8ceou.html 1.各种逻辑关系的正确表示方法 各工作间的逻辑关系,既包括客观上的由工艺所决定的工作上的先后顺序关系,也包括施工组织所要求的 ...

  8. 双代号网络图基础算法_9个简单数学算法在管理领域的运用

    数学,一直被认为是一个很让人头疼的学科,好像除了专业人士外,其他人都会"谈之色变",网上有个段子道出了真相:"初二那年,我弯腰捡了一支笔,从此再没听懂过数学课" ...

  9. 双代号网络图节点编号原则_难倒一片的双代号网络图你学会了吗?

    2020年二级建造师考试仅剩21天,备考二建的你准备好了吗?! 虽然正值双节假期,但是时间不等人,备考要抓紧!今天给大家整理了双代号网络计划知识点汇总,赶紧一起来学习吧! 双代号网络计划 (一)基本概 ...

最新文章

  1. 先写API文档还是先写代码?你需要这款神器Apifox!
  2. 日常生活小技巧 -- vim 中 ctags 的安装和使用
  3. 多租户以及基于多租户的数据库设计需求
  4. python彩色螺旋线_解决python彩色螺旋线绘制引发的问题
  5. Activity的launchMode启动模式 day7
  6. php基础教程(二):基础语法
  7. 国家广电总局:常规电视剧剧集正片时长不少于41分钟
  8. JS-以鼠标位置为中心的滑轮放大功能demo1
  9. Proxy 对象简介
  10. C++编译期间字节序判断
  11. C# 自定义网格 dataGridView 禁止编辑 + 禁止自动生成新列 + 禁止生成新行 + 禁止删除行 + 禁止多选 + 禁止行选中 + 禁止改变列宽度 行高度
  12. HDF5 library version mismatched error
  13. 探讨【IGE】的源代码【四】。
  14. Cadence OrCAD Capture交叉参考报表生成方法图文教程
  15. 【Vue】基础入门 —— 黑马程序员
  16. js定义对象的多个属性值
  17. html邮件模板美化,设计利器:定制你的炫酷邮件模板
  18. 二叉树中序线索化分析
  19. 计算机加号公式,怎样在excel表格中显示加号,而不被当成是公式来计算
  20. PMP-总价合同、固定合同、工料合同对比

热门文章

  1. Android使用shape绘制各种形状
  2. 在页面显示,给表格加序列号
  3. 探索大语言模型垂直化训练技术和应用-陈运文
  4. 在VMware 10.0上安装NetBSD 1.0
  5. 程序员干货:从写简历,到面试、谈薪酬的那些技巧和防坑指南!
  6. 迭代回顾会议 五个分区_使用回顾作为异议工具的5个技巧
  7. 做自己的奴隶还是自己的主人?不掌控命运,就被命运掌控
  8. PMP项目管理考试培训机构内部资料打包赠送(3个PPT)
  9. tftp服务器从交换机上下载配置命令_若要将交换机中的映像文件备份到TFTP服务器,其配置命令为( )。(2分)...
  10. Second Life第二人生 注册 登陆 常见问题解析