⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 approximation.h

📁 粗糙集应用软件
💻 H
字号:
//-------------------------------------------------------------------
// Author........: Aleksander 豩rn
// Date..........:
// Description...:
// Revisions.....:
//===================================================================

#ifndef __APPROXIMATION_H__
#define __APPROXIMATION_H__

#include <copyright.h>

#include <kernel/structures/annotatedstructure.h>
#include <kernel/structures/equivalenceclasses.h>

//-------------------------------------------------------------------
// Class prototypes.
//===================================================================

class ifstream;
class ofstream;

//-------------------------------------------------------------------
// Class.........: Approximation
// Author........: Aleksander 豩rn
// Date..........:
// Description...: Represents the rough approximation of a set of
//                 objects.
// Revisions.....:
//===================================================================

class Approximation : public AnnotatedStructure {
private:

  //- Set approximations.............................................
	Handle<EquivalenceClasses> universe_;  // Universe, i.e. all objects.
	Handle<EquivalenceClasses> lower_;     // Lower approximation, i.e. those definitely inside.
	Handle<EquivalenceClasses> upper_;     // Upper approximation, i.e. those definitely or possibly inside
	Handle<EquivalenceClasses> boundary_;  // Upper approximation minus lower approximation, i.e. those possibly inside.
	Handle<EquivalenceClasses> outside_;   // Universe minus upper approximation, i.e. those definitely outside.

	int                        decision_;  // The decision class we've approximated.

protected:

	//- Constructors...................................................
  Approximation(const Approximation &in);

public:

  //- Constructor and destructor....................................
	Approximation();
  virtual ~Approximation();

  //- Methods inherited from Identifier.............................
	DECLAREIDMETHODS()

	//- Methods inherited from Persistent.............................
  virtual bool              Load(ifstream &stream);
  virtual bool              Save(ofstream &stream) const;

  //- Methods inherited from Structure..............................
  virtual Structure        *Duplicate() const;
  virtual void              Clear();

  //- Operators.....................................................
	Approximation            &operator=(const Approximation &in);
	bool                      operator==(const Approximation &in) const;
	bool                      operator!=(const Approximation &in) const;

  //- Accessors.....................................................
	int                       GetDecisionValue() const {return decision_;}
  bool                      SetDecisionValue(int decision) {decision_ = decision; return true;}

	const EquivalenceClasses *GetUniverse() const {return universe_.GetPointer();}
	bool                      SetUniverse(const EquivalenceClasses *universe) {universe_ = universe; return true;}

	const EquivalenceClasses *GetLowerApproximation() const {return lower_.GetPointer();}
	bool                      SetLowerApproximation(const EquivalenceClasses *lower) {lower_ = lower; return true;}

	const EquivalenceClasses *GetUpperApproximation() const {return upper_.GetPointer();}
	bool                      SetUpperApproximation(const EquivalenceClasses *upper) {upper_ = upper; return true;}

	const EquivalenceClasses *GetBoundaryRegion() const {return boundary_.GetPointer();}
	bool                      SetBoundaryRegion(const EquivalenceClasses *boundary) {boundary_ = boundary; return true;}

	const EquivalenceClasses *GetOutsideRegion() const {return outside_.GetPointer();}
	bool                      SetOutsideRegion(const EquivalenceClasses *outside) {outside_ = outside; return true;}

	//- Querying methods..............................................
	bool                      IsRough() const;
	bool                      IsCrisp() const;

	//- Numerical methods.............................................
	float                     GetSensitivity(int *no_correct = NULL, int *no_total = NULL) const;
	float                     GetSpecificity(int *no_correct = NULL, int *no_total = NULL) const;
	float                     GetAccuracy(int *no_correct = NULL, int *no_total = NULL) const;

};

#endif

⌨️ 快捷键说明

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