Este problema es solucionable en tiempo polinómico.
En primer lugar, tomemos el complemento bipartito del gráfico de entrada [matemática] G [/ matemática]: todavía tendremos las mismas particiones [matemática] A [/ matemática] y [matemática] B [/ matemática], pero en el nuevo gráfico [matemática] G ‘[/ matemática] dos vértices [matemática] a \ en A [/ matemática] y [matemática] b \ en B [/ matemática] están conectados si y solo si no estaban conectados en [matemática ] G [/ matemáticas].
Las subgrafías bipartitas completas de [matemática] G [/ matemática] corresponden a conjuntos independientes en [matemática] G [/ matemática]: conjuntos de vértices que no están conectados por ningún borde directo. Por lo tanto, en [math] G ‘[/ math] estamos buscando el conjunto independiente máximo.
- ¿Qué es una expresión regular que devolverá falso cuando una letra determinada aparece más de n veces?
- ¿Hay un problema DP estándar similar a SPOJ Farida?
- ¿Cuál es una buena fuente para aprender estructuras de datos y algoritmos?
- Cómo desglosar un problema y resolverlo con el uso de la programación Java
- Cómo implementar un algoritmo de equilibrio de carga personalizado aparte del algoritmo Round Robin predeterminado en mi Amazon Elastic Load Balancer usando Java SDK para AWS
Esto se puede encontrar de la siguiente manera:
- Encuentre [math] M [/ math]: la coincidencia bipartita máxima en [math] G ‘[/ math] (consulte Coincidencia en gráficos bipartitos no ponderados)
- Utilice esa coincidencia para construir una posible cobertura mínima de vértice de [matemáticas] G ‘[/ matemáticas] (vea la prueba del teorema de Kőnig (teoría de grafos) para un algoritmo)
- El complemento de esa cubierta de vértice es un conjunto independiente máximo en [matemática] G ‘[/ matemática], en otras palabras, su subgrafía bipartita completa máxima de [matemática] G [/ matemática].