pub struct NDFAEpsilon { /* private fields */ }Expand description
Automate a état fini déterministe
Implementations§
Source§impl NDFAEpsilon
impl NDFAEpsilon
Sourcepub fn new(
_starts: BTSet<State>,
_delta: HashMap<Transition<State>, BTSet<State>>,
_fsm: FSM,
) -> Self
pub fn new( _starts: BTSet<State>, _delta: HashMap<Transition<State>, BTSet<State>>, _fsm: FSM, ) -> Self
Créer un automate a état fini non déterministe
§Arguments
_starts- Les états initiaux de l’automate_delta- Une HashMap decrivant les differentes transitions de l’automate_fsm- Une machine à état fini
§Examples
Le contenu du json
{
"states" : ["q_0", "q_1", "q_2"],
"alphabet" : ["0","1", "ε"],
"ends" : [],
"starts" : ["q_0"],
"delta" : [
{
"state" : "q_0",
"symbol" : "ε",
"images" : ["q_1"]
},
{
"state" : "q_1",
"symbol" : "ε",
"images" : ["q_2"]
},
{
"state" : "q_2",
"symbol" : "ε",
"images" : ["q_0"]
}
]
}
Le chargement dans le code
use automaters::*;
use std::fs;
use serde_json::{Value, from_str};
fn main() {
let link_file: &str = "src/automates/NFA1e.json";
let content_json: Value = {
// Charge le contenu du fichier en tant que String
let content : String = fs::read_to_string(link_file).unwrap();
// Parse le texte en structure Json
from_str::<Value>(&content).unwrap()
};
//creation depuis un lien
let nfae : NDFAEpsilon = NDFAEpsilon::from_json_file(link_file);
//creation depuis du json
let nfae2 : NDFAEpsilon = NDFAEpsilon::from_json(&content_json);
let fsm: FSM = FSM::from_json(&content_json);
//creation depuis new
let nfae3 : NDFAEpsilon = NDFAEpsilon::new(nfae.get_starts().clone(), nfae.get_delta().clone(), fsm.clone());
}§Return
NDFAEpsilon- L’automate non déterministe à état fini avec Epsilon transition correspondante
Sourcepub fn apply_delta(&self, transition: Transition<State>) -> Option<BTSet<State>>
pub fn apply_delta(&self, transition: Transition<State>) -> Option<BTSet<State>>
Applique une transition et renvoie un set d’etat (representant l’image de la transition)
Sourcepub fn apply_deltas(
&self,
set_transition: Transition<BTSet<State>>,
) -> Option<BTSet<State>>
pub fn apply_deltas( &self, set_transition: Transition<BTSet<State>>, ) -> Option<BTSet<State>>
Applique les transition et renvoie un set d’etat (representant l’image de la transition)
Trait Implementations§
Source§impl AutomateJsonIO for NDFAEpsilon
impl AutomateJsonIO for NDFAEpsilon
Source§fn from_json(content_json: &Value) -> Self
fn from_json(content_json: &Value) -> Self
Créer un automate à état fini non détérministe depuis un chemin du json
§Arguments
_starts- Les états initiaux de l’automate_delta- Une HashMap decrivant les differentes transitions de l’automate_fsm- Une machine à état fini
§Examples
Le contenu du json
{
"states" : ["s","t", "u", "v"],
"alphabet" : ["b","a"],
"ends" : ["q_0"],
"starts" : ["s"],
"delta" : [
{
"state" : "s",
"symbol" : "a",
"images" : ["s", "t", "u", "v"]
},
{
"state" : "t",
"symbol" : "b",
"images" : ["s"]
},
{
"state" : "u",
"symbol" : "b",
"images" : ["t"]
},
{
"state" : "v",
"symbol" : "b",
"images" : ["u"]
}
]
}
Le chargement dans le code
use automaters::*;
use std::fs;
use serde_json::{Value, from_str};
fn main() {
let link_file: &str = "src/automates/NFA1e.json";
let content_json: Value = {
// Charge le contenu du fichier en tant que String
let content : String = fs::read_to_string(link_file).unwrap();
// Parse le texte en structure Json
from_str::<Value>(&content).unwrap()
};
//creation depuis du json
let nfae : NDFAEpsilon = NDFAEpsilon::from_json(&content_json);
}§Return
NDFAEpsilon- L’automate non déterministe à état fini avec Epsilon transition correspondante
Source§fn from_json_file(path: &str) -> Self
fn from_json_file(path: &str) -> Self
Créer un automate à état fini détérministe depuis un chemin vers un fichier json
§Arguments
_starts- Les états initiaux de l’automate_delta- Une HashMap decrivant les differentes transitions de l’automate_fsm- Une machine à état plusieur état fini décrivant l’automate
§Examples
Le contenu du json
{
"states" : ["s","t", "u", "v"],
"alphabet" : ["b","a"],
"ends" : ["q_0"],
"starts" : ["s"],
"delta" : [
{
"state" : "s",
"symbol" : "a",
"images" : ["s", "t", "u", "v"]
},
{
"state" : "t",
"symbol" : "b",
"images" : ["s"]
},
{
"state" : "u",
"symbol" : "b",
"images" : ["t"]
},
{
"state" : "v",
"symbol" : "b",
"images" : ["u"]
}
]
}
Le chargement dans le code
use automaters::*;
use std::fs;
use serde_json::{Value, from_str};
fn main() {
let link_file: &str = "src/automates/NFA1e.json";
let content_json: Value = {
// Charge le contenu du fichier en tant que String
let content : String = fs::read_to_string(link_file).unwrap();
// Parse le texte en structure Json
from_str::<Value>(&content).unwrap()
};
//creation depuis un lien
let nfae : NDFAEpsilon = NDFAEpsilon::from_json_file(link_file);
}§Return
NDFAEpsilon- L’automate déterministe à état fini correspondante
Source§impl AutomateTrait<BTSet<State>> for NDFAEpsilon
impl AutomateTrait<BTSet<State>> for NDFAEpsilon
Source§fn get_starts(&self) -> &BTSet<State>
fn get_starts(&self) -> &BTSet<State>
Retourne les états de départ de l’automate
Source§fn get_delta(&self) -> &HashMap<Transition<State>, BTSet<State>>
fn get_delta(&self) -> &HashMap<Transition<State>, BTSet<State>>
Retourne les transitions de l’automate
Source§fn get_states(&self) -> &BTSet<State>
fn get_states(&self) -> &BTSet<State>
Retournes les differents états de l’automate
Source§fn get_alphabet(&self) -> &BTSet<Symbol>
fn get_alphabet(&self) -> &BTSet<Symbol>
Retourne l’alphabet de l’automate
Source§fn accept(&self, _word: &str) -> bool
fn accept(&self, _word: &str) -> bool
indique si un mot est accepté dans la langue de l’automate
Source§fn to_dfa(&self) -> DFA
fn to_dfa(&self) -> DFA
Convertit le NFA en DFA
use automaters::*;
use std::fs;
use serde_json::{Value, from_str};
fn main() {
let link_file: &str = "src/automates/NFA1.json";
let content_json: Value = {
// Charge le contenu du fichier en tant que String
let content : String = fs::read_to_string(link_file).unwrap();
// Parse le texte en structure Json
from_str::<Value>(&content).unwrap()
};
//creation depuis un lien
let nfa : NDFA = NDFA::from_json_file(link_file);
dbg!(nfa.to_dfa());
}§Return
NDFA- L’automate déterministe à état fini qui correspondante
Source§impl Clone for NDFAEpsilon
impl Clone for NDFAEpsilon
Source§fn clone(&self) -> NDFAEpsilon
fn clone(&self) -> NDFAEpsilon
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more