Grafos. Conceptos básicos

Documentos relacionados
1. Lección 7 - Rentas - Valoración (Continuación)

Trabajo Especial 2: Cadenas de Markov y modelo PageRank

Algoritmo para la ubicación de un nodo por su representación binaria

APLICACIÓN DEL ANALISIS INDUSTRIAL EN CARTERAS COLECTIVAS DE VALORES

ACTIVIDADES INICIALES

UNIVERSIDAD CARLOS III DE MADRID Ingeniería Informática Examen de Investigación Operativa 21 de enero de 2009

TEMA 8: PRÉSTAMOS ÍNDICE

Capitalización y descuento simple

Histogramas: Es un diagrama de barras pero los datos son siempre cuantitativos agrupados en clases o intervalos.

GUIAS DE ACTIVIDADES Y TRABAJO PRACTICO Nº 22

Relaciones entre variables

1. GENERALIDADES DEL ÁLGEBRA GEOMÉTRICA. Definición del álgebra geométrica del espacio-tiempo

Comparación entre distintos Criterios de decisión (VAN, TIR y PRI) Por: Pablo Lledó

Pregunta Hoy está nublado, cuál es la probabilidad de que mañana continúe nublado? cuál es la probabilidad de que está nublado pasado mañana?

CÁLCULO DE INCERTIDUMBRE EN MEDIDAS FÍSICAS: MEDIDA DE UNA MASA

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 17

OPERACIONES ARMONIZACION DE CRITERIOS EN CALCULO DE PRECIOS Y RENDIMIENTOS

CESMA BUSINESS SCHOOL

Tema 4: Variables aleatorias

PROPORCIONAR RESERVA ROTANTE PARA EFECTUAR LA REGULACIÓN PRIMARIA DE FRECUENCIA ( RPF)

Media es la suma de todas las observaciones dividida por el tamaño de la muestra.

CARTAS DE CONTROL. Han sido difundidas exitosamente en varios países dentro de una amplia variedad de situaciones para el control del proceso.

Vectores VECTORES 1.- Magnitudes Escalares y Magnitudes Vectoriales. Las Magnitudes Escalares: Las Magnitudes Vectoriales:

Dicha tabla adopta la forma del diagrama de árbol del dibujo. En éste, a cada uno de los sucesos A y A c se les ha asociado los sucesos B y B c.

1.- Elegibilidad de estudiantes. 2.- Selección de estudiantes - 2 -

Tu área reservada Organización Simplicidad Eficiencia

Tema 1.3_A La media y la desviación estándar

12-16 de Noviembre de Francisco Javier Burgos Fernández

6.1 EN QUÉ CONSISTEN LOS NÚMEROS COMPLEJOS

GANTT, PERT y CPM INDICE

Apéndice A: Metodología para la evaluación del modelo de pronóstico meteorológico

Cifrado de imágenes usando autómatas celulares con memoria

Econometría. Ayudantía # 01, Conceptos Generales, Modelo de Regresión. Profesor: Carlos R. Pitta 1

Medidas de centralización

Efectos fijos o aleatorios: test de especificación

Capítulos 1-3: CAPITALIZACIÓN Y DESCUENTO

Créditos Y Sistemas de Amortización: Diferencias, Similitudes e Implicancias

Fisicoquímica CIBEX Guía de Trabajos Prácticos Trabajo Práctico N 7. - Medida de la Fuerza Electromotriz por el Método de Oposición-

Métodos específicos de generación de diversas distribuciones discretas

Unidad 3 PLANIFICACIÓN DE TIEMPOS, PROGRAMACIÓN DE RECURSOS Y ESTIMACIÓN DE COSTOS DE LA EJECUCIÓN Y MANTENIMIENTO DE LOS STI

Material realizado por J. David Moreno y María Gutiérrez. Asignatura: Economía Financiera

Investigación y Técnicas de Mercado. Previsión de Ventas TÉCNICAS CUANTITATIVAS ELEMENTALES DE PREVISIÓN UNIVARIANTE. (IV): Ajustes de Tendencia

CONSEJERÍA DE SANIDAD Y SERVICIOS SOCIALES

Cálculo y EstadísTICa. Primer Semestre.

Colección de problemas de. Poder de Mercado y Estrategia

Trabajo y Energía Cinética

Explicación de las tecnologías - PowerShot SX500 IS y PowerShot SX160 IS

8 MECANICA Y FLUIDOS: Calorimetría

Profesor: Rafael Caballero Roldán

APENDICE A. El Robot autónomo móvil RAM-1.

CÁLCULO VECTORIAL 1.- MAGNITUDES ESCALARES Y VECTORIALES. 2.- VECTORES. pág. 1

Smoothed Particle Hydrodynamics Animación Avanzada

EXPERIMENTACIÓN COMERCIAL(I)

CANTIDADES VECTORIALES: VECTORES

1.- Una empresa se plantea una inversión cuyas características financieras son:

LA FINANCIACION DE PROVEEDORES Y LA GESTION DE STOCKS. UNA VISION CONJUNTA.

FIABILIDAD (V): COMPARACIÓN (NO PARAMÉTRICA) DE MUESTRAS

2.5 Especialidades en la facturación eléctrica

2.2.CURSOS, OPOSICIONES Y CONCURSOS

INSTRUCTIVO No. SP 04 / 2002 INSTRUCTIVO PARA LA DETERMINACIÓN Y CÁLCULO DEL SALARIO BÁSICO REGULADOR

Análisis de Sistemas Multiniveles de Inventario con demanda determinística

En este caso, el valor actual de una unidad monetaria pagadera al final del año de fallecimiento de

CAPÍTULO 3 METODOLOGÍA. En el siguiente capítulo se presenta al inicio, definiciones de algunos conceptos actuariales

ESTADÍSTICA (GRUPO 12)

MODELOS DE SECUENCIACIÓN EN MÁQUINAS 1

v i CIRCUITOS ELÉCTRICOS (apuntes para el curso de Electrónica)

2.2 TASA INTERNA DE RETORNO (TIR). Flujo de Caja Netos en el Tiempo

Correlación y regresión lineal simple

Población: Es el conjunto de todos los elementos cuyo conocimiento nos interesa y serán objeto de nuestro estudio.

ANÁLISIS DE ACCESIBILIDAD E INTERACCIÓN ESPECIAL:

BOLETÍN OFICIAL DE CANTABRIA

CONSEJERÍA DE EDUCACIÓN, CULTURA Y DEPORTE

Simulación y Optimización de Procesos Químicos. Titulación: Ingeniería Química. 5º Curso Optimización.

Guía de Electrodinámica

Procedimiento de Calibración. Metrología PROCEDIMIENTO DI-010 PARA LA CALIBRACIÓN DE COMPARADORES MECÁNICOS

Desarrollo de sistema de control para un manipulador de seis grados de libertad

Análisis de error y tratamiento de datos obtenidos en el laboratorio

SISTEMAS COMBINACIONALES

1.DISPOSICIONES GENERALES

UNIVERSIDAD DE LA LAGUNA

Fugacidad. Mezcla de gases ideales

FUNDAMENTOS QUIMICOS DE LA INGENIERIA

7.5.VARIOS CONSEJERÍA DE EDUCACIÓN, CULTURA Y DEPORTE DIRECCIÓN GENERAL DE INNOVACIÓN Y CENTROS EDUCATIVOS

Organización y resumen de datos cuantitativos

CAPÍTULO 5 REGRESIÓN CON VARIABLES CUALITATIVAS

RESISTENCIAS EN SERIE Y LEY DE LAS MALLAS V 1 V 2 V 3 A B C

PROBLEMAS DE ELECTRÓNICA ANALÓGICA (Diodos)

EL AMPLIFICADOR OPERACIONAL.

TÉCNICAS AUXILIARES DE LABORATORIO

CONSEJO DE GOBIERNO 1/9. i boc.cantabria.es. Pág. 4590

Leyes de tensión y de corriente

Título: Dos métodos de diagnóstico de circuitos digitales de alta y muy alta escala de integración.

DEFINICIÓN DE INDICADORES

Equilibrio termodinámico entre fases fluidas

Algunos métodos de clasificación de puestos de trabajo en la empresa

2 Tiempo, causalidad y estado global

DELTA MASTER FORMACIÓN UNIVERSITARIA C/ Gral. Ampudia, 16 Teléf.: MADRID

Perturbación de los valores propios simples de matrices de polinomios dependientes diferenciablemente de parámetros

F.Ares (2003) Business plan de una empresa de transporte de mercancías 48 CAPÍTULO 5 : MODELO DE LOCALIZACIÓN. LOCALIZACIÓ FINAL

Transcripción:

Grafos Se presenta en este módulo, como lectura complementara a los capítulos de Grafos del texto de clase: una lsta de conceptos que deben ser defndos con precsón por los alumnos, los elementos necesaros para la defncón de un TDA Grafo y los esquemas báscos para defnr las dferentes estructuras de datos que se pueden usar para representar un grafo. Conceptos báscos Grafo drgdo Grafo no drgdo Grafo etquetado o rotulado Mult-grafo Vértce o Nodo Arco o Arsta Arsta paralela Subgrafo Camno Longtud de camno Camno smple Cclo Cclo smple Grafo conexo Componente conexa Es mportante destacar que al hablar de grafo nos refermos a una famla de modelos. Para defnr uno en partcular se debe especfcar: s es drgdo o no drgdo, s puede tener arstas paralelas o es sn arstas paralelas, s es con vértces rotulados o con vértces no rotulados, s es con arcos rotulados o con arcos sn rótulos. Por eemplo, podemos defnr, entre otros, los sguentes modelos: Grafo drgdo con arstas paralelas, con vértces rotulados y con arcos no rotulados, Grafo drgdo sn arstas paralelas, con vértces y arcos rotulados, Grafo no drgdo con arstas paralelas, con vértces no rotulados y con arcos con rótulos Es decr, se pueden defnr dferentes TDA: Grafo, según el modelo que se ela, y según el conunto de operacones que se seleccone. Se presenta a contnuacón un conunto de operacones que permten completar la defncón de un TDA Grafo: prmero, sólo con alcance para hacer recorrdos y recavar nformacón del msmo y luego se amplía dcho conunto de operacones con otras que permten crear y actualzar grafos. I- Defncón del TDA: Grafo TDA: Grafo 1. Modelo: Se debe especfcar el tpo de modelo que se elge. 1

Observacón: de acá en más al decr grafo se hace referenca a uno que responde al modelo elegdo en la defncón. 2. Conuntos nvolucrados (aquellos a los que pertenecen los argumentos de las operacones) : Grafo = g/g es un grafo Vértce = v/v es un vértce de un grafo Nodo Nulo Rótulo_Vértce = R/R es un rótulo de un vértce de un grafo Rótulo_Arco = R/R es un rótulo de un arco de un grafo Índce = / es la dreccón que permte encontrar un vértce adyacente a un vértce dado Índce Nulo Para realzar un maneo más smple en la defncón de las operacones se consderan las constantes: Nodo Nulo: es un valor constante compatble con los valores con los que se representan los vértces de un grafo. Se trata de un valor especal que nunca concde con un vértce que exste en un grafo. Índce Nulo: análogamente al caso anteror, se trata de es un valor constante compatble con los valores con los que se representan los índces de los vértces adyacentes a un nodo de un grafo. Se trata de un valor especal que nunca concde con los de un índce en un grafo. 3. Operacones y sus respectvas descrpcones: 3.1. Con alcance para hacer recorrdos y recavar nformacón del grafo Prmer Vértce: Grafo Vértce Prmer Vértce (G): Vértce Como el número de vértces de un grafo es fnto, se puede hablar de la lsta de vértces (sempre se los puede organzar como una lsta, sn que esto mplque que hay uno dstngudo). Esta operacón devuelve el prmer vértce de la lsta de vértces del grafo G. S G no tene nodos, devuelve Nodo Nulo. Sguente Vértce: (Vértce Grafo) Vértce Sguente Vértce (V,G): Vértce Esta operacón devuelve el prmer vértce que sgue a V en la lsta de vértces del grafo G. S G no tene nodos o V=Nodo Nulo se plantea una stuacón de error. Cuando V es el últmo vértce de la lsta de vértces de G la operacón devuelve Nodo Nulo. Prmer Adyacente: (Vértce Grafo) Índce Prmer Adyacente (V,G): Índce 2

Como el número de vértces de un grafo es fnto, obvamente el número de vértces adyacentes a uno dado, tambén lo es. Por lo tanto se puede hablar de la lsta de vértces adyacentes (o lsta de adyacentes) a un vértce V (sempre se los puede organzar como una lsta, sn que esto mplque que hay uno dstngudo). Esta operacón devuelve el índce del prmer vértce de la lsta de adyacentes del vértce V del grafo G. S G no tene nodos o V=Nodo Nulo se plantea una stuacón de error. S V no tene nodos adyacentes devuelve Índce Nulo. Sguente Adyacente: (Vértce Índce Grafo) Índce Sguente Adyacente (V,I,G): Índce Esta operacón devuelve el índce del sguente vértce adyacente al de índce I de la lsta de adyacentes del vértce V en el grafo G. S V=Nodo Nulo o I=Índce Nulo o G no tene nodos, se plantea una stuacón de error. Cuando I es el índce del últmo adyacente de la lsta de adyacentes del vértce V, la operacón devuelve Índce Nulo. Vértce: (Índce Grafo) Vértce Vértce (I,G): Vértce Esta operacón devuelve el vértce que se encuentra en la dreccón I correspondente a la lsta de adyacentes de V. Exstrá error s I=Índce Nulo o s G no tene nodos. Rótulo Vértce: (Vértce Grafo) Rótulo_Vértce Rótulo Vértce (V, G): Rótulo_Vértce Esta operacón es sólo aplcable a grafos con vértces rotulados. Entrega la nformacón asocada al vértce V del grafo G. S G no tene nodos o s V=Nodo Nulo se plantea una stuacón de error. Rótulo Arco: (Vértce Vértce Grafo) Rótulo_Arco Rótulo Arco (V 1,V 2, G) Rótulo_Arco Esta operacón es sólo aplcable a grafos con arcos rotulados. Entrega la nformacón asocada al arco (V 1,V 2 ) del grafo G. S G no tene nodos o s no exste el arco (V 1,V 2 ) se plantea una stuacón de error. 3.2. Para amplar el alcance del TDA permtendo la creacón y/o modfcacón de un grafo, se ncorporan las sguentes operacones: Crear Grafo Nulo: Grafo Grafo Crear Grafo Nulo (G) Al eecutarse esta operacón el grafo G queda sn nodos y en condcones de recbrlos. Es aplcable a cualquer grafo. Insertar Vértce: (Rótulo_Vértce Grafo) Grafo Vértce 3

Insertar Vértce (R, G): Vértce Estructuras de Datos y Algortmos Esta operacón ncorpora un nuevo vértce V en el grafo G. S se trata de un grafo con vértces rotulados, le asoca a V el rótulo R (sempre que se trate de un grafo con vértces rotulados, en caso contraro no debería fgurar el argumento R). Devuelve el valor V. Insertar Arco: (Rótulo_Arco Vértce Vértce Grafo) Grafo Índce Insertar Arco (R,V 1,V 2, G): Índce Esta operacón ncorpora un nuevo arco (V 1,V 2 ) en el grafo G. S se trata de un grafo con arcos rotulados le asoca a dcho arco el rótulo R (sempre que se trate de un grafo con arcos rotulados, en caso contraro no debería fgurar el argumento R). Devuelve el valor I que es la dreccón del vértce V 2, en la lsta de adyacentes a V 1 en el grafo G. Elmnar Vértce: (Vértce Grafo) Grafo Elmnar Vértce (V, G) Esta operacón elmna el vértce V del grafo G. Elmna tambén todos los arcos en los que V está nvolucrado. S V no es un vértce de G, G permanece sn modfcacones. Elmnar Arco: (Vértce Vértce Grafo) Grafo Elmnar Arco (V 1,V 2, G) S (V 1,V 2 ) es un arco del grafo G entonces esta operacón lo elmna, s no el grafo G permanece sn modfcacones. S se trata de un mult-grafo, se deberá ncorporar un parámetro más que permta dentfcar el arco a elmnar. II- Implementacón del TDA: Grafo Para mplementar un TDA se debe: 1. elegr una estructura de datos adecuada para representar el modelo especfcado en la defncón 2. hacer los procedmentos (o funcones) correspondentes a las operacones especfcadas en la defncón Se presentan a contnuacón (en forma esquemátca) dferentes propuestas para la eleccón de la estructura de datos. En base a ellas, los alumnos deben hacer las correspondentes defncones. Tambén deben mplementar las operacones del TDA, para ello, obvamente, es ndspensable segur felmente la descrpcón de las msmas. 4

Estructuras de datos para representar un grafo Para representar grafos exsten tres esquemas báscos; según el modelo del grafo, dchos esquemas se deben completar adecuadamente. Los esquemas están pensados para grafos drgdos. Para el caso de grafos no drgdos, se descrbe al fnal de este apartado. Las alternatvas que se proponen son: Matrz de Adyacencas Arreglo de lstas Adyacencas Lsta de Lstas de Adyacencas V 1 V 2 V 3 V n V 1 v v V 1 V 2 v V 2 V 3 v v v V n v v v V 3 V 4 1- Representacón medante una matrz de adyacencas Se trata de una representacón medante un arreglo de dos dmensones (matrz). Los índces de la matrz representan los vértces del grafo y cada una de las componentes [,] toma un valor lógco según el arco (,) pertenezca o no al grafo que representa. En este caso, los conuntos Vértce e Índce concden. Para el sguente eemplo El esquema es: 2 LM 1 2 LM f v 5

S el grafo tene los vértces rotulados, la estructura se debe completar con un mapeo Vértce Rótulo_Vértce. S el grafo tene los arcos rotulados, las componentes de la matrz además deberán aloar esa nformacón. S se trata de un mult-grafo, cada una de las componentes [,] de la matrz aloará una lsta con los rótulos de los arcos (,). S (,) no es un arco del grafo, la componente [,] tendrá una lsta vacía. S se quere dar certa flexbldad a la representacón en relacón con el número de vértces, puede declararse una matrz más grande, sempre guardar el grafo desde la componente [1,1] y completar la estructura con un cursor al últmo vértce. De esta forma se puede trabaar con operacones de actualzacón, sempre con la lmtacón que mplca un arreglo como estructura subyacente. 2- Representacón medante una arreglo de lstas de adyacencas Los índces del arreglo representan los vértces del grafo y cada una de las componentes [] tene un enlace a la lsta de adyacentes al vértce. En este caso el tpo Índce está compuesto por las dreccones de las celdas de las lstas de adyacentes y el enlace Nulo. Es decr, al sguente caso: k Le corresponde: 1 2 k LM k S el grafo tene los vértces rotulados, la estructura se debe completar con un mapeo Vértce Rótulo_Vértce. 6

S el grafo tene los arcos rotulados, las celdas de las lstas de adyacentes deberán aloar dcha nformacón. Para dar certa flexbldad a la representacón respecto del número de vértces, puede declararse un arreglo con más componentes, sempre guardar el grafo desde la componente [1] en lugares consecutvos y completar la estructura con un cursor al últmo vértce del arreglo. De esta forma se puede trabaar con operacones de actualzacón, sempre con la lmtacón que mplca un arreglo como estructura subyacente. 3- Representacón medante una lsta enlazada de lstas de adyacenca Con el propósto de flexblzar más la propuesta anteror, en este caso se reemplaza el arreglo de vértces por una lsta enlazada de vértces. Cada celda tendrá un apuntador a la lsta de adyacentes correspondente. En esta opcón cada vértce es la dreccón de la celda correspondente en la lsta enlazada de vértces y los índces son las dreccones de las celdas de las lstas de adyacentes. Entonces, para el caso: k El esquema de representacón es: k k S el grafo tene los vértces rotulados, la estructura se debe completar ncorporando la nformacón en las celdas de la lsta de vértces. S el grafo tene los arcos rotulados, las celdas de las lstas de adyacentes deberán aloar dcha nformacón. 7

Para el caso de un grafo no drgdo G, se los representa prmero como un grafo drgdo equvalente G y luego se elge alguna de las estructuras de datos presentadas anterormente. G se obtene a partr de G de la sguente manera: Para cada vértce v de G, v es vértce de G Para cada arco (v 1,v 2 ) de G se cumple que (v 1,v 2 ) y (v 1,v 2 ) deben pertenecer a G Recorrdos de Grafos El recorrdo de un grafo, o su navegacón, se realza sguendo las relacones de adyacenca, es decr a través de las conexones entre los nodos. En otras palabras desde un vértce se puede r solamente a uno de sus adyacentes. Recorrerlo sgnfca pasar una y sólo una vez por cada nodo, cumplendo en él con la tarea que se deba hacer según el caso; dcha tarea se llamará genércamente Vstar. E A C F B D Vértce s A B C D E F Adyacentes B, C, E C D, E F Según la manera en que se vayan recorrendo los adyacentes de cada vértce del grafo podemos dstngur: 1. Recorrdo en Profunddad 2. Recorrdo en Anchura 1. Recorrdo en Profunddad La estratega en la que se basa este recorrdo es la msma que aplcamos en el recorrdo en preorden de los árboles. Dado un dgrafo como el de la fgura, la dea es que partendo de uno de los vértces avanzar lo más leos que se pueda, a través de uno de los adyacentes (por eemplo el prmero de ellos). Una vez que no se puede avanzar más, se contnúa a partr del próxmo adyacente del últmo vstado. Para el eemplo mostrado s comenzamos el recorrdo a partr del vértce rotulado con la A, este recorrdo nos permtría vstar los restantes vértces en el sguente orden: A, B, C, D, E, F. Analcemos este recorrdo. Comenzamos con el vértce rotulado con A y tomando como convencón que de los adyacentes a A elegmos el prmero, luego vstamos el vértce rotulado con B. Una vez alcanzado el vértce con rótulo B, pasamos a su únco 8

adyacente el rotulado con C. De los dos adyacentes de éste, los vértces rotulados con D y E respectvamente, optamos por el prmero vstando de esta manera al que tene rótulo D. En este punto no podemos avanzar más pues D no tene adyacentes, razón por la cual retomamos los adyacentes del vértce vstado nmedatamente antes. Como ese vértce fue el rotulado con C, contnuamos el recorrdo con el próxmo de sus adyacentes el rotulado con E. Una vez vstado el vértce con rótulo E, contnuamos el recorrdo por su prmer adyacente, el vértce con rótulo F. Vstamos F y nuevamente como éste no tene adyacentes debemos retornar y contnuar con los adyacentes a C. Dado que para nuestro eemplo el vértce rotulado con E era el últmo de los adyacentes a C, debemos contnuar explorando los adyacentes que deamos pendentes al pasar a C. En otras palabras debemos tomar el próxmo adyacente al vértce con rótulo B. En el dgrafo eemplo, B tenía un únco adyacente, por lo cual esa nstanca ya está completa. El recorrdo por consguente debería retomar los adyacentes a A a partr del últmo explorado. Sendo que de estos vértces el únco explorado fue el rotulado con B, el recorrdo debería consderar a C que es el próxmo de sus adyacentes. En este punto debemos detenernos en el hecho de que ya vstamos dcho vértce. S lo que nosotros estamos planteando es recorrer todos los vértces del dgrafo, obvamente pasando por cada vértce una sola vez, no debemos vstarlo nuevamente. Además como ya lo vstamos, tambén hcmos lo propo con todos los demás vértces que se pueden alcanzar a partr del msmo. Stuacón smlar a la anteror es la que enfrentamos al ntentar el recorrdo con el próxmo de los adyacentes al vértce con rótulo A, el vértce con rótulo E. Este vértce ya fue vstado por lo cual deberíamos descartarlo y contnuar con el sguente. Como este vértce es el últmo de los adyacentes al rotulado con A, fnalzamos nuestro recorrdo. La stuacón anteror nos lleva a plantearnos la necesdad de llevar un control o un regstro de los vértces que se han do vstando prevamente para no volver a vstarlos. Contar con un regstro tal, nos permte detectar la presenca de cclos en el grafo que estamos recorrendo. S en el dgrafo del eemplo hubera una arsta con orgen en el vértce rotulado con C y destno en el de rótulo A, al recorrerlo quedaríamos atrapados en el cclo ABC. Esto lo evtamos al saber que el vértce con rótulo A ya había sdo vstado anterormente. A contnuacón planteamos un algortmo en térmno de las operacones del TDA Grafo que recorre un grafo G en profunddad a partr de un vértce V. El regstro de los vértces vstados lo hacemos utlzando un conunto de vértces para tal fn, al que llamamos Vstados. Profunddad ( G: Grafo, V: Vértce, VAR Vstados: Conunto); (* V es vértce no nulo y en la prmera nvocacón del procedmento Vstados={V} *) Var Ady: Índce; Vert_Ady: Vértce; Begn 9

End; Ady := Prmer Adyacente( V, G); Mentras Ady Índce_Nulo hacer Vert_Ady := Vértce ( V, Ady, G); S Vert_Ady Vstados Entonces Insertar ( Vert_Ady, Vstados); Profunddad ( Vert_Ady, G, Vstados) Ady := Sguente Adyacente ( V, Ady, G) 2. Recorrdo en Anchura La dea de este recorrdo es la msma que nspra el recorrdo por nveles vsto para árboles. Partendo de un vértce, se lo vsta y a contnuacón se hace lo propo con todos sus adyacentes. Una vez vstados todos, se procede a vstar los adyacentes de cada de uno de ellos, para luego contnuar el recorrdo a partr de cada uno de ellos y así sucesvamente. Para el eemplo planteado: A B C D E F S se comenza a recorrer en anchura a partr del vértce rotulado con A, los vértces se rán vstando en el sguente orden: A, B, C, E, D, F. Lo planteado en el recorrdo anteror sobre los controles necesaros para evtar vstar vértces más de una vez y sobre la deteccón de cclos es váldo tambén en este caso. Tambén lo es la solucón presentada de llevar un regstro de los vértces vstados. A contnuacón presentamos un algortmo para recorrer en Anchura a un grafo G a partr de un vértce V. Como en el caso del recorrdo por nveles para árboles usaremos una Cola de Vértces auxlar para r mantenendo los vértces, a medda que se los vsta, para poder obtener después sus adyacentes. El control de los vértces vstados lo haremos utlzando como en el recorrdo en Profunddad un conunto de vértces al que llamamos nuevamente Vstados. 10

Anchura ( G: Grafo, V: Vértce, VAR Vstados: Conunto); Var Ady: Índce; Vert_Ady: Vértce; C: Cola (* cola de vértces *) Begn Crear Cola Vacía (C); Poner En Cola (V, C); End; Mentras No (ColaVacía C)) Vert := Frente (C); Retrar De Cola (C); Ady := Prmer Adyacente( V, G); Mentras Ady Índce_Nulo hacer Vert_Ady := Vértce ( V, Ady, G); S Vert_Ady Vstados Entonces Insertar ( Vert_Ady, Vstados); Poner En Cola ( Vert_Ady, C) Ady := Sguente Adyacente ( V, Ady, G) Los recorrdos planteados pueden llegar a no ser sufcentes. Analcemos su comportamento para el sguente grafo no conexo: B H E C F D G J I Uno de los problemas que nos enfrentamos al momento de recorrer un grafo, es que el msmo puede tener más de una componente conexa. Este hecho nos evdenca la necesdad de contar con un algortmo que plantee un recorrdo a partr de cada vértce del grafo, asegurando que no vstemos más de una vez a cada uno de ellos. Para realzar este control utlzaremos el conunto de vértces Vstados que presentamos en los recorrdos anterores. A contnuacón se muestra un algortmo que realza lo propuesto: 11

Recorrdo Abarcador (G: Grafo); VAR Vstados: Conunto de Vértces; V: Vértce; Begn End; Crear Conunto Vacío (Vstados); V:= Prmer Vértce (G); Mentras V Vértce Nulo S V Vstados Entonces Insertar (V, Vstados); Profunddad (V, G, Vstados); (* En este punto se podría nvocar a Anchura*) V:= Sguente Vértce(V, G) 12