code: def score_evaluate(tour, tour_sizes=None, tour_M=None):
      
      sizes_oo = np.array([tour_sizes[x] for x in tour])
      sizes_cum = np.cumsum(sizes_oo) - sizes_oo / 2
      s = 0
      size = len(tour)
      for ia in xrange(size):
          a = tour[ia]
          for ib in xrange(ia + 1, size):
              b = tour[ib]
              links = tour_M[a, b]
              dist = sizes_cum[ib] - sizes_cum[ia]
              if dist > 1e7:
                  break
              s += links * 1. / dist
      return s,
docs: SLOW python version of the evaluation function. For benchmarking
      purposes only. Do not use in production.