Articulo de referencia

Particionamiento de matroides

La partición de matroides es un problema que surge en el estudio matemático de los matroides y en el diseño y análisis de algoritmos . Su objetivo es particionar los elementos d...

La partición de matroides es un problema que surge en el estudio matemático de los matroides y en el diseño y análisis de algoritmos . Su objetivo es particionar los elementos de un matroide en la menor cantidad posible de conjuntos independientes. Un ejemplo es el problema de calcular la arboricidad de un grafo no dirigido , es decir, el número mínimo de bosques necesarios para cubrir todas sus aristas. La partición de matroides puede resolverse en tiempo polinomial , dado un oráculo de independencia para el matroide. Puede generalizarse para demostrar que una suma de matroides es en sí misma un matroide, para proporcionar un algoritmo para calcular rangos y conjuntos independientes en sumas de matroides, y para calcular el mayor conjunto independiente común en la intersección de dos matroides dados. [ 1 ]

Ejemplo

Una partición de las aristas del grafo bipartito completo K 4,4 en tres bosques, mostrando que tiene arboricidad como máximo tres

La arboricidad de un grafo no dirigido es el número mínimo de bosques en los que se pueden particionar sus aristas, o equivalentemente (añadiendo aristas superpuestas a cada bosque según sea necesario) el número mínimo de bosques generadores cuya unión es el grafo completo. Una fórmula demostrada por Crispin Nash-Williams caracteriza la arboricidad exactamente: es el máximo, sobre todos los subgrafosH{\displaystyle H}del gráfico dadoGRAMO{\displaystyle G}, de la cantidad|mi(H)||V(H)|1{\displaystyle \left\lceil {\frac {|E(H)|}{|V(H)|-1}}\right\rceil }. [ 2 ]

Los bosques de un grafo forman los conjuntos independientes del matroide gráfico asociado y la cantidad|V(H)|1{\displaystyle |V(H)|-1}En la fórmula de Nash-Williams aparece el rango del matroide gráfico deH{\displaystyle H}, el tamaño máximo de uno de sus conjuntos independientes. Por lo tanto, el problema de determinar la arboricidad de un grafo es exactamente el problema de partición de matroides para el matroide gráfico. El hecho de que el|mi(H)|{\displaystyle |E(H)|}Los elementos de este matroide no pueden ser particionados en menos de|mi(H)||V(H)|1{\displaystyle {\frac {|E(H)|}{|V(H)|-1}}}subconjuntos independientes es entonces simplemente una aplicación del principio del palomar que dice que, siincógnita{\displaystyle x}Los elementos se dividen en conjuntos de tamaño como máximoy{\displaystyle y}, entonces al menosincógnita/y{\displaystyle x/y}Se necesitan conjuntos. La dirección más difícil de la fórmula de Nash-Williams, que puede generalizarse a todos los matroides, es la demostración de que siempre existe una partición de este tamaño. [ 1 ]

Fórmula para el tamaño de la partición

Para generalizar la fórmula de Nash-Williams, se puede reemplazarGRAMO{\displaystyle G}por un matroidMETRO{\displaystyle M}y el subgrafoH{\displaystyle H}deGRAMO{\displaystyle G}con una restricciónMETRO|S{\displaystyle M|S}deMETRO{\displaystyle M}a un subconjuntoS{\displaystyle S}de sus elementos. El número de aristas del subgrafoH{\displaystyle H}se convierte, en esta generalización, en la cardinalidad|S|{\displaystyle |S|}del subconjunto seleccionado y la fórmula|V(H)|1{\displaystyle |V(H)|-1}para el tamaño máximo de un bosque enH{\displaystyle H}se convierte en el rangor(S){\displaystyle r(S)}Por lo tanto, el número mínimo de conjuntos independientes en una partición del matroide dado es...METRO{\displaystyle M}debe ser dado por la fórmula

k(METRO)=máximoS|S|r(S){\displaystyle k(M)=\max _{S}\left\lceil {\frac {|S|}{r(S)}}\right\rceil }.

Esta fórmula es válida y Edmonds (1965) le dio una demostración algorítmica . [ 1 ] [ 3 ] En otras palabras, un matroide puede particionarse en como máximok{\displaystyle k}subconjuntos independientes, si y solo si para cada subconjuntoS{\displaystyle S}deMETRO{\displaystyle M}, la cardinalidad deS{\displaystyle S}es como máximokr(S){\displaystyle k\cdot r(S)}.

Algoritmos

El primer algoritmo para la partición de matroides fue dado por Edmonds (1965) . [ 3 ] Es un algoritmo de camino de aumento incremental que considera los elementos del matroide uno por uno, en un orden arbitrario, manteniendo en cada paso del algoritmo una partición óptima para los elementos que se han considerado hasta el momento. En cada paso, al considerar un elementoincógnita{\displaystyle x}que aún no se ha colocado en una partición, el algoritmo construye un grafo dirigido que tiene como nodos los elementos que ya han sido particionados, el nuevo elementoincógnita{\displaystyle x}y un elemento especiali{\displaystyle \bot _{i}}para cada uno de losk{\displaystyle k}conjuntos independientes en la partición actual. Luego forma un grafo dirigido.GRAMOincógnita{\displaystyle G_{x}}en este conjunto de nodos, con un arco dirigidoiy{\displaystyle \bot _{i}\rightarrow y}para cada elemento matroidey{\displaystyle y}que se puede agregar al conjunto de particionesi{\displaystyle i}sin provocar que se vuelva dependiente y con un arco dirigidozy{\displaystyle z\rightarrow y}para cada par de elementos matroides(y,z){\displaystyle (y,z)}de tal manera que la eliminaciónz{\displaystyle z}de su partición y reemplazándola cony{\displaystyle y}forma otro conjunto independiente. [ 1 ] [ 3 ]

Ahora bien, hay dos casos:

  • Si este gráfico contiene una ruta dirigida desde un elementoi{\displaystyle \bot _{i}}al elemento recientemente consideradoincógnita{\displaystyle x}, entonces el camino más corto de este tipo (o más generalmente cualquier camino que no tenga aristas de atajo) describe una secuencia de cambios que se pueden hacer simultáneamente a los conjuntos de partición para formar una nueva partición, con el mismo número de conjuntos, que también incluyeincógnita{\displaystyle x}En este caso, el algoritmo realiza estos cambios y continúa.
  • Si, por otro lado, no existe tal camino, entoncesS{\displaystyle S}constan de los elementos matroides a partir de los cualesincógnita{\displaystyle x}es alcanzable enD{\displaystyle D}Cada conjunto en la partición actual debe ser un conjunto independiente maximal en la restricción.METRO|S{\displaystyle M|S}, porque si algún elementoy{\displaystyle y}deS{\displaystyle S}podría agregarse al conjunto de particionesi{\displaystyle i}En la restricción, entonces existiría un arcoiy{\displaystyle \bot _{i}\rightarrow y}(si se establece la particióni{\displaystyle i}no es máximo en el matroid completoMETRO{\displaystyle M}) o un arcozy{\displaystyle z\rightarrow y}dóndezS{\displaystyle z\notin S}(si el conjunto de partición no es máximo enS{\displaystyle S}pero máximo en el matroide completo). En cualquier caso, la existencia de este arco contradice la construcción supuesta del conjuntoS{\displaystyle S}y la contradicción demuestra que cada conjunto de partición es maximal. Por lo tanto, siguiendo la sencilla dirección de la fórmula de partición de matroides, el número de conjuntos necesarios para la partición es...S{\displaystyle S}es al menos
|S|r(S)=kr(S)+1r(S)=k+1{\displaystyle \left\lceil {\frac {|S|}{r(S)}}\right\rceil =\left\lceil {\frac {kr(S)+1}{r(S)}}\right\rceil =k+1},

por lo que en este caso el algoritmo puede encontrar una partición óptima colocandoincógnita{\displaystyle x}en su propio conjunto independiente nuevo y dejando los otros conjuntos independientes sin cambios. [ 1 ] [ 3 ]

El algoritmo general, entonces, considera cada elemento.incógnita{\displaystyle x}a partir del matroide dado, a su vez, construye el grafoGRAMOincógnita{\displaystyle G_{x}}, prueba qué nodos pueden alcanzarincógnita{\displaystyle x}y utiliza esta información para actualizar la partición actual de modo que incluyaincógnita{\displaystyle x}En cada paso, la partición de los elementos considerados hasta el momento es óptima, por lo que cuando el algoritmo finaliza habrá encontrado una partición óptima para todo el matroide. Para demostrar la corrección de este algoritmo, es necesario demostrar que un camino libre de atajos en el grafo auxiliar siempre describe una secuencia de operaciones que, al realizarse simultáneamente, preserva correctamente la independencia de los conjuntos en la partición; Edmonds proporcionó una demostración de este hecho. Dado que el algoritmo solo aumenta el número de conjuntos en la partición cuando la fórmula de partición del matroide indica que se necesita un número mayor, la corrección de este algoritmo también demuestra la corrección de la fórmula. [ 1 ] [ 3 ]

Aunque este algoritmo depende únicamente de la existencia de un oráculo de independencia para su corrección, en muchos casos se pueden encontrar algoritmos más rápidos aprovechando la estructura más especializada de tipos específicos de matroides (como los matroides gráficos ) a partir de los cuales se ha definido un problema de partición particular. [ 4 ]

Una suma de matroidesiMETROi{\displaystyle \sum _{i}M_{i}}(donde cadaMETROi{\displaystyle M_{i}}es un matroide) es en sí mismo un matroide, teniendo como elementos la unión de los elementos de los sumandos. Un conjunto es independiente en la suma si puede particionarse en conjuntos que son independientes dentro de cada sumando. El algoritmo de partición de matroides se generaliza al problema de probar si un conjunto es independiente en una suma de matroides. Su corrección puede usarse para probar que una suma de matroides es necesariamente un matroide. [ 3 ] [ 4 ] Un problema extendido, que a veces también se llama partición de matroides , es encontrar el conjunto más grande que sea independiente en la suma de matroides, es decir, el conjunto más grande que pueda particionarse en conjuntos que sean disjuntos en cada matroide de entrada. Cunningham [ 5 ] presenta un algoritmo para resolver este problema en O ( n ) n -matroides de elementos usandoO(norte2.5){\displaystyle O(n^{2.5})}Llamadas a un oráculo de la independencia .

El problema de intersección de matroides consiste en encontrar el conjunto más grande que sea independiente en dos matroides.METRO1{\displaystyle M_{1}}yMETRO2{\displaystyle M_{2}}. Se puede resolver convirtiéndolo en un problema de suma de matroides equivalente: siB{\displaystyle B}es una base de la sumaMETRO1+METRO2{\displaystyle M_{1}+M_{2}^{*}}, dóndeMETRO2{\displaystyle M_{2}^{*}}es el dual deMETRO2{\displaystyle M_{2}}, entoncesB{\displaystyle B}debe tener rango completo enMETRO2{\displaystyle M_{2}^{*}}y eliminando un conjunto independiente máximo deMETRO2{\displaystyle M_{2}^{*}}deB{\displaystyle B}deja una intersección máxima. [ 6 ]

La partición de matroides es una forma del problema de cobertura de conjuntos , y el problema de empaquetamiento de conjuntos correspondiente (encontrar el número máximo de conjuntos generadores disjuntos dentro de un matroide dado) también es de interés. Se puede resolver mediante algoritmos similares a los de la partición de matroides. [ 4 ] Los problemas de empaquetamiento de conjuntos fraccionarios y de cobertura de conjuntos asociados a un matroide (es decir, asignar un peso a cada conjunto independiente de tal manera que para cada elemento el peso total de los conjuntos que lo contienen sea como máximo uno o al menos uno, maximizando o minimizando el peso total de todos los conjuntos, respectivamente) también se pueden resolver en tiempo polinomial utilizando métodos de partición de matroides. [ 1 ]

Además de su uso en el cálculo de la arboricidad de un grafo, la partición de matroides puede utilizarse con otros matroides para encontrar un subgrafo de un grafo dado cuyo grado promedio sea máximo, y para encontrar la robustez de las aristas de un grafo (una variante de la robustez de grafos que implica la eliminación de aristas en lugar de vértices). [ 1 ]

La partición numérica con restricciones de matroides es un problema diferente en el que k (el número de subconjuntos en la partición) es fijo. Existen k matroides diferentes sobre el mismo conjunto base, y el objetivo es particionar el conjunto base en k subconjuntos, de modo que cada subconjunto i sea un conjunto independiente en el matroide i . Sujeto a esta restricción, se debe minimizar alguna función objetivo. En una generalización de esta variante, cada uno de los k matroides tiene un peso, y la función objetivo depende de los pesos (peso máximo, peso mínimo o suma de pesos).

Referencias

  1. 1 2 3 4 5 6 7 8 Scheinerman, Edward R. ; Ullman, Daniel H. (1997), "5. Arboricidad fraccionaria y métodos de matroides", Teoría fraccionaria de grafos , Serie Wiley-Interscience en matemáticas discretas y optimización, Nueva York: John Wiley & Sons Inc., págs. 99–126 , ISBN  0-471-17864-0, MR 1481157 .
  2. Nash-Williams, C. St. JA (1964), "Descomposición de grafos finitos en bosques", Journal of the London Mathematical Society , 39 (1): 12, doi : 10.1112/jlms/s1-39.1.12 , MR 0161333 .
  3. 1 2 3 4 5 6 Edmonds, Jack (1965), "Partición mínima de un matroide en subconjuntos independientes" (PDF) , Journal of Research of the National Bureau of Standards , 69B : 67–72 , doi : 10.6028/jres.069b.004 , MR 0190025 .
  4. 1 2 3 Gabow, Harold N. ; Westermann, Herbert H. (1992), "Bosques, marcos y juegos: algoritmos para sumas de matroides y aplicaciones", Algorithmica , 7 ( 5– 6): 465– 497, doi : 10.1007/BF01758774 , MR 1154585 .
  5. Cunningham, William H. (1986-11-01). "Improved Bounds for Matroid Partition and Intersection Algorithms" . SIAM Journal on Computing . 15 (4): 948– 957. doi : 10.1137/0215066 . ISSN 0097-5397 . 
  6. Edmonds, Jack (1970), "Funciones submodulares, matroides y ciertos poliedros", Estructuras combinatorias y sus aplicaciones (Actas de la Conferencia Internacional de Calgary, Calgary, Alberta, 1969) , Nueva York: Gordon and Breach, págs. 69–87 , MR 0270945  .