Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parTh�odore Cornu Modifié depuis plus de 10 années
1
Intégration d'un langage de modélisation algébrique (LMA) dans AROM
Michel Page - présentation équipe Arom 7 juin 1999
2
Objectifs de l'exposé Expliquer ce qu'est un LMA
Montrer comment un LMA peut être introduit dans un contexte objet
3
Plan de l'exposé Introduction: Qu'est-ce qu'un LMA ?
Modélisation dans un LMA: l'exemple d'AMIA Proposition d'un LMA pour Arom
4
Introduction: qu'est-ce qu'un LMA ?
Principe de base: exploiter les notations algébriques utilisées en maths
5
Notations algébriques
langage mathématique d'écriture de systèmes d'équations et/ou de contraintes variables et expressions indicées variables et expressions ensemblistes opérateurs itérés: et , …
6
Utilisation des LMA introduits en RO pour la prog. linéaire et non-linéaire (AMPL, GAMS, SML, …) ex AMPL: {i in I}: X[i] = sum {j in I diff {i}} X[i,j]*Y[j] utilisés en simulation: AMIA récemment utilisés dans les langages de prog. par contraintes (Newton, OPL) similarité avec les langages prédicatifs à variables domaine utilisés dans les SGBD relationnels
7
Intérêts des LMA permettent de représenter le numérique aussi bien que le symbolique les variables et les expressions ne sont pas indicées numériquement, mais symboliquement déclaratif: chaque équation et/ou contrainte forme un corpus de connaissances indépendant expressif: pouvoir d'expression comparable à la logique des prédicats mais avec des variables quantifiées sur des domaines finis
8
Plan de l'exposé Introduction: Qu'est-ce qu'un LMA ?
Modélisation avec un LMA: l'exemple d'AMIA Proposition d'un LMA pour Arom
9
Un exemple sur un marché existent un certain nombre de produits P1, P2, …, Pn de deux types: T1 et T2 pour les années qui suivent, il est prévu: une croissance annuelle de 10 % de la demande de chaque produit de type T1 produits de type T2: 20 % de la demande globale parts de marché identiques
10
LMA dans AMIA Rappels: AMIA est un environnement pour la simulation à base de connaissances AMIA n'est pas OO 5 niveaux de représentation de connaissances dans AMIA: atomes domaines variables équations contraintes
11
Atome objet distinguable du monde réel représenté par un symbole
ex: P1, P2, P3…, …
12
Domaine ens. fini d'atomes ayant une significations, des propriétés et un comportement commun exemples: TYPES = {T1,T2} PRODUITS = {P1,P2,P3,...} T = note: le temps est un domaine 2 rôles: indicer les variables co-domaine: ens. dans lequel une variable peut prendre ses valeurs
13
Variable fonction discrète (partielle ou totale) sur un ens. de domaines Di : v: D1 D2 ... Dn D* (x1, x2, ..., xn) v(x1, x2, ..., xn) D* est un domaine (variable mono-valuée) ou l'ens des parties d'un domaine (variable multi-valuée) un indice: propriété partagée par les atomes d'un domaine exemple: TYPE(PRODUITS) TYPES plusieurs indices: relation entre les atomes de plusieurs domaines exemple: DEMANDE(PRODUITS,T) REEL
14
Equation Elles sont de la forme: où:
x11(D1) x22(D2) ... xnn(Dn): v(x1, x2,..., xn) = expr où: i(Di) : sous-ensemble du domaine Di xi : variables muettes appelées index expr : expr. de calcul bâtie à partir de: constantes (numériques ou atomes) et variables fonctions et op. num., logiques, atomiques, ensemblistes opérateurs itérés: somme, produit, moyenne, ... expressions conditionnelles
15
Equations (suite) Exemples: Similitude avec des clauses de Horn
Forme (rappel): x11(D1) x22(D2) ... xnn(Dn): v(x1, x2,..., xn) = expr Exemples: variable DEMANDE_TOT(T) REEL t dans T: DEMANDE_TOT(t) = somme(p dans PRODUITS: DEMANDE(p,t)) variable DEMANDE(PRODUITS,T) REEL p dans PRODUITS: = 2000 p dans PRODUITS, t dans T- DEMANDE(p,t) = si TYPE (p) = T1 alors 1.1 * DEMANDE(p,t-1) sinon 0.2*DEMANDE_TOT(t) / / card( {p' dans PRODUITS: TYPE (p')=T2} ) Similitude avec des clauses de Horn
16
Equations (fin) Forment des systèmes d'équations simultanées aux différences Sémantique d'AMIA: recherche des points fixes de
17
Contraintes Relation entre les variables du modèles exemple:
p dans PRODUITS, t dans T: DEMANDE_TOT(t) >= DEMANDE(p,t) pas utilisées de manière active dans AMIA
18
Résumé: caractéristiques du LMA dans AMIA
variables à valeur symbolique et ensembliste variables indicées symboliquement équations symboliques + numériques variables et opérateurs itérés
19
Plan de l'exposé Introduction: Qu'est-ce qu'un LMA ?
Modélisation dans un LMA: l'exemple d'AMIA Proposition d'un LMA pour Arom
20
Conclusion Nombreuses applications traitées dont certaines de taille très importante mise en évidence de l'intérêt du formalisme de représentation choisi et des algo associés mais: nécessité de structurer les domaines nécessité de structurer les hypothèses
21
Analogies entre AMIA et Arom
22
Exemple On suppose: pour un permanent: salaire = indice * 20
pour un vacataire: salaire = somme des montants par les quantités de vacations effectuées
23
Description en AMIA VACATAIRES = {V1, V2,V3} PERMANENTS = {P1,P2,P3}
VACATIONS = {VA1,VA2, VA3} SALAIRE(PERMANENTS) REEL p dans PERMANENTS: SALAIRE(p) = indice(v) * 20 QUANTITE(VACATAIRES,VACATIONS) ENTIER MONTANT(VACATIONS) REEL SALAIRE(VACATAIRES) REEL v dans VACATAIRES: SALAIRE(v) = somme(vac dans VACATIONS: QUANTITE(v,vac) * MONTANT(vac))
24
Rôles du LMA en Arom langage d'écriture des équations définissant les variables de classes et de relation langage de requête langage de contraintes
25
Définition de variables en Arom
class: Vacation variables: variable: montant type: float class: Employé variable: salaire class: Permanent super-class: Employé variable: index type: integer class: Vacataire super-class: Employé variables: variable: salaire definition: sum(e in Effectue:e.quantité * e.vacation.montant) relation: Effectue roles: role: vacataire type:Vacataire role: vacation type: Vacation variable: quantité type: integer
26
Problème de la notation des variables
en AMIA: notation fonctionnelle VAR(x,y) en Arom ? dans la plupart des systèmes 00, notation pointée obj.var La notation pointée convient pour un seul indice Pb 1: le temps salaire(Employe,T). Comment noter le salaire de l'employé e à l'instant t ? e.salaire[t] ou salaire[e,t] Pb 2: les variables de relation: relation: A … role: c1 type: C1 role: c2 type: C2 ... variable: x definition: c1.a1 + c2.a2 ou c1 dans C1, c2 dans C2: x[c1,c2] = ...
27
Langage de requête requête: similaire à une variable mais
sa valeur n'est pas conservée son type est quelconque filtres de classes et de relations: définissent en compréhension un sous ens. d'éléments
28
Exemples de requête class: Employé variables: variable: salaire
type: float queries: query: pauvre definition: salaire < 2000 filters: filter: toto set-base: Employé member(self, {toto,lulu,bibi}) filter: riches salaire > 10000
29
Langage de contraintes
2 types de contraintes: contraintes de variable: prédicat unire sur une variable contrainte sur une classe ou une relation
30
Exemples de contraintes
class: Employé variables: variable: statut type: string variable: salaire type: float constraint: salaire >= 0
31
Problèmes en suspens le temps
classifier pour calculer les variables et calculer les variables pour classifier extensibles, les types. Quid du LMA ?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.