HOLA
Coronas, banderas, smartphones y la revista ¡HOLA! para aclamar a los Reyes ·
Coronas, banderas, smartphones y la revista ¡HOLA! para aclamar a los Reyes.
Un algoritmo de coincidencia máxima
Hasta ahora nuestros ejemplos han sido lo suficientemente pequeño como para que podamos encontrar un acoplamiento máximo por prueba y error. Para gráficos más grandes, sin embargo, senecesita una mejor técnica; y, como se indica en la Sección 5.1, simple agotamiento de todas las posibilidades que pronto se convierte en impracticable, incluso con un ordenador. No es un algoritmo eficiente para encontrar un acoplamiento máximo en un gráfico. Por simplicidad se considera el algoritmo sólo para el caso de un gráfico bipartito. Para explicar el algoritmo más fácil, vamos apresentarlo como un método para encontrar un conjunto independiente máximo del 1 de en una matriz de 0 de y 1. Como vimos en la sección anterior, esto es equivalente a mi problema de encontrar un acoplamiento máximo en un grafo bipartito.
Vamos a dar un ejemplo de la utilización del algoritmo antes de afirmar de una manera más formal más adelante en esta sección. Empezamos con un conjunto independiente de1 de. Este conjunto se puede conocer mediante inspección e incluso podría ser el conjunto vacío! A partir de un conjunto independiente más grande va a acelerar la búsqueda de un tal conjunto máximo, sin embargo. El algoritmo o bien se nos dice que el conjunto independiente de 1 de que tenemos es máxima, o bien producir un conjunto independiente que contiene una más 1. Continuamos aplicando elalgoritmo hasta que se alcance un conjunto independiente máximo.
Para nuestro ejemplo vamos a utilizar la matriz A en la que se ha indicado un conjunto independiente de 1 de. Tenga en cuenta que si alguno se suma 1 a este conjunto que dejará de ser independiente. Nuestro algoritmo implicar la realización de dos operaciones en algunas de las líneas de esta matriz, operaciones que llamaremosetiquetado y escaneo. Una vez que una línea ha sido etiquetada nunca será etiquetado de nuevo en una aplicación del algoritmo, y lo mismo es cierto para la exploración. Una línea debe estar etiquetado antes de que pueda ser escaneado. Comenzamos por el etiquetado, con la letra "L", todas las columnas que no contienen protagonizaron 1 de. (Si no hay tales columnas nuestro conjunto protagonizó 1 de ya esmáxima.) En nuestro ejemplo, esto produce la siguiente matriz.
Ahora escaneamos cada columna etiquetada para la 1 sin asterisco. En la columna C, encontramos un sin asterisco 1 en la primera fila, por lo que la etiqueta de la fila con una C para indicar que el 1 se encontró sin asterisco en la columna C. Luego ponemos la letra "S" en la columna C para indicar que ha sido escaneada. La matriz ahora seve de la siguiente manera.
Cuando escaneamos cada columna etiquetada para la 1 sin asterisco. En la columna C, encontramos un sin asterisco 1 en la primera fila, por lo que la etiqueta de la fila con una C para indicar que el 1 se encontró sin asterisco en la columna C. Luego ponemos la letra "s" en la columna C para indicar que ha sido escaneada. La matriz ahora se ve de la siguiente manera.Cuando escaneamos la columna D, también se encuentran un sin asterisco 1 en la fila 1. Desde esta fila ya ha sido etiquetado, ponemos la S en la columna D para indicar que también tiene fila sido escaneados.
Puesto que todas las columnas etiquetadas han sido escaneados, nos dirigimos ahora nuestra atención a las filas. Sólo la fila 1 se ha marcado; por lo escaneamos, ahora buscandoprotagonizado 1 de. Hay uno en la columna A; por lo que la etiqueta para esta columna con un 1 (la fila escaneada), y ponga una S después de la fila 1 para mostrar que ha sido escaneada.
Dado que todos los etiquetados ya se han escaneado, volvemos a las columnas de escaneo. La columna A se marca pero no analizados, por lo que la exploración para la 1 sin asterisco. Hay uno en la fila 3; por lo que la...
Regístrate para leer el documento completo.