geqo.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * geqo.h
  4.  *   prototypes for various files in optimizer/geqo
  5.  *
  6.  * Copyright (c) 1994, Regents of the University of California
  7.  *
  8.  * $Id: geqo.h,v 1.16 1999/05/25 22:43:05 momjian Exp $
  9.  *
  10.  *-------------------------------------------------------------------------
  11.  */
  12. /* contributed by:
  13.    =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
  14.    *  Martin Utesch  * Institute of Automatic Control    *
  15.    =  = University of Mining and Technology =
  16.    *  utesch@aut.tu-freiberg.de  * Freiberg, Germany    *
  17.    =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
  18.  */
  19. #ifndef GEQO_H
  20. #define GEQO_H
  21. #include "nodes/nodes.h"
  22. #include "nodes/parsenodes.h"
  23. #include "nodes/relation.h"
  24. #include "optimizer/geqo_gene.h"
  25. /* GEQO debug flag */
  26. /*
  27.  #define GEQO_DEBUG
  28. */
  29. /* recombination mechanism */
  30. /*
  31.  #define ERX
  32.  #define PMX
  33.  #define CX
  34.  #define PX
  35.  #define OX1
  36.  #define OX2
  37.  */
  38. #define ERX
  39. /* genetic algorithm parameters */
  40. #define GEQO_FILE "pg_geqo" /* Name of the ga config file */
  41. #define MIN_POOL 128 /* minimum number of individuals */
  42. #define MAX_POOL 1024 /* maximum number of individuals */
  43. #define LOW_EFFORT 1 /* optimization effort values */
  44. #define MEDIUM_EFFORT 40 /* are multipliers for computed */
  45. #define HIGH_EFFORT 80 /* number of generations */
  46. #define SELECTION_BIAS 2.0 /* selective pressure within population */
  47.  /* should be 1.5 <= SELECTION_BIAS <= 2.0 */
  48. /* parameter values set in geqo_params.c */
  49. extern int PoolSize;
  50. extern int Generations;
  51. extern long RandomSeed;
  52. extern double SelectionBias;
  53. /* routines in geqo_main.c */
  54. extern RelOptInfo *geqo(Query *root);
  55. /* routines in geqo_params.c */
  56. extern void geqo_params(int string_length);
  57. /* routines in geqo_eval.c */
  58. extern void geqo_eval_startup(void);
  59. extern Cost geqo_eval(Query *root, Gene *tour, int num_gene);
  60. extern RelOptInfo *gimme_tree(Query *root, Gene *tour, int rel_count,
  61.    int num_gene, RelOptInfo *old_rel);
  62. #endif  /* GEQO_H */