Articulo de referencia

Matroide ponderado

En combinatoria , una rama de las matemáticas , un matroide ponderado es un matroide dotado de una función que asigna un peso a cada elemento. Formalmente, sea METRO = ( mi , I ...

En combinatoria , una rama de las matemáticas , un matroide ponderado es un matroide dotado de una función que asigna un peso a cada elemento. Formalmente, seaMETRO=(mi,I){\displaystyle M=(E,I)}Sea E un matroide, donde E es el conjunto de elementos e I es la familia de conjuntos independientes. Un matroide ponderado tiene una función de peso.w:miR+{\displaystyle w:E\rightarrow \mathbb {R} ^{+}}para asigna un peso estrictamente positivo a cada elemento demi{\displaystyle E}. Extendemos la función a subconjuntos demi{\displaystyle E}por suma;w(A){\displaystyle w(A)}es la suma dew(incógnita){\displaystyle w(x)}encimaincógnita{\displaystyle x}enA{\displaystyle A}.

Encontrar un conjunto independiente de peso máximo

Un problema básico relacionado con los matroides ponderados es encontrar un conjunto independiente con un peso total máximo. Este problema se puede resolver utilizando el siguiente algoritmo voraz simple :

  • Inicializa el conjunto A como un conjunto vacío. Ten en cuenta que, por definición de matroide, A es un conjunto independiente.
  • Para cada elemento x en E \ A , compruebe si Au{x} sigue siendo un conjunto independiente.
    • Si no existen tales elementos, entonces deténgase, ya que A no se puede extender más.
    • Si existe al menos un elemento de este tipo, elija el que tenga el peso máximo y agréguelo a A.

Este algoritmo no necesita saber nada sobre la estructura del matroide; solo necesita un oráculo de independencia para el matroide, una subrutina para comprobar si un conjunto es independiente.

Jack Edmonds [ 1 ] demostró que este sencillo algoritmo encuentra un conjunto independiente con peso máximo. Denotemos el conjunto encontrado por el algoritmo por e 1 ,...,e k . Por las propiedades de los matroides, es claro que k=rank(M), de lo contrario el conjunto podría extenderse. Supongamos por contradicción que hay otro conjunto con un peso mayor. Sin pérdida de generalidad, es posible suponer que este conjunto también tiene elementos rank(M); denotémoslo por f 1 ,...,f k . Ordenemos estos elementos de manera que w(f 1 ) ≥ ... ≥ w(f k ). Sea j el primer índice para el cual w(f j ) > w(e j ). Apliquemos la propiedad de aumento a los conjuntos {f 1 ,...,f j } y {e 1 ,...,e j-1 }; concluimos que debe haber algún i ≤ j tal que f i podría agregarse a {e 1 ,...,e j-1 } manteniendo su independencia. Pero w(f i ) ≥ w(f j ) > w(e j ), por lo que se debería haber elegido f i en el paso j en lugar de e j , lo cual es una contradicción. [ 2 ]

Ejemplo: algoritmos de bosque de expansión

Como ejemplo sencillo, supongamos que queremos encontrar el bosque de máxima expansión de un grafo. Es decir, dado un grafo y un peso para cada arista, encontrar un bosque que contenga todos los vértices y maximice el peso total de las aristas del árbol. Este problema surge en algunas aplicaciones de agrupamiento. Se puede resolver mediante el algoritmo de Kruskal , que puede considerarse un caso particular del algoritmo voraz anterior aplicado a un matroide gráfico .

Si observamos la definición del matroide de bosque, vemos que el bosque de máxima expansión es simplemente el conjunto independiente con el mayor peso total ; dicho conjunto debe abarcar el grafo, ya que de lo contrario podríamos añadir aristas sin crear ciclos. Pero, ¿cómo lo encontramos?

Encontrar una base

Existe un algoritmo sencillo para encontrar una base:

  • Inicialmente dejarA{\displaystyle A}sea ​​el conjunto vacío.
  • Para cadaincógnita{\displaystyle x}enmi{\displaystyle E}
    • siA{incógnita}{\displaystyle A\cup \{x\}}es independiente, entonces estableceA{\displaystyle A}aA{incógnita}{\displaystyle A\cup \{x\}}.

El resultado es claramente un conjunto independiente. Es un conjunto independiente maximal porque siB{incógnita}{\displaystyle B\cup \{x\}}no es independiente para algún subconjuntoB{\displaystyle B}deA{\displaystyle A}, entoncesA{incógnita}{\displaystyle A\cup \{x\}}Tampoco es independiente (la contrapositiva se deduce de la propiedad hereditaria ). Por lo tanto, si descartamos un elemento, nunca tendremos la oportunidad de usarlo más adelante. Generalizaremos este algoritmo para resolver un problema más complejo.

Extensión a óptimo

Un conjunto independiente con el mayor peso total se denomina conjunto óptimo . Los conjuntos óptimos siempre son bases, ya que si se puede añadir una arista, se debe hacer; esto solo aumenta el peso total. Resulta que existe un algoritmo voraz trivial para calcular un conjunto óptimo de un matroide ponderado. Funciona de la siguiente manera:

  • Inicialmente dejarA{\displaystyle A}sea ​​el conjunto vacío.
  • Para cadaincógnita{\displaystyle x}enmi{\displaystyle E}, tomadas en orden (monótonamente) decreciente por peso
    • siA{incógnita}{\displaystyle A\cup \{x\}}es independiente, entonces estableceA{\displaystyle A}aA{incógnita}{\displaystyle A\cup \{x\}}.

Este algoritmo encuentra una base, ya que es un caso especial del algoritmo anterior. Siempre elige el elemento de mayor peso que puede mientras preserva la independencia (de ahí el término "voraz"). Esto siempre produce un conjunto óptimo: supongamos que produceA={mi1,mi2,,mir}{\displaystyle A=\{e_{1},e_{2},\ldots,e_{r}\}}y esoB={F1,F2,,Fr}{\displaystyle B=\{f_{1},f_{2},\ldots ,f_{r}\}}Ahora, para cualquierk{\displaystyle k}con1kr{\displaystyle 1\leq k\leq r}Consideremos conjuntos abiertosO1={mi1,,mik1}{\displaystyle O_{1}=\{e_{1},\ldots ,e_{k-1}\}}yO2={F1,,Fk}{\displaystyle O_{2}=\{f_{1},\ldots ,f_{k}\}}. DesdeO1{\displaystyle O_{1}}es más pequeño queO2{\displaystyle O_{2}}, hay algún elemento deO2{\displaystyle O_{2}}que se puede colocar enO1{\displaystyle O_{1}}con el resultado aún siendo independiente. Sin embargomik{\displaystyle e_{k}}es un elemento de peso máximo que se puede agregar aO1{\displaystyle O_{1}}para mantener la independencia. Por lo tantomik{\displaystyle e_{k}}no tiene un peso menor que algún elemento deO2{\displaystyle O_{2}}y por lo tantomik{\displaystyle e_{k}}es de al menos un gran peso comoFk{\displaystyle f_{k}}. Como esto es cierto para todosk{\displaystyle k},A{\displaystyle A}es más pesado queB{\displaystyle B}.

Análisis de complejidad

La forma más fácil de recorrer los miembros demi{\displaystyle E}en el orden deseado es ordenarlos. Esto requiereO(|mi|registro|mi|){\displaystyle O(|E|\log |E|)}tiempo utilizando un algoritmo de ordenación por comparación . También necesitamos probar para cada unoincógnita{\displaystyle x}siA{incógnita}{\displaystyle A\cup \{x\}}es independiente; asumiendo que las pruebas de independencia requierenO(F(|mi|)){\displaystyle O(f(|E|))}tiempo, el tiempo total para el algoritmo esO(|mi|registro|mi|+|mi|F(|mi|)){\displaystyle O(|E|\log |E|+|E|f(|E|))}.

Si en cambio queremos encontrar un árbol de expansión mínima , simplemente "invertimos" la función de peso restándola de una constante grande. Más específicamente, seawmin(incógnita)=Ww(incógnita){\displaystyle w_{\text{min}}(x)=Ww(x)}, dóndeW{\displaystyle W}supera el peso total de todas las aristas del grafo. Muchos más problemas de optimización sobre todo tipo de matroides y funciones de peso pueden resolverse de esta manera tan sencilla, aunque en muchos casos se pueden encontrar algoritmos más eficientes que aprovechan propiedades más especializadas.

Requisito de Matroid

Nótese también que si tomamos un conjuntoI{\displaystyle I}de conjuntos "independientes" que son un subconjunto pero no un matroide, entonces el algoritmo voraz no siempre funcionará. Porque entonces hay conjuntos independientesI1{\displaystyle I_{1}}yI2{\displaystyle I_{2}}con|I1|<|I2|{\displaystyle |I_{1}|<|I_{2}|}, pero de tal manera que para ningúnmiI2I1{\displaystyle e\in I_{2}\setminus I_{1}}esI1mi{\displaystyle I_{1}\cup e}independiente.

Elige unϵ>0{\displaystyle \epsilon >0}yτ>0{\displaystyle \tau >0}de tal manera que(1+2ϵ)|I1|+τ|mi|<|I2|{\displaystyle (1+2\epsilon )|I_{1}|+\tau |E|<|I_{2}|}. Pesar los elementos deI1I2{\displaystyle I_{1}\cup I_{2}}en el rango2{\displaystyle 2}a2+2ϵ{\displaystyle 2+2\epsilon }, los elementos deI1I2{\displaystyle I_{1}\setminus I_{2}}en el rango1+ϵ{\displaystyle 1+\epsilon }a1+2ϵ{\displaystyle 1+2\epsilon }, los elementos deI2I1{\displaystyle I_{2}\setminus I_{1}}en el rango1{\displaystyle 1}a1+ϵ{\displaystyle 1+\epsilon }y el resto en el rango0{\displaystyle 0}aτ{\displaystyle \tau }. El algoritmo voraz seleccionará los elementos deI1{\displaystyle I_{1}}y luego no puede elegir ningún elemento deI2I1{\displaystyle I_{2}\setminus I_{1}}Por lo tanto, el conjunto independiente que construye tendrá un peso como máximo de .(1+2ϵ)|I1|+τ|mi|+|I1I2|{\displaystyle (1+2\epsilon )|I_{1}|+\tau |E|+|I_{1}\cup I_{2}|}, que es menor que el peso deI2{\displaystyle I_{2}}.

Caracterización

Este algoritmo de optimización puede utilizarse para caracterizar matroides: si una familia F de conjuntos, cerrada bajo la toma de subconjuntos, tiene la propiedad de que, independientemente de cómo se ponderen los conjuntos, el algoritmo voraz encuentra un conjunto de peso máximo en la familia, entonces F debe ser la familia de conjuntos independientes de un matroide. [ 3 ]

Generalizaciones

El concepto de matroide se ha generalizado para permitir otros tipos de conjuntos en los que un algoritmo voraz proporciona soluciones óptimas; consulte greidoid e incrustación de matroides para obtener más información. Korte y Lovász generalizarían estas ideas a objetos llamados greidoides , que permiten resolver clases de problemas aún mayores mediante algoritmos voraces.

Referencias

  1. Edmonds, Jack (1971). "Matroides y el algoritmo voraz" . Programación matemática . 1 (1): 127– 136. doi : 10.1007/BF01584082 .
  2. Grötschel, Martín ; Lovász, László ; Schrijver, Alejandro (1993). Algoritmos geométricos y optimización combinatoria . Algoritmos y Combinatoria. vol. 2 (Segunda ed.). Springer-Verlag, Berlín. pag. 212.doi : 10.1007 /978-3-642-78240-4 . ISBN    3-540-56740-2MR 1261419 .​ 
  3. Oxley, James G. (1992). Teoría de los matroides . Oxford Science Publications. Oxford: Oxford University Press . pág. 64. ISBN  0-19-853563-5. Zbl 0784.05002 .