• Aucun résultat trouvé

Quand les traces rejoignent les cycles

3.3 S´ emantique lin´ eaire et coˆ ut long-run

3.3.2 Coˆ ut long-run

3.3.2.1 Quand les traces rejoignent les cycles

Le but de cette section est de faire le lien entre la d´efinition 3.13 qui d´ecrit le coˆut long-run comme le maximum des coˆuts moyens des cycles et la d´enomination de ce coˆut : coˆut « longue ex´ecution », c.`a.d. un coˆut ´evalu´e sur les traces de plus en plus grandes du programme (on fait tendre leur longueur vers plus l’infini). Nous allons montrer, dans un cadre restreint, que ces deux notions co¨ıncident. Plus pr´ecis´ement, on suppose que l’ensemble des ´etats Σ est fini, et l’on se place dans un dio¨ıde dont l’ensemble sous-jacent est R et dont la loi ⊗ est l’op´erateur arithm´etique + (la racine n-i`eme correspond de ce fait `a la division par n). Afin d’´etablir ce r´esultat, nous devons montrer que le coˆut de tout pr´efixe fini d’une trace devient n´egligeable quand cette trace devient arbitrairement longue. Nous devons donc imposer l’hypoth`ese suivante.

Hypoth`ese 1.

Toute transition δ qui n’est pas dans un cycle v´erifie q(δ)6= +∞.

L’hypoth`ese1permet d’exclure le cas pathologique des matrices de transition dont certains coefficients repr´esenteraient des coˆuts infinis. Remarquons que cette hypoth`ese n’exclut pas la pr´esence de coˆut infini dans les cycles. Cette propri´et´e n’est pas n´ecessaire pour la d´emonstration puisqu’une telle pr´esence est r´epercut´ee sur la valeur de ρ.

Th´eor`eme 3.1.

Soit T = <Σ, I, Q, M > un programme quantitatif lin´eaire tel que : – Σ est un ensemble fini d’´etats,

– l’ensemble sous-jacent du dio¨ıde Q est R,

– la loi ⊗ du dio¨ıde Q est l’op´erateur arithm´etique +. Alors, sous l’hypoth`ese 1, on a :

ρ(T ) = lim n→∞ M t∈JT Kt r |t|=n ˜ q(t) D´emonstration. SoitJT Kn

t r le sous-ensemble des traces de longueur n appartenant `a la s´emantique

de trace de T . Nous montrons le th´eor`eme en bornant la quantit´e L

t∈JT K

n t r

˜ q(t). Nous ´ecrivons la preuve en utilisant l’arithm´etique « usuelle » afin qu’elle soit plus lisible et intuitive. La loi⊗ est d´efinie par l’op´erateur +, de telle sorte que la multiplication q⊗ · · · ⊗ q de n fois la mˆeme valeur q produit n.q. La racine n-i`eme correspond alors `a l’op´erateur de division par n. La loi ⊕ et son ordre associ´e ≤ peut ˆetre interpr´et´e par max et ≤ ou par min et ≥.

Nous traitons d’abord le cas o`u la valeur > apparaˆıt dans les cycles (acces- sibles) de la s´emantique de trace. Dans ce cas, il existe une longueur n0 telle que,

pour tout n plus grand que n0, il est possible de construire une trace de longueur

n qui inclut cette transition de coˆut infini. Le coˆut global et moyen de cette trace sont aussi ´egaux `a >, et il en est alors de mˆeme pour ρ(T ). L’´egalit´e souhait´ee est alors trivialement v´erifi´ee.

Pla¸cons-nous maintenant dans le cas o`u> n’apparaˆıt pas dans l’ensemble des transitions accessibles de la s´emantique. On s’int´eresse `a la quantit´e L

t∈JT Kn t r

q(t) |t| . Notons N la longueur de la plus grande trace de JT Kt r qui ne contient pas de

cycle2. Toute trace t de taille n > N peut ˆetre d´ecompos´ee sous la forme suivante : t = p1.c1. . . ck−1.pk o`u    ci est un cycle r =Pi|pi| ≤ N p1. . . . .pk est acyclique

Pour simplifier les notations, nous traitons le cas o`u k = 1, le cas g´en´eral ´etant trait´e de la mˆeme fa¸con. La trace t peut ainsi ˆetre ´ecrite

t = p.c.s o`u    c est un cycle r =|p| + |s| ≤ N p.s est acyclique

On cherche `a majorer le coˆut q(t). Pour ce faire, on va consid´erer q−(resp. q+)

le coˆut minimum (resp. maximum) des transitions accessibles de T . L’existence de ces extrema est assur´e par le fait que l’ensemble Σ est fini. Notons que par d´efinition des transitions q− 6= ⊥ et, par hypoth`ese, q+6= >. Grˆace `a la proposi-

tion 3, on sait que le coˆut moyen de tout cycle de T est major´e par ρ(T ), le coˆut long-run de T . On a alors

q(t) = (q(p) + q(s)) + q(c)≤ r.q++ (n− r).ρ(T ) (3.9)

Par d´efinition, r et n− r sont des entiers positifs. On a donc

q(t) = (q(p) + q(s)) + q(c)≤ N.|q+| + (n − A).ρ(T ) (3.10)

o`u la valeur de A est donn´ee par N ou −N en fonction du signe de ρ(T ). En sommant (3.10) pour tout t de taille n, on obtient

M

t∈JT K

n t r

q(t)≤ N.|q+| + (n − A).ρ(T ) (3.11)

Cherchons maintenant une borne inf´erieure.

Puisque l’on se restreint `a l’ensemble des ´etats accessibles, on remarque que pour tout n, il existe une trace dans JT Kn

t r telle que tout cycle de cette trace

est critique c.`a.d. de coˆut moyen ´egal `a ρ(T ). Consid´erons tmax l’une des traces

v´erifiant cette propri´et´e. Comme pr´ec´edemment, on ´ecrit tmax sous la forme tmax =

p.c.s (le cas g´en´eral se traitant de la mˆeme fa¸con), o`u p et s sont des chemins acycliques et c est seulement compos´e de cycles critiques. On a alors

q(tmax)≤ M t∈JT K n t r q(t) (3.12)

2. Il convient de noter que N est bien d´efini car nous avons suppos´e que l’ensemble des ´etats Σ est fini.

Cette in´egalit´e est trivialement v´erifi´ee puisque tmax ∈JT K

n

t r et⊕ est idempotente.

Minorons maintenant le coˆut de cette trace.

q(tmax) = (q(p) + q(s)) + q(c)

q(tmax)≥ N.|q−| + (n − A).ρ(T ) (3.13)

Cette in´egalit´e est une cons´equence du fait que r.q− minore q(p.s), et que (n−

r).ρ(T ) est le coˆut exact du chemin c. En combinant les in´egalit´es (3.12) et (3.13), on obtient que : N.|q−| + (n − A).ρ(T ) ≤ M t∈JT K n t r q(t) (3.14)

On a ainsi prouv´e que :

N.|q−| + (n − A).ρ(T ) ≤ M t∈JT K n t r q(t)≤ N.|q+| + (n − A).ρ(T )

En divisant chaque membre de cette in´egalit´e par n, on obtient

F (n) = N.|q−| n + n− A n .ρ(T )≤ M t∈JT K n t r q(t) n ≤ N.|q+| n + n− A n .ρ(T ) = G(n) Finalement, comme an ⊕ n =b a⊕ bn , on obtient :

F (n) M t∈JT K n t r q(t) n ≤ G(n) (3.15) ´

Etudions maintenant le comportement asymptotique de (3.15). lim n→∞F (n) = limn→∞G(n) = ρ(T ) Ceci implique : lim n→∞ M t∈JT K n t r q(t) n = ρ(T ) c.`a.d. en utilisant les termes propres aux dio¨ıdes

lim n→∞ M t∈JT K n t r n p q(t) = ρ(T )

Tous les dio¨ıdes ne v´erifient pas toujours l’´egalit´e du th´eor`eme 3.1. On peut citer, par exemple, le dio¨ıde (P(S), ∩, ∪) qui peut ˆetre utilis´e pour analyser si certaines portions de code sont sˆures d’ˆetre ex´ecut´ees. Le diagramme de la figure 3.4 repr´esente un programme T dont le coˆut long-run ρ(T ) ne co¨ın- cide pas avec le coˆut asymptotique de T . En effet, dans cet exemple, on a ρ(T ) = {a} ⊕ {b} = {a} ∩ {b} = ∅, alors que toute trace suffisamment grande contient a, ce qui implique que leur somme (c.`a.d. leur intersection) contient ce coˆut (le nœud marqu´e en noir est l’´etat initial du graphe).

{a} {a}

{ } {b}

Figure 3.4 – Programme T constituant un contre-exemple au th´eor`eme 3.1dans le dio¨ıde (P(S), ∩, ∪)