Está en la página 1de 24

APLICACIONES DE LA TEORIA DE GRAFOS EN LA

INFORMÁTICA
 Un sistema de adquisición de
datos supervisa
continuamente un cierto
proceso físico, para registrar
su comportamiento,
información cambios
significativos y enviar
comandos a un controlando de
proceso.
 R (recoger), G (guardar), C
(calcular), I (imprimir) y E
(enviar)
APLICACIONES INFORMÁTICAS EN GRAFOS

BIPARTITOS
Comparación de archivos de computador, utilizando el problema de la Longest Common
Subsequence (LCS), en español Subsecuencia Común Más Larga.
 Dadas dos palabras X e Y sobre un alfabeto finito cualquiera, pretende encontrar cuál
es el largo máximo que puede tener una palabra que sea subsecuencia de X e Y
simultáneamente.
 El largo de una LCS se usa comúnmente como criterio de comparación de palabras,
pues está relacionada con la cantidad de "pasos" necesarios para ir de una palabra a la
otra mediante operaciones de inserción, eliminación y reemplazo de caracteres.
 Todo par de palabras puede representarse convenientemente como un grafo bipartito
donde los arcos unen a los caracteres coincidentes de ambas palabras.
 Un matching en un grafo arbitrario (no necesariamente bipartito) es cualquier conjunto
de arcos que no comparten extremos; un PM es un matching en donde los arcos no
se cruzan ni comparten extremos. Así, calcular la LCS entre dos palabras no es más
que calcular el matching planar de costo máximo del grafo bipartito asociado a dichas
palabras, donde todos los arcos tienen costo igual a 1.
ATMIA
APLICACIONESINFORMATICAS PARA LA CONEXIÓN
ENTRE GRAFOS ( I )
 Seguridad para las bases de datos de una empresa
 Funciones a diferentes departamentos para el manejo de inserción,
eliminación y actualización de los diferentes empleados que trabajan para
cada departamento.
 E= Empresa
 DS= Departamento de sistemas
 DC= Departamento de contaduría
 DG= Departamento para la gerencia
 ES= Empleados para el departamento de sistemas
 EC= Empleados para el departamento de contabilidad
 EG= Empleados que hacen parte con la gerencia de la
empresa
APLICACIONES INFORMATICAS PARA LA
CONEXIÓN ENTRE GRAFOS ( I I )
 Redes de comunicaciones móviles.
 Los patrones de comunicación de millones de usuarios de
teléfonos móviles, los grafos permiten estudiar
simultáneamente la estructura local y la global de una
sociedad en toda la red de comunicación, en las cuales se
observan acoplamientos entre la interacción fuertes y una
red de la estructura local.
 Cada enlace representa la comunicación mutua entre los
usuarios de la red de comunicación, y todos los nodos que
se muestran son la distancia inferior a seis desde usuario
seleccionado, marcado por un círculo en el centro.
ÁRBOLES
 Un árbol es un grafo sin circuitos.
 Se usarán árboles siempre que se quiera representar
información jerarquizada, cuando esta converja en un solo
punto.
 ARBOL BINARIO
 Un árbol binario es el que cumple que el subárbol izquierdo de
cualquier nodo (si no está vacío) contiene valores menores que el
que contiene dicho nodo, y el subárbol derecho (si no está vacío)
contiene valores mayores.
 Usos comunes de los árboles binarios son los árboles
binarios de búsqueda y codificación de huffman.
ÁRBOLES DE DECISIÓN
 Un árbol de decisión es un modelo de predicción utilizado en el ámbito de la inteligencia
artificial.
 Dada una base de datos se construyen estos diagramas de construcciones lógicas.
 Puede Contener:
 Un vértice interno contiene un test sobre algún valor de una de las propiedades.
 Un vértice de probabilidad indica que debe ocurrir un evento aleatorio de acuerdo a la naturaleza del problema, este
tipo de vértices es redondo, los demás son cuadrados.
 Un vértice hoja representa el valor que devolverá el árbol de decisión.
 Las ramas brindan los posibles caminos que se tienen de acuerdo a la decisión tomada.

 Los árboles de decisión se utilizan en cualquier proceso que implique toma de decisiones, ejemplos de estos
procesos son:
 Búsqueda Binaria
 Sistemas Expertos
 Árboles de juegos
APLICACIONES INFORMATICAS DE ÁRBOLES DE
DECISION ( I )
 CODIFICACION DE HUFFMAN
 Este algoritmo fue usado para compresión de datos.

 El termino se refiere al uso de una tabla de códigos de longitud variable

para codificar un determinado símbolo (como puede ser un caracter en un


archivo), donde la tabla ha sido rellenada de una manera específica
basándose en la probabilidad estimada de aparición de cada posible valor
de dicho símbolo.
 La codificación Huffman usa un método específico para elegir la

representación de cada símbolo, que da lugar a un código prefijo (es decir,


la cadena de bits que representa a un símbolo en particular nunca es prefijo
de la cadena de bits de un símbolo distinto) que representa los caracteres
más comunes usando las cadenas de bits más cortas, y viceversa.
 EJEMPLO

 FRASE a codificar: "Esto es un ejemplo de árbol de Huffman".


APLICACIONES INFORMATICAS DE ÁRBOLES DE
DECISION ( I I )
 Haremos una tabla para representar CARÁCTER
Espacio
FRECUENCIA
7
CODIGO
00
cada carácter es importante saber E 6 100

su numero de frecuencia, y su O
N
3
2
1100
1110

código, es bueno organizar cada U 2 0100

carácter de mayor a menor, esto


S 2 0101
M 2 1010

significa que aquel carácter que F 2 1011


L 2 0110
tenga el numero de frecuencia D 2 0111

mayor será el primero y así A


B
2
1
11010
110110
sucesivamente (frecuencia asumirlo H 1 110111

como numero de repeticiones que P


J 1
1
111100
111101
presenta un carácter). R 1 111110
T 1 111111
ARBOL REPRESENTACION CODIFICACION DE
HUFFMAN
APLICACIONES INFORMATICAS DE ÁRBOLES
DE DECISION ( I I I )
 Árboles de decisión en una crisis empresarial.
 El análisis de la crisis empresarial se configura como un aspecto
clave en el análisis de estados financieros al permitir a la
empresa disponer de un sistema de diagnóstico que abarque los
aspectos de solvencia y de rentabilidad.
 Un árbol de decisión representa la relación existente

entre la conclusión-decisión y sus atributos.


 Importe (menor de 100.000, entre 100.000 y
500.000, mayor de 500.000)
 Solvencia (alta, media y baja)
APLICACIONES INFORMATICAS DE ÁRBOLES DE
DECISION ( V )
 Arboles de juego
 Genera el árbol de acuerdo al nivel de previsión y cada jugador va
decidiendo que jugada le conviene más de acuerdo a la evaluación
de una determinada posición.
APLICACIONES INFORMATICAS DE ÁRBOLES DE
DECISION ( IV )
 Árboles de decisión utilizados en sistemas expertos.
 Puede llegar a ser lento pues analiza todas las posibilidades pero esto
a su vez es lo que lo vuelve mas preciso que al hombre.
ARBOL RECUBRIDOR
 Dado un grafo conexo, un árbol recubridor de ese grafo es un
sub-grafo que es un árbol y conecta todos los vértices.
 Se le puede asignar un peso a cada arista, que es un número que representa
qué tan adecuado es, y se usa para asignar un peso al árbol recubridor
mínimo computando la suma de todos los pesos de las aristas del árbol en
cuestión.
 Un árbol recubridor o un árbol expandido es un árbol recubridor que pesa
menos o igual que otros árboles recubridores. Todo grafo tiene un bosque
recubridor mínimo.
 El árbol recubridor es usado frecuentemente para algoritmos informáticos,
los algoritmos más destacados se explicaran a continuación.
SOFTWARE ALGORITMOS VORACES
 ALGORITMO DE KRUSKAL
 Encuentra el árbol recubridor
mínimo en un grafo conexo y
ponderado.
 Algoritmo:
1. Se marca la arista con menor valor.
Si hay más de una, se elige
cualquiera de ellas.
2. De las aristas restantes, se marca
la que tenga menor valor, si hay
más de una, se elige cualquiera de
ellas.
3. Repetir el paso 2 siempre que la
arista elegida no forme un ciclo con
las ya marcadas.
4. El proceso termina cuando tenemos
todos los vértices del grafo en alguna
de las aristas marcadas, es decir,
cuando tenemos marcados n-1 arcos,
siendo n el número de vértices del
grafo.
SOFTWARE ALGORITMOS VORACES
 ALGORITMO DE DIJKSTRA

También conocido como ruta más corta; a partir
de un vértice determinado se obtienen todas
las rutas más cortas hacia todos los demás
 vértices.
Los pasos a seguir para el algoritmo son:
1. Conocer el vértice de origen y el vértice
de destino.
2.
Marcar el vértice de origen y conocer a sus
3.
vecinos
Mirar los costos de las rutas hacia sus
4. vecinos
5. Marcar el vecino de la ruta más corta
6.
El vecino marcado se convierte en el nuevo
vértice de origen Vértice 1 2 3 4 5 6 7
7.
Hace paso 2 y 3
Ruta - 1,2 1,3 1,4 1,3,5 1,3,6 1,3,5,7
8.
Comparar todas las rutas que hay de sus
vecinos y no vecinos no marcados que ya
9.
tengan costo asociado. Costo 0 9 7 8 10 12 18
Obtener el vértice de costo mínimo
asociado y marcarlo
Volver a el paso 2
SOFTWARE ALGORITMOS VORACES

 ALGORITMO DE PRIM
 El algoritmo de Prim es un algoritmo de la teoría de
grafos para encontrar un árbol recubridor mínimo (MST)
en un grafo conexo (igual que el algoritmo de kruskal), no
dirigido y cuyas aristas están etiquetados. Si el grafo no
es conexo, entonces el algoritmo encontrara el árbol
recubridor mínimo para uno de los componentes conexos
que forman dicho grafo no conexo.
Dim inicio As Integer = 0 If visitado(menorEM.nodoE) = False Then
Dim i As Integer ' no ha sdo visitado vectVisitaNodo(indiceVisitas) =
Dim menorE As New nodoPeso Dim menorEM.nodoE indiceVisitas += 1
menorEM As New nodoPeso Dim 'dibuje el arco entre vectVisitaNodo(i) y menor e
menorvalor As Integer = 15000 MatGrafoPrimdibuja(menorEM.inicio,
Call trasprim() menorEM.nodoE) = menorEM.nodepeso
Call limpiarVisitas() End If Loop
vectVisitaNodo(indiceVisitas) = inicio menorvalor = 15000 End Sub
indiceVisitas += 1
Do While primVisitoTodos() = False
menorvalor = 15000 Public Sub trasprim()
For i = 0 To indiceVisitas - 1 Dim i As Integer, j As Integer
For i = 0 To maxNodos For j = 0 To
menorE = NodoMenor(vectVisitaNodo(i)) maxNodos
If menorE.nodepeso < menorvalor And MatGrafoPrim(i, j) = MatGrafo(i, j)
menorE.nodepeso <> 0 Then
Next
'colocar en una varuable vectVisitaNodo(i) y el fin que es
nodoE Next
menorvalor = menorE.nodepeso For i = 0 To maxNodos For j = 0 To
menorEM.inicio = vectVisitaNodo(i) maxNodos
If MatGrafoPrim(j, i) <> 0 Then
menorEM.nodoE = menorE.nodoE
MatGrafoPrim(i, j) = MatGrafoPrim(j, i) End If
menorEM.nodepeso = menorE.nodepeso
Next
Next End If
Next
End Sub
SOFTWARE ALGORITMOS VORACES
IMAGEN DESCRIPCION No vistos En el grafo En el árbol

Este es el grafo que será puesto de partida. No es un árbol ya que C, G A, B, E, F D


requiere que no haya circuitos y en este grafo los hay. Los
números cerca de las aristas indican el peso. Ninguna de las
aristas esta marcada, y el vértice D ha sido elegido
arbitrariamente como el punto de partida.

El segundo vértice es el más cercano a D: A esta a 5 de distancia, C, G B, E, F A, D


B a 9, E a 15 y F a 6. De estos, 5 es el valor mas pequeño, así
que marcamos la arista DA.

El próximo vértice a elegir es el mas cercano a D o A. B esta a 9 C B, E, G A, D, F


de distancia de D y a 7 de A, E esta a 15 y F esta a 6. 6 es el
menor
El algoritmo continúa. El vértice B que esta a una distancia de 7 de NULL C,E,G A,D,F,B
A, es el siguiente marcado. En este punto la arista DB es marcada
porque sus dos extremos ya están en el árbol y por lo tanto no podrá
ser utilizado.

Aquí hay que elegir entre C, E Y G. C esta a 8 de distancia de B, E NULL C,G A,D,F,B,E
esta a 7 de distancia de B, y G esta a 11 de distancia de F. E esta
mas cerca, entonces marcamos el vértice E y la arista EB. Otras dos
aristas fueron marcadas porque ambos vértices que unen fueron
agregados al árbol.

Solo quedan disponibles C y G. C esta a 5 de distancia de E, y G a NULL G A,D,F,B,E, C


9 de distancia de E. Se elige C, y se marca con el arco EC. El arco
BC también se marca.

G es el único vértice pendiente, y esta mas cerca de E que de F, asi NULL NULL A,D,F,B,E,
que se agrega EG al árbol. Todos los vértices están ya marcados, el C,G
árbol de expansión minimo se muestra. En este caso con un peso de
39.

SOFTWARE ALGORITMOS
VORACES
MUCHAS GRACIAS

También podría gustarte