pub struct DFA { /* private fields */ }Expand description
Automate a état fini déterministe
Implementations§
Source§impl DFA
impl DFA
Sourcepub fn new(
_start: State,
_delta: HashMap<Transition<State>, State>,
_fsm: FSM,
) -> Self
pub fn new( _start: State, _delta: HashMap<Transition<State>, State>, _fsm: FSM, ) -> Self
Créer un automate a état fini déterministe
§Arguments
_start- L’état initial de l’automate_delta- Une HashMap decrivant les differentes transition de l’automate_fsm- Une machine à état fini décrivant l’automate
§Examples
Le contenu du json
{
"states" : ["q_0","q_1"],
"alphabet" : ["b","a"],
"ends" : ["q_0"],
"start" : "q_0",
"delta" : [
{
"state" : "q_0",
"symbol" : "a",
"image" : "q_1"
},
{
"state" : "q_1",
"symbol" : "b",
"image" : "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/DFA1.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 dfa : DFA = DFA::from_json_file(link_file);
//creation depuis du json
let dfa2 : DFA = DFA::from_json(&content_json);
let fsm: FSM = FSM::from_json(&content_json);
//creation depuis new
let dfa3 : DFA = DFA::new(dfa.get_start().clone(), dfa.get_delta().clone(), fsm.clone());
}§Return
DFA- L’automate déterministe à état fini correspondante
pub fn apply_delta(&self, transition: Transition<State>) -> Option<&State>
Sourcepub fn to_transpose(&self) -> NDFA
pub fn to_transpose(&self) -> NDFA
Réalise la transposition de l’automate
use automaters::*;
use std::fs;
use serde_json::{Value, from_str};
fn main() {
let link_file: &str = "src/automates/DFA1.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 dfa : DFA = DFA::from_json_file(link_file);
let nfa : NDFA = dfa.to_transpose();
}§Return
NDFA- Un NDFA correspondant a la transposition de self
Sourcepub fn to_minimize(&self) -> DFA
pub fn to_minimize(&self) -> DFA
Renvoie la version minimize de l’automate
use automaters::*;
use std::fs;
use serde_json::{Value, from_str};
fn main() {
let link_file: &str = "src/automates/DFA1.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 mut dfa : DFA = DFA::from_json_file(link_file);
// minimisation
dfa = dfa.to_minimize();
}§Return
DFA- Le DFA apres avoir été minimizé
Trait Implementations§
Source§impl AutomateJsonIO for DFA
impl AutomateJsonIO for DFA
Source§fn from_json(content_json: &Value) -> Self
fn from_json(content_json: &Value) -> Self
Créer un automate à état fini détérministe depuis un chemin du json
§Arguments
_start- L’état initial de l’automate_delta- Une HashMap decrivant les differentes transition de l’automate_fsm- Une machine à état fini décrivant l’automate
§Examples
Le contenu du json
{
"states" : ["q_0","q_1"],
"alphabet" : ["b","a"],
"ends" : ["q_0"],
"start" : "q_0",
"delta" : [
{
"state" : "q_0",
"symbol" : "a",
"image" : "q_1"
},
{
"state" : "q_1",
"symbol" : "b",
"image" : "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/DFA1.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 dfa : DFA = DFA::from_json(&content_json);
}§Return
DFA- L’automate déterministe à état fini 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
_start- L’état initial de l’automate_delta- Une HashMap decrivant les differentes transition de l’automate_fsm- Une machine à état fini décrivant l’automate
§Examples
Le contenu du json
{
"states" : ["q_0","q_1"],
"alphabet" : ["b","a"],
"ends" : ["q_0"],
"start" : "q_0",
"delta" : [
{
"state" : "q_0",
"symbol" : "a",
"image" : "q_1"
},
{
"state" : "q_1",
"symbol" : "b",
"image" : "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/DFA1.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 dfa : DFA = DFA::from_json_file(link_file);
}§Return
DFA- L’automate déterministe à état fini correspondante
Source§impl AutomateTrait<State> for DFA
impl AutomateTrait<State> for DFA
Source§fn get_starts(&self) -> &State
fn get_starts(&self) -> &State
Aliases of self.get_start
Source§fn get_delta(&self) -> &HashMap<Transition<State>, State>
fn get_delta(&self) -> &HashMap<Transition<State>, 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
Auto Trait Implementations§
impl Freeze for DFA
impl RefUnwindSafe for DFA
impl Send for DFA
impl Sync for DFA
impl Unpin for DFA
impl UnwindSafe for DFA
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more