markov.flux
Class ModeleAvecActionsContinues

java.lang.Object
  extended by markov.FournisseurMarkov
      extended by markov.flux.ModeleAvecActionsContinues
All Implemented Interfaces:
IFonction, BoxModelObject, IFlux, java.io.Serializable, IFournisseur

public class ModeleAvecActionsContinues
extends FournisseurMarkov
implements BoxModelObject, IFonction

Propose les données d'un modèle markovien. Cette variante propose des actions continues, échantillonnées à pas variable.

Version:
2.10, 07/04/2003
Author:
Laurent JEANPIERRE
See Also:
ModeleAvecActionsDiscretes, Serialized Form

Field Summary
static java.lang.String description
          Renvoie une chaîne décrivant le rôle de la boîte.
 
Constructor Summary
ModeleAvecActionsContinues(ObjectDrawingFrame odf)
           
ModeleAvecActionsContinues(ObjectDrawingFrame odf, java.util.Collection data)
           
ModeleAvecActionsContinues(java.lang.String[] etats, java.lang.String[] actions, Distribution initiale, Distribution[][] trans)
          Initialise le fournisseur avec les données du modèle.
 
Method Summary
 void add(int entree, java.lang.Object valeur)
          Introduit une donnée dans cette section du flux.
 void addBlock(int entree, java.util.Collection valeur)
          Introduit un bloc de données dans cette section du flux.
 void changeEntryType(int no, java.lang.Class type)
          Modifie le type dynamique du flux.
 void changeExitType(int no, java.lang.Class type)
          Modifie le type dynamique du flux.
 void connect(IFlux autre)
          Connecte la sortie du flux à l'entrée d'une autre section du flux.
 void connect(IFlux autre, int entree)
          Connecte la sortie du flux à une entrée d'une autre section du flux.
 void connect(int sortie, IFlux autre)
          Connecte l'une des sorties du flux à l'entrée d'une autre section du flux.
 void connect(int sortie, IFlux autre, int entree)
          Connecte l'une des sorties du flux à une entrée d'une autre section du flux.
 void connectBack(int entree, IFlux autre, int sortie)
          Connecte l'une des entrées du flux à une sortie d'une autre section du flux afin d'obtenir un flux bidirectionnel.
 java.lang.String descriptionEntree(int no)
          Retourne la description de l'une des broches d'entrée.
 java.lang.String descriptionSortie(int no)
          Retourne la description de l'une des broches de sortie.
 java.lang.String descriptionUtilise(int no)
          Retourne la description de l'une des broches d'utilisation.
 void disconnect(int index)
          Deconnecte la sortie index.
 double[] domaine(int no)
          Renvoie le domaine de validité d'un paramètre.
 void drawRealObject(java.awt.Graphics g)
          Dessine l'objet visuel sur le contexte passé en paramètre.
 void dumpLocks()
          Liste les modules ayant vérrouillé ce module.
 void generateCode(java.io.FileWriter file)
          Code for initialisation overriding method in BoxModelObject *
 void generateConnections(java.io.FileWriter file)
          Code for the connections generated by individual connections *
 BoxObject getBox()
          Renvoie la boîte associée au modèle durant le design.
 BuildingPanel getBuildingPanel(boolean lockedBox)
          Récupère le panneau de conception de ce module.
 javax.swing.JPanel getDebugPanel()
          Renvoie un JPanel permettant d'agir sur le fonctionnement du module.
 Entree getEntry(int index)
          Recupère l'interface de l'une des entrées.
 int getEntryNb()
          Combien d'entrées sont disponibles ?
 java.lang.Class getEntryType(int no)
          Renvoie le type des entrées du flux.
 Sortie getExit(int index)
          Renvoie la sortie dont le numéro est specifié
 int getExitNb()
          Combien de sorties sont disponibles ?
 java.lang.Class getExitType(int no)
          Renvoie le type des sorties du flux.
 double getPSSA(int destination, int source, IAction action, long dateDebut, long dateFin)
          Récupère une probabilité de transition.
 BoxModelObject getUse(int broche)
          Renvoie l'un des objets en cours d'utilisation.
 int getUseNb()
          Combien de broches d'utilisation sont disponibles ?
 java.lang.Class getUseType(int no)
          Renvoie le type des broches d'utilisation du flux.
 boolean isUsing(int broche)
          Indique si la broche est en cours d'utilisation.
 void lock(java.lang.Object qui)
          Verrouille l'objet pour modification
 int nbParametres()
          Renvoie le nombre de paramètres de la fonction.
 double parametre(int no)
          Renvoie la valeur d'un paramètre.
 void printDescriptif(java.io.Writer flux, int no)
          Décrit un paramètre.
 void raz(int entree)
          Signale une remise à zéro du flux.
 void razBlock(int entree, java.util.Collection valeur)
          Modifie les données.
 void regleParametre(int no, double valeur)
          Règle un paramètre.
 java.lang.Class retourAutorise(int no)
          Indique pour quel type de boîte connectée à l'une des broches d'entrée un retour est autorisé.
 void sauvegarde_donnees(java.io.Writer fic)
          Sauvegarde les données du flux dans fic.
 void setActions(IAction[] lesActions)
          Règle les actions du modèle.
 void setBox(BoxObject with)
          Associe le modèle avec une boîte à utiliser durant le design.
 void setEtats(java.lang.String[] noms)
          Règle le nom des états du modèle.
 void setReference(double ref)
          Règle le laps de temps de référence.
 void setReglage()
          Empêche la fonction de faire des calculs à chaque règlage de paramètre.
 void setTransitions(Distribution[][] trans)
          Règle la table des transitions du modèle.
 void setTransitions(double[][][] trans)
          Règle la table des transitions du modèle.
 double tempsReference()
          Renvoie le laps de temps de référence.
 IFlux twin()
          Crée un clone du flux courant.
 void unlock(java.lang.Object qui)
          Deverrouille l'objet en fin de modification
 void unsetReglage()
          Pré la fonction en faisant les calculs nécessaires à la finalisation des règlages des paramètres.
 void unUse(int broche)
          Libère la broche.
 void use(int broche, java.lang.Object autre)
          Connecte l'une des broches du flux à un autre objet du flux.
 double valeur()
          Renvoie la valeur actuelle de la fonction.
 
Methods inherited from class markov.FournisseurMarkov
apprend, getAction, getAction, getEtat, getInit, getInit, getNbActions, getNbEtats, getPSA, marqueLu, marqueModification, modeleModifie, setInit, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

description

public static java.lang.String description
Renvoie une chaîne décrivant le rôle de la boîte.

Constructor Detail

ModeleAvecActionsContinues

public ModeleAvecActionsContinues(java.lang.String[] etats,
                                  java.lang.String[] actions,
                                  Distribution initiale,
                                  Distribution[][] trans)
Initialise le fournisseur avec les données du modèle.

Parameters:
etats - un tableau de String contenant une chaîne par état.
actions - un tableau de String contenant une chaîne par action.
initiale - un Distribution donnant la probabilité initiale de chacun des états.
trans - un tableau[action][etat1] de Distribution donnant la probabilité d'atteindre chaque états à partir de l'exécution de l'action action dans l'état etat1.

ModeleAvecActionsContinues

public ModeleAvecActionsContinues(ObjectDrawingFrame odf,
                                  java.util.Collection data)

ModeleAvecActionsContinues

public ModeleAvecActionsContinues(ObjectDrawingFrame odf)
Method Detail

setEtats

public void setEtats(java.lang.String[] noms)
Règle le nom des états du modèle.

Overrides:
setEtats in class FournisseurMarkov
Parameters:
noms - un tableau de String contenant une chaîne par état.

setActions

public void setActions(IAction[] lesActions)
Règle les actions du modèle.

Overrides:
setActions in class FournisseurMarkov
Parameters:
lesActions - un tableau de IAction

setTransitions

public void setTransitions(double[][][] trans)
Règle la table des transitions du modèle.

Parameters:
trans - un tableau[action][etat1][etat2] donnant la probabilité d'atteindre etat2 à partir de l'exécution de l'action action dans etat1.

setTransitions

public void setTransitions(Distribution[][] trans)
Règle la table des transitions du modèle.

Overrides:
setTransitions in class FournisseurMarkov
Parameters:
trans - un tableau[action][etat1] de Distribution donnant la probabilité d'atteindre chaque états à partir de l'exécution de l'action action dans l'état etat1.

setReference

public void setReference(double ref)
Règle le laps de temps de référence.

Parameters:
ref - le temps exprimé en secondes

tempsReference

public double tempsReference()
Renvoie le laps de temps de référence.

Returns:
un double correspondant à un temps exprimé en secondes

getPSSA

public double getPSSA(int destination,
                      int source,
                      IAction action,
                      long dateDebut,
                      long dateFin)
Récupère une probabilité de transition.

Specified by:
getPSSA in interface IFournisseur
Overrides:
getPSSA in class FournisseurMarkov
Parameters:
destination - le numéro de l'état final.
source - le numéro de l'état initial.
action - l'action à effectuer pendant cette transition.
dateDebut - le moment où la transition commence.
dateFin - le moment où la transition termine.
Returns:
la probabilité de la transition correspondante.

valeur

public double valeur()
Renvoie la valeur actuelle de la fonction.

Specified by:
valeur in interface IFonction
Returns:
un double contenant le résultat de la fonction avec les paramètres actuels.

nbParametres

public int nbParametres()
Renvoie le nombre de paramètres de la fonction.

Specified by:
nbParametres in interface IFonction
Returns:
un int contenant le le nombre de paramètres de la fonction.

printDescriptif

public void printDescriptif(java.io.Writer flux,
                            int no)
                     throws java.lang.IllegalArgumentException,
                            java.io.IOException
Décrit un paramètre.

Specified by:
printDescriptif in interface IFonction
Parameters:
flux - le flux où envoyer la description.
no - le numéro du paramètre à interroger.
Throws:
java.lang.IllegalArgumentException - si no n'est pas entre 0 et nbParametres().
java.io.IOException

setReglage

public void setReglage()
Empêche la fonction de faire des calculs à chaque règlage de paramètre.

Specified by:
setReglage in interface IFonction

unsetReglage

public void unsetReglage()
Pré la fonction en faisant les calculs nécessaires à la finalisation des règlages des paramètres.

Specified by:
unsetReglage in interface IFonction

domaine

public double[] domaine(int no)
                 throws java.lang.IllegalArgumentException
Renvoie le domaine de validité d'un paramètre.

Specified by:
domaine in interface IFonction
Parameters:
no - le numéro du paramètre à interroger.
Returns:
un double[2] contenant respectivement la borne inférieure et supérieure de l'intervalle de validité du paramètre numéro no.
Throws:
java.lang.IllegalArgumentException - si no n'est pas entre 0 et nbParametres().

regleParametre

public void regleParametre(int no,
                           double valeur)
                    throws java.lang.IllegalArgumentException
Règle un paramètre.

Specified by:
regleParametre in interface IFonction
Parameters:
no - le numéro du paramètre à règler.
valeur - la valeur du paramètre.
Throws:
java.lang.IllegalArgumentException - si no n'est pas entre 0 et nbParametres().
java.lang.IllegalArgumentException - si valeur n'est pas dans le domaine de validité du paramètre.

parametre

public double parametre(int no)
                 throws java.lang.IllegalArgumentException
Renvoie la valeur d'un paramètre.

Specified by:
parametre in interface IFonction
Parameters:
no - le numéro du paramètre à interroger.
Returns:
la valeur du paramètre.
Throws:
java.lang.IllegalArgumentException - si no n'est pas entre 0 et nbParametres().

sauvegarde_donnees

public void sauvegarde_donnees(java.io.Writer fic)
                        throws java.io.IOException
Sauvegarde les données du flux dans fic. La sauvegarde est faite en ASCII.

Specified by:
sauvegarde_donnees in interface BoxModelObject
Parameters:
fic - le Writer dans lequel il faut écrire.
Throws:
java.io.IOException

getBuildingPanel

public BuildingPanel getBuildingPanel(boolean lockedBox)
Description copied from interface: BoxModelObject
Récupère le panneau de conception de ce module.

Specified by:
getBuildingPanel in interface BoxModelObject

generateCode

public void generateCode(java.io.FileWriter file)
Code for initialisation overriding method in BoxModelObject *

Specified by:
generateCode in interface BoxModelObject
Parameters:
file - le fichier dans le quel le code sera écrit.

generateConnections

public void generateConnections(java.io.FileWriter file)
Code for the connections generated by individual connections *

Specified by:
generateConnections in interface BoxModelObject
Parameters:
file - le fichier dans le quel le code sera écrit.

drawRealObject

public void drawRealObject(java.awt.Graphics g)
Description copied from interface: BoxModelObject
Dessine l'objet visuel sur le contexte passé en paramètre.

Specified by:
drawRealObject in interface BoxModelObject
Parameters:
g - le contexte graphique sur lequel il faut dessiner.

getBox

public BoxObject getBox()
Description copied from interface: BoxModelObject
Renvoie la boîte associée au modèle durant le design.

Specified by:
getBox in interface BoxModelObject
Returns:
un BoxObject correspondant à l'interface entre le IFlux et l'application de design.

setBox

public void setBox(BoxObject with)
Description copied from interface: BoxModelObject
Associe le modèle avec une boîte à utiliser durant le design.

Specified by:
setBox in interface BoxModelObject
Parameters:
with - un BoxObject contenant les donnés;es de l'interface visuelle.

getDebugPanel

public javax.swing.JPanel getDebugPanel()
Renvoie un JPanel permettant d'agir sur le fonctionnement du module.

Specified by:
getDebugPanel in interface IFlux
Returns:
null si aucun panneau n'est disponible.

twin

public IFlux twin()
Crée un clone du flux courant. Toutes les caractèristiques seront recopiées. Aucun lien avec d'autres flux ne sera copié.

Specified by:
twin in interface IFlux

getExitType

public java.lang.Class getExitType(int no)
                            throws java.lang.IllegalArgumentException
Renvoie le type des sorties du flux.

Specified by:
getExitType in interface IFlux
Parameters:
no - le numéro de la sortie interrogé
Returns:
la Class correspondant à la sortie no.
Throws:
java.lang.IllegalArgumentException - si no n'est pas entre 0 et nbSorties()-1.

getEntryNb

public int getEntryNb()
Combien d'entrées sont disponibles ?

Specified by:
getEntryNb in interface IFlux
Returns:
le nombre d'entrées disponibles.

getExitNb

public int getExitNb()
Combien de sorties sont disponibles ?

Specified by:
getExitNb in interface IFlux
Returns:
le nombre de sorties disponibles.

descriptionEntree

public java.lang.String descriptionEntree(int no)
Retourne la description de l'une des broches d'entrée.

Specified by:
descriptionEntree in interface BoxModelObject
Parameters:
no - un entier contenant le numéro de la broche à interroger.

descriptionSortie

public java.lang.String descriptionSortie(int no)
Retourne la description de l'une des broches de sortie.

Specified by:
descriptionSortie in interface BoxModelObject
Parameters:
no - un entier contenant le numéro de la broche à interroger.

getEntryType

public java.lang.Class getEntryType(int no)
                             throws java.lang.IllegalArgumentException
Renvoie le type des entrées du flux.

Specified by:
getEntryType in interface IFlux
Parameters:
no - le numéro de l'entrée interrogé
Returns:
la Class correspondant à l'entrée no.
Throws:
java.lang.IllegalArgumentException - si no n'est pas entre 0 et nbEntrees()-1.

add

public void add(int entree,
                java.lang.Object valeur)
Introduit une donnée dans cette section du flux.

Specified by:
add in interface IFlux
Parameters:
entree - le numéro de l'entrée à remplir.
valeur - la donnée. Elle doit se conformer au type typeEntree(entree).

addBlock

public void addBlock(int entree,
                     java.util.Collection valeur)
Introduit un bloc de données dans cette section du flux.

Specified by:
addBlock in interface IFlux
Parameters:
entree - le numéro de l'entrée à remplir.
valeur - les données. Elles doivent toutes se conformer au type typeEntree(entree).

raz

public void raz(int entree)
Signale une remise à zéro du flux.

Specified by:
raz in interface IFlux
Parameters:
entree - le numéro de l'entrée à réinitialiser.

connect

public void connect(int sortie,
                    IFlux autre,
                    int entree)
             throws java.lang.IllegalArgumentException
Connecte l'une des sorties du flux à une entrée d'une autre section du flux.

Specified by:
connect in interface IFlux
Parameters:
sortie - le numéro de la sortie à connecter.
autre - la section de flux à connecter à la sortie.
entree - le numéro de l'entrée de autre à connecter sur la sortie.
Throws:
java.lang.IllegalArgumentException - si sortie n'est pas entre 0 et nbSorties()-1.
java.lang.IllegalArgumentException - si entree n'est pas entre 0 et autre.nbEntrees()-1.
java.lang.IllegalArgumentException - si le type de l'entrée ne correspond pas au type de la sortie.

connect

public void connect(IFlux autre,
                    int entree)
             throws java.lang.IllegalArgumentException
Connecte la sortie du flux à une entrée d'une autre section du flux.

Parameters:
autre - la section de flux à connecter à la sortie.
entree - le numéro de l'entrée de autre à connecter sur la sortie.
Throws:
java.lang.IllegalArgumentException - si le flux a plus d'une sortie.
java.lang.IllegalArgumentException - si entree n'est pas entre 0 et autre.nbEntrees()-1.
java.lang.IllegalArgumentException - si le type de l'entrée ne correspond pas au type de la sortie.

connect

public void connect(IFlux autre)
             throws java.lang.IllegalArgumentException
Connecte la sortie du flux à l'entrée d'une autre section du flux.

Parameters:
autre - la section de flux à connecter à la sortie.
Throws:
java.lang.IllegalArgumentException - si le flux a plus d'une sortie.
java.lang.IllegalArgumentException - si autre a plus d'une entré.
java.lang.IllegalArgumentException - si le type de l'entrée ne correspond pas au type de la sortie.

connect

public void connect(int sortie,
                    IFlux autre)
             throws java.lang.IllegalArgumentException
Connecte l'une des sorties du flux à l'entrée d'une autre section du flux.

Parameters:
sortie - le numéro de la sortie à connecter.
autre - la section de flux à connecter à la sortie.
Throws:
java.lang.IllegalArgumentException - si sortie n'est pas entre 0 et nbSorties()-1.
java.lang.IllegalArgumentException - si autre a plus d'une entré.
java.lang.IllegalArgumentException - si le type de l'entrée ne correspond pas au type de la sortie.

changeEntryType

public void changeEntryType(int no,
                            java.lang.Class type)
                     throws java.lang.IllegalAccessException
Modifie le type dynamique du flux.

Specified by:
changeEntryType in interface IFlux
Parameters:
no - le numéro de l'entrée à modifier.
type - le type dynamique de cette entrée
Throws:
java.lang.IllegalAccessException - si cette entrée est incompatible avec type

changeExitType

public void changeExitType(int no,
                           java.lang.Class type)
                    throws java.lang.IllegalAccessException
Modifie le type dynamique du flux.

Specified by:
changeExitType in interface IFlux
Parameters:
no - le numéro de la sortie à modifier.
type - le type dynamique de cette sortie
Throws:
java.lang.IllegalAccessException - si cette sortie est incompatible avec type

lock

public void lock(java.lang.Object qui)
Verrouille l'objet pour modification

Specified by:
lock in interface IFlux
Parameters:
qui - la référence de l'appelant

unlock

public void unlock(java.lang.Object qui)
            throws java.lang.IllegalAccessException
Deverrouille l'objet en fin de modification

Specified by:
unlock in interface IFlux
Parameters:
qui - la référence de l'appelant
Throws:
java.lang.IllegalAccessException - si qui n'a pas verrouillé ce flux.

razBlock

public void razBlock(int entree,
                     java.util.Collection valeur)
Modifie les données. Equivalent à un raz + ajouterBloc.

Specified by:
razBlock in interface IFlux
Parameters:
entree - le numéro de l'entrée à actualiser.
valeur - le bloc de valeurs à envoyer.

getEntry

public Entree getEntry(int index)
Recupère l'interface de l'une des entrées.

Specified by:
getEntry in interface IFlux
Parameters:
index - le numéro de l'entrées à récupérer.
Returns:
l'Entree gèrant cette entrées.
Throws:
java.lang.IllegalArgumentException - si index n'est pas entre 0 et nbEntrees()-1.

getExit

public Sortie getExit(int index)
Renvoie la sortie dont le numéro est specifié

Specified by:
getExit in interface IFlux
Parameters:
index - le numéro de la sortie à recupèrer.
Returns:
une Sortie correspondant au numéro demandé, ou null si elle n'existe pas.

disconnect

public void disconnect(int index)
Deconnecte la sortie index.

Specified by:
disconnect in interface IFlux
Parameters:
index - le numéro de la sortie à deconnecter.
Throws:
java.lang.IllegalArgumentException - si index n'est pas entre 0 et nbSorties()-1.

dumpLocks

public void dumpLocks()
Description copied from interface: IFlux
Liste les modules ayant vérrouillé ce module. Pour débogage.

Specified by:
dumpLocks in interface IFlux

getUseNb

public int getUseNb()
Combien de broches d'utilisation sont disponibles ?

Specified by:
getUseNb in interface IFlux
Returns:
le nombre de broches disponibles.

getUseType

public java.lang.Class getUseType(int no)
                           throws java.lang.IllegalArgumentException
Renvoie le type des broches d'utilisation du flux.

Specified by:
getUseType in interface IFlux
Parameters:
no - le numéro de la broche interrogé
Returns:
la Class correspondant à la broche no.
Throws:
java.lang.IllegalArgumentException - si no n'est pas entre 0 et nbUtilise()-1.

use

public void use(int broche,
                java.lang.Object autre)
         throws java.lang.IllegalArgumentException
Connecte l'une des broches du flux à un autre objet du flux.

Specified by:
use in interface IFlux
Parameters:
broche - le numéro de la broche à connecter.
autre - l'objet à utiliser
Throws:
java.lang.IllegalArgumentException - si broche n'est pas entre 0 et nbUtilise()-1.
java.lang.IllegalArgumentException - si le type de autre ne correspond pas au type de la broche.

descriptionUtilise

public java.lang.String descriptionUtilise(int no)
Retourne la description de l'une des broches d'utilisation.

Specified by:
descriptionUtilise in interface BoxModelObject
Parameters:
no - un entier contenant le numéro de la broche à interroger.

isUsing

public boolean isUsing(int broche)
                throws java.lang.IllegalArgumentException
Indique si la broche est en cours d'utilisation.

Specified by:
isUsing in interface IFlux
Parameters:
broche - le numéro de la broche à tester.
Throws:
java.lang.IllegalArgumentException - si broche n'est pas entre 0 et nbUtilise()-1.

getUse

public BoxModelObject getUse(int broche)
                      throws java.lang.IllegalArgumentException
Renvoie l'un des objets en cours d'utilisation.

Specified by:
getUse in interface IFlux
Parameters:
broche - le numéro de la broche à tester.
Throws:
java.lang.IllegalArgumentException - si broche n'est pas entre 0 et nbUtilise()-1.

unUse

public void unUse(int broche)
           throws java.lang.IllegalArgumentException
Libère la broche.

Specified by:
unUse in interface IFlux
Parameters:
broche - le numéro de la broche à déconnecter.
Throws:
java.lang.IllegalArgumentException - si broche n'est pas entre 0 et nbUtilise()-1.

retourAutorise

public java.lang.Class retourAutorise(int no)
Indique pour quel type de boîte connectée à l'une des broches d'entrée un retour est autorisé.

Specified by:
retourAutorise in interface BoxModelObject
Parameters:
no - un entier contenant le numéro de la broche à interroger.
Returns:
la classe dont doit dériver un module pour accepter ce retour. null si aucun retour n'est autorisé

connectBack

public void connectBack(int entree,
                        IFlux autre,
                        int sortie)
                 throws java.lang.IllegalArgumentException
Connecte l'une des entrées du flux à une sortie d'une autre section du flux afin d'obtenir un flux bidirectionnel.

Specified by:
connectBack in interface IFlux
Parameters:
entree - le numéro de l'entrée à connecter sur la sortie.
autre - la section de flux à connecter à la sortie.
sortie - le numéro de la sortie de autre à connecter.
Throws:
java.lang.IllegalArgumentException - si entree n'est pas entre 0 et nbEntrees()-1.
java.lang.IllegalArgumentException - si sortie n'est pas entre 0 et autre.nbSorties()-1.
java.lang.IllegalArgumentException - si le type de autre n'est pas acceptable pour un retour.