code: def reduce_coordination(network, z):
      r
      # Find minimum spanning tree using random weights
      am = network.create_adjacency_matrix(weights=sp.rand(network.Nt),
                                           triu=False)
      mst = csgraph.minimum_spanning_tree(am, overwrite=True)
      mst = mst.tocoo()
  
      # Label throats on spanning tree to avoid deleting them
      Ts = network.find_connecting_throat(mst.row, mst.col)
      Ts = sp.hstack(Ts)
      network['throat.mst'] = False
      network['throat.mst'][Ts] = True
  
      # Trim throats not on the spanning tree to acheive desired coordination
      Ts = sp.random.permutation(network.throats('mst', mode='nor'))
      Ts = Ts[:int(network.Nt - network.Np*(z/2))]
      trim(network=network, throats=Ts)
docs: r"""