diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc index c4a7d83225c62a0306ccf299c8651016a96cc10d..6697a62a26b765df6b14a619d13dc5b71ca5b751 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc @@ -412,39 +412,40 @@ skeleton newGA return !(*this == sol); } - void Solution::initialize() - { - for (int x = 0; x < _pbm.cantColumnas(); x++) + void Solution::initialize() { - for (int y = 0; y < _pbm.cantFilas(); y++) + for (int x = 0; x < _pbm.cantColumnas(); x++) { - _var[x][y] = 0; - } - } - - for (int i=0;i<_pbm.cantColumnas();i++) - { - int _firstPossible = 0; - int** _grupos = _pbm.datosColumnas(); - int* _cantGruposEnColumna = _pbm.cantGruposColumna(); - - for(int j=0; j < _cantGruposEnColumna[i]; j++) - { - int _lastPossible = _pbm.cantFilas() - _grupos[i][j]; - for (int k=j+1; k < _cantGruposEnColumna[i]; k++) + for (int y = 0; y < _pbm.cantFilas(); y++) { - _lastPossible -= _grupos[i][k] + 1; + _var[x][y] = 0; } + } + for (int i=0;i<_pbm.dimension();i++) + { + int _firstPossible = 0; + int** _grupos = _pbm.datosColumnas(); + int* _cantGruposEnColumna = _pbm.cantGruposColumna(); - int _startPosition = rand_int(_firstPossible, _lastPossible); - int _endPosition = _startPosition + _grupos[i][j] - 1; - for(int c = _startPosition; c < _endPosition; c++) + for(int j=0; j < _cantGruposEnColumna[i]; j++) { - _var[j][c] = 1; + int _lastPossible = _pbm.cantFilas() - _grupos[i][j]; + for (int k=j+1; k < _cantGruposEnColumna[i]; k++) + { + _lastPossible -= _grupos[i][k] + 1; + } + + int _startPosition = rand_int(_firstPossible, _lastPossible); + int _endPosition = _startPosition + _grupos[i][j] - 1; + for(int c = _startPosition; c < _endPosition; c++) + { + _var[j][c] = 1; + } + + _firstPossible = _endPosition + 1; } - } - } - } + } + } double Solution::fitness () { diff --git a/malva/rep/GA/newGA.req.cc b/malva/rep/GA/newGA.req.cc index cba5214c727ba7b14d51703d647f7aa50decdf29..653d43b819666278652d4834d7116555127fdffd 100644 --- a/malva/rep/GA/newGA.req.cc +++ b/malva/rep/GA/newGA.req.cc @@ -428,27 +428,8 @@ skeleton newGA //cout << _pbm.dimension(); for (int i=0;i<_pbm.dimension();i++) { - int _firstPossible = 0; - int** _grupos = _pbm.datosColumnas(); - int* _cantGruposEnColumna = _pbm.cantGruposColumna(); - - for(int j=0; j < _cantGruposEnColumna[i]; j++) - { - int _lastPossible = _pbm.cantFilas() - _grupos[i][j]; - for (int k=j+1; k < _cantGruposEnColumna[i]; k++) - { - _lastPossible -= _grupos[i][k] + 1; - } - - int _startPosition = rand_int(_firstPossible, _lastPossible); - int _endPosition = _startPosition + _grupos[i][j] - 1; - for(int c = _startPosition; c < _endPosition; c++) - { - _var[j][c] = 1; - } - - _firstPossible = _endPosition + 1; - } + _var[i]=rand_int(0,_pbm.cantEmpleados() - 1); + //_var[i]=rand_int(0,3); } }