1 / 31

Intégration d'un langage de modélisation algébrique (LMA) dans AROM

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é.

gala
Download Presentation

Intégration d'un langage de modélisation algébrique (LMA) dans AROM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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…, T1, T2, @1999, @2000, …

  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 = {@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

  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: x11(D1) x22(D2) ... xnn(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) • Forme (rappel):x11(D1) x22(D2) ... xnn(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

  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. 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

  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. 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

  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. class: Employé variables: variable: statut type: string variable: salaire type: float constraint: salaire >= 0 Exemples de contraintes

  31. Problèmes en suspens • le temps • classifier pour calculer les variables et calculer les variables pour classifier • extensibles, les types. Quid du LMA ?

More Related