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

📄 classifierlist.h

📁 XCS is a new algorithm for artificial intelligent
💻 H
字号:
/*
/       (XCS)
/	------------------------------------
/	Learning Classifier System based on accuracy
/
/     by Martin Butz
/     University of Wuerzburg / University of Illinois at Urbana/Champaign
/     butz@illigal.ge.uiuc.edu
/     Last modified: 10-17-99
/
/     header for action with xClassifier and xClassifierSet
*/

struct xClassifier{
  char *con;
  char *act;

  double pre;
  double preer;
  double acc;
  double fit;
  int num;
  int exp;
  double peerssest;
  int gaIterationTime;
};

struct xClassifierSet{
  struct xClassifier *cl;
  struct xClassifierSet *next;
};

struct xClassifierSet * createRandomClassifierSet(int condLength, int actLength);
void createRandomCondition(char *con, int condLength);
void createRandomAction(char *act, int actLength);
void setInitialVariables(struct xClassifier *cl,int itTime);

struct xClassifierSet * getMatchSet(char *state,struct xClassifierSet **pop,struct xClassifierSet **killset,int itTime);
int match(char *m, char *c);
struct xClassifier * createCoverMatch(char *state, struct xClassifierSet *pop, int itTime);
void setMeans(struct xClassifierSet *set,struct xClassifier *cl,int itTime);
void createMatchingCondition(char *con,char *mstring);

struct xClassifierSet * getActionSet(char *action, struct xClassifierSet *ms);
void adjustActionSet(struct xClassifierSet *aset,double maxP,double reward);
void updateFitness(struct xClassifierSet *aset);

void discoveryComponent(struct xClassifierSet **set,struct xClassifierSet **pop,struct xClassifierSet **killset,int itTime);
void getDiscoversSums(struct xClassifierSet *set,double *sum,int *meangait,int *mssum,int itTime);
void selectTwoClassifiers(struct xClassifier **cl, struct xClassifier **parents, struct xClassifierSet *set,double fitsum, int itTime);
struct xClassifier * selectClassifierUsingRWS(struct xClassifierSet *set,double sum);
void insertDiscoveredClassifier(struct xClassifier *cl, struct xClassifier **parents, struct xClassifierSet **set,
				struct xClassifierSet **pop, struct xClassifierSet **killset, int len);

void subsumeClassifier(struct xClassifier *cl,struct xClassifier **parents,struct xClassifierSet *locset,struct xClassifierSet **pop);
int subsumeClassifierToSet(struct xClassifier *cl, struct xClassifierSet *set);
int subsumes (struct xClassifier *cl1, struct xClassifier * cl2);
int subsumesConditions (char * first, char * second);

int crossover(struct xClassifier **cl);
int mutation(struct xClassifier *cl);
void mutate(char *string,int pos,int type);

void addClassifierToKillSet(struct xClassifier *cl,struct xClassifierSet **pop);
int addClassifierToSet(struct xClassifier *cl,struct xClassifierSet **pop);
void addNewClassifierToSet(struct xClassifier *cl,struct xClassifierSet **pop);

struct xClassifier * deleteStochClassifier(struct xClassifierSet **pop);
struct xClassifier * deleteTypeOfClassifier(struct xClassifierSet *setp,struct xClassifierSet *setpl,struct xClassifierSet **pop);
double getDelProp(struct xClassifier *cl, double meanf);
int updateSet(struct xClassifierSet **uset,struct xClassifierSet *killset);

void freeSet(struct xClassifierSet **head);
void freeClassifierSet(struct xClassifierSet **head);
void freeClassifier(struct xClassifier *cl);

void printClassifier(struct xClassifier*c);
void fprintClassifier(FILE *fp,struct xClassifier *c);
void printClassifierSet(struct xClassifierSet *head);	/*letzter Eintrag zu Testzwecken!!!*/
void fprintClassifierSet(FILE *fp,struct xClassifierSet *head);

struct xClassifierSet * sortClassifierSet(struct xClassifierSet **cls,int type);

double absDouble(double value);

⌨️ 快捷键说明

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