From 11e54c077aabaed4a80f04b80a0fdac8c88d179e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Men=C3=A9ndez?= <gonchimenendez@gmail.com>
Date: Wed, 5 Dec 2018 15:19:20 -0300
Subject: [PATCH] hdslkfj

---
 .../malva/rep/GA/newGA.req.cc                 | 197 ++++++++++--------
 1 file changed, 112 insertions(+), 85 deletions(-)

diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc
index 5520c96..be69134 100644
--- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc
+++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc
@@ -891,91 +891,118 @@ skeleton newGA
 */
 	void Mutation::mutate(Solution& sol) const
 	{   
-//         cout << "ESTOY ENTRANDO A MUTATION" << endl;
-// 		std::vector<std::vector<int>> _grupos = sol.pbm().datosColumnas();
-//         
-//         Rarray<Rarray<int>> tempVar = sol.array_var();
-//         for (int col = 0; col < tempVar.size(); col++)
-//         {
-//             for(int fil = 0; fil < tempVar[col].size(); fil++)
-//             {
-//                 cout << tempVar[col][fil] << " ";
-//             }
-//             cout << endl;
-//         }
-//         
-//         cout << "printed sol" << endl;
-//         
-// 		for (int i=0;i<sol.pbm().cantColumnas();i++)
-// 		{
-//             cout << "forColumnasBegin" << endl; 
-// 			int j = 0;
-//             cout << "grupos.size() = " << _grupos[i].size() << endl;
-// 			for (int g=0; g<_grupos[i].size(); g++)
-// 			{
-//                 cout << "forGruposBegin" << endl; 
-//                 cout << "i = " << i << endl;
-//                 cout << "j = " << j << endl;
-//                 //cout << "sol.var(i, j) = " << sol.var(i,j) << endl;
-// 				while (sol.var(i, j) != 1)
-// 				{
-// 					j+= 1;
-//                     //cout << "sol.var(i, j) = " << sol.var(i,j) << endl;
-// 				}
-// 				cout << "j after while = " << j << endl;
-// 				cout << "here?" << endl;
-// 				if (rand01()<=probability[1])
-// 				{
-//                     cout << "selectedForMutation" << endl;
-//                     
-// 					int selector = rand_int(0, 1);
-// 					if (selector == 0)
-// 					{
-//                         cout << "selector0Begin" << endl; 
-// 						if ((j-2 >= 0) && (sol.var(i, j - 2) == 0))
-// 						{
-// 							sol.var(i, j - 1) = 1;
-// 							sol.var(i, j + _grupos[i][g] - 1) = 0;
-// 							j = j + _grupos [i][g] - 1;
-// 						}
-// 						else if ((j + _grupos[i][g] + 1 < sol.pbm().cantFilas()) && (sol.var(i, j + _grupos[i][g] + 1) == 0))
-// 						{
-// 							sol.var(i, j) = 0;
-// 							sol.var(i, j + _grupos[i][g]) = 1;
-// 							j = j + _grupos [i][g] + 1;
-// 						}
-// 						cout << "selector0End" << endl; 
-// 					}
-// 					else
-// 					{
-//                         cout << "selector1Begin" << endl; 
-// 						if ((j + _grupos[i][g] + 1 < sol.pbm().cantFilas()) && (sol.var(i, j + _grupos[i][g] + 1) == 0))
-// 						{
-// 							sol.var(i, j) = 0;
-// 							sol.var(i, j + _grupos[i][g]) = 1;
-// 							j = j + _grupos [i][g] + 1;
-// 						}
-// 						else if ((j-2 >= 0) && (sol.var(i, j - 2) == 0))
-// 						{
-// 							sol.var(i, j - 1) = 1;
-// 							sol.var(i, j + _grupos[i][g] - 1) = 0;
-// 							j = j + _grupos [i][g] - 1;
-// 						}
-// 						cout << "selector1End" << endl; 
-// 					}
-// 				}
-// 				else
-// 				{
-// 					j = j + _grupos[i][g];
-// 				}
-// 				
-// 				cout << "forColumnasEnd" << endl; 
-// 			}
-// 			
-// 			cout << "forColumnasEnd" << endl; 
-// 		}
-// 		
-//     cout << "ESTOY SALIENDO DE MUTATION" << endl;
+        cout << "ESTOY ENTRANDO A MUTATION" << 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;
+        }
+ 		std::vector<std::vector<int>> _grupos = sol.pbm().datosColumnas();
+         
+         Rarray<Rarray<int>> tempVar = sol.array_var();
+	     for (int col = 0; col < tempVar.size(); col++)
+	     {
+	         for(int fil = 0; fil < tempVar[col].size(); fil++)
+	         {
+	             cout << tempVar[col][fil] << " ";
+	         }
+	         cout << endl;
+	     }
+         
+         cout << "printed sol" << endl;
+         
+ 		for (int i=0;i<sol.pbm().cantColumnas();i++)
+ 		{
+            cout << "forColumnasBegin" << endl; 
+ 			int j = 0;
+             cout << "grupos.size() = " << _grupos[i].size() << endl;
+ 			for (int g=0; g<_grupos[i].size(); g++)
+			{
+                 cout << "forGruposBegin" << endl; 
+                 cout << "i = " << i << endl;
+                 cout << "j = " << j << endl;
+                 //cout << "sol.var(i, j) = " << sol.var(i,j) << endl;
+ 				while (sol.var(i, j) != 1)
+ 				{
+ 					j+= 1;
+                     //cout << "sol.var(i, j) = " << sol.var(i,j) << endl;
+ 				}
+ 				cout << "j after while = " << j << endl;
+ 				cout << "here?" << endl;
+ 				if (rand01()<=probability[1])
+ 				{
+                     cout << "selectedForMutation" << endl;
+                     
+ 					int selector = rand_int(0, 1);
+					if (selector == 0)
+ 					{
+                         cout << "selector0Begin" << endl; 
+ 						if ((j-2 >= 0) && (sol.var(i, j - 2) == 0))
+ 						{
+ 							sol.var(i, j - 1) = 1;
+ 							sol.var(i, j + _grupos[i][g] - 1) = 0;
+ 							j = j + _grupos [i][g] - 1;
+ 						}
+ 						else if ((j + _grupos[i][g] + 1 < sol.pbm().cantFilas()) && (sol.var(i, j + _grupos[i][g] + 1) == 0))
+ 						{
+ 							sol.var(i, j) = 0;
+ 							sol.var(i, j + _grupos[i][g]) = 1;
+ 							j = j + _grupos [i][g] + 1;
+ 						}
+ 						cout << "selector0End" << endl; 
+ 					}
+ 					else
+ 					{
+                        cout << "selector1Begin" << endl; 
+ 						if ((j + _grupos[i][g] + 1 < sol.pbm().cantFilas()) && (sol.var(i, j + _grupos[i][g] + 1) == 0))
+ 						{
+ 							sol.var(i, j) = 0;
+ 							sol.var(i, j + _grupos[i][g]) = 1;
+ 							j = j + _grupos [i][g] + 1;
+ 						}
+ 						else if ((j-2 >= 0) && (sol.var(i, j - 2) == 0))
+ 						{
+ 							sol.var(i, j - 1) = 1;
+ 							sol.var(i, j + _grupos[i][g] - 1) = 0;
+ 							j = j + _grupos [i][g] - 1;
+ 						}
+ 						cout << "selector1End" << 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
-- 
GitLab