SlideShare una empresa de Scribd logo
1 de 11
Árboles generadores
o de expansión
Estructuras Discretas para informática
Actividad #7
Subgrupo 4
Estudiantes:
Moisés León
Laura Alfaro
Andrea Quesada
Joseph Calderón
Natalia González
definición
• Se define como un árbol subgrafo que contiene
todos los nodos de un grafo no dirigido conexo.
• Para determinar dichos árboles existen dos tipos
de algoritmos para realizar lo solicitado.
Búsqueda primero a lo ancho:
• Este recorre a lo largo cada vértice del subgrupo
visitando cada uno de los nodos sin repetición de los
propios.
• Cuándo el recorrido finaliza en un vértice donde sus
contiguos anteriormente han sido marcados; el proceso
retrocede al nodo ulterior y se continúa el trayecto a
partir de este.
La descripción general del algoritmo se puede
detallar de la siguiente manera:
I. Se inicializa en un vértice (si son letras por orden alfabético si son
números por orden numérico) y se toma como raíz del árbol generador.
II. Posteriormente se prosigue con la elección de un nodo vecino
(respetando el orden anterior) en donde se añade una arista entre ellos
donde seguidamente se incorporara al árbol.
III. Si se obtienen todos los vértices del grafo sin haber formado un
circuito, el algoritmo termina; en caso contrario el recorrido se repite
desde el vértice padre a su concluyente.
Búsqueda a lo ancho:
• Es un sistema que recorre todos los vértices del subgrafo. Para
ello se elegirá un conjunto control o cualquier otro elemento que le
permita al programador seleccionar la arista de menor valor
(respetando el orden alfabético y numérico) entre los otros posibles
tantos pares ordenados (que se encuentran asociados con el
vértices que se eligió) y se incorporara al árbol correspondiente.
Su descripción general se puede formular:
I. Se asigna un vértice como raíz del árbol y se prosigue a encontrar
todas las aristas posibles que unen la raíz con sus nodos adyacentes.
II. Se elige la arista de menor valor y se asigna al árbol.
III. Una vez asignada la arista se continua el procedimiento desde el paso
uno en base al último vértice de la arista incorporada.
IV. Si el conjunto control es igual a vacío el algoritmo finaliza, en caso
contrario se repite el proceso hasta culminar con el última arista sin
generar un circuito.
A continuación presentamos el código:
• El siguiente código consiste en la construcción de un k-árbol que
contiene una determinada cantidad de vértices; determinando la
búsqueda de un dato en específico encontrado en la lista de
nodos. Para cumplir esta sentencia el algoritmo debe comparar el
dato que se ingresó por parámetro con cada uno de los elementos
del árbol.
• La elaboración del código se realizó de manera genérica, el
usuario debe ingresar el orden del árbol, la cantidad de vértices y
por supuesto, el dato de búsqueda requerido.
Explicación del código:
• Seguidamente, utilizando el comando ShowGraph se trabaja en la
creación del árbol subgrafo donde se le asigna a “G” un k-árbol a
través del comando CompleteKaryTree[n,k]. La función de este
comando es el desarrollo de un árbol generador completo con n
vértices y un k orden esto quiere decir que cada padre tendrá k
hijos.
Explicación del código:
• Continuamente los comandos BreadthFirstTraversal y
DepthFirstTraversal se encargan de la confección del árbol a lo
ancho y también a lo largo. Esta acción se inicializa al activar el
ciclo For que recorrerá cada uno de los elementos que componen
cada árbol según el algoritmo, y que estarán sujetos bajo una
condición que compara el dato ingresado con los elementos de
cada algoritmo.
Explicación del código:
• Finalizado dichos procesos se imprime el dato encontrado (si es
que la función lo encontró); en caso contrario imprime “dato no
encontrado”. Destacando que para esta función se creó con
anterioridad dos variables que condicionaran que: si h es igual a 1
imprima “dato encontrado”, sino imprimirá “dato no encontrado”.
Explicación del código:

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Listas
ListasListas
Listas
 
Vectores, matrices y estructuras
Vectores, matrices y estructurasVectores, matrices y estructuras
Vectores, matrices y estructuras
 
trabajo grupal de Vectores Unidimencionales C++
trabajo grupal  de Vectores Unidimencionales C++trabajo grupal  de Vectores Unidimencionales C++
trabajo grupal de Vectores Unidimencionales C++
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Cadenas
CadenasCadenas
Cadenas
 
Informe tecnico u 6-victor uex
Informe tecnico u 6-victor uexInforme tecnico u 6-victor uex
Informe tecnico u 6-victor uex
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Matrices
MatricesMatrices
Matrices
 
Algoritmos de ordenación grafos y caminos
Algoritmos de ordenación grafos y caminosAlgoritmos de ordenación grafos y caminos
Algoritmos de ordenación grafos y caminos
 
3867581 entrada-de-datos-en-java
3867581 entrada-de-datos-en-java3867581 entrada-de-datos-en-java
3867581 entrada-de-datos-en-java
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Proyecto ipython - Oracle - Excel
Proyecto ipython -  Oracle - ExcelProyecto ipython -  Oracle - Excel
Proyecto ipython - Oracle - Excel
 
Programacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arreglosProgramacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arreglos
 
Unidad 3 estructura lineales
Unidad 3 estructura linealesUnidad 3 estructura lineales
Unidad 3 estructura lineales
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Listas
ListasListas
Listas
 

Similar a Actividad #7, subgrupo #4

Similar a Actividad #7, subgrupo #4 (20)

Inteligencia Artificial - Leonys B
Inteligencia Artificial - Leonys BInteligencia Artificial - Leonys B
Inteligencia Artificial - Leonys B
 
Arbol
ArbolArbol
Arbol
 
Arbol
ArbolArbol
Arbol
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
 
Algoritmo De Dijkstra
Algoritmo De DijkstraAlgoritmo De Dijkstra
Algoritmo De Dijkstra
 
Tecnicas de Busqueda en IA
Tecnicas de Busqueda en IATecnicas de Busqueda en IA
Tecnicas de Busqueda en IA
 
Actividad Teoría de Árboles.
Actividad Teoría de Árboles.Actividad Teoría de Árboles.
Actividad Teoría de Árboles.
 
prueba
pruebaprueba
prueba
 
Tecnicas de Busqueda en IA
Tecnicas de Busqueda en IATecnicas de Busqueda en IA
Tecnicas de Busqueda en IA
 
Arbol de costo_minimo
Arbol de costo_minimoArbol de costo_minimo
Arbol de costo_minimo
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
 
Manual NeuroSolutions
Manual NeuroSolutionsManual NeuroSolutions
Manual NeuroSolutions
 
Algoritmo de prim
Algoritmo de primAlgoritmo de prim
Algoritmo de prim
 
Clase redes neuronales 3
Clase redes neuronales 3Clase redes neuronales 3
Clase redes neuronales 3
 

Actividad #7, subgrupo #4

  • 1. Árboles generadores o de expansión Estructuras Discretas para informática Actividad #7 Subgrupo 4 Estudiantes: Moisés León Laura Alfaro Andrea Quesada Joseph Calderón Natalia González
  • 2. definición • Se define como un árbol subgrafo que contiene todos los nodos de un grafo no dirigido conexo. • Para determinar dichos árboles existen dos tipos de algoritmos para realizar lo solicitado.
  • 3. Búsqueda primero a lo ancho: • Este recorre a lo largo cada vértice del subgrupo visitando cada uno de los nodos sin repetición de los propios. • Cuándo el recorrido finaliza en un vértice donde sus contiguos anteriormente han sido marcados; el proceso retrocede al nodo ulterior y se continúa el trayecto a partir de este.
  • 4. La descripción general del algoritmo se puede detallar de la siguiente manera: I. Se inicializa en un vértice (si son letras por orden alfabético si son números por orden numérico) y se toma como raíz del árbol generador. II. Posteriormente se prosigue con la elección de un nodo vecino (respetando el orden anterior) en donde se añade una arista entre ellos donde seguidamente se incorporara al árbol. III. Si se obtienen todos los vértices del grafo sin haber formado un circuito, el algoritmo termina; en caso contrario el recorrido se repite desde el vértice padre a su concluyente.
  • 5. Búsqueda a lo ancho: • Es un sistema que recorre todos los vértices del subgrafo. Para ello se elegirá un conjunto control o cualquier otro elemento que le permita al programador seleccionar la arista de menor valor (respetando el orden alfabético y numérico) entre los otros posibles tantos pares ordenados (que se encuentran asociados con el vértices que se eligió) y se incorporara al árbol correspondiente.
  • 6. Su descripción general se puede formular: I. Se asigna un vértice como raíz del árbol y se prosigue a encontrar todas las aristas posibles que unen la raíz con sus nodos adyacentes. II. Se elige la arista de menor valor y se asigna al árbol. III. Una vez asignada la arista se continua el procedimiento desde el paso uno en base al último vértice de la arista incorporada. IV. Si el conjunto control es igual a vacío el algoritmo finaliza, en caso contrario se repite el proceso hasta culminar con el última arista sin generar un circuito.
  • 8. • El siguiente código consiste en la construcción de un k-árbol que contiene una determinada cantidad de vértices; determinando la búsqueda de un dato en específico encontrado en la lista de nodos. Para cumplir esta sentencia el algoritmo debe comparar el dato que se ingresó por parámetro con cada uno de los elementos del árbol. • La elaboración del código se realizó de manera genérica, el usuario debe ingresar el orden del árbol, la cantidad de vértices y por supuesto, el dato de búsqueda requerido. Explicación del código:
  • 9. • Seguidamente, utilizando el comando ShowGraph se trabaja en la creación del árbol subgrafo donde se le asigna a “G” un k-árbol a través del comando CompleteKaryTree[n,k]. La función de este comando es el desarrollo de un árbol generador completo con n vértices y un k orden esto quiere decir que cada padre tendrá k hijos. Explicación del código:
  • 10. • Continuamente los comandos BreadthFirstTraversal y DepthFirstTraversal se encargan de la confección del árbol a lo ancho y también a lo largo. Esta acción se inicializa al activar el ciclo For que recorrerá cada uno de los elementos que componen cada árbol según el algoritmo, y que estarán sujetos bajo una condición que compara el dato ingresado con los elementos de cada algoritmo. Explicación del código:
  • 11. • Finalizado dichos procesos se imprime el dato encontrado (si es que la función lo encontró); en caso contrario imprime “dato no encontrado”. Destacando que para esta función se creó con anterioridad dos variables que condicionaran que: si h es igual a 1 imprima “dato encontrado”, sino imprimirá “dato no encontrado”. Explicación del código: