code: def solve(self):
          
          with log_duration(self._print, "memcache get (resolve) took %s"):
              solver_dict = self._get_cached_solve()
  
          if solver_dict:
              self.from_cache = True
              self._set_result(solver_dict)
          else:
              self.from_cache = False
              solver = self._solve()
              solver_dict = self._solver_to_dict(solver)
              self._set_result(solver_dict)
  
              with log_duration(self._print, "memcache set (resolve) took %s"):
                  self._set_cached_solve(solver_dict)
docs: Perform the solve.