c++代码实现 模糊综合算法_模糊识别算法设计

classFrckBase

{public:

FrckBase():mdll_type(0),malgorithm_type(0),mdata_matrix_cols(0),

mdata_matrix_rows(0),mmbs_matrix_cols(0),mmbs_matrix_rows(0),

merror_no(0),mthreshold_value(0),mdll_info(""),

mmembership_matrix(NULL)

{

}virtual ~FrckBase()

{

}/**功能:根据原始矩阵计算出隶属度

*参数:

* data_matrix:原始数据矩阵

*返回值:计算成功返回隶属度向量,失败返回NULL*/

virtual std::vector<:vector>> *caculateMembership(std::vector<:vector>> *data_matrix)=0;/** 功能:得到最近发生错误的错误信息

* 返回值:最近有错误发生返回错误信息,反之返回NULL*/

virtual std::string errorInfo(void)const=0;/** 功能:。得到动态库的信息

* 返回值:返回动态库信息*/

virtual std::string getMdllInfo(void)const=0;/** 功能:获得该动态库的类型(模糊识别特征知识库、模糊综合评判知识库)

* 返回值:该动态库的类型*/

virtual int getMdllType(void)const=0;/** 功能:获得该动态库支持的模糊识别算法类型(最大隶属原则1 2、阀值原则、择近原则、多个特性的择近原则)

* 返回值:该动态库支持的模糊识别算法类型*/

virtual int getMalgorithmType(void)const=0;/**功能:得到特征知识库支持数据矩阵的行数

*返回值:特征知识库支持数据矩阵的行数*/

virtual int getMdataMatrixCols(void)const=0;/**功能:得到特征知识库支持数据矩阵的列数

*返回值:特征知识库支持数据矩阵的列数*/

virtual int getMdataMatrixRows(void)const=0;/**功能:得到特征知识库支持隶属矩阵的行数

*返回值:特征知识库支持隶属矩阵的行数*/

virtual int getMmbsMatrixCols(void)const=0;/**功能:得到特征知识库支持隶属矩阵的列数

*返回值:特征知识库支持隶属矩阵的列数*/

virtual int getMmbsMatrixRows(void)const=0;/** 功能:得到阀值(模糊识别算法为阀值原则时可用)

* 返回:如果模糊识别算法为阀值原则时返回阀值,其它情况返回-1,表示不可用*/

virtual int getMthresholdValue(void)=0;/**功能:根据模糊识别算法得到的下标得到结果

*参数:

* index:模糊识别算法得到的下标

*返回:index正确返回结果,反之返回空字符串*/

virtual std::string getResult(int index)const=0;//设置错误号的友元函数

friend void set_error_no(intno);protected://设置错误号

virtual void setMerrorNo(int no)=0;protected:int mdll_type; //表示是模糊识别特征知识库还是模糊综合评判知识库

int malgorithm_type; //支持那类模糊识别算法(最大隶属原则1 2、阀值原则、择近原则、多个特性的择近原则)

int mdata_matrix_cols; //该特征知识库支持数据矩阵的行数

int mdata_matrix_rows; //该特征知识库支持数据矩阵的列数

int mmbs_matrix_cols; //该特征知识库支持隶属矩阵的行数

int mmbs_matrix_rows; //该特征知识库支持隶属矩阵的列数

int merror_no; //错误号

int mthreshold_value; //阀值(阀值原则时可用)

std::string mdll_info; //动态库信息

std::vector<:vector>> *mmembership_matrix;//原始数据相对于标准数据的隶属度构成的隶属矩阵

};void set_error_no(intno);//===================================================================/** 功能:获得模糊特征知识动态库的对象

* 返回值:成功返回模糊特征知识动态库的对象(指针)*/

extern "C" FrckBase *dllfrck_getobj(void);/** 功能:模糊特征知识动态库初始化

* 返回值:初始化成功返回0,失败返回-1*/

extern "C" int dllfrck_init(void);/** 功能:模糊特征知识动态库的控制

* 参数:

* type input output 成功返回

* 1 NULL NULL 动态库的类型 得到动态库的类型(模式别知识库还是模糊综合评判知识库)

* 2 NULL NULL 模糊识别算法类型 得到支持的模糊识别算法类型(最大隶属原则、阀值原则、择近原则、多个特性的择近原则)

* 3 NULL NULL 数据矩阵的行数 得到该知识库支持数据矩阵的行数

* 4 NULL NULL 数据矩阵的列数 得到该知识库支持数据矩阵的列数

* 5 NULL NULL 阀值 得到阀值(阀值原则时可用)

* 6 int数组大小 char* 实际信息大小 得到动态库信息

* 7 NULL NULL 隶属矩阵的行数 得到该知识库支持隶属矩阵的行数

* 8 NULl NULL 隶属矩阵的列数 得到该知识库支持隶属矩阵的列数

*返回值:成功返回依type参数而定,失败返回-1*/

extern "C" int dllfrck_control(int type,void *input,void *output);/** 功能:计算成绩分数相对于优、良、差的隶属度

* 参数:

* data_matrix:待识别的成绩矩阵(1x1)

* cols:data_matrix矩阵的行数

* rows:data_matrix矩阵的列数

* 返回值:计算成功返回待识别分数相对于优、良、差的隶属度(一个向量--1x3的矩阵)*/

extern "C" float **dllfrck_membership(float **data_matrix,int cols,introws);/**功能:根据模糊识别算法得到的下标得到结果

*参数:

* index:模糊识别算法得到的下标

*返回:index正确返回结果,反之返回空字符串*/

extern "C" const char *dllck_result(intindex);/** 功能:得到最近发生错误的详细信息

* 返回值:最近有错误发生则返回错误的详细信息,没有则返回NULL*/

extern "C" const char *dllfck_error(void);/** 功能:关闭动态库*/

extern "C" void dllfrck_close(void);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值