Research

Full first order constraints

Négation et quantification dans les contraintes, Transparents d'une conférence invitée, JFPLC, Marseille 28 juin 2000, jfplc00.pdf, jfplc00.ps.zip
 
 

Expressiveness of full first order constraints in the algebra of finite or infinite trees, with Dao Thi-Bich-Hanh, submitted to, CP2000, Singapore september 2000. Abstract. We are interested in the expressiveness of constraints represented by general first order formulae, with equality as unique relational symbol and functional symbols taken from an infinite set F. The chosen domain is the set of trees whose nodes, in possibly infinite number, are labeled by elements of F. The operation linked to each element f of F is the mapping (a1,...,an) |-> b, where b is the tree whose initial node is labeled f and whose sequence of daughters is a1,...,an. We first consider constraints involving long alternated sequences of quantifiers EAEA... . We show how to express winning positions of two-partners games with such constraints and apply our results to two examples. We then construct a family of strongly expressive constraints, inspired by a constructive proof of a complexity result by Pawel Mielniczuk. This family involves the huge number alpha(k), obtained by evaluating top down a power tower of 2's, of height k. With elements of this family, of sizes at most proportional to k, we define a finite tree having alpha(k) nodes, and we express the result of a Prolog machine executing at most alpha(k) instructions. By replacing the Prolog machine by a Turing machine we rediscover the following result of Sergei Vorobyov: the complexity of an algorithm, deciding whether a constraint without free variables is true, cannot be bounded above by a function obtained by finite composition of elementary functions including exponentiation. Finally, taking advantage of the fact that we have at our disposal an algorithm for solving such constraints in all their generality, we produce a set of benchmarks for separating feasible examples from purely speculative ones. Among others we solve constraints involving alternated sequences of more than 160 quantifiers. cpe.pdf cpe.ps.zip

Pouvoir d'expression des contraintes du 1ier ordre dans l'algèbre des arbres finis ou infinis, avec Thi-Bich-Hanh Dao, version française du papier précédent. Résumé. Nous nous intéressons au pouvoir d'expression de contraintes représentées par des formules générales du premier ordre avec pour seul symbole de relation l'égalité et pour symboles de fonction les éléments d'un ensemble infini F. Le domaine choisi est l'ensemble des arbres dont les noeuds, en nombre éventuellement infini, sont étiquetés par les éléments de F. L'opération associée à chaque élément f de F, d'arité n, est l'application (a1,...,an) |-> b, où b est l'arbre dont le noeud initial est étiqueté f et dont la suite de fils est a1,...,an. Nous examinons tout d'abord des contraintes faisant intervenir de longues suites alternées de quantificateurs EAEA.... Nous montrons comment exprimer les positions gagnantes d'un jeux à deux adversaires par de tels contraintes et appliquons nos résultats à deux exemples de jeux. Nous construisons ensuite une famille de contraintes très expressives, inspirée d'une démonstration constructive d'un résultat de complexité de Pawel Mielniczuk. Cette famille fait intervenir le nombre immensément grand alpha(k), obtenu en évaluant de haut en bas une tour de puissances de 2 de hauteur k. Elle nous permet, en une contrainte de longueur au plus proportionnelle à k, de définir un arbre ayant exactement alpha(k) noeuds ou d'exprimer le résultat d'une machine Prolog exécutant au plus alpha(k) instructions. En remplaçant la machine Prolog par une machine de Turing nous retrouvons le résultat suivant de Sergei Vorobyov : la complexité d'un algorithme décidant si une contrainte sans variable est vraie, ne peut être majorée par une fonction obtenue par composition finie de fonctions élémentaires (comprenant l'exponentiation). Enfin, profitant du fait que nous disposons d'un algorithme pour résoudre de telles contraintes dans toutes leurs généralités, nous effectuons un ensemble de benchmarks permettant de départager les exemples réalisables des exemples purement spéculatifs. Nous arrivons notamment à résoudre des contraintes faisant intervenir des suites alternées de plus de 160 quantificateurs. cpf.pdf cpf.ps.zip

A related work to which a have collaborated:

Thi-Bich-Hanh Dao, Résolution de contraintes du premier ordre dans la théorie des arbres finis ou infinis,  Thèse de doctorat, Université de la Méditerranée, Marseille, décembre 2000 tc4dec.pdf tc4dec.ps.gz

 

Global constraints

Réduction optimale d'un pavé de tris en temps optimal, avec Noëlle Bleuzen-Guernalec, janvier 1999.  Soit D un ensemble totalement ordonné. Appelons n-pavé, tout produit cartésien de n intervalles de  D, fermés et éventuellement vides. Désignons par  tri  l'ensemble des  2n-uplets d'éléments de D qui sont de la forme  (x1,...,x2n), où  (xn+1,...,x2n)  est le  n-uplet obtenu en rangeant  dans un ordre faiblement croissant les éléments du  n-uplet  (x1,...,xn). Nous présentons et justifions un algorithme de complexité  O(n log n)  qui, étant donné un  2n-pavé  a, calcule un 2n-pavé qui, au sens de l'inclusion, est le plus petit pavé contenant l'intersection de  tri  avec a. Nous montrons que cette complexité est optimale. Version française de: Optimal Narrowing of a Block of Sortings in Optimal time, in Constraints: an International Journal, Kluver, 5, 85--118, 2000r. janv99.ps.zip janv99.pdf

Optimal Narrowing of a Block of Sortings in Optimal time, with Noëlle Bleuzen-Guernalec, January 1999.  Let D be a totally ordered set. Call n-block, a Cartesian product of n closed and possibly empty intervals of D.  Let  sort  be the set of all  2n-tuples of elements of D of the form  (x1,...,x2n), where  (xn+1,...,x2n is the n-tuple obtained by putting the terms of the n-tuple (x1,...,xn)   in non-decreasing order.  We present and justify an algorithm of complexity O(n log n which, given a 2n-block  a, computes a 2n-block which, by inclusion, is the smallest block containing the  intersection of  tri  with a. We show that this complexity is optimal. This paper is a preliminary version of: Optimal Narrowing of a Block of Sortings in Optimal time, in Constraints: an International Journal, Kluver, 5, 85--118, 2000. janu99.ps.zip janu99.pdf

Other constraints

Naive solving of non-linear constraints. In this paper we study a naive and incomplete algorithm for solving systems of non-linear constraints. These constraints are expressed with variables ranging over reals, rational constants, the operations -, +, times and the relations geq, >, =, neq. By solving a system S we understand: first, deciding whether S has at least one solution; second, computing the set of equations of the form x=constant which are entailed by S. The preliminary phase of the naive algorithm consists of introducing intermediate variables for splitting S into two subsystems, a linear one and a non-linear one containing only constraints of the form z=x times y, where x, y and z are variables. The naive algorithm itself will repeat two actions until it reaches a stable system or a linear part that has no solution. The first action is to solve the linear part of S. The second action is to consider the equations of the form x=constant that are entailed by the linear part of S and to replace each variable x by the corresponding constant in the right-hand sides of the non-linear equations . We show that the naive algorithm turns out to be complete in the following non-standard structure for reals: multiplication is modified by regarding the product of two irrational numbers as an element omega which is outside of the domain of the reals. The operations are extended by taking omega as the value as soon as one of the arguments is omega. An exception to this principle is made for multiplication by zero, which always produces zero. All the relations, the = relation included, are considered to be satisfied as soon as one of their arguments is omega. Rational numbers are kept as constants and variables are not allowed to take the value omega. naivemul.ps.zip naivemul.pdf

Résolution naïve de contraintes non linéaires. Nous étudions un algorithme naïf et incomplet pour résoudre des systèmes non linéaires de contraintes construits à partir de variables réelles, de constantes rationnelles, des opérations -, +, times et des relations geq, >, =, neq. Par résoudre un système S, nous entendons deux choses: tout d'abord, décider si S admet au moins une solution, ensuite, déterminer l'ensem\-ble des équations de la forme x=constante qui sont impliquées par S. Dans une phase préliminaire on introduit des variables intermédiaires pour scinder S en deux sous-systèmes, l'un linéaire, l'autre non-linéaire et constitué d'équations de la forme z=x times y o\`u x, y et z sont des variables. L'algorithme naïf proprement dit se résume à répéter deux actions jusqu'à ce que le système n'évolue plus ou que la partie linéaire n'ait plus de solutions. La première action consiste à résoudre la partie linéaire de S. La deuxième action consiste à considérer les équations de la forme x=constante qui sont impliquées par la partie linéaire de S et à remplacer dans les membres droits des équations non-linéaires de S chacun des x par la constante correspondante. On montre que l'algorithme naïf devient un algorithme complet si l'on se place dans la structure non-standard suivante des réels: La sémantique de la multiplication est modifiée en considérant que le produit de deux nombres irrationnels est un élément étrange omega distincts de tous les réels. Les opérations sont prolongées en considérant que le résultat est omega dès que l'un des arguments est omega. Une entorse à ce principe est faite pour la multiplication par zéro qui produit toujours zéro. Toutes les relations, y compris la relation =, sont considérées comme satisfaites dès que l'un au moins des arguments est omega. Les rationnels sont conservés comme constantes et les variables sont astreintes à ne jamais prendre la valeur omega. mulnaive.ps.zip mulnaive.pdf

Related work to which I have collaborated:

Ian Gambini, Quant aux carrés carrelés, Thèse de doctorat, Université de la Méditerranée, décembre 1999. Résumé. Cette thèse est consacrée au calcul de découpages d'un carré en carrés de tailles différentes. Tout d'abord nous reprenons la méthode classique : énumération de graphes planaires représentant les emplacements des carrés les uns par rapport aux autres et, pour chaque graphe, résolution d'un système linéaire donnant les dimensions des carrés sous forme de nombres rationnels. La difficulté essentielle est de travailler en précision infinie. Pour celà nous étudions différentes méthodes qui permettent de contrôler la taille d'un dénominateur commun à tous les nombres rationnels manipulés. Pour un entier donné nous obtenons ainsi toutes les décompositions en carrés. Notre programme retrouve les solutions connues pour n entre 21 et 26. En fait ce problème de découpage est un problème en nombres entiers : les tailles des différents carrés sont toutes commensurables (dans des rapports rationnels). Il est donc possible de calculer les découpages par énumération d'entiers représentant des tailles de carrés. C'est l'objet du reste de la thèse. Nous établissons tout d'abord quelques propriétés concernant les dimensions entières des carrés : entre autre, les carrés dans les coins sont de taille supérieure à 8 et ceux sur les bords de taille supérieure à 4. Ceci nous permet de développer un algorithme opérationnel qui, étant donné la taille d'un carré, trouve tous ses découpages possibles. Nous arrivons ainsi à découper des carrés de taille allant jusqu'à 130 et retrouvons les découpages minimaux bien connus et notamment celui en 21 carrés. Nous développons alors un deuxième algorithme beaucoup plus efficace mais incomplet : il énumère des découpages particuliers. Nous obtenons plus de 30000 solutions parmi lesquelles figure toujours le fameux découpage en 21 carrés. Avec quelques modifications cet algorithme nous fournit des solutions à deux problèmes connexes : la décomposition en carrés de tailles distinctes d'un cylindre et aussi d'un tore. Dans le premier cas le cylindre est de hauteur et de circonférence égale et les carrés sont formés de deux arcs de cercle et de deux segments de même longueur. Dans le deuxième cas, les côtés des carrés sont des arcs de cercle de dimensions angulaires égales. carres.ps.zip carres.pdf

Bruno Gilleta, Solving the three-dimensional Pentamino Puzzle. Abstract. Pentaminoes are pieces made of 5 connected unit cubes lead on a plane surface. Their 12 different shapes look like the 12 letters F, I, L, P, N, T, U, V, W, X, Y, Z. We are interested in all the different ways of putting these 12 pentaminoes in a box having a volume of 60 unit cubes. We express the different pentaminoes configurations as the solutions of a natural set of constraints on unknown integers and we present an algorithm for solving our constraints by iterations of local narrowing and by splitting intervals in disjoint intervals. Benchmarks show that a classical enumerative algorithm is still the most efficient way to solve our problem. However, our smaller search spaces show that we are working on the right track. misc99.ps.zip misc99.pdf

Bruno Gilleta, Resolution du puzzle tridimensionnel des pentaminos, submitted to, Journées Francophones de Programmation Logique et Programmation par Contraintes (JFPLC'2000), Marseille, June 2000, proceedings to be published by Hermes Science Publications. Résumé. Les pentaminos sont des pièces connexes form'es de 5 cubes unitaires assembl's à plat. Il en existe 12 différents et leurs formes ressemblent aux 12 lettres F, I, L, P, N, T, U, V, W, X, Y, Z. Nous nous intéressons à placer de toutes les façons possibles ces 12 pentaminos dans un parallélépipéde rectangle d'un volume de 60 cubes unités. Nous présentons un ensemble naturel de contraintes sur les nombres entiers dont les solutions donnent les différentes façons de placer les pentaminos et présentons un système pour résoudre nos contraintes par itérations de réductions locales et par coupures d'intervalles en intervalles distincts. Des benchmarks montrent qu'un algorithme énumératif classique reste de loin la méthode la plus rapide mais le fait que nos arbres de recherche soient de taille inférieure montrent que nous sommes dans la bonne voie. jfplc2000.ps.zip jfplc2000.pdf

Prolog III and IV

Les bases de Prolog IV, publication interne du LIM, juillet 1996. Je donne ici les spécifications complètes de Prolog IV et l'illustre par des exemples. Voici la table des matières : (1) Introduction (2) Syntaxe et sémantique (2.1) Objets sémantiques (2.2) Objets syntaxiques (2.3) Liens entre objets syntaxiques et objets sémantiques (2.4) Notation fonctionnelle de relations (3) La structure de base pi4 (3.1) Domaine de la structure pi4 choisie (3.2) Sous-domaines privilégiés (3.3) Opérations de la structure pi4 (3.4) Relations de la structure pi4 (4) Axiomatisation de pi4 (4.1) Généralités (4.2) Axiomatisation des sous-domaines privilégiés (4.3) Axiomatisation des opérations sur les arbres (4.4) Axiomatisations des interactions des sous-domaines avec les opérations (4.5) Axiomatisation des relations générales (4.6) Axiomatisation des contraintes linéaires (4.7) Axiomatisation des relations à linéariser (4.8) Axiomatisation des relations dif, bdif et beq (4.9) Axiomatisation de la propagation supplémentaire dégalités (5) Structures enrichies (5.1) Notion générale de programme (5.2) Programme sous forme clausale (5.3) La machine Prolog IV (6) Exemples de programmes en Prolog IV (6.1) Contraintes sur les listes (6.2) Contraintes sur les entiers et les booléens (6.3) Contraintes sur les réels (6.4) Contraintes linéaires. bases.pdf bases.ps.zip

An Introduction to Prolog III, in Communications of the ACM, vol. 33, no. 7, July 1990. Abstract. The Prolog III programming language extends Prolog by redefining the fundamental process at its heart : unification. Into this mechanism, Prolog III integrates refined processing of trees and lists, number processing, and processing of two-valued Boolean algebra. We present the specification of this new language and illustrate its capabilities by means of varied examples. We also present the theoretical foundations of Prolog III, which in fact apply to a whole family of programming languages. The central innovation is to replace the concept of unification by the concept of constraint solving. acmprolog3e.pdf

Une introduction à Prolog III, version française de : An Introduction to Prolog III, dans Communications of the ACM, vol. 33, no. 7, juillet 1990. Résumé. Le langage de programmation Prolog III est une extension de Prolog au niveau de ce qu'il a de plus fondamental, le mécanisme d'unification. Il intègre dans ce mécanisme un traitement plus complet des arbres et des listes, un traitement numérique et un traitement de l'algèbre de Boole à deux valeurs. Nous présentons ici les spécifications de ce nouveau langage et illustrons ses possibilités au moyen d'exemples variés. Nous présentons aussi le modèle théorique de Prolog III qui, en fait, s'applique à toute une famille de langages de programmation. L'idée essentielle est de remplacer la notion d'unification par celle de résolution de contraintes. acmprolog3e.pdf

Early History of Prolog

The birth of Prolog, with Philippe Roussel, draft of a paper in History of Programming Languages, édited by Thomas J. Bergin and Richard G. Gibson, ACM Press/Addison-Wesley, 1996. Abstract. The programming language, Prolog, was born of a project aimed not at producing a programming language but at processing natural languages; in this case, French. The project gave rise to a preliminary version of Prolog at the end of 1971 and a more definitive version at the end of 1972. This article gives the history of this project and describes in detail the preliminary and then the final versions of Prolog. The authors also felt it appropriate to describe the Q-systems since it was a language which played a prominent part in Prolog's genesis.19november92.pdf

La naissance de Prolog, avec Philippe Roussel. Brouillon de : The birth of Prolog , dans History of Programming Languages, édité par Thomas J.~Bergin et Richard G.~Gibson, ACM Press/Addison-Wesley, 1996. Résumé. Le langage de programmation Prolog est né d'un projet, dont le but n'était pas de faire un langage de programmation mais de traiter les langages naturels, en l'occurrence le Français. Ce projet a donné naissance à un Prolog préliminaire à la fin 1971 et un Prolog plus définitif à la fin de l'année 1972. Cet article relate l'histoire de ce projet, décrit en détail la version préliminaire de Prolog puis sa version définitive. Les auteurs ont aussi jugé bon de décrire les systèmes-Q un langage qui a joué un rôle important dans la genèse de Prolog. 24juillet92.pdf


Teaching Enseignement

Résolution de contraintes, janvier 2001.  J'ai rassemblé ici un ensemble de notes que je distribue dans mes cours de DEA et de DESS d'informatique à la Faculté des Sciences de Luminy, Université de la Méditerranée. Il s'agit d'un brouillon et toute correction est bienvenue. dea.ps.zip dea.pdf

Machines universelles, avril 2002.  Notes de cours de DEUG 2ème année à la Faculté des Sciences de Luminy, Université de la Méditerranée turing.pdf. Enoncés de travaux dirigés et des travaux pratiques : enoncestptd.pdf. Utilitaires pour les travaux pratiques en Maple : turingmapleter.txt , canevasuniverselle.txt , milieuuniverselle.txt, aidetp5.txt. Ce cours constitue la motié d'un cours de 10 fois 2 heures intitulé "Arithmérique et machine de Turing". La partie arithmétique est donnée par Michel Van Caneghem.

Le manuel de Prolog IV. Tutoriel, concepts de base, primitives, Prolog ISO, syntaxe, environnement.
Introduction.pdf,
1-TutorielSurvol.pdf,
2-Bases.pdf,
3-Relations.pdf,
4-PredicatsPredefinis.pdf,
5-PredicatsPredIso,

6-Syntaxe.pdf,
7-SyntaxeIso.pdf,
8-Environment.pdf,
9-EnvGraphique.pdf,
Index.pdf


Curriculum Vitae

Curriculum Vitae, last update, January 1999. Includes the list of my publications. Cve99us.ps Cve99us.pdf (us letter format), Cve99a4.ps Cve99a4.pdf

Curriculum Vitae, dernière mises à jour, février 1999. Inclut la liste de mes publications. Cvf99a4.ps Cvf99a4.pdf

 

texte