Determinisation d'un automate

Ro00 Messages postés 2 Date d'inscription mardi 3 novembre 2020 Statut Membre Dernière intervention 3 novembre 2020 - Modifié le 3 nov. 2020 à 20:01
Ro00 Messages postés 2 Date d'inscription mardi 3 novembre 2020 Statut Membre Dernière intervention 3 novembre 2020 - 3 nov. 2020 à 19:21
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
A voir également:

2 réponses

Whismeril Messages postés 19035 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 6 mai 2024 656
3 nov. 2020 à 19:17
0
Rejoignez-nous