Determinisation d'un automate

Signaler
Messages postés
2
Date d'inscription
mardi 3 novembre 2020
Statut
Membre
Dernière intervention
3 novembre 2020
-
Messages postés
2
Date d'inscription
mardi 3 novembre 2020
Statut
Membre
Dernière intervention
3 novembre 2020
-
Bonjour,
c'était demandé de moi d'écrire un code de programmation en java de déterminisation d'un automate non déterministe sans epsilon transitions par la méthode de construction des sous ensembles ...l'entrée et la sortie de ce code est un fichier txt avec le format suivant :
la 1 ère ligne:les symboles de l'alphabet séparés par des éspaces
la 2 : les états de l'automate séparés par des éspaces
la 3 : les états initiaux
la 4 : les états finaux
à partir de la 5 ligne : la fonction de transition segma(p,a)=q sous forme de triplets : p a q</bold>

pour le moment j'ai écris quelques lignes de code mais je ne sais pas comment continuer !
voilà ce que j'ai :
package thl_tp_determinisation;

import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;

public class main {
    
    public static void main(String []args) throws IOException 
    
    {
        
        File file = new File("/Users/mac/Desktop/Thl_Tp_determinisation/tp.txt");
        
        if (!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        else {
            
            try{
                BufferedWriter bw = new BufferedWriter(new FileWriter(file));
               
                bw.write(" a   b ");
                bw.newLine();
                
                bw.write(" 0   1   2   3   4 ");
                bw.newLine();

                                
                bw.write(" 0 ");
                bw.newLine();

                                                
                bw.write(" 1   3 ");
                bw.newLine();

                
                bw.write(" 0   b   1 ");
                bw.newLine();
                
                bw.write(" 0   a   2 ");
                bw.newLine();
                
                bw.write(" 0   b   3 ");
                bw.newLine();
                
                bw.write(" 0   a   4 ");
                bw.newLine();
                
                bw.write(" 1   b   1 ");
                bw.newLine();

                bw.write(" 1   a   2 ");
                bw.newLine();

                bw.write(" 2   b   2 ");
                bw.newLine();

                bw.write(" 2   a   1 ");
                bw.newLine();
                
                bw.write(" 3   b   3 ");
                bw.newLine();
                
                bw.write(" 3   a   4 ");
                bw.newLine();
                
                bw.write(" 4   a   4 ");
                bw.newLine();
                
                bw.write(" 4   b   3 ");
                bw.newLine();
                

                
                BufferedReader br = new BufferedReader(new FileReader(file));

                String line = br.readLine();

                while (line != null) {
                    
                    System.out.println(line);
                    line = br.readLine();
                }
                
                String a0="0 a";
                String b0="0 b";
                
                while (line != null) {
                    int i;
                    String s=" ";
                    for(i=line.indexOf("1 3");i<line.length();i++){
                       line = br.readLine();
                       if (s==a0){
                          line = br.readLine();
                            if (s==a0){
                                bw.write(a0+",24");
                                System.out.println(line);
                    line = br.readLine();
                                bw.newLine();
                            }
                    }
                      if  (s==b0){
                          line = br.readLine();
                            if (s==b0){
                                bw.write(b0+",13");
                                System.out.println(line);
                                line = br.readLine();
                                  bw.newLine();

                            }
                    }
                    }
                String a1="24 a";
                String b1="13 b";
                
                String a2="24 b";
                String b2="13 a";
                
                String a3="14 a";
                String b3="14 b";
                
                String a4="23 a";
                String b4="23 b";
                
                          
                                bw.write(a1+",14");
                                  bw.newLine();
                                  System.out.println(line);
                                  line = br.readLine();
                       
                          
                                bw.write(b1+",13");
                                System.out.println(line);
                                 line = br.readLine();
                                  bw.newLine();
                                                 
                                bw.write(a2+",23");
                                System.out.println(line);
                                line = br.readLine();
                                  bw.newLine();
                       
                          
                                bw.write(b2+",24");
                                System.out.println(line);
                                line = br.readLine();
                                  bw.newLine();
                       
                          
                                bw.write(a3+",24");
                                System.out.println(line);
                                line = br.readLine();
                                  bw.newLine();
                       
                          
                                bw.write(b3+",13");
                                System.out.println(line);
                                line = br.readLine();
                                  bw.newLine();
                    
                       
                          
                                bw.write(a4+",14");
                                System.out.println(line);
                                line = br.readLine();
                                  bw.newLine();
                       
                          
                                bw.write(b4+",23");
                                System.out.println(line);
                                line = br.readLine();
                                  bw.newLine();
                       }
                       
               bw.close();
               br.close();
                
            }
            
            
            catch (IOException e){
                e.printStackTrace();
            }
            
        }
        
    }

    
}

mais le problème c que j'ai fait le travaille pour un automate défini et non pas quelconque

2 réponses

Messages postés
15006
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
3 novembre 2020
450
Messages postés
2
Date d'inscription
mardi 3 novembre 2020
Statut
Membre
Dernière intervention
3 novembre 2020

car j'ai volu modifier ma question et je n'ai pas pu donc j'ai la répété!