The code corresponds to the paper: Milan LopuhaƤ-Zwakenberg & Mariƫlle Stoelinga: "Attack time analysis in dynamic attack trees via integer linear programming" To run the code do the following: # Install MATLAB (https://www.mathworks.com/products/matlab.html). A license is required. # Install Gurobi (https://www.gurobi.com/). Ensure that a valid license is installed, as the code will not throw errors but give incorrect results otherwise. # In the file minitester.m, change the Gurobi path in line 3 to the path where Gurobi is installed. # Using Matlab, run minitester.m for a snapshot of the results in the paper (more specifically, only considering the DATs up to size 40): - The table Table_results shows the overall statistics of the results, similar to Table 2 of the paper. It is also saved as Table_results_mini.csv. - The table Median_log_per_group gives the median log for each bucket of DATs, bucketed by ceil(|N|/20), similar to Figure 9(a) of the paper. It is also saved as pergroup_mini.csv. It corresponds to testing set A as outlined in the paper. - The table Median_log_per_group_DAG gives the median log for each bucket of DATs, bucketed by ceil(|N|/20), similar to Figure 9(b) of the paper. It is also saved as pergroup_mini_DAG.csv. It corresponds to testing set B as outlined in the paper. - The tables Full_results (for testing set A) and Full_results_DAG (for testing set B) give the full timing results per DAT. - The csv files EvM.csv, EvEm.csv, MvMm.csv, EmvMm.csv, MvMm_DAG.csv, and EmvMm_DAG.csv are lists of pairs of computation times of two algorithms (log-transformed). These are used to create Figure 10(a), (b), (c), (d), (e), (f), respectively. # For the full experiments, run Tester.m. Be sure to also change the Gurobi path there.