Вы находитесь на странице: 1из 6

Nombre: Edward Isaac Ayala Hernández

Matrícula: 91138

Grupo: K048

Materia: Arquitectura de computadoras

Nombre del asesor: Dr. Agustín Leobardo Herrera May

Actividad: 4. Teoría de grafos

Ciudad y fecha: Villahermosa, Tabasco. 27 de julio de 2018


Algoritmos de Coloración

Una coloración de un grafo G es una asignación de colores a los vértices de G, a cada


vértice un color, de forma que vértices adyacentes reciban colores distintos.

Podemos decir para simplificar, que la coloración de los vértices de un grafo, se basa
en encontrar grupos de vértices que no sean adyacentes entre sí.

Algoritmo de coloración secuencial básico

El orden en que se colorean los vértices se decide antes de que se empiece a


colorearlos. Dada una ordenación de los vértices del grafo, los algoritmos secuenciales
asignan el mínimo color posible al siguiente vértice. Es decir, si queremos colorear v,
teniendo ordenados numéricamente los colores, asignamos a v el color más pequeño
que no aparece entre los asignados a los vecinos de v ya coloreados.
Algoritmo de coloración de Welsh y Powell

Es una variante del algoritmo de coloración secuencial básico, también conocida como
"Primero el de mayor grado". Es debida a Welsh y Powell, y en este algoritmo, los
vértices se ordenan inicialmente de acuerdo a sus grados. Es decir, ordenamos de
forma que d(v1) >= d(v2) >= ... >= d(vn).

Algoritmo de coloración de Matula, Marble, Isaacson

Es una variante del algoritmo de coloración secuencial básico, también conocida como
"El de menor grado el último". Se debe a Marble, Matula e Isaacson, y en este algoritmo,
los vértices se ordenan en orden inverso. Primero se elige vn como el vértice de menor
grado, luego se elige vn-1 como el vértice de menor grado en G-{vn}, y así se continúa
recursivamente, examinando los vértices de menor grado y eliminándolos del grafo.

Algoritmo de coloración de Brelaz

En los algoritmos anteriores, la única información que se tiene de cada vértice es su


grado. En el algoritmo de Brelaz, tendremos en cuenta también la suma de los grados
de los vecinos de cada vértice y los colores ya asignados a dichos vecinos. Definimos
el grado de color de un vértice v como el número de colores usados en los vecinos de
v. El orden en que iremos coloreando vértices depende del grado y del grado de color.

Podemos resumir el funcionamiento del algoritmo de Brelaz de la siguiente


manera:

Entrada: Un grafo G.

Salida: Una coloración de los vértices de G.

Paso 1: Ordenar los vértices en orden decreciente de grados.

Paso 2: Coloreamos un vértice de grado máximo con el color 1.


Paso 3: Seleccionamos un vértice, aún sin colorear, con grado de color máximo. Si hay
varios, elegimos el de grado máximo.

Paso 4: Colorear el vértice seleccionado en el paso 3 con el menor color posible.

Paso 5: Si todos los vértices se han coloreado, FIN. En caso contrario, volver al paso 3.

Algoritmo de independencia MCI

Un conjunto S de vértices de un grafo G es independiente si no hay dos vértices de S


que sean adyacentes en G. Un conjunto independiente S de vértices de un grafo G se
llama un conjunto independiente maximal si S no es subconjunto propio de ningún
conjunto independiente de vértices de G. El máximo cardinal de un conjunto
independiente se llama número de independencia de G y se designa por B(G). Cada
conjunto independiente de cardinal B(G) es maximal, pero el recíproco no es cierto.

En los algoritmos secuenciales se colorean los vértices de uno en uno, con lo que el
ataque al problema de la coloración se intenta vía el número de claque, atendiendo a la
acotación X(G) >= w(G). Pero tenemos otra acotación para el número cromático.
Recordemos que el número de independencia B(G) nos indica que ninguna clase de
color, vértices igualmente coloreados, puede tener más de B(G) elementos. Por tanto,
si designamos por n al número de vértices se tiene que X(G) >= n / B(G). Esta cota tiene
a ser mejor que la anterior para grafos grandes.

Estas ideas sugieren algoritmos en los que, en un primer paso se localice un conjunto
independiente de vértices de cardinal próximo a B(G), se coloreen todos con el color 1,
después se borre este conjunto de vértices y se repita el proceso en el grafo que resulte,
continuando así hasta colorear todos los vértices.

Una forma de obtener los conjuntos independientes de un grafo es la siguiente:

Paso 1: Obtener el vértice con menor grado


Paso 2: Añadir el vértice al conjunto independiente actual

Paso 3: Eliminar del grafo el vértice seleccionado y sus vecinos.

Paso 4: Si el grafo no tiene ningún vértice, ir al Paso 5, si el grafo tiene vértices, volver
al Paso 1.

Paso 5: Eliminar del grafo los vértices pertenecientes al conjunto independiente actual.

Paso 6: Si el grafo no tiene ningún vértice, se han obtenido todos los conjuntos
independientes, ir al Paso 7. Si el grafo tiene vértices, inicializar el conjunto
independiente actual y volver al Paso 1.

Paso 7: Fin del algoritmo.

Grafo

Grafo etiquetado con 6 vértices y 7 aristas.

En matemáticas y ciencias de la computación, un grafo (del griego grafos: dibujo,


imagen) es un conjunto de objetos llamados vértices o nodos unidos por enlaces
llamados aristas o arcos, que permiten representar relaciones binarias entre elementos
de un conjunto.1 Son objeto de estudio de la teoría de grafos.

Típicamente, un grafo se representa gráficamente como un conjunto de puntos (vértices


o nodos) unidos por líneas (aristas).

Desde un punto de vista práctico, los grafos permiten estudiar las interrelaciones entre
unidades que interactúan unas con otras. Por ejemplo, una red de computadoras puede
representarse y estudiarse mediante un grafo, en el cual los vértices representan
terminales y las aristas representan conexiones (las cuales, a su vez, pueden ser cables
o conexiones inalámbricas).

Prácticamente cualquier problema puede representarse mediante un grafo, y su estudio


trasciende a las diversas áreas de las ciencias exactas y las ciencias sociales.
Ejemplo

Este grafo G consta de un conjunto V de vértices

V = {S, T, U, V, W, X, Y, Z}

y el conjunto de lados

E = {e1, e2, e3, .... , e11 }.

El lado e1 está asociado con el par no ordenado {T, U}, el lado e10 está asociado al par
no ordenado {S, X}. El lado e1 se denota por (U, T) o bien (T, U). El lado e4 es incidente
en los vértices Y y Z por lo que Y y Z son vértices adyacentes.

Вам также может понравиться