Simscript III/Dictionnaire des instructions/COMPUTE

Un livre de Wikilivres.

L’énoncé compute permet de calculer des quantités statistiques sur un ensemble de valeurs défini par une boucle for (ou while ou until).

Syntaxe :



x doit être un attribut d’entité(s) permanente(s) ou un attribut d’entité temporaire.

Nom1,...,Nomn sont des noms de variables qui doivent être déclarées avant le compute et qui donnent en fin de boucle les quantités demandées par les mots-clés de l’énoncé.

Voici les mots clés et les calculs effectués par un compute:

Number N = nombre de valeurs de x sélectionnées dans la boucle
Sum
sum.of.square
Mean
mean.square sum.of.squares / n
Variance variance de x = mean.square – mean**2
std.dev écart-type de x = sqrt.f(varaince)
Maximum maximum des x
Minimum minimum des x
max(Repère) valeur du repère (index ou pointeur) de la boucle
min(Repère) plus interne pour lequel x atteint son max (ou son min)

Voici maintenant quelques exemples:

1.
for i = 1 to 10, compute TOTAL = sum of x(i)
2.
for each Canal called i,
    for each Sens called j,
    do
	...
	compute	R0Moy    as the mean,
                R0Max    as the maximum,
                JMax     as the max(j) of R0(i, j)
        ...
    loop

===> Si l'on veut aussi récupérer le IMax, il faut ajouter :

for each Sens called J,
    for each Canal called I,
        compute IMax as the max(I) of R0(I, J)
3. Trouver la plus courte file d'attente:
for each Pompe,
    compute Plus_Courte_File as the minimum of  N.Q.Pompe (Pompe)

Après la boucle, Plus_Courte_File contient la longueur de la plus courte file


4. Trouver le numéro de la plus courte file d’attente:
for each Pompiste,
    compute Meilleur_Pompiste as the minimum (Pompiste) of N.Q.Pompiste (Pompiste)

Après la boucle, Meilleur_Pompiste contient le numéro de la plus courte file d'attente de pompiste

for each Pompiste,
    request 1 unit of Pompiste (Meilleur_Pompiste)


5. Trouver le minimum et le maximum d’un ensemble ainsi que les numéros de des ensembles.
for each Vol in Départ,
         with Temps_Départ < 1200,
    compute     Passager_Max 	as the maximum,
                Passager_Min 	as the minimum,
                Vol_Max         as the maximum (vol)
                Vol_Min         as the minimum (vol) of Nb_Passager (vol))


Après la boucle,

Vol_Max : contient le numéro de vol avec le plus grand nombre de passagers.
Passager_Max : contient le nombre de passagers maximum dans le vol Vol_Max.
Vol_Min : contient le numéro de vol avec le plus petit nombre de passagers.
Passager_Min : contient le nombre de passagers minimum dans le vol Vol_Min.