## 3 Results
### Effectiveness Model of the Self-Adaptable Software for Pre-Programmed Internet Tasks  
The software features multiprocessing, which is not only used to reduce response time between slave and master modules but also to decrease processing time for tasks assigned to the modules. In this section, we will refer to multiprocessing modules as nodes.  
The model adjusted to the data obtained from the tests is an exponential function of the form:  
\[T(n)=a\;e^{c}(-b\;n) \tag{22}\]  
where:  
1. T(n) is the processing time in seconds.
2. n is the number of nodes used in the distributed system.
3. a and b are adjusted parameters of the model, representing the processing capacity and distribution efficiency, respectively.
4. Parameter a: Parameter a represents the processing capacity of the software when an infinite number of nodes is used. In other words, it is the upper limit of the processing time (T(n)) as the number of nodes (n) tends to infinity. Mathematically, as n tends to infinity, e\({}^{c}(-b\;n)\) tends to zero, leaving only the value of a as the theoretical maximum processing capacity.  
Interpretation: A high value of a indicates that the software has a high distributed processing capacity, meaning it can handle a large number of nodes and perform complex calculations efficiently.
5. Parameter b: Parameter b represents the distribution efficiency of the software. It is a value that determines how the processing time (T(n)) varies with the number of nodes (n). Specifically, it controls the rate at which processing time decreases as more nodesare added. A lower value of b indicates a slower decrease in processing time as the number of nodes increases.  
Interpretation: A low value of b means that the software is highly efficient in distributing tasks among additional nodes. In other words, adding more nodes has a significant impact on improving processing time.  
Figure 13: (**a**) Fault tolerance and software failure recovery. (**b**) Error bar—Crash recovery.  
Figure 15 displays the line of the adjusted model (in red) and the actual observed data. For this test, the database load, the start of the master and slave modules, and the load of the test web page were taken into account. As observed in the data, using only one node for execution takes too much time, but splitting the software and letting each module perform an action reduces the software startup time.  
We define some additional variables and equations to represent the system's behavior. In this case, we use a Mixed Integer Linear Programming (MILP) model to address the software task optimization problem. In this model, we will use binary variables to represent whether a task is performed or not.  
Figure 14: Probability of successful recovery.  
Figure 15: Graph of software data processing time according to the number of nodes.  
We have the following data for the software tasks:  
* Tasks: Task A, Task B, and Task C
* Priorities: 5, 8, 6
* Times: 4, 6, 3 (in time units)
* Total required time: 10 (in time units)
* Model variables:
* x_i (binary): 1 if Task i is performed, 0 otherwise. Model equations:  
1. Objective function: _Maximize_ the sum of priorities of the tasks performed.  
\[Maximize\ Z=5x_{WorkA}+8x_{WorkB}+6x_{WorkC} \tag{23}\]
2. Total time constraint.  
\[4x_{WorkA}+6x_{WorkB}+3x_{WorkC}\ \leq 10 \tag{24}\]
3. Binary variables constraint.  
\[x_{WorkA}+x_{WorkB}+x_{WorkC}\ \in\{0,1\} \tag{25}\]  
With these Equations (23)-(25), we represent the Mixed Integer Linear Programming (MILP) model for the software task optimization problem. The objective function aims to maximize the sum of task priorities, and the constraints ensure that the total required time is not exceeded and that the variables are binary (representing whether each task is performed or not).