## 5 Experimental Analysis  
The experiments were conducted for 480 test instances from a J30 (30-activity projects) set and 480 test instances from J90 set (90-activity projects) from the PSPLIB [27]. For each PSPLIB project, three contractual stages are defined based on the baseline schedule \(S\) created using the SGS serial for the activity list {1, 2,..., 30} or {1, 2,..., 90}. The contractual deadlines of stages are determined as \(MD_{1}=T/3\), \(MD_{2}\)= \(2T/3\), \(MD_{3}=T\), where \(T\) is the makespan of the project in the baseline schedule \(S\). The sets of activities to be executed in each stage are created as follows:  
* \(MA_{1}\) contains all activities whose end time in schedule \(S\) is less than or equal to \(MD_{1}\),
* \(MA_{2}\) contains all activities whose end time in schedule \(S\) is less than or equal to \(MD_{2}\) and greater than \(MD_{1}\),
* \(MA_{3}\) includes other activities that are not included in \(MA_{1}\) or \(MA_{2}\). The data for determining cash flows for each test instance: contractual client payment amounts are \(MP_{1}=60\), \(MP_{2}=60\), \(MP_{3}=120\), contractual penalties are \(MC_{1}=1.5\), \(MC_{2}=1.5\), \(MC_{3}=3\), while the costs of executing \(CFA_{i}\) activity are calculated proportionally to the total demand for resources and time for a given activity, while the sum of \(CFA_{i}\) for all the activities is equal to 100. Discount rate used in experiments is \(\alpha=0.01\). The experiments were conducted on an Intel Core i7-470, 3.4 GHz CPU, 8 GB RAM using C# application implemented in Visual Studio 2017. The main goal was to evaluate the simulated annealing algorithm performance, moves (Swap, Insert, Swap all, Insert all, Adjacent swap), and techniques of generating schedules (backward scheduling, activity right-shift procedure, justification). Parameters for the SA algorithm such as: the geometric cooling scheme and the initial temperature of 0.1 were established in preliminary experiments. In all analyzed configurations of the SA algorithm, 5000 activity lists are analyzed. Because of the stochastic nature of the calculations, experiments are conducted twice. The results of the computational experiments are presented in Tables 1 and 2. In these tables: FS--forward scheduling using serial SGS without improvement, BS--backward scheduling procedure with optimization of completion times of project stages, SH--forward scheduling with improvement using activity right-shift procedure, RJ--forward scheduling with improvement using right justification technique, TJ--forward scheduling with improvement using triple justification technique (RJ + LJ + RJ). The average values of the objective function \(F\) for the baseline schedules are 74.04 for projects from J30 and 48.09 for projects from J90. The average values of the objective function \(F\) for the best found schedules are 80.63 for projects from J30 and 57.22 for projects from J90. The use of developed scheduling techniques improves the quality of generated solutions. The highest average value of the objective function \(F\) for both J30 and J90 project sets is reached for RS that uses the triple justification technique (RJ + LJ + RJ). An effective technique for generating solutions is also the backward scheduling procedure with the optimization of completion times of the project stages. It constru