Class CoverabilityGraph


  • public class CoverabilityGraph
    extends java.lang.Object
    Cette classe nous permet de calculer l'arbre de couverture. Celui-ci est ensuite converti en graphe de couverture. Nous n'utilisons plus la classe ReachabilityGraph pour le GMA mais celle-ci. En effet, lorsqu'un RdP est borné, son graphe de couverture est le GMA.
    • Field Detail

      • model

        private final Model model
      • marquagesAccessibles

        public java.util.List<Marquage> marquagesAccessibles
      • marquagesATraiter

        public java.util.List<Marquage> marquagesATraiter
      • liste_node

        public java.util.List<Node> liste_node
      • nb_marquages

        public int nb_marquages
    • Constructor Detail

      • CoverabilityGraph

        public CoverabilityGraph​(Model model)
        Constructeur
        Parameters:
        model - : modèle actuel, au moment du clic sur la fonction "Générer le GMA / Graphe de couverture".
    • Method Detail

      • getListe_node

        public java.util.List<Node> getListe_node()
        Méthode qui nous permet de récupérer la liste des noeuds
        Returns:
        List de Node
      • getNb_marquages

        public int getNb_marquages()
      • addVector

        private Marquage addVector​(Marquage v,
                                   java.util.Vector<java.util.Vector<java.lang.Integer>> u,
                                   int t)
        Méthode qui nous permet de faire une addition entre un vecteur et une colonne d'une matrice.
        Parameters:
        v - : vecteur
        u - : matrice
        t - : indice de la colonne
        Returns:
        vecteur après addition.
      • subVector

        private Marquage subVector​(Marquage v,
                                   Marquage u)
        Méthode qui nous permet de faire une soustraction entre deux vecteurs. Utilisé pour le test de couverture.
        Parameters:
        v - : vecteur
        u - : vecteur
        Returns:
        le vecteur de différence.
      • couvre

        private boolean couvre​(Marquage m,
                               java.util.Vector<java.util.Vector<java.lang.Integer>> pre,
                               int t)
        Cette méthode permet de vérifier si le marquage du noeud actuel couvre une colonne de la matrice W_moins ou Pré. On va tester si le marquage du noeud est inférieur à la colonne t de la matrice pré.
        Parameters:
        m - : marquage du noeud.
        pre - : matrice Pre du modèle.
        t - : indice de la transition.
        Returns:
        Vrai ou Faux.
      • couverture

        public boolean couverture​(Marquage M,
                                  Marquage M1)
        Cette méthode permet de determiner si le marquage M1 couvre le marquage M. Si M1 = M -> M1 ne couvre pas M. Si la différence entre M1 et M contient au moins un élément négatif et aucun positif (>0) -> M1 couvre M.
        Parameters:
        M - : marquage actuel.
        M1 - : marquage suivant.
        Returns:
        Vrai ou Faux.
      • containsMarquage

        public boolean containsMarquage​(java.util.List<Marquage> marquageList,
                                        java.util.Vector<java.lang.Integer> marquage)
        Méthode qui permet de savoir si un marquage donné est dans la liste de marquages donné.
        Parameters:
        marquageList - : liste de marquages.
        marquage - : marquage.
        Returns:
        Vrai ou Faux.
      • tryToAddOmegas

        public void tryToAddOmegas​(Marquage m,
                                   Marquage m1)
        Méthode essentiel pour le calcul du graphe de couverture. Elle permet d'ajouter les omegas lorsque M1 couvre M.
        Parameters:
        m - : marquage
        m1 - : marquage
      • calculateCoverabilityGraph

        public void calculateCoverabilityGraph()
        Méthode qui permet de calculer le GMA / graphe de couverture.