粗糙集(Roug Set)属性约简源代码(C/C++实现)Part5 DecisionTable.h

#include<iostream>
#include<vector>
#include<algorithm>
#include<fstream>
#include<sstream>
#include<string>
#include"Set.h"
#include"Element.h"
using namespace std;

#ifndef DecisionTable_H
#define DecisionTable_H

//决策表DT=(U, CUD, V, f)类声明--------------------------------------------------
class DecisionTable
{
public:
 static int iNo;  //用于决策表论域中样本的编号
public:
 DecisionTable();
 DecisionTable(vector<char>  &ConditionSet,
      vector<char> &DecisionSet,
            vector<Set> &ConditionValueSet,
      vector<Set> &DecisionValueSet);//通过条件集值与决策集值创建决策表
 DecisionTable(vector<char>   &ConditionSet,
      vector<char>   &DecisionSet,
            vector<vector<int>> &ConditionValueSet,
      vector<vector<int>> &DecisionValueSet);//通过条件集值与决策集值创建决策表
 const DecisionTable& operator=(DecisionTable &DT); //赋值构造函数
 DecisionTable(const char* FileName); //由限定格式文件FileName创建决策表
 void SaveToFile(const char* FileName); //把决策表保存到文件FileName中,自动生成文件格式

 void SetConditionSet(vector<char> &condition); //设置条件属性集
 void SetDecisionSet(vector<char> &decision); //设置决策属性集
 void SetU(int index, int newU);  //把决策表当前位置为index的样本编号设置为newU
 vector<int>  SetToiVector(Set &s); //把集合转化为向量
 vector<char> GetConditionSet();     //返回条件属性集
 vector<char> GetDecisionSet();  //返回决策属性集
 vector<Element> GetDT();   //返回决策表
 Element GetElement(int u);   //返回编号为u的样本
 int  NumberOfElement();   //返回决策表DT中的样本数
 void AddElement(Element &e);  //在决策表后添加样本e
 void AddElement(Element &e, bool flag); //当flag=true同AddElement(Element &e),否则添加样本,不自动编号,使用添加样本本身的编号
 int  FindElement(Element &e); //在决策表中查找样本e,存在则返回样本的编号,不存在返回-1
 void RemoveElement(int iNo);  //删除决策表DT中的样本号为iNo的第一个样本
 DecisionTable RemoveConditionAttribute(const char &c); //删除条件属性集中的属性c构成新的决策表
 DecisionTable AddConditionAttribute(const char &c, vector<int> &ValueOfc); //往条件属性集中添加属性c构成新的决策表
 DecisionTable SelAttrMakeDT(vector<char> &vec); //按给定的属性集的子集返回决策表
 Set ValueSetOfAttribue(const char &a); //返回条件属性a对应的值集

 Set POS();       //求决策表DT=(U, CUD, V, f)的D的C正区域
 bool   IsConsistentDecisionTable(); //判断决策表是否是一致决策表
 double RelyDegreeOfDToC();   //计算决策表中D对C的依赖度
 double RelyDegreeOfDToAttribute(const char &c); //计算决策表中D对C中的属性c的依赖度
 double SigOfAttribute(const char &c);   //计算条件属性集中属性c的重要度
 vector<char> Core();    //求决策表的核集
 bool   IsIndependentOfConditionSet();   //判断决策表的条件属性集是否是独立的
 int    CountOf(Element &e);   //统计样本e在决策表中出现的次数(只是指条件值决策值相同)
 int    CountOfDecisionValue(vector<int> &decValue); //计算给定决策值decValue出现的次数
 DecisionTable GetConsistentSubDT();  //分解得到一致决策表
 DecisionTable GetNotConsistentSubDT(); //分解得到不一致决策表
 DecisionTable Unique();    //返回决策表不同样本构成的决策表
 Set    GetM();      //获取论文中的近似一致样本编号集
 double LooseRelyDegreeOfDToC();  //求决策表D对C的松散依赖度
 double LooseRelyDegreeOfDToAttribute(const char &c);//求决策表D对属性c的松散依赖度


 void Print();      //打印决策表

private:
 vector<char> ConditionSet;
 vector<char> DecisionSet;
 vector<Element> DT;
 int SerialNumberOfElement;
};

#endif

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值