0% ont trouvé ce document utile (0 vote)
2 vues3 pages

Prolog 2

Prolog est un langage de programmation logique basé sur le paradigme déclaratif, où l'on décrit ce qui est vrai à travers des faits et des règles, et le moteur trouve les solutions via le backtracking. Ce langage est particulièrement adapté aux problèmes complexes nécessitant l'exploration de multiples solutions, bien qu'il présente des limites en termes de performance et de complexité pour les débutants. En comparaison avec les langages impératifs, Prolog privilégie l'expression de relations et de règles plutôt que des instructions séquentielles.

Transféré par

ocean.azur15
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues3 pages

Prolog 2

Prolog est un langage de programmation logique basé sur le paradigme déclaratif, où l'on décrit ce qui est vrai à travers des faits et des règles, et le moteur trouve les solutions via le backtracking. Ce langage est particulièrement adapté aux problèmes complexes nécessitant l'exploration de multiples solutions, bien qu'il présente des limites en termes de performance et de complexité pour les débutants. En comparaison avec les langages impératifs, Prolog privilégie l'expression de relations et de règles plutôt que des instructions séquentielles.

Transféré par

ocean.azur15
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd

Prolog et le paradigme déclaratif

1. Introduction
Bonjour à tous. Aujourd’hui, je vais vous parler de Prolog et du paradigme déclaratif. Prolog est
un langage de programmation logique créé dans les années 1970. Contrairement aux langages
impératifs comme Python ou Java, où l’on décrit comment exécuter un programme étape par étape,
dans Prolog on décrit ce qui est vrai, sous forme de faits et de règles. Le moteur Prolog s’occupe
ensuite de trouver les solutions. Cette approche change complètement notre façon de penser la
programmation.

2. Faits, règles et requêtes


En Prolog, tout repose sur trois éléments principaux :
• Faits : vérités simples. Exemple :
parent(pierre, paul).
parent(pierre, sophie).
parent(anne, pierre).

• Règles : relations entre faits. Exemple :


grandparent(X,Y) :- parent(X,Z), parent(Z,Y).

• Requêtes : questions posées au moteur. Exemple :


?- grandparent(anne, Y).

Prolog explore automatiquement les solutions grâce au backtracking, une technique qui teste
toutes les options possibles et revient en arrière si nécessaire.

3. Backtracking et recherche de solutions


Le backtracking est au cœur de Prolog. Lorsqu’une requête est posée, Prolog :
1. Essaie une solution.
2. Si elle échoue, revient en arrière et teste une autre option.
3. Continue jusqu’à trouver toutes les solutions ou épuiser les possibilités.
Exemple simple :
color(red). color(blue). color(green).
?- color(X).

Prolog répond : X = red ; X = blue ; X = green. Chaque ; déclenche un retour


arrière pour explorer la solution suivante. Cette capacité rend Prolog très adapté aux problèmes
combinatoires, labyrinthes, Sudoku ou systèmes experts, où plusieurs solutions doivent être
envisagées.

4. Exemples pratiques
1. Vérifier un élément dans une liste
member(X, [X|_]).
member(X, [_|T]) :- member(X, T).
?- member(3, [1,2,3,4]).

Prolog trouve la solution automatiquement, sans boucle explicite.


2. Factorielle
fact(0, 1).
fact(N, F) :- N > 0, N1 is N-1, fact(N1, F1), F is N*F1.
?- fact(5, X). % X = 120

Ici, Prolog exprime la relation entre N et F, plutôt que le calcul étape par étape.
3. Chemins dans un graphe
edge(a,b). edge(b,c). edge(a,c).
path(X,Y) :- edge(X,Y).
path(X,Y) :- edge(X,Z), path(Z,Y).
?- path(a,Y).

Toutes les destinations possibles sont trouvées automatiquement grâce au backtracking.

5. Avantages
• Expression directe de la logique et des relations.
• Idéal pour problèmes complexes à contraintes multiples.
• Backtracking automatique pour explorer toutes les solutions.
• Code souvent plus concis pour certains types de problèmes.

6. Limites
• Moins performant pour des calculs intensifs ou temps réel.
• Syntaxe et approche déroutantes pour les débutants.
• Débogage parfois complexe à cause du backtracking et de l’unification.
7. Comparaison avec un langage impératif
Aspect Prolog Python/Java
Contrôle du flux Automatique (backtracking) Explicite (boucles, conditions)
Expression Relations et règles Instructions séquentielles
Idéal pour Logique, contraintes Calculs, applications diverses

8. Conclusion
Prolog est un langage déclaratif puissant, adapté aux recherches de solutions et à la logique
formelle. Il force à penser en termes de relations plutôt qu’en étapes, ce qui peut être déroutant au
début mais extrêmement enrichissant. Sa force réside dans sa capacité à explorer automatiquement
toutes les solutions possibles via le backtracking, ce qui le rend unique pour les énigmes, IA et
systèmes experts.

Vous aimerez peut-être aussi