首页 > > 详细

辅导BSDS3003-Assignment 1解析Python语言程序

 
BSDS3003 – Data Structure Algorithm 
Individual Assignment 1 – Critical Path Method (weighting: 40%) 
 
Problem Description 
One of the key project management tools is concerned about project scheduling. The critical path 
method (CPM) is used to identify overall project duration and critical activities, which form critical 
path(s), in a network of inter-dependent tasks/activities of a project. Four types of dependencies 
may exist between a pair of tasks. This assignment only focuses on the end-to-start dependency, i.e. a 
task can only starts after the completion of its predecessor task(s). In this assignment, you may 
assume only end-to-start relationship is supported. An illustration of the basic concepts of CPM can 
be found at https://www.youtube.com/watch?v=4oDLMs11Exs and 
https://milestonetask.com/critical-path-analysis-steps-example/. 
 
 
 
In this assignment, you are required to prepare a Python program that take a network of task/activity 
nodes as input. The network and task nodes are to be represented as a Python ADTs. Each node 
ADT should store the following data: 
• Node number 
• Brief task/deliverable description 
• Duration required to complete the task (0 for deliverables) 
• Earliest start time 
• Earliest finish time 
• Latest start time 
• Latest finish time 
• Slack (= Latest start time - Earliest start time) 
• List of predecessor(s) 
• List of successor(s) 
 
Commented [LCSP1]: Finish to start is fine 
 
You need to decide how to store the network of nodes, e.g. in an array, a list, or some other data 
structures. For simplicity, you may define the network in your program instead of retrieving task 
details from a database. 
 
Test Data 
You are required to test your Python program with the following task network: 
 
 
Run your program and show its outputs to answer the following questions: 
1. What is the project duration? 
2. List all the tasks in the critical path. 
3. If task F takes 10 weeks instead of 9 weeks to finish, how would it affect your answers to 
questions 1 and 2? 
 
Submission Requirements 
 
Submit your Python program (in .py extension) which should be properly documented with 
comments, and a brief report that details the justification of your choice of data structures, test 
results, and answers to the above questions to Moodle no later than Monday, 1 June 2020. The 
Python code should be included in the appendix of the report. An analysis of time and space 
complexities of your program is also needed (<10%). 
 
This assignment amounts to 40% of the course grade. Grading will be based on solution correctness 
(50%), completeness (25%), and efficiency of the submitted solution including choice of appropriate 
data structures (15%), as well as the quality of the documentation (10%). 
 
 
Add print screen in the appendix 
 
Can use network to identify the shortest path, but expect to do is from scrash (edge?) 
联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!