Ir al contenido principal

Entradas

Mostrando las entradas de septiembre, 2017

#08 Emuladores

Un emulador es aquel software que nos permite ejecutar programas o cualquier tipo de software diferente para la cual fue diseñada desde un principio, una arquitectura diferente. Puede sonar un poco como si fuera un simulador, pero la gran diferencia entre estos es que el simulador solo trata de imitar el comportamiento del programa en específico, mientras que el emulador trata de ejecutar fielmente el funcionamiento del sistema y la arquitectura completa, para dar el mayor la mayor sensación como si el dispositivo emulado fuera el original. Uno de los usos principales que se les da a estos tipos de tecnología es para la emulación de videojuegos, mostrar cómo sería la experiencia de juego en X consola Estructura La mayoría de los emuladores solo emulan una determinada configuración  arquitectura de hardware  - si el sistema de explotación ( o  sistema operativo ) también se requiere para emular cierto programa entonces ha de ser emulado también. Tanto el sistema ...

#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...

07# Dispositivos ARM

ARM En esta entrada les voy a hablar un poco de dispositivos ARM, o más que todo la arquitectura. Advanced RISC Machine eso significan las siglas de esta arquitectura. Esta es una simplificación de los procesadores CISC que se encuentran en la mayoría de las computadoras del mundo. Esta arquitectura está hecha para trabajar con bajo consumo, de mucho menor tamaño con la relación a los X86, sus temperaturas son menores… estas características permiten portabilidad del dispositivo donde está instalado. Hoy en día es una de las arquitecturas con más auge, gracias a que las personas ahora están más interesadas en la portabilidad y comodidad que otorgan los dispositivos que integran esta arquitectura. El dispositivo que estamos utilizando en un proyecto que tenemos actualmente, se basa en esta arquitectura, es el Raspberry Pi 3, este se podría decir que es una de las computadoras más baratas que existen en el mercado, con capacidad suficiente para mover sistemas operativos sim...

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...

06# Cross compiler

Un cross compiler o compilador cruzado es aquel que simula una plataforma o arquitectura distinta a la que se está trabajando en este momento, ya sea porque no se tiene acceso a esa plataforma en ese momento o es imposible conseguirlo. Hace poco en el Instituto nos asignaron un trabajo que se realizará en un Raspberry Pi, es una mini computadora basada en arquitectura ARM, cosa que en este momento no tengo acceso, estaba la opción de emular el sistema completo, pero investigué un poco acerca de este tema entonces pude lograr utilizar este método más sencillo para lograr compilar programas para este dispositivo. Gracias a que tenía instalado el SO Linux, pude hacer inclusión de este cross compiler de una manera más rápida, ya que este sistema contenía la mayoría de herramientas que necesitaba. Fuente: http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/ Este es un diagrama por los que debería pasar el software antes de quedar listo para la ar...

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...