tfuzzycontroller.h

来自「人工智能中模糊逻辑算法 FuzzyLib 2.0 is a comprehen」· C头文件 代码 · 共 74 行

H
74
字号
////////////////////////////////////////////////////////////////////////////////
#ifndef TFuzzyController_h
#define TFuzzyController_h
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
//Fuzzy Logic Processing Sequence
////////////////////////////////////////////////////////////////////////////////
// 1. Aggregation		of predicate truths for each rule
// 2. Correlation		of predicate truths for each rule to consequent
// 3. Composition		of consequents of all rules
// 4. Defuzzification	of composition's result
////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////
#include "TFuzzyRule.h"
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
#define	MAX_RULES_PER_CONTROLLER		16
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
class TFuzzyController
{
  public:
    TVariable* 		input_variables[MAX_PREMISES_PER_PREDICATE];
    TFuzzyRule*		rules[MAX_RULES_PER_CONTROLLER];
    TVariable* 		output_variable;

  public:
	TFuzzyController();
	virtual ~TFuzzyController();

	void clear_input_variables();
	void add_input_variable(TVariable* variable);
	void remove_input_variable(TVariable* variable);
    void edit_input_variables();

	void clear_rules();
	void add_rule(TFuzzyRule* rule);
	void remove_rule(TFuzzyRule* rule);
    void edit_rules();

    
	TFuzzySet* GenerateOutputSet(
		   				int aggregation_method=ZADEH,			// ZADEH, MEAN, ... PRODUCT, BONDEDSUM
                	    int correlation_method=TRUNCATE,		// TRUNCATE, SCALE
	           			int alphaCut_type=STRONG,				// STRONG, WEAK
                    	int composition_method=ZADEH			// ZADEH, MEAN, ... PRODUCT, BONDEDSUM
					  );

	double	   GenerateOutput(
		   				int aggregation_method=ZADEH,			// ZADEH, MEAN, ... PRODUCT, BONDEDSUM
                	    int correlation_method=TRUNCATE,		// TRUNCATE, SCALE
	           			int alphaCut_type=STRONG,				// STRONG, WEAK
                    	int composition_method=ZADEH,			// ZADEH, MEAN, ... PRODUCT, BONDEDSUM
                        int defuzzification_method=CENTROID		// CENTROID, MAXIMUM_HIGHT, ...
					  );

	bool   operator == 	(TFuzzyController& controller2);	// comparison
};
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
#endif
////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?