Package 'mfpp'

Title: 'Matrix-Based Flexible Project Planning'
Description: Matrix-Based Flexible Project Planning. This package models, plans, and schedules flexible, such as agile, extreme, and hybrid project plans. The package contains project planning, scheduling, and risk assessment functions. Kosztyan (2022) <doi:10.1016/j.softx.2022.100973>.
Authors: Zsolt T. Kosztyan [aut, cre], Aamir Sagir [aut]
Maintainer: Zsolt T. Kosztyan <[email protected]>
License: GPL (>= 2)
Version: 0.0.8
Built: 2025-03-04 06:04:48 UTC
Source: https://github.com/kzst/mfpp

Help Index


Matrix-Based Flexible Project Planning

Description

Matrix-Based Flexible Project Planning. This package model, plan and schedule flexible, such as agile, extreme and hybrid project plans. The package contains project planning, scheduling and risk assessment functions.

This work has been implemented by the TKP2021-NVA-10 project with the support provided by the Ministry of Culture and Innovation of Hungary from the National Research, Development and Innovation Fund, financed under the 2021 Thematic Excellence Programme funding scheme.

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

*e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

generatepdm, get.structures, is.flexible, percent,phase1,phase2,phase3,plot.PDM_matrix,summary.PDM_matrix.


Real-life project database by Batselier and Vanhoucke (2015)

Description

Real-life project database of single-mode individual projects by Batselier and Vanhoucke (2015)

Usage

data("Batselier")

Format

A list (Collection_PDM) of PDM_list and PDM_constraint types of lists, where

PDM_list

contains PDM_matrix (PDM) and the number of completion modes (w), and number of resources (Rs)

PDM_const

a list of (renewable resource) constraints

References

Batselier, J. & Vanhoucke, M. (2015). Construction and evaluation framework for a real-life project database. International Journal of Project Management, 33(3), 697–710, https://doi.org/10.1016/j.ijproman.

Examples

data(Batselier)

# Summary of data collection
summary(Batselier)

# Summary of the first project structure
summary(Batselier[[1]]$PDM_list)

# Summary of the first project constraints
summary(Batselier[[1]]$PDM_const)

Sumulated project database by Boctor (1993)

Description

Sumulated project database of multimode, individual projects by Boctor (1993)

Usage

data("Boctor")

Format

A list (Collection_PDM) of PDM_list and PDM_constraint types of lists, where

PDM_list

contains PDM_matrix (PDM) and the number of completion modes (w), and number of resources (Rs)

PDM_const

a list of (renewable resource) constraints

References

Boctor, F. F. (1993). Heuristics for scheduling projects with resource restrictions and several resource-duration modes. The international journal of production research, 31(11), 2547–2558, https://doi.org/10.1080/00207549308956882.

Examples

data(Boctor)

# Summary of data collection
summary(Boctor)

# Summary of the first project structure
summary(Boctor[[1]]$PDM_list)

# Summary of the first project constraints
summary(Boctor[[1]]$PDM_const)

Function to generate a PDM matrix for flexible project planning problems.

Description

Function to generate a PDM matrix for flexible project planning problems.

Usage

generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4,QD=FALSE,lst=FALSE)

Arguments

N

Number of tasks (a numeric value)

ff

flexibility factor between [0,1] (a numeric value).

cf

connectivity factor (a numeric integer).

mTD

max value of TD (a numeric positive integer).

mCD

max value of CD (a numeric positive integer).

mRD

max value of RD (a numeric positive integer).

w

number of modes (a numeric integer).

nR

number of resources (a numeric integer).

nW

number of possible extra tasks (a positive numeric integer).

scale

scale parameter, the default value is 1.4 (a numeric value).

QD

logic parameter, the default value is FALSE, which means, the quality domain is neglected.

lst

(logic parameter, the default value is FALSE, which means, the output is a PDM matrix, while TRUE means the output is a PDM list including number of modes (w) and the number of resources (Rs).

Value

PDM

[PEM,TD, CD, <QD,RD>] is a Project Domain Matrix (a numeric matrix), where;

PEM

An N by N upper triangular matrix of logic domain (a numeric matrix).

TD

N by w matrix of task durations (a numeric matrix).

CD

N by w matrix of cost demands (a numeric matrix).

QD

N by w matrix of quality parameters (a numeric matrix, optional).

RD

N by w*nR matrix of resource demands (a numeric matrix, optional).

w

Number of completion modes (scalar, if the output is PDM list (lst=TRUE)).

Rs

Number of resources (scalar, if the output is PDM list (lst=TRUE)).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpt, tpr,maxscore_PEM, generatepdm.

Examples

# Generation of PDM matrix for flexible project planning MFPP package.

# Define number of modes, flexibility factor and connectivity factor of a project scenerio.
N=4;ff=0.05;cf=0

# Define maximum value of time domain, Cost domain and Resourcces domain of a project scenerio.
mTD=3;mCD=4;mRD=3

# Define number of modes, number of resources,
# number of possible extra tasks, scale and quality domain of a project scenerio.

w=2;nR=2;nW=2
scale=1.4  #(default value)

# Generation of PDM matrix for TCTP a project scenario using MFPP package.
generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4)

# Generation of PDM list for TCTP a project scenario using MFPP package.
generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4,QD=FALSE,lst=TRUE)


# Generation of PDM matrix for TQCTP a project scenario using MFPP package.
generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4,QD=TRUE)

 # Generation of PDM list for TQCTP a project scenario using MFPP package.
generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4,QD=TRUE,lst=TRUE)

Function to calculate minimal/maximal/most likely project structures.

Description

Specify minimal, maximal, maximin, minimax, and most likely/most desired project structures.

Usage

get.structures(x,type=c("min","max","minimax","maximin","most"))

Arguments

x

N by M PDM matrix or a PDM list.

type

type of specified project structure. "min" is a minimal strucuture, where the time, cost demands, and as well as the quality parameters are minimal; "max" where the time, cost demands, and as well as the quality parameters are maximal; "minimax", where the cost and resource demands are minimal; "maximix", where the cost and resource demands are maxnimal; "most", where the total project score is maximal.

Value

PDMs

set of PDM_matrix or a set of PDM_list (depending on the input type)

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

generatepdm.

Examples

# Generation of PDM matrix for flexible project planning MFPP package.

# Define number of modes, flexibility factor and connectivity factor of a project scenerio.
N=4;ff=0.05;cf=0

# Define maximum value of time domain, Cost domain and Resourcces domain of a project scenerio.
mTD=3;mCD=4;mRD=3

# Define number of modes, number of resources,
# number of possible extra tasks, scale and quality domain of a project scenerio.

w=2;nR=2;nW=2
scale=1.4  #(default value)

# Generation of PDM matrix for TCTP a project scenario using MFPP package.
PDM<-generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4)

# Get main structures.

PDMs<-get.structures(PDM)
PDMs

# Generation of PDM list for TCTP a project scenario using MFPP package.
PDM<-generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4,QD=FALSE,lst=TRUE)

# Get main structures.

PDMs<-get.structures(PDM)
PDMs

Function to check the flexibility of PDM matrix.

Description

Checking flexibility of PDM matrix or a PDM list.

Usage

is.flexible(x)

Arguments

x

N by M PDM matrix or a PDM list.

Value

is.flexible

Boolean output whether the project is flexible or not.

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

generatepdm.

Examples

# Generation of PDM matrix for flexible project planning MFPP package.

# Define number of modes, flexibility factor and connectivity factor of a project scenerio.
N=4;ff=0.05;cf=0

# Define maximum value of time domain, Cost domain and Resourcces domain of a project scenerio.
mTD=3;mCD=4;mRD=3

# Define number of modes, number of resources,
# number of possible extra tasks, scale and quality domain of a project scenerio.

w=2;nR=2;nW=2
scale=1.4  #(default value)

# Generation of PDM matrix for TCTP a project scenario using MFPP package.
PDM<-generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4)

# Flexibility check.

is.flexible(PDM)

# Flexibility check of rounded values.

is.flexible(round(PDM))

# Generation of PDM list for TCTP a project scenario using MFPP package.
PDM<-generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4,QD=FALSE,lst=TRUE)

# Flexibility check.

is.flexible(PDM)

Function to calculate maximal score value (PMAX) of possible project scenarios.

Description

Calculate maximal score value (PMAX) of possible project scenarios.

Usage

maxscore_PEM(PEM, P=PEM, Q=1-PEM)

Arguments

PEM

N by N upper triangular adjacency matrix of logic network (a numeric matrix).

P

N by N score matrix of task/dependency inclusion (a numeric matrix). The default P matrix is P=PEM

Q

N by N score matrix of task/dependency exclusion (a numeric matrix). The default Q matrix is Q=1-PEM

Value

score

The maximal score value of the project scenario (a scalar).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpr, tpt.

Examples

# Calculatation of the maximal score value of the project scenario using MFPP package.


# Define a 3 by 3 upper triangular adjacency matrix (PEM) of logic domain of a project.

PEM <- rbind(c(0.8,0.4,0.8),
             c(0.0,0.7,0.7),
             c(0.0,0.0,0.4))

# Define a 3 by 3 score matrix of task/dependency inclusion.
P <- PEM

# Define a 3 by 3 score matrix of task/dependency exclusion.
Q <- 1-P

# Calculation of the maximal score value of the project using MFPP package.
maxscore_PEM(PEM,P, Q)

Function to calculate minimal score value of possible project scenarios.

Description

Calculate minimal score value (PMIN) of possible project scenarios.

Usage

minscore_PEM(PEM,P=PEM, Q=1-PEM)

Arguments

PEM

An N by N upper triangular adjacency matrix of logic network (a numeric matrix).

P

N by N score matrix of task/dependency inclusion (a numeric matrix). The default P matrix is P=PEM

Q

N by N score matrix of task/dependency exclusion (a numeric matrix). The default Q matrix is Q=1-PEM

Value

score

minimal score value of a project (a numeric value).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpt, tpr,maxscore_PEM, generatepdm, phase3, percent.

Examples

# Calculation of minimal score value of a project scenarios using MFPP package.

# Define a 3 by 3 upper traingular logic domain of a project scenario.

PEM= matrix(c(0.8,0.4,0.8,
              0.0,0.7,0.7,
              0.0,0.0,0.4), ncol=3, byrow=TRUE)

# Define a score matrix of task/dependency inclusion.
P=PEM
# Define a score matrix of task/dependency exclusion.
Q=1-P

# Calculation of minimal score value for the above specification
# of a project scenario using MFPP package.

minscore_PEM(PEM,P,Q)

Calculate Pareto-optimal resource allocation

Description

Calculate Pareto-optimal resource allocation

Usage

paretores(DSM,TD,RD)

Arguments

DSM

An N by N upper triangular adjacency matrix of logic network with fixed dependencies (a binary matrix).

TD

N by 1 matrix of task durations (a numeric matrix)

RD

N by r matrix of task resources, where the number of resources is r.

Value

RD

Pareto-optimal TPR (1 by r numeric vector)).

SST

Scheduled Start Time (N by N numeric matrix)).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpr, percent.

Examples

# Calculation of Pareto-optimal resource allocation using MFPP package.

# Define a 3 by 3 upper traingular logic domain of a project structure.

# Specification of Logic Domain
DSM<-matrix(c(1,1,0,1,0,0,
              0,1,0,0,0,0,
              0,0,1,1,0,0,
              0,0,0,1,0,0,
              0,0,0,0,0,0,
              0,0,0,0,0,0),nrow=6, byrow=TRUE)

# Specification of Time Domain
TD<-matrix(c(2,
             3,
             1,
             4,
             0,
             0),nrow=6, byrow=TRUE)


# Specification of Resource Domain
RD<-matrix(c(4,2,
             3,2,
             5,1,
             6,4,
             0,0,
             0,0),nrow=6, byrow=TRUE)

RES<-paretores(DSM,TD,RD)
RES
# Verify results
tpr(RES$SST,DSM,TD,RD)

Function to calculate desired project completion characteristic of a project structure.

Description

Function to calculate project completion desired charcateristic type either cost, or quality and/or resources with or withoud quality parameters, or score ratio or time duration of a project scenario for the given ratio and completion modes.

Usage

percent(PDM,type=c("c","q","qd","r","s","t"),w=2,Rs=2,ratio=1)

Arguments

PDM

is a Project Domain Matrix (a numeric matrix), where PDM=[LD,TD, CD, <QD,RD>]. LD is an N by N upper triangular matrix of logic domain (a numeric matrix); TD is an N by w matrix of task durations (a numeric matrix); CD is an N by w matrix of cost demands (a numeric matrix); QD is an optinal N by w matrix of quality parameters (a numeric optional matrix); RD is an N by w*nR matrix of resource demands (a numeric optional matrix).

type

Type to calculate the project completion characteristic either cost or quality with or without defined quality parameters, or resources with or without quality parameters, or minimum completion score or minimum task duration of a project scenario (a logical value).

w

Number of completion modes (a numeric integer).

Rs

Number of resources (a numeric integer).

ratio

ratio of desired characteristic of a project between interval [0,1] (a numeric value).

Value

w

Number of completion modes (a numeric integer).

Rs

Number of resources (a numeric integer).

ratio

ratio of desired characteristic of a project between interval [0,1] (a numeric value).

Cc

Project completion cost (a numeric value).

Cq

Project completion quality when quality parameters are not considered (a numeric value).

Cq

Project completion quality when quality parameters are considered (a numeric value).

CR

Minimum resources for the completion when quality parameters are not considered (a numeric value).

CR

Minimum resources for the completion when quality parameters are considered (a numeric value).

Cs

Minimum completion score ratio of a project (a numeric value).

Ct

Minimum task duration to project a project (a numeric value).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpt, tpr,maxscore_PEM, generatepdm.

Examples

## Examples for verification
w<-2 # Number of completion modes
Rs<-2 # Number of resources
ratio<-1.0 # Percentage 0-1

# Specification of Logic Domain
LD<-matrix(c(1,1,0,1,0,0,
             0,0.8415,0,0,0,0,
             0,0,1,1,0,0,
             0,0,0,0.6478,0,0,
             0,0,0,0,0,0,
             0,0,0,0,0,0),nrow=6, byrow=TRUE)

# Specification of Time Domain
TD<-matrix(c(1.9755,2.3408,
             2.6564,2.7002,
             0.9018,1.1077,
             1.0237,1.2117,
             0,0,
             0,0),nrow=6, byrow=TRUE)
# Specification of Cost Domain
CD<-matrix(c(2.0768,2.3008,
             0.4819,0.5279,
             3.4315,3.7682,
             3.5902,3.8245,
             0,0,
             0,0),nrow=6, byrow=TRUE)

# Specification of Cost Domain
QD<-matrix(c(0.8723,0.9102,
             0.9017,0.8215,
             0.7250,0.9911,
             1.0000,0.8245,
             0,0,
             0,0),nrow=6, byrow=TRUE)


# Specification of Resource Domain
RD<-matrix(c(2.2130,2.4636,1.7948,2.0603,
             1.9709,2.1952,0.8216,0.8890,
             1.6255,1.9432,1.8715,2.2341,
             1.1377,1.3528,1.6768,1.8769,
             0,0,0,0,
             0,0,0,0),nrow=6, byrow=TRUE)

# PDM without QD
PDM<-cbind(LD,TD,CD,RD)

# Percentiles without QD
CONST<-percent(PDM,type=c("c","r","s","t"),w,Rs,ratio)
CONST

# PDM with QD
PDM<-cbind(LD,TD,CD,QD,RD)

# Percentiles with QD
CONST<-percent(PDM,type=c("c","q","r","s","t"),w,Rs,ratio)
CONST

Function to simulate estimation uncertainty.

Description

Simulating the effects of the estimation uncertainty.

Usage

phase1(x,a=-0.1,b=0.30,pdftype="uniform")

Arguments

x

is either a Project Domain Matrix (a numeric matrix), where PDM=[LD,TD, CD, <QD,RD>]. LD is an N by N upper triangular matrix of logic domain (a numeric matrix); TD is an N by w matrix of task durations (a numeric matrix); CD is an N by w matrix of cost demands (a numeric matrix); QD is an optinal N by w matrix of quality parameters (a numeric optional matrix); RD is an N by w*nR matrix of resource demands (a numeric optional matrix), or PDM list, which contain a PDM matrix, and the number of completion modes (w) and the number of resources.

a

optimistic duration, the negative percent deviation from the actual duration (a negative value). The default value is a=-0.1, which means if the actual duration is 1, the minimal possible duration is 0.9.

b

pessimistic duration, the positive percent deviation from the actual duration (a positive value). The default value is b=0.3, which means if the actual duration is 1, the maximal possible duration is 1.3.

pdftype

the pdftype is either 'uniform' or 'beta' (the default value is 'uniform'), which means the generated distribution either follows uniform or a beta distribution betweem interval [a,b]

Details

The changed demands are generated by the interval between [o+a,o+b], where o is the original value. The random generator can follow uniform (=default), or beta distribution.

Value

PDMout

PDM matrix with same structure as the input PDM matrix (a matrix).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpt, tpr,maxscore_PEM,phase2,phase3, generatepdm.

Examples

# Simulation of project domain matrix based on customer claims
# of a project scenario using MFPP package.

# Generate a project domain matrix based on
# logic domain, task duration, cost demans,
# quality parameters (optional),  resource demand (optional) of a project.

PDM=generatepdm(30,0.05,0,20,30,20,2,2,2,QD=TRUE,lst=TRUE)
PDM

# Define negative percentage deviation from actual duration.
a=-0.20

# Define negative percentage deviation from actual duration.
b=0.40

# Simulate the effects of estimation uncertainty of a project scenario using MFPP package
# with default values.
 Res<-phase1(PDM)
 summary(Res)

# Simulate the estimation uncertainty of customer claims of a project scenario using MFPP package
# with specified values.
 Res<-phase1(PDM$PDM,a,b,"beta")
 summary(Res,w=2,Rs=2)

Function to simulate shock effects.

Description

Phase 2 simulates the shock effects. Where p percent of task demands can be increased up to s times.

Usage

phase2 (x,p=0.10, s=5.0)

Arguments

x

is either a Project Domain Matrix (a numeric matrix), where PDM=[LD,TD, CD, <QD,RD>]. LD is an N by N upper triangular matrix of logic domain (a numeric matrix); TD is an N by w matrix of task durations (a numeric matrix); CD is an N by w matrix of cost demands (a numeric matrix); QD is an optinal N by w matrix of quality parameters (a numeric optional matrix); RD is an N by w*nR matrix of resource demands (a numeric optional matrix), or PDM list, which contain a PDM matrix, and the number of completion modes (w) and the number of resources.

p

Probability factor for task selection (a numeric value between 0 and 1). The default value is p=1.00

s

Scale factor: the ratio of the modification (a numeric integer). The default value is s=5.0

Value

PDMout

PDM matrix with same structure as the input PDM matrix (a matrix).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpt, tpr,maxscore_PEM,phase1,phase3, generatepdm.

Examples

# Simulation of project domain matrix based on customer claims
# of a project scenario using MFPP package.

# Generate a project domain matrix based on
# logic domain, task duration, cost demans,
# quality parameters (optional),  resource demand (optional) of a project.

PDM=generatepdm(30,0.05,0,20,30,20,2,2,2,QD=TRUE,lst=TRUE)
PDM

# Define probability factor for task selection of a project.
p=0.10

# Choose a scale factor for the ration of modification.
s=5.0

# Simulate the shock effect of a project scenario using MFPP package
# with default values.
 Res<-phase2(PDM)
 summary(Res)

# Simulate the effect of a project scenario using MFPP package
# with specified values.
 Res<-phase2(PDM$PDM,p,s)
 summary(Res,w=2,Rs=2)

Function to simulate the effects of the change of customer claims.

Description

Phase 3 selects P percent of nodes (i.e. tasks) or arcs (i.e. dependencies), where the score value can be changed up to the maximal change effects.

Usage

phase3 (x,p=0.10, s=0.50, nW=0)

Arguments

x

is either a Project Domain Matrix (a numeric matrix), where PDM=[LD,TD, CD, <QD,RD>]. LD is an N by N upper triangular matrix of logic domain (a numeric matrix); TD is an N by w matrix of task durations (a numeric matrix); CD is an N by w matrix of cost demands (a numeric matrix); QD is an optinal N by w matrix of quality parameters (a numeric optional matrix); RD is an N by w*nR matrix of resource demands (a numeric optional matrix), or PDM list, which contain a PDM matrix, and the number of completion modes (w) and the number of resources.

p

Probability of structural change (default value is p=0.10).

s

Increase/decrease ratio of priorities (default value is s=0.50).

nW

Number of unplanned tasks (default value is nW=0).

Value

PDMout

PDM matrix with same structure as the input PDM matrix (a matrix).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpt, tpr,phase1,phase2,maxscore_PEM, generatepdm.

Examples

# Simulation of project domain matrix based on customer claims
# of a project scenario using MFPP package.

# Generate a project domain matrix based on
# logic domain, task duration, cost demans,
# quality parameters (optional),  resource demand (optional) of a project.

PDM=generatepdm(30,0.05,0,20,30,20,2,2,2,QD=TRUE,lst=TRUE)
PDM

# Define probability factor for task selection and dependency selecton of a project.
p=0.10

# Choose a scale factor for the ration of modification.
s=0.10

# Simulate the effects of change of customer claims of a project scenario using MFPP package
# with default values.

 Res<-phase3(PDM)
 summary(Res)

# Simulate the effects of change of customer claims of a project scenario using MFPP package
# with specified values.
 Res<-phase3(PDM$PDM,p,s,nW=2)
 summary(Res,w=2,Rs=2)

Plot function for Matrix-Based Flexible Project Planning

Description

Plot function for the Package of Matrix-Based Flexible Project Planning (mfpp)

Usage

## S3 method for class 'PDM_matrix'
plot(x,w=NULL,Rs=NULL,
type=c("orig","max","min","maximin","minimax","most","const"),
main=NULL,col=NULL,...)
## S3 method for class 'PDM_list'
plot(x,
type=c("orig","max","min","maximin","minimax","most","const"),
main=NULL,col=NULL, ...)
## S3 method for class 'Set_PDM_matrix'
plot(x,w=NULL,Rs=NULL,
type=c("orig","max","min","maximin","minimax","most","const"),col=NULL, ...)
## S3 method for class 'Set_PDM_list'
plot(x,
type=c("orig","max","min","maximin","minimax","most","const"),col=NULL, ...)
## S3 method for class 'TPT'
plot(x,
sched="E", ...)

Arguments

x

an object of class 'PDM_matrix' or 'PDM_list'.

w

number of completion modes (positive integer)

Rs

number of resources (positive integer)

type

set of plots, where (orig) means original, (min) minimal, (max) maximal, (maximin) maximin, (minimax) minimax structures are plotted, respectively, and as well as the minimal/maximal constraints (const)

sched

character starts are calculated either "E" to early, or "L" to late, or "S" to scheduled start time

main

title of the plot of fixed structure

col

color of barplot

...

other graphical parameters.

Value

No return value, called for side effects

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

summary, generatepdm, percent.

Examples

# Plot PDM lists.

# Define number of modes, flexibility factor and connectivity factor of a project scenerio.
N=4;ff=0.3;cf=0

# Define maximum value of time domain, Cost domain and Resourcces domain of a project scenerio.
mTD=3;mCD=4;mRD=3

# Define number of modes, number of resources,
# number of possible extra tasks, scale and quality domain of a project scenerio.

w=2;nR=2;nW=2
scale=1.6

# Generation of PDM list for TCTP a project scenario using MFPP package.

PDM<-generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale,lst=TRUE)

plot(PDM)

Print PDM constraints, matrices, lists, sets, collections.

Description

Print PDM constraints, matrices, lists, sets, collections.

Usage

## S3 method for class 'PDM_const'
summary(object, digits =  getOption("digits"), ...)
## S3 method for class 'PDM_matrix'
summary(object, digits =  getOption("digits"),w=getOption("w"),Rs=getOption("Rs"), ...)
## S3 method for class 'PDM_list'
summary(object, digits =  getOption("digits"), ...)
## S3 method for class 'Set_PDM_matrix'
summary(object, digits =  getOption("digits"),w=getOption("w"),Rs=getOption("Rs"), ...)
## S3 method for class 'Set_PDM_list'
summary(object, digits =  getOption("digits"), ...)
## S3 method for class 'Collection_PDM'
summary(object, digits =  getOption("digits"), ...)
## S3 method for class 'TPT'
summary(object, digits =  getOption("digits"), ...)

Arguments

object

an object of class 'PDM_const', 'PDM_matrix', 'PDM_list', 'Set_PDM_matrix', or 'Set_PDM_list'.

digits

the number of significant digits to use when add.stats = TRUE.

w

number of completion modes (positive integer)

Rs

number of resources (positive integer)

...

additional arguments affecting the print produced.

Value

No return value, called for side effects

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

generatepdm,get.structures, percent,plot.

Examples

# Print PDM constriants, matrices, lists, and sets.

# Define number of modes, flexibility factor and connectivity factor of a project scenerio.
N=4;ff=0.05;cf=0

# Define maximum value of time domain, Cost domain and Resourcces domain of a project scenerio.
mTD=3;mCD=4;mRD=3

# Define number of modes, number of resources,
# number of possible extra tasks, scale and quality domain of a project scenerio.

w=2;nR=2;nW=2
scale=1.4  #(default value)

# Generation of PDM list for TCTP a project scenario using MFPP package.

PDM<-generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4,lst=TRUE)

# Generate PDM maximal constraints (ratio=1.0)

CONST<-percent(PDM)

# Calculate main structures

PDMs<-get.structures(PDM)

# print of PDM constraint

summary(CONST)

# print of PDM list

summary(PDM)

# print of main structures of PDM matrices

summary(PDMs)

# print of PDM collection
data(Boctor)
collection<-Boctor
summary(collection)

# schedule table of the first completion mode of the first project structure

# get the first project structure

PDM<-collection[[1]]$PDM_list$PDM

# get the logic domain

LD<-PDM[1:nrow(PDM),1:nrow(PDM)]

# get the time demands of the first completion mode

TD<-PDM[1:nrow(PDM),nrow(PDM)+1]

# calculate TPT

TPT<-tpt(LD,TD)

# print schedule table

summary(TPT)

Function of Cost demands of a project.

Description

Calculate cost demands of a project structure.

Usage

tpc(DSM,CD)

Arguments

DSM

N by N Upper triangular binary matrix of logic domain (a numeric matrix).

CD

N by 1 vector of cost demands (a numeric vector).

Value

TPC

Total Project Cost (a scalar).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpt, tpq, tpr, maxscore_PEM.

Examples

# Calculation of TPC for a generated project scenario.
# using MFPP package.

# Generation of 10 by 10 Upper triangular binary matrix (DSM) of logic domain.

library(Matrix)
library(pracma)

DSM<-triu(round(rand(10)*.5+.5)) # Generate DSM

# Generation of 10 by 1 cost vector (cost demands 30)
C<-rand(10,1)*30                 # Generate C vector (cost demands)


# Calculation of total project cost using MFPP package.
TPC<-tpc(DSM,C)                  # Calculate TPC

Function to calcualte Total Project Quality for a project structure.

Description

Calculate Total Project Quality of a project structure.

Usage

tpq (DSM,PEM,q,QD=NULL)

Arguments

DSM

N by N Upper triangular binary matrix of logic domain (a project structure of a PEM matrix)(a numeric matrix).

PEM

N by N Upper triangular binary matrix of logic domain (a numeric matrix).

q

N by 1 vector of quality parameters (a numeric vector).

QD

N by w Quality Domain to calculate relative TPQ. The default value is QD=NULL

Value

TPQ

Total Project Quality (a scalar).

Author(s)

Zsolt T. Kosztyan, Aamir Saghir*

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpr, tpt, maxscore_PEM.

Examples

# Calculatation of total project quality of a project using MFPP package.

library(pracma)

# Generation of a 10 by 10 upper triangular binary matrix (PEM) of logic domain of a project.

PEM <- triu(rand(10)*0.5+0.5)

# Generation of a 10 by 10 Upper triangular binary matrix of logic domain
# (a project structureof a PEM matrix).

DSM <- round(PEM)
# Generation of a 10 by 1 vector of quality parameters of a project.
q <- rand(10,1)

# For fixed project plan the TPQ is the geometric mean of quality parameters

tpq(DSM,DSM,q)

# For flexibility project plan the TPQ
# is the weighted geometric mean of
# quality parameters

tpq(DSM,PEM, q)

QD2<-cbind(q,rand(10,1)) # Generate two completion modes

# Calculate relative quality considering the best choice

tpq(DSM,PEM,q,QD2)

Function to calculate maximum resource demands of a project.

Description

Calculate maximum resource demands of a project scenario.

Usage

tpr (SST,DSM,TD, RD,res.graph=FALSE)

Arguments

SST

N by 1 vector of Scheduled Start Time (a numeric vector).

DSM

N by N binary upper triangular matrix of the logic domain (a numeric matrix).

TD

N by 1 vector of task durations (a numeric vector).

RD

N by nR matrix of resource demands (a numeric matrix).

res.graph

Logic value of whether plot or not the resource graph

Value

rMAX

an nR by 1 vector of maximum resource demands (a scalar vector).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpt, maxscore_PEM.

Examples

# Calculatation of maximum resource demands of a project scenario using MFPP package.

library(pracma)

# Generate a 10 by 10 upper triangular binary matrix (DSM) of logic domain of a project.

DSM <- triu(round(rand(10)))

# Generate a 10 by 1 vector of task durations of a project.
TD <- rand(10,1)*20

# Define a 10 by 1 vector of Scheduled Start Time using tpt function.
SST <- tpt(DSM,TD)[["EST"]]

# Generate a 10 by 3 matrix of resource demands of a project.
RD <- rand(10,3)*5

# Calculation of maximum resource demands of a project using MFPP package.
 tpr(SST,DSM,TD, RD)

## Plot resources for SST
tpr(SST,DSM,TD,RD,res.graph = TRUE)

Function to evaluate EST, EFT, LST and LFT times of activity of a project.

Description

Calculate EST, EFT, LST and LFT times of activity of a project.

Usage

tpt(DSM,TD,SST=NULL)

Arguments

DSM

N by N Upper triangular binary matrix of logic domain (a numeric matrix).

TD

N by 1 vector of time duration (a numeric vector).

SST

N by 1 vector of scheduled start time (a numeric vector).

Value

TPT

Total Project Time (a scalar).

EST

Early Start Time (a vector).

EFT

Early Finish Time (a vector).

LST

Latest Start Time (a vector).

LFT

Latest Finish Time (a vector).

SST

Scheduled Start Time (a vector).

SFT

Scheduled Finish Time (a vector).

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

tpc, tpq, tpr, maxscore_PEM.

Examples

# Calculatation of EST, EFT, LST and LFT times of activity of a project

# Define a 3 by 3 upper triangular binary matrix (DSM) of logic domain (LD) of a project.

# Specify sequence of three tasks
# Diagonal values indicates the priority of tasks
# 1=the task is mandatory
LD<-rbind(c(1,1,0), c(0,1,1), c(0,0,1))

# Define a 3 by 1 vector of time durations of a project, where the durations are 3,4,5 respectively.
TD<-c(3,4,5)

# Calculate project duration (total project time, TPT)
TPT<-tpt(LD,TD)

summary(TPT)

# Specify initial scheduled start time, where the delay is 1 for the .
SST <- c(1,0,0)

# Including scheduled starts and finishes.

TPT<-tpt(LD,TD,SST)

# Print schedule table
summary(TPT)

# Plot the scheduled Gantt chart
plot(TPT,sched="S")

Function to drop excluded tasks.

Description

Drop excluded tasks, where the diagonal value is 0.

Usage

truncpdm(x)

Arguments

x

N by M PDM matrix or a PDM list.

Value

PDM

N by M PDM matrix or a PDM list

Author(s)

Zsolt T. Kosztyan*, Aamir Saghir

e-mail: [email protected]

References

Kosztyán, Z. T. (2022). MFPP: Matrix-based flexible project planning. SoftwareX, 17, 100973.

See Also

generatepdm.

Examples

# Generation of PDM matrix for flexible project planning MFPP package.

# Define number of modes, flexibility factor and connectivity factor of a project scenerio.
N=4;ff=0.05;cf=0

# Define maximum value of time domain, Cost domain and Resourcces domain of a project scenerio.
mTD=3;mCD=4;mRD=3

# Define number of modes, number of resources,
# number of possible extra tasks, scale and quality domain of a project scenerio.

w=2;nR=2;nW=2
scale=1.4  #(default value)

# Generation of PDM matrix for TCTP a project scenario using MFPP package.
PDM<-generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4)

# Drop excluded tasks.

PDM<-truncpdm(PDM)

# Generation of PDM list for TCTP a project scenario using MFPP package.
PDM<-generatepdm(N,ff,cf,mTD,mCD,mRD,w,nR,nW,scale=1.4,QD=FALSE,lst=TRUE)

# Drop excluded tasks.

PDM<-truncpdm(PDM)