Intégration d'un langage de modélisation algébrique (LMA) dans AROM Michel Page - présentation...

Post on 04-Apr-2015

104 views 0 download

Transcript of Intégration d'un langage de modélisation algébrique (LMA) dans AROM Michel Page - présentation...

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 , …

i I x x yi ijj I i j

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 symboleex: 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 domaineexemple: TYPE(PRODUITS) TYPES

plusieurs indices: relation entre les atomes de plusieurs domainesexemple: DEMANDE(PRODUITS,T) REEL

14

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

15

Equations (suite) Forme (rappel): x11(D1) x22(D2) ... xnn(Dn): v(x1, x2,..., xn) = expr

Exemples:variable DEMANDE_TOT(T) REELt dans T:

DEMANDE_TOT(t) = somme(p dans PRODUITS: DEMANDE(p,t))

variable DEMANDE(PRODUITS,T) REELp dans PRODUITS: DEMANDE(p, @1999) = 2000p 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

);,...,,( 01 tXXXFX ttt

F

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

AMIA Aromatome objetdomaine classevariable avec un indice variable de classevariable avec plusieursindices

variable de relation

22

Exemple

0,n0,n

Permanentindice

Vacationmontant

Employésalaire

Vacataireeffectuequantité

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 AMIAVACATAIRES = {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: Vacationvariables:

variable: montanttype: float

class: Employévariables:

variable: salairetype: float

class: Permanentsuper-class: Employévariables:

variable: indextype: integer

variable: salaire

class: Vacatairesuper-class: Employévariables:

variable: salairedefinition:

sum(e in Effectue:e.quantité * e.vacation.montant)

relation: Effectueroles:

role: vacatairetype:Vacataire

role: vacationtype: Vacation

variables:variable: quantité

type: integer

26

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:

Problème de la notation des variables

relation: A…role: c1 type: C1role: c2 type: C2...variable: x

definition:c1.a1 + c2.a2

ouc1 dans C1, c2 dans C2:

x[c1,c2] = ...

0,nc2

0,nc1

C1a1

C2a2

Ax

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êteclass: Employévariables:

variable: salairetype: float

queries:query: pauvredefinition:

salaire < 2000

filters:filter: totoset-base: Employé

definition:member(self, {toto,lulu,bibi})

filter: richesset-base: Employé

definition: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 contraintesclass: Employévariables:

variable: statuttype: string

variable: salairetype: floatconstraint: 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 ?