blob: 33066bba01bcfcbd37b293df5e5e924c7563dc26 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 | #ifndef GENALG_H
#define GENALG_H
typedef struct genalg_t {
  void ** population;
  size_t pop_count;
  double (*fitness)(void*);
  void * (*create_child)(void*);
  void (*org_free)(void*);
} genalg_t;
struct genalg_stats_t {
  double mean, variance;
  double min, max;
  void * best;
};
genalg_t * ga_create(
  size_t pop_count, 
  double (*fitness)(void*),
  void * (*create_child)(void*),
  void (*org_free)(void*)
);
void ga_free(genalg_t *ga);
void * ga_tournament_select(genalg_t *ga, int tournament_sz);
struct genalg_stats_t ga_population_statistics(genalg_t *ga);
int ga_replace_population(genalg_t *ga, int tournament_sz, int keep);
#endif
 |