title: Programmation logique inductive
text: # Programmation logique inductive
  
  La programmation logique inductive (ILP de l'anglais Inductive Logic Programming) est un sous-domaine de l'apprentissage automatique basée sur la programmation logique.
  
  ## Introduction
  
  À partir d'un ensemble de connaissances préalables et de résultats attendus, divisés en exemples positifs et négatifs, un système ILP déduit un programme logique hypothétique qui confirme les exemples positifs et infirme les exemples négatifs. On peut résumer le principe de fonctionnement d'un système ILP par le schéma suivant :
  
  * exemples positifs + exemples négatifs + connaissances préalables ⇒ programme hypothétique.
  
  La programmation logique inductive est particulièrement utile en bio-informatique et pour le traitement automatique du langage naturel.
  
  ## Historique
  
  Gordon Plotkin et Ehud Shapiro (en) ont posé les fondations théoriques de l'apprentissage automatique inductif dans un contexte $logique^,^,.$ Shapiro créa une première implémentation (Model Inference System) en 1981: un programme Prolog capable d'inférer par induction un programme logique à partir d'exemples positifs et négatifs. Le terme programmation logique inductive (en anglais) fut utilisé pour la première fois dans un article de Stephen Muggleton (en) en 1991. Muggleton est aussi à l'origine de la création de la conférence internationale de programmation logique inductive, un événement annuel. Il a défini les notions théoriques d'invention de prédicat, de résolution inversée et d'implication inversée. Le système PROGOL (en) développé par Muggleton implémente l'implication inversée. Le terme inductive fait ici référence à la notion philosophique et logique d'induction (le fait de suggérer une théorie pour expliquer des faits observés) plutôt qu'à son pendant mathématique (le fait de prouver une propriété pour tous les membres d'un ensemble bien fondé).
  
  