Project management through the CPM algorithm to find the key path, the earliest and the latest start time __ algorithm

Source: Internet
Author: User

First of all paste Baidu encyclopedia on the definition of CPM:

The critical Path approach (Critical path method, CPM) is a project plan management method based on mathematical calculation, which is a kind of Network Diagram planning method, which belongs to the network diagram of affirmation type. The critical path method decomposes the project into multiple independent activities and determines the duration of each activity. The activity is then connected with a logical relationship (end-start, end-end, start-start, and start over) to calculate the duration of the project, the characteristics of each activity time (earliest and last time, slack), and so on. After loading the resource on the activity of the critical path method, the resource requirement and allocation of the project can be analyzed. Critical path method is one of the most important analytical tools in modern project management.

Earliest start time: Earliest time of activity start
Late start time: The latest time that can be started without delay

For a given activity diagram to find his critical path, the earliest and the latest start time is generally retrospective, in layman's terms, from the end node back to the start of each node. Here's an example that shows this algorithm:

Figure out the key path, the earliest start time and the late start time, the jet lag, and the predecessor nodes of each activity.
To find the total weight value of each path, the maximum weight is the key path
Abdijl weight value is 3+5+2+2+8=20
Abdijkl weight value is 3+5+2+2+2+3=17
Abijl weight is 19
ABIJKL weight is 16
AEGJL weight is 17
AEGJKL weight is 14
AEGHKL weight is 17
ACFHKL weight is 16
The key path is Abdijl.

Backtracking to find the earliest, latest start time and difference

**。。。。 : The difference between the earliest start time for activity on a critical path is always 0;
Late start = time of the back-drive node-active time
(If the rear drive node corresponds to multiple times, select the smallest one) * *
The earliest start time =max{the path weights of the}+1 to the precursor node.
(This plus 1 is for what?) For example, the first half of a project takes 20 days, starting at 1th at the beginning of the month, and completing at 20th, so the latter part of the project starts at 21st.
E.P.
The precursor node of the activity KL is K,
Latest Start time = (20+1) -3=18
(add 1 to the same meaning above, but in the calculation of the latest start time only in the last activity plus 1, other activities do not need to add 1, consider, this is in accordance with the common sense)
Earliest start time =max{c (Abdij), C (Abij), C (AEGJ), C (Aegh), C (ACFH)}+1=15
So
Kl:precursor{k}, earliest start time:15, latest start time:18 slacktime:3;

In the calculation of a HK:
By calculating KL We know that the late start time for K corresponds to 18
The late start time =18-4=14
Earliest start time =11 (method Ibid.)

So all the answers to this question are as follows:

Ab:precursor{a}, earliest start time:1, latest start time:1 slacktime:0;
Bd:precursor{b}, earliest start Time:4, latest start time:4 slacktime:0;
Di:precursor{d}, earliest start Time:9, latest start time:9 slacktime:0;
Bi:precursor{b}, earliest start Time:4, latest start time:5 slacktime:1;
Ae:precursor{a}, earliest start time:1, latest start time:5 slacktime:3;
Eg:precursor{e}, earliest start Time:5, latest start time:8 slacktime:3;
Gj:precursor{g}, earliest start Time:8, latest start time:11 slacktime:3;
Gh:precursor{g}, earliest start Time:8, latest start time:11 slacktime:3;
Ij:precursor{i}, earliest start time:11, latest start time:11 slacktime:0;
Ac:precursor{a}, earliest start time:1, latest start time:5 slacktime:4;
Cf:precursor{a}, earliest start Time:6, latest start time:10 slacktime:4;
Fh:precursor{f}, earliest start Time:9, latest start time:13 slacktime:4;
Hk:precursor{h}, earliest start time:11, latest start time:14 slacktime:3;
JK:PRECURSOR{J}, earliest start time:13, latest start time:16 slacktime:3;
JL:PRECURSOR{J}, earliest start time:13, latest start time:13 slacktime:0;
Kl:precursor{k}, earliest start time:15, latest start time:18 slacktime:3;

Another point to note is that, when calculating the late start time, if the rear-drive node corresponds to multiple times, select the smallest one.
For example, IJ
The late start time of the J corresponds to the JL, which selects the small one 13 respectively.

As a result of the recent study of software engineering, I have been using the official definition to figure out the way to do this, and if there is anything wrong, please correct me.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.