You are on page 1of 8

ALGORITMO VORAZ PARA EMPAREJAMIENTO MAXIMO DE GRAFOS

Snchez Enriquez Heider Isaas heider_esencia@hotmail.com Rodrguez Maysundo Eduardo ed_rm@hotmail.com Ruiz Campos Johnatan Eric je_blue87@hotmail.com Universidad Nacional De Trujillo Escuela Profesional De Informtica

RESUMEN El presente trabajo de investigacin trata de abarcar un tema nuevo e impactante que es el Emparejamiento de Grafos, dado a sus diversas aplicaciones en la vida real. Nuestro problema es realizar un algoritmo de optimizacin para hallar un emparejamiento mximo entre todos los vrtices de un grafo. El mtodo mas usado para resolver este problema, usa el concepto del rbol Alternado, a travs de un algoritmo formal pero laborioso (para el caso de un grafo no bipartido). Nosotros en este trabajo desarrollamos un algoritmo voraz (basado en los grados de los vrtices) con un tiempo de cmputo eficiente y eficaz para grafos simples. Para ello daremos a conocer algunos conceptos previos, claves para poder entender el desarrollo del algoritmo, y la representacin en ejemplos reales. La referencia principal usada en este trabajo es [1], de donde pudimos obtener informacin enriquecida y actualizada. Palabras Claves: Algoritmo voraz, optimizacin, emparejamiento mximo, grafo simple, grafo bipartido.

entender y poder programar en un computador; talvez desde el punto de vista matemtico no parezca tan formal ya que se trata de un algoritmo voraz y por lo general estos tipos de algoritmos son heursticos. 2. CONCEPTOS PREVIOS GENERALES

A continuacin se detallarn varias definiciones bsicas sobre grafos de una forma genrica, independientemente del algoritmo que desarrollaremos mas adelante: 2.1 Grafo Un grafo es un par (V, A) donde V es un conjunto finito no vaco (llamado conjunto de vrtices) y A un subconjunto finito de pares (V x V) no ordenados de vrtices (llamado conjunto de aristas). Grficamente, los vrtices se representan por puntos y las aristas por lneas que los unen. Un vrtice puede tener 0 o ms aristas, pero toda arista debe unir exactamente dos vrtices. El orden de un grafo es el nmero de vrtices que lo compone |V|. 2.2. Adyacentes e Incidentes

1.

INTRODUCCION

En la actualidad muchos problemas de la vida real han sido esquematizados a travs de grafos, para poder hallarles una solucin a travs de la optimizacin. Uno de estos problemas es el emparejamiento mximo de vrtices en un grafo, que se presentan en problemas que describiremos en una de nuestras secciones. Como habamos ya hablado en el resumen, el algoritmo que se va a desarrollar es de tipo Voraz, que trata de hallar la solucin mas optima, a travs de unos pasos generales en el estudio de un algoritmo voraz. Este algoritmo es eficaz para todo tipo de grafos simples y lo mas importante fcil de

Dos vrtices son adyacentes si son extremos de una misma arista. Dos aristas son adyacentes si tienen un extremo comn, as que los vrtices adyacentes a un vrtice dado son todos los vrtices que estn al otro extremo de las aristas que tienen como origen o destino el vrtice dado. Un vrtice aislado no tiene vrtices adyacentes. Un vrtice y una arista son incidentes si el vrtice es extremo de la arista.

2.3. Grafo simple Un grafo simple es un par G = (V, A) donde V es un conjunto finito, no ordenado y no vaco y A es un conjunto finito de pares no ordenados de vrtices distintos de V, es decir, no debe haber ni aristas mltiples ni bucles.

2.6. Grafo bipartido completo Un grafo bipartido completo se designa por Kr,s donde |X| = r e |Y| = s, y hay una arista que conecta cada vrtice de X con cada vrtice de Y. 1 2 3 4

7 6 5 Fig. 4. Grafo Bipartido Completo K4,3

Fig. 1. Ejemplo de un Grafo simple 2.4. Grafo bipartido o bipartito Un grafo bipartido es un grafo simple donde se puede encontrar una particin de V tal que V = X Y con X Y = tal que toda arista uv A une vrtices de distinta parte, es decir, une un vrtice u de la capa X con un vrtice v de la capa Y. A continuacin se expone un teorema para poder saber si un grafo es o no bipartido. Teorema: Un grafo G es bipartido si y solo si no contiene ciclos impares.
1 2 3 4

3.

CONCEPTOS PREVIOS ESPECIFICOS

A continuacin se detallarn varias definiciones sobre grafos ms especficos que las anteriores, especializados en emparejamientos. Las siguientes definiciones son necesarias para comprender correctamente el algoritmo sobre emparejamiento. 3.1. Emparejamiento Un emparejamiento (matching) en un grafo no dirigido y simple g = (v, a) es un subconjunto de aristas M A tal que dos aristas cualesquiera de M no tengan un extremo comn. Evidentemente un subconjunto de un emparejamiento es tambin un emparejamiento aunque de menor cardinal.

7 6 5 Fig. 2. Grafo Bipartido

Fig. 5. Emparejamiento M

2.5. Grafo completo


3.2. Vrtice saturado y vrtice libre

Un grafo completo es un grafo simple en el que todo par de vrtices est unido por una arista, es decir, todos los vrtices estn unidos entre s. Se representa con Kn al grafo completo de n vrtices. Los grafos completos Kn son regulares de grado r = n-1.
1 2

Dado un emparejamiento M en G, los vrtices incidentes con alguna arista de M se denominan vrtices saturados por M o M-saturados. El resto de los vrtices que no cumplen dicha condicin se llaman vrtices no saturados o insaturados por M, aunque el nombre ms comn que se les asigna es el de vrtice libre. 3.3. Pareja de un vrtice

5 Fig. 3. Grafo Completo K5

Se denomina como pareja de un vrtice (v1) al vrtice (v2) del extremo opuesto en la arista perteneciente al emparejamiento M que tiene como extremo al primero de los vrtices, otra forma de decirlo es que el vrtice v1 est emparejado con el vrtice v2.

3.4. Emparejamiento perfecto Un emparejamiento es perfecto cuando todos los vrtices de G son extremo de alguna arista de M, es decir, cuando todos los vrtices del grafo son vrtices saturados por M. 3.5. Emparejamiento Mximal Un emparejamiento mximal en un grafo es un emparejamiento que no puede ser ampliado agregando una arista. Un emparejamiento es mximal si y solo si toda arista de G comparte extremos con alguna arista de M.

emparejamientos lo ms grandes posibles de un grafo. Las caractersticas que tienen son: La raz del rbol debe ser un vrtice libre, a continuacin se definir que es. Las ramas del rbol estarn formadas por aristas que, alternativamente, estn o no en el emparejamiento M, tambin se detallarn las caractersticas de un emparejamiento a continuacin.

Fig. 6. Emparejamiento Mximal 3.6. Emparejamiento mximo

rama que est en el emparejamiento


rama que no est en el emparejamiento
Fig. 9. Ejemplo de rbol alternado

Un emparejamiento mximo es un emparejamiento que tiene el mayor nmero posible de aristas. Todo emparejamiento mximo es tambin mximal, pero no necesariamente al revs, ya que un emparejamiento sea mximal no implica que sea mximo.

3.6. Camino alternado o alternante Dado un emparejamiento M en un grafo G, un camino alternado o M-alternado es un camino donde se alternan aristas de M y aristas que no estn en M. Ms formalmente se puede expresar como sigue: Si vi vi+1 M entonces vi+1 vi+2 M i {i,....,k-2}. Si vi vi+1 M entonces vi+1 vi+2 M i {i,....,k-2}.

Fig. 7. Emparejamiento mximo y Perfecto

Fig. 10. Ejemplo camino M-Alternado 3.7. Camino de aumento Dado un emparejamiento de M en un grafo G, un camino es aumentador para M o de M-aumento si adems de ser camino alternado sus extremos son vrtices libres o no saturados por el emparejamiento M. Esta definicin es muy importante para comprender el mtodo tradicional.

Fig. 8. Emparejamiento Mximo No Perfecto


Fig. 10. Ejemplo camino M-Aumento

3.6. rbol alternado Es una clase de rbol con raz especfico que se usa para la creacin de caminos alternados utilizados para encontrar

4.

EVOLUCION DE LOS ALGORITMOS Y SU COMPLEJIDAD

ENTRADA: Un grafo simple y bipartido G con una biparticin X, Y. PROCESO: 1. Tomar un emparejamiento cualesquiera M. En este paso se da la opcin al usuario de elegir interactivamente el emparejamiento inicial, el cual se tomar como paso inicial para realizar el algoritmo. Tambin est la opcin de no seleccionar ningn emparejamiento inicial, en este caso se generar un emparejamiento inicial segn un algoritmo que se explicar a continuacin. 2. Buscar un camino de M-aumento, mediante la construccin del rbol alternado, a continuacin tambin se explicar el algoritmo que construye el rbol alternado y encuentra un camino de M-aumento. Si existe un camino M- aumento ir al paso 3. Si no existe ir al paso 4.

El primer algoritmo polinmico para determinar un emparejamiento mximal lo dio Edmonds en 1965. Utiliz, como todos los que haban tratado el problema en aquella poca, caminos aumentadores. Edmonds dijo que su algoritmo tena complejidad O(n4), aunque l no entr en detalles. Sin embargo Gabon y Lawer en 1976 probaron que si se implementaba el algoritmo convenientemente se reduca a O(n3). Por otra parte, el primer algoritmo que resolvi el problema de emparejamiento mximo con una complejidad inferior a la cbica fue el algoritmo de Even-Kariv en 1975 con una complejidad de o(n5/2). El mejor algoritmo en estos momentos se ejecuta en un tiempo de o(n1/2m) para un grafo con n vrtice y m aristas, es decir, ms rpido que el anterior para grafos dispersos. Este algoritmo es bastante complicado y es el algoritmo de Micali-Vazirani. 5. MTODO TRADICIONAL USANDO RBOL ALTERNADO

3. Construir un emparejamiento M con |M| = |M| + 1, asignar a M el nuevo emparejamiento ampliado M y volver al paso 2. 4. Devolver el emparejamiento emparejamiento mximo. M como

El mtodo mas usado para el emparejamiento mximo de grafos, usa el concepto del rbol Alternado. Este mtodo utiliza dos algoritmos, uno para grafos bipartidos y otro para grafos generales. La complejidad computacional para el primero es ms eficiente y legible, por esta razn describiremos los pasos generales que considera este algoritmo, pero antes mencionaremos dos teoremas importantes que utiliza el algoritmo: Teorema de Hall: Un grafo bipartido G con biparticin X, Y, tiene un emparejamiento que satura X si y solo si |N(S)| |S| para todo S X. A esto se le conoce como la condicin de Hall Teorema de Berge: Un emparejamiento M en un grafo G es mximo si y solo si G no tiene ningn M- camino de aumento. A continuacin se detallar el algoritmo encargado de buscar un emparejamiento en grafos bipartidos, pero antes se enunciarn varias observaciones interesantes que se aplican sobre el algoritmo que se detallar seguidamente. Si G = (V, A) es un grafo bipartido con V = X Y, y M es un emparejamiento maximal de G; se tiene que |M| min {|X|, |Y|}. Sea G = (V, A) un grafo bipartido con V = X Y. Se dice que M es un emparejamiento completo de G si |M| = min {|X|, |Y|}.

SALIDA: Un emparejamiento de cardinal mximo. La complejidad de este algoritmo es analizado en [1] y es de orden O(n3). Para desarrollar el algoritmo para un grafo general, se aade otros conceptos mas, y el tiempo de procesamiento crece aunque la complejidad sigue siendo O(n3).

6.

DESARROLLO DEL ALGORITMO

6.1 Presentacin del algoritmo como voraz: Para desarrollar este algoritmo tomamos el concepto de estabilidad de grafos, en donde el vrtice que tiene menos probabilidad de ser escogido (menor grado), es quien escoge su pareja, quien tambin cumple con la condicin (debe ser el vrtice adyacente con menor grado posible). De esa manera, emparejando desde los vrtices con menor grado, se trata de formar el emparejamiento mximo en un grafo. A continuacin presentamos el algoritmo que resuelve el problema del emparejamiento mximo, teniendo en cuenta los pasos estndar de un algoritmo voraz:

Paso 1: inicializar los grados de cada vrtice, y los candidatos con todas las aristas del grafo Paso 2: sea v1 el vrtice de menor grado que no este saturado por M. Paso 3: y v2 su pareja de menor grado posible. Paso 4: si los vrtice son factibles ir al paso 5, si no rechazar dicho vrtice y retornar al paso 2. Paso 5: agregar a la solucin. La arista (v1,v2). Paso 6: sacar de los candidatos todas las aristas incidentes con dichos vrtices (v1, v2). Paso 7: retornar al paso 2, si aun hay aristas para valuar en los candidatos; si no lo hay, ir al paso 8. Paso 8: retornar el conjunto solucin, y fin del algoritmo. Como se puede observar en este algoritmo, hace mencin a dos conjuntos: el conjunto solucin y el conjunto de candidatos; y tambin escoge un par de vrtice y si son factibles la aade a la solucin y los rechaza del conjunto de candidatos, y esto contina hasta que el cardinal del conjunto de candidatos sea 0, y al final retorna la polucin que contiene al emparejamiento mximo. Por las caractersticas del algoritmo presentado anteriormente, sin duda es un algoritmo voraz. A continuacin presentamos el pseucodigo para ser programado en un computador: 6.2 Pseucodigo del Algoritmo: ENTRADA: Un grafo simple G (V, A) SALIDA: Un emparejamiento mximo M, donde M A. PROCESO: 1. Se inicializan variables importantes como: VG[ ] un vector de tamao |V|, en donde se almacenaran los grados de cada vrtice; C es el conjunto de candidatos, y M la solucin (C y M almacenan aristas). 2. C A. 3. M . 4. VG[0...n]=[0,..,0]. 5. para i:=0 hasta i=|E| hacer 5.1 tomar una arista de C; (v1,v2) C[ i ] 5.2 VG[v1] VG[v1]+1; 5.3 VG[v2] VG[v2]+1; 6. mientras ( | C | ) 6.1 v1=vrtice no saturado por M y de menor grado en VG, 6.2 v2= vrtice no saturada por M y pareja de V1, tomada de C, con menor grado de todos los adyacentes a V1 6.3 si (v1, v2) es factible, sea si son incidentes a una arista no saturada por M, entonces:

M = M + (v1, v2) C = C - (v 1, v 2) C = C - {a=(vi, vj)\ v1 a v2 a } 7. Retornar M, como emparejamiento mximo de G, y Fin del pseucodigo. COMPLEJIDAD: Si analizamos la complejidad computacional de este algoritmo, vemos que depende de dos factores primordiales: el nmero de Vrtices y el nmero de aristas. Entonces su tiempo de procesamiento aproximado es el siguiente: T(n) = 2n+nlog(m)+log2(m), donde n es el numero de vrtices y m es el numero de aristas, por lo tanto el Orden del tiempo de complejidad se aproxima a O(n)=(nlog(m)), pero se puede convertir en O(n2) si el grafo es mas denso. 6.3. Para Grafo Bipartido: El algoritmo por ser general se aplica tambin para grafos bipartidos, pero se puede reducir la complejidad cambiando ciertos pasos: Paso 1: inicializar los grados de cada vrtice, y los candidatos con todas las aristas del grafo Paso 2: sea v1 el vrtice de grado 1 que no este saturado por M. Paso 3: y v2 su nica pareja. Paso 4: si los vrtice son factibles (si existe un vrtice de grado 1) ir al paso 5; si no fuera as: sacar la primera arista=(v1,v2) de los candidatos (no hay ninguna problema en hacer esto ya que los ciclos en un grafo bipartido son pares), y pasar al siguiente paso. Paso 5: agregar a la solucin. La arista (v1,v2). Paso 6: sacar de los candidatos todas las aristas incidentes con dichos vrtices (v1, v2). Paso 7: retornar al paso 2, si aun hay aristas para valuar en los candidatos; si no lo hay, ir al paso 8. Paso 8: retornar el conjunto solucin, y fin del algoritmo. Pues el pseucodigo se regira a los cambios aqu realizados. 6.4. Ejemplo grafico del algoritmo: Tomemos el siguiente grafo:

Tomamos ahora el vrtice de menor grado 6 y su menor adyacente 7. Entonces aadimos a la solucin: M = {(4,5), (6,7)} C= {(0,1), (0,2), (0,3), (1,2), (1,3), (2,6), (2,7), (6,7)}. Entonces C={(0,1), (0,2), (0,3), (1,2), (1,3),} El vector de grados se actualiza: VG= {3, 3, 2, 2,-1, -1, -1, -1}, Regresamos al bucle puesto que todava hay elementos en la lista de candidatos. Paso 4: Solo nos quedan 4 vrtices no saturados, escogemos el de menor grado, y es el vrtice 2 y su menor adyacente seria 0, por orden lexicografito. M = {(4,5), (6,7) , (0,2)} C= {(0,1), (0,2), (0,3), (1,2), (1,3)}. Entonces C={(1,3)} El vector de grados se actualiza: VG= {-1, 1, -1, 1,-1, -1, -1, -1}, Regresamos al bucle puesto que todava hay elementos en la lista de candidatos. Paso 5: Y solo nos queda una arista como forma un emparejamiento es tomada por M: M = {(4,5), (6,7) , (0,2), (1,3)} C= {}. Entonces C= . Y termina el bucle: El emparejamiento M encontrado es mximo y perfecto ya que consume todos los vrtices del Grafo original. Grficamente el emparejamiento representado de la siguiente manera: M quedara

Fig. 11. Grafo de aplicacin Donde: V = {0, 1, 2, 3, 4, 5, 6, 7}. A = {(0,1), (0,2), (0,3), (1,2), (1,3), (2,6), (2,7), (3,4), (3,5), (4,5), (6,7)} Aplicando el algoritmo: Paso 1: C= {(0,1), (0,2), (0,3), (1,2), (1,3), (2,6), (2,7), (3,4), (3,5), (4,5), (6,7)} M={ } Los grados de todos los vrtices son: gra(0)=3, gra(1)=3, gra(2)=4, gra(3)=4, gra(4)=2, gra(5)=2, gra(6)=2, gra(7)=2. Entonces el vector de grados es como sigue: VG= {3, 3, 4, 4, 2, 2, 2, 2}, cada posicin se almacenan los grados da cada vrtice siguiendo el orden. Paso 2: Ahora se escoge el vrtice de menor grado, en este caso hay cuatro vrtices de grado 2, entonces por orden lexicografito escojo el vrtice V1=4. Su menor adyacente seria el vrtice V2=5, entonces emparejamos dichos vrtices y aadimos a M. y posteriormente le quitamos de C y todas las aristas incidentes a los vrtices 4 y 5. M = { (4,5) } C= {(0,1), (0,2), (0,3), (1,2), (1,3), (2,6), (2,7), (3,4), (3,5), (4,5), (6,7)} Entonces C={(0,1), (0,2), (0,3), (1,2), (1,3), (2,6), (2,7), (6,7)} El vector de grados se actualiza: VG= {3, 3, 4, 2,-1, -1, 2, 2}, se coloca con -1 a la posicin del vrtice 4 y 5 para indicar que ya son saturados por M y no deben considerarse para la siguiente iteracin. Regresamos al bucle puesto que todava hay elementos en la lista de candidatos. Paso 3:

Fig. 12. Emparejamiento M 7. ALGUNAS APLICACIONES REALES

Despus de presentarles todo lo concerniente al algoritmo, ahora es momento de contestar la pregunta que siempre nos

hacemos: En que se aplica este algoritmo?, las aplicaciones que hemos recopilado y que les vamos a presentar a continuacin, son problemas de la vida real. Son muchas las situaciones en las que hay que realizar asignaciones o emparejamientos sujetos a restricciones, por ejemplo, profesores y cursos a impartir, pilotos y horarios de vuelo, mujeres y posibles maridos. As que a continuacin se detallarn algunas de estas situaciones: 7.1. Trabajos y aspirantes: El problema se presenta en una empresa que tiene cierto nmero de vacantes de trabajo y un grupo de aspirantes desean cubrirlos, cada aspirante esta cualificado para algunos de estos trabajos; entonces nace el problema: puede colocarse a todos los aspirantes en puestos para los que estn preparados? (a esto se le llama el problema de asignacin). Podemos representar este problema en un grafo bipartido, al grupo de aspirantes le llamamos A, y al grupo de vacantes P:
p1 p2 p3 p4 p5

7.3. Emparejamientos todos contra todos: Es el caso de los torneos donde se debe elegir como ir emparejando a los participantes a medida que avanza la competicin. En el caso de un torneo jugado por el sistema de eliminatorias, el problema es muy sencillo: todos los perdedores se retiran en cada ronda y se empareja a los ganadores que van quedando, dando eventualmente descanso a un jugador si es que queda un nmero impar de jugadores. El problema sera ms complicado cuando el torneo se juega por un sistema todos contra todos o liguilla, el tipo de torneo que suele seguirse en un campeonato de ajedrez. En l, cada jugador ha de enfrentarse con cada uno de los dems jugadores; nuestro objetivo es planificar el torneo de antemano, fijando las parejas de oponentes en cada una de las rondas. Esta situacin se puede modelizar de nuevo con grafos. Suponemos que hay n jugadores, de modo que cada uno de ellos juega n-1 partidos con los otros participantes. Cada partido se representa por una arista ab conectando dos jugadores que sern los vrtices. El total de los partidos corresponde al grafo completo de n vrtices. Una ronda del torneo consiste en emparejar a los jugadores de dos en dos. Normalmente el nmero idneo para planificar estos torneos deber ser par, ya que en este caso todos los jugadores se pueden emparejar entre s, en el caso de que el nmero de jugadores fuera impar se pudiera aadir un jugador ficticio y el jugador emparejado con este ltimo le tocar descansar en esa ronda. 7.4. El Problema de Idiomas Todos los ejemplos que hemos citado anteriormente se modelizan con grafos bipartidos, pero el problema de emparejamiento es ms general, como hemos visto anteriormente cuando hemos dividido los algoritmos dependiendo del tipo de grafo que se deba tratar. Hay situaciones que no se pueden ser modelizadas con este tipo de grafos. El siguiente ejemplo es uno de ellos. En un grupo de personas, donde cada una habla varios idiomas, se quiere formar el mayor nmero posible de parejas, de modo que los dos integrantes de una misma pareja conozcan un idioma comn. Los idiomas que habla cada persona se reflejan en la tabla siguiente:

a1

a2

a3

a4

Fig. 13. Grafo que representa el problema. El algoritmo para grafos bipartidos escogera el emparejamiento mximo y de esa manera resolvera el problema. 7.2. Comits: Otro ejemplo sera en una clase de una escuela hay un cierto nmero de comits, cada uno de estos n comits debe tener un secretario. Con el fin de evitar que un grupo pequeo pueda ejercer una influencia excesiva, se ha estipulado que no se permitir a ningn m miembro ser secretario de ms de un comit. Bajo qu condiciones es esto posible? No siempre lo es; si hay demasiados comits en una clase relativamente pequea, es ms complicado. Para resolver el problema volvemos a crear un grafo bipartido siendo uno de los conjuntos de vrtices los n comits y el otro conjunto de vrtices de los alumnos que hay en la clase, dibujaramos una arista desde un comit hasta un alumno a si a es miembro de ese comit. As que la condicin de diversidad en este caso ser: cualquier grupo de k comits tiene que incluir al menos a k alumnos distintos, para que se puedan elegir secretarios diferentes.

Francs Ingls Alemn Ruso Ana Berta Carlos Daniel Enrique X X X X X X X X X X

Para el caso de grafos bipartidos el tiempo de procesamiento es mejor ya que el algoritmo para este caso modifica algunos pasos, para hacerlo mas eficiente. 9. REFERENCIAS

[1] Prez Martn Raquel, Emparejamiento de Grafos, Trabajo de fin de Carrera, Santiago de Chile, Diciembre 2004. [2] Hernndez Pealver Gregorio, Emparejamientos y flujos, UPM, 2005. [3] Ore, Oystein. Grafos y sus aplicaciones. Euler 1995. [4] West, Douglas B. Introduction to graph theory. Prentice Hall 2001.

Tabla 1. Representacin del problema de idiomas. Las relaciones establecidas se representan por el grafo G de la siguiente figura que no es bipartido. Pero en este caso, la solucin del problema tambin es un subgrafo cuyos vrtices tengan grado uno, y que tengan el mayor nmero posible de aristas. Dos posibles soluciones entre todas las que hay vienen dadas por los subgrafos M1 y M2 que se muestran a continuacin.

M1

M2

B C

B C

Fig. 14. Modelizacin y solucin al problema de los idiomas.

* La bsqueda de emparejamientos en grafos se ha


convertido en los ltimos aos en un destacado campo de estudio apareciendo en gran nmero de importantes aplicaciones prcticas. Adems de problemas relativos a asignacin de trabajos, hay muchas otras aplicaciones industriales, que incluyen el transporte de mercancas desde las fbricas hasta los almacenes o mercados. 8. CONCLUSIONES

El emparejamiento de grafos es un tema de estudio nuevo pero de grandes aplicaciones, por ello nenecita de un algoritmo eficiente y efectivo para la resolucin de los diversos problemas sobre emparejamientos. El algoritmo voraz para resolver el problema del emparejamiento mximo de vrtices en un grafo, es una solucin adecuada por su efectividad y legibilidad. La complejidad computacional promedio del algoritmo voraz es de O(nlog(n)), pero puede llegar hasta O(n2) para grafos mas densos.

You might also like