Skip to content
Snippets Groups Projects
Commit 11e54c07 authored by Gonzalo Menéndez's avatar Gonzalo Menéndez
Browse files

hdslkfj

parent 386ca891
No related branches found
No related tags found
No related merge requests found
...@@ -891,91 +891,118 @@ skeleton newGA ...@@ -891,91 +891,118 @@ skeleton newGA
*/ */
void Mutation::mutate(Solution& sol) const void Mutation::mutate(Solution& sol) const
{ {
// cout << "ESTOY ENTRANDO A MUTATION" << endl; cout << "ESTOY ENTRANDO A MUTATION" << endl;
// std::vector<std::vector<int>> _grupos = sol.pbm().datosColumnas();
// for (int fil = 0; fil < _pbm.cantFilas(); fil++)
// Rarray<Rarray<int>> tempVar = sol.array_var(); {
// for (int col = 0; col < tempVar.size(); col++) for(int col = 0; col < _pbm.cantColumnas(); col++)
// { {
// for(int fil = 0; fil < tempVar[col].size(); fil++) cout << _var[col][fil] << " ";
// { if (_var[col][fil] != 0 && _var[col][fil] != 1)
// cout << tempVar[col][fil] << " "; {
// } //exit(EXIT_FAILURE);
// cout << endl; }
// } }
// cout << endl;
// cout << "printed sol" << endl; }
// std::vector<std::vector<int>> _grupos = sol.pbm().datosColumnas();
// for (int i=0;i<sol.pbm().cantColumnas();i++)
// { Rarray<Rarray<int>> tempVar = sol.array_var();
// cout << "forColumnasBegin" << endl; for (int col = 0; col < tempVar.size(); col++)
// int j = 0; {
// cout << "grupos.size() = " << _grupos[i].size() << endl; for(int fil = 0; fil < tempVar[col].size(); fil++)
// for (int g=0; g<_grupos[i].size(); g++) {
// { cout << tempVar[col][fil] << " ";
// cout << "forGruposBegin" << endl; }
// cout << "i = " << i << endl; cout << endl;
// cout << "j = " << j << endl; }
// //cout << "sol.var(i, j) = " << sol.var(i,j) << endl;
// while (sol.var(i, j) != 1) cout << "printed sol" << endl;
// {
// j+= 1; for (int i=0;i<sol.pbm().cantColumnas();i++)
// //cout << "sol.var(i, j) = " << sol.var(i,j) << endl; {
// } cout << "forColumnasBegin" << endl;
// cout << "j after while = " << j << endl; int j = 0;
// cout << "here?" << endl; cout << "grupos.size() = " << _grupos[i].size() << endl;
// if (rand01()<=probability[1]) for (int g=0; g<_grupos[i].size(); g++)
// { {
// cout << "selectedForMutation" << endl; cout << "forGruposBegin" << endl;
// cout << "i = " << i << endl;
// int selector = rand_int(0, 1); cout << "j = " << j << endl;
// if (selector == 0) //cout << "sol.var(i, j) = " << sol.var(i,j) << endl;
// { while (sol.var(i, j) != 1)
// cout << "selector0Begin" << endl; {
// if ((j-2 >= 0) && (sol.var(i, j - 2) == 0)) j+= 1;
// { //cout << "sol.var(i, j) = " << sol.var(i,j) << endl;
// sol.var(i, j - 1) = 1; }
// sol.var(i, j + _grupos[i][g] - 1) = 0; cout << "j after while = " << j << endl;
// j = j + _grupos [i][g] - 1; cout << "here?" << endl;
// } if (rand01()<=probability[1])
// else if ((j + _grupos[i][g] + 1 < sol.pbm().cantFilas()) && (sol.var(i, j + _grupos[i][g] + 1) == 0)) {
// { cout << "selectedForMutation" << endl;
// sol.var(i, j) = 0;
// sol.var(i, j + _grupos[i][g]) = 1; int selector = rand_int(0, 1);
// j = j + _grupos [i][g] + 1; if (selector == 0)
// } {
// cout << "selector0End" << endl; cout << "selector0Begin" << endl;
// } if ((j-2 >= 0) && (sol.var(i, j - 2) == 0))
// else {
// { sol.var(i, j - 1) = 1;
// cout << "selector1Begin" << endl; sol.var(i, j + _grupos[i][g] - 1) = 0;
// if ((j + _grupos[i][g] + 1 < sol.pbm().cantFilas()) && (sol.var(i, j + _grupos[i][g] + 1) == 0)) j = j + _grupos [i][g] - 1;
// { }
// sol.var(i, j) = 0; else if ((j + _grupos[i][g] + 1 < sol.pbm().cantFilas()) && (sol.var(i, j + _grupos[i][g] + 1) == 0))
// sol.var(i, j + _grupos[i][g]) = 1; {
// j = j + _grupos [i][g] + 1; sol.var(i, j) = 0;
// } sol.var(i, j + _grupos[i][g]) = 1;
// else if ((j-2 >= 0) && (sol.var(i, j - 2) == 0)) j = j + _grupos [i][g] + 1;
// { }
// sol.var(i, j - 1) = 1; cout << "selector0End" << endl;
// sol.var(i, j + _grupos[i][g] - 1) = 0; }
// j = j + _grupos [i][g] - 1; else
// } {
// cout << "selector1End" << endl; cout << "selector1Begin" << endl;
// } if ((j + _grupos[i][g] + 1 < sol.pbm().cantFilas()) && (sol.var(i, j + _grupos[i][g] + 1) == 0))
// } {
// else sol.var(i, j) = 0;
// { sol.var(i, j + _grupos[i][g]) = 1;
// j = j + _grupos[i][g]; j = j + _grupos [i][g] + 1;
// } }
// else if ((j-2 >= 0) && (sol.var(i, j - 2) == 0))
// cout << "forColumnasEnd" << endl; {
// } sol.var(i, j - 1) = 1;
// sol.var(i, j + _grupos[i][g] - 1) = 0;
// cout << "forColumnasEnd" << endl; j = j + _grupos [i][g] - 1;
// } }
// cout << "selector1End" << endl;
// cout << "ESTOY SALIENDO DE MUTATION" << endl; }
}
else
{
j = j + _grupos[i][g];
}
cout << "forColumnasEnd" << endl;
}
cout << "forColumnasEnd" << endl;
}
cout << "secondPrint: " << endl;
for (int fil = 0; fil < _pbm.cantFilas(); fil++)
{
for(int col = 0; col < _pbm.cantColumnas(); col++)
{
cout << _var[col][fil] << " ";
if (_var[col][fil] != 0 && _var[col][fil] != 1)
{
exit(EXIT_FAILURE);
}
}
cout << endl;
}
cout << "ESTOY SALIENDO DE MUTATION" << endl;
} }
void Mutation::execute(Rarray<Solution*>& sols) const void Mutation::execute(Rarray<Solution*>& sols) const
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment