j demande au peu d'aide dans un projet en java

firas.m

عضو جديد
إنضم
25 نوفمبر 2008
المشاركات
35
مستوى التفاعل
1
Est ce qu'il y a quelq1 qui peu m'aider a commencer un projet en java qui consiste a transformer des automates finis a une expression régulier.
merci d'avance....
 

7amma_g

صديق المنتدى
إنضم
10 ماي 2008
المشاركات
1.904
مستوى التفاعل
4.635
Bonjour,
Alors théoriquement votre programme est faisable

Le théorème de Kleene dit que :
Les langages rationnels sont les langages reconnaissables

ça veut dire que pour tout expression il y un AF qui répond à cette expression et inversement,

En pratique, un tel programme me semble un peu difiicile mais en JAVA il y a certainement des bibliothèques qui peuvent aider

Je vous ai mis en PJ un cours théorique sur les automates
le paragraphe 4.8 a la fin du doc (pages 13/14)
Vous explique de manière théorique comment passer de l'automate au langage,

Et bon courage
 

المرفقات

  • cours_AF.pdf
    221,5 KB · المشاهدات: 45

firas.m

عضو جديد
إنضم
25 نوفمبر 2008
المشاركات
35
مستوى التفاعل
1
Merci pour votre aide et j'attend encore une ptite démonstartion avec JAVA ou un autre document qui peu m'aider a choisir le bon chemin pour la conception orienté objet de ce projet car la difficulté est de transformer le théorique en pratique (JAVA). merci d'avance
 

migatou

عضوة مميزة في القسم العام
إنضم
12 نوفمبر 2007
المشاركات
1.570
مستوى التفاعل
5.395
Si possible, ré-expliques ton projet..
Tu auras quoi comme entrées, traitements et sorties ?
Peut être que je pourrais aider à la conception d'une solution.

Bon courage



Merci pour votre aide et j'attend encore une ptite démonstartion avec JAVA ou un autre document qui peu m'aider a choisir le bon chemin pour la conception orienté objet de ce projet car la difficulté est de transformer le théorique en pratique (JAVA). merci d'avance
 

firas.m

عضو جديد
إنضم
25 نوفمبر 2008
المشاركات
35
مستوى التفاعل
1
Si possible, ré-expliques ton projet..
Tu auras quoi comme entrées, traitements et sorties ?
Peut être que je pourrais aider à la conception d'une solution.

Bon courage

Mon projet consiste qu'a partir d'un fichier text contenant a la premiere ligne l'ensemble des états,2eme ligne l'ensemble des états finaux,et les autres ligne contient l'ensemble des transitions possible pour l'automate.Le traitemant
consiste a transformer cet automate a une expression réguliere en utilisant la concaténation,l'augmentation et l'union des ce transitions afin d'obtnir comme resultat une expression simplifier réguliere. Merci d'avance
 

migatou

عضوة مميزة في القسم العام
إنضم
12 نوفمبر 2007
المشاركات
1.570
مستوى التفاعل
5.395

On est souvent habitué au traitement inverse.
Ce que tu cherches, n'est pas une transformation mais c'est plutôt trouver l'expression régulière qui dénote le langage de l'entrée.

La question qui me venait à la tête depuis toute à l'heure c'est à propos la structure de l'entrée.
Comment comptes-tu représenter les différentes transitions entre deux états.
Par exemple si on pourrait passer d'un état 1 à deux avec a ou b: 1-(a|b)->2




Mon projet consiste qu'a partir d'un fichier text contenant a la premiere ligne l'ensemble des états,2eme ligne l'ensemble des états finaux,et les autres ligne contient l'ensemble des transitions possible pour l'automate.Le traitemant
consiste a transformer cet automate a une expression réguliere en utilisant la concaténation,l'augmentation et l'union des ce transitions afin d'obtnir comme resultat une expression simplifier réguliere. Merci d'avance
 

firas.m

عضو جديد
إنضم
25 نوفمبر 2008
المشاركات
35
مستوى التفاعل
1

On est souvent habitué au traitement inverse.
Ce que tu cherches, n'est pas une transformation mais c'est plutôt trouver l'expression régulière qui dénote le langage de l'entrée.

La question qui me venait à la tête depuis toute à l'heure c'est à propos la structure de l'entrée.
Comment comptes-tu représenter les différentes transitions entre deux états.
Par exemple si on pourrait passer d'un état 1 à deux avec a ou b: 1-(a|b)->2

Tous est définie dans le fichier text a parcourir.
Voila un ecemple de fichier texte:

1 2 3 4
**Premiere ligne qui contient tous les états**

2 3
** Deuxieme ligne qui contient les états finaux

1 a 2
**De 1 on consome A pour passer a 2
 

migatou

عضوة مميزة في القسم العام
إنضم
12 نوفمبر 2007
المشاركات
1.570
مستوى التفاعل
5.395
Okay :)
Bon, la première idée qui me vient à l'esprit c'est que tu pourrais prévoir une classe avec trois "attributs", etatInitial, etatFinal et transition.
Les deux premiers champs sont (par exemple) de type String, et le troisième un tableau de String pour que tu puisses y enregistrer toutes les transitions possibles d'un état à un autre.

(Si l'histoire du fichier n'est pas obligatoire, ça serait meilleur de laisser l'utilisateur entrer ses états et transitions à partir de quelques jTextField par exemple)


L'idée générale est de lire la troisième ligne du fichier, de vérifier à chaque fois que les deux états, initial et final appartiennent à la première ligne du fichier, d'instancier dans ce cas ta classe et ré-itérer avec les transitions qui suivent

C'est à discuter avant d'aller plus loin



Tous est définie dans le fichier text a parcourir.
Voila un ecemple de fichier texte:

1 2 3 4
**Premiere ligne qui contient tous les états**

2 3
** Deuxieme ligne qui contient les états finaux

1 a 2
**De 1 on consome A pour passer a 2
 

7amma_g

صديق المنتدى
إنضم
10 ماي 2008
المشاركات
1.904
مستوى التفاعل
4.635
De très bonnes idées!

Essayez de bien penser vos structures de données,
Moi je dirais utilisez les LinkedList avec des entiers pour enregistrer les état initaux et les états finaux,

Puis une matrice d'adjascence (ou liste d'adjscence) pour les transitions (bref une representation classique comme si on était dans un graph

Je conseille aussi de GARDER l'utilisation du fichier pour 2 raisons :
- En pratique on préfère lire directement depuis un fichier
- ça permet d'aller beaucoup plus vite lors des tests

Merci à migatou pour son aide précieuse,

Et bon courage
 

firas.m

عضو جديد
إنضم
25 نوفمبر 2008
المشاركات
35
مستوى التفاعل
1
Okay :)
Bon, la première idée qui me vient à l'esprit c'est que tu pourrais prévoir une classe avec trois "attributs", etatInitial, etatFinal et transition.
Les deux premiers champs sont (par exemple) de type String, et le troisième un tableau de String pour que tu puisses y enregistrer toutes les transitions possibles d'un état à un autre.

(Si l'histoire du fichier n'est pas obligatoire, ça serait meilleur de laisser l'utilisateur entrer ses états et transitions à partir de quelques jTextField par exemple)


L'idée générale est de lire la troisième ligne du fichier, de vérifier à chaque fois que les deux états, initial et final appartiennent à la première ligne du fichier, d'instancier dans ce cas ta classe et ré-itérer avec les transitions qui suivent

C'est à discuter avant d'aller plus loin

Merci MIGATO pour votre aide,j vais essayé de commencer..​
 
أعلى