Supongamos que tenemos un conjunto finito cuyos elementos son subconjuntos de otro conjunto finito . A continuación, supongamos que queremos seleccionar hasta un elemento de cada conjunto tal que no hay dos elementos seleccionados de cualquiera de estos conjuntos son iguales. ¿Cómo haríamos para encontrar el número máximo de elementos que podemos seleccionar de estos conjuntos de manera que se satisfagan estas condiciones?
Obviamente, este número máximo de elementos está acotado por el mínimo del tamaño de y el tamaño de , pero supongamos que conocemos el contenido de cada uno de los conjuntos . ¿Hay algún método que se pueda usar para obtener más información sobre este máximo de manera oportuna, o este problema toma tiempo para resolverlo?
Puede resolver esto usando el flujo máximo en tiempo polinomial.
Considere un gráfico dirigido con nodos . Los bordes, todos los cuales tienen peso 1, son .
Entonces el flujo máximo de a es la respuesta a tu problema.
Tenga en cuenta que para el flujo máximo, si todos los pesos de los bordes del gráfico son números enteros, el flujo máximo tendrá un flujo de números enteros en cada borde. Es por eso que esta reducción funciona.
Editar:
De hecho, esto se puede considerar como un caso especial de coincidencia bipartita máxima.
Esteban Donovan