\chapter{Intégration du Raisonnement à partir de cas (RàPC) et des Systèmes Multi-Agent (SMA)}
\chaptermark{Intégration RàPC / SMA }

\section{Introduction}

Ce chapitre montre comme a été conçu et implémenté un algorithme pour intégrer l'algorithme de raisonnement à partir de cas explicité dans le chapitre précedent avec les systèmes multi-agents pour améliorer la performance et les résultats pour traiter des problèmes de régression.

Un système multi-agents est un système décentralisé composé de plusieurs entités appelées agents qui ont la capacité d'effectuer des actions spécifiques et de réagir à l'environnement en fonction des informations partielles qu'ils peuvent obtenir, ils peuvent également collaborer les uns avec les autres et coopérer pour atteindre un objectif spécifique. À partir des informations qu'ils perçoivent et échangent, les agents peuvent apprendre de manière autonome et atteindre leurs objectifs de manière efficace \cite{KAMALI2023110242}. Les systèmes multi-agents peuvent être exécutés en parallèle étant donné l'indépendance des agents, ils sont robustes aux problèmes qui présentent une incertitude \cite{DIDDEN2023338}.

Le raisonnement Bayésien est une hypothèse sur le fonctionnement du cerveau humain et sa relation avec l'environnement, dont le principe est que les expériences passées permettent de déduire les états futurs, ce qui permet d'agir et de prendre des décisions \cite{HIPOLITO2023103510}, également des informations peuvent être deduites et d'apprendre à partir d'informations incomplètes \cite{ZHANG2023110564}.

Nous proposons ici un modèle qui intègre un algorithme de raisonnement à paritr de cas avec des systèmes multi-agents cognitifs qui utilisent le raisonnement Bayésien afin d'améliorer les processus de recherche de voisins et de génération de solutions en utilisant l'échange d'informations inter-agents et l'apprentissage par renforcement, obtenant ainsi des effets émergents dans le comportement global de l'algorithme, ce qui peut conduire à l'amélioration des prédictions de l'algorithme ESCBR \cite{10.1007/978-3-031-63646-2_11}.

\section{Modèle Proposé}

L'algorithme ESCBR-SMA est fondé sur le paradigme RàPC générique et incorpore divers algorithmes de recherche de voisins et de génération de solutions. Ceux-ci sont intégrés à l'aide d'une variante du modèle d'empilement en deux étapes itératives, exécutées par des agents qui exploitent indépendamment les algorithmes définis dans les conteneurs de révision et de réutilisation. Les agents possèdent une mémoire locale qui leur permet d'ajuster et de développer leur recherche de voisins, en générant des solutions à chaque itération. Chaque agent individuel a un comportement correspondant qui permet l'échange d'informations entre les autres agents. Le processus de décision et les étapes des agents au sein du système élargi sont décrits dans la figure \ref{figNCBR}.

\begin{figure}[!ht]
\centering
\includegraphics[scale=0.65]{Figures/NCBR.png} 
\caption{Deux cycles du système ESCBR-SMA proposé}
\label{figNCBR}
\end{figure}

ESCBR-SMA correspond aux deux étapes de l'ESCBR (Ensemble Stacking Case-Based Reasoning) %\cite{}
intégrées à un système multi-agents. Chaque agent effectue un algorithme de recherche des voisins du problème au cours de la première étape et, au cours de la seconde, génère une solution en se référant à la liste des solutions obtenues au cours de la première étape. À chaque itération, les agents peuvent choisir parmi trois comportements programmés : la recherche de problèmes voisins, la génération de solutions ou l'échange d'informations avec un autre agent. L'exécution asynchrone est employée pour ces comportements, tandis que la création et la sélection de la liste des voisins se font de manière synchrone pour unifier l'algorithme global. La création et la sélection des voisins se font de manière synchrone pour unifier l'algorithme global.

Les étapes d'extraction, de réutilisation, de révision et de conservation restent conformes au modèle RàPC conventionnel. L'algorithme proposé comprend désormais trois nouvelles étapes. Dans la phase de reconfiguration, les agents mettent à jour les valeurs de leurs paramètres locaux afin d'améliorer la qualité de la solution proposée lors de l'itération suivante. Dans la phase d'échange, les agents échangent des informations pour améliorer leurs processus internes de recherche et de génération. L'étape de rénovation met à jour les valeurs des paramètres globaux de l'algorithme. Le flux complet de l'algorithme proposé est présenté dans la figure \ref{figFlowCBR}, où l'on peut voir que l'algorithme commence par la création de n agents. Lors de l'initialisation, les agents sélectionnent au hasard un algorithme de récupération et un algorithme de réutilisation, et initialisent également les vecteurs bayésiens correspondants. Tous les agents travaillent avec le même ensemble de données. En parallèle, les agents exécutent l'algorithme de récupération sélectionné, à partir des problèmes similaires trouvés, chaque agent extrait les solutions et exécute l'algorithme spécifique de génération d'une nouvelle solution. Toutes les solutions proposées par les agents sont évaluées à l'aide d'une fonction objective de minimisation, c'est-à-dire que la solution qui minimise la fonction objective est la meilleure solution possible. Au cours de l'étape suivante, les agents sélectionnent au hasard un algorithme de récupération et un algorithme de réutilisation, puis mettent à jour les vecteurs bayésiens en fonction des résultats obtenus avec la fonction objective. Lors de l'itération suivante, chaque agent peut choisir l'une des trois actions possibles : changer les algorithmes de récupération et de réutilisation, ne changer que l'algorithme de réutilisation ou échanger des informations avec un autre agent choisi au hasard. Le choix aléatoire d'une action différente permet à l'agent de construire et d'améliorer une solution candidate.

Les variables et paramètres complets de l'algorithme proposé sont présentés dans le tableau \ref{tabVarPar}. Le système multi-agents est composé d'un nombre variable d'agents, tous homogènes mais dotés de processus cognitifs internes indépendants et stochastiques.

\begin{figure}[!ht]
\centering
\includegraphics[scale=0.6]{Figures/FlowCBR.png} 
\caption{Flux du \textit{Stacking} du RàPC (* est une tâche effectuée par chaque agent)}
\label{figFlowCBR}
\end{figure}

\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{cccc}
ID&Type&Description&Domain\\
\hline
$it$&p&Nombre d'itérations&$\mathbb{N}, it>0$\\
$np$&p&Nombre d'agents&$\mathbb{N}, np>2$\\
$nl$&p&Nombre maximal de voisins locaux&$\mathbb{N}, nl>0$\\
$ng$&p&Nombre de voisins globaux&$\mathbb{N}, ng>2$\\
$n$&v&Dimension de l'espace du problème&$\mathbb{N}, n>0$\\
$m$&v&Dimension de l'espace de solution&$\mathbb{N}, m>0$\\
$p$&v&Description du problème&$\mathbb{R} ^ n$\\
$s$&v&Description de la solution&$\mathbb{R} ^ m$\\
$p_w$&v&Description du nouveau problème&$\mathbb{R} ^ n$\\
$s_w$&v&Description de la nouvelle solution&$\mathbb{R} ^ m$\\
$n_{rt}$&v&Nombre d'algorithmes por l'étape de rétrouver&$\mathbb{Z}$\\
$n_{rs}$&v&Nombre d'algorithmes de réutilisation&$\mathbb{Z}$\\
$d(x_1,x_2)$&f&Fonction de distance entre $x_1$ et $x_2$ &$\mathbb{R}$\\
$rn(x,y)$&f&

\begin{tabular}{@{}c@{}}Valeur aléatoire avec distribution normale\\ $x$ moyenne, $y$ écart-type
\end{tabular}

&$\mathbb{R}_+$\\
$rnp(x,y)$&f&

\begin{tabular}{@{}c@{}}Valeur aléatoire discrète, $x$ nombre d'options \\ $y$ vecteur discret de probabilités
\end{tabular}
&$\mathbb{Z}$\\
$f_s(p^n,s^m)$&f&Évaluation des solutions&$\mathbb{R}$\\
\end{tabular}
\caption{Variables et paramètres du modèle proposé (Type: p - paramètre, v - variable, f -  fonction)}
\label{tabVarPar}
\end{table}

\subsection{Algorithmes}
Lors de la première étape de l'empilage, chaque agent peut sélectionner l'un des algorithmes mis en œuvre pour rechercher des problèmes similaires au nouveau problème posé. Les algorithmes sont les suivants : KNN (K-Nearest Neighbor), KMeans, GMM (Gaussian Mixture Model), FuzzyC et KNN pondéré.

Lors de la deuxième étape de l'empilage, les agents peuvent choisir un algorithme parmi les suivants : pondération avec probabilité, pondération sans probabilité, valeurs médianes, Copier/Changer, vote, interpolation, PCA (analyse en composantes principales) et pas aléatoire. 

La sélection aléatoire pondérée avec l'algorithme de probabilité construit une solution en copiant aléatoirement les informations des solutions ayant une probabilité plus élevée vers le cas de problème associé le plus proche. En revanche, la sélection aléatoire pondérée sans algorithme de probabilité copie aléatoirement les informations des solutions selon la distribution uniforme. Les valeurs médianes utilisent la valeur médiane de toutes les solutions pour chaque dimension. L'algorithme fondé sur la copie/le changement copie les informations d'une solution aléatoire et en modifie une partie avec les informations d'une autre solution sélectionnée de manière aléatoire. L'algorithme fondé sur le vote copie l'information la plus fréquente entre les solutions. L'algorithme fondé sur l'interpolation utilise des informations aléatoires à partir d'une fonction d'interpolation calculée. Le générateur avec PCA transforme la description du problème en un espace de descriptions de solutions afin d'établir une relation entre le problème et sa solution. Enfin, l'algorithme de pas aléatoire sélectionne une solution et modifie les valeurs dans une seule dimension de manière aléatoire avec un petit pas dans l'espace des solutions.

\subsection{Structure des agents}

La structure des agents est similaire pour tous, mais chaque agent effectue un processus cognitif individuel qui lui permet d'obtenir un comportement indépendant et différent de tous les autres. La figure \ref{figAgent} montre les actions et les variables nécessaires à l'exécution de l'ensemble du processus.

Il y a trois actions possibles à exécuter (« Récupérer et réutiliser », « Réutiliser » et « Échanger ») et huit variables : le nombre de voisins qui définit le nombre de problèmes similaires au nouveau problème posé que l'agent doit rechercher dans la base de données, la liste des voisins les plus proches établit la liste des agents voisins avec lesquels des informations peuvent être échangées, l'algorithme de récupération est l'identifiant de l'algorithme que l'agent va exécuter pour trouver les problèmes similaires au nouveau problème, l'algorithme de réutilisation est l'identifiant de l'algorithme que l'agent va exécuter pour générer une solution candidate au nouveau problème, solution est la description de la solution générée, évaluation de la solution est la valeur numérique décrivant la qualité de la solution générée selon une fonction d'optimisation (eq \ref{eqOpt1} et eq \ref{eqOpt2}), vecteur bayésien pour les algorithmes de récupération contenant les valeurs de probabilité pour chacun des algorithmes de récupération et vecteur bayésien pour les algorithmes de réutilisation contenant les valeurs de probabilité pour chacun des algorithmes de réutilisation.

\begin{equation}
min \; \left( f_s(p_w^n, s_w^m) \right) = min \left( \sum_{i=1}^{ng} \frac{d(s_w^m,s_i^t)}{d(p_w^n,p_i^n)^2} \right)
\label{eqOpt1}
\end{equation}

\begin{equation}
s_i^t=s_i^m+rn(0,d(p_w^n,p_i^n))
\label{eqOpt2}
\end{equation}

\begin{figure}[!ht]
\centering
\includegraphics[scale=0.7]{Figures/agent.png} 
\caption{Structure interne des agents}
\label{figAgent}
\end{figure}

\subsection{Apprentissage des agents}

Tous les agents contiennent un vecteur bayésien de probabilité pour la phase de récupération (conteneur C3) et un vecteur bayésien de probabilité pour la phase de réutilisation (conteneur C2). Initialement, ces vecteurs sont configurés avec une probabilité uniforme pour tous les algorithmes de récupération et de réutilisation, il s'agit de la distribution de probabilité \textit{a priori}, mais pour chaque itération, les vecteurs sont mis à jour avec l'équation bayésienne en utilisant les meilleurs résultats du même agent comme paramètre de vraisemblance. Le choix suivant d'algorithmes pour la récupération et la réutilisation calcule la probabilité avec les vecteurs. L'agent apprend ainsi de son expérience et sélectionne les algorithmes les plus susceptibles de fournir les meilleures réponses au regard de l'objectif défini.

L'apprentissage est fondé sur un raisonnement bayésien où les vecteurs de récupération et de réutilisation sont initialisés avec une probabilité uniforme pour tous les algorithmes, comme le montre la figure \ref{fig:bayev}. Au cours d'une itération, si un algorithme a contribué à la construction de la meilleure solution, il reçoit un point pour chaque agent qui l'a utilisé. Ces informations sont stockées dans un vecteur normalisé qui est ensuite utilisé comme vecteur de vraisemblance $P(A)$ pour calculer les nouvelles probabilités dans l'équation bayésienne \ref{eqBay}, $P(B)$ est le terme de normalisation global.

\begin{figure}
    \centering
    \includegraphics[scale=0.5]{Figures/BayesianEvolution.png}
    \caption{Exemple d'évolution Bayésienne des vecteurs pour un agent. a) Initialisation des probabilités $P(B|A)$ vecteurs pour Retrieve et Reuse, b) Probabilités après quelques itérations $P(A|B)$ vecteurs pour Retrieve et Reuse}
    \label{fig:bayev}
\end{figure}

\begin{equation}
    P(A|B)=\frac{P(B|A)P(A)}{P(B)}
    \label{eqBay}
\end{equation}

La sélection d'un algorithme de recherche $a_{rt}$ se fait au moyen d'une valeur aléatoire tirée du vecteur de distribution de recherche discrète obtenu par raisonnement bayésien, comme le montre l'équation \ref{eqRta}.

\begin{equation}
    a_{rt}=rnp(n_{rt},P(A|B)_{rt})
    \label{eqRta}
\end{equation}

La sélection d'un algorithme de réutilisation $a_{rs}$ se fait au moyen d'une valeur aléatoire tirée du vecteur de distribution de réutilisation discrète obtenu par raisonnement bayésien, comme le montre l'équation \ref{eqRsa}.

\begin{equation}
    a_{rs}=rnp(n_{rs},P(A|B)_{rs})
    \label{eqRsa}
\end{equation}

Le processus d'apprentissage est réalisé individuellement par chaque agent, mais comporte un aspect collaboratif puisque les agents communiquent les informations qu'ils ont trouvées, les optimisations locales qu'ils ont réalisées, ainsi que les algorithmes et les paramètres.

\subsection{Échanges entre les agents}

Les agents peuvent modifier leurs informations au cours d'une itération en choisissant au hasard un voisin dans leur liste de voisins les plus proches. Les changements permettent d'obtenir une grande probabilité de propager les paramètres des agents qui ont obtenu les meilleurs résultats et d'obtenir des effets de rétroaction. Le type d'information qu'ils peuvent modifier est choisi au hasard, il peut s'agir du nombre de voisins, de la liste des voisins les plus proches, de l'algorithme de récupération, de l'algorithme de réutilisation ou même des vecteurs bayésiens. Si un agent décide de modifier ses informations avec un voisin, les informations qu'il possédait à l'origine sont remplacées par une copie des informations obtenues auprès de l'agent sélectionné.

\section{Résultats}

Afin de comparer la prédiction des performances et le comportement de l'algorithme proposé, onze bases de données de régression présentant des caractéristiques différentes ont été sélectionnées. Les bases de données et leurs caractéristiques sont indiquées dans le tableau \ref{tabBases}. Les valeurs des paramètres de l'algorithme sont les suivantes $it=100$, $np=50$, $nl=10$ et $ng=10$. Les paramètres de tous les autres algorithmes sont présentés dans le tableau \ref{AlgsPar}.

\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{c|ccccccccccc}
&A1&A2&A3&A4&A5&A6&A7&A8&A9&A10\\
\hline
%DS1&9.081&12.301&1.228&1.066&7.763&9.081&9.078&9.764&0.750&8.263&8.225\\
DS1&9.081&12.301&1.228&1.066&7.763&9.081&9.078&9.764&0.750&8.225\\
%DS2&0.022&0.025&0.019&0.013&0.017&0.022&0.022&0.037&0.011&0.016&0.016\\
DS2&0.022&0.025&0.019&0.013&0.017&0.022&0.022&0.037&0.011&0.016\\%DS3&8.756&8.465&9.656&7.665&8.716&8.756&9.005&9.177&7.369&8.148&7.991\\
DS3&8.756&8.465&9.656&7.665&8.716&8.756&9.005&9.177&7.369&7.991\\
%DS4&0.647&0.752&0.794&0.602&0.688&0.647&0.646&0.798&0.616&0.628&0.607\\
DS4&0.647&0.752&0.794&0.602&0.688&0.647&0.646&0.798&0.616&0.607\\
%DS5&0.767&0.824&0.877&0.66&0.826&0.767&0.775&0.87&0.703&0.690&0.662\\
DS5&0.767&0.824&0.877&0.66&0.826&0.767&0.775&0.87&0.703&0.662\\
%DS6&10.525&9.174&6.93&5.372&6.662&10.525&10.525&10.527&5.131&9.413&9.070\\
DS6&10.525&9.174&6.93&5.372&6.662&10.525&10.525&10.527&5.131&9.070\\
%DS7&2.961&2.451&0.589&0.528&3.955&2.961&3.009&4.083&0.490&3.031&2.941\\
DS7&2.961&2.451&0.589&0.528&3.955&2.961&3.009&4.083&0.490&2.941\\
%DS8&1.298&1.125&1.360&1.197&1.486&1.298&1.298&1.306&1.128&2.752&2.553\\
DS8&1.298&1.125&1.360&1.197&1.486&1.298&1.298&1.306&1.128&2.553\\
%DS9&2.256&2.565&3.174&2.377&2.817&2.256&2.255&2.468&2.293&2.747&2.468\\
DS9&2.256&2.565&3.174&2.377&2.817&2.256&2.255&2.468&2.293&2.468\\
%DS10&3.136&3.415&4.173&3.165&3.710&3.136&3.135&3.161&3.108&3.897&3.621\\
DS10&3.136&3.415&4.173&3.165&3.710&3.136&3.135&3.161&3.108&3.621\\
DS11&0.625&0.565&0.741&0.56&0.606&0.626&0.626&0.681&
0.541&0.54\\
\hline
%Avg. Rank&5.8&6.5&7.2&2.3&6.7&5.7&5.6&8.65&1.9&4.65\\
Avg. Rank&6.4&6.9&8.2&2.6&7.2&6.45&6.35&9.55&2.1&4.75\\
\end{tabular}
\caption{Résultat de la métrique RMSE (Root Mean Squared Error) pour les bases de données évaluées avec des algorithmes de régression}
\label{tabRes1}
\end{table}

\begin{table}[!ht]
\scriptsize
\centering
\begin{tabular}{llccp{1.4cm}p{1.2cm}p{1.2cm}}
ID&DataSet&Features&Instances&Output.  Dimension&Input. Domain&Output Domain\\
\hline
DS1&Yatch Hydrodynamics&6&308&1&$\mathbb{R}$&$\mathbb{R}$\\
DS2&Electrical Grid Stability&12&10000&1&$\mathbb{R}$&$\mathbb{R}$\\
DS3&Real State Valuation&6&414&1&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS4&Wine Quality (Red)&11&1598&1&$\mathbb{R_+}$&$\mathbb{N}$\\
DS5&Wine Quality (White)&11&4897&1&$\mathbb{R_+}$&$\mathbb{N}$\\
DS6&Concrete Compressive Strength&8&1030&1&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS7&Energy Efficiency&8&768&2&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS8&Gas Turbine CO, NOx Emission (2015)&9&7384&2&$\mathbb{R_+}$&$\mathbb{R_+}$\\
DS9&Student Performace Portuguese&30&649&3&$\mathbb{N*}$&$\mathbb{N}$\\
DS10&Student Performance Math&30&395&3&$\mathbb{N*}$&$\mathbb{N}$\\
DS11&Generated Student Performance&5&1000&1&$\mathbb{R}_+$&$\mathbb{R}_+$\\
\end{tabular}
\caption{Description des bases de données évaluées. (* après codification comme
\textit{String})}
\label{tabBases}
\end{table}

\begin{table}[!ht]
\centering
\begin{tabular}{ccc|ccc}
ID&Parameter&Value&ID&Parameter&Value\\
\hline
A1&Intercept&True&A6&Degree&4\\
&Positive&True&&Bias&True\\
\hline
A2&Neighbors&5&A7&Fit Intercept&True\\
&Weights&Uniform&&alpha&0.2\\
&Metric&Minkowsky&&tol&1e-4\\
&Power Minkowsky&2\\
\hline
A3&Error&Squared Error&A8&Fit Intercept&True\\
&Min samples split&2&&alpha&[0.00001, 0.4]\\
&&&&Max iter&1000\\
&&&&tol&1e-4\\
\hline
A4&Estimators&10&A9&Error&Squarred Error\\
&Error&Squared Error&&Learning Rate&0.1\\
&Min samples split&2&&Estimators&100\\
&Bootstrap&True&&Min Split&2\\
\hline
A5&Hidden Layers&100\\
&Activation&Relu\\
&Solver&Adam\\
&alpha&0.0001\\
&Learning Rate&0.001\\
&Max Iter&200\\
&beta1&0.9\\
&beta2&0.999\\
&epsilon&1e-8\\
\end{tabular}
\caption{Paramètres pour tous les algorithmes comparés}
\label{AlgsPar}
\end{table}

Le classement moyen de toutes les bases de données en fonction de la mesure RMSE (Root Mean Square Error) est indiqué dans le tableau \ref{tabRes1}. Les résultats détaillés des mêmes algorithmes et des mêmes bases de données, mais comparés avec la métrique MAE (Median Absolute Error), sont présentés dans le tableau \ref{tabRes2}.

\begin{table}[!ht]
\footnotesize
\centering
\begin{tabular}{c|ccccccccccc}
Dataset&A1&A2&A3&A4&A5&A6&A7&A8&A9&A10\\
\hline
%DS1&6.776&2.385&0.231&0.207&3.632&6.778&6.307&5.186&0.162&1.193&1.218\\
DS1&6.776&2.385&0.231&0.207&3.632&6.778&6.307&5.186&0.162&1.218\\
%DS2&0.015&0.017&0.012&0.008&0.012&0.015&0.015&0.030&0.007&0.011&0.010\\
DS2&0.015&0.017&0.012&0.008&0.012&0.015&0.015&0.030&0.007&0.010\\
%DS3&5.092&4.320&4.1&3.632&4.435&5.092&5.20&5.132&3.504&3.90&3.771\\
DS3&5.092&4.320&4.1&3.632&4.435&5.092&5.20&5.132&3.504&3.771\\
%DS4&0.413&0.495&0.18&0.325&0.451&0.413&0.412&0.544&0.387&0.154&0.135\\
DS4&0.413&0.495&0.18&0.325&0.451&0.413&0.412&0.544&0.387&0.135\\
%DS5&0.509&0.548&0.285&0.374&0.550&0.509&0.509&0.633&0.456&0.113&0.085\\
DS5&0.509&0.548&0.285&0.374&0.550&0.509&0.509&0.633&0.456&0.085\\
%DS6&6.989&5.709&3.134&2.839&4.306&6.989&6.989&6.986&3.084&5.439&5.072\\
DS6&6.989&5.709&3.134&2.839&4.306&6.989&6.989&6.986&3.084&5.072\\
%DS7&1.393&1.372&0.217&0.218&2.523&1.393&1.529&2.346&0.243&1.008&1.006\\
DS7&1.393&1.372&0.217&0.218&2.523&1.393&1.529&2.346&0.243&1.006\\
%DS8&0.549&0.297&0.365&0.289&0.742&0.549&0.549&0.540&0.309&0.861&0.794\\
DS8&0.549&0.297&0.365&0.289&0.742&0.549&0.549&0.540&0.309&0.794\\
%DS9&1.496&1.788&2.080&1.612&2.005&1.496&1.496&1.714&1.538&1.721&1.556\\
DS9&1.496&1.788&2.080&1.612&2.005&1.496&1.496&1.714&1.538&1.556\\
%DS10&2.344&2.534&2.910&2.331&2.543&2.344&2.344&2.481&2.258&2.602&2.371\\
DS10&2.344&2.534&2.910&2.331&2.543&2.344&2.344&2.481&2.258&2.371\\
DS11&0.387&0.35&0.46&0.338&0.384&0.387&0.387&0.453&
0.327&0.347\\
\hline
Avg. Rank&7.15&6.9&5.35&2.6&7.95&7.25&7.3&9.0&2.5
&4.5\\
%Avg. Rank&6.45&6.5&4.35&2.4&7.45&6.55&6.6&8.1&2.4&4.2\\
\end{tabular}
\caption{Comparaison des résultats MAE (Median Absolute Error) pour les bases de données évaluées avec des algorithmes de régression}
\label{tabRes2}
\end{table}

La dispersion globale, la médiane et les valeurs aberrantes pour toutes les bases données évaluées sont présentées dans la figure \ref{figBox}, où l'on peut voir que l'algorithme proposé génère dans certains cas plus de valeurs aberrantes que d'autres algorithmes, mais la variance est très faible et la convergence est proche de la valeur réelle, meilleure que la plupart des algorithmes comparés. Les valeurs aberrantes sont plus élevées que les valeurs réelles.

\begin{figure}[!ht]
\includegraphics[scale=0.26]{Figures/boxplot2.png}
\caption{Résultats de la métrique MAE (Median Absolute Error) pour dix algorithmes}
\label{figBox}
\end{figure}

Les résultats montrent que l'algorithme est compétitif dans la plupart des bases de données sélectionnées, obtenant les meilleurs résultats dans les bases DS2, DS4, DS5 et DS9. Globalement, d'après le classement moyen, l'algorithme est placé en troisième position, à proximité d'autres algorithmes d'ensemble. Par rapport à l'ESCBR, une amélioration des résultats et une réduction de la variance ont été obtenues, ce qui montre que les systèmes multi-agents et le raisonnement stochastique bayésien contribuent à l'apprentissage et à la convergence de l'algorithme vers des solutions plus proches de la solution réelle.

\section{Conclusion}
L'ECBR proposé avec SMA tente d'utiliser les avantages des systèmes multi-agents pour améliorer la qualité des solutions proposées ainsi que pour améliorer le processus d'apprentissage global afin d'augmenter la performance de l'algorithme à chaque nouvelle exécution même sur des données différentes, il utilise également le raisonnement bayésien qui permet d'obtenir de bonnes approximations et un apprentissage optimal avec peu de données.

Ce travail a démontré la capacité du modèle à trouver des solutions proches de l'optimum global pour la majorité des ensembles de données analysés, même avec des ensembles de données divers, déséquilibrés et de tailles différentes. Les résultats montrent en effet une amélioration de l'ECBR de base, qui peut être due à la combinaison du potentiel de l'ECBR et des caractéristiques des systèmes multi-agents tels que les effets de rétroaction, les effets émergents et le comportement de raisonnement bayésien cognitif mis en œuvre.
