Outils pour utilisateurs

Outils du site


Panneau latéral



Contacts

Scolarité M1

Mickael Ferreira
télephone 01 57 27 68 96
bureau Sophie Germain - Bur. 3004
En télétravail les mardis et vendredis
(permanences Zoom : 10h30-12h00 ; 14h00-15h30)

connexion à la permanence de Mickaël Ferreira (code: 141280)

Scolarité M2

Sylvia Crochet
téléphone 01 57 27 68 98
bureau Sophie Germain - Bur. 3002
En télétravail les mardis et vendredis. Ne travaille pas les mercredis
(permanences Zoom : 10h00-11h30 ; 14h30-16h00)

connexion à la permanence de Sylvia Crochet (code: 242581)

formations:masters:ue:m2:plpc10

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

  1. Le modèle d'exécution
  2. Programmation concurrente dataflow
  3. Contraintes de domaine fini en Oz
  4. Propagateurs
  5. Blocage de propagateurs et recherche multi-dimensionnelle
  6. Réification et contraintes souples
  7. Optimisation
  8. 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 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 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.

formations/masters/ue/m2/plpc10.txt · Dernière modification : 2023/04/21 09:27 de treinen