Maximizar pesos de borde de suma

9

Me pregunto si el siguiente problema tiene un nombre o algún resultado relacionado con él.

Sea un gráfico ponderado donde denota el peso del borde entre y , y para todos , . El problema es encontrar un subconjunto de vértices que maximice la suma de los pesos de los bordes adyacentes a ellos: Tenga en cuenta que estoy contando los bordes que están dentro del subconjunto y que están fuera del subconjunto, que es lo que distingue este problema de max-cut. Sin embargo, incluso si tanto u como v están en S , solo quiero contar el borde (u, v)G=(V,w)w(u,v)uvu,vVw(u,v)[1,1]

maxSV(u,v):uS or vSw(u,v)
uvS(u,v) una vez (en lugar de dos veces), que es lo que distingue el objetivo de ser simplemente la suma de los grados.

Tenga en cuenta que el problema es trivial si todos los pesos de los bordes no son negativos, ¡simplemente tome el gráfico completo!

Aaron Roth
fuente
Su definición no coincide con su nota más adelante sobre no contar los bordes duplicados. ¿Está sumando sobre pares ordenados o subconjuntos de 2 elementos? (este último le daría la propiedad que necesita, creo)
Suresh Venkat
1
Otra nota: los únicos pesos de borde NO contados son aquellos dentro de V \ S. ¿Está interesado en resultados de dureza o aproximaciones, porque en el primer caso, minimizar la suma de pesos de borde dentro de S '= V \ S podría ser el problema más natural? .
Suresh Venkat
@Suresh: La definición formal en la pregunta es correcta en lo que respecta a la relación de aproximación. Simplemente da exactamente el doble de lo que uno espera de las palabras.
Tsuyoshi Ito
@ TsuyoshiIto: oh, ya veo, porque los bordes del corte también se cuentan dos veces.
Suresh Venkat
1
El problema exacto es NP-hard porque, como Suresh escribió en su comentario, el problema es equivalente a la programación cuadrática {0,1} sin restricciones, que es NP-hard.
Tsuyoshi Ito

Respuestas:

3

No es realmente una solución, sino algunas observaciones.

Este es un caso especial del siguiente problema: dado un universo , y una colección de conjuntos , y una función de peso , encuentre el conjunto modo que esté maximizado (el peso de un conjunto es el peso total de sus elementos). Su problema corresponde al caso en el que cada elemento de aparece exactamente en dos conjuntos (pero no estoy seguro de cómo explotar esta restricción, aunque podría ayudar).U={1,,m}S1,,SnUw:U[1,1]I[n]w(iISi)U

Este es un problema de cobertura: similar a Max-k-Set-Cover, pero sin la restricción de usar sets y con pesos negativos permitidos. La aproximación codiciosa de Max-k-Set-Cover (en cada paso genera el conjunto que tiene el mayor peso de elementos descubiertos hasta el momento) genera una secuencia de conjuntos de modo que los primeros conjuntos sean una aproximación óptimo (por lo que esta es una aproximación simultánea para todos los ). Desafortunadamente, como de costumbre, hay un problema al analizarlo cuando los pesos pueden ser negativos. La observación básica del análisis del algoritmo codicioso es que si es el primer conjunto que se emite, entonces (kk1+1/ekS1w(S1)OPTk/kOPTksiendo el peso máximo cubierto por conjuntos), porque es menor que la suma de los pesos de los conjuntos en la solución óptima, y ​​cada uno de ellos tiene un peso menor que . Sin embargo, con pesos negativos ya no es cierto que es menor que la suma de los pesos en la solución óptima. En general, un enlace sindical ya no es cierto.kOPTkkw(S1)OPTk

Sasho Nikolov
fuente
5

FWIW, su problema es difícil de aproximar dentro de un factor multiplicativo de para cualquier .n1ϵϵ>0

Demostramos eso a continuación al dar una reducción de preservación de la aproximación del Conjunto Independiente, para lo cual se conoce la dureza de la aproximación.

Reducción del conjunto independiente

Deje que el gráfico no dirigido sea ​​una instancia de Conjunto Independiente. Deje denotar el grado de vértice en . Deje que es el número de vértices en .G=(V,E)dvvGnG

Construya el gráfico ponderado de borde partir de siguiente manera. Asigne a cada borde en peso 1. Para cada vértice no aislado , agregue nuevos bordes, cada uno con un peso , a nuevos vértices. Para cada vértice aislado , agregue un nuevo borde de peso 1 a un nuevo vértice.G=(V,E)GEvVdv11dv1vV

(Nota: cada nuevo vértice (en pero no ) tiene exactamente un vecino, que está en ).GGG

Lema tiene un conjunto independiente de tamaño iff (como una instancia de su problema) tiene una solución de valor al menos .GkGk

Prueba. Deje ser cualquier conjunto independiente de . Entonces, dado que los vértices en son independientes en , el valor de en (según su objetivo) es SGSGSG

vSdv(dv1) = |S|.

Por el contrario, que sea ​​una solución para de valor al menos . Sin pérdida de generalidad, suponga que no contiene vértices nuevos. (Cada nuevo vértice está en un solo borde . Si no estaba aislado en , entonces el peso del borde es , por lo que eliminar de aumenta el valor de Si se aisló, entonces el peso del borde es 1, por lo que eliminar de y agregar mantiene el valor de ).SGkSv(v,v)vG1vSSvvSvS

Sin pérdida de generalidad, se supone que es un conjunto independiente en . (De lo contrario, sea un borde tal que y estén en El peso total de los bordes incidentes de en es , entonces el peso total de Los bordes incidentes distintos de son como máximo cero. Por lo tanto, eliminar de no aumentaría el valor de ).SG(u,v)uvSvGdv(dv1)=1v(u,v)vSS

Ahora, por el mismo cálculo que al comienzo de la prueba, el valor de es. Se deduce que . QEDS|S||S|k

Como comentario adicional, puede solicitar una aproximación aditiva , por ejemplo, o . O(n)ϵm

Me parece posible que para su problema, incluso decidir si hay una solución de valor positivo podría ser NP-hard.

Neal Young
fuente