• Nenhum resultado encontrado

pour obtenir le grade de

N/A
N/A
Protected

Academic year: 2023

Share "pour obtenir le grade de"

Copied!
289
0
0

Texto

Il faut également noter qu’il existe un curieux manque de littérature sur l’aspect pratique de l’automate. On peut considérer que l’une des grandes avancées de la programmation logique dans les années 1980 a été la définition de la Warren Abstract Machine (WAM), qui est devenue de facto un standard (une alternative à l’ISO) pour la compilation de Prolog.

Les domaines nis

Il s’agissait alors de concevoir une architecture concrète et une machine abstraite de traitement de contraintes sur des domaines finis. De plus, une machine abstraite pour résoudre des contraintes sur des domaines finis peut être plus facilement développée à partir d’un ensemble (réduit) de contraintes primitives.

Le systeme clp(FD)

L'idée de base de l'architecture de traitement des contraintes clp(FD) est d'avoir une structure de données simple et homogène pour les domaines, contraintes et environnements variables. Il s’agit donc d’étendre l’architecture wamcc, et WAM en particulier, de manière minimale.

Les systemes de contraintes

Les systèmes limites ainsi définis possèdent un certain nombre de propriétés intéressantes, en particulier l'ensemble de tous ces systèmes forme une catégorie cartésienne fermée, c'est-à-dire fermée par produit cartésien et par exponentiation. De manière générale, lorsque l'on voudra définir un système de contraintes, on ne définira pas une relation de satisfaction ex nihilo, mais on utilisera plutôt une relation déjà existante (il faudra alors montrer qu'elle satisfait les bonnes propriétés).

Le cadre PLC( C ) - syntaxe et semantique

  • Syntaxe des programmes logiques avec contraintes

Considérons un ensemble de prédicats et un ensemble indénombrable V de variables qui seront utilisés pour définir les prédicats logiques dans le langage PLC(C).

Un programme logique avec contraintes de PLC( C ) est un ensemble de clauses denies de la forme

Semantique des programmes logiques avec contraintes

Cela reprend (et étend) le formalisme classique de la programmation logique, où un état informatique est représenté par un ensemble de cibles actuelles et un remplacement. Un tel calcul, s'il se termine, peut aboutir à une configuration de la forme <; ; >, auquel cas on réussit et l'ensemble des contraintes répond, soit dans une conguration.

Les domaines nis

Nous nous intéresserons ici à la définition d'un système de contraintes sur des domaines finis (noteFD). la variable DF peut prendre. Le système de contraintes FD est basé sur une seule contrainte d'appartenance qui associe une variable à un domaine.

Intuitivement, le domaine noté -dom(Y) augmente à mesure que le calcul progresse (c'est-à-dire que lorsque le domaine de Y diminue, son complément augmente). En raison de la version (a) (voir ci-dessus), le domaine de toute variable qui évalue r sans tenir compte des indices (pour éviter les boucles infinies) doit évaluer r dans la mémoire vide (voir la fonction de domaine cur).

Tableau 2 : semantique denotationnelle de l
Tableau 2 : semantique denotationnelle de l'operation Tell

Un domaine r est monotone (resp. anti-monotone ) ssi

La machine abstraite de Warren

  • La representation des termes
  • Economie et recuperation memoire
  • Le probleme du contr^ole de Prolog en C
  • La methode Janus
  • La methode KL1
  • La methode Erlang
  • La methode wamcc
  • Processus de compilation
  • Gestion de la modularite
  • Les fonctionnalites du systeme wamcc
  • Le jeu de benchmarks
  • Integration des variables domaine
  • Le jeu de benchmarks
  • Evaluation de l'implantation de base
  • Optimisations

Ainsi, il est possible de récupérer l'espace alloué à un environnement en fin de clause (après avoir appelé la dernière cible et avant de passer le contrôle au code pointé par la suite). En effet, lors de la compilation, il est possible de distinguer les cas suivants pour chaque argument principal. En fait, brancher au milieu de la fonction la saute donc.

Cependant, nous pouvons accéder à du code potentiellement très distant du fait de la gestion des modules. Cette approche permet d'écrire la plupart du code indépendamment de la machine. Notez que nous n'avons que la version 2.5.1, qui n'est pas la dernière.

Pour la compatibilité entre les variables Prolog, les variables DF et les entiers, la variable DF X peut être fusionnée.

Figure 1 : exemple d
Figure 1 : exemple d'arbre de recherche standard

Evaluation de l'implantation nale

Accepter cela permet un gain de temps de 10% grâce à la simplification de certaines opérations et supporte implicitement un certain cas d'optimisation 3 (occurrences multiples de contraintes). L'optimisation des autres cas n'apporte qu'un gain marginal du fait du changement de l'ordre d'évaluation. Le fait qu’un appel utile coûte environ 2,5 fois plus cher qu’un appel inutile est dû au peu de travail demandé par ce dernier puisqu’il évalue uniquement le domaine précédemment indiqué.

Le tableau 19 compare la version finale de clp(FD) avec la version commerciale 3.2 CHIP sur Sparc 2. Il est en fait très simple de définir les opérations logiques de base (et, ou, et non) en termes de contraintes primitives.

Tableau 16 : decomposition des T ell s dans la version nale nb. de T ell s Temps total inutile exec.
Tableau 16 : decomposition des T ell s dans la version nale nb. de T ell s Temps total inutile exec.

Un panorama des resolveurs booleens

  • Methodes basees sur les diagrammes de decisions binaires (BDD)
  • Methodes enumeratives
  • Programmation en nombres entiers 0-1

Ce manque de croissance se retrouve au niveau du choix de l'ordre des variables dont nous avons dit précédemment l'importance : il n'est pas vraiment possible d'avoir des heuristiques complexes dans cet ordre dans les langages de contraintes. L'idée de base ici est de gérer un réseau de contraintes entre un ensemble de variables pouvant prendre leurs valeurs dans un ensemble constant, en assurant une cohérence locale et en la propageant à travers les contraintes reliant les variables. A noter qu'il est facile d'enrichir, si nécessaire, ce système de contraintes avec d'autres contraintes booléennes telles que xor (ou exclusive), nand (pas et), ni (pas ou), , (équivalence), ou ) (implicite), donnant les règles pertinentes.

On peut alors nier la relation de satisfaction `B entre les contraintes booléennes, c'est à dire le système de contraintes selon le formalisme présenté au chapitre 2. Cependant, il est important de s’assurer que notre système de contraintes (opérationnellement nié) est bien équivalent aux expressions booléennes traditionnelles.

Figure 15 : BDD representant la formule ( x ^ y ) _ z
Figure 15 : BDD representant la formule ( x ^ y ) _ z

Evaluation des performances de clp(B/FD)

  • Le jeu de benchmarks

Les principales modifications de WAM pour prendre en compte les variables booléennes (et la contrainte primitive l0 <= l1,:::,ln) sont très similaires (bien que plus simples) à ce que nous avons fait pour les domaines finis (cf. Section 4.1 pour plus de détails). Il est donc pratique de coder entièrement c dans un enregistrement de la liste pertinente de contraintes dépendant de X1. Lorsqu'une contrainte (X;Bvalue) aboutit à ReducDomaine, la phase de propagation reconsidère toutes les contraintes en fonction de la liste de X pertinente.

Chaque contrainte de la liste est soit activée (conduisant à l'un des résultats décrits ci-dessus), soit ignorée (dans le cas n = 2) car a. Le corps de la contrainte n'est donc pas satisfait (c'est sa négation) et donc le corps de la contrainte n'est pas satisfait. la contrainte est trivialement satisfaite.

Tableau 25 : clp(B/FD) versus une methode enumerative (temps en sec.)
Tableau 25 : clp(B/FD) versus une methode enumerative (temps en sec.)

A noter que les contraintes de l'exemple 6.1 sont anti-monotones, tandis que celles de l'exemple 6.2 sont monotones (voir section 2.3).

Approximation 1 : test a la cl^oture

La satisfaction de X 6= Y est activée dès qu'une des deux variables est instanciée et elle est détectée dès que le domaine de l'autre variable ne contient plus la valeur de la variable instanciée. Ici aussi, la satisfaction de X 2 Y est activée dès qu'une des deux variables est instanciée. Bien évidemment, cet avantage devient un inconvénient au regard de la précision de détection qui est assez faible.

Approximation 2 : test sur les domaines

Approximation 3 : test sur les intervalles

En fait, les conditions générées par l'approximation 2 sont de la forme dom(X) A(r), elles impliquent donc toujours des opérations sur des domaines. Notez que cela ne remet pas en cause la validité de la proposition 6.5 car 8S XS (min(X).max(X))S. Les expressions manipulées par le système de réécriture sont donc de la forme r1 r2, où r1 et r2 sont les domaines.

Une règle s'applique si sa partie gauche est une sous-formule de la condition à normaliser et la remplace par la partie droite de la règle. Il ne s'agit pas d'un cas d'incomplétude de la méthode car ces deux formules ne sont pas équivalentes comme le montre la conservation suivante : S =fX en 9.15, Y en 0.4g puisque E3(cX)S est vrai alors que E3(cY)S C'est faux.

Contraintes arithmetiques lineaires

  • Normalisation
  • Compilation en code inline
  • Compilation en appel de sous-contraintes de librairie
  • Le probleme des series magiques
  • Contrainte element
  • Contraintes arithmetiques non-lineaires
  • Un exemple simple
  • Autres exemples

Au niveau de la variable X, l'approximation résultante couvrira toutes les approximations liées aux différents phénomènes. Cette contrainte est simplement définie par la contrainte précédemment étudiée (X =A), B (voir exemple 7.1). Nous montrerons également que la plupart des utilisations de la disjonction constructive font partie de ce cas particulier.

Cela peut être défini enclp(FD) par la définition de X Y (voir exemple 2.4) comme suit. Dès lors nous avons su associer chaque colonne du tableau B à une contrainte de type.

Tableau 37 : code de X in - f val(Y) g & - f val(Y)-I g & - f val(Y)+I g
Tableau 37 : code de X in - f val(Y) g & - f val(Y)-I g & - f val(Y)+I g

Introduction

Resume. In this article, a Constraint Logic Programming (CLP) approach is used to solve an Air Trac Flow Management (ATFM) problem, the allocation of aircraft departure slots. Furthermore, our goal is to demonstrate that CLP, which combines the declarativity of logic programming with the efficiency of constraint solving, is well suited to model many combinatorial optimization problems involved in the ATFM domain. In this paper, a CLP approach is used to solve the ATFM problem of departure slot allocation.

The departure slot allocation is done manually until now, so we could not compare our approach with linear methods that could have been used. 4 shows how clp(FD) can be used to solve the departure slot allocation problem under capacity and/or flow rate constraints.

Figure 20 : Display of SPORT system
Figure 20 : Display of SPORT system

Problem Context

  • Air Trac Flow Management Overview
  • The Slot Allocation Problem
  • High-Level Constraints and Propagation Mechanism
  • Optimizations
  • Performances
  • atmos interval Constraint
  • A Small Example
  • clp(FD) Model
  • clp(FD) Implementation of our Small Example
  • Optimization Trials - Heuristics

Due to recent changes (weather conditions, technical failures, ..), it is necessary to monitor the effects of the regulatory plan and adapt some restrictions in real time to cope with excess demand and unused capacities. The output data is a set of satisfactory start times fSETk;1g of ights Fk such that all capacity constraints are satisfied and the average delay experienced by a ight is minimized. These optimizations make it possible to avoid on average 50% of the total number of constraint runs in a traditional FD benchmark set (see [24, 25] for full details) and up to 57% in the boolean benchmark set presented below.

Its arguments are the capacity, the list of the variables identified in step 2, and the limits of the constraint period interval (see 3.5 and 4.1). It consists firstly of ordering take-o variables inL: the lower bound of the domain of an element of Lis always less than.

Tableau 39 : fragment of the constraint system syntax
Tableau 39 : fragment of the constraint system syntax

Imagem

Figure 1 : exemple d'arbre de recherche standard
Figure 2 : structures de la trail
Table des constantes
Figure 4 : architecture de la WAM
+7

Referências

Documentos relacionados

Para otimizar a adaptação deste dispositivo principalmente nos pacientes que não possuem capacidade de referir os parâmetros necessários para a programação, como