Flex.EngineAdapter behaviour (FLex v0.2.2)

View Source

Summary

Types

antecedent()

@type antecedent() :: [Flex.Variable.t(), ...]

consequent()

@type consequent() :: Flex.Variable.t()

engine_state()

@type engine_state() :: %Flex.EngineAdapter.State{
  crisp_output: integer() | float(),
  fuzzy_antecedent: map(),
  fuzzy_consequent: Flex.Variable.t(),
  input_vector: list(),
  type: Flex.EngineAdapter.Mamdani | Flex.EngineAdapter.TakagiSugeno
}

Engine Adapter State.

  • :type - defines the inference engine behavior (default: Mamdini).
  • :fuzzy_antecedent - fuzzification output.
  • :fuzzy_consequent - inference output.
  • :crisp_output - defuzzification output.

rules()

@type rules() :: [Flex.Rule.t(), ...]

Callbacks

defuzzification(engine_state)

@callback defuzzification(engine_state()) :: engine_state()

fuzzification(engine_state, antecedent)

@callback fuzzification(engine_state(), antecedent()) :: engine_state()

inference(engine_state, rules, consequent)

@callback inference(engine_state(), rules(), consequent()) :: engine_state()

validation(engine_state, antecedent, rules, consequent)

@callback validation(engine_state(), antecedent(), rules(), consequent()) ::
  engine_state()

Functions

default_fuzzification(list1, list2, ant_map)

defuzzification(engine_state)

fuzzification(engine_state, antecedent)

get_crisp_output(state)

inference(engine_state, rules, consequent)

validation(engine_state, antecedent, rules, consequent)