IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Ajouter une condition a une regle


Sujet :

avec Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 143
    Points : 60
    Points
    60
    Par défaut Ajouter une condition a une regle
    Salut a tous,
    j'ai deux classes définis comme suit :
    classe Rule a deux champs de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    .
    .
    .
    Test m_test
    Rule m_next
    et la deuxième c'est Test ( un ensemble de condition pour la regle )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Attribut m_attr ;
    int   m_value;
    Test m_next
    donc une règle Rule a des testes de Type Test tel que chaque test a (attr = value) et m_next c'est le test suivant et le dernier test a comme m_next "null" ,
    j'ai creer une méthode appelée Add1 qui va prendre en paramètre une règle de type Rule et qui va l'ajouter un test ( cette règle peut avoir plusieurs testes et je doit ajouter un a la fin ) voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    private List<PrismRule> Add1(PrismRule r, Instances data) throws Exception {
     
     
                PrismRule CR_rules = addRule(null , new PrismRule(data, 0)); 
     
     
                int cl=r.m_classification; // possible value of theClass
                Instances E, ruleE;
     
                Test test = null, oldTest = null;
                int bestCorrect, bestCovers, attUsed;
                Enumeration enumAtt;
                getCapabilities().testWithFail(data); // can classifier handle the data?
                data = new Instances(data);
                data.deleteWithMissingClass();// remove instances with missing class
                E = data; // initialize E to the instance set
                ruleE = E; // examples covered by this rule
                test = new Test(); 
                CR_rules.m_test=test;
     
              // for every attribute not mentioned in the rule
                enumAtt = ruleE.enumerateAttributes();
                while (enumAtt.hasMoreElements()) 
                {
     
                     Attribute attr = (Attribute) enumAtt.nextElement();
                     if (isMentionedIn(attr, r.m_test)) {continue;}
                     int M = attr.numValues();
                     for (int val = 0; val < M; val ++) // ... for each value of this attribute
                     {
                              PrismRule cr = addRule(null , new PrismRule(data, r.m_classification));
     
     
     
     
     
                             if (r.m_test == null) {
     
                              Test Tst3 =new Test() ;
                              Tst3.m_attr=attr.index();
                              Tst3.m_val=val;
                              cr.m_ruleSize=cr.m_ruleSize+1;
                              cr.m_test=Tst3;
     
     
     
        }                       else {
     
     
                              int y = r.m_ruleSize;
     
     
                               Test Tstold =new Test() ;
                               Tstold.m_attr = r.m_test.m_attr;
                               Tstold.m_val = r.m_test.m_val;
                               cr.m_test=Tstold;
     
                              Test Tst3 =new Test() ;
                              Tst3.m_attr=attr.index();
                              Tst3.m_val=val;
     
                              cr.m_test.m_next=Tst3;
                              cr.m_ruleSize=y; 
                              cr.m_ruleSize++;
     
     
     
                               }
     
     
     
     
     
     
     
     
                              CR.add(cr); 
                              // System.out.println("new added "+cr);
     
     
     
                     }
     
     
     
                }
     
     
     
           List<PrismRule> CR1= new ArrayList<PrismRule>();
           CR1=CR;
     
     
     
     
     
      return  CR ;
       }
    mon probleme c'est que ce code ajout une condition pour une regle qui n as pas de test ou ajoute un test dans la deuxième position , cad si j'ai une règle de type et je veux ajouter teste4 ca va me donner , comment je fais ?

  2. #2
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    j'ai essayer avec while mais toujours le même problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
     
    while(r.mtest != null){
    int y = r.m_ruleSize;
     
     
                               Test Tstold =new Test() ;
                               Tstold.m_attr = r.m_test.m_attr;
                               Tstold.m_val = r.m_test.m_val;
                               cr.m_test=Tstold;
     
                              Test Tst3 =new Test() ;
                              Tst3.m_attr=attr.index();
                              Tst3.m_val=val;
     
                              cr.m_test.m_next=Tst3;
                              cr.m_ruleSize=y; 
                              cr.m_ruleSize++;
     
      r.m_test=r.m_test.m_next;

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2015, 10h13
  2. Réponses: 1
    Dernier message: 21/01/2011, 10h17
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. masquer ou afficher une condition liée à une condition?
    Par secondechance dans le forum IHM
    Réponses: 2
    Dernier message: 14/11/2008, 20h36
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo