## 2 Materials and Methods
### Optimization Framework
The established fuzzy rules for fitness evaluation are the following:  
Rule 1--Optimal Performance:  
IF r is High AND V is High AND S is Low THEN the system quality is Excellent, and the Penalty is Very Low (a candidate RCM that achieves high reachability and workspace with low dispersion is ideal). Rule 2--Good Performance with Minor Deviations:  
IF r is High AND V is Medium AND S is Low/Medium THEN the system quality is Good, and the Penalty is Low to Moderate (although reachability is excellent, a slightly lower workspace may indicate a small compromise). Rule 3--Inadequate Reachability:  
If r is Low THEN the system quality is Poor, and the Penalty is High (even if \(V\) or S are acceptable, a low reachability ratio severely limits functionality). Rule 4--Insufficient Workspace Volume:  
If V is Low THEN the system quality is Poor, and the Penalty is High (a low convex hull volume suggests that the candidate RCM does not offer a sufficiently large workspace, regardless of the reachability ratio). Rule 5--Excessive Dispersion:  
If S is High THEN the system quality is Poor, and the Penalty is High (a high spread indicates that the instrument tip positions are inconsistent, which could compromise surgical precision). Rule 6--Intermediate Conditions:  
If the performance metrics are in intermediate ranges (r and V are Medium and S is Medium/Low) THEN the system quality is Moderate, and the Penalty is Moderate (This  
Figure 4: Membership functions of input and output variables. Figure 3: FIS used for fitness evaluation. rule covers scenarios where none of the criteria is optimal, but the solution is not entirely poor either)  
For each candidate, the activation level for each rule is computed. This process is called aggregation. \[\left\{ \begin{array}{l}\alpha_{1}=min\{\mu_{r},High(r),\mu_{V},High(V),\mu_{S}, Low(S)\}\\ \alpha_{2}=min\{\mu_{r},High(r),\mu_{V},Medium(V),max(\mu_{S},Low(S),\mu_{S}, Medium(S))\}\\ \alpha_{3}=\mu_{r},Low(r)\\ \alpha_{4}=\mu_{V},Low(V)\\ \alpha_{5}=\mu_{S},High(S)\\ \alpha_{6}=min\{\mu_{r},Medium(r),\mu_{V},Medium(V),max(\mu_{S},Medium(S),\mu_ {S},Low(S))\}\end{array} \right. \tag{16}\]  
After the aggregation of all fuzzy rules, the crisp value of the penalty is obtained using Mamdani inference-centroid method. This process is called defuzzification. \[P(\textbf{R})=\frac{\sum\limits_{k=1}^{M}\mu_{k}(\textbf{R})\cdot w_{k}}{\sum \limits_{k=1}^{M}\mu_{k}(\textbf{R})}, \tag{17}\]  
The fifth step of the algorithm implies the formulation of the final fitness function. Raw fitness function is defined based on performance metrics to maximize r and V while minimizing S.  
\[f(\textbf{R})=-\alpha r-\beta V+\gamma S \tag{18}\]  
where \(\alpha,\ \beta\) and \(\gamma\) are weighting factors. Then the overall fitness function is obtained. \[F(\textbf{R})=f(\textbf{R})+P(\textbf{R}) \tag{19}\]  
A lower value of F(R) indicates a better candidate RCM. The last step of the algorithm implies evolution. Based on the fitness evaluation F(R), the best candidate RCM is added to the population while the least fit is removed. New offsprings are obtained by crossover (combination of different candidate RCM) and mutation (random changes in the chromosomes to create new candidates). The algorithm is repeated for 200 generations but achieved optimal RCM after 115 generations. After running the genetic algorithm with fuzzy fitness evaluation, an optimal position of the RCM is obtained in such a manner to be able to achieve almost all the input points with minimum motion beyond the RCM point inside the patient. After locking the RCM, the following geometric parameters are optimized: the length of the link a\({}_{1}\), the length of the link a\({}_{3}\), and the length of the link a\({}_{2}\)min. The decision vector for the optimization algorithm is defined in Equation (16). \[x=\left[ \begin{array}{c}a_{1}\\ a_{3}\\ a_{2}\end{array} \right] \tag{20}\]  
The bounds for each link are: \(l_{1}\in[30,300],l_{3}\in[30,300],l_{2 min}\in[30,150]\). By imposing the tracking or target point to be \(P^{i}=\left[