pub struct FuzzyInferenceSystem {
pub fis_type: FISType,
pub n_inputs: usize,
pub output_size: usize,
pub output_domain: Vec<f64>,
pub defuzz_method: DefuzzMethod,
pub mamdani_rules: Vec<MamdaniRule>,
pub sugeno_rules: Vec<SugenoRule>,
}Expand description
A unified fuzzy inference system supporting both Mamdani and Sugeno styles.
Fields§
§fis_type: FISTypeSystem type.
n_inputs: usizeNumber of input variables.
output_size: usizeUniverse size for output (used in Mamdani).
output_domain: Vec<f64>Domain for Mamdani defuzzification.
defuzz_method: DefuzzMethodDefuzzification method (for Mamdani).
mamdani_rules: Vec<MamdaniRule>Mamdani rules (populated if Mamdani).
sugeno_rules: Vec<SugenoRule>Sugeno rules (populated if Sugeno).
Implementations§
Source§impl FuzzyInferenceSystem
impl FuzzyInferenceSystem
Sourcepub fn with_defuzz(self, method: DefuzzMethod) -> Self
pub fn with_defuzz(self, method: DefuzzMethod) -> Self
Set the defuzzification method (Mamdani only).
Sourcepub fn add_mamdani_rule(
&mut self,
antecedent_mf: Vec<f64>,
consequent: FuzzySet,
)
pub fn add_mamdani_rule( &mut self, antecedent_mf: Vec<f64>, consequent: FuzzySet, )
Add a Mamdani rule.
Sourcepub fn add_sugeno_rule(
&mut self,
antecedent_mf: Vec<f64>,
output_coeffs: Vec<f64>,
output_const: f64,
)
pub fn add_sugeno_rule( &mut self, antecedent_mf: Vec<f64>, output_coeffs: Vec<f64>, output_const: f64, )
Add a Sugeno rule.
Sourcepub fn infer_mamdani(&self, input_degrees: &[Vec<f64>]) -> f64
pub fn infer_mamdani(&self, input_degrees: &[Vec<f64>]) -> f64
Run Mamdani inference and defuzzify.
input_degrees[i] contains the firing degrees for input variable i.
Sourcepub fn infer_sugeno(&self, inputs: &[f64], input_degrees: &[Vec<f64>]) -> f64
pub fn infer_sugeno(&self, inputs: &[f64], input_degrees: &[Vec<f64>]) -> f64
Run Sugeno inference and return crisp output.
Sourcepub fn is_configured(&self) -> bool
pub fn is_configured(&self) -> bool
Returns true if the FIS has at least one rule.
Auto Trait Implementations§
impl Freeze for FuzzyInferenceSystem
impl RefUnwindSafe for FuzzyInferenceSystem
impl Send for FuzzyInferenceSystem
impl Sync for FuzzyInferenceSystem
impl Unpin for FuzzyInferenceSystem
impl UnsafeUnpin for FuzzyInferenceSystem
impl UnwindSafe for FuzzyInferenceSystem
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