Cours 1 · 2026–2027

Les fondements de l'IA

Représenter le monde, raisonner dessus, agir — puis apprendre.

John Samuel · CPE Lyon
Intelligence artificielle et Deep Learning
Logique · Connaissances · Agents · Apprentissage

∀x (Eau(x) ∧ Sable(x))
⇒ Mer(x)une règle, un solveur, une décision — le fil du cours

Fil rougeUn même exemple — reconnaître une image de mer — traverse logique, solveur et agents.

notes

Intelligence artificielle et Deep Learning — Introduction à l'Intelligence Artificielle (IA)

John Samuel, CPE Lyon · Année 2026-2027 · Courriel : john.samuel@cpe.fr

Enseignant-chercheur, Conception logicielle et Big Data. Recherche : représentation de connaissances, web sémantique, services web, intégration de données, entrepôts de données, systèmes distribués, SIG.

Creative Commons License Ce cours est sous licence CC BY-SA 4.0.

Touches : ← → pour changer de diapositive, n pour les notes, r pour le mode lecture (toutes les diapositives et leurs notes).

Organisation

Un cours en trois temps, un projet évalué

16hCours

Chaque séance mêle cours et travaux pratiques.

24hTravaux pratiques

3 TP pour pratiquer et préparer le projet, sans notation.

8hProjet

Seul le projet est évalué. Les dates limites de soumission sont précisées sur e-campus.

À retenir Le projet constitue 100 % de l’évaluation du cours.

notes

Le projet constitue 100 % de l’évaluation du cours.

Objectifs

Le deep learning est un sous-ensemble de l'apprentissage machine

Intelligence artificielle logique, connaissances, agents, recherche, planification Apprentissage machine apprendre une fonction à partir de données Apprentissage profond réseaux de neurones à plusieurs couches f(x) = W₃σ(W₂σ(W₁x))
Cours 1
Introduction à l'IA — logique, connaissances, agents.
Cours 2–3
Apprentissage machine et profond — du perceptron aux réseaux convolutionnels et récurrents.
Cours 4–5
Applications — langage naturel, vision, et annexes historiques.

ObjectifSavoir situer chaque méthode : symbolique, statistique ou neuronale — et choisir la bonne.

notes
  • Objectifs du cours : introduction à l'Intelligence Artificielle (IA), apprentissage machine, apprentissage profond, applications de l'IA.
  • La figure reprend le schéma « position du deep learning » : l'apprentissage profond est un sous-ensemble de l'apprentissage machine, lui-même un sous-ensemble de l'intelligence artificielle.

Plan du cours 1

Cinq briques, de la logique à l'apprentissage

1.1 Logique et raisonnement

Propositions, prédicats, modalités ; un solveur (Z3) qui décide.

∧ ∨ ¬ ∀ ∃ □ ◇
1.2 Représentation des connaissances

Types de connaissances, faits, ontologies.

classes · relations
1.3 Agents intelligents

La boucle perception – raisonnement – action et ses variantes.

percepts → actions
1.4 Apprentissage machine

Supervisé, non supervisé, semi-supervisé.

étiquettes
1.5 Apprentissage profond

Pourquoi plusieurs couches.

XOR · couches
symboliqueagentsstatistique

LectureDe gauche à droite, on passe de règles écrites à la main à des règles apprises des données.

notes
  • 1. Les fondements de l'IA : 1.1 Logique et raisonnement ; 1.2 Représentation des connaissances ; 1.3 Agents intelligents ; 1.4 Apprentissage machine ; 1.5 Apprentissage profond.

1.1 · Logique et raisonnement

Trois logiques, chacune étend la précédente

Logique modale + nécessité □, possibilité ◇, croyance Logique du premier ordre + objets, prédicats, fonctions, ∀ ∃ Logique propositionnelle propositions P, Q · connecteurs ∧ ∨ ¬ ⇒ (P ∧ Q) ⇒ R
P ∧ Q
Propositionnelle — des faits vrais ou faux, combinés par des connecteurs.
∀x Mer(x)
Premier ordre — des objets, des relations entre eux, des quantificateurs.
□ ◇
Modale — ce qui est nécessaire, possible, ou cru par un agent.
⊢
Raisonnement automatisé — un programme déduit de nouvelles informations des connaissances existantes.

RègleChoisir la logique la moins expressive qui suffit : plus expressive = plus coûteuse à décider.

notes
  • Logique propositionnelle : système formel qui permet de représenter et d'évaluer des propositions en utilisant des connecteurs logiques (comme ET, OU, NON) pour déterminer leur vérité.
  • Logique du premier ordre (logique des prédicats) : extension de la logique propositionnelle qui permet de représenter des propositions plus complexes en introduisant des variables, des constantes, des fonctions et des prédicats.
  • Logique modale : extension de la logique qui permet de représenter des notions de possibilité, de nécessité, de croyance et d'autres modalités.
  • Raisonnement automatisé : utilisation de systèmes informatiques pour effectuer des inférences logiques et déduire de nouvelles informations à partir de connaissances existantes.
  • Problèmes de décision et résolution de problèmes : situations où une décision doit être prise parmi plusieurs options possibles, généralement sous contraintes. La résolution de problèmes implique la recherche d'une solution en utilisant des méthodes algorithmiques ou heuristiques pour atteindre un objectif spécifique.

1.1 · Logique et raisonnement

Raisonner, c'est déduire ; décider, c'est choisir sous contraintes

raisonnement automatisé

Déduire du nouveau

Le raisonnement automatisé fait référence à l'utilisation de systèmes informatiques pour effectuer des inférences logiques et déduire de nouvelles informations à partir de connaissances existantes.

Exemple : de ∀x (Eau(x) ∧ Sable(x) ⇒ Mer(x)) et Eau(img1), Sable(img1), déduire Mer(img1).

problèmes de décision

Choisir parmi des options

Les problèmes de décision se réfèrent à des situations où une décision doit être prise parmi plusieurs options possibles, généralement sous contraintes.

La résolution de problèmes implique la recherche d'une solution à un problème donné en utilisant des méthodes algorithmiques ou heuristiques pour atteindre un objectif spécifique.

LienUn solveur comme Z3 (plus loin) fait les deux : il déduit, et il décide si un ensemble de contraintes admet une solution.

notes
  • Raisonnement automatisé : utilisation de systèmes informatiques pour effectuer des inférences logiques et déduire de nouvelles informations à partir de connaissances existantes.
  • Problèmes de décision et résolution de problèmes : situations où une décision doit être prise parmi plusieurs options possibles, généralement sous contraintes ; la résolution de problèmes cherche une solution par des méthodes algorithmiques ou heuristiques pour atteindre un objectif spécifique.

1.1 · Logique propositionnelle

Six connecteurs suffisent pour composer des propositions

PQ¬PnonP ∧ QetP ∨ QouP ⊕ Qou exclusifP ⇒ QimplicationP ⇔ Qéquivalence
VVFVVFVV
VFFFVVFF
FVVFVVVF
FFVFFFVV

PiègeP ⇒ Q est vrai dès que P est faux : une implication ne dit rien quand sa prémisse ne tient pas.

notes
  • Les propositions sont des déclarations qui peuvent être vraies (V) ou fausses (F). Avec deux propositions simples P, Q, les connecteurs logiques construisent des propositions plus complexes.
  • NON (¬) : la négation inverse la valeur de vérité. Si P est vrai, NON P est faux, et inversement.
  • ET (∧) : vrai seulement si toutes les propositions connectées sont vraies.
  • OU (∨) : vrai si au moins l'une des propositions est vraie ; faux si les deux sont fausses.
  • XOR (⊕) : vrai si une seule des propositions est vraie, mais pas les deux.
  • Implication (⇒) : la vérité de la première proposition entraîne la vérité de la seconde. Si P est faux, P ⇒ Q est toujours vrai, car il ne dit rien sur Q.
  • Équivalence (⇔) : deux propositions ont la même valeur de vérité dans toutes les situations.

1.1 · Logique propositionnelle

Chaque connecteur tient en une phrase

¬NON — négationinverse la valeur de vérité d'une proposition. Si P est vrai, alors ¬P est faux, et si P est faux, alors ¬P est vrai. ∧ET — ET logiquevrai seulement si toutes les propositions connectées sont vraies. Si P est vrai et Q est vrai, alors P ∧ Q est vrai ; sinon, il est faux. ∨OU — OU logiquevrai si au moins l'une des propositions est vraie. Si P est vrai ou Q est vrai (ou les deux), P ∨ Q est vrai ; si les deux sont faux, il est faux. ⊕XOR — OU exclusifvrai si une seule des propositions est vraie, mais pas les deux. Si P et Q sont toutes deux vraies, ou toutes deux fausses, P ⊕ Q est faux. ⇒Implicationla vérité de la première proposition entraîne la vérité de la seconde. Si P est faux, P ⇒ Q est toujours vrai, car il ne dit rien sur Q. ⇔Équivalenceles deux propositions ont la même valeur de vérité dans toutes les situations : P et Q vrais, ou P et Q faux.

À retenirLes propositions sont des déclarations vraies (V) ou fausses (F) ; les connecteurs en construisent de plus complexes.

notes
  • Les propositions dans la logique propositionnelle sont des déclarations qui peuvent être vraies (V) ou fausses (F). Supposons que nous ayons deux propositions simples : P, Q. Nous pouvons utiliser des connecteurs logiques pour créer des propositions plus complexes à partir de ces propositions simples.

1.1 · Logique propositionnelle · exemple

Deux photos, une question : est-ce la mer ?

Goéland sur un rocher devant la mer, Marseille
P eau R oiseaux marins Q sable S bateaux
Mouette sur la plage de Venice Beach
P eau R oiseaux marins Q sable S bateaux
P présence d'eauQ présence de sableR présence d'oiseaux marinsS présence de bateaux

Étape 1Nommer les faits observables : ici P et R sont vrais, Q et S faux — pour les deux photos.

notes
  • Supposons que nous ayons quatre propositions simples : P, Q, R et S. P : présence de l'eau. Q : présence de sable. R : présence d'oiseaux marins. S : présence de bateaux.
  • Photos : Sea gull, Marseille et Sea Gull, Venice Beach, Wikimedia Commons.

1.1 · Logique propositionnelle · exemple

Quatre propositions suffisent à décrire une plage

Mer ⇔ (P ∧ Q) ∨ (P ∧ R) ∨ (P ∧ S)l'eau est nécessaire ; sable, oiseaux ou bateaux suffisent à confirmer

P seulpossible, pas concluant P ∧ (Q ∨ R ∨ S)on conclut « mer » ¬Pjamais la mer, quels que soient Q, R, S

Étape 2Une règle propositionnelle ne parle que de faits fixés : elle ne sait rien de « cette image » en particulier.

notes
  • Avec ces propositions, nous pouvons définir des règles pour déterminer si une image représente la mer : si l'eau est présente (P), il est possible que l'image soit celle de la mer ; le sable (Q) renforce la probabilité d'une plage de mer ; des oiseaux marins (R) renforcent également la probabilité d'une scène liée à la mer ; des bateaux (S) suggèrent une forte probabilité de scène maritime.
  • Nous pouvons utiliser des opérateurs logiques pour combiner ces propositions : Image de la mer : (P ET Q) OU (P ET R) OU (P ET S).

1.1 · Logique propositionnelle · Python

En Python, la règle devient un objet que l'on évalue

from propositional_logic import *
# les propositions
P = Proposition("L'eau est présente")
Q = Proposition("Il y a du sable")
R = Proposition("Des oiseaux marins sont présents")
S = Proposition("Des bateaux sont visibles")
# la règle
image_de_la_mer = Or(Or(And(P, Q), And(P, R)), And(P, S))
# une photo : eau et sable, ni oiseaux ni bateaux
P.value, Q.value, R.value, S.value = True, True, False, False
print(image_de_la_mer.evaluate())
sortieTrue
And(P, Q)True
And(P, R)False
And(P, S)False
Or(…)True

La règle est un arbre d'objets ; evaluate() le parcourt avec les valeurs courantes.

Étape 3Changer les valeurs, pas la règle : la connaissance (la règle) est séparée des faits (les valeurs).

notes
  • from propositional_logic import *
    # définir les propositions
    P = Proposition("L'eau est présente")
    Q = Proposition("Il y a du sable")
    R = Proposition("Des oiseaux marins sont présents")
    S = Proposition("Des bateaux sont visibles")
    # définir les propositions composées
    rule1 = And(P, Q)
    rule2 = And(P, R)
    rule3 = And(P, S)
    # définir la proposition principale
    image_de_la_mer = Or(Or(rule1, rule2), rule3)
    # évaluer des propositions
    P.value = True
    Q.value = True
    R.value = False
    S.value = False
    print(image_de_la_mer.evaluate()) # Sortie: True

1.1 · Logique propositionnelle · Python

La même grammaire décrit une ville

from propositional_logic import *
# Définir les propositions
A = Proposition("Des immeubles sont présents")
B = Proposition("Des voitures sont présentes")
C = Proposition("Des piétons sont présents")
D = Proposition("Des feux de circulation sont visibles")
# Définir les règles
ville = Or(Or(And(A, B), And(A, C)), And(A, D))
# Définir les valeurs des propositions
A.value = True
B.value = True
C.value = False
D.value = False
# Évaluer la valeur de la proposition "ville"
print(ville.evaluate())
sortieTrue

Des immeubles (A) sont nécessaires ; voitures, piétons ou feux confirment. Le patron est celui de la mer : (A ∧ B) ∨ (A ∧ C) ∨ (A ∧ D).

À retenirMême structure de règle, autre vocabulaire : la logique ne sait pas ce qu'est une ville, seulement comment combiner des faits.

notes
  • Ville : A immeubles, B voitures, C piétons, D feux de circulation ; ville = Or(Or(And(A, B), And(A, C)), And(A, D)). Avec A et B vrais, C et D faux, ville.evaluate() renvoie True.

1.1 · Logique propositionnelle · Python

Onze propositions pour recommander une image

A l'utilisateur aime l'image actuelle B l'image actuelle est un portrait C l'image actuelle est une œuvre abstraite D l'utilisateur a aimé une œuvre similaire par le passé E l'image est en noir et blanc F l'image est en couleur G l'utilisateur préfère les œuvres d'art réalistes H l'image est une peinture réaliste I l'utilisateur a aimé les œuvres de cet artiste dans le passé J l'utilisateur n'aime pas les images très saturées K l'image a une saturation élevée
from propositional_logic import *
A = Proposition("L'utilisateur aime l'image actuelle")
B = Proposition("L'image actuelle est un portrait")
C = Proposition("L'image actuelle est une œuvre abstraite")
# … D à K sur le même modèle

Étape 1Un système de recommandation commence par nommer ce qu'il sait de l'utilisateur et de l'image.

notes
  • from propositional_logic import *
    # Définir les propositions
    A = Proposition("L'utilisateur aime l'image actuelle")
    B = Proposition("L'image actuelle est un portrait")
    C = Proposition("L'image actuelle est une œuvre abstraite")
    D = Proposition("L'utilisateur a aimé une œuvre similaire par le passé")
    E = Proposition("L'image est en noir et blanc")
    F = Proposition("L'image est en couleur")
    G = Proposition("L'utilisateur préfère les œuvres d'art réalistes")
    H = Proposition("L'image est une peinture réaliste")
    I = Proposition("L'utilisateur a aimé les œuvres de cet artiste dans le passé")
    J = Proposition("L'utilisateur n'aime pas les images très saturées")
    K = Proposition("L'image a une saturation élevée")

1.1 · Logique propositionnelle · Python

Deux règles de recommandation, avec XOR et implication

# 2. Si l'image est soit un portrait soit une œuvre
# abstraite (mais pas les deux), et que l'utilisateur
# préfère les œuvres réalistes, alors il n'aimera pas
# l'image actuelle.
recommandation_abstrait_ou_portrait = Implication(Xor(B, C), Not(G))
B.value = True
C.value = False
G.value = True
print(recommandation_abstrait_ou_portrait.evaluate())
# False : B ⊕ C est vrai, ¬G est faux
# 6. Si l'utilisateur préfère les œuvres réalistes ou a
# aimé des œuvres similaires dans le passé, alors il
# n'aimera pas une œuvre abstraite (implication avec OU).
recommandation_non_abstrait = Implication(Or(G, D), Not(C))
G.value = True
D.value = False
C.value = False
print(recommandation_non_abstrait.evaluate())
# True : G ∨ D est vrai, ¬C est vrai

LimiteLa logique propositionnelle ne parle que de faits entiers ; pour dire « toutes les mers sont salées », il faut des variables.

notes
  • Règle 2 : Implication(Xor(B, C), Not(G)) — avec B vrai, C faux, G vrai, l'évaluation renvoie False (la prémisse B ⊕ C est vraie mais la conclusion ¬G est fausse).
  • Règle 6 : Implication(Or(G, D), Not(C)) — avec G vrai, D faux, C faux, l'évaluation renvoie True.
  • La logique propositionnelle ne parle que de faits entiers ; pour dire « toutes les mers sont salées » il faut des variables : la logique du premier ordre.

1.1 · Logique du premier ordre

Six notions composent le premier ordre

x, y

Variables

Symboles qui représentent des objets ou des éléments non spécifiés d'un domaine. Elles sont utilisées pour généraliser des expressions et représenter des objets de manière générique.

MerMéditerranée

Constantes

Symboles qui représentent des objets spécifiques et immuables d'un domaine.

Profondeur(x)

Fonctions

Opérations qui prennent un ou plusieurs arguments et renvoient un résultat.

Salée(x)

Prédicats

Expressions qui décrivent des relations entre des objets ou des propriétés de ces objets.

∀ ∃

Quantificateurs

« Pour tout » (∀) et « il existe » (∃) spécifient la portée des variables dans une expression.

∧ ∨ ¬ ⇒ ⇔

Opérateurs logiques

ET, OU, NON, implication et équivalence combinent des propositions et construisent des formules plus complexes.

Règle d'écritureUtilisez des parenthèses pour indiquer la priorité des opérations et la structure de la formule.

notes
  • Contrairement à la logique propositionnelle, qui traite uniquement de la vérité ou de la fausseté de propositions simples, la logique du premier ordre permet de représenter des informations structurées sur des objets et leurs relations. Voici quelques concepts clés de la logique du premier ordre : variables, constantes, fonctions, prédicats, quantificateurs, opérateurs logiques.

1.1 · Logique du premier ordre

Le premier ordre parle d'objets et de relations

x une image objet · constante ou variable ContientEau(x) ContientSable(x) ContientBateaux(x) PRÉDICATS · vrai ou faux pour chaque x ∧ ⇒ EstMer(x) conclusion, pour tout x ∀xpour toute image ∃xil existe au moins une image

À retenirUne seule règle quantifiée remplace une proposition par image : c'est ce que la propositionnelle ne peut pas faire.

notes
  • Un objet x (une image), des prédicats vrais ou faux pour chaque x, une règle qui en déduit EstMer(x) ; ∀x pour toute image, ∃x il existe au moins une image.

1.1 · Logique du premier ordre

Le vocabulaire du premier ordre, sur l'exemple des mers

ÉlémentRôleExempleRenvoie
Variableun objet non spécifié du domainex — n'importe quelle mer—
Constanteun objet précis et immuableMerMéditerranée, MerNoire, MerRouge—
Fonctionattribue une valeur à un objetProfondeur(x) · Profondeur(MerMéditerranée)une valeur (5 267 m)
Prédicatexprime une propriété ou une relationSalée(x) · Salée(MerMéditerranée)vrai / faux
Quantificateurfixe la portée d'une variable∀x Salée(x) · ∃x Superficie(x) > 100 000 km²vrai / faux

DistinctionUne fonction renvoie une valeur ; un prédicat renvoie un booléen. Les règles ne portent que sur des prédicats.

notes
  • Exemple — Variables : « x » peut représenter n'importe quelle mer. Constantes : « Mer Méditerranée », « Mer Noire », « Mer Rouge ». Fonctions : « Profondeur(x) » représente la profondeur de la mer x ; « Profondeur(Mer Méditerranée) » renvoie la profondeur de la mer Méditerranée.
  • Prédicats : « Salée(x) » indique si une mer donnée est salée ; « Salée(Mer Méditerranée) » est vrai. Quantificateurs : « ∀x Salée(x) » — toutes les mers sont salées ; « ∃x Superficie(x) > 100 000 km² » — il existe une mer dont la superficie dépasse 100 000 km².
  • Les fonctions attribuent des valeurs à des objets ou effectuent des opérations ; les prédicats expriment des relations ou des propriétés et renvoient une valeur booléenne.

1.1 · Logique du premier ordre · exemple

Sur les images : deux constantes, une variable, quatre prédicats

ÉlémentDans l'exemple des imagesSens
Constantesimg1, img2les noms d'images spécifiques ou d'autres identifiants uniques pour des images particulières
Variablexune image générique
PrédicatsContientEau(x) · ContientSable(x)l'image x contient de l'eau · du sable
ContientBateaux(x) · ContientOiseauxMarins(x)l'image x contient des bateaux · des oiseaux marins
Quantificateurs∃x · ∀xil existe une image · pour toutes les images — la portée de nos règles

Étape suivanteAvec ce vocabulaire, les règles de la mer s'écrivent une fois pour toutes les images.

notes
  • Utilisons l'exemple des règles pour confirmer qu'une image représente effectivement une mer. Constantes : noms d'images spécifiques ou identifiants uniques. Variable : « x » pour une image générique. Prédicats : ContientEau(x), ContientSable(x), ContientBateaux(x), ContientOiseauxMarins(x). Quantificateurs : « ∃x » (il existe une image) ou « ∀x » (pour toutes les images).

1.1 · Logique du premier ordre · exemple

Trois règles quantifiées décrivent nos images

∀x (ContientEau(x) ∧ ContientSable(x) ⇒ EstMer(x))eau et sable : une mer
∀x (ContientBateaux(x) ⇒ EstPort(x))des bateaux : un port
∀x (ContientOiseauxMarins(x) ⇒ EstPlage(x))des oiseaux marins : une plage
∃x (ContientEau(x) ∧ ContientSable(x))au moins une image a de l'eau et du sable

À retenir∀ énonce une règle générale ; ∃ affirme un fait. Un solveur va chercher un monde où tous tiennent ensemble.

notes
  • Reprenons l'exemple des règles pour confirmer qu'une image représente une mer. Constantes : noms d'images spécifiques ou identifiants uniques. Variables : « x » pour une image générique.
  • Prédicats : ContientEau(x), ContientSable(x), ContientBateaux(x), ContientOiseauxMarins(x) indiquent si l'image x contient de l'eau, du sable, des bateaux, des oiseaux marins.
  • Quantificateurs : « ∃x » (il existe une image) ou « ∀x » (pour toutes les images) spécifient la portée des règles.
  • Règles : 1. ∀x (ContientEau(x) ∧ ContientSable(x) ⇒ EstMer(x)) ; 2. ∀x (ContientBateaux(x) ⇒ EstPort(x)), ∀x (ContientOiseauxMarins(x) ⇒ EstPlage(x)) ; 3. ∃x (ContientEau(x) ∧ ContientSable(x)).

1.1 · Raisonnement automatisé · Z3

Z3 décide si un ensemble de contraintes peut tenir

  • pip install z3-solverVariables

    Int('x'), Real, Bool, ou une sorte déclarée

  • x + y > 5Contraintes

    équations, inégalités, formules logiques

  • solver.add(…)Assertions

    on les confie à un Solver()

  • solver.check()Verdict

    sat · unsat · unknown

  • solver.model()Modèle

    une affectation qui satisfait tout

ContexteZ3 (Microsoft Research) sert à la vérification formelle, à la planification et au raisonnement automatique.

notes
  • Z3 est un puissant solveur de contraintes développé par Microsoft Research, souvent utilisé pour la vérification formelle, le raisonnement logique et d'autres tâches d'analyse symbolique. Il peut résoudre des équations et des inégalités, vérifier la satisfiabilité de formules logiques, et bien plus encore.
  • Installation : pip install z3-solver. Importation : from z3 import *.
  • Fonctions utiles : solver.check() vérifie si les contraintes sont satisfiables ; solver.model() retourne une solution possible ; solver.add(constraint) ajoute une ou plusieurs contraintes.
  • Une fois les bases acquises, on peut explorer la quantification, les domaines spécifiques (bit-vectors, arrays) et la programmation modulaire.

1.1 · Raisonnement automatisé · Z3

Des variables symboliques, puis des contraintes

from z3 import *
# Création de variables : deux entiers x et y
x = Int('x')
y = Int('y')
# Création de contraintes
constraint1 = x + y > 5
constraint2 = x - y < 3
ce que Z3 sait créer
Int('x')entier
Real('r')réel
Bool('b')booléen
x + y > 5contrainte

Les variables sont symboliques : elles n'ont pas de valeur tant que le solveur n'en a pas choisi une. Les contraintes sont des équations, des inégalités ou des formules logiques sur ces variables.

Étape 1–2Créer des variables avec Int(), Real(), Bool() ; formuler des contraintes logiques ou des équations avec ces variables.

notes
  • Importation : from z3 import *. Pour créer des variables symboliques, vous utilisez les fonctions de Z3 comme Int(), Real(), Bool(), etc. Cela crée deux variables entières x et y.
  • Vous pouvez maintenant formuler des contraintes logiques ou des équations en utilisant ces variables : constraint1 = x + y > 5, constraint2 = x - y < 3.

1.1 · Raisonnement automatisé · Z3

Un solveur vérifie si les contraintes peuvent être satisfaites

# Utilisation d'un solveur
solver = Solver()
solver.add(constraint1)
solver.add(constraint2)
# Vérification de la satisfiabilité
if solver.check() == sat:
    print("Les contraintes sont satisfiables")
    print(solver.model())
else:
    print("Les contraintes ne sont pas satisfiables")
sortiesat
x3
y3

Un modèle possible : 3 + 3 > 5 et 3 − 3 < 3. Si le solveur retourne sat, il existe une solution qui satisfait les contraintes, et solver.model() l'affiche. Le solveur peut en renvoyer une autre — il n'en promet qu'une.

Étape 3–4On ne programme pas la solution, on décrit ce qu'elle doit vérifier.

notes
  • Z3 utilise un solveur pour vérifier si ces contraintes peuvent être satisfaites : solver = Solver(); solver.add(constraint1); solver.add(constraint2).
  • Si le solveur retourne sat, cela signifie qu'il existe une solution qui satisfait les contraintes, et vous pouvez afficher le modèle de solution avec solver.model().

1.1 · Raisonnement automatisé · Z3

Trois méthodes suffisent : add, check, model

solver.add(constraint)

Ajouter

ajoute une ou plusieurs contraintes au solveur.

solver.check()

Vérifier

vérifie si les contraintes sont satisfiables : sat, unsat ou unknown.

solver.model()

Lire la solution

retourne une solution possible si les contraintes sont satisfiables.

Z3 est un outil très puissant pour résoudre des problèmes de logique et d'optimisation. Il est utilisé dans des domaines tels que la vérification de logiciels, la planification et le raisonnement automatique.

Pour aller plus loinUne fois les bases acquises : quantification, domaines spécifiques (bit-vectors, arrays), programmation modulaire.

notes
  • Quelques fonctions utiles : solver.check() vérifie si les contraintes sont satisfiables ; solver.model() retourne une solution possible si les contraintes sont satisfiables ; solver.add(constraint) ajoute une ou plusieurs contraintes au solveur.
  • Z3 est un outil très puissant pour résoudre des problèmes de logique et d'optimisation. Il est utilisé dans des domaines tels que la vérification de logiciels, la planification, et le raisonnement automatique. Une fois que vous vous familiarisez avec les bases, vous pouvez explorer des fonctionnalités plus avancées comme la quantification, les domaines spécifiques (bit-vectors, arrays), et la programmation modulaire.

1.1 · Raisonnement automatisé · Z3

Sortes et expressions : de quoi parle-t-on, et comment

sorts · types

Types de base

Z3 prend en charge plusieurs types de base tels que Int (entiers), Real (nombres réels), Bool (booléens), String (chaînes de caractères), etc.

sorts · types

Sortes définies par l'utilisateur

En plus de DeclareSort, vous pouvez créer des types complexes en combinant des types de base et des sortes définies par l'utilisateur.

expressions

Expressions booléennes

Vous pouvez créer des expressions booléennes en utilisant des opérateurs logiques tels que And, Or, Not et Implies.

expressions

Expressions arithmétiques

Z3 prend en charge des opérations arithmétiques avec des entiers et des réels, comme +, -, * et /.

RepèreLes sortes sont les domaines d'objets du premier ordre ; les expressions en sont les connecteurs et les fonctions.

notes
  • Sorts (types) — types de base : Int, Real, Bool, String, etc. ; sorts définis par l'utilisateur : en plus de DeclareSort, on crée des types complexes en combinant types de base et sorts définis.
  • Expressions — booléennes : And, Or, Not, Implies ; arithmétiques : +, -, *, / sur entiers et réels.

1.1 · Raisonnement automatisé · Z3

Quantificateurs, solveur, assertions : le reste du vocabulaire

ForAll · Exists

Quantificateurs

Universel (ForAll) : exprimer des propriétés qui doivent être vraies pour tous les éléments d'un certain type.

Existentiel (Exists) : exprimer qu'il existe au moins un élément qui satisfait une certaine propriété.

Solver · check · model

Solveur

Instanciation et vérification : le Solver est le cœur de Z3, utilisé pour ajouter des contraintes et vérifier leur satisfaisabilité avec check().

Modèles : après la vérification, model() montre comment les constantes et variables doivent être assignées pour satisfaire les contraintes.

add

Assertions

Ajouter des contraintes : les assertions (add()) introduisent des contraintes dans le solveur. Elles peuvent être des expressions booléennes ou des équations.

RepèreChaque carte correspond à une notion du premier ordre : ∀ ∃, la déduction, et les faits que l'on affirme.

notes
  • Quantificateurs — universels (ForAll) : propriétés vraies pour tous les éléments d'un type ; existentiels (Exists) : il existe au moins un élément qui satisfait la propriété.
  • Solver — instanciation et vérification : le Solver ajoute des contraintes et vérifie leur satisfaisabilité avec check() ; modèles : model() montre l'assignation des constantes et variables.
  • Assertions — add() introduit des contraintes : expressions booléennes ou équations.

1.1 · Raisonnement automatisé · Z3

Déclarer un monde : une sorte, une constante, une fonction

Image = DeclareSort('Image')

DeclareSort déclare un nouveau type : ici, les images, qui ne correspondent à aucun type prédéfini.

x = Const('x', Image)

Const crée une instance de cette sorte : x représente une image particulière dans les formules.

ContientEau = Function(
    'ContientEau', Image, BoolSort())

Function déclare une fonction d'une image vers un booléen : c'est notre prédicat.

CorrespondanceSorte = domaine, constante = objet, fonction vers Bool = prédicat. Le premier ordre, mot pour mot.

notes
  • DeclareSort : déclare un nouveau type (ou sorte) dans le système de types de Z3, pour des objets qui ne correspondent pas aux types de base comme Int, Bool. Image = DeclareSort('Image') : Image est une nouvelle sorte qui peut représenter des images dans le modèle.
  • Const : déclare des constantes d'un type spécifique, c'est-à-dire une instance d'un objet de la sorte définie. x = Const('x', Image) : x est une constante de type Image, une image particulière dans vos formules.
  • Function : déclare des fonctions qui prennent des arguments et renvoient des valeurs, pour exprimer des relations entre objets. ContientEau = Function('ContientEau', Image, BoolSort()) : ContientEau prend une constante de type Image et renvoie un booléen — utilisable pour vérifier si une image contient de l'eau.

1.1 · Raisonnement automatisé · Z3

Déclarer tout le vocabulaire des images

from z3 import *
# Créer un solver
solver = Solver()
# Définir une sorte pour les images
Image = DeclareSort('Image')
# Fonctions : le contenu d'une image
ContientEau = Function('ContientEau', Image, BoolSort())
ContientSable = Function('ContientSable', Image, BoolSort())
ContientBateaux = Function('ContientBateaux', Image, BoolSort())
ContientOiseauxMarins = Function('ContientOiseauxMarins', Image, BoolSort())
# Relations : les types d'images
EstMer = Function('EstMer', Image, BoolSort())
EstPort = Function('EstPort', Image, BoolSort())
EstPlage = Function('EstPlage', Image, BoolSort())
correspondance
Imagedomaine
Contient…(x)4 prédicats observés
Est…(x)3 prédicats déduits

Les quatre premiers prédicats décrivent ce que l'on voit ; les trois derniers, ce que l'on veut conclure. Les règles relient les uns aux autres.

Étape 1Tout ce dont les règles parlent doit être déclaré avant d'être utilisé.

notes
  • Code du cours original : création du solveur, de la sorte Image, des fonctions ContientEau, ContientSable, ContientBateaux, ContientOiseauxMarins (contenu d'une image) et des relations EstMer, EstPort, EstPlage (types d'images).

1.1 · Raisonnement automatisé · Z3

Chaque règle du premier ordre devient une assertion

∀x (Eau(x) ∧ Sable(x) ⇒ Mer(x))→solver.add(Implies(And(ContientEau(x), ContientSable(x)), EstMer(x))) ∀x (Bateaux(x) ⇒ Port(x))→solver.add(Implies(ContientBateaux(x), EstPort(x))) ∀x (OiseauxMarins(x) ⇒ Plage(x))→solver.add(Implies(ContientOiseauxMarins(x), EstPlage(x))) ∃x (Eau(x) ∧ Sable(x))→solver.add(Exists([x], And(ContientEau(x), ContientSable(x))))

À retenirLa traduction est mécanique : ∧ devient And, ⇒ devient Implies, ∃ devient Exists. Le sens ne change pas.

notes
  • from z3 import *
    # Créer un solver
    solver = Solver()
    # Définir une sorte pour les images
    Image = DeclareSort('Image')
    # Définir des fonctions pour vérifier le contenu d'une image
    ContientEau = Function('ContientEau', Image, BoolSort())
    ContientSable = Function('ContientSable', Image, BoolSort())
    ContientBateaux = Function('ContientBateaux', Image, BoolSort())
    ContientOiseauxMarins = Function('ContientOiseauxMarins', Image, BoolSort())
    # Définir des relations pour les types d'images
    EstMer = Function('EstMer', Image, BoolSort())
    EstPort = Function('EstPort', Image, BoolSort())
    EstPlage = Function('EstPlage', Image, BoolSort())
    
    # Règles
    # 1. Si une image contient de l'eau et du sable, alors c'est une mer
    x = Const('x', Image)
    solver.add(Implies(And(ContientEau(x), ContientSable(x)), EstMer(x)))
    # 2. Si une image contient des bateaux, alors c'est un port
    solver.add(Implies(ContientBateaux(x), EstPort(x)))
    # 3. Si une image contient des oiseaux marins, alors c'est une plage
    solver.add(Implies(ContientOiseauxMarins(x), EstPlage(x)))
    # 4. Il existe au moins une image qui contient de l'eau et du sable
    solver.add(Exists([x], And(ContientEau(x), ContientSable(x))))
  • Dans le cours original, la variable x est déclarée avec Const et les règles sont ajoutées sans ForAll explicite : x est alors une constante libre. Pour une règle vraiment universelle, envelopper l'implication dans ForAll([x], …).

1.1 · Raisonnement automatisé · Z3

Z3 cherche un modèle qui satisfait toutes les règles

# deux images à vérifier
img1 = Const('img1', Image)
img2 = Const('img2', Image)
# ce que l'on sait de img1
solver.add(ContientEau(img1) == True)
solver.add(ContientSable(img1) == True)
solver.add(ContientBateaux(img1) == False)
solver.add(ContientOiseauxMarins(img1) == False)

if solver.check() == sat:
    print("Règles respectées.", solver.model())
else:
    print("Règles contradictoires.")
sortie du solveur (modèle simplifié)sat
ContientEau(img1)True
ContientSable(img1)True
EstMer(img1)True
EstPort(img1)False
EstPlage(img1)False

sat : il existe un monde cohérent avec les règles et les faits. unsat : ils se contredisent.

À retenirLe solveur ne « comprend » pas la mer : il prouve qu'un monde où les règles tiennent existe — ou qu'aucun n'existe.

notes
  • # Exemple d'images à vérifier
    img1 = Const('img1', Image)
    img2 = Const('img2', Image)
    # Définir des contenus pour img1 et img2
    solver.add(ContientEau(img1) == True)
    solver.add(ContientSable(img1) == True)
    solver.add(ContientBateaux(img1) == False)
    solver.add(ContientOiseauxMarins(img1) == False)
    
    # Vérifier si les images respectent les règles
    if solver.check() == sat:
        print("Les images respectent les règles définies.")
    else:
        print("Les images ne respectent pas les règles définies.")
    # Afficher les modèles (si satisfaisables)
    print(solver.model())
  • Un solveur comme Z3 ne « raisonne » pas comme nous : il cherche un modèle qui satisfait toutes les contraintes, ou prouve qu'il n'en existe pas. Le modèle réel affiché par Z3 utilise des valeurs internes (Image!val!0…) et des interprétations de fonctions ; le tableau en donne une lecture simplifiée.

1.1 · Logique modale

Deux opérateurs disent le nécessaire et le possible

□

Carré — la nécessité

Il exprime la nécessité, indiquant que quelque chose est nécessairement vrai.

En notation modale, on utilise l'opérateur « ◻ » pour représenter la nécessité : ◻(P) signifie « il est nécessaire que P soit vrai ».

◇

Losange — la possibilité

Il exprime la possibilité, indiquant que quelque chose est possible, mais pas nécessairement vrai.

On utilise l'opérateur « ◇ » pour représenter la possibilité : ◇(Q) signifie « il est possible que Q soit vrai » ; avec la négation, ¬◇(R) signifie « il est impossible que R soit vrai ».

DéfinitionLa logique modale étend la logique classique à des « modalités » : nécessité, possibilité, obligation, croyance…

notes
  • La logique modale est une extension de la logique classique qui permet de raisonner sur la notion de « modalités », c'est-à-dire des catégories de propositions qui expriment des modalités ou des qualités spécifiques, telles que la nécessité, la possibilité, l'obligation, la croyance, etc.
  • Opérateurs modaux : les deux opérateurs les plus courants sont ◻ (carré), qui exprime la nécessité, et ◇ (losange), qui exprime la possibilité.

1.1 · Logique modale

Nécessaire, possible, contingent, impossible

□P

Nécessaire

vraie dans toutes les situations possibles : elle ne peut être fausse dans aucune situation imaginable.

◻(Toute mer est salée)
◇P

Possible

vraie dans au moins une situation possible, même si elle n'est pas nécessairement vraie dans toutes.

◇(des tempêtes en mer)
¬□P ∧ ¬□¬P

Contingent

vraie dans certaines situations possibles et fausse dans d'autres : sa vérité dépend du contexte.

il peut y avoir des mers calmes
¬◇P

Impossible

fausse dans toutes les situations possibles : elle ne peut être vraie dans aucune situation imaginable.

¬◇(Toutes les mers sont douces)

À retenirNécessaire (□) et possible (◇) permettent de raisonner sur ce qui pourrait être, pas seulement sur ce qui est.

notes
  • En logique modale, les termes « nécessaire », « contingent », « possible » et « impossible » décrivent les modalités d'une proposition.
  • Nécessaire : vraie dans toutes les situations possibles ; ◻(P). Contingent : vraie dans certaines situations possibles et fausse dans d'autres ; ni nécessairement vraie ni nécessairement fausse (¬□P ∧ ¬□¬P). Possible : vraie dans au moins une situation possible ; ◇(Q). Impossible : fausse dans toutes les situations possibles ; ¬◇(R).
  • Exemples : ◻(Toute mer est salée) — dans toutes les situations possibles, toutes les mers sont salées. (Il peut y avoir des mers calmes) — possible, mais pas nécessairement dans toutes les situations. ◇(Il est possible qu'il y ait des tempêtes en mer). ¬◇(Toutes les mers sont douces) — impossible.

1.1 · Raisonnement automatisé

Le raisonnement automatisé fait tirer des conclusions à une machine

objectif

Décider, résoudre, répondre

L'objectif principal du raisonnement automatisé est de permettre aux machines de prendre des décisions, de résoudre des problèmes et de répondre à des questions en utilisant des règles logiques et des connaissances préalables.

inférence logique

Des moteurs d'inférence

Les moteurs d'inférence sont des composants logiciels qui appliquent des règles logiques et des axiomes pour déduire de nouvelles informations à partir des connaissances existantes. Cela implique souvent l'utilisation de la logique formelle : propositionnelle, du premier ordre ou modale.

DéfinitionUn domaine de l'IA : des systèmes capables de tirer des conclusions logiques et de résoudre des problèmes de manière autonome, comme le fait un humain qui raisonne.

notes
  • Le raisonnement automatisé est un domaine de l'intelligence artificielle (IA) qui concerne la création de systèmes informatiques capables de tirer des conclusions logiques et de résoudre des problèmes de manière autonome, similaire à la manière dont les humains utilisent leur raisonnement pour résoudre des problèmes.

1.1 · Raisonnement automatisé

Un moteur d'inférence par logique

  • Connaissances

    faits et règles, exprimés dans une logique

    Eau(img1) · ∀x (…)
  • Moteur d'inférence

    applique des règles de déduction et des axiomes

    modus ponens · résolution
  • Conclusions

    nouvelles informations, décisions, réponses

    EstMer(img1)
LogiqueLes connaissances sont représentées…Le moteur d'inférence…
Propositionnellesous forme de propositions atomiques et de règles logiques qui décrivent comment ces propositions sont liéesapplique des règles logiques pour tirer des conclusions à partir des propositions existantes
Premier ordrede manière plus expressive : relations complexes entre objets, généralisationsutilise des règles de déduction plus sophistiquées, notamment les quantificateurs ∀ et ∃
Modaleavec des opérateurs modaux, pour traiter l'incertitude et la nécessitéutilise des règles modales spécifiques, en tenant compte des modalités

À retenirMême schéma dans les trois cas ; ce qui change, c'est l'expressivité des connaissances et le coût de la déduction.

notes
  • Le raisonnement automatisé peut être expliqué en utilisant différentes logiques : propositionnelle, du premier ordre et modale.
  • En logique propositionnelle : connaissances représentées sous forme de propositions atomiques et de règles logiques ; le moteur applique des règles logiques pour tirer des conclusions.
  • En logique du premier ordre : représentation plus expressive, relations complexes entre objets et généralisations ; règles de déduction plus sophistiquées, avec ∀ et ∃.
  • En logique modale : opérateurs modaux pour l'incertitude et la nécessité ; règles modales spécifiques.

1.2 · Représentation des connaissances

Représenter, c'est rendre le monde calculable

pourquoi

Résoudre des problèmes

Une représentation adéquate permet de modéliser des problèmes complexes et de les résoudre efficacement — manipulation et déduction logique des informations pertinentes.

pourquoi

Décider

Les machines doivent comprendre le monde pour interagir avec lui : objets, relations, événements, règles.

pourquoi

Dialoguer

Face à des utilisateurs humains, une représentation claire rend les interactions compréhensibles et productives.

DéfinitionCapturer, structurer et stocker des informations sous une forme qu'un programme peut exploiter.

notes
  • La représentation des connaissances joue un rôle central dans la manière dont les systèmes informatiques comprennent, raisonnent et interagissent avec le monde.
  • Elle désigne le processus de capture, de structuration et de stockage des informations et des connaissances de manière à les rendre utilisables par des systèmes informatiques : transformer des données brutes ou des concepts en une forme que les ordinateurs peuvent comprendre et exploiter pour résoudre des problèmes, prendre des décisions ou interagir avec les utilisateurs.
  • Résolution de problèmes : une représentation adéquate permet de modéliser des problèmes complexes et de les résoudre efficacement ; elle facilite la manipulation et la déduction logique des informations pertinentes.
  • Prise de décisions : les machines doivent comprendre le monde qui les entoure pour interagir avec lui de manière significative — objets, relations, événements, règles.
  • Communication homme-machine : une représentation claire et conviviale est essentielle pour rendre les interactions compréhensibles et productives.

1.2 · Représentation des connaissances

Quatre types de connaissances, deux axes

déclarative · « ce que je sais »procédurale · « comment faire » explicite · documentée
Faits écrits

propositions vraies ou fausses, consignées dans des manuels, des bases de données

Salée(MerMéditerranée)
Procédures écrites

recettes, algorithmes, modes opératoires que l'on peut transmettre

def evaluate(self): …
tacite · vécue
Intuitions

ce que l'on « sait » sans pouvoir le formuler : reconnaître une mer au premier coup d'œil

difficile à documenter
Savoir-faire

compétences acquises par la pratique, liées à l'expérience

acquis par l'expérience

EnjeuL'IA symbolique formalise le quadrant en haut à gauche ; l'apprentissage vise ceux du bas.

notes
  • Les types de connaissances peuvent être classés en plusieurs catégories : déclaratives, procédurales, explicites et tacites.
  • Connaissances déclaratives : « ce que nous savons » — faits, informations et déclarations qui décrivent le monde, souvent exprimés sous forme de propositions vraies ou fausses.
  • Connaissances procédurales : « comment faire quelque chose » — compétences, savoir-faire et procédures nécessaires pour accomplir des tâches ; généralement implicites et liées à l'expérience pratique.
  • Connaissances explicites : clairement exprimées et documentées ; formelles et structurées pour être transmises et partagées facilement — manuels, livres, bases de données.
  • Connaissances tacites : difficiles à exprimer verbalement ou à documenter ; elles résident souvent dans l'expérience personnelle, l'intuition ou les compétences pratiques ; elles sont difficiles à transférer d'une personne à une autre et sont souvent acquises par l'expérience.

1.2 · Représentation des connaissances

Des faits isolés à un graphe de connaissances

CLASSEMer INSTANCEMer Méditerranée instance de vrai salée 5 267 m profondeur PAYSFrance borde PROPRIÉTÉSvaleur littérale RELATIONSvers un autre objet
faits
Logique — propositionnelle ou du premier ordre : des propositions vraies ou fausses.
concepts
Ontologie — entités ou idées du monde réel, organisées en classes.
propriétés
ce qu'un concept possède : une profondeur, une salinité.
relations
ce qui relie deux concepts : une mer borde un pays.

À retenirReprésenter, c'est choisir : plus le formalisme est expressif, plus le raisonnement est coûteux.

notes
  • Dans la représentation des connaissances déclaratives, les faits, les informations et les connaissances sont exprimés sous forme de propositions logiques : logique propositionnelle, logique du premier ordre.
  • Graphes de connaissances (ontologies) : structures de données hiérarchiques qui organisent les connaissances en utilisant des concepts, des classes, des propriétés et des relations.
  • Concepts : entités ou idées du monde réel. Classes : les concepts sont souvent organisés en classes. Propriétés : les ontologies spécifient des propriétés et des relations entre les concepts. Relations : les ontologies capturent les relations entre les concepts.

1.3 · Agents intelligents

Un agent perçoit, raisonne, agit — pour un objectif

capteurs

Perception

Un agent intelligent est capable de percevoir son environnement à travers des capteurs ou d'autres moyens. Il collecte des informations sur l'état du monde qui l'entoure.

calcul · décision

Raisonnement

L'agent traite les informations perçues, effectue des calculs et prend des décisions basées sur ces données — algorithmes, apprentissage automatique ou règles de raisonnement formelles.

actionneurs

Action

En réponse à ses décisions, l'agent agit sur son environnement en utilisant des actionneurs ou en émettant des commandes. Ses actions visent des buts.

buts

Objectifs

Les agents intelligents sont souvent dotés d'objectifs ou de buts à atteindre. Ces objectifs définissent ce que l'agent tente d'accomplir dans son environnement.

DéfinitionUne entité logicielle ou matérielle capable de percevoir son environnement, de prendre des décisions et d'agir pour atteindre des objectifs.

notes
  • Les agents intelligents sont des entités logicielles ou matérielles capables de percevoir leur environnement, de prendre des décisions, et d'agir pour atteindre des objectifs spécifiques. Un agent intelligent est un système informatique ou une entité physique qui possède certaines caractéristiques clés : perception, raisonnement, action, objectifs.

1.3 · Agents intelligents

Tous les agents partagent une même boucle

Environnement état du monde, utilisateur,autres agents, données AGENT Perceptioncapteurs, entrées Raisonnementrègles · modèle · ML · LLM Actionactionneurs, sorties Objectifsce que l'agent cherche à atteindre Mémoiremodèle du monde (optionnel) percepts les actions modifient l'environnement

À retenirLes types d'agents ne diffèrent que par ce qu'il y a dans la case « raisonnement ».

notes
  • Un agent perçoit son environnement, raisonne et agit ; ses actions modifient l'environnement, qui est perçu à nouveau. Objectifs et mémoire (modèle du monde) sont optionnels selon le type d'agent.

1.3 · Agents intelligents

Cinq types d'agents, un raisonnement de plus en plus riche

Réactif simple

Règles perception → action, aucun modèle du monde.

thermostat · robot de ligne
À modèle

Représentation interne ; anticipe l'effet de ses actions.

planification · simulation
À buts

Choisit l'action qui rapproche d'un objectif explicite.

itinéraires · recommandation
Hybride

Réactif dans l'immédiat, modèle ou buts pour le long terme.

véhicule autonome
Agent LLM

Un modèle de langage raisonne en langage naturel et appelle des outils (2023+, voir 4.7).

assistants à outils · code
réagitanticipeplanifieadaptedialogue & agit

À retenirPlus le raisonnement est riche, plus l'agent dépend de la qualité de son modèle du monde.

notes
  • Agents réactifs simples : réagissent directement aux stimuli de leur environnement sans représentation interne complexe du monde. Décisions fondées sur des règles préétablies qui associent des entrées (perceptions) à des sorties (actions). Utilisés là où la réactivité immédiate est cruciale (robotique industrielle) ; ils manquent de capacité à anticiper ou à planifier à long terme.
  • Agents basés sur des modèles : représentation interne du monde (modèles, cartes conceptuelles) pour anticiper les conséquences de leurs actions, planifier des séquences d'actions et décider. Planification automatisée, simulation, modélisation de systèmes complexes. Plus flexibles, mais leur performance dépend de la qualité de leurs modèles.
  • Agents basés sur les buts : objectifs à atteindre ; ils évaluent l'état de l'environnement et déterminent les actions qui les en rapprochent, en planifiant et en ajustant. Planification de parcours, systèmes de recommandation, assistants personnels.
  • Agents hybrides : combinent plusieurs types — réactifs dans l'immédiat, à modèle ou à buts pour les tâches complexes ou à long terme ; plus polyvalents.
  • Agents fondés sur un modèle de langage (agents LLM) : depuis 2023, un grand modèle de langage (voir 4.7) placé dans une boucle perception-raisonnement-action : il lit l'état de l'environnement (texte, résultats d'outils), planifie en langage naturel et agit en appelant des outils (recherche, code, API). Même schéma, avec le modèle de langage comme moteur de raisonnement.

1.3 · Agents intelligents · types

Réactif simple et à modèle : sans, puis avec un modèle du monde

réactif simple

Réagit aux stimuli

Les agents réactifs simples réagissent directement aux stimuli de leur environnement sans avoir une représentation interne complexe du monde. Ils prennent des décisions en se basant sur des règles préétablies qui associent des entrées (perceptions) à des sorties (actions).

Souvent utilisés pour des tâches spécifiques où la réactivité immédiate est cruciale, comme dans la robotique industrielle. Cependant, ils ont tendance à manquer de capacité à anticiper ou à planifier des actions à long terme en l'absence de modèles internes du monde.

à modèle

Anticipe avec un modèle interne

Les agents basés sur des modèles utilisent une représentation interne du monde, généralement sous forme de modèles ou de cartes conceptuelles, pour comprendre leur environnement. Ils utilisent ces modèles pour anticiper les conséquences de leurs actions, planifier des séquences d'actions et prendre des décisions éclairées.

Couramment utilisés en planification automatisée, simulation et modélisation de systèmes complexes. Plus flexibles que les agents réactifs simples, mais leur performance dépend de la qualité de leurs modèles et de la capacité à anticiper les résultats.

ContrasteLe réactif est rapide et aveugle ; l'agent à modèle voit plus loin, mais seulement aussi bien que son modèle.

notes
  • Agents réactifs simples : règles préétablies perception → action, pas de représentation interne complexe ; robotique industrielle ; pas d'anticipation ni de planification à long terme.
  • Agents basés sur des modèles : représentation interne du monde (modèles, cartes conceptuelles) ; anticipent, planifient, décident ; planification automatisée, simulation, modélisation de systèmes complexes ; performance dépendante de la qualité du modèle.

1.3 · Agents intelligents · types

À buts, hybride, LLM : un raisonnement plus riche

à buts

Poursuit un objectif

Les agents basés sur les buts ont des objectifs à atteindre, et leur comportement est guidé par la poursuite de ces buts. Ils évaluent régulièrement l'état de l'environnement et déterminent les actions à entreprendre pour se rapprocher de leurs objectifs.

Ils planifient et ajustent leurs actions selon l'évolution de la situation pour maximiser leurs chances de succès : planification de parcours, systèmes de recommandation, agents d'assistance personnelle.

hybride

Combine plusieurs types

Certains agents combinent des caractéristiques de plusieurs types d'agents pour tirer parti des avantages de chacun. Par exemple, un agent hybride pourrait être réactif dans des situations immédiates, mais basé sur des modèles ou sur des buts pour des tâches plus complexes ou à long terme.

L'hybridation permet de créer des agents plus polyvalents, capables de s'adapter à une variété de scénarios.

agent LLM · 2023+

Raisonne en langage naturel

Depuis 2023, le terme désigne aussi un grand modèle de langage (voir 4.7) placé dans une boucle perception-raisonnement-action : il lit l'état de l'environnement (texte, résultats d'outils), planifie en langage naturel et agit en appelant des outils (recherche, code, API).

Même schéma que la boucle ci-dessus, avec le modèle de langage comme moteur de raisonnement.

À retenirPlus le raisonnement est riche, plus l'agent dépend de la qualité de son modèle du monde.

notes
  • Agents basés sur les buts : objectifs à atteindre, évaluation régulière de l'état, planification et ajustement ; parcours, recommandation, assistance personnelle.
  • Agents hybrides : réactifs dans l'immédiat, à modèle ou à buts pour le long terme ; plus polyvalents.
  • Agents LLM : depuis 2023, un grand modèle de langage dans la boucle perception-raisonnement-action ; lit l'état, planifie en langage naturel, appelle des outils.

1.4 · Apprentissage machine

Trois approches, une seule différence : les étiquettes

100 % étiqueté

Supervisé

Chaque exemple porte sa réponse ; le modèle apprend à la prédire sur des données nouvelles.

classification d'images · prix · spam
0 % étiqueté

Non supervisé

Aucune réponse fournie ; le modèle découvre seul des structures ou des groupes.

segmentation · réduction de dimension · anomalies
quelques % étiquetés

Semi-supervisé

Peu d'exemples étiquetés, beaucoup de données brutes ; utile quand étiqueter coûte cher.

texte · imagerie médicale

À retenirCe qui change, c'est la quantité d'étiquettes disponibles — pas la nature du modèle.

notes
  • Apprentissage supervisé : un modèle est formé à partir d'un ensemble de données étiquetées — chaque exemple est associé à une étiquette ou une catégorie connue. L'objectif est d'apprendre à faire des prédictions en généralisant à de nouvelles données non vues. Exemples : classification d'images, prédiction de prix, détection de spam.
  • Apprentissage non supervisé : pas de données étiquetées ; le modèle doit découvrir des structures, des motifs ou des regroupements par lui-même. Exemples : segmentation de clients, réduction de la dimensionnalité, détection d'anomalies.
  • Apprentissage semi-supervisé : un petit ensemble étiqueté et une grande quantité de données non étiquetées ; le modèle apprend sur les étiquettes et tire parti des données brutes pour améliorer sa performance. Utile lorsque l'étiquetage est coûteux ou difficile.

1.4 · Apprentissage machine

Les trois approches en détail

ApprocheDonnées d'entraînementCe que le modèle apprendExemples
Superviséun ensemble étiqueté : chaque exemple est associé à une étiquette ou une catégorie connueà faire des prédictions en utilisant ces étiquettes, de manière à généraliser et prédire correctement sur de nouvelles données non vuesclassification d'images, prédiction de prix, détection de spam dans les emails
Non supervisépas de données étiquetéesà découvrir par lui-même des structures, des motifs ou des regroupements dans les donnéessegmentation de clients en groupes, réduction de la dimensionnalité, détection d'anomalies
Semi-superviséun petit ensemble étiqueté et une grande quantité de données non étiquetéesà prédire à partir des étiquettes, tout en tirant parti des données non étiquetées pour améliorer sa performanceparticulièrement utile lorsque l'obtention d'étiquettes est coûteuse ou difficile

À retenirSupervisé, non supervisé, semi-supervisé : ce qui change, c'est la quantité d'étiquettes disponibles, pas la nature du modèle.

notes
  • Apprentissage supervisé : modèle formé sur des données étiquetées ; objectif : généraliser à de nouvelles données. Exemples : classification d'images, prédiction de prix, détection de spam.
  • Apprentissage non supervisé : pas de données labellisées ; découvrir des structures, des modèles ou des regroupements. Exemples : segmentation de clients, réduction de dimensionnalité, détection d'anomalies.
  • Apprentissage semi-supervisé : petit ensemble étiqueté et grande quantité non étiquetée ; utile lorsque l'étiquetage est coûteux ou difficile.

1.5 · Apprentissage profond

Une droite ne sépare pas XOR ; une couche de plus, si

x₁x₂ 0 0 1 1 aucune droite ne sépare 0 et 1 x₁ x₂ σ σ y entrées couche cachée · non-linéarité sortie

À retenirProfond = plusieurs couches de non-linéarités ; un perceptron linéaire seul n'est pas un classificateur universel.

notes
  • Dans l'apprentissage profond, le terme « profond » fait référence à la présence de multiples couches dans le réseau neuronal. Contrairement aux modèles plus simples, tels que les perceptrons monocouche, les réseaux profonds ont la capacité d'apprendre des représentations hiérarchiques complexes à partir de données brutes.
  • Perceptron linéaire et XOR : un perceptron linéaire simple ne peut pas être un classificateur universel ; il est incapable de résoudre des problèmes non linéaires comme XOR. En ajoutant des couches et des non-linéarités (fonctions d'activation), on construit des réseaux capables de résoudre des problèmes plus complexes.

1.5 · Apprentissage profond

Chaque couche apprend une abstraction de plus

  • Pixels

    valeurs brutes, aucune structure

    640 × 480 × 3
  • Bords

    contrastes, orientations

    couche 1
  • Motifs

    textures : vagues, sable, plumes

    couche 2
  • Parties

    un bec, une aile, une coque

    couche 3
  • Objets

    « goéland », « bateau », « mer »

    sortie
1.1nous avons écrit ContientEau(x) à la main 1.5le réseau apprend ContientEau(x) — et ses sous-parties — à partir d'exemples

À retenirProfond = plusieurs couches ; chaque couche apprend des caractéristiques plus abstraites que la précédente.

notes
  • Extraction progressive de caractéristiques : une caractéristique clé de l'apprentissage profond est la capacité à extraire progressivement des caractéristiques complexes à partir de données brutes. Chaque couche du réseau apprend des représentations de plus en plus abstraites, ce qui permet au modèle de comprendre des niveaux de complexité croissants dans les données.
  • Le fil rouge se referme : le prédicat que nous avons écrit à la main en logique du premier ordre est ce qu'un réseau profond apprend à partir de photos étiquetées (cours 3, réseaux convolutionnels).

Références

Pour aller plus loin

Articles de recherche

  • [Aly 2005] Aly, Mohamed. Survey on Multiclass Classification Methods. 2005.
  • [Jaakkola 2019] Jaakkola, H., et al. « Artificial Intelligence Yesterday, Today and Tomorrow. » 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2019, pp. 860–67. IEEE Xplore.
  • [Pan 2016] Pan, Yunhe. « Heading toward Artificial Intelligence 2.0. » Engineering, vol. 2, no. 4, Dec. 2016, pp. 409–13.
notes
  • Références du cours original, conservées telles quelles ; les liens Z3 ont été ajoutés en 2026.