# How to Optimize the Implementation of ITIL through a Process Ordering Algorithm
## 3 Algorithm for Optimal Ordering of ITIL Processes  
### Model Basis  
The algorithm presented here assumes that a set of companies and its characteristics (size, industry, age, etc.) are available. The objective is to define an algorithm that maximizes the position of a company compared with its competitors in terms of ITIL implementation. The selection of processes to implement depends on the strategic needs of the company and the degree of implementation of every ITIL process compared to the competitors. The algorithm selects the process that maximizes the benefits of ITIL implementation in front of its competitors. Let \(\Omega_{e}\) be the set of available companies from which characteristics are known and stored. Usually this set of data is taken from a great poll:  
\[\Omega_{e}=\{e_{1},e_{2},\ldots,e_{n}\}. \tag{1}\]  
Let \(E\) be any company included in the dataset:  
\[E=e_{e}\in\Omega_{e}. \tag{2}\]  
Let \(\Omega_{ne}\) be the complementary set of \(\Omega_{e}\), that is the set constituted by companies that have not been included in the data set:  
\[\Omega_{ne}=\{e_{1},e_{2},\ldots,e_{j}\}\forall e_{x}\
otin\Omega_{e}. \tag{3}\]  
It will be noted by \(E_{sel}\) any company included in this last data set:  
\[E_{sel}=e_{x}\forall e_{x}\
otin\Omega_{e}. \tag{4}\]  
Let us denote by \(\Omega_{p}\) the set of the \(p_{ITIL}\) processes that can be implemented out of the available data:  
\[\Omega_{p}=\big{\{}p_{1},p_{2},\ldots,p_{p_{ITIL}}\big{\}}. \tag{5}\]Let \(p_{TILL}\) be the number of ITIL processes that can be implemented, so:  
\[p_{TILL}=\big{|}\Omega_{p}\big{|}. \tag{6}\]  
Let \(p_{i}\) any of the \(p_{TILL}\) potential processes that can be implemented and \(d_{i}\) the assessment of \(p_{i}\) process in a particular company, \(E\):  
The possible value of \(d_{i}\) are:  
\[d_{i}(E)=\left\{ \begin{array}{l}1\;\text{\it if }C_{1}(p_{i})=True\\ 2\;\text{\it if }C_{2}(p_{i})=True\\ 3\;\text{\it if }C_{3}(p_{i})=True\\ \ldots\\ M\;\text{\it if }C_{M}(p_{i})=True\end{array} \right\}, \tag{7}\]  
where \(C_{m}(P_{i})\) is a Boolean function that indicates if the \(p_{i}\) process satisfies an implementation degree of \(c_{m}\). The possible values for the degrees are in the interval \([1..M]\), so \(1\) represents the worst option and \(M\) represents the best option. That is:  
\[Cm:\;\Omega_{p}\to Boolean\;\bigg{|}\;Cm(p_{i})=\left\{ \begin{array}{l}True, \;\text{\it if }p_{i}\;\text{\it satisfies }c_{m}\\ False,\;\;\text{\it if }p_{i}\;\text{\it satisfies }\
eg c_{m}\end{array} \right\}, \tag{8}\]  
For example, the \(c_{1}\) condition could mean that the process is not implemented, neither will it be in the long term; in that case \(C_{1}(p_{i})\) = True would indicate that \(p_{i}\) is not implemented, neither will it be implemented in the long term in company E; in such case \(d_{i}(E)=1\). It should be noticed that \(\{1...M\}\) represents the values given to the different degrees of implementation that a \(p_{i}\) process may have in company \(E\). Let \(\Omega_{v}\) be the set of the \(v\) parameters that define the characteristics of every company, which are identified by \(\{v_{1},v_{2},\ldots,v_{v}\}\). Such parameters could be the type of activity, the age, the number of employees, the geographical area where it operates, etc.,  
\[\Omega_{v}=\left\{ \begin{array}{l}v_{1},v_{2},\ldots,v_{v}\end{array} \right\} \bigg{|}\;v=\mid\Omega_{v}\mid. \tag{9}\]  
Following this, let us define the domain of each parameter that belongs to \(\Omega_{v}\):  
\[\Omega_{v_{k}}=\left\{v_{k1},v_{k2},\ldots,v_{kn_{k}}\right\}\bigg{|}\;k\in(1.. v)\wedge n_{k}=\big{|}\Omega_{v_{k}}\big{|}, \tag{10}\]  
where \(n_{k}\) represents the number of possible values for the parameter \(v_{k}\).