310 likes | 460 Views
Intégration d'un langage de modélisation algébrique (LMA) dans AROM. Michel Page - présentation équipe Arom 7 juin 1999. Objectifs de l'exposé. Expliquer ce qu'est un LMA Montrer comment un LMA peut être introduit dans un contexte objet. Plan de l'exposé.
E N D
Intégration d'un langage de modélisation algébrique (LMA) dans AROM Michel Page - présentation équipe Arom 7 juin 1999
Objectifs de l'exposé • Expliquer ce qu'est un LMA • Montrer comment un LMA peut être introduit dans un contexte objet
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
Introduction: qu'est-ce qu'un LMA ? • Principe de base: • exploiter les notations algébriques utilisées en maths
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 , …
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
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
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
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
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
Atome • objet distinguable du monde réel • représenté par un symbole ex: P1, P2, P3…, T1, T2, @1999, @2000, …
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 = {@1999,@2000,@2001,...} • note: le temps est un domaine • 2 rôles: • indicer les variables • co-domaine: ens. dans lequel une variable peut prendre ses valeurs
Variable • fonction discrète (partielle ou totale) sur un ens. de domaines Di : v: D1D2 ... DnD* (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
Equation • Elles sont de la forme: 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
Equations (suite) • 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: DEMANDE(p, @1999) = 2000 p dans PRODUITS, t dans T- {@1999}: 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
Equations (fin) • Forment des systèmes d'équations simultanées aux différences • Sémantique d'AMIA: • recherche des points fixes de
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
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
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
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
Exemple • On suppose: • pour un permanent: salaire = indice * 20 • pour un vacataire: salaire = somme des montants • par les quantités de vacations effectuées
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))
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
class: Vacation variables: variable: montant type: float class: Employé variables: variable: salaire type: float class: Permanent super-class: Employé variables: variable: index type: integer variable: salaire Définition de variables en Arom 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 variables: variable: quantité type: integer
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] = ...
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
class: Employé variables: variable: salaire type: float queries: query: pauvre definition: salaire < 2000 filters: filter: toto set-base: Employé definition: member(self, {toto,lulu,bibi}) filter: riches set-base: Employé definition: salaire > 10000 Exemples de requête
Langage de contraintes • 2 types de contraintes: • contraintes de variable: prédicat unire sur une variable • contrainte sur une classe ou une relation
class: Employé variables: variable: statut type: string variable: salaire type: float constraint: salaire >= 0 Exemples de contraintes
Problèmes en suspens • le temps • classifier pour calculer les variables et calculer les variables pour classifier • extensibles, les types. Quid du LMA ?