## 5 Computational Experiments
### Automated Planning and Scheduling (APS)  
The characterization of Automated Planning and Scheduling makes use of the following three parts: (1) models--composed of the structure of the domain, actions, objective, and initial state; (2) language--the chosen way to express the model to be understood by the planner, is the language PDDL; (3) planner--the algorithmic search strategy for navigating and optimizing the model [39]. The modeling of APS problems occurs in domain and problem files. The actions define the rules that govern the behavior of objects; they are related to the changes in state that may occur in the modeled problem. The action modeling indicates how the environment can change from one state to another, and the goal is to find a sequence of actions that leads from an initial state to the state of the goal or objective state. In the problem file, the initial state defines the available resources and conditions necessary to start the plan, whose goal state formalizes the objectives. The file with the domain description defines the rules governing the behavior of objects, while the problem file defines the addressed problem, including the initial conditions and objectives. OPTIC was the planner solver for resolving the model, aiming to minimize the makespan [35]. Time planning deals with actions related to time. Those actions can also occur simultaneously, and the duration of actions may vary. Actions may also have complex interdependencies that determine what combinations are possible [39]. The OPTIC planner uses the Simple Temporal Network (STN) and the Single-Source Shortest Path (SSSP) algorithm to adjust the objective function and ensure the fulfillment of cost functions in time. It employs the following admissible heuristics: one based on plan relaxation, which simplifies the search while maintaining feasibility; and another to eliminate unfeasible branches, refining the solution. The tree search starts with the high cost of quickly discarding suboptimal paths, gradually reducing it with additional cuts. For its execution, it is necessary to install a solver, such as Coin-or Linear Programming (CLP). The goal is to find a sequence of actions that transforms the initial state into the desired goal state. The tuple used is as follows:  
* Initial state (\(I\))
* Demand: Demand f of each dairy product \(DM_{p}\). * Dairy Plants: The factories producing each product \(P_{f}\) and daily production limits \(CF_{f,p}\). * Quarantine Time: Quarantine time for each product \(TQ_{p}\). * Initial Stock: Stock, in tons, of each product at each factory \(I0_{f,p}\) when optimization starts. * Vehicles: Vehicles that are available at each factory for transport \(\mathcal{K}_{f}\), respecting the transport capacity \(CK_{k,p}\). Furthermore, this informs the possible routes that each vehicle can travel \(\mathcal{F}_{f}\). * Distances: The distance between source and destination dairy plants, measured in days \(TT_{f,f^{\prime}}\). * Goal state (\(G\)):
* Demand fulfillment: The goal state of the model seeks that the DC meets the demand for all products. It means that the available stocks of each product
in the distribution center are equal to or greater than the respective demands \(I_{DC,p,d}\geq DM_{p}\). (c) Action (\(A\)): * Produce: The production quantity of each product produced in a dairy plant (respecting its capacity) will increase the quarantine stock or the available stock if the product does not require quarantine. The duration of this action is set to one time unit (one day). * Sharing: This allows a product released from quarantine to be transported to a factory that will transform this input into a derivative product, as is the case of \(p_{2}\) and \(p_{4}\) production, which need p1 and p3, respectively, (see Section 3.1). The action increases the destination factory's available stock. * Quarantine: The quarantine stock receives finished products and respects each product's quarantine time.