code: def clone(self):
          
  
          new_solution = self.__class__(self._problem, len(self._routes))
  
          # Clone routes
          for index, r in enumerate(self._routes):
              new_route = new_solution._routes[index]
              for node in r.nodes():
                  # Insere new node on new route
                  new_node = new_solution._nodes[node]
                  new_route.allocate([new_node])
  
          return new_solution
docs: Returns a deep copy of self
  
          Function clones:
          
          * route
          * allocation
          * nodes
          
          Returns
          -------
          type
              Deep copy of self