Title: | Setting the Critical Path in Project Management |
---|---|
Description: | Solving the problem of project management using CPM (Critical Path Method), PERT (Program Evaluation and Review Technique) and LESS (Least Cost Estimating and Scheduling) methods. The package sets the critical path, schedule and Gantt chart. In addition, it allows to draw a graph even with marked critical activities. For more information about project management see: Taha H. A. "Operations Research. An Introduction" (2017, ISBN:978-1-292-16554-7), Rama Murthy P. "Operations Research" (2007, ISBN:978-81-224-2944-2), Yuval Cohen & Arik Sadeh (2006) "A New Approach for Constructing and Generating AOA Networks", Journal of Engineering, Computing and Architecture 1. 1-13, Konarzewska I., Jewczak M., Kucharski A. (2020, ISBN:978-83-8220-112-3), Miszczyńska D., Miszczyński M. "Wybrane metody badań operacyjnych" (2000, ISBN:83-907712-0-9). |
Authors: | Adam Kucharski |
Maintainer: | Adam Kucharski <[email protected]> |
License: | GPL-2 |
Version: | 0.2.2 |
Built: | 2024-12-05 06:51:18 UTC |
Source: | CRAN |
Fictitious data that is used in the examples. 6 activities, 5 nodes. In this dataset, the activities occur on the edges.
cpmexample1
cpmexample1
A data frame composed of predetermined columns:
starting activity node
final activity node
activity label
duration of the activity
Example from Miszczyńska D., Miszczyński M. "Wybrane metody badań operacyjnych" (2000, ISBN:83-907712-0-9). 10 activities, 8 nodes. In this dataset, the activities occur on the edges and a list of direct predecessors has been added.
cpmexample2
cpmexample2
A data frame composed of predetermined columns:
activity label
preceding activities
duration of the activity
Fictitious data that is used in the examples. 6 activities, 5 nodes. In this dataset, the activities occur on the edges
lessexample1
lessexample1
A data frame composed of predetermined columns:
starting activity node
final activity node
activity label
normal duration of the activity
the shortest duration of the activity
normal cost of the activity
boundary cost of the activity
Example from Miszczyńska D., Miszczyński M. "Wybrane metody badań operacyjnych" (2000, ISBN:83-907712-0-9). In this dataset, the activities occur on the edges and a list of direct predecessors has been added.
lessexample2
lessexample2
A data frame composed of predetermined columns:
activity label
preceding activities
normal duration of the activity
the shortest duration of the activity
normal cost of the activity
boundary cost of the activity
Probability for the given directive term
PERT_newprob(new_DT, yourlist)
PERT_newprob(new_DT, yourlist)
new_DT |
The given project completion date. The parameter must be greater than zero. |
yourlist |
List of objects that make up the solution to the project management problem. |
This function calculates the probability of completing the project within the time specified by the user. A normal distribution was assumed.
y <- solve_pathAOA(pertexample1, deterministic = FALSE) PERT_newprob(new_DT = 30, y)
y <- solve_pathAOA(pertexample1, deterministic = FALSE) PERT_newprob(new_DT = 30, y)
A new directive term for any probability
PERT_newtime(new_prob = 0.5, yourlist)
PERT_newtime(new_prob = 0.5, yourlist)
new_prob |
Probability of the project completion. Default set to 0.5. |
yourlist |
List of objects that make up the solution to the project management problem. |
This function computes a new directive term for a probability given by the user. A normal distribution was assumed.
y <- solve_pathAOA(pertexample1, deterministic = FALSE) PERT_newtime(new_prob = 0.3, y)
y <- solve_pathAOA(pertexample1, deterministic = FALSE) PERT_newtime(new_prob = 0.3, y)
Fictitious data that is used in the examples. 9 activities, 8 nodes. In this dataset, the activities occur on the edges
pertexample1
pertexample1
A data frame composed of predetermined columns:
starting activity node
final activity node
activity label
optimistic duration of activity
the most likely duration of the activity
pesimistic duration of activity
Example from Miszczyńska D., Miszczyński M. "Wybrane metody badań operacyjnych" (2000, ISBN:83-907712-0-9). 10 activities, 8 nodes. In this dataset, the activities occur on the edges and a list of direct predecessors has been added.
pertexample2
pertexample2
A data frame composed of predetermined columns:
activity label
preceding activities
optimistic duration of activity
the most likely duration of the activity
pesimistic duration of activity
An ALAP chart
plot_alap(yourlist, show_dummy = FALSE, bar_size = 10)
plot_alap(yourlist, show_dummy = FALSE, bar_size = 10)
yourlist |
List of objects that make up the solution to the project management problem. |
show_dummy |
Decides whether dummy activities should be included in the chart. If so, set it to TRUE (set to FALSE by default). |
bar_size |
Thickness of the bar drawn for activity (set to 10 by default). |
Draws an ALAP (activities start and finish As Late As Possible) chart broken down into critical ("CR") and non-critical ("NC") activities. Marks total float.
x <- solve_pathAOA(cpmexample1, deterministic = TRUE) plot_alap(x)
x <- solve_pathAOA(cpmexample1, deterministic = TRUE) plot_alap(x)
An ASAP chart
plot_asap(yourlist, show_dummy = FALSE, bar_size = 10)
plot_asap(yourlist, show_dummy = FALSE, bar_size = 10)
yourlist |
List of objects that make up the solution to the project management problem. |
show_dummy |
Decides whether dummy activities should be included in the chart. If so, set it to TRUE (set to FALSE by default). |
bar_size |
Thickness of the bar drawn for activity (set to 10 by default). |
Draws an ASAP (activities start and finish As Soon As Possible) chart broken down into critical ("CR") and non-critical ("NC") activities. Marks total floats.
x <- solve_pathAOA(cpmexample1, deterministic = TRUE) plot_asap(x)
x <- solve_pathAOA(cpmexample1, deterministic = TRUE) plot_asap(x)
A Gantt chart
plot_gantt(yourlist, show_dummy = FALSE, bar_size = 10)
plot_gantt(yourlist, show_dummy = FALSE, bar_size = 10)
yourlist |
List of objects that make up the solution to the project management problem. |
show_dummy |
Decides whether dummy activities should be included in the chart. If so, set it to TRUE (set to FALSE by default). |
bar_size |
Thickness of the bar drawn for activity (set to 10 by default). |
Draws a Gantt chart broken down into critical ("CR") and non-critical ("NC") activities. Marks total floats.
x <- solve_pathAOA(cpmexample1, deterministic = TRUE) plot_gantt(x)
x <- solve_pathAOA(cpmexample1, deterministic = TRUE) plot_gantt(x)
A graph of connections between nodes
plot_graphAOA(input_data, predecessors = FALSE, solved = NULL, fixed_seed = 23)
plot_graphAOA(input_data, predecessors = FALSE, solved = NULL, fixed_seed = 23)
input_data |
Data frame describing the problem. |
predecessors |
TRUE if the user data contains a list of immediately preceding activities |
solved |
List of objects that make up the solution to the project management problem. |
fixed_seed |
Optional parameter setting random seed to user value to get similar looking plots each time the function is run (set to 23 by default). |
The function draws a graph showing dependencies between nodes. The "solved" parameter determines whether there is a critical path in the graph. In that case, you must solve the problem first. In the examples below, the function first draws the graph only on the basis of the data frame and then after determining the critical path.
plot_graphAOA(cpmexample1) x <- solve_pathAOA(cpmexample1, TRUE) plot_graphAOA(solved = x)
plot_graphAOA(cpmexample1) x <- solve_pathAOA(cpmexample1, TRUE) plot_graphAOA(solved = x)
The cumulative distribution function of the normal distribution
plot_norm(yourlist)
plot_norm(yourlist)
yourlist |
List of objects making up the solution to the project management problem |
Draws a graph of the normal distribution with the expected directive term from the PERT method and the standard deviation for this term. The chart also includes lines indicating the schedules of the risk-taker and the belayer.
y <- solve_pathAOA(pertexample1, deterministic = FALSE) plot_norm(y)
y <- solve_pathAOA(pertexample1, deterministic = FALSE) plot_norm(y)
Total cost change plot
plot_TC(your_list)
plot_TC(your_list)
your_list |
List containing solved problem |
Based on the results of the LESS method, a graph of the total cost value of all iterations is created
z <- solve_lessAOA(lessexample1, 50, 15) plot_TC(z)
z <- solve_lessAOA(lessexample1, 50, 15) plot_TC(z)
Determines the solution using the LESS method. Relationships between activities can be given as a list of predecessors or start and end node numbers.
solve_lessAOA(input_data, ICconst, ICslope, predecessors = FALSE)
solve_lessAOA(input_data, ICconst, ICslope, predecessors = FALSE)
input_data |
Data frame containing the graph structure and activity durations. For the LESS method and start/end nodes you need 7 columns (the order matters):
For the LESS method and predecessors list you need 6 columns (the order matters):
|
ICconst |
Intercept of the indirect cost function. |
ICslope |
Slope of the indirect cost function. |
predecessors |
TRUE if the user data contains a list of immediately preceding activities
If set to |
A list made of a graph and a result set.
z <- solve_lessAOA(lessexample1, 50, 15)
z <- solve_lessAOA(lessexample1, 50, 15)
Finds a solution using CPM and PERT methods. Relationships between activities can be given as a list of predecessors or start and end node numbers.
solve_pathAOA( input_data, deterministic = TRUE, predecessors = FALSE, pert_param = 0 )
solve_pathAOA( input_data, deterministic = TRUE, predecessors = FALSE, pert_param = 0 )
input_data |
Data frame containing the structure of the graph and the duration of the activity. For the CPM method and start/end nodes you need 4 columns (the order is important, not the name of the column):
For the CPM method and predecessors list you need 3 columns (the order is important, not the name of the column):
For the PERT method and start/end nodes you need 6 columns (the order is important, not the name of the column):
For the PERT method and predecessors list you need 5 columns (the order is important, not the name of the column):
|
deterministic |
A logical parameter specifying the solution method.
If set to |
predecessors |
TRUE if the user data contains a list of immediately preceding activities
If set to |
pert_param |
A parameter that controls the method of calculating the expected value and variance in the PERT method. 0 - classic formula (default), 1 - 1st and 99th percentile of the beta distribution, 2 - 5th and 95th percentile of the beta distribution, 3 - 5th and 95th percentiles of the beta distribution with modification by (Perry and Greig, 1975), 4 - Extended Pearson's and Tukey's formula (Pearson and Tukey, 1965), 5 - Golenko-Ginzburg's full formula (Golenko-Ginzburg, 1988), 6 - Golenko-Ginzburg's reduced formula (Golenko-Ginzburg, 1988), 7 - Farnum's and Stanton's formula (Farnum and Stanton, 1987). |
The list is made of a graph, schedule and selected partial results.
x <- solve_pathAOA(cpmexample1, deterministic = TRUE) y <- solve_pathAOA(pertexample1, deterministic = FALSE) x <- solve_pathAOA(cpmexample2, deterministic = TRUE, predecessors = TRUE) y <- solve_pathAOA(pertexample2, deterministic = FALSE, predecessors = TRUE)
x <- solve_pathAOA(cpmexample1, deterministic = TRUE) y <- solve_pathAOA(pertexample1, deterministic = FALSE) x <- solve_pathAOA(cpmexample2, deterministic = TRUE, predecessors = TRUE) y <- solve_pathAOA(pertexample2, deterministic = FALSE, predecessors = TRUE)