"AOE网络设计说明书" AOE网络是一种带权的有向无环图,顶点代表事件,弧表示活动,权表示活动持续时间。AOE网络可以用来估算工程完成的最短时间。由于在AOE网络中有的活动具有先决条件,因此需要对AOE网络进行拓扑排序,以确定工程中每个活动的最早开始时间、最迟开始时间和关键路径。 本设计说明书将从AOE网络的设计思想、软件功能、算法实现等方面进行详细介绍。 设计思想 AOE网络设计的思想是基于拓扑排序的原理。拓扑排序是将一个偏序集合转换为全序集合的过程。在AOE网络中,拓扑排序是将活动之间的先决关系转换为一个有序的活动序列,以便确定工程中每个活动的最早开始时间、最迟开始时间和关键路径。 软件功能 本软件提供了以下功能: 1. 绘制AOE网络:用户可以使用鼠标在绘图区画出AOE网络。 2. 保存AOE网络:用户可以将AOE网络保存为文件,并随时在程序中打开。 3. 打开AOE网络文件:用户可以打开已经保存的AOE网络文件,并继续编辑AOE网络。 4. 保存AOE网络为图片:用户可以将AOE网络保存为jpg、png、tiff、bmp四种格式的图片。 5. 运行AOE网络:用户可以选择“速览”或“生成结果”两种运行方式。“速览”模式可以检查AOE网络是否可行,如果可行将在绘图区内把相应的关键路径标红,如果不可行将输出提示信息。“生成结果”模式可以输出工程AOE网络的最早完成时间、关键路径、关键活动、事件时间表、活动时间表。 6. 保存结果为xls表格:用户可以将运行结果保存为xls表格文件。 7. 程序使用帮助:用户可以通过消息提示框获取程序的使用帮助。 算法实现 本软件使用了拓扑排序算法来实现AOE网络的求解。拓扑排序算法的步骤如下: 1. 在有向图中选一个没有前驱的顶点输出 2. 从图中删除该顶点和所有以它为尾的弧 3. 重复以上两步,直到全部顶点均已输出,或者当前图中不存在无前驱顶点为止,后一种情况说明图中存在环。 在实现拓扑排序算法时,我们使用了两个字典来存储AOE网络的图形数据。一个字典以顶点为索引记录顶点的入弧和出弧,另一个字典以弧为索引,记录弧头和互为。其实这两个字典一起组成了一个十字表,只不过顶点结点和弧结点并不是通过记录指针相连的,而是通过字典索引相连的。 在实现拓扑排序算法时,我们还使用了PyQt5提供的工具栏、控件和函数来实现绘图工具的切换、图形数据的保存和读取、结果的显示等功能。
剩余13页未读,继续阅读
- 粉丝: 29
- 资源: 303
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python的EducationCRM管理系统前端设计源码
- 基于Django4.0+Python3.10的在线学习系统Scss设计源码
- 基于activiti6和jeesite4的dreamFlow工作流管理设计源码
- 基于Python实现的简单植物大战僵尸脚本设计源码
- 基于Java及Web技术的医药管理系统设计源码
- 基于Objective-C的cordova-plugin-wechat插件开发源码研究
- 基于Python语言的SocialNetworkBackend社交数据分析系统后端设计源码
- 基于Python的pytracking-master目标跟踪dimp方法设计源码
- 基于PHP、JavaScript、CSS的zibll主题美化插件设计源码
- 本页包含特定于 FT600Q-B / FT601Q-B SuperSpeed USB3.0 系列的示例应用程序