Hay un problema (muy general) que examiné como parte de un proyecto: una variante de este problema sigue siendo NP-hard incluso en gráficos con dos vértices y un solo borde, y una variante diferente es NP-hard en los árboles. Dado que la dureza NP de la primera variante obviamente no se deriva de la forma del gráfico, la segunda es probablemente más interesante.
SCG=(V,E)S⊂VC⊂VS∩C=∅s∈S|s|Ff∈F|f|e∈EteR⊆C×F(c,f)∈Rcf
s∈SAs∑f∈As|f|≤|s|PrGr=(c,f)∈Rcsf∈AseDer=(c,f)∈DePre∑(c,f)∈De|f|≤te
Si no necesita que se enruten todas las descargas, sino que intente maximizar la suma de los tamaños de archivo de las descargas que se enrutan, puede reducir fácilmente la suma de subconjuntos a este problema: tiene un único servidor con grandes cantidades de espacio, un cliente único conectado al servidor con un borde con una capacidad igual al valor objetivo de la instancia de suma de subconjuntos y para cada número entero en la instancia de suma de subconjuntos, crea un archivo con el mismo tamaño; el cliente luego desea descargar todos estos archivos.
Una variante (¿mucho?) Más interesante para esta pregunta es el caso de que intente minimizar el número de bordes cuya capacidad se excede; quizás la red en la que estamos trabajando modela los cables de Internet transatlánticos y reemplazar un cable es tan costosa que la diferencia en costo de actualización a un factor dos más rápido y una actualización a un factor tres más rápido es insignificante. También decimos que las ubicaciones de los archivos en los servidores ya están indicadas y no se pueden modificar, por lo que solo analizamos los problemas de enrutamiento.
US⊆P(U)u∈U
s∈Su∈su
La idea es que el cliente necesita los archivos que son únicos para todos los clústeres de servidores, por lo que los bordes que conectan al cliente con los clústeres de servidores ya están en el límite de sus capacidades (sus capacidades son 1, los archivos tienen un tamaño 1). Si el cliente descarga cualquier elemento del universo desde cualquier clúster, el borde que se conecta a ese clúster se sobrecarga. Ya que solo requerimos minimizar el númerode sobrecargas (y no por cuánto excedemos las capacidades), el cliente puede descargar el resto de los elementos del universo alojado en ese clúster de servidores (por lo tanto, el resto de los elementos del subconjunto correspondiente) sin penalización. Por lo tanto, esto corresponde al subconjunto elegido. El cliente quiere descargar todos los archivos en el universo una vez, por lo que el universo estará cubierto, y para minimizar el número de bordes que están sobrecargados, necesitamos minimizar el número de subconjuntos elegidos.
Tenga en cuenta que la construcción anterior produce un gráfico de árbol, por lo que es un ejemplo de un problema NP-difícil en los árboles.