Telechargé par hananeal051

1 Exercices-Corriges-Intell-Artif-4Info

publicité
Exercices Corrigés
Intelligence Artificielle
Module Intelligence Artificielle et Vision Artificielle
4ème Année Génie informatique
Redouane Ezzahir
[email protected]
2014/2015
mis-à-jours 2020
Table de matière
Logique de propositions et de prédicats
3
Exercice 1
Exercice 2
Exercice 3
Exercice 4
Exercice 5
Exercice 6
3
3
4
4
4
4
Système expert
5
Exercice 1
Exercice 2:
Exercice 3 (Un système expert bancaire )
Exercice 4
Exercice 5
5
5
6
7
8
Algorithmes de recherche
9
Exercice 1
Exercice 2
9
9
Problème de satisfaction de contraintes
10
Exercice 1
Exercice 2
Exercice 3
Exercice 4
Exercice 5 (L’emploi du temps )
10
10
11
13
13
Machine Learning
15
Exercice 1
Exercice 2 (Algorithme K-plus proche voisines)
Exercice 3
Exercice 4 (Réseaux de neurones artificiels )
15
15
16
16
Logique des prédicats (Corrigés)
18
Solution Exercice 1
Solution Exercice 2
Solution Exercice 2
Solution Exercice 3
18
18
19
19
Systèmes Expert (Correction d’exercice)
20
Solution Exercice 1
Solution Exercice 2
Solution Exercice 2
Solution Exercice 4
Solution Exercice 5
20
21
22
23
23
Algorithme de recherches (Correction d’exercices)
25
Corrigé de l’exercice. 1.
Corrigé de l’exercice. 2.
Problèmes de satisfaction de contraintes (Correction d’exercice)
Corrigé de l’exercice. 1.
Corrigé de l’exercice. 2.
Corrigé de l’exercice. 3.
Corrigé de l’exercice. 4.
Corrigé de l’exercice. 5.
25
26
27
27
27
28
29
29
Machine Learning (Correction d’exercices)
31
Corrigé de l’exercice. 1.
Corrigé de l’exercice. 2.
Corrigé de l’exercice. 3.
Corrigé de l’exercice. 4.
Corrigé de l’exercice. 5.
31
32
32
32
34
Logique de propositions et de prédicats
Exercice 1
1.
Lequel des éléments suivants signifie la même chose que "p est nécessaire pour q"?
2.
Lesquelles des conditions suivantes sont nécessaire pour « le nombre naturel n est un
multiple de 10 »?
p
q
n est un multiple de 5
n2 est un multiple de 100
3.
q
q
p
n est pair et un multiple de 5
n est un multiple de 20
n = 100
Lesquelles des conditions suivantes sont suffisantes pour « le nombre naturel n est un
multiple de 10 »?
n est un multiple de 5
n2 est un multiple de 100
4.
p
n est pair et un multiple de 5
n est un multiple de 20
n = 100
Lesquelles des conditions suivantes sont nécessaires et suffisantes pour « le nombre naturel
n est un multiple de 10»?
n est un multiple de 5
n est pair et un multiple de 5
n2 est un multiple de 100
n est un multiple de 20
n = 100
5. Identifier l'antécédent aux conditionnels suivants:
a. Si l'alarme sonne, tout le monde quitte.
Tout le monde quitte
b. Tout le monde quitte si l'alarme sonne.
Tout le monde quitte
L'alarme sonne
L'alarme sonne
c. Ali ne fait de la natation que si le soleil brille.
Le soleil brille
d. Omar part chaque fois que Amal arrive.
Amal arrive
Ali fait de la natation
Omar part
Exercice 2
Représenter les connaissances suivantes en logique des prédicats ...
1a. Finn est chez-lui ou chez Rey.
1b. Si Finn n’est pas chez-lui, il est chez Rey.
2a. Vous pouvez déduire vos frais médicaux si votre revenu annuel est inférieur à 18 000€
et que v
2b. Vous ne pouvez pas déduire vos frais médicaux si vous n’avez pas plus de 70 ans ou
que votre
3a. Jean réussira son examen ou il n’est pas fort en logique.
3b. Si Jean ne réussit pas son examen alors il n’est pas fort en logique.
3c. Si Jean n’est pas fort en logique, alors il ne réussit pas son examen.
4a. Si Jean n’est pas fort en logique, Marie n’est pas forte non plus en logique et ils ne
réussiront pas
4b. Jean et Marie réussiront leur examen s’ils sont forts en logique.
5a. Chargeur branché, électricité consommée. Electricité consommée, chaleur dissipée.
Chaleur dissipée
5b. Chargeur branché, tempête en Bretagne.
Exercice 3
Représenter les connaissances suivantes avec les connecteurs logiques :
1. p sinon q
2. p à moins que q
3. p autrement q
4. Il suffit que p pour q
5. Il est nécessaire que p pour q 6. p seulement si q
7. p si q
Exercice 4
Représentez à l’aide de la logique des prédicats les informations suivantes :
1. Chaque chien a mordu au moins un facteur. 2. Tous les étudiants sont venus au cours
d’IA. 3. Tous les étudiants ont testé toutes les boîtes.
Exercice 5
Représentez les connaissances suivantes par des réseaux sémantiques :
1a. Le pull d’Alyssa est bleu.
1b. Le pull de Bernadette est gris.
1c. Alyssa et Bernadette sont des personnes. Bleu et Gris sont des couleurs.
2a. Shazia est plus petite qu’Arnaud.
2b. Shazia qui fait 1.68 cm est plus petite qu’Arnaud qui mesure 1.85 cm.
3a. Mehdi a prêté le livre « La Proie » écrit par M. Crichton à Marie. 3b. Mehdi, Marie et M.
Crichton sont des personnes.
Exercice 6
Soient P et Q les affirmations suivantes :
P = Ahmed est fort en Maths;
Q = Ahmed est fort en Chimie
Représenter sous formes symboliques les affirmations suivantes
(utiliser les connecteurs Λ V →
):
1. Ahmed est fort en Maths mais faible en Chimie
2. Ahmed n'est ni fort en Maths ni en Chimie
3. Ahmed est fort en Maths s'il est fort en Chimie
Système expert
Exercice 1
Exercice 2:
Un polynôme de degré inférieur ou égal à 2, à coefficients entiers relatifs se décrit en
mathématiques de la manière suivante :
ax2 +bx+c
Mais l’écriture usuelle de ces polynômes est parfois très éloignée de cette
où a,b,c ∈ Z description.
Par exemple, si a = 1, b = −1 et c = 0, on écrira:
et non
x2 − x
1x2 +−1x+0
Nous appliquons donc des règles identiques (ou plutôt ayant des effets identiques)
de manière plus ou moins consciente (plutôt moins que plus : qui a jamais réfléchi à
ce problème?).
Il y a donc là un savoir-faire attesté et non analysé, bref matière à un système expert.
Formalisons ce problème afin qu’il puisse être traité par un générateur de système
expert simple (faits booléens, réels ou symboliques, pas de métarègles, etc).
Les données en entrée sont des variables à valeurs dans Z : a, b et c. Les sorties
sont des variables :
(sg2,coef2,var2,expo2,sg1,coef1,var1,sg0,coef0)
prenant comme valeurs :
– ’+’, ’-’ ou ’vide’ pour sg2, sg1 et sg0
– ’x’ ou ’vide’ pour var2 et var1
– ’2’ ou ’vide’ pour expo2
– un entier > 0 ou ’vide’ pour coef2, coef1 et coef0.
La valeur ’vide’ d’une variable de sortie signifie que celle-ci ne doit pas être écrite.
Dans l’exemple précédent (a = 1, b = −1 et c = 0): sg2 = vide, coef2 = vide, var2 = x,
expo2 = 2,
sg1 = -, coef1 = vide, var1 = x,
sg0 = vide et coef0 = vide.
Une fois obtenues les valeurs des variables de sortie, il est très facile (à la notation
en exposant près) d’écrire un algorithme ou un programme (en Pascal par exemple)
qui affiche correctement le polynôme. La partie difficile, qui nécessite un expert
humain, est donc celle qui consiste à passer des valeurs de a,b et c aux valeurs de
sg2, coef2, etc. C’est évidemment la seule qui nous intéresse dans ce projet.
Question 1
Ecrire ce système expert. Les règles doivent être de la forme :
Si a = 0 Alors (sg2=vide et coef2=vide et var2=vide et expo2=vide) Tous les cas de
figure doivent être pris en compte.
Question 2
Peut-on écrire un programme qui produise une base de règles comme la
précédente avec pour seul paramètre n, le degré du polynôme?
Exercice 3 (Un système expert bancaire )
Une banque utilise un système expert pour accorder un prêt. Les variables suivantes sont
employés pour décrire les propositions associées :
– OK : le prêt est accordé
– CO : le conjoint se porte garant
– PA : le candidat au prêt peut payer ses traites
– RE : le dossier du candidat est bon
– AP : les revenus du conjoint sont élevés
– RA : le taux d’intérêt est faible
– IN : les revenus du candidat sont supérieurs à ses dépenses
– BA : le candidat n’a jamais de découvert sur son compte courant
– MB : le conjoint doit hériter
Les règles sont les suivantes (la colonne 3 sera utile plus tard) :
Question 1
Soit un moteur d’inférence fonctionnant en chaînage arrière et profondeur d’abord.
Donner son graphe ET/OU complet pour la base de faits initiale {BA, RA, MB, AP, IN} avec
OK pour but à établir.
Question 2 On associe à chaque règle le "coefficient de certitude" CA de la colonne 3. Il
est compris entre 0 et 1. Par exemple, la règle 5 s’interprète maintenant comme suit :
"Si BA et RE sont certains, Alors OK a une certitude de 0.9".
Chaque fait initial possède lui-même un coefficient de certitude CF entre 0 et 1 : un client
qui fait la demande d’un prêt est donc décrit par un vecteur de 5 valeurs entre 0 et 1.
La propagation de la certitude dans le moteur d’inférence se fait ainsi :
•
Lorsqu’une règle de certitude CA est déclenchée par des prémisses de certitudes
(CF1,...,CFn), sa conclusion prend la certitude
CA ∗ Mini=n(CFi) i=1
•
Si un fait a déjà une certitude CF1 et qu’il est inféré à nouveau avec la certitude
CF2, on lui attribue la certitude : CF1 + CF2 − CF1 ∗ CF2
•
Quel est la certitude d’attribuer un prêt au client décrit par la base de faits initiale
suivante? Pour que cette certitude vale environ 0.9, il suffirait
de faire passer à 1 un seul coefficient de certitude de cette base... lequel?
<BA, RA, MB , AP, IN> = <0.9, 0.4, 0.9, 0.2, 0.8>
Exercice 4
Méthodes d'inférences (Propositionnel)
Un expert a construit la base de règles suivantes :
− R1: A et B→C
− R2:D→A
− R3:E→F
− R4:G→H
− R5:I→F
− R6:H et F et J→B
− R7:H et K→J
− R8: G et F→K
La base initiale de faits est : (D, G, I)
1. On veut prouver le fait C en chaînage avant ; quelle est la suite des faits prouvés en
admettant que l’on parcourt la base de règles dans l’ordre dans laquelle elle est écrite et
qu’un fait établi peut être utilisé immédiatement
2. On veut prouver le fait C par chaînage arrière; quelle est la suite de règles essayées
pour prouver le fait C ? On indiquera si chaque règle essayée a été un succès ou un
échec.
Exercice 5
Tracer l'exécution du chainage avant sur l'exemple suivant :
F1: père(Jamal, Ahmed),
F2: frére(Ahmed, Fouad),
F3: frère(Jamal, Ali)
une base de connaissances qui consiste en deux règles:
R1: père(?x,?y) ∧ frère(?y,?z) ⇒ père(?x,?z)
R2: père(?x,?y) ∧ frère(?x,?z) ⇒ oncle(?z,?y) et le but de l’inférence:
oncle(?x, Fouad)
Algorithmes de recherche
Exercice 1
Soit le graphe suivant, la valeur portée sur chaque arc correspond au coût de passage
d’une extrémité de l’arc à l’autre. On souhaite calculer le plus court chemin de A à H.
On a de plus la fonction heuristique h qui estime le coût pour atteindre H depuis chaque
sommet. h est donnée par le tableau ci dessous.
1.
Appliquez l’algorithme A* avec la fonction h sur ce graphe.
2.
Donnez le plus court chemin de A à H ainsi que sa valeur que vous avez trouvés dans la
question précédente.
Exercice 2
Soit l’espace d’états, les transitions, les fonctions heuristiques h1 et h2, et le but G suivants.
(a) Faites la trace de l’algorithme A* en utilisant l’état initial s0, l’heuristique h1 et le but G.
(b) L’heuristique h1 est-elle admissible ? Justifiez.
(c) Toujours en supposant le but G, l’heuristique h2 est-elle admissible ? Justifiez
Problème de satisfaction de contraintes
Exercice 1
Une entreprise propose de construire une maison en présentant les contraintes
suivantes :
1.
La maçonnerie (M) dure 7 jours
2.
La charpente (C) ne peut se faire qu'après la maçonnerie et dure 3 jours
3.
Le toit (T)ne peut faire qu'après la charpente et dure 1 jour
4.
La plomberie (P) ne peut se faire qu'après la maçonnerie et dure 8 jours
5.
Le sol (S) ne peut se faire qu'après la maçonnerie et dure 3 jours
6.
Le fenêtrage (F) ne peut se faire qu'après le toit et dure 1 jour
7.
La façade (FA) ne peut se faire qu'après le toit et qu'après la plomberie et dure 2
jours
8.
Le jardin (J) intérieur ne peut se faire qu'après le toit et la plomberie et dure 1 jour
9.
La peinture (PE) ne peut se faire qu'après le sol et dure 2 jours
10. L'aménagement (A) intérieur ne peut se faire qu'après le fenêtrage, qu'après la
façade, qu'après le jardin et qu'après la peinture et dure 1 jour
a) Donnez une modélisation de ce problème sous forme de CSP. Donnez le graphe des
contraintes.
b) Quel est le temps minimum pour réaliser cette maison ?
c) On associe à présent des contraintes de temps aux différentes tâches. Ainsi :
1.
La maçonnerie ne peut débuter qu'entre les jours 0 et 14 → M = [0, 14]
2.
La charpente ne peut débuter qu'entre les jours 7 et 11 → C = [7, 11]
3.
Le toit ne peut débuter qu'entre les jours 12 et 14 → T = [12, 14]
4.
La plomberie ne peut débuter qu'entre les jours 12 et 19 → P = [12, 19]
5.
Le sol ne peut débuter qu'entre les jours 11 et 17 → S = [11, 17]
6.
Le fenêtrage ne peut débuter qu'entre les jours 11 et 19 → F = [11, 19]
7.
La façade ne peut débuter qu'entre les jours 17 et 22 → FA = [17, 22]
8.
Le jardin intérieur ne peut débuter qu'entre les jours 17 et 23 → J = [17, 23]
9.
La peinture ne peut débuter qu'entre les jours 8 et 18 → PE = [8, 18]
10. L'aménagement intérieur ne peut débuter qu'entre les jours 12 et 23 → A = [12, 23]
Exercice 2
Ces contraintes supplémentaires permettent-elles de réaliser la maison ? Si oui, donnez
les périodes effectives dans lesquelles vont s'effectuer ces différentes tâches ?
Coloriage des nœuds d’un graphe
• Quelle est le nombre minimal de couleur tel que deux nœuds adjacents
reçoivent des couleurs différentes?
Exercice 3
Lors des récentes élections générales en Orange-land, le Parti d’intelligence artificielle
(PIA) a fait élire 26 députés, nommés a, b, c, · · · , z, et a obtenu la majorité au parlement.
Le chef du PIA vous mandate pour former son conseil des ministres. Il y a six (6) postes
de ministre à combler : Finances, Éducation, Développement durable, Agriculture,
Sciences et technologies, et Justice. Les quatre (4) contraintes suivantes doivent être
rigoureusement respectées :
C1 : un député doit être compétent dans son ministère ;
C2 : un député ne peut obtenir plus d’un ministère ;
C3 : le conseil des ministres doit être paritaire (3 hommes et 3 femmes) ; C4 : un ministre
ne doit avoir d’antécédents criminels.
Vous avez décidé de modéliser ce problème à l’aide d’un CSP. Ce CSP a six variables
{F,E,D,A,S,J} ayant pour domaine les valeurs {a,b,c,··· ,z}.
(a) Avant même de lancer un algorithme de recherche (ex. : backtracking search), quelles
contraintes (C1 à C4) permettent de réduire le domaine de chaque variable ? Expliquez
intuitivement votre démarche.
Pour les sous-questions suivantes supposez les domaines de valeurs suivants :
(b) Un algorithme de résolution de CSP a été présenté en classe. Ce dernier est basé sur
une recherche de type backtracking search. L’algorithme consiste à assigner une variable
à la fois, et ce, jusqu’à ce que toutes les variables soient assigneés. Le choix de la
prochaine variable à assigner peut avoir un impact considérable sur les performances de
l’algorithme.
Nommez une heuristique vue en classe et présenteé dans le livre que vous pourriez
utiliser pour choisir la première variable (ministère) à assigner. Si vous ne vous rappelez
pas du nom exact, expliquez-la intuitivement. Enfin, dites quelle est la première variable à
assigner selon cette heuristique. [1 point]
(c)La contrainte C2 se traduit par un ensemble de 15 contraintes binaires C2={F ̸=E,F
̸=D,F ̸=A,···S̸ =J}? Supposons que nous venons d’assigner F = a. Suite à cette assignation,
indiquez les nouveaux domaines des variables {E,D,A,S,J} en appliquant le forwardchecking. Tenez uniquement compte des contraintes binaires C2.
(d) À titre de rappel, voici l’algorithme AC-3 (arc-consistency 3) présenté en classe et dans
le livre.
function AC-3(csp) returns the CSP, possibly with reduced domains
inputs: csp, abinaryCSP withvariables{X1, X2, ..., Xn}
local variables: queue, a queue of arcs, initially all the arcs in csp
while queue is not empty do
(Xi, Xj)←Remove-First(queue) ifRemove-Inconsistent-Values(Xi, Xj)then
for eachXk inNeighbors[Xi]do add(Xk, Xi)toqueue
functionRemove-Inconsistent-Values(Xi, Xj)returnstrueif succeeds removed← false
for eachxinDomain[Xi]do
if no value y in Domain[X j ] allows (x,y) to satisfy the constraint X i ↔ X j then
deletexfromDomain[Xi]; removed← true
return removed
Et revoici les domaines actuels des variables :
Donnez le résultat final (nouveaux domaines des variables) de l’algorithme AC-3 en
considérant uniquement les contraintes binaires C2. Les étapes intermédiaires ne sont
pas demandeés. Notez qu’aucune assignation n’a encore été faite.
(e) Expliquez intuitivement comment adapter l’algorithme backtracking search pour
considérer la contrainte C3.
Exercice 4
1. Soit π = (X,D,C,R) le CSP tel que :
– X={X1;X2;X3}
– D = {D1;D2;D3} avec D1 = D2 = D3 = {a;b;c;d}
– C = {C1 = (X1,X2);C2 = (X1,X3);C3 = (X2,X3)}
– R = {R1 = {(a,b);(a,c);(a,d);(b,a);(b,b);(d,d)};
R2 = {(b,c);(b,d);(c,a);(c,d);(d,b)};
R3 = {(a, b); (a, c); (b, d); (c, b); (c, c); (d, a); (d, c)}}
Parmi les affirmations suivantes la/les quelle(s) est/sont exacte(s) : (a) La valeur a
n’est pas arc-consistante pour la variable X1
(b) La valeur b n’est pas arc-consistante pour la variable X1
(c) La valeur c n’est pas arc-consistante pour la variable X1
(d) La valeur d n’est pas arc-consistante pour la variable X1
2.
3.
Le calcul de la consistance d’arc sur un CSP : (a) garantit de trouver une solution,
(b) garantit de trouver la meilleure solution (c) permet de restreindre l’espace de
recherche (d) est une autre façon de résoudre le CSP
La complexité en espace de l’algorithme de recherche en profondeur d’abord pour
un facteur de branchement b et une profondeur maximale finie m est en :
(a) O(bm) (b) O(b+m) (c) O(pm) (d) O(b∗m)
Exercice 5 (L’emploi du temps )
Construire un emploi du temps consiste à affecter aux étudiants et aux professeurs des
cours. Nous considérerons le cas (simplifié) d’une école où :
•
les étudiants sont répartis en trois promotions répondant aux noms de Humpich,
Stallman et Wachowski,
•
nous ne considérerons que trois enseignants, par exemple (et par hasard) AR, BM
et ES,
•
AR enseigne les mathématiques (M) aux Humpich, l’infographie (Infog) aux
Stallman, ainsi que la
CAO aux Wachowski,
•
BM, pour sa part, enseigne l’algorithmique (Algo) et le langage C (C) aux
Humpich, et le langage
Java (Java) aux Stallman ;
•
enfin, ES enseigne la logique formelle (Log) et l’intelligence artificielle (IA) aux
Stallman, et la
représentation des connaissances (KR) aux Wachowski.
L’établissement disposant de suffisamment de salles pour tout ce petit monde, nous
ne gérerons pas le problème de l’affectation des salles. De plus, on remarquera que
la construction d’un emploi du temps repose sur des ”contraintes physiques” telles
que :
•
•
•
une promotion ne peut suivre qu’un seul cours à la fois,
un enseignant ne peut enseigner qu’une matière à la fois,
les étudiants ne peuvent suivre un cours que si le professeur responsable de
ce cours est en train d’enseigner cette matière.
Le problème à résoudre est d’affecter un cours à chaque promotion et à chaque
professeur pour une même demi-journée en respectant les points ci-dessus.
1.
Proposez un CSP qui permette de représenter ce problème.
2.
Résolvez le CSP que vous avez proposé précédemment à l’aide de l’algorithme du
Forward Checking. Donnez toutes les solutions que vous avez trouvées.
Machine Learning
Exercice 1
1. Parmi les problèmes suivants, lesquels se prêtent bien à être traités par le machine
learning ?
a) Déterminer l’horaire optimal pour poster un contenu sur une page web.
b) Déterminer le chemin le plus court entre deux nœuds dans un graphe.
c) Prédire le nombre de vélos à mettre en location à chaque station d’un système de
location de vélos citadins.
d) Évaluer le prix qu’un tableau de maître pourra atteindre lors d’une vente aux enchères.
e) Débruiter un signal radio.
3. Jamal dispose de 10000 articles de journaux qu’il souhaite classer par leur thématique.
Doit-il utiliser un algorithme supervisé ou non supervisé ?
4. Sara veut examiner ses spams pour déterminer s’il existe des sous-types de spams.
Quel type d’algorithme d’apprentissage doit-elle utiliser ?
5. Tom Mitchell définit le machine learning comme suit : « Un programme informatique est
dit apprendre de l’expérience E pour la tâche T et une mesure de performance P si sa
performance sur T, comme mesurée par P, s’améliore avec l’expérience E ». Fred écrit un
programme qui utilise des données bancaires dans le but de détecter la fraude bancaire.
Que sont E, T, et P ?
Exercice 2 (Algorithme K-plus proche voisines)
Supposons que l’on a un problème de classification qui consiste à déterminer la classe
d’appartenance de nouvelles instances Xi. Le domaine de valeurs des classes possibles
est : {1, 2,3}. Selon la base de connaissance suivante, déterminez la classe de l’instance
X6, dont les valeurs pour les attributs A1 à A5 (numériques) sont < 3, 12, 4, 7, 8 >, à l’aide
de l’algorithme des k-voisins les plus proches (K-NN) k=3. Montrez tous les calculs.
Exercice 3
1. Décrivez comment un nouvel exemple est classifié dans un arbre de décision entraîné.
2. On veut apprendre un modèle permettant de déterminer si un client est intéressé à
acheter un certain produit (Oui ou Non), en fonction de son sexe (Homme ou Femme),
son âge (< 18, 18 − 35 ou > 35), son état civil (Célibataire ou Marié), et son revenu (Faible,
Moyen ou élevé). Soit l’échantillon ci-contre d’exemples d’entraînement. On souhaite
construire l’arbre de décision résultant de ces exemples en utilisant l’algorithme ID3. On
suppose qu’on arrête la subdivision uniquement lorsque les nœuds sont purs (entropie de
0). L’algorithme ID3 construit en choisissant pour chaque nœud, un test sur l’attribut
menant au meilleur gain d’entropie :
où |S| est le nombre d’exemples dans S, et Sv est
un nœud contenant les exemples de S dont la
valeur pour l’attribut A vaut v.
Rappelons que l’entropie d’un nœud S vaut :
Ni étant le nombre d’exemples de S ayant la classe Ci.
calculer les gains d’entropie à la racine qu’il attribut utiliserez vous pour séparer les
exemples. Donner une première figure.
3) Trouver l’arbre de décision complet, et prédire la classe du client <Homme, 19,
célibataire, moyenne>
Exercice 4 (Réseaux de neurones artificiels )
Soit le réseau de neurones suivant et les donneés d’entraînement suivantes.
Fonction d’activation : y = sign(∑4i=1(wi · xi))
(a) Simulez une itération complète de l’algorithme d’apprentissage du perceptron en
utilisant les donneés d’entraînement ci-haut. Le taux d’apprentissage est fixé à 0.3 et les
poids initiaux sont : w1 = 0, w2 = 0, w3 = 0 et w4 = 0.
(b) Le neurone artificiel ci-haut sera-t-il capable d’apprendre correctement le jeu de
donneés d’entraînement fourni ? Justifiez votre réponse.
(c) Un réseau de neurones artificiels pourrait-il être utile pour résoudre le TP2
(Connect5) ? Pourquoi ?
Logique des prédicats (Corrigés)
Solution Exercice 1
Solution Exercice 2
1a. setrouve(f rancois, maisonFrancois) ∨ setrouve(f rancois, maisonJ ulie)
1b. ¬setrouve(f rancois, maisonFrancois) → setrouve(f rancois, maisonJ ulie)
2a. inf erieur(revenu, 18000) ∧ ¬inf erieur(age, 70) → ef f ectuer(deduction, f raisMedicaux)
2b. inf erieur(age, 70) ∨ inf erieur(revenu, 18000) → ¬ef f ectuer(deduction, f raisMedicaux)
3a. reussir(jean, exam) ∨ ¬f ort(jean, logique)
3b. ¬reussir(jean, exam) → ¬f ort(jean, logique)
3c. ¬f ort(jean, logique) → ¬reussir(jean, exam)
4a. ¬f ort(jean, logique) → ¬f ort(marie, logique) ∧ ¬reussir(jean, exam) ∧ ¬reussir(marie,
4b. f ort(jean, logique) ∧ f ort(marie, logique) → reussir(jean, exam) ∧ reussir(marie, exam)
5a. est(chargeur, branché) → est(électricité, consommée) est(électricité, consommée) → est(chaleur,
dissipée) est(chaleur, dissipée) → est(banquise, f ondue) est(banquise, f ondue) → est(tempete,
bretagne)
5b. est(chargeur, branché) → est(tempete, bretagne)
Solution Exercice 2
1. p sinon q :
q→p
2. p à moins que q :
p→q
3. p autrement q :
q→p
4. Il suffit que p pour q : p → q
5. Il est nécessaire que p pour q : q → p
6. p seulement si q :
q <—> p
7. p si q :
p→q
Solution Exercice 3
1 : ∀x, ∃y, est(x, chien) ∧ est(y, f acteur) → aMordu(x, y)
2 : ∀x, est(x, etudiant) → aAssisté(x, coursI A)
3 : ∀x, ∀y, est(x, etudiant) ∧ est(y, boite) → aT esté(x, y)
Systèmes Expert (Correction d’exercice)
Solution Exercice 1
1. Bruno croit que la ligne de tram T1 est en travaux.
◊(bruno) etat(tramT 1, enT ravaux)
En ajoutant une double négation :
¬¬(◊(bruno)etat(tramT1,enTravaux))
¬(
(bruno)¬etat(tramT 1, enT ravaux))
ce qui donne ’On peut peut pas dire que Bruno sait que la ligne de tram T1 n’est pas en
travaux.’
2. Mélanie sait que toutes les lignes de tram fonctionnent.
(melanie)∀x, est(x, ligneT ram) → etat(x, f onctionne) Que l’on peut traduire en :
(melanie)∀x, ¬est(x, ligneT ram) ∨ etat(x, f onctionne) En ajoutant une double négation :
¬¬( (melanie)∀x, ¬est(x, ligneT ram) ∨ etat(x, f onctionne)
¬ (◊(melanie)∃x, est(x, ligneT ram) ∧ ¬etat(x, f onctionne)
ce qui donne ’On peut peut pas dire que Mélanie croit qu’il existe une ligne de tram qui ne
fonctionne pas.
3. Carole croit que tous les voyageurs savent que la ligne de tram T1 est en travaux
◊(carole)∀x,est(x,voyageur) →
◊(carole)∀x, ¬est(x, voyageur) ∨
(x)etat(tramT1,enTravaux) Que l’on peut traduire en :
(x)etat(tramT 1, enT ravaux) En ajoutant une double
négation :
¬¬(◊(carole)∀x, ¬est(x, voyageur) ∨
(x)etat(tramT 1, enT ravaux))
¬( (carole)∃x, est(x, voyageur) ∧ ◊(x)¬etat(tramT 1, enT ravaux))
ce qui donne ’On peut peut pas dire que Carole sait qu’il existe un voyageur qui croit que
la ligne de Tram T1 n’est pas en travaux’
Solution Exercice 2
Ex-2.1
EX-2.2
EX-2.3
EX-2.4
Solution Exercice 2
Question 1
1. Si a=0 Alors (sg2 =Vide,coef2 =Vide,var2 =Vide,expo2 =Vide)
2. Si a=1 Alors (sg2 =Vide,coef2 =Vide,var2 =x,expo2 =2)
3. Si a>1 Alors (sg2 =Vide,coef2 =a,var2 =x,expo2 =2)
4. Si a=−1Alors (sg2 =−,coef2 =Vide,var2 =x,expo2 =2)
5. Si a< −1 Alors (sg2 =−,coef2 =|a|,var2 =x,expo2 =2)
6. Si b=0 Alors (sg1 =Vide,coef1 =Vide,var1 =Vide)
7. Si (b=1eta=0) Alors(sg1 =Vide,coef1 =Vide,var1 =x) 8. Si(b=1eta̸ =0)Alors(sg1 =+,coef1 =Vide,var1 =x)
9. Si (b>1eta=0) Alors (sg1 =Vide,coef1 =b,var1 =x) 10. Si(b>1eta̸ =0)Alors(sg1 =+,coef1 =b,var1 =x)
11. Si b=−1Alors(sg1 =−,coef1 =Vide,var1 =x)
12. Si b<−1 Alors (sg1 =−,coef1 =|b|,var1 =x)
13. Si (c=0 et |a|+|b|=0) Alors(sg0 =Vide,coef0 =0)
14. Si (c=0 et |a|+|b|≠ 0)Alors(sg0 =Vide,coef0 =Vide) 15. Si(c>0et|a|+|b|=0)Alors(sg0 =Vide,coef0 =c)
16. Si (c>0 et |a|+|b|≠ 0)Alors(sg0 =+,coef0 =c)
17. Si c<0 Alors (sg0 =−,coef0 =|c|)
Question 2 Oui, par exemple en écrivant d’abord le terme de degré 0, puis celui de degré 1, ainsi de suite
jusqu’à n. Chacun d’entre eux ne dépend que d’informations disponibles.
Solution Exercice 4
Le nœud du haut est étiqueté OK. Valeur : 0.288 + 0.32 − 0.288 × 0.32 = 0.516
Il a deux fils OU : étiquetés par OK de valeurs
min(0.9,0.32) × 0.9 = 0.288 et min(0.76,0.64,0.32) × 1 = 0.32
Celui de gauche a deux fils ET: BA et RE, de valeurs 0.9 et 0.4×0.8 =
0.32 (cette dernière valeur venant du fils de RE, qui est RA, de valeur 0.4. Celui de droite a trois fils ET :
1) CO (0.76) qui a deux fils OU MB et AP.
2) PA (0.64) qui a un fils IN (0.8).
3) RE (0.32) qui a un fils RA (0.4) Faire passer la valeur de RA à 1
Solution Exercice 5
1) trace d’execution du chainage avant
2) Trace d’execution du chainage arrière
3) Chainage avant avec raisonnement avec variables.
Algorithme de recherches (Correction d’exercices)
Corrigé de l’exercice. 1.
On représente le déroulement de l’algorithme sous forme de tableau. Chaque ligne du
tableau correspond à un tour de boucle de l’algorithme. La première colonne indique le
numéro de tour de l’algorithme, dans la deuxième colonne on indique le sommet choisi.
Dans la troisième colonne l’ensemble des ouverts de l’étape courante est représenté,
chaque état est noté sous le format @ sommet(g(x), f (x) = g(x) + h(x)) A. La dernière
colonne contient l’ensemble des fermés de l’étape courante.
•
A l’initialisation, on met dans Ouverts, le sommet de départ ;
•
A chaque étape on choisit dans Ouverts un sommet s tel que f(s) = g(s) + h(s) soit minimal.
Pour tous les voisins v de s, si v n’appartient ni à Ouverts ni à Fermés, on ajoute v à
Ouverts. Sinon on remet v dans Ouverts avec une nouvelle valeur de g(v) seulement si g(s)
+cout(s− > v) est inférieur à la valeur de g(v) mémorisée.
•
A l’étape 3, après sélection du sommet B, la valeur de g(D) dans Ouverts passe de 9 à 7 ;
•
A l’étape 4, après sélection du sommet E, la valeur de g(C) passe de 5 à 4 et C passe des
Fermés aux Ouverts ;
•
A l’étape 5, les valeur de g de F et G dans Ouverts passent respectivement de 9 à 8 et de 14 à
13.
2. le plus court chemin de A à H est A pour un coût de 10.
Corrigé de l’exercice. 2.
(a) Trace d’execution de A*
(b) Oui, l’heuristique h1 est admissible. Elle ne surestime jamais le coût restants.
h∗(s0) = 10, h∗(s1) = 9, h∗(s2) = 5, h∗(s3) = 4, h∗(s4) = 7, h∗(s5) = 7, h∗(s6) = 0.
(c) Non, l’heuristique h2 n’est admissible, puisque la fonction heuristique h2 surestime le coût
restant dans les états {s2,s4}.
Problèmes de satisfaction de contraintes (Correction d’exercice)
Corrigé de l’exercice. 1.
1. Le Modele CSP:
•
X = {M, C, T, P, S, F, FA, J, PE, A}
•
Dom(x)=[0, +∞[ ∀ x ∈ X
•
C={C≥M+7,T ≥C+3,P ≥M+7,S ≥ M+7,F ≥ T+1,FA ≥T+1,FA ≥ P+8,J ≥ T+1, J ≥ P+8,PE
≥ S+3,A ≥F+1,A ≥ FA+2,A ≥ J+1,A ≥ PE+2}
2. le temps minimum pour réaliser cette maison: 18 jours
3. oui, en rendant les domaines consistants on obtient
M = [0, 4], C = [7, 11], T = [12, 14], P = [12, 13], S = [11, 15], F = [13, 19], FA = [20, 21], J =
[20, 22], PE = [14, 18], A = [22, 23]
soit 23 jours pour faire la maison au plus tôt
Corrigé de l’exercice. 2.
Modèle complet :
Variables : A, B, C, D, E, F
Domaines : {rouge, bleu, vert, jaune, blueciel, violet}
Contraintes :
Corrigé de l’exercice. 3.
(a) La contrainte C1 peut être utiliseé pour filtrer le domaine des variables en gardant
uniquement les députés compétents pour chaque ministère.
La contrainte C4 peut aussi être utiliseé pour filtrer le domaine des variables en éliminant
les députés ayant des antécé- dents criminels
Pour les sous-questions suivantes supposez les domaines de valeurs suivants :
(b) L’heuristique Minimum Remaining Values (MRV) consiste à choisir la variable ayant le
moins de valeurs possibles. Dans le cas présent, MRV choisi la variable J.
Attention : MRV ne choisit pas la variable la plus contrainte. La variable la plus contrainte
est la variable ayant le plus grand nombre de contraintes binaires avec d’autres variables.
Cette deuxième heuristique peut être utiliseé dans le cas où plusieurs minimisent MRV.
(c) en tenant compte seulement de la contrainte C2:
(d)
(e) Explication possible:
Dans la fonction récursive implémentant l’algorithme backtracking search, on ajoute deux
compteurs nbhommes et nbfemmes. Dès qu’un de ces compteurs dépasse 3, on fait un
retour en arrière (backtracking). Ou mieux : dès qu’un compteur atteint 3, on élimine le
sexe saturé dans le domaine des variables restantes. Remarque : alterner l’assignation
homme-femme peut ne pas fonctionner, ou au mieux, ne pas être efficace.
Corrigé de l’exercice. 4.
1. (a) et (c)
2. (c)
3. (d)
Corrigé de l’exercice. 5.
On choisit de représenter chaque enseignant et chaque promotion par une variable, les
valeurs possibles
étant les cours donné par l’enseignant ou reçu par la promotion. Une solution de ce CSP
sera donc une valeur de cours pour chaque enseignant et chaque promotion.
1.
On construit le CSP π = (X,D,C,R) avec :
– X={H;S;W;AR;BM;ES}
– D = {DH;DS;DW;DAR;DBM;DES} avec DH = {M;Algo;C} DS = {Infog;Java;Log;IA}
DW = {CAO;KR} DAR = {M;Infog;CAO} DBM = {Algo;C;Java} DES = {Log;IA;KR}
– C = {C1 = (H;AR);C2 = (H;BM);C3 = (S;AR);C4 = (S;BM);C5 = (S;ES);
C6 = (W;AR);C7 = (W;ES)}
– R = {R1;R2;R3;R4;R5;R6;R7} avec
– R1 ={(M,M);(Algo,Infog);(Algo,CAO);(C,Infog);(C,CAO)}
– R2 ={(M,Java);(Algo,Algo);(C,C)}
– R3 ={(Infog,Infog);(Java,M);(Java,CAO);(Log,M);(Log,CAO);(IA,M);(IA,CAO)}
– R4 ={(Infog,Algo);(Infog,C);(Java,Java);(Log,Algo);(Log,C);(IA,Algo);(IA,C)}
– R5 ={(Infog,KR);(Java,KR);(Log,Log);(IA,IA)}
– R6 ={(CAO,CAO);(KR,M);(KR,Infog)}
– R7 ={(CAO,Log);(CAO,IA);(KR,KR)}
2.
Résolution
3. On a donc 7 solutions, représentées dans le tableau ci-dessous :
Machine Learning (Correction d’exercices)
Corrigé de l’exercice. 1.
1. Expliquez la différence entre le problème de la classification et celui de la régression, Donnez un
exemple pour chacun? à quelle catégorie la régression logistique appartient?
le problème de la classification consiste à prédire l’étiquette d’une classe parmi une liste
discrete de classes, tandis que la régression consiste à prédire une valeur réelle (dans |R ou |
Rn) en utilisant des processus d’apprentissage artificielle. la régression logistique appartient
à la catégorie de classification.
2. Donnez un exemple concret d’apprentissage non-supervisé, pour un domaine de votre choix.
- Regroupement de matériaux (bois par exemple) en plusieurs classe (de fabrication) selon
des caractéristiques.
- Regroupement de clients selon des similarités de comportement d’achat.
3. Décrivez brièvement la méthode de classification des k-plus-proches-voisins.
Dans l’approche de classification des k-plus-proche-voisins, on détermine la classe d’un
nouvel exemple x à partir des k exemples d’entraînement les plus similaires à x. Cette
approche se résume aux étapes suivantes :
(a) Calculer la distance entre x et chacun des exemples d’entraînement xt ;
(b) Conserver les k exemples xt les plus proches de x ;
(c) Assigner à x la classe la plus fréquente chez les exemples conservés (vote des voisins).
En cas d’égalité considérez la distance dans le vote, de manière à ce que la classe d’un
exemple près de x ait une plus grande incidence que celle d’un exemple éloigné.
4. Dans l’algorithme des k-plus-proches-voisins pour la classification binaire, comment peut-on
s’assurer qu’un exemple soit classifié dans une seule classe ?
Dans la classification binaire, on peut éviter les égalités (même nombre de voisins dans
chacune des deux classes) en choisissant un nombre de voisins k impair. Dans le cas général
(classification multi-classe), on peut briser les cas d’égalité en considérant la distance des
voisins, tel que décrit dans la réponse précédente.
5. Comment peut-on choisir la valeur du paramètre k dans une méthode de classification par les kplus-proches-voisins ? Soyez précis.
Pour choisir la valeur de k, comme pour tout méta-paramètre d’une approche de
classification ou de
régression, on utilise la validation croisée. C’est-a`-dire, on sépare les données en exemples
d’entraînement et de validation (on se garde également des exemples de test pour
l’évaluation finale), et on teste pour chaque valeur de k l’erreur de classification obtenue sur
l’ensemble de validation. On choisit ensuite la valeur de k ayant donné la plus petite erreur
de validation.
Corrigé de l’exercice. 2.
d(X6, X1) = sqrt( (3-3)^2 + (12-5)^2 + (4-4)^2 + (7-6)^2 + (8-1)^2) =9.95 d(X6, X2) = 11.18
d(X6, X3) = 11.62
d(X6, X4) = 11.92
d(X6, X5) = 8.23
les 3 plus proches voisins sont 2, 3 et 4 donc la classe de X6 est 3
Corrigé de l’exercice. 3.
On considère un ensemble de points 1D D = {−5, −3.5, −2.75, −0.5, 0, 0.2, 0.5, 2, 3, 5, 7}.
On veut réaliser le clustering de ces points en utilisant l’algorithme des K-means à partir
des initialisations suivantes μ1 = −1, μ2 = −0.25, μ3 = 1. Illustrer sur un graphique les
étapes de l’algorithme.
Corrigé de l’exercice. 4.
1) voir les notes de cours.
2)
Le plus gros gain provient de l’attribut Age et on choisit celui-ci pour séparer les exemples
3) Les nœuds Age < 18 et Age > 35 sont purs et nous n’avons pas besoin de les subdiviser. Par
ailleurs, pour le nœud Age = 18 − 15, nous testons le gain d’entropie pour les attributs restants : On
choisit donc l’attribut Revenu pour subdiviser les exemples :
Encore une fois, les nœuds Revenu = Faible et Revenu = Elevé sont purs, il ne reste que le nœud
Revenu = Moyen à subdiviser :
L’attribut Sexe donne le meilleur gain d’entropie et on choisit celui-ci pour séparer les exemples.
Enfin, comme les deux sous-nœud résultant ont une entropie de 0, on arrête la construction et on
obtient l’arbre suivant :
Corrigé de l’exercice. 5.
(a ) Ici, on suppose que sign(0) = 0. Les supposions comme sign(0) = +1 ou sign(0) = −1 sont
également accepteés.
Itération #1 / Échantillon #1 (1, 2, 5) → +1 :
— Sortie : sign(0·1+0·0+0·4+0·1) = 0
— Erreur : (+1)−(0) = +1
— Correction : ∆w = 0.3 · +1 · (1,2,5,1) =
(0.3, 0.6, 1.5, 0.3)
— Poids : (0.3,0.6,1.5,0.3)
Itération #1 / Échantillon #2 (1, 4, 4) → +1 :
— Sortie : sign(0.3·1+0.6·4+1.5·4+0.3·1) = 1 — Erreur : (+1)−(+1) = 0
— Correction : ∆w = 0.3·0·(1,4,4,1) = (0,0,0,0) — Poids : (0.3,0.6,1.5,0.3)
Itération #1 / Échantillon #3 (1, 2, 2) → −1 :
— Sortie:sign(0.3·1+0.6·1.5+0.3·2+0.3·1)=1
— Erreur:(−1)−(+1)=−2
— Correction : ∆w = 0.3 · −2 · (1,2,2,1) =
(−0.6, −1.2, −1.2, −0.6)
— Poids : (−0.3,−0.6,0.3,−0.3)
Itération #1 / Échantillon #4 (1, 8, 1) → −1 :
— Sortie : sign(−0.3·1+−0.6·8+0.3·1+−0.3·
1)=−1
— Erreur : (−1)−(−1) = 0
— Correction : ∆w = 0.2·0·(1,0,2,1) = (0,0,0,0)
— Poids : (−0.3,−0.6,0.3,−0.3)
(b) Oui. Les donneés sont linéairement séparables.
[Mettre un graphique ici]
(c ) Oui.
La technique traditionnelle (ou naturelle) pour décider d’une action dans les jeux comme Connect5
est l’algorithme minimax (avec ou sans élagage alpha-beta). Pour beaucoup de jeux, dont Connect5,
l’arbre de recherche du jeu a une taille beaucoup trop grande pour être exploré de façon exhaustive.
C’est ainsi qu’il faut prendre des décision imparfaite en limitant la profondeur de recherche dans
l’arbre et en utilisant une fonction d’évaluation pour calculer une approximation de la valeur
minimax des noeuds intermédiaires dans l’arbre. Écrire une bonne fonction d’évaluation est un défi.
Un réseau de neurones artificiel peut être utile pour implémenter une telle fonction d’évaluation.
L’algorithme AlphaGo de Google utilise d’ailleurs cette stratégie pour jouer au jeu de Go. La même
technique pourrait être utile pour Connect5.
Téléchargement