总时差与自由时差
定义
总时差(总浮动时间)(TF,Total Free Time,不耽误项目总进度)=LS(Latest Start)-ES(Earliest Start)=LF(Latest Finish)-EF(Earliest Finish)。
自由时差(FF,Float Free Time,不耽误紧后工作的进度)=紧后工作ES-本工作的EF。对于无紧后工作的工作,其自由时差=工期-本工作的EF。
Introduction
看到这俩名词一开始会有点蒙,引入它们是为了解决一个什么问题呢?现在假设你是一个项目经理,有个项目涉及了ABCEDFGHI共九个工作模块,各个模块所需要的时间及制约关系在下图也标注了出来:

那么现在问题来了,你觉得这个项目最早完成时间是多少??很显然,蓝色画笔圈出来的也就是最长的那条路径上所有工作模块所需时间的总和就是最早完成时间,对吧?我们把这个时间呢,就称为工期,这条路径也就称之为关键路径。
还没完,接下来我要问你关键的问题了。这些模块中哪些模块可以晚点开始而不影响工期?能晚多久?哪些模块可以晚点开始而不影响其紧后结点呢?其实啊,这俩名词就是为了这俩问题而存在的。按照定义,你能不能把这九个工作模块他们的自由时差和总时差都算出来呢?
经过计算,你会发现,关键路径上的工作模块它们的总时差和自由时差均为0。这很好理解,毕竟关键路径上的模块时间推迟直接影响工期,所以它们的总时差是0,并且它们的推迟直接导致后面的模块推迟,所以自由时差也为0。
ADG这三个模块的总时差均为12,AD自由时差均为0,G的自由时差为12。
CFI这三个模块的总时差均为15,CF的自由时差均为0,I的自由时差等于15。
Context
其实,无非就是一个有向无环图嘛。
我们做图的时候,是把圆圈结点当作一个活动的结束或是另一个活动的开始,连接线表示活动,箭头表示活动的制约关系。
求一个活动的总浮动时间,就是粗暴的把从开始结点到结束结点,所有经过这条线的链路找出来,取那个最长的链路时间T,然后用工期减去T。
求一个活动的自由时差,如下图所示。你需要把从开始结点并经过活动1的的最长链路找到,记它的时间是T1吧;把从开始结点并经过活动2的的最长链路找到,记时间T2;记时间T3;,,,求这些时间的最大值我记为TMax=max{T1,T2,T3}。

那么活动1的自由时差就等于TMax-T1;同理活动2,3,etc。
可以看出,如果本活动指向的结点并没有其它活动指向它的话,它的自由时差一定为0,因为就你自己个儿嘛,父母响应计划生育你能说啥。所以说自由它是一个相对的概念,没得其它活动在,或是你没得其它活动优秀,你就获得不了自由。
有的小伙伴可能要问了?自由时差的定义不是和紧后工作有关系吗?事实上,它们确实是 没有关系。你想啊,紧后工作的最早开始时间,可不就是之前所有链路的最长链路的时间嘛。
这也就意味着,。结点后面有一个活动或是多个活动,或是没有活动,都不对自由时差产生影响。特殊情况下,当结点为终结点时,此活动的自由时差的定义和总时差的定义是一样的。
就写到这里了,如果你愿意,可以用下面的练习题来加深理解:
Exercise
如下图,你能求出活动D的总时差与自由时差吗?

答案:D的总时差=2,自由时差=1.如下图,总时差是蓝色-红色;自由时差是两个绿色之差。

Summary
总时差和自由时差都是表示自由度的概念。
总时差是指不影响工期的前提下,本工作(也许是一个工作序列)可以利用的机动时间。;
自由时差是指在不影响其紧后工作最早开始时间的前提下,本工作可以利用的机动时间。
总时差总是大于等于自由时差的。
相关文章:
总时差与自由时差
定义总时差(总浮动时间)(TF,Total Free Time,不耽误项目总进度)LS(Latest Start)-ES(Earliest Start)LF(Latest Finish)-EF࿰…...
LeetCode两个数组的交集-跳跃游戏- 最长有效括号
两个数组的交集 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出:[2] 示例 2: 输入&…...
mysql普通索引与唯一索引怎么选择
学习mysql普通索引与唯一索引选择记录总结,学习链接:http://gk.link/a/11YG8从mysql查询操作分析:普通索引:查到满足条件的第一条记录后,还会继续查找下一条记录,直到出现满足条件的记录出现后停止检索唯一…...
JavaWeb开发(三)3.5——Java的反射机制
一、反射机制的概念 指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法。这种动态获取信息,及动态调用对象方法的功能叫java语言的反射机制。 Java反射机制的核心是在程序运行时动…...
Python每日一练(20230305)
目录 1. 正则表达式匹配 ★★★ 2. 寻找旋转排序数组中的最小值 II ★★★ 3. 删除排序链表中的重复元素 II ★★ 1. 正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个…...
SpringBoot三种方法实现定时发送邮件的案例
前言 小编我将用CSDN记录软件开发之路上所学的心得与知识,有兴趣的小伙伴可以关注一下!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习,让我们共…...
opengl、opengl es、webgl介绍与opengl开发入门
1、OpenGL OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。OpenGL的高效实现(利用了图形加速硬件)存在于Windo…...
Vue3之组件间传值
何为组件间传值 在Vue3之组件文章中,我们学会了定义使用组件,但是我们似乎还缺少什么将组件之间联系起来,说到组件之间的联系就不得不提组件间的传值,而组件间的传值其实也不难理解,就是如何在子组件中接收到父组件传…...
Windows10下使用CMake编译ITK5.2.1步骤
编译环境:Windows10VS2017Cmak3.24.0ITK5.2.1 编译步骤: 1、下载ITK到本地:ITK官网Download | ITK,ITK5.2.1下载地址 https://github.com/InsightSoftwareConsortium/ITK/releases/download/v5.2.1/InsightToolkit-5.2.1.zip …...
字符串模式匹配,经典KMP算法你还不会?我可不允许你不会!
文章目录重点1. 简单模式匹配算法2. 部分匹配值PM的算法(Move j-1 PM[j-1])3. 部分匹配值PM的两次改进(Move j-next[j])4. 快速得到next数组5. KMP匹配算法重点 童鞋们看网上讲解的时候一定要分清楚序列是从0开始还是从1开始&…...
C++操作redis(实现连接池、分布式锁)
文章目录Redis连接池编译项目整体架构使用分布式锁总结Redis连接池 封装hiredis的一些基本操作,redishelper类提供包含连接,放回,存取键,push,pop,执行redis语句和执行lua脚本的函数,连接池是类…...
硬件基础专题-01电阻篇
目录 课程链接 学习目的 电阻 电阻理论讲解 电阻定义 欧姆定律 电阻单位换算 电阻选型考虑 安装方式 常见电阻值 各种贴片电阻的读取方式 确定电阻值的方法 电阻数据手册 电阻测量 电阻的产品应用 零欧姆电阻 热敏电阻 光敏电阻 课程链接 视频专辑 - 硬件…...
【JAVA程序设计】(C00112)基于Springboot+Thymeleaf的在线购物商城——有文档
基于SpringbootThymeleaf的在线购物商城——有文档项目简介项目获取开发环境项目技术运行截图运行视频项目简介 基于Springbootthymeleaf框架的在线购物商城系统,本系统共分为二个角色:管理员和用户 管理员角色包含以下功能: 商品管理、商品…...
shell基础(5)算数计算:运算语法、自增自减
文章目录1. shell算数运算的特点2. 运算符一览3. 运算语法3.1 整形运算3.2. 小数运算 ing4. 自增自减4.1. a与a4.2. 自加1. shell算数运算的特点 Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令。Shell只支持整数运算&#…...
virtio设备input节点
注册virtio_input_node节点,节点类型为VLIB_NODE_TYPE_INPUT。 VLIB_REGISTER_NODE (virtio_input_node) {.name "virtio-input",.sibling_of "device-input",.format_trace format_virtio_input_trace,.flags VLIB_NODE_FLAG_TRACE_SUPP…...
《计算机网络:自顶向下方法》学习笔记——第一章:计算机网络和因特网
计网 第一章 计算机网络和因特网 1.1 什么是因特网 回答这个问题有两种方式 其一,我们能够描述因特网的具体构成,即构成因特网的基本硬件和软件组件;其二,我们能够根据为分布式应用提供服务的联网基础设施来描述因特网。 1.1.…...
PDF 解析格式化输出 API 数据接口
PDF 解析格式化输出 API 数据接口 支持输出 TEXT HTML XML TAG,多种格式输出,超精准识别率。 1. 产品功能 通用的识别接口, 支持标准 PDF 文件解析;多种格式输出,支持 TEXT HTML XML TAG;HTML 包含完美排…...
RL笔记:基于策略迭代求CliffWaking-v0最优解(python实现)
目录 1. 概要 2. 实现 3. 运行结果 1. 概要 CliffWalking-v0是gym库中的一个例子[1],是从Sutton-RLbook-2020的Example6.6改编而来。不过本文不是关于gym中的CliffWalking-v0如何玩的,而是关于基于策略迭代求该问题最优解的实现例。 CliffWalking-v0的…...
350. 两个数组的交集 II
两个数组的交集 II 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结…...
Android仿微信选择图片
效果展示首先先添加用到的权限<uses-permission android:name"android.permission.INTERNET" /><!--获取手机存储卡权限--><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:nam…...
如何永久保存微信聊天记忆:WeChatMsg本地数据管理终极指南
如何永久保存微信聊天记忆:WeChatMsg本地数据管理终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...
史上最快破 10 万 Star!Claude Code Python 重写版震撼上线!
文章目录 📖 介绍 📖 🏡 演示环境 🏡 📒 史上最快10万Star项目 📒 📝 事件始末 🔧 项目架构 🗂️ 目录结构 ⭐ Rust工作区模块 🚀 快速开始 📦 Python版 🦀 Rust版 💡 核心特色 🎯 清洁室重写 🔄 AI辅助开发 📊 Rust性能优化 🌟 项目影响力 …...
如何快速掌握Outfit字体:5个简单技巧打造专业级设计
如何快速掌握Outfit字体:5个简单技巧打造专业级设计 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体是一款专业的开源无衬线字体,提供从Thin到Black的9种完整字…...
3种方法彻底移除Windows Defender:释放系统性能,恢复完全控制权
3种方法彻底移除Windows Defender:释放系统性能,恢复完全控制权 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcod…...
GetQzonehistory:3步轻松永久备份QQ空间所有历史说说
GetQzonehistory:3步轻松永久备份QQ空间所有历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在担心QQ空间里那些承载青春记忆的说说会突然消失吗?GetQ…...
自用超香的 Navidrome 音乐库搭建分享,告别听歌各种糟心事!
前言 作为一个实打实的音乐爱好者,我曾被听歌这件事折腾得够呛 —— 手机播放器加载慢到让人没耐心,喜欢的歌动不动就因为版权问题听不了,充了会员也总觉得不划算,更别说囤了一堆无损音乐却只能在电脑上听的憋屈。直到用上 Navid…...
mPLUG模型隐私保护展示:本地化部署的数据安全优势
mPLUG模型隐私保护展示:本地化部署的数据安全优势 1. 数据安全新选择:本地化部署的价值 在当今数据驱动的时代,隐私保护已经成为企业和个人用户最关心的问题之一。传统的云端AI服务虽然方便,但用户数据需要上传到第三方服务器&a…...
ChilloutMix模型实战:从零部署到高效生成AI图像
ChilloutMix模型实战:从零部署到高效生成AI图像 【免费下载链接】chilloutmix_NiPrunedFp32Fix 项目地址: https://ai.gitcode.com/hf_mirrors/emilianJR/chilloutmix_NiPrunedFp32Fix ChilloutMix是一个基于Stable Diffusion架构的AI图像生成模型ÿ…...
从分子动力学模拟到结合自由能分析:gmx_MMPBSA实战指南
从分子动力学模拟到结合自由能分析:gmx_MMPBSA实战指南 【免费下载链接】gmx_MMPBSA gmx_MMPBSA is a new tool based on AMBERs MMPBSA.py aiming to perform end-state free energy calculations with GROMACS files. 项目地址: https://gitcode.com/gh_mirrors…...
Go Routine 调度策略详解
Go Routine 调度策略详解 Go语言凭借其轻量级的并发模型——Goroutine,成为高并发编程的热门选择。Goroutine的高效运行离不开Go调度器的智能管理,而调度策略则是其核心机制。本文将深入解析Goroutine的调度策略,帮助开发者更好地理解并发执…...
