Raisonnement Probabiliste en IA
Raisonnement Probabiliste en IA
RAISONNEMENT
PROBABILISTE
INTRODUCTION
• La connaissance acquise n'est pas toujours certaine (établie à 100%) pour permettre au système de
prendre la décision la plus appropriée.
• L'incertitude est une connaissance dont on ne connaît pas les propriétés quantitatives et qui n'a pas une
représentation arithmétique ou logique formelle.
• La modélisation de l'incertitude en Intelligence Artificielle implique l'élaboration d'un formalisme et d'une
méthode pour la représenter et la manipuler.
• L’existence de l’information incertaine s’explique notamment par le manque de précision éventuel des
données fournies par l’utilisateur.
Raisons pour l’introduction de l’incertitude:
– conclusions disjonctives, par exemple dans le diagnostic médical.
– modélisation qualitative
– informations insuffisantes
• Les approches probabilistes s'adaptent mieux au raisonnement avec la connaissance (ou croyance)
incertaine et à la structure de la représentation de la connaissance.
1
12/12/2023
INTRODUCTION
INTRODUCTION
2
12/12/2023
INTRODUCTION
• La représentation des connaissances et le raisonnement à partir de ces
représentations a donné naissance à de nombreux modèles.
• Les Modèles Graphiques ce sont des modèles probabilistes novateurs pour
la représentation des connaissances, fondés sur une description graphique des
variables aléatoires.
• •Idée : prendre en compte les dépendances et indépendances conditionnelles
entre les variables
• •Objectif : représenter des distributions multi-dimensionnelles de grande taille
en évitant l’explosion combinatoire (complexité temporelle et spatiale)
INTRODUCTION
3
12/12/2023
APPROCHE
PROBABILISTE
VARIABLES ALÉATOIRES
• Booléennes ou binaires
– le domaine, c.-à-d. l’ensemble des valeurs possibles de la variable, était
toujours {vrai, faux}
• Discrètes : le domaine est énumérable
– Météo {soleil, pluie, nuageux, neige}
– lorsqu’on marginalise, on doit sommer sur toutes les valeurs :
P(Température) = Σx {soleil, pluie, nuageux, neige} P(Température, Météo=x)
• Continues : le domaine est continu (par exemple, l’ensemble des réels)
– exemple : PositionX = 4.2
– le calcul des probabilités marginales nécessite des intégrales
4
12/12/2023
DISTRIBUTION DE PROBABILITÉS
• Distribution de probabilités : l’énumération des probabilités pour toutes les
valeurs possibles de variables aléatoires
• Exemples :
– P(Pourriel, Inconnu, Sensible) Toutes ces probabilités somment à 1
– P(Pourriel) = [ P(Pourriel=faux), P(Pourriel=vrai) ] = [ 0.8, 0.2 ]
– P(Pourriel, Inconnu)
= [ [Pourriel= faux, Inconnu=faux), [Pourriel= vrai, Inconnu=faux)],
[Pourriel= faux, Inconnu=vrai), [Pourriel= vrai, Inconnu=vrai)]]
• La somme est toujours égale à 1
• J’utilise le symbole P pour les distributions et P pour les probabilités
– P(Pourriel) désignera la probabilité P(Pourriel=x) pour une valeur x non-spécifiée
5
12/12/2023
PROBABILITÉ CONJOINTE
• Probabilité conjointe : probabilité d’une assignation de
valeurs à toutes la variables
PROBABILITÉ MARGINALE
• Probabilité marginale : probabilité sur un sous-ensemble des
variables
– P(Y)= Σz P(Y, Z=z) - Pour n’importe quelle ensemble de variable Y et Z
– P(Inconnu=vrai, Pourriel=vrai)
= P(Inconnu=vrai, Sensible=vrai, Pourriel=vrai) + P(Inconnu=vrai, Sensible=faux,
Pourriel=vrai)
= Σx∈{vrai, faux} P(Inconnu=vrai, Sensible=x, Pourriel=vrai) = 0.108 + 0.012 = 0.12
6
12/12/2023
PROBABILITÉ MARGINALE
• Probabilité marginale : probabilité sur un sous-ensemble des
variables
– P(Pourriel=vrai)
= Σx∈{vrai, faux} Σy∈{vrai, faux} P(Inconnu=x, Sensible=y, Pourriel=vrai)
= 0.108 + 0.012 + 0.072 + 0.008 = 0.2
7
12/12/2023
PROBABILITÉ CONDITIONNELLE
• Probabilité conditionnelle :
– P(Pourriel=faux | Inconnu=vrai)
= P(Pourriel=faux, Inconnu=vrai) / P(Inconnu=vrai)
= (0.016 + 0.064) / (0.016 + 0.064 + 0.108 + 0.012) = 0.4
8
12/12/2023
DISTRIBUTION CONDITIONNELLE
• On a vu que
DISTRIBUTION CONDITIONNELLE
• Exemple :
– P(Pourriel | Inconnu=faux)
= [ P(Pourriel=faux | Inconnu=faux), P(Pourriel=vrai | Inconnu=faux) ]
= [ 0.9, 0.1 ]
– P(Pourriel | Inconnu)
= [ [ P(Pourriel=faux | Inconnu=faux), P(Pourriel=vrai | Inconnu=faux)],
[ P(Pourriel=faux | Inconnu=vrai), P(Pourriel=vrai | Inconnu=vrai)] ]
= [ [ 0.9, 0.1], somme à 1
[0.4, 0.6] ] somme à 1
• Chaque sous-ensemble de probabilités associé aux mêmes valeurs des
variables sur lesquelles on conditionne somme à 1
• P(Pourriel | Inconnu) contient deux distributions de probabilités sur la variable
Pourriel : une dans le cas où Inconnu=faux, l’autre lorsque Inconnu=vrai
IFT615 Hugo Larochelle et Froduald Kabanza 18
9
12/12/2023
DISTRIBUTION CONDITIONNELLE
• Une distribution conditionnelle peut être vue comme une distribution renormalisée
afin de satisfaire les conditions de sommation à 1
• P(X|e) = α Σy P(X,e,y)
• Exemple :
– P(Pourriel | Inconnu=vrai)
= α P(Pourriel, Inconnu=vrai)
= α [0.08, 0.12]
= (1/ (0.08 + 0.12)) [0.08, 0.12]
= [ 0.4, 0.6 ]
– P(Pourriel | Inconnu)
= [αfaux P(Pourriel, Inconnu=faux) ,
αvrai P(Pourriel, Inconnu=vrai) ]
= [ [ 0.72, 0.08] / (0.72 + 0.08),
[0.08, 0.12] / (0.08 + 0.12) ]
= [ [ 0.9, 0.1],
[0.4, 0.6] ]
RÈGLE DU PRODUIT
• Règle du produit :
– P(X,Y)=P(X|Y)P(Y)
– P(Pourriel=faux, Inconnu=vrai)
= P(Pourriel=faux | Inconnu=vrai) P(Inconnu=vrai)
= P(Inconnu=vrai | Pourriel=faux) P(Pourriel=faux)
– En général :
P(Pourriel, Inconnu) = P(Pourriel | Inconnu) P(Inconnu)
= P(Inconnu | Pourriel) P(Pourriel)
10
12/12/2023
RÈGLE DE CHAÎNAGE
• Règle du produit :
– P(X,Y)=P(X|Y)P(Y)
RÈGLE DE CHAÎNAGE
• La règle du chaînage est vraie, quelle que soit la distribution de X1 ... Xn
• Plutôt que de spécifier toutes les probabilités jointes P(X1, ... , Xn), on pourrait
plutôt spécifier P(X1), P(X2|X1), P(X3|X1, X2), ..., P(Xn | X1,...,Xn-1)
11
12/12/2023
RÈGLE DE BAYES
• P(X|Y) = P(Y|X)P(X)/P(Y)
RÈGLE DE BAYES
• P(X|Y) = P(Y|X)P(X)/P(Y)
• Donne une probabilité diagnostique à partir d’une probabilité causale :
– P(Cause|Effet) = P(Effet|Cause) P(Cause) / P(Effet)
• On pourrait calculer P(Pourriel=faux | Inconnu=vrai) :
– P(pourriel | inconnu)
= P(pourriel, inconnu) / P(inconnu)
= P(pourriel, inconnu) / ( P(inconnu, pourriel) + P(inconnu, pourriel))
= α P(inconnu|pourriel) P(pourriel)
= 0.08 / (0.08 + 0.12) = 0.4
Pourriel=faux ⇔ pourriel
• On appelle P(Pourriel) une probabilité a priori Pourriel=vrai ⇔ pourriel
– c’est notre croyance p/r à la présence d’une Pourriel avant toute observation
• On appelle P(Pourriel| Inconnu) une probabilité a posteriori
– c’est notre croyance mise à jour après avoir observé Inconnu
• La règle de Bayes lie ces deux probabilités ensemble
– P(pourriel | inconnu) = α P(inconnu|pourriel) P(pourriel)
12
12/12/2023
INDÉPENDANCE
• Soit les variables A et B, elles sont indépendantes si et
seulement si
– P(A|B) = P(A) ou
– P(B|A) = P(B) ou
– P(A, B) = P(A) P(B)
INDÉPENDANCE
13
12/12/2023
INDÉPENDANCE
INDÉPENDANCE CONDITIONNELLE
• Si je sais déjà que le courriel est un pourriel, ma croyance (probabilité) qu’il
contienne un mot sensible ne dépend plus du fait que l’expéditeur me soit
inconnu ou non :
– P(Sensible | Inconnu, Pourriel=vrai) = P(Sensible | Pourriel=vrai)
• Formulations équivalentes :
– P(Inconnu | Sensible , Pourriel) = P(Inconnu |Pourriel)
– P(Inconnu, Sensible | Pourriel) = P(Inconnu |Pourriel) P(Sensible|Pourriel)
14
12/12/2023
INDÉPENDANCE CONDITIONNELLE
EN BREF
• Distribution de probabilités : l’énumération des probabilités pour toutes les valeurs possibles de variables aléatoires
• Probabilité jointe : probabilité d’une assignation de valeurs à toutes la variables P(X1, …,Xn)
• Probabilité marginale : probabilité sur un sous-ensemble des variables P(Xi), P(Xi, Xj), etc.
• Probabilité conditionnelle : P(X1, …,Xk |Xk+1, …,Xn ) = P(X1, …,Xk , Xk+1, …,Xn )
P( Xk+1, …,Xn )
• Règle de Bayes : P(X1, …,Xk |Xk+1, …,Xn ) = P(Xk+1, …,Xn | X1, …,Xk) P(X1, …,Xk )
P( Xk+1, …,Xn )
15
12/12/2023
RÉSEAUX
BAYÉSIENS
16
12/12/2023
INTRODUCTION
• Les modèles graphiques probabilistes, et plus précisément les réseaux
bayésiens (RB), sont la combinaison des approches probabilistes et de la
théorie de graphes.
• Les réseaux bayésiens, initiés par Judea Pearl dans les années 1980, se sont
révélés des outils très pratiques pour la représentation de connaissances
incertaines et le raisonnement à partir d’informations incomplètes,
dans de nombreux domaines comme la bio-informatique, la gestion du risque,
le marketing, la sécurité informatique, le transport, etc.
– Autrement dit, ce sont des modèles qui permettent de représenter des situations de
raisonnement probabiliste à partir de connaissances incertaines.
INTRODUCTION
• Ces approches probabilistes sont appelées "réseaux bayésiens", mais sont aussi
connues sous le nom de "belief networks", "causal networks".
• Un RB permet de représenter les connaissances probabilistes d’une application
donnée :
– par exemple, les connaissances cliniques d’un médecin sur des liens de causalité entre
maladies et symptômes
• Les RB sont utiles pour modéliser des connaissances d’un système expert ou
d’un système de support à la décision, dans une situation pour laquelle :
– la causalité joue un rôle important (des évènements en causent d’autres)
17
12/12/2023
THÉORÈME DE BAYES
Thomas Bayes a écrit une loi de base de probabilité, maintenant appelée le théorème de
Bayes. Règle de Bayes : le cœur des techniques Bayésiennes
18
12/12/2023
Supposez que vous habitez à Londres, Angleterre, et d'après votre connaissance, pendant l'hiver,
il pleut 50% du temps et que c'est nuageux 80% du temps (quelquefois c'est nuageux sans
pluie).Vous savez, bien sûr, que 100% du temps, s'il pleut, alors c'est aussi nuageux.
• Quelle est la chance que vous pensez qu'il va pleuvoir sachant qu'il soit simplement nuageux?
• En appliquant la règle de Bayes, on peut calculer ceci
Pl : il pleut à Londres
N : Il est nuageux
Donc, 5/8 du temps, à Londres pendant hiver, si c'est nuageux, alors c'est
pluvieux.
RÉSEAU BAYÉSIEN
19
12/12/2023
RÉSEAU BAYÉSIEN
• Modèles de représentation des connaissances, fondés sur une description graphique des
variables aléatoires : Directed Acyclic Graph(DAG)
• Un réseau bayésien est un graphe orienté acyclique
– les nœuds sont des variables aléatoires et
– les arcs représentent
• » des dépendances (par exemple des causalités) probabilistes entre les variables et
• » des distributions de probabilités conditionnelles (locales) pour chaque variable étant
donnes ses parents
P(D|A,B)
20
12/12/2023
21
12/12/2023
Ce matin-là, alors que le temps est clair et sec, M. Homles sort de sa maison. Il s’aperçoit que la
pelouse de son jardin est humide. Il se demande alors s’il a plu pendant la nuit, où s’il a
simplement oublié de débrancher son arroseur automatique. Il jette alors un coup d’œil à la
pelouse de son voisin, M. Watson, et s’aperçoit qu’elle est également humide. Il en déduit
alors qu’il a probablement plu, et il décide de partir au travail sans vérification son arroseur
automatique.
22
12/12/2023
• Prenons
– A : J’ai oublié de débrancher mon arroseur automatique.
– P : Il a plu pendant la nuit.
– J : L’herbe de mon jardin est humide.
– W : L’herbe du jardin de M. Watson est humide. A P
J W
RÉSEAU BAYÉSIEN –
DISTRIBUTION DE PROBABILITÉS CONDITIONNELLES
23
12/12/2023
RÉSEAU BAYESIEN –
DISTRIBUTION DE PROBABILITÉS JOINTE
24
12/12/2023
EXEMPLE
Considérons la situation suivante :
• Vous avez une nouvelle alarme à la maison qui
– sonne lorsqu’il y a un cambriolage;
– sonne parfois à tort lorsqu’il y a un tremblement de terre.
• Vous avez deux voisins qui vous appellent au bureau s’ils entendent l’alarme.
– John appelle tout le temps quand il entend l’alarme, mais parfois il confond le téléphone avec
l’alarme.
– Mary aime écouter de la musique forte et parfois elle n’entend pas l’alarme.
• Comment conclure qu’il y a ou non un cambriolage chez moi?
– Sachant qui a appelé, quelle est la probabilité qu’il y ait un cambriolage ?
– On peut représenter ce problème par un RB
25
12/12/2023
EXEMPLE
EXEMPLE
26
12/12/2023
27
12/12/2023
28
12/12/2023
29
12/12/2023
EXEMPLE
– parmi les 52 courriels valides, 10 avaient un expéditeur inconnu et 0 contenaient un mot sensible
EXEMPLE
30
12/12/2023
EXEMPLE : PROBABILITÉ
CONJOINTE P(C)
.001
P(S)
.002
n
P(X1, … ,Xn) = Cambriolage Séisme
i = 1 P(Xi | Parents(Xi))
P(j, m, a, ¬c, ¬s) C S P(A|C,S)
= P(j|a) P(m|a) P(a| ¬ c, ¬ s) T T .95
Alarme T F .94
F T .29
P(¬ c) P(¬ s) F F .001
= .90 * .70 * .001 *
.999 * . 998
≈ .00062 P(J=j, M=m, A=a, C=¬c, S=¬s) MarieAppelle
JeanAppelle
est aussi noté P(j, m, a, ¬c, ¬s)
A P(J|A) A P(M|A)
T .90 T .70
F .05 F .01
61
EXEMPLE : PROBABILITÉ
MARGINALE P(C)
.001
P(S)
.002
Cambriolage Séisme
P(¬c, a) = Σm Σj Σs P(J=j,M=m,a,¬c,S=s)
= Σm Σj Σs P(j|a) P(m|a) P(a| ¬ c, s) P(¬c) P(s)
C S P(A|C,S)
= Σs Σj Σm P(j|a) P(m|a) P(a| ¬ c, s) P(¬c) P(s)
T T .95
= Σs Σj P(j|a) P(a| ¬ c, s) P(¬c) P(s) Σm P(m|a) Alarme T F .94
F T .29
F F .001
=1
= Σs P(a| ¬ c, s) P(¬c) P(s) Σj P(j|a)
=1
= P(a|¬c,s) P(¬c) P(s) + P(a|¬c,¬s) P(¬c) P(¬s) MarieAppelle
JeanAppelle
= .29 * .999 * .002 + .001 * .999 * .998
A P(J|A) A P(M|A)
≈ 0.0016 T .70
T .90
F .05 F .01
31
12/12/2023
EXEMPLE : PROBABILITÉ
MARGINALE P(C)
.001
P(S)
.002
Cambriolage Séisme
P(¬c, a) = Σm Σj Σs P(J=j,M=m,a,¬c,S=s)
= Σm Σj Σs P(j|a) P(m|a) P(a| ¬ c, s) P(¬c) P(s)
P(¬c, a) C S P(A|C,S)
= Σs Σj Σm P(j|a) P(m|a) P(a|= ¬Σmc,Σs)j ΣP(¬c)
s P(J=j,M=m,a,¬c,S=s)
P(s)
= Σs P(a| ¬ c, s) P(¬c) P(s) T T .95
= Σs Σj P(j|a) P(a| ¬ c, s) P(¬c) P(s) Σm P(m|a) Alarme T F .94
F T .29
F F .001
Pour les probabilités= marginales,
1 on peut ignorer les nœuds
dont
= Σs P(a| ¬ c, s) P(¬c) lesΣj descendants
P(s) P(j|a) ne sont pas les nœuds observés
=1
= P(a|¬c,s) P(¬c) P(s) + P(a|¬c,¬s) P(¬c) P(¬s) MarieAppelle
JeanAppelle
= .29 * .999 * .002 + .001 * .999 * .998
A P(J|A) A P(M|A)
≈ 0.0016 T .70
T .90
F .05 F .01
INDÉPENDANCE CONDITIONNELLE
DANS UN RB
P(C) P(S)
.001 .002
1. Relation entre grand-parent et
enfant étant donné parent Cambriolage Séisme
– sont indépendants si parent
observé.
• Exemples : C S P(A|C,S)
– Cambriolage et MarieAppelle sont V V .95
Alarme V F .94
dépendants a priori F V .29
F F .001
– mais ils sont indépendants étant
donné Alarme :
P(M|A,C) = P(M|A)
– si A est connu, C n’intervient pas MarieAppelle
dans le calcul JeanAppelle
A P(J|A) A P(M|A)
– connaître A « bloque » le chemin
V .90 V .70
entre M et C F .01
F .05
32
12/12/2023
INDÉPENDANCE CONDITIONNELLE
DANS UN RB
P(C) P(S)
.001 .002
2. Relation entre deux enfants
étant donné parent: Cambriolage Séisme
– sont indépendants si parent observé
• Exemples :
C S P(A|C,S)
– JeanAppelle et MarieAppelle sont V V .95
dépendants a priori Alarme V F .94
F V .29
– mais ils sont indépendants étant F F .001
donné Alarme :
P(M|A,J) = P(M|A)
– si A est connu, J n’intervient pas MarieAppelle
JeanAppelle
dans le calcul
A P(J|A) A P(M|A)
– connaître A « bloque » le chemin
V .90 V .70
entre J et M F .05 F .01
65
INDÉPENDANCE CONDITIONNELLE
DANS UN RB
P(C) P(S)
.001 .002
3. Relation entre deux parents
étant donné un enfant Cambriolage Séisme
– sont indépendants si enfant non
observé
• Exemples : C S P(A|C,S)
V V .95
– Cambriolage et Séisme sont Alarme V F .94
indépendants a priori F V .29
F F .001
– mais ils sont dépendants étant
donné Alarme
• P(C|A,S) n’est pas simplifiable,
parce que MarieAppelle
P(A|C,S) n’est pas simplifiable
JeanAppelle
A P(J|A) A P(M|A)
– ne pas connaître A « bloque » le
V .90 V .70
chemine entre C et S F .05 F .01
33
12/12/2023
INDÉPENDANCE CONDITIONNELLE
DANS UN RB : D-SÉPARATION
• D-séparation : critère général pour décider si un nœud X est indépendant d’un
nœud Y, étant donnés d’autres noeuds Z = {Z1, ..., Zm}
• Un chemin est bloqué s’il contient au moins un noeud N qui satisfait une ou
l’autre des conditions suivantes :
1. il inclue un noeud N ou N , où N ∈ {Z1, ..., Zm}
2. il inclue un noeud N et N ∉ {Z1, ..., Zm}, ni aucun des descendants de N
D-SÉPARATION _ EXEMPLE
34
12/12/2023
D-SÉPARATION _ EXEMPLE
EXEMPLE
Age Gender
Cancer
Serum- Lung-
Calcium Tumor
70
35
12/12/2023
EXEMPLE
Age Gender
Serum- Lung-
Calcium Tumor
EXEMPLE
Age Gender
36
12/12/2023
EXEMPLE
Age Gender
Cancer
Serum- Lung-
Calcium Tumor
EXEMPLE
Age Gender
Serum- Lung-
Calcium Tumor
37
12/12/2023
EXEMPLE
Age Gender
• Réponse : non
EXEMPLE
Age Gender
Cancer
Serum- Lung-
Calcium Tumor
38
12/12/2023
EXEMPLE
Age Gender
Serum- Lung-
Calcium Tumor
EXEMPLE
Age Gender
• Est-ce que Exposure-to-Toxics et Smoking sont
indépendants sachant Age et Lung-Tumor?
Exposure- Smoking
– chemin 1 est bloqué au niveau de Age to-Toxics
• Age est observé
N
Serum- Lung-
• Réponse : non Calcium Tumor
39
12/12/2023
INFERENCE
BAYESIENS
40
12/12/2023
TYPES D’INFÉRENCE
41
12/12/2023
INFÉRENCE EXACTE
INFÉRENCE PAR
ÉNUMÉRATION
• On veut calculer la distribution sur les variables de requêtes sachant les observations
P(X|e) = α P(X,E=e)= α Σh P(X, e, h)
• Les termes P(X, e, h) peuvent s’écrire comme le produit des probabilités conditionnelles du réseau
• On peut donc calculer la réponse à une requête P(X|e) dans un RB, simplement en
1. calculant les sommes des produits des probabilités conditionnelles du RB
2. normalisant ces sommes de façon à obtenir une distribution qui somme à 1
• Les ensembles des variables X, E et H couvrent ensemble tous les noeuds
– complexité en temps : O(d |X|+|h|), avec d la taille du plus grand domaine
– complexité en espace : O(d|X|), pour stocker la distribution
42
12/12/2023
EXEMPLE 1
• P(Cambriolage | JeanAppelle = vrai, P(C) P(S)
MarieAppelle = vrai) .001 .002
– noté P(C | j, m)
Cambriolage Séisme
EXEMPLE 1 (SUITE)
• Structure de l’expression representée par l’équation
P(c | j, m)= α * P(c) ΣsP(s) Σa P(a|c,s) P(j|a) P(m|a)
b-> c
e ->s
43
12/12/2023
EXEMPLE 1 (SUITE)
P(C) P(S)
.001 .002
• On calcule pour C = vrai
P(c | j, m) Cambriolage Séisme
= α P(c) Σs P(s) Σa P(a|c,s) P(j|a) P(m|a)
= α * 0.001*(0.002*(0.95*0.90*0.70+
0.05*0.05*0.01)+ C S P(A|C,S)
V V .95
0.998*(0.94*0.90*0.70+ Alarme V F .94
F V .29
0.06*0.05*0.01)) F F .001
= α * 0.00059224
• Et C = faux
P(┐c | j, m)
JeanAppelle MarieAppelle
= α P(┐c) Σs P(s) Σa P(a| ┐c,s) P(j|a) P(m|a)
A P(J|A) A P(M|A)
= α * 0.0014919
V .90 V .70
α = 1 / (0.00059224 + 0.0014919) F .05 F .01
TYPES D’INTERROGATION
• •Diagnostique
– –des effets vers la cause : chaînage arrière
– –exemple : P(C|J) ?
• •Causale
– –des causes vers les effets : chaînage avant
– –exemple : P(J|C) ?
• •Inter-causale
– –entre les causes et un effet connu
– –exemple : P(C|A∧T) ?
• •Mixte : combine un ou plusieurs des types précédents
– –exemple : P(A|J ∧¬T) ? (diagnostique + causale)
44
12/12/2023
45
12/12/2023
MERCI
46