Outils pour utilisateurs

Outils du site


formations:masters:ue:m2:plpc10

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
formations:masters:ue:m2:plpc10 [2023/04/21 09:17] – supprimée - modification externe (Unknown date) 127.0.0.1formations:masters:ue:m2:plpc10 [2025/01/29 10:46] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. admin
Ligne 1: Ligne 1:
 +~~NOTOC~~
  
 +====== Programmation Logique et Par Contraintes Avancée ======
 +
 +
 +===== Description =====
 +
 +La //Programmation Par Contraintes// est un paradigme de programmation basé sur la logique. Le conténu de la mémoire peut être compris comme une formule logique qui exprime des connaissances (souvent incomplètes) par des équations et des appartenances de variables à des domaines numériques. L'avancement du calcul est contrôlé par ce qui est logiqement impliqué par la mémoire. La construction d'un arbre de recherche, qui est centrale dans la //Programmation Logique//, est içi seulement un outil parmi d'autres à la disposition du programmateur. Ce paradigme fondamental permet de réaliser programmation impérative, fonctionnelle, orienté objet, distribué et logique.
 +
 +Ce cours se focalise sur l'utilisation de la programmation par contraintes pour la résolution de problèmes combinatoires, pour lesquels il faut chercher une solution (optimale) dans un très grand espace de solution potentielles. 
 +
 +Nous allons utilsier le langage Oz et le système de programmation Mozart.   
 +
 +===== Syllabus =====
 +==== Sujets centraux ====
 +
 +  - Le modèle d'exécution 
 +  - Programmation concurrente //dataflow//
 +  - Contraintes de domaine fini en Oz
 +  - Propagateurs
 +  - Blocage de propagateurs et recherche multi-dimensionnelle
 +  - Réification et contraintes souples 
 +  - Optimisation
 +  - Symétries et contraintes redondantes 
 +==== Sujets potentiellement traités ====
 +
 +  * Programmation logique en Oz
 +  * Implémentation de machines de recherche
 +  * Un exemple complèt : Le Test Auto-Référentiel
 +===== Pré-requis =====
 +
 +  * Bases de la programmation fonctionnelle (OCaml, Haskell, ...), par exemple [[..:..:..:licence:2024-2025:ue:l3:pf5|Programmation Fonctionnelle]] du L3 :
 +    * Modéliser avec des termes (arbres) 
 +    * Programmer avec des fonctions d'ordre supérieure (map, fold, iter, etc.)
 +    * Programmer avec des termes fonctionnelles (function x -> ... en OCaml)
 +  * Bases de la logique des prédicats, par exemple [[..:..:..:licence:2024-2025:ue:l3:lo5|Logique]] du L3 :
 +    * formules, solutions, implication logique
 +    * résolution de systèmes d'équations symboliques (algorithme d'unification)
 +
 +Il n'est pas nécessaire d'avoir suivi un cours de Prolog.