Prolog. Artificial Intelligence. Lecture 2 Karim Bouzoubaa

Documents pareils
Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

Guide d'installation rapide TFM-560X YO.13

Instructions Mozilla Thunderbird Page 1

WEB page builder and server for SCADA applications usable from a WEB navigator

If you understand the roles nouns (and their accompanying baggage) play in a sentence...

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Once the installation is complete, you can delete the temporary Zip files..

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

Contents Windows

DOCUMENTATION - FRANCAIS... 2

Restaurant Application Quick Reference Guide

Insérer des images dans Base

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Maîtriser le menu contextuel dans un OfficeBean

Comment Créer une Base de Données Ab Initio

WDpStats Procédure d installation

How to Login to Career Page

Notice Technique / Technical Manual

Comment faire un Mailing A partir d une feuille Calc

JSIam Introduction talk. Philippe Gradt. Grenoble, March 6th 2015

GIGABIT PCI DESKTOP ADAPTER DGE-530T. Quick Installation Guide+ Guide d installation+

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

RAPID Prenez le contrôle sur vos données

Wireless IP Camera 75790, 75790WH, Quick Start Guide Guide de départ rapide

Contrôle d'accès Access control. Notice technique / Technical Manual

Package Contents. System Requirements. Before You Begin

SERVEUR DÉDIÉ DOCUMENTATION

Installation d un patch de mise à jour et d un pack langue dans SugarCRM Open Source 4.5.1

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon

Déploiement OOo en environnement Windows Terminal Server

Comment consolider des données

UML : Unified Modeling Language

Connaître la version de SharePoint installée

OpenOffice.org Calc Ouvrir un classeur

Introduction à SAP Screen Personas. Pierre-Alain Gran Julie Lopez, December 2013

Votre premier projet Android

LOGICIEL D'ADMINISTRATION POUR E4000 & G4000 MANAGEMENT SOFTWARE FOR E4000 & G4000

Comment sauvegarder ses documents

DOCUMENTATION - FRANCAIS... 2

Comment faire des étiquettes

LE FORMAT DES RAPPORTS DU PERSONNEL DES COMMISSIONS DE DISTRICT D AMENAGEMENT FORMAT OF DISTRICT PLANNING COMMISSION STAFF REPORTS

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

REMBO Version 2.0. Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION.

Tutoriel de formation SurveyMonkey

Practice Direction. Class Proceedings

Editing and managing Systems engineering processes at Snecma

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

Utiliser un proxy sous linux

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris

HSCS 6.4 : mieux appréhender la gestion du stockage en environnement VMware et service de fichiers HNAS Laurent Bartoletti Product Marketing Manager

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents

Le No.1 de l économie d énergie pour patinoires.

Installation d'un serveur RADIUS

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

I>~I.J 4j1.bJ1UlJ ~..;W:i 1U

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Développement logiciel pour le Cloud (TLC)

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme

Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante :

Dans une agence de location immobilière...

affichage en français Nom de l'employeur *: Lions Village of Greater Edmonton Society

Guide pour l Installation des Disques Durs SATA et Configuration RAID

La coopération dans un contexte de recherches doctorales Cooperation amongst PhD researchers. Josée Charbonneau Anne- Marie Merrien 28 mai 2014

Bill 69 Projet de loi 69

Quel temps fait-il chez toi?

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces fonctionnalités

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Garage Door Monitor Model 829LM

Cheque Holding Policy Disclosure (Banks) Regulations. Règlement sur la communication de la politique de retenue de chèques (banques) CONSOLIDATION

Programming Server-Side Web Applications with Object-Oriented PHP NC Group Syllabus. Duration: 75 hours 1-2-2

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM APPLICATION FORM

Adeunis-RF Softwares. Stand-Alone configuration Manager V2. User guide version V1 FRANCAIS ENGLISH

Tier 1 / Tier 2 relations: Are the roles changing?

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Program

Plateforme Technologique Innovante. Innovation Center for equipment& materials

IP Remote Controller

Gestion des prestations Volontaire

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

Algorithmes de recommandation, Cours Master 2, février 2011

Lavatory Faucet. Instruction Manual. Questions?

FILE MANAGEMENT. TABLESPACES TEMPORAIRES Temporaire par défaut autre que system

Initiation à la Programmation en Logique avec SISCtus Prolog

Création de Sous-Formulaires

La solution idéale de personnalisation interactive sur internet

VAMT 2.0. Activation de Windows 7 en collège

XtremWeb-HEP Interconnecting jobs over DG. Virtualization over DG. Oleg Lodygensky Laboratoire de l Accélérateur Linéaire

VTP. LAN Switching and Wireless Chapitre 4

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Principe de TrueCrypt. Créer un volume pour TrueCrypt

DOCUMENTATION - FRANCAIS... 2

CEPF FINAL PROJECT COMPLETION REPORT

SHAREPOINT PORTAL SERVER 2013

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

Transcription:

Prolog Artificial Intelligence Lecture 2 Karim Bouzoubaa

Content Introduction Declarative and logic programming Example Computational model Prolog reasoning Structure of prolog programs Prolog concepts Installing Prolog+CG Executing a Prolog+CG program Karim Bouzoubaa Artificial Intelligence 2

Karim Bouzoubaa Artificial Intelligence 3 Introduction Prolog is an AI tool PROLOG = PROgrammation LOGique In 1972 by Alain Colmerauer, Université de Marseille Basic, Modular & OO programming Prolog is a declarative programming language Subset of logic (1 st order logic of predicates logic) Idea 1: symbolic language Declarative method (represent objects and their relations) Procedural method (automate the logical reasoning) Idea 2: the programmer declares what (s)he thinks about the solution using the language of logic à Consequence: The programmer does not need to code explicitly all instructions

Karim Bouzoubaa Artificial Intelligence 4 Pure Prolog A Prolog program = {P ß A1 & A2 & A3 & An} P is true if all Ai are true Prolog Language = Pure prolog (logic programming) + specific instructions (non logic) Flow control Input/output instructions Arithmetic instructions etc.

Karim Bouzoubaa Artificial Intelligence 5 Example Computational model of classical programming Data + Processing (describes step by step what the machine should do) Computational model of Prolog Knowledge + Question à Answer Example: K : Q: A: saturday, it was raining it is cold if it rains was it cold saturday? it was cold saturday Prolog K: Q: A: rains(saturday). cold(x) :- rains(x). cold(saturday)? cold(saturday)

Computational model K: rains(saturday). cold(x) :- rains(x). facts Prolog program rules (clauses) Q: cold(saturday)? A: cold(saturday) Inference mechanism Try to match the question to each rule: unification Substitute of variables if necessary: instantiation Karim Bouzoubaa Artificial Intelligence 6

Karim Bouzoubaa Artificial Intelligence 7 Computational model Prolog Language = Specific instructions (non logic) + Pure prolog (logic programming) Knowledge + Question à Answer Set of Knowledge = Knowledge Base (KB) KB = Fact Base (FB) + Rules Fact: represents a true assertion Rule: conditions to verify a goal (answer a question) Question/Answer = Inference Mechanism Consult the KB Generate/Delete Facts/Rules Verifies and satisfies goals K: rains(saturday). Fact1 cold(x) :- rains(x). Rule1 Q: cold(saturday)? A: cold(saturday) IM Step 1: cold(saturday)? Goal Step 2: Try to match the question to each rule: unification Step 3: Q unifies with Rule1 à X = saturday Step 4: new goal rains(saturday)? Step 5: rains(saturday) is a fact à rains(saturday) is true à cold(saturday) is true

Karim Bouzoubaa Artificial Intelligence 8 Prolog Reasoning Every inference Step 1 (unification): unify the question with rules of the KB Step 2 (reduction): replaces the original question with other questions derived from the chosen rule Exercise: add of rains(monday). Question: cold(which_day)? a question may have multiple different answers Prolog reasoning Recherche dans la liste des clauses (faits et règles) de haut en bas Traitement des buts dans l ordre de gauche vers la droite Si un but coïncide avec la tête d une règle, il est remplacé par son corps Suite à un succès ou un échec, Prolog revient en arrière à la plus récente liste où une règle peut encore être satisfaite

Karim Bouzoubaa Artificial Intelligence 9 Prolog Reasoning Prolog Feature backtracking: if a track fails, Prolog backs to the last choice and tries another track

Structure of a Prolog Program Prolog+CG Program = Rule*. Rule = Goal [":-" Goal {"," Goal}*] ".". Goal = Java_Message SimpleGoal. SimpleGoal = Identifier String Variable Term. Java_Message = (Identifier String Variable) ":" (Term Variable) Karim Bouzoubaa Artificial Intelligence 10

Karim Bouzoubaa Artificial Intelligence 11 Prolog Concepts Concepts Commentaire Exemples Type classique Identificateur (symbole) Entier, réel, booléen, chaîne de caractères Un identificateur commence avec au minimum deux lettres et peut être suivi par 0 ou plusieurs caractères 4 8.65 true "chaine" ali rabat Liste Commence par le caractère [ et finit par le caractère ] [ ali, 3, "chaine" ] Variable Terme (prédicat) Fait Règle Une variable commence par un underscore suivi par 0 ou plusieurs caractères. Une variable peut également commencer par une lettre suivi nécessairement par un underscore ou un digit suivi par 0 ou plusieurs caractères. Un terme est une structure composée constituant une relation entre plusieurs objets (variable, identificateur, type classique, liste, terme, etc.) Un fait est un terme qui se termine par un point. Une règle de type P :-c1,c2,c3. est traduite par : le prédicat P est vrai si les conditions (prédicats) c1, c2 et c3 le sont. Une règle se termine par un point et les conditions sont séparées par des virgules. _X _XY _ r_x r2 parents_de (_enfant,_pere,_mere) pere_de(_enfant,_pere) // les faits (commentaire) parents_de(rachid, ali, aicha). parents_de(imane, ali, aicha). parents_de(jamal, ali, aicha). parents_de(hicham,khalid,fatima). // les règles pere_de(_enfant,pere) :- parents_de(_enfant,_pere, _). /* Lorsqu'on remplace un argument par le caractère "_", cela indique que la valeur de ce dernier n'a pas d'importance et peut se traduire par quelle que soit cette valeur */ Prédicat prédéfini Certains prédicats sont déjà prédéfinis dans Prolog write,writeln,read,readln,fail,! Commentaire Un commentaire en Prolog+CG est similaire au commentaire de Java // ceci est un commentaire

Installing and executing Prolog +CG Install jdk Copy Amine in your HD Copy the file runamine.bat Make a shortcut on your desktop Double click Click Prolog+CG icon Karim Bouzoubaa Artificial Intelligence 12

Executing Prolog+CG To execute a Prolog+CG program Launch Prolog+CG Edit the program / open it Create a new console (if not already) menu console/new Load the program in memory and compile it menu console/consult Type the question/goal in the Console menu Verify the validity of given arguments parents_de(rachid, ali, aicha). Search possible instances for variables pere_de(_x, ali). To obtain all possible solutions, type ";" then "enter" To debug a program (question), activate debug mode menu console/debug Example programs: cold1.pcg / cold2.pcg / familytree.pcg / meal.pcg Karim Bouzoubaa Artificial Intelligence 13