code: protected Solution[] cloneSolutions(Solution[] old) {
  
        Solution[] news = new Solution[old.length];
        for (int i = 0; i < old.length; i++) {
           news[i] = old[i].clone();
        }
  
        return news;
  
     }
docs: /*
  After some reading of Cloneable, I prefered to call directly the clone
  method of solutions one by one, instead of using the clone() methods of
  Arrays, which I was not sure what clone() methods of its elements was
  going to invoke.