delay.pert.unions: Problems of distribution of delay in deterministic projects...

View source: R/function_pert_demora_unions.R

delay.pert.unionsR Documentation

Problems of distribution of delay in deterministic projects with unions a priori

Description

This function calculates the delay of a project with unions a priori once it has been completed. In addition, it also calculates the distribution of the delay between the different activities with the proportional, truncated proportional and Owen rule.

Usage

delay.pert.unions(
  duration,
  prec1and2 = matrix(0),
  prec3and4 = matrix(0),
  union,
  observed.duration,
  delta = NULL,
  cost.function = NULL
)

Arguments

duration

Vector with the expected duration for each activity.

prec1and2

A matrix indicating the order of precedence type 1 and 2 between the activities (Default=matrix(0)). If value (i,j)=1 then activity i precedes type 1 to j, and if (i,j)=2 then activity i precedes type 2 to j. Cycles cannot exist in a project, i.e. if an activity i precedes j then j cannot precede i.

prec3and4

A matrix indicating the order of precedence type 3 and 4 between the activities (Default=matrix(0)). If value (i,j)=3 then activity i precedes type 3 to j, and if (i,j)=4 then activity i precedes type 4 to j. Cycles cannot exist in a project, i.e. if an activity i precedes j then j cannot precede i.

union

List of vectors indicating the a priori unions between the players.

observed.duration

Vector with the observed duration for each activity.

delta

Value to indicate the maximun time that the project can take without delay. If this is not added, the function will use as delta the expected project time. This value is only used if the function uses the default cost function.

cost.function

Delay costs function. If this value is not added, a default cost function will be used.

Details

Given a problem of sharing delays in a project (N,\prec,\{\bar{X}_i\}_{i\in N},\{x_i\}_{i\in N}), such that \{\bar{X}_i\}_{i\in N} is the expected value of activities' duration and \{x_i\}_{i\in N} the observed value. If D(N,\prec,\{\bar{X}_i\}_{i\in N}) is the expected project time and D(N,\prec,\{x_i\}_{i\in N}) is the observed project time, it has to d=D(N,\prec,\{\bar{X}_i\}_{i\in N})-\delta is the delay, where \delta can be any arbitrary value greater than zero. The following rules distribute the delay costs among the different activities.

The proportional rule, from Brânzei et al. (2002), distributes the delay, d, proportionally. So that each activity receives a payment of:

\phi_i=\frac{\displaystyle x_{i}-\bar{X}_{i}}{\displaystyle \sum_{j\in N}\max\{x_{j}-\bar{X}_{j},0\}}\cdot C(D(N,\prec,\{\bar{X}_i\}_{i\in N})).

The truncated proportional rule, from Brânzei et al. (2002), distributes the delay, d, proportionally, where the individual delay of each player is reduced to d if if is larger. So that each activity receives a payment of:

\bar{\phi}_i=\frac{\displaystyle \min\{x_{i}-\bar{X}_{i},C(D(N,\prec,\{\bar{X}_i\}_{i\in N}))\}}{\displaystyle \sum_{j\in N} \max\{\min\{x_{j}-\bar{X}_{j},C(D(N,\prec,\{\bar{X}_i\}_{i\in N}))\},0\}}\cdot C(D(N,\prec,\{\bar{X}_i\}_{i\in N})).

These values are only well defined when the sum of the individual delays is different from zero.

Owen rule distributes the delay, d, based on the Owen value for TU games with a priori unions. Given a project problem with delays and unions (N,\prec,P,\{\bar{X}_i\}_{i\in N},\{x_i\}_{i\in N}), its associated TU game with a priori unions, (N,v,P), is v(S)=C(D(N,\prec,(\{\bar{X}_i\}_{i\in N\backslash S},\{x_i\}_{i\in S}))) for all S\subseteq N, where C is the costs function (by default C(D(N,\prec,y))=D(N,\prec,y)-\delta. If the number of activities is greater than ten, the Owen value, of the game (N,v,P), is estimated using a unique sampling process for all players.

Value

The delay value and a solution matrix.

Examples

prec1and2<-matrix(c(0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0),nrow=5,ncol=5,byrow=TRUE)
duration<-c(2,1,1,4,2)
observed.duration<-c(2.5,1.25,2,4.5,3)
delta<-6
union<-list(c(1,2),c(3,4),c(5))
delay.pert.unions(duration,prec1and2=prec1and2,union=union,observed.duration=observed.duration,
delta=delta,cost.function=NULL)

ProjectManagement documentation built on Nov. 2, 2024, 1:14 a.m.