Information flow planning based on the extended DSM is different from DSM, which involves four types of computation: merging, converting, partitioning and clustering.

### 4.1 Merging Converting and Partitioning Regardless of Project Priorities

According to the input/output relationships, \( mrt_{ij} = - 5 \) means output of \( t_{i} \) and \( t_{j} \) is identical. To avoid duplicate work, \( t_{i} \) and \( t_{j} \) can be combined, this process is called merging. Such as \( \{ t_{ai} ,t_{aj} \} \) and \( \{ t_{bg} ,t_{bk} \} \) is tasks set of project \( P_{a} \) and \( P_{b} \) separately, the initial extended DSM model was expressed as

$$ \left( {\begin{array}{*{20}c} {t_{ai} } & {} & {} & {} \\ 3 & {t_{aj} } & {} & {} \\ { - 5} & {} & {t_{bg} } & {} \\ {} & {} & 5 & {t_{bk} } \\ \end{array} } \right), $$

the work content of \( t_{ai} \) and \( t_{bg} \) is identical, \( t_{ai} \) and \( t_{bg} \) can be combined into one task, furthermore task dependencies need be to reconstructed. After merging \( t_{ai} \) and \( t_{bg} \), the extended DSM model can be expressed as:

$$ \left( {\begin{array}{*{20}c} {t_{ai} } & {} & {} \\ 3 & {t_{aj} } & {} \\ 5 & {} & {t_{bk} } \\ \end{array} } \right)\;{\text{or}}\;\left( {\begin{array}{*{20}c} {t_{bg} } & {} & {} \\ 3 & {t_{aj} } & {} \\ 5 & {} & {t_{bk} } \\ \end{array} } \right), $$

in multi-project environment, \( - 5 < mrt_{ij} < 0 \) means the output of \( t_{i} \) and \( t_{j} \) is similar, and \( 0 < mrt_{ij} < 5 \) means that the output of \( t_{j} \) as the input of \( t_{i} \).

When converting computation is done, the similar relationships can be converted to \( 0 < mwr_{ij}^{'} < 5 \), so as to partitioning and clustering can be done based on the uniform algorithm, \( mrt_{ij}^{'} = f(mrt_{ij} ) \) is the converting function, the initial extended DSM is:

$$ \left( {\begin{array}{*{20}c} {t_{ai} } & {} & {} & {} \\ 3 & {t_{aj} } & {} & {} \\ { - 3} & {} & {t_{bg} } & {} \\ {} & {} & 5 & {t_{bk} } \\ \end{array} } \right), $$

\( mwr_{bg,ai} = - 3 \) means the work content of \( t_{ai} \) and \( t_{bg} \) is similar. Supposing converting function follows the linear law, \( mwr_{ij}^{'} = k \times mwr_{ij} + b \). Designer can choose the different value of \( k \) and \( b \), and analyze influence of numerical value \( k \) and \( b \) on partitioning and clustering results. Adopting \( mwr_{ij}^{'} = - 2 \times mwr_{ij} - 3 \), the converted extended DSM is

$$ \left( {\begin{array}{*{20}c} {t_{ai} } & {} & {} & {} \\ 3 & {t_{aj} } & {} & {} \\ 3 & {} & {t_{bg} } & {} \\ {} & {} & 5 & {t_{bk} } \\ \end{array} } \right)\;{\text{or}}\;\left( {\begin{array}{*{20}c} {t_{bg} } & {} & {} & {} \\ 5 & {t_{bk} } & {} & {} \\ 3 & {} & {t_{ai} } & {} \\ {} & {} & 3 & {t_{aj} } \\ \end{array} } \right). $$

Partitioning is the computation of reordering the rows and columns in the DSM with minimizing the number of marks above the diagonal, the result is the optimal tasks ordering, which reduces feedback and rework. According to the partitioned matrix, the serial, parallel and coupling relationship can be identified. Regardless of project priorities, partitioning algorithm of the extended DSM is identical to the common DSM [24, 25]. Tasking the parallel tasks relationships as the example.

$$ \left( {\begin{array}{*{20}c} {t_{i} } & 0& 5\\ 0& {t_{j} } & 5\\ 0 & 0 & {t_{k} } \\ \end{array} } \right) \to \left( {\begin{array}{*{20}c} {t_{k} } & 0 & 0 \\ 5 & {t_{i} } & 0 \\ 5 & 0 & {t_{j} } \\ \end{array} } \right), $$

the initial tasks sequence is \( t_{i} \to t_{j} \to t_{k} \), and partitioned tasks sequence is \( t_{k} \to t_{i} \to t_{j} \), the relationships between \( t_{i} \) and \( t_{j} \) is parallel, can be performed concurrently.

### 4.2 Clustering Regardless of Project Priorities

The goal of clustering is to find subsets of the extended DSM (i.e., clusters) so that the tasks within a cluster are maximally interdependent and clusters are minimally interacting. Some researchers have proposed different clustering algorithm based on different principle, such as A Yassine presented a clustering objective function by using the minimal description length principle [26], S E Carlson and N Ter-Minassian proposed a clustering algorithm based on coordination cost [27].

This paper focuses on the information flow in multi-project situation, with the goal of minimizing the influence of information interaction on project schedule, referring the algorithm of Idicula and Fernandez, etc., the clustering object function of the extended DSM was built.

$$ \begin{aligned} Tcc(M) = \sum\limits_{i = 1}^{n} {cc(t_{i} )} , \hfill \\ cc(t_{i} ) = \sum\limits_{j = 1}^{n} {(mwr(t_{i} ,t_{j} ) + mwr(t_{j} ,t_{i} )) \times size(t_{i} ,t_{j} )^{p\_k} } , \hfill \\ \end{aligned} $$

(4)

where \( Tcc(M) \) is total coordination cost of model \( M \),which is the objective function that the algorithm attempts to minimize, \( cc(t_{i} ) \) indicates coordination cost of task \( t_{i} \), \( n \) is the number of tasks in \( M \), \( mwr(t_{i} ,t_{j} ) \), \( mwr(t_{j} ,t_{i} ) \) denotes the interaction between \( t_{i} \) and \( t_{j} \), corresponding to the value in the extended DSM, \( size(t_{i} ,t_{j} ) \) is the size of minimum cluster which contains \( t_{i} \) and \( t_{j} \), \( p\_k \) is the power coefficient corresponds to the \( k \)-th level clusters, value range of \( p\_k \) is integer from 1 to 5. After merging, converting and partitioning, one extended DSM was obtained:

$$ \left( {\begin{array}{*{20}c} \varvec{A} & 1 & 2 & {} & {} & {} & {} \\ {} & \varvec{B} & 4 & {} & {} & {} & {} \\ 4 & 2 & \varvec{C} & {} & {} & {} & {} \\ {} & {} & {} & \varvec{D} & {} & 3 & 2 \\ {} & {} & {} & 5 & \varvec{E} & 3 & 3 \\ {} & 5 & {} & 1 & 3 & \varvec{F} & 2 \\ {} & {} & {} & 4 & 3 & 4 & \varvec{G} \\ \end{array} } \right). $$

Clustering can be done based on the previous computation, according to Eq. 4, \( p\_k_{1} \), \( p\_k_{2} \), \( p\_k_{3} \) corresponds to different level clusters, \( p\_k_{1} \) indicates the power coefficient of smallest cluster, \( p\_k_{2} \) corresponds to the upper level of cluster, which consists of a series of sub-cluster and tasks, \( p\_k_{3} \) corresponds to the whole extended DSM, adopting \( p\_k_{1} = 1 \), \( p\_k_{2} = 2 \), \( p\_k_{3} = 3 \), the clustered extended DSM can be obtained:

Adopting \( p\_k_{1} = 1 \), \( p\_k_{2} = 1 \), \( p\_k_{3} = 2 \), the different clustered extended DSM can be obtained:

which means that the lower level clusters will contain more tasks as \( p\_k_{2} /p\_k_{1} \) increase, and the upper level will contain more sub-clusters and tasks as \( p\_k_{3} \) increase.

### 4.3 Merging Converting and Partitioning with Regarding Project Priorities

Regarding project priorities, the duplicate work in low-priority project should be combined into the identical tasks in high-priority project, and tasks dependencies was reconstructed. Such as \( \{ t_{ai} ,t_{aj} \} \) and \( \{ t_{bg} ,t_{bk} \} \) is tasks set of project \( P_{a} \) and \( P_{b} \) separately, \( pri_{a} \) and \( pri_{b} \) denotes priorities of \( P_{a} \) and \( P_{b} \), \( pri{}_{b} > pri_{a} \), the initial extended DSM is:

$$ \left( {\begin{array}{*{20}c} {t_{ai} } & {} & {} & {} \\ 3 & {t_{aj} } & {} & {} \\ { - 5} & {} & {t_{bg} } & {} \\ {} & {} & 5 & {t_{bk} } \\ \end{array} } \right), $$

\( mwr_{bg,ai} = - 5 \) means the work content of \( t_{ai} \) and \( t_{bg} \) is identical, and \( t_{ai} \) and \( t_{bg} \) can be combined into one task. To guarantee schedule requirement of high-priority project \( P_{b} \), \( t_{ai} \) should be combined into \( t_{bg} \), the merged extended DSM can be expressed as

$$ \left( {\begin{array}{*{20}c} {t_{bg} } & {} & {} \\ 3 & {t_{aj} } & {} \\ 5 & {} & {t_{bk} } \\ \end{array} } \right), $$

converting aims at transforming \( - 5 < mrt_{ij} < 0 \) into \( 0 < mwr_{ij}^{'} < 5 \), so as to partitioning and clustering can be done based on the uniform algorithm, \( mrt_{ij}^{'} = f(mrt_{ij} ) \) is the converting function. Different from computation regardless of project priorities, converting regarding priorities should guarantee the schedule of high-priority project firstly. Such as, project \( P_{b} \) with higher priority, \( pri{}_{b} > pri_{a} \), the initial extended DSM is

$$ \left( {\begin{array}{*{20}c} {t_{ai} } & {} & {} & {} \\ 3 & {t_{aj} } & {} & {} \\ { - 3} & {} & {t_{bg} } & {} \\ {} & {} & 5 & {t_{bk} } \\ \end{array} } \right), $$

means the work content of \( t_{ai} \) and \( t_{bg} \) is similar, adopting \( mwr_{ij}^{'} = - 2 \times mwr_{ij} - 3 \), the transformed extended DSM as follows, because \( t_{bg} \) with high priority, \( t_{bg} \) was arranged before \( t_{ai} \) in task sequence,

$$ \left( {\begin{array}{*{20}c} {t_{bg} } & {} & {} & {} \\ 5 & {t_{bk} } & {} & {} \\ 3 & {} & {t_{ai} } & {} \\ {} & {} & 3 & {t_{aj} } \\ \end{array} } \right). $$

Partitioning regarding project priorities performs the following steps: firstly, reordering the rows and columns of extended DSM, secondly, moving forward high-priority tasks, or moving backward low-priority tasks. For example, \( \{ t_{a1} ,t_{a2} ,t_{a3} ,t_{a4} \} \) and \( \{ t_{b1} ,t_{b2} ,t_{b3} ,t_{b4} \} \) is tasks set of project \( P_{a} \) and \( P_{b} \) separately, \( P_{a} \) with higher priority, \( pri{}_{a} > pri_{b} \), the extended DSM model before and after partitioning is

$$ \left( {\begin{array}{*{20}c} {t_{a1} } & {} & {} & {} & {} & {} & {} & {} \\ 2 & {t_{a2} } & 2 & {} & {} & {} & 2 & {} \\ 5 & {} & {t_{a3} } & {} & {} & {} & {} & 2 \\ {} & {} & 5 & {t_{a4} } & {} & {} & {} & 1 \\ {} & 2 & {} & {} & {t_{b1} } & {} & {} & {} \\ {} & 3 & {} & {} & 5 & {t_{b2} } & {} & {} \\ 3 & {} & {} & {} & {} & {} & {t_{b3} } & {} \\ {} & {} & {} & 2 & {} & {} & 3 & {t_{b4} } \\ \end{array} } \right), $$

or

$$ \left( {\begin{array}{*{20}c} {t_{a1} } & {} & {} & {} & {} & {} & {} & {} \\ 3 & {t_{b3} } & {} & {} & {} & {} & {} & {} \\ 5 & {} & {t_{a3} } & {} & 2 & {} & {} & {} \\ {} & {} & 5 & {t_{a4} } & 1 & {} & {} & {} \\ {} & 3 & {} & 2 & {t_{b4} } & {} & {} & {} \\ 2 & 2 & 2 & {} & {} & {t_{a2} } & {} & {} \\ {} & {} & {} & {} & {} & 2 & {t_{b1} } & {} \\ {} & {} & {} & {} & {} & 3 & 5 & {t_{b2} } \\ \end{array} } \right), $$

tasks sequence \( T^{'} = \{ t_{a1} ,t_{b3} ,t_{a3} ,t_{a4} ,t_{b4} ,t_{a2} ,t_{b1} ,t_{b2} \} \) can be obtained, adjusting tasks order based on project priorities and input/output dependencies, new tasks sequence can be obtained, \( T'' = \{ t_{a1} ,t_{a3} ,t_{a4} ,t_{b3} ,t_{a2} ,t_{b4} ,t_{b1} ,t_{b2} \} \), \( t_{a2} \) can not move to the front of \( t_{b3} \) because that \( t_{a2} \) depends on the output of \( t_{b3} \),\( mwr_{a2,b3} = 2 \). The corresponding partitioned extended DSM regarding project priorities is:

$$ \left( {\begin{array}{*{20}c} {t_{a1} } & {} & {} & {} & {} & {} & {} & {} \\ 5 & {t_{a3} } & {} & {} & {} & 2 & {} & {} \\ {} & 5 & {t_{a4} } & {} & {} & 1 & {} & {} \\ 3 & {} & {} & {t_{b3} } & {} & {} & {} & {} \\ 2 & 2 & {} & 2 & {t_{a2} } & {} & {} & {} \\ {} & {} & 2 & 3 & {} & {t_{b4} } & {} & {} \\ {} & {} & {} & {} & 2 & {} & {t_{b1} } & {} \\ {} & {} & {} & {} & 3 & {} & 5 & {t_{b2} } \\ \end{array} } \right). $$

### 4.4 Clustering with Regarding Project Priorities

The goal of clustering with regarding project priorities is dividing the tasks with similar priorities and high input/output dependencies into the same subsets, to decrease information interaction cost in multi-project situation. The object function takes influence of project priorities on coordination cost into consideration, \( pri_{i} \) and \( pri_{j} \) denotes priority of project \( P_{i} \) and \( P_{j} \) respectively. The clustering object function with regarding project priorities can be expressed as:

$$ \begin{aligned} Tcc(M) = \sum\limits_{i = 1}^{n} {cc(t_{i} )} , \hfill \\ cc(t_{i} ) = \sum\limits_{j = 1}^{n} {f_{ij} \times (mwr(t_{i} ,t_{j} ) + mwr(t_{j} ,t_{i} )) \times size(t_{i} ,t_{j} )^{p\_k} } , \hfill \\ f_{ij} = (\left| {pri(t_{i} ) - pri(t_{j} )} \right| + 1)^{p\_pri} , \hfill \\ \end{aligned} $$

(5)

where \( Tcc(M) \) is total coordination cost of model \( M \), \( cc(t_{i} ) \) is coordination cost of task \( t_{i} \), \( n \) is the number of tasks in \( M \), \( r(i,j) \), \( r(j,i) \) is the interaction between \( t_{i} \) and \( t_{j} \), \( p\_k \) is the power coefficient related to the \( k \)-th level clusters, \( f_{ij} \) indicates impact factor related to project priorities, \( pri(t_{i} ) \) and \( pri(t_{j} ) \) denotes project priorities, \( p\_pri \) is the power coefficient related to project priorities, value range of \( p\_k \) and \( p\_pri \) is 0~1, and \( 0 { < }f_{ij} \le 1 \).

Different from clustering regardless of project priorities, by introducing \( f_{ij} \), the difference in project priorities was taken into consideration, with \( f_{ij} \) increacing, the tasks with different priorities will be divided into different clusters. Such as, \( pri_{a} \) and \( pri_{b} \) denotes project priority of project \( P_{a} \) and \( P_{b} \) respectively, adopting \( pri_{a} = 3 \), \( pri_{b} = 1 \), \( p\_k_{1} = 1 \), \( p\_k_{2} = 2 \), \( p\_k_{3} = 3 \), after merging, converting and partitioning with regarding project priorities, the tasks sequence can be determined, and the clustered extended DSM with regarding project priorities can be obtained: