10.05.2014 Views

Algoritmi genetici pentru rezolvarea problemelor prin - Sorin ...

Algoritmi genetici pentru rezolvarea problemelor prin - Sorin ...

Algoritmi genetici pentru rezolvarea problemelor prin - Sorin ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Genome.cpp<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

14<br />

15<br />

16<br />

17<br />

18<br />

19<br />

20<br />

21<br />

22<br />

23<br />

24<br />

25<br />

26<br />

27<br />

28<br />

29<br />

30<br />

31<br />

32<br />

33<br />

34<br />

35<br />

36<br />

37<br />

38<br />

39<br />

40<br />

41<br />

42<br />

43<br />

44<br />

45<br />

46<br />

47<br />

48<br />

49<br />

50<br />

51<br />

52<br />

53<br />

54<br />

55<br />

56<br />

57<br />

58<br />

59<br />

60<br />

61<br />

62<br />

63<br />

64<br />

65<br />

66<br />

67<br />

68<br />

69<br />

70<br />

71<br />

72<br />

73<br />

74<br />

75<br />

76<br />

77<br />

78<br />

79<br />

80<br />

81<br />

82<br />

83<br />

//////////////////////////////////////////////////<br />

// (c) 2003 <strong>Sorin</strong> OSTAFIEV (sorin@ostafiev.com) //<br />

//////////////////////////////////////////////////<br />

// Genome.cpp: implementation of the Genome class.<br />

//<br />

//////////////////////////////////////////////////////////////////////<br />

#include "stdafx.h"<br />

#include "StringCovering.h"<br />

#include "Genome.h"<br />

#include "globals.h"<br />

#include <br />

#include "Population.h"<br />

#ifdef _DEBUG<br />

#undef THIS_FILE<br />

static char THIS_FILE[]=__FILE__;<br />

#define new DEBUG_NEW<br />

#endif<br />

//////////////////////////////////////////////////////////////////////<br />

// Construction/Destruction<br />

//////////////////////////////////////////////////////////////////////<br />

Genome::Genome(const Population* const population, const GA* const ga, const genome_type type /* = GENOME_ZERO */)<br />

_population(population),<br />

_ga(ga),<br />

_populationFitness(-1),<br />

_gaFitness(-1),<br />

_body(_genome_size)<br />

{<br />

switch (type)<br />

{<br />

}<br />

};<br />

case GENOME_RANDOM:<br />

{<br />

for (int i = 0; i < _genome_size; i++)<br />

{<br />

if (0 == (rand() & 1))<br />

{<br />

_body.reset(i);<br />

}<br />

else<br />

{<br />

_body.set(i);<br />

};<br />

};<br />

};<br />

break;<br />

case GENOME_ZERO:<br />

{<br />

_body.reset();<br />

};<br />

break;<br />

default:<br />

assert(0);<br />

break;<br />

Genome::~Genome()<br />

{<br />

}<br />

void Genome::Mutate()<br />

{<br />

assert (_genome_size == _body.size());<br />

}<br />

const int mutation_bit = rand() % _genome_size;<br />

_body.flip(mutation_bit);<br />

void Genome::Crossover(Genome &genome)<br />

Page 1 of 4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!