## 3 Methods
### Case-Based Reasoning Method for PIAC  
#### 3.1.1 Exploration of the Configuration Space  
In this work, we will use Gurobi solver v10.0 [21] to solve each of the IQP problem instances that define process planning in an RAS, as formulated by [19]. Commercial solvers such as Gurobi are powerful state-of-the-art solvers used widely in academia and industry. Gurobi exposes 57 configuration settings in total that can affect performance when solving MIP problems. Most of these parameters are categorical (a few are continuous) with 3 to 4 categories. This results in a vast configuration space of over \(2\times 10^{34}\) possible configurations. Fortunately, Gurobi incorporates a \"Self-tuning tool\" that can easily be accessed through the available APIs or via the command line interface. Given the proprietary nature of the solver, full details on the operation of the algorithm behind the \"Self-tuning tool\" are missing (and are free to change from version to version). However, different communication material made available by Gurobi gives us some insights regarding the way it works:  
* Adaptive capping, for instance, is one of the features reported by Gurobi [21] (it is also easy to identify the adaptive capping feature in action when tuning is focused on algorithm runtime). It is a common feature proved to increase search performance and can be observed in many state-of-the-art configiators such as ParamILS [30], GGA [29], and Irace [41]. * The summary of the best configurations found follows a Pareto frontier [21] that focuses on configurations with fewer perturbations over the base/default settings. * It performs replications with different random seeds to obtain more robust performance estimates [21]. * It allows for a secondary performance measure to guide the configuration search for instances that do not solve to optimality [21]; in such cases, solution quality becomes more relevant than the runtime, and thus available options include the minimization of the optimality gap, the best solution found (that with the best objective value), or the best objective bound. * It allows for distributed parallel tuning [21], e.g., to distribute the tuning task over different CPUs in a computer cluster. * The definition of a minimum acceptable performance target [21] so that tuning can stop once a minimum predefined performance is reached. * It combines expert knowledge by means of certain \"rules of thumb\" in order to guide the search in combination with a random search [42]. For our experiments, we will use Gurobi's self-tuning tool on each instance (i.e., solving the SIAC problem each time), and the best 10 configurations for each instance will be saved for retrieval during inference using the CBR method. Each call of the self-tuning tool will be carried out with the tuning tool's default settings, except for the following:  
* _TuneResults_ (this tuning tool setting defines the number of configurations that yield an improvement over the default Gurobi settings that are eventually reported by the tool, which we will set to 10);
* _TuneTrials_ (this tuning tool setting defines the number of replications that are run for each configuration on each instance, which we will set to 3);
* To investigate the performance of the PIAC method in relation to the budget allocated for the exploration of the configuration space, we will change the value of the setting _TuneTimeLimit_ (this tuning tool setting defines the CPU time allocated to the tuning tool) accordingly (see Section 5.1). Note that according to Gurobi, the default configuration settings are chosen based on Gurobi's own collection of thousands of models from their customer base. As such, Gurobi claims that the default settings \"work well on a wide range of model types\". Inaddition, for some of the configuration settings, default enables them to be automatically updated based on model structure, or even during the solution process based on observed model performance [43].