Ir al contenido principal

Entradas

Mostrando las entradas con la etiqueta Estructura de Datos

12# Arboles B

Este árbol es un árbol de multicamino balanceado. Este tipo de estructura fue creado con el principal objetivo de poder realizar búsquedas de datos mas rápidos sin importar el tipo y sin reorganizar la estructura. La principales características de una estructura para considerarse de este tipo son las siguientes: - Cada nodo del árbol debe tener un mínimo de n valores en todo momento, a excepción de la raíz. - El numero máximo de valores que un nodo puede tener es 2*n. - El árbol siempre esta balanceado. - Los nodos intermedios deben tener por lo menos 2/n de sus claves usados. - Todos los nodos hoja deben aparecer juntas en el ultimo nivel. Búsqueda:  Cuando se realiza una búsqueda en este tipo de árbol se hace de una manera muy similar que cuando se busca en una árbol binario. se empieza de la raíz y se recorre el albor hacia abajo. Si la clave buscada no esta en la raíz se llega a una hoja la clave no existe. Inserción: Todas las inserciones se ...

11# Algoritmo de Prim

El algoritmo fue diseñado en 1930 por el matemático Vojtech Jarnik y luego de manera independiente por el científico computacional Robert C. Prim en 1957 y redescubierto por Dijkstra en 1959. Por esta razón, el algoritmo es también conocido como  algoritmo DJP  o  algoritmo de Jarnik . Descripción El algoritmo de Prim es un algoritmo perteneciente a la teoría de los grafos para encontrar un árbol recubridor mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas. Este incrementa continuamente el tama ño de un ár bol, comenzando por un vertice inicial al que se le van agregando sucesivamente vértices cuya distancia a los anteriores es mínima. Esto significa que en cada paso, las aristas a considerar son aquellas que inciden en vértices que ya pertenecen al árbol El árbol recubridor mínimo está completamente construido cuando no q...

10# Algoritmo de Dijkstra

En este episodio hablaré un poco sobre uno de los algoritmosque existen para determinar cuáles serían las mejores rutas en un grafo con métodos distintos. Dijkstra Este es un algoritmo eficiente (de complejidad O (n**2)), donde n es el número de vértices) que sirve para encontrar el camino de coste mínimo desde un nodo origen a todos los demás nodos del grafo. Fue diseñado por el holandés Edsger Wybe Dijkstra en 1959. Este algoritmo es un típico ejemplo de algoritmo ávido, que resuelven los problemas en sucesivos pasos, seleccionando en cada paso la solución más óptima con el objeto de resolver el problema “Dado un grafo a cuyos arcos se han asociado una seria de pesos, se define el camino de coste mínimo de un vértice “u” a otro “v”, como el camino donde la suma de los pesos de los arcos que lo forman es la más baja entre las de todos los caminos posibles de u a v”. Aquí les presento el algoritmo: 1-        Seleccionar el vértice de partida, u...

09# Teoría de Grafos y Biología Molecular

Uno de los temas tocados en la semana de la computación fueron el de la teoría de grafos y la biología molecular. También se pudo ver cómo estas se conectaban, como esta teoría ayudo a realizar grandes descubrimientos en el área de la biología molecular. Primero que todo vamos a ver la definición de cada para tener una idea más clara. Teoría de Grafos: Esta es una rama de las matemáticas y las ciencias de la computación que las propiedades de los grafos. Estructuras de datos vistos en el curso de Estructuras de Datos en nuestra carrera. La biología molecular Es la disciplina científica que tiene como objetivo el estudio de los procesos que se desarrollan en los seres vivos desde un punto de vista molecular. Fuente: Wikipedia Ya que tenemos sus definiciones ahora explicaré sus puntos donde intersecan. Estas áreas se relacionan gracias a que en la biología molecular se necesitaba saber cuál era la composición exacta de los DNA, gracias a grandes matemáticos y científic...

#08 Inteligencia Artificial

En el tema de hoy quiero hablar un poco sobre que es la inteligencia artificial y como esto está relacionado con las estructuras de datos. La inteligencia no deja de ser un conjunto de programas y algoritmos creados por los humanos para simular el proceso de aprendizaje de una persona o algún otro ser vivo. Uno de estos que son muy interesantes son las redes neuronales. Estos básicamente son unos algoritmos matemáticos que lo que simulan es el comportamiento de las neuronas para aprender. El funcionamiento de esta misma es muy simple, la neurona tiene un canal de impulso eléctricos conformada por las dendritas. Dependiendo de la intensidad a que lleguen esos impulsos la manda a través de su axón hacia las terminaciones axónicas, si la intensidad de la señal es menor al soportado por la neurona entonces no realiza nada. Entonces estas terminaciones estarán conectadas a otras dendritas de otras neuronas, y así repetirá el proceso. Esto nos dice que el cerebro está constituido ...

07# Árboles Splay

Este es un tipo de árbol de búsqueda que se auto balancea, su propiedad más importante es la de que cada elemento utilizado más recientemente sube una posición o directamente se vuelve la raíz de esta para tener un acceso más rápido al mismo. Esta característica nos ayuda mucho gracias a que este elemento al que damos uso puede ser algo que utilicemos a menudo por lo tanto tenerlo en una posición más cercana a nosotros. Inserción: El método de inserción es igual al de los demás arboles de búsqueda, pero luego de esto realiza el proceso de biselado o splay, con sus dos variantes más importantes la conservadora y la agresiva donde la conservadora solo coloca un nivel arriba el elemento que se modificó, añadió o ingreso en la última utilización de la estructura, por otra parte, el modo agresivo coloca como elemento raíz a estos mismos. Eliminación: El proceso de eliminación de los elementos de un árbol de este tipo puede ser un poco complicado, se puede tomar de dos varian...

06# Arboles

Arboles Buenas en esta entrada de la semana les hablaré un poco acerca de la estructura de datos Árbol. Esta estructura es regida por un orden jerárquico, esto quiere decir que el valor de importancia es por la cantidad o el rango que se tenga en un conjunto. Su composición es prácticamente la misma a la de un árbol de la vida real. Raíz: Base principal donde inician todo lo demás que compone el árbol. Ramas: Esta serían las conexiones que existen entre las hojas u otras ramas. Hojas: elemento que se encuentra al final de una rama. Nodos: estos son la interconexión que hay entre las ramas, también son las hojas que componen el árbol. Árbol Binario Uno de los arboles más conocidos y más fáciles de entender para poder entrar a este mundo de los árboles. Sus reglas de composición son sencillas. Todo nodo no puede tener más de dos nodos consecuentes. También el nivel jerárquico de este árbol nos dice que cada nuevo elemento que quiera ingresar debe cumplir la condici...

05# Algoritmo de Ordenamiento

Un algoritmo de ordenamiento es aquel que se encarga de mover elementos de una estructura de datos y mover con una relación de orden especifica. (Abecedario, números ascendentes, descendentes, etc..). Gracias a estos ordenamientos se puede lograr una mayor eficiencia en los algoritmos de búsqueda que hablamos anteriormente. El beneficio principal como se mencionó es la de identificar la ubicación de un dato con mayor facilidad, ya que los elementos de la estructura llevan un orden definido. La clasificación de estos algoritmos se define mayormente en 3 partes: 1-       Según desde donde está realizando el ordenamiento (memoria RAM o memoria secundaria) 2-       Según el tiempo que utilice para realizar el ordenamiento dependiendo de cómo se le entreguen los datos. 3-       La estabilidad del proceso de ordenamiento. Bubble Sort: Uno de los algoritmos más conocidos gracias a su fácil implementac...

04# Algoritmos de Búsqueda

Un algoritmo es como un conjunto de instrucciones que se deben seguir para realizar una tarea concreta. Este se rige por una serie de pasos o ciclos con sus condiciones definidas para el proceso del trabajo que se quiere hacer. Hoy nos basaremos mayormente en los algoritmos de búsqueda, estos se encargan de encontrar un elemento en una estructura de datos. Existen diversos algoritmos para este propósito. Unos de los vistos en las clases anteriores son el secuencial, binario y el de interpolación. Secuencial: Uno de los algoritmos más sencillos y fáciles de implementar, ya que su única función es la de comparar cada elemento de la estructura de datos con el elemento que se quiere encontrar: L: Largo de la estructura T: temporal contador ELE: Elemento a buscar A: Estructura donde se desea buscar Mientras L > T:                 Si ELE es igual a A posición [T]:     ...