Aucun titre de diapositive

publicité
PROLOG :
PROgrammation en LOGique
” Programmer c'est Démontrer ”
N.Kabachi
BIBLIOGRAPHIE
Programmation :
1. ” Programming in Prolog ”, Springer
Verlag, 1981, W.F.Clocksin & al.
Traduction Francaise :” Programmer en Prolog”
Editions Eyrolles, 1985.
2. ” Prolog”, InterEditions, 1985, F. Giannesini,
H. Kanoui, R. Pasero, M. Van Caneguem.
3. ” Prolog Programming for artificial intelligence”,
Addisson Wesley Pub. Comp., 1986, I. Bratko
Théorie et implémentation :
1. ” Logic for Problem Solving ”, Elsevier North
Holland, 1979, R.A. Kowalsky
2. ” Anatomie de Prolog”, InterEditions, 1986, M. Van
Caneguem.
3. ” Introduction to Logic Programming ”, Academic
Press, 1985, C.J. Hogger. ”
Ouvrages de Synthèses :
1. ” Prolog fondements et Applications ”, AFCET, 1985,
Dunod, Condillac.
2. ” The Art of Prolog, Advanced Programming
Techniques”, M.I.T. Press, 1986, L. Sterling, E. Shapiro.
N.Kabachi
HISTORIQUE
1972 : Prolog I
Alain COLMERAUER (Université Aix-Marseille)
(découverte de la programmation logique et premier interpréteur)
et
Robert A. KOWALSKY (Edinburgh University)
(cadre théorique et premier compilateur)
1982 : Prolog II
M. Van Caneguem, et al.
(base du programme japonais de 5ème génération, version améliorée
commercialisée par Prolog IA)
EXPLOSION : Plusieurs Prolog, Plusieurs Machines
(Avec peu de nouveautes)
- Prolog/CENT -> Prolog-P
- Foll-Prolog
- Prolog- CRISS
- Xlog ou XILog
- Hybrides : LisLog, POPLog, -Prolog, etc..
1990 : Prolog III
Jacky LEGRAND Le langage PROLOG TECHNIP, etc...
1996 : Prolog IV -> SWI-Prolog
Jan Wielemaker, University of Amsterdam, The Netherlands
(Version 3.1, 1998, [email protected])
N.Kabachi
APPLICATIONS
- Prolog Vendors Group (Boeing, Dassault, IBM, Siemens, ...)
- Compulog Net (ESPRIT Network of Excellence in Compu. Logic)
- Conférences Practical Applications of Prolog
PRODUITS
standard ISO
Turbo Prolog (Borland)
IF-Prolog (Siemens Nixdorf)
Delphia Prolog (Siglos)
Prolog III (PrologIA)
Visual Prolog (Prolog Development Center A/S)
BIM Prolog (Integral Solutions Limited)
Win-Prolog (Logic Programming Associates)
PDC Prolog (Prolog Development Center)
Quintus Prolog (AI International Limited)
SWI-Prolog (Dept.of Social Science Informatics)
N.Kabachi
LES DIFFERENTS MODES DE
PROGRAMMATION
L'exécution d'une tâche par une machine nécessite sa programmation,
quelques soient les techniques utilisées et les surenchères de
vocabulaire associées.
La programmation logique constitue une révolution dans le domaine
difficile d'en faire la description en se référant à des structures usuelles
LA PROGRAMMATION IMPERATIVE
• Nécessite l'expression, par le détail, du "comment ».
• Traduction d'une démarche algorithmique où le passage des données
vers les résultats est décrit comme une suite d'actions.
LA PROGRAMMATION FONCTIONNELLE
• Description du résultat comme une composition de fonctions, agissant
sur les objets. Relève aussi d'un mode de pensée algorithmique.
• Connue par Lisp, le langage de prédilection des premiers chercheurs
en Intelligence Artificielle.
N.Kabachi
LA PROGRAMMATION LOGIQUE
• Délégation de la charge du "comment" au langage lui-même
• Description du problème à résoudre à partir de l'inventaire des
objets concernés et des propriétés et relations qu'ils vérifient.
• Rapprochement usuel de Prolog avec la logique du premier ordre.
• Expression formelle de la connaissance qui porte à la fois des
éléments implicites et le moyen de les rendre explicites.
• Mécanisme général et universel, moteur intégré au langage qui
simule une partie de nos facultés de raisonnement.
• Facteur de non déterminisme qui conduit à entreprendre des actions
qui ne conduisent pas forcément au résultat ou peuvent conduire à
plusieurs résultats
N.Kabachi
LA PROGRAMMATION ORIENTEE-OBJET
• Plus qu'une simple technique d'implantation, représente la
synthèse idéale de tous les progrès en matière de programmation.
• Structure : démarche de conception qui donne la priorité à la
description des invariants des processus
• Traitement : décentralisation du déclenchement des actions,
modules communiquants et faiblement couplés
• Langage : mélange de techniques déclaratives et procédurales
N.Kabachi
PROLOG UN LANGAGE
” SURPRENANT ”
CAR
• Pas de séparation programme/données.
• Pas de mots-clés.
• Peu de symboles spéciaux : ceux de la langue française {. , ; : ! ? ( ) }
• Pas de variables (au sens allocation d ’une case).
• Pas de structure de Contrôle.
• Pas de tableaux.
• Pas de pointeurs.
• Pas de fonctions (paramètres entrants ou sortant, résultats).
• Longueur des programmes diminue
BREF
C'est une opportunité de programmer pour non informaticiens
MAIS
• Des arbres (listes)
• Opération implicite : UNIFICATION
• Un seul algorithme prédéfini : RESOLUTION (moteur d ’inférence)
• La notion d ’inconnus
• Réversibilité (analyse/synthèse)
• Non-déterminisme
• Uniformité (programme/données)
N.Kabachi
APPLICATION
TRAITEMENTS SYMBOLIQUES
• intégration, système de calcul formel
• développement de compilateurs
BASE DE DONNEES
• description, interrogation
LANGAGES NATURELS
SYSTEMES DE DEDUCTION
• systèmes experts
• génération de plans
• génération de gammes d ’outillages
CAO
EAO
GENIE LOGICIEL
• outil de preuve, de maquettage, de prototypage, d ’aide
à la spécification formelle
N.Kabachi
REPRESENTATION
DES CONNAISSANCES
LES OBJETS (Termes)
ce dont on a quelque chose à dire.
Les identifier et en faire la description pour aboutir à une
représentation abstraite, purement syntaxique.
LES PREDICATS
ce que l'on dit des objets
Qualifient ou décrivent les relations dans lesquelles les objets sont
impliqués.
LES FAITS
L'affirmation d'une qualité ou d'une relation à l'aide d'une formule
atomique est une assertion ou un fait.
LES REGLES
les règles sont les germes du raisonnement elles portent la connaissanc
implicite et leur utilisation permet de la restituer
Une règle utilise la forme si…..alors
N.Kabachi
LOGIQUE DU 1er ORDRE
ET PROLOG
LES OBJETS
objets simples représentés par un symbole constant
(commencés par une minuscule) :
unix, Espagne, jaune, géranium, tennis, 1922
objets complexes, description à l'aide d'un terme composé :
(symbole fonctionnel suivi de la liste parenthèsée des arguments)
jugement(Jo,meurtre,1871,travaux_forcés)
vin(bordeaux,rouge,saint_émilion,1985)
arguments sont des termes correspondant à des objets simples ou
complexes :
ordinateur(nom(start,st386_25),unix,intel_80386,4,
dk_5_25_1200,dd(control_data,180,18))
Un symbole variable est un terme qui figure l'emplacement d'un ou
plusieurs individus arbitraires non désignés
(commencés par une lettre capitale):
X, Y, Fleur, Femme, Couleur.
N.Kabachi
LES FAITS
Formules atomiques avec un symbole de prédicat suivi de la liste
ordonnée et parenthèsée des arguments :
riche(paul), criminel(jo), offre(don_juan, fuchsia, ada)
les arguments sont des objets simples ou complexes :
occasion(ordinateur(start_386_25,unix,intel_80386, ..))
LES REGLES
Formules composées construites avec les formules atomiques
en utilisant :
NB : (toutes les formules ne sont pas des règles)
• les connecteurs logiques et, ou, implique, non
{ , , , }
• les quantificateurs existentiel et universel
{, }
Une règle exprime qu'un certain nombre de conséquences ou
conclusions sont vraies lorsque les hypothèses ou conditions
sont vraies.
N.Kabachi
EXEMPLE
En Français
Si un médecin soigne une personne et qu'il est compétent pour
l'affection dont elle souffre alors cette personne va guérir.
En Logique des Predicats
(quelque soit X Y Z)((personne(X) et affection(Y) et
médecin(Z) et compétent(Z,Y) et soigne(Z,X)) implique
guérir(X,Y)).
N.Kabachi
Téléchargement