10分钟掌握项目管理核心工具:WBS、甘特图、关键路径法全解析
一、引言
在项目管理的广阔天地里,犹如一场精心编排的交响乐演奏,每个乐器、每个音符都需精准配合才能奏响美妙乐章。而 WBS(工作分解结构)、甘特图、关键路径法无疑是这场交响乐中的关键乐章,它们从不同维度为项目管理提供了清晰的框架、直观的进度展示以及高效的资源与时间优化策略。无论是初涉项目管理领域的新手,渴望迅速掌握核心技能,还是经验丰富的项目经理,追求项目执行的精益求精,深入理解这些工具都将如虎添翼,助力在项目管理的舞台上创造卓越绩效,让复杂的项目如同被施了魔法般有条不紊地推进。
二、项目管理工具介绍
(一)WBS(工作分解结构)
- 概览:WBS 是一种将项目可交付成果和项目工作分解为较小、更易于管理的组成部分的方法,它以层次结构呈现项目的全貌,从项目目标逐级向下分解到具体的任务和工作包。
- 版本:作为项目管理的基础概念与方法,并非特定软件产品,不存在传统意义上的版本更新,但在不同的项目管理知识体系和行业应用中,其应用深度和广度不断拓展与细化。
- 荣誉:被广泛认可为项目管理规划的基石性工具,是众多项目管理标准和最佳实践的核心组成部分,为项目的成功规划与执行奠定了坚实基础。
- 著名用户:几乎所有行业和规模的企业在开展项目时都会运用 WBS,如建筑行业的大型工程项目(中国建筑集团在众多地标性建筑项目中运用 WBS 进行项目规划)、科技企业的产品研发项目(苹果公司在 iPhone 系列产品研发中借助 WBS 梳理任务层次)等。
- 集成特性:常与项目管理软件集成,如在 Microsoft Project 中,WBS 作为项目架构的基础,与资源分配、进度跟踪等功能紧密结合,实现数据的互通与协同;在 Primavera P6 中,也为复杂项目的多维度管理提供底层架构支撑,便于不同模块间的数据交互与整合。
- 主要优势:提供清晰的项目范围界定,避免项目范围蔓延;有助于明确各层级任务的责任人与交付成果,提高任务分配的准确性和可追溯性;为项目成本估算、资源分配和进度安排提供详细的框架依据,使项目计划更具系统性和科学性。
- 独特特性:其层次化的结构具有很强的逻辑性和可视化效果,能够直观地展示项目从宏观目标到微观任务的分解过程,如同项目的“基因图谱”,蕴含着项目的所有任务信息与逻辑关系。
- 功能细节:可以按照项目阶段、产品组成部分、工作职能等多种维度进行分解,分解后的工作包具有明确的可交付成果、责任人、时间估算和成本估算等属性,方便进行项目的精细化管理与监控。
- 目标用户群体:适用于各类项目管理参与者,包括项目经理、项目团队成员、项目利益相关者等,是项目规划阶段不可或缺的工具,帮助各方在项目伊始就对项目全貌和各自职责有清晰的认知与共识。
(二)甘特图
- 概览:甘特图是一种以图示方式通过活动列表和时间刻度展示项目进度安排的工具,它以横道图的形式直观地呈现任务的开始时间、结束时间、持续时间以及任务之间的并行与串行关系。
- 版本:不同的项目管理软件对甘特图的功能和可视化效果有不断的优化与升级。例如,Microsoft Project 随着版本更新,甘特图在交互性、数据展示丰富度等方面有显著提升;Wrike 等新兴项目管理工具也在甘特图的移动端适配和实时协作功能上进行创新。
- 荣誉:在项目管理领域被誉为进度管理的经典工具,广泛应用于各类项目进度的可视化展示与监控,其简洁直观的特性使其成为项目管理沟通中的重要手段,深受项目管理从业者的喜爱与信赖。
- 著名用户:在制造业(如特斯拉在汽车生产项目中利用甘特图统筹生产线各环节进度)、软件开发(谷歌在 Android 系统开发过程中借助甘特图跟踪各版本功能开发进度)、影视制作(好莱坞各大电影制片厂在影片制作流程中运用甘特图安排拍摄、后期制作等各阶段时间计划)等众多行业得到广泛应用。
- 集成特性:与项目管理软件中的任务管理、资源分配等功能深度集成。在 ClickUp 中,甘特图与任务列表实时联动,当任务属性(如优先级、负责人等)发生变化时,甘特图中的任务横道相应更新;在 Asana 中,甘特图可与团队协作功能结合,方便团队成员在可视化的进度环境下进行任务协作与沟通。
- 主要优势:能够清晰、直观地展示项目进度,使项目团队成员、管理层以及利益相关者快速了解项目的整体时间安排和任务进展情况;便于发现进度偏差,及时调整项目计划,通过对比实际进度与计划进度的横道位置差异,直观地识别出延迟或提前的任务,从而采取相应的纠正措施。
- 独特特性:以时间为横轴、任务为纵轴的横道图展示方式,简洁明了,无需复杂的数据分析即可快速把握项目进度态势;支持任务依赖关系的可视化呈现,如前置任务与后续任务的连接线条,清晰展示任务之间的逻辑顺序,有助于避免任务安排的冲突与混乱。
- 功能细节:可以设置任务的里程碑,突出项目关键节点;支持任务进度的实时更新与标记,如用不同颜色或填充比例表示任务的完成度;能够对任务进行分组和筛选,方便查看特定项目阶段或任务类型的进度情况;部分高级项目管理软件还支持甘特图的资源分配可视化,通过横道的粗细或颜色深浅反映任务所需资源量。
- 目标用户群体:适用于所有需要对项目进度进行可视化管理和监控的人员,包括项目经理(用于项目整体进度规划与监控)、项目团队成员(了解自身任务在项目进度中的位置与时间要求)、项目高层管理者(宏观把握项目进度,做出战略决策)以及项目客户或外部利益相关者(直观知晓项目交付时间预期)。
(三)关键路径法
- 概览:关键路径法是一种用于确定项目中最长路径(即关键路径)的项目管理技术,通过分析任务之间的依赖关系和持续时间,找出决定项目总工期的关键任务序列,以便对项目工期进行有效的控制和优化。
- 版本:同 WBS 一样,作为一种项目管理技术,并非特定软件产品的版本概念,但在项目管理软件中,其算法和功能实现不断优化,例如在 Primavera P6 的不同版本中,关键路径的计算准确性和分析功能得到持续提升,能够处理更复杂的项目逻辑关系和资源约束情况。
- 荣誉:在项目管理领域被视为时间管理的核心技术之一,对于确保项目按时交付具有至关重要的意义,是项目管理专业认证考试(如 PMP)中的重点考核内容,其科学的分析方法为项目工期管理提供了坚实的理论依据。
- 著名用户:在大型工程项目(如三峡工程在项目规划与建设过程中运用关键路径法确定大坝建设、水电设备安装等关键任务序列并进行工期优化)、航天项目(美国国家航空航天局在各类航天发射任务中借助关键路径法统筹火箭研制、卫星装配、发射场准备等多环节工作,确保发射任务按时进行)、大型软件系统集成项目(IBM 在企业级软件解决方案集成项目中利用关键路径法管理众多子系统开发与集成的时间进度)等复杂项目中发挥着关键作用。
- 集成特性:与项目管理软件中的任务管理、进度计划功能紧密集成。在 Microsoft Project 中,关键路径法的计算结果自动反映在甘特图中,关键路径上的任务会被突出显示,方便项目团队重点关注和资源优先分配;在 Primavera P6 中,能够结合资源管理模块,分析关键路径上任务的资源需求与可用性,为资源优化提供依据,并且可以与风险管理模块集成,针对关键路径上的任务识别潜在风险并制定应对策略。
- 主要优势:精确确定项目最短完成时间,为项目制定合理的工期计划提供科学依据;有助于识别项目中的关键任务和关键资源,使项目团队能够集中精力和资源保障关键路径上任务的顺利进行;方便进行项目工期的压缩或优化,通过对关键路径上任务的调整(如缩短任务持续时间、调整任务顺序或并行处理某些任务),在不影响项目质量的前提下实现项目工期的缩短。
- 独特特性:通过网络图的形式展示任务之间的逻辑关系和关键路径,这种图形化表示方式能够清晰地呈现项目任务网络的复杂性和关键节点;能够计算任务的最早开始时间、最早结束时间、最晚开始时间、最晚结束时间以及总时差和自由时差等时间参数,为项目时间管理提供丰富的信息支持,便于项目管理者进行灵活的进度调整和决策。
- 功能细节:在计算关键路径时,考虑任务的强制依赖关系(如必须先完成基础建设才能进行上层建筑施工)和可选依赖关系(如某些装饰工作可在主体结构完成后并行开展);能够处理资源约束对关键路径的影响,例如当关键路径上任务所需资源在特定时间段内有限时,重新计算关键路径并调整任务安排;支持多项目关键路径分析,在企业级项目管理中,分析多个相关项目之间的关键路径关联,实现企业资源在项目间的优化配置。
- 目标用户群体:主要面向项目经理、项目进度管理人员以及涉及项目工期决策的高层管理者,帮助他们深入理解项目时间结构,制定合理的工期计划,有效控制项目进度,确保项目按时交付并实现资源的优化利用。
三、核心知识点探讨
(一)WBS 的分解原则与技巧
- 100% 原则:WBS 必须涵盖项目的所有工作内容,即项目范围内的任何工作都不能遗漏,这是确保项目完整性的基础。例如,在一个软件开发项目中,不仅要考虑功能代码的编写,还要包括需求文档编写、测试计划制定、用户界面设计等所有相关工作,哪怕是一些看似微小的辅助性工作,如项目会议组织、文档整理与归档等,都应纳入 WBS 中。只有这样,才能在项目执行过程中全面掌控项目进展,避免因遗漏工作而导致项目延误或成本超支。
- 相互独立且完全穷尽原则(MECE):分解后的每个工作包或任务应该相互独立,不存在重叠部分,同时所有工作包之和应完全穷尽项目的工作范围。以一个建筑装修项目为例,在分解墙面装修工作时,不能将“墙面涂料涂刷”和“墙面装饰材料安装”这两个有重叠可能性的任务简单并列,而应进一步细分,如将“墙面涂料涂刷”分为“底漆涂刷”“面漆涂刷”等相互独立的任务,将“墙面装饰材料安装”分为“壁纸粘贴”“木板安装”等不同类型且相互独立的任务,这样在分配资源、估算成本和安排进度时就不会出现混乱和重复计算的情况,使项目管理更加精准高效。
- 合理的分解层次:WBS 的分解层次应根据项目的复杂程度和管理需求确定,并非越细越好。一般来说,分解到能够明确任务责任人、估算任务时间和成本、便于监控和管理的层次即可。例如,对于一个小型活动策划项目,可能分解到三层就足够清晰,如项目总目标 - 活动筹备阶段(场地租赁、节目安排、宣传推广等) - 具体任务(场地预订、演员联系、海报制作等);而对于一个大型桥梁建设项目,可能需要分解到五到六层甚至更多,从项目总体设计 - 桥墩建设(基础施工、桥墩浇筑等) - 桥梁架设(钢梁预制、架设安装等) - 附属设施建设(栏杆安装、照明系统设置等) - 更详细的子任务(如桥墩浇筑中的钢筋加工、混凝土搅拌与浇筑等),以便不同专业团队能够明确各自的工作任务和职责,实现精细化管理。
(二)甘特图在项目进度监控中的应用
- 实时进度更新与可视化对比:在项目执行过程中,团队成员应定期更新甘特图中的任务进度信息,如已完成任务的标记、正在进行任务的实际进展百分比等。项目经理通过甘特图可以直观地对比计划进度与实际进度的差异。例如,在一个新产品研发项目中,计划在某个时间节点前完成产品原型的开发并进行测试,但通过甘特图发现实际进度滞后,原型开发任务的横道只完成了一半,而测试任务的前置条件未满足无法按时启动。此时,项目经理可以迅速识别出问题所在,召集相关人员分析原因,可能是开发过程中遇到技术难题导致进度延迟,进而采取相应的措施,如调配技术专家协助解决技术问题、调整后续任务的时间安排或资源分配等,确保项目能够尽快回到正轨。
- 识别关键任务进度对项目整体的影响:甘特图结合关键路径法,可以突出显示关键路径上任务的进度情况。因为关键路径上的任务一旦延误,将直接导致项目总工期的延长。例如,在一个影视制作项目中,拍摄阶段是关键路径上的重要环节,如果拍摄进度因演员档期问题或天气原因延误,通过甘特图可以清晰地看到这将对后期制作、剪辑、特效等一系列后续任务产生连锁反应,导致整个项目的上映时间推迟。因此,项目团队在监控进度时,应特别关注关键任务的进度,提前做好风险防范和应对措施,如在演员签约时就预留一定的弹性档期应对突发情况,或者提前制定雨天拍摄的备用方案等,以保障项目按时完成。
- 基于甘特图的资源动态调配:甘特图不仅可以展示任务进度,还能反映任务所需资源情况。当发现某个任务进度滞后且资源紧张时,可以通过甘特图分析其他任务的资源使用情况,进行资源的动态调配。例如,在一个网站开发项目中,后端开发任务因技术复杂性进度缓慢,而前端开发任务相对顺利且资源有一定剩余。项目经理通过甘特图观察到这一情况后,可以临时抽调部分前端开发人员协助后端开发,或者调整资源分配比例,增加后端开发的人力、物力投入,如分配更多的服务器资源用于后端代码测试等,以加快后端开发进度,使整个项目的进度趋于平衡,避免因局部任务延误导致项目整体延迟。
(三)关键路径法在项目工期优化中的策略
- 缩短关键任务持续时间:通过分析关键路径上的任务,寻找可以缩短持续时间的方法。例如,在一个软件升级项目中,关键路径上的测试任务原本预计需要两周时间完成。经过详细分析发现,部分测试用例可以采用自动化测试工具替代手工测试,这样可以将测试任务的持续时间缩短到一周。但在缩短关键任务持续时间时,需要注意不能以牺牲项目质量为代价,要充分评估缩短时间可能带来的风险,如自动化测试可能存在的漏测情况,需要制定相应的补充措施,如增加回归测试的范围或频率等,确保项目在缩短工期的同时质量不受影响。
- 调整任务逻辑关系:审查关键路径上任务之间的逻辑关系,看是否存在可以调整为并行执行的任务,从而缩短项目总工期。以一个新产品生产线建设项目为例,设备安装和调试原本是串行关系,即先完成所有设备的安装后再进行调试。但经过深入研究发现,部分设备的调试工作可以在其他设备安装过程中同步进行,如一些独立的辅助设备。通过调整任务逻辑关系,将这部分设备的调试任务提前与其他设备安装并行开展,可以节省一定的时间。然而,在调整任务逻辑关系时,需要确保任务之间的依赖关系得到妥善
相关文章:
10分钟掌握项目管理核心工具:WBS、甘特图、关键路径法全解析
一、引言 在项目管理的广阔天地里,犹如一场精心编排的交响乐演奏,每个乐器、每个音符都需精准配合才能奏响美妙乐章。而 WBS(工作分解结构)、甘特图、关键路径法无疑是这场交响乐中的关键乐章,它们从不同维度为项目管…...
python语音机器人(青云客免费api)
强调:不用登录注册,直接使用就好 青云客智能聊天机器人API python代码,直接可以运行: 1、安装库: pip install requests pyttsx3 SpeechRecognition sounddevice numpy scipy2、完整代码: import request…...
策略模式以及优化
使用场景 在一个条件语句中又包含了多个条件语句 具体策略类会过多 把抽象策略和具体策略放在一个枚举类里。 方法 exe() 相当于抽象策略,而A和B就相当于实现了抽象策略的具体策略 这样就只需要一个枚举类就可以解决具体策略类过多的问题 public enum Strategy {A{O…...
解决tomcat双击startup.bat乱码的几种方法
新环境,win10,今天下载了tomcat9.0.98,是压缩绿色版的,解压缩安装到了: D:\java\apache-tomcat-9.0.98 可以通过D:\java\apache-tomcat-9.0.98\bin\startup.bat双击来启动tomcat。 但是日志显示乱码。 后来找到了几种…...
计算机网络 (12)物理层下面的传输媒体
前言 计算机网络物理层下面的传输媒体是计算机网络设备之间的物理通路,也称为传输介质或传输媒介,并不包含在计算机网络体系结构中,而是处于物理层之下。 一、传输媒体的分类 导向型媒体:电磁波被导引沿着固体媒体传播。常见的导向…...
Spark生态圈
Spark 主要用于替代Hadoop中的 MapReduce 计算模型。存储依然可以使用 HDFS,但是中间结果可以存放在内存中;调度可以使用 Spark 内置的,也可以使用更成熟的调度系统 YARN 等。 Spark有完善的生态圈: Spark Core:实现了…...
如何计算相位差
如何计算相位差 假设我们有两个同频率的正弦信号: 这里两个信号的角频率w2πf是相同的,根据同频正弦信号相位差的计算方法,直接用两个信号的相位相减。 再来看利用波形图计算相位差的例子: 另一种计算方式:...
Bash Shell知识合集
1. chmod命令 创建一个bash shell脚本 hello.sh ~script $ touch hello.sh脚本创建完成后并不能直接执行,我们要用chmod命令授予它可执行的权限: ~script $ chmod 755 hello.sh授权后的脚本可以直接执行: ~script $ ./hello.sh2.指定运行…...
《信管通低代码信息管理系统开发平台》Windows环境安装说明
1 简介 《信管通低代码信息管理系统应用平台》提供多环境软件产品开发服务,包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发,满足其独特需求。无论是简单的应用还是复杂的系统&…...
如何查看服务器内存占用情况?
如何查看服务器的内存占用情况?你知道内存使用情况对服务器性能的重要性吗?内存是服务器运行的核心资源之一,了解内存的占用情况可以帮助你优化系统性能。 要查看服务器的内存占用情况,首先需要确定你使用的是哪种操作系统。不同…...
【源码】Sharding-JDBC源码分析之SQL中影子库ShadowSQLRouter路由的原理
Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...
OCR实践-Table-Transformer
前言 书接上文 OCR实践—PaddleOCR Table-Transformer 与 PubTables-1M table-transformer,来自微软,基于Detr,在PubTables1M 数据集上进行训练,模型是在提出数据集同时的工作, paper PubTables-1M: Towards comp…...
代码随想录五刷day6
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣144. 二叉树的前序遍历(递归)二、力扣144. 二叉树的前序遍历(迭代)三、力扣145. 二叉树的后序遍历(递归)四、力扣145. 二叉树的后序遍历(迭代)五、力扣…...
【自信息、信息熵、联合熵、条件熵、互信息】
文章目录 一、自信息 I(X)二、信息熵:衡量系统的混乱程度信息熵 H(X)联合熵 H(X,Y) 三、条件熵H(Y|X) 联合熵H(X,Y) - 信息熵H(X)四、互信息 I(X,Y)五、总结References 一、自信息 I(X) 自信息(Self-information) 是由香农提出的,用来衡量单一事件发生…...
我的秋招总结
我的秋招总结 个人背景 双非本,985硕,科班 准备情况 以求职为目的学习Java的时间大概一年。 八股,一开始主要是看B站黑马的八股文课程,背JavaGuide和小林coding还有面试鸭。 算法,250,刷了3遍左右 项目&…...
page_ref_freeze浅析
最近在研究struct page的引用计数refcount,看到有个page_ref_freeze()特性很有意思。用这篇博客记录一下。 本文分析基于linux4.19.195 static inline int page_ref_freeze(struct page *page, int count) {int ret likely(atomic_cmpxchg(&page->_refcoun…...
Python毕业设计选题:基于python的酒店推荐系统_django+hadoop
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 酒店客房管理 客房类型管理 客房预定管理 用户…...
选择 SquashFS 作为启动分区的文件系统格式:详细教程
SquashFS 是一种高压缩率的只读文件系统,广泛用于嵌入式系统、Linux 发行版以及其他需要节省存储空间的场景。它特别适合用于启动分区、只读根文件系统(rootfs)等应用,因为它通过压缩技术极大地节省了存储空间。在本博客中,我们将详细介绍如何在 RK3568 等嵌入式设备上使用…...
Unity 读Excel,读取xlsx文件解决方案
Unity读取表格数据 效果: 思路: Unity可以解析Json,但是读取Excel需要插件的帮助,那就把这个功能分离开,读表插件就只管读表转Json,Unity就只管Json解析,中间需要一个存储空间,使用…...
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
【C语言】函数指针与指针函数 文章目录 [TOC](文章目录) 前言一、指针数组二、数组指针三、函数指针四、指针函数五、函数指针数组六、回调函数七、参考资料总结 前言 使用工具: 1.DEVC 提示:以下是本篇文章正文内容,下面案例可供参考 一、…...
EasyExcel 模板+公式填充
使用 CellWriteHandler 的实现类来实现公式写入 Data NoArgsConstructor public class CustomCellWriteHandler implements CellWriteHandler {private int maxRowNum 2000;// 动态传入列表数量public CustomCellWriteHandler(int maxRowNum) {this.maxRowNum maxRowNum;}Ov…...
vue最新源码探索分析
我在github上fork了最新版本vue3.5版本的源码并做了大幅删除,保留最核心的代码,有兴趣的可以看看,欢迎大家提出PR 仓库地址 https://github.com/greatanimalion/core 本项目vue版本3.5.13 为了方便查看与分析,减少心智负担 已…...
产品初探Devops!以及AI如何赋能Devops?
DevOps源自Development(开发)和Operations(运维)的组合,是一种新的软件工程理念,旨在打破传统软件工程方法中“开发->测试->运维”的割裂模式,强调端到端高效一致的交付流程,实…...
深入解析MVCC中Undo Log版本底层存储读取逻辑
一、引言 多版本并发控制(MVCC,Multi-Version Concurrency Control)是一种广泛应用于关系数据库管理系统中的并发控制技术。它通过保存数据的历史版本,使得在事务并发执行时,每个事务都能看到数据的一致性视图。在MVC…...
【生产问题记录-Mysql分区】
描述 月报是根据日报的数据统计出来的,但是今天早上发现月报没有数据,日报是有数据的,那么为什么会导致这个结果呢? 问题解决 设计 因为日报table_day每天的数据量都在60w,所以我们采用了分区的形式,进…...
大型语言模型(LLMs)演化树 Large Language Models
大型语言模型(LLMs)演化树 Large Language Models flyfish 下面的图来自论文地址 Transformer 模型(如 BERT 和 GPT-3)已经给自然语言处理(NLP)领域带来了革命性的变化。这得益于它们具备并行化能力&…...
【LeetCode: 3159. 查询数组中元素的出现位置 + 统计下标】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
git自动压缩提交的脚本
可以将当前未提交的代码自动执行 git addgit commitgit squash Git 命令安装指南 1. 创建脚本目录 如果目录不存在,创建它: mkdir -p ~/.local/bin2. 创建脚本文件 vim ~/.local/bin/git-squash将完整的脚本代码复制到此文件中。 3. 设置脚本权限…...
uniapp中Nvue白屏问题 ReferenceError: require is not defined
uniapp控制台输出如下 exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught ReferenceError: require is not defined 或者 exception function:createInstanceContext, exception:white s…...
Centos8安装图形化界面
由于Centos8已经停止维护,所以在使用的时候会遇到yum元数据找不到的情况 1、更新yum数据源 进入目录: cd /etc/yum.repos.d/ 修改文件: sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-* sed -i s|#baseurlhttp://mirror.cent…...
2023年厦门市第30届小学生C++信息学竞赛复赛上机操作题(三、2023C. 太空旅行(travel))
#include <bits/stdc.h>using namespace std;struct Ship {int u; // 从地球到火星的时间int v; // 从火星到天王星的时间 };// 自定义比较函数 bool cmp(const Ship &a, const Ship &b) {return a.u max(a.v, b.u) b.v < b.u max(b.v, a.u) a.v; }int ma…...
Doris的SQL原理解析
今天来介绍下Doris的SQL原理解析,主要从语法、解析、分析、执行等几个方面来介绍,可以帮助大家对Doris底层有个清晰的理解~ 一、Doris简介 Apache Doris是一个基于MPP架构的高性能、实时的分析型数据库,能够较好的满足报表分析、即席查询、…...
【RAG实战】语言模型基础
语言模型赋予了计算机理解和生成人类语言的能力。它结合了统计学原理和深度神经网络技术,通过对大量的样本数据进行复杂的概率分布分析来学习语言结构的内在模式和相关性。具体地,语言模型可根据上下文中已出现的词序列,使用概率推断来预测接…...
探索 .idea 文件夹:Java Maven 工程的隐形守护者
一、.idea文件夹深度解析:IntelliJ IDEA项目配置的核心 在Java Maven工程的开发环境中,.idea文件夹扮演着举足轻重的角色。这是IntelliJ IDEA项目特有的一个配置文件夹,它包含了项目所需的各种配置信息,以确保项目能够在不同的开…...
JAVA代理模式和适配器模式
文章目录 Java 代理模式和适配器模式代理模式(Proxy Pattern)适配器模式(Adapter Pattern)代理模式和适配器模式的区别 代理模式的使用举例静态代理实现:用代理模式记录方法调用日志动态代理实现:使用 Java 动态代理记录方法调用日…...
Python大数据可视化:基于python大数据的电脑硬件推荐系统_flask+Hadoop+spider
开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 价格区间界面 用户信息界面 品牌管理 笔记本管理 电脑主机…...
【YOLOv3】源码(train.py)
概述 主要模块分析 参数解析与初始化 功能:解析命令行参数,设置训练配置项目经理制定详细的施工计划和资源分配日志记录与监控 功能:初始化日志记录器,配置监控系统项目经理使用监控和记录工具,实时跟踪施工进度和质量…...
一维、线性卡尔曼滤波的例程(MATLAB)
这段 MATLAB 代码实现了一维线性卡尔曼滤波器的基本功能,用于估计在存在噪声的情况下目标状态的真实值 文章目录 一维线性卡尔曼滤波代码运行代码介绍1. **初始化部分**2. **数据生成**3. **卡尔曼滤波器实现**4. **结果可视化**5. **统计输出** 源代码 总结 一维线…...
【Rust自学】6.2. Option枚举
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 6.2.1. 什么是Option枚举 它定义于标准库中,在Prelude(预导入模块)中,负责描述这样的场景…...
unity学习1:第1个template的项目platformer 学习
目录 0 教训,不要学生思路:路径依赖 1 从unity的编辑器里直接下载一个template 2 第一个下马威:下载到本地的这个模板项目第一次运行就报错, 其次关了重进就好了 2.1 报错 2.2 解决 2.3 解决 3 第2个拦路虎: 项目的声音大小…...
初识 Conda:一站式包管理和环境管理工具
文章目录 1. 什么是 Conda?2. 为什么选择 Conda?3. Conda 的安装3.1 安装步骤(以 Miniconda 为例) 4. Conda 的核心功能4.1 包管理4.2 环境管理4.3 Conda Forge4.4 设置国内镜像 5. 常见使用场景5.1 数据科学项目5.2 离线安装5.3 …...
vue.js 组件化开发 根组件
Vue.js是一个用于构建用户界面的渐进式JavaScript框架。组件化开发是Vue.js的核心理念之一,它允许开发者将部分代码封装为可重用的组件,从而提高代码的复用性和可维护性。而根组件是Vue.js应用的最顶层组件,它包含了其他所有的组件。 下面详…...
ASP.NET WebForms:实现全局异常捕获与处理的最佳实践
在ASP.NET WebForms中,你可以通过以下方法来统一捕获后台异常: 1. 在Global.asax中使用Application_Error Global.asax文件允许你处理应用程序级别的异常。你可以在Application_Error事件中捕获所有未处理的异常,并根据需要记录或处理它们。…...
vue3配置测试环境、开发环境、生产环境
第一步:在src同级新建 .env.production 、.env.test 、.env.development文件 第二步:在文件中配置开发环境、生产环境、测试环境 // 开发环境 .env.developmentNODE_ENV developmentVUE_APP_MODE development outputDir dist_dev // 打出包的名称VUE_…...
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序(升级版)
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序升级版 调整的功能 上一个小程序只是能计算当年的农历节日的间隔时间,那么这次修改一下,任意年份的农历节日都可以,并且能输出农历节日对应的阳历日期࿰…...
linux Python环境部署
登录Python官网去下载对应的版本:Python下载地址 在data目录下创建python文件夹 mkdir python上传下载的安装包 Python-3.8.18.tgz解压 tar -xf Python-3.8.18.tgz进入解压后的目录 cd Python-3.8.18/编译安装 ./configure --prefix/data/python38 make &&…...
Python基础语法知识——数据类型的查询、数据类型转化
今天第一次学习python,之前学习过C,感觉学习起来还可以,就是刚用的时候有点手残,想的是python代码,结果写出来就是C,本人决定每天抽出时间写点。同时继续更新NX二次开发专栏学习,话不多说,晚上的…...
命令行之巅:Linux Shell编程的至高艺术(中)
文章一览 前言一、输入/输出及重定向命令1.1 输入/输出命令1.1.1 read命令1.1.2 echo命令 1.2 输入/输出重定向1.3 重定向深入讲解1.4 Here Document1.4.1 /dev/null 文件 二、shell特殊字符和命令语法2.1 引号2.1.1 双引号2.1.2 单引号2.1.3 倒引号 2.2 注释、管道线和后台命令…...
利用Gurobi追溯模型不可行原因的四种方案及详细案例
文章目录 1. 引言2. 追溯不可行集的四种方法2.1 通过约束增减进行判断2.2 通过computeIIS函数获得冲突集2.3 利用 feasRelaxS() 或 feasRelax() 函数辅助排查2.4 利用 IIS Force 属性1. 引言 模型不可行是一个让工程师头疼的问题,对于复杂模型而言,导致模型不可行的原因可能…...
「matplotlib」绘制图线和数据点的样式风格和颜色表大全
绘制图线和数据点的样式风格和颜色表大全 显示图例 legend() 属性 linestyle 属性 marker 属性color 1、legend() 显示坐标轴中图线的对应标注的显示位置plt.legend(loc) locloc codebest (default)0upper right1upper left2lower left3lower rig…...