miércoles, 22 de diciembre de 2010

Fractales Sintácticos

Un fractal es un objeto semigeométrico cuya estructura básica, fragmentada o irregular, se repite a diferentes escalas.Muchas estructuras naturales son de tipo fractal.

Un fractal natural es un elemento de la naturaleza que puede ser descrito mediante la geometría fractal. Las nubes, las montañas, el sistema circulatorio, las líneas costeras o los copos de nieve son fractales naturales. Esta representación es aproximada, pues las propiedades atribuidas a los objetos fractales ideales, como el detalle infinito, tienen límites en el mundo natural.

Se implementó una aplicación para poder generar este tipo de fractales, usando el sistema L-System, aqui una breve explicación

Un sistema-L o un sistema de Lindenmayer es una gramática formal (un conjunto de reglas y símbolos) principalmente utilizados para modelar el proceso de crecimiento de las plantas; puede modelar también la morfología de una variedad de organismos. Los sistemas-L también pueden utilizarse para generar fractales auto-similares como los sistemas de función iterada.

Estructura de un sistema-L

La naturaleza recursiva de las reglas de los sistemas-L conduce a la autosemejanza y por tanto facilita la descripción de formas tipo fractales. Los modelos de plantas y formas orgánicas de aspecto natural son fáciles de definir: al incrementarse el nivel de recursión la forma crece lentamente y se vuelve más compleja. Los sistemas de Lindenmayer también son polulares en la generación de vida artificial.

Las gramáticas de los sistemas-L son muy similares a las gramática semi-Thue (véase la Jerarquía de Chomsky). Los sistemas-L son también conocidos con el nombre de sistemas L paramétricos, definidos como un conjunto

G = {V, S, ω, P},

donde

  • V (el alfabeto) es un conjunto de símbolos que contiene elementos que pueden ser remplazados (variables)
  • S es un conjunto de símbolos que contiene elementos que se mantiene fijos (constantes)
  • ω es una cadena de símbolos de V que definen el estado inicial del sistema (inicio o axioma)
  • P es un conjunto de reglas o producciones que definen la forma en la que las variables pueden ser remplazadas por combinaciones de constantes y otras variables. Una producción está formada por dos cadenas — el predecesor y el sucesor.

Las reglas gramaticales de los sistemas-L se aplican iterativamente a partir de un estado inicial.

Un sistema-L es libre de contexto si cada producción se refiere sólo a un símbolo individual y no a sus vecinos. Cuando la aplicación de una regla depende también de sus vecinos, se dice que el sistema-L es sensitivo al contexto.

El sistema es determinista si existe exactamente una producción para cada símbolo. Un sistema-L determinista y libre de contexto es generalmente denominado un sistema-L0D. Cuando hay varias producciones y cada una de ellas es escogida con una probabilidad determinada entonces es un sistema-L estocástico.

  • Bueno ahora que ya sabemos de que trata esto de los fractales y el sistema L, se hizo la implementación de una aplicación la cual de manera gráfica, ayudaria a generar cualquier fractal definido en el sistema DoL.
Por ejemplo :

Curva de Koch

Hojuela de Koch dibujada con un sistema-L.

Una variante de la curva de Koch que utiliza sólo ángulos rectos.

variables : F
constantes : + −
inicio : F
reglas : (F → F+F−F−F+F)

Aquí, F significa "dibujar hacia adelante", + significa "vuelta de 90° hacia la izquierda", y - significa "vuelta de 90° hacia la derecha".


n=0: cuadrado de Koch - 0 iteraciones
           F
n=1: cuadrado de Koch - 1 iteración
           F+F-F-F+F
n=2: cuadrado de Koch - 2 iteraciones
           F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F
n=3: cuadrado de Koch - 3 iteraciones
           F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F-
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F-
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F


Los datos son ingresados al programa, ademas se escoge el número de iteraciones
y el vector direccion.


Y los resultados son los siguientes :


El programa esta hecho en el entorno de MATLAB , usando el lenguaje M, propio del mismo, el link de descarga es este Fractales Sintacticos, el código del programa sera liberado en las proximas semanas.

Gerardo Reaño Ortega
Ing. Infórmatica
Universidad Nacional de Trujillo







miércoles, 27 de octubre de 2010

Juego en Red "Tiro al Blanco" en MATLAB usando Sockets

El presente trabajo pretende mostrar una aplicación del la teoría de teleprocesamiento en un juego desarrollado en un software matemático (MATLAB) que ofrece un entorno de desarrollo integrado con un lenguaje de programación propio (lenguaje M). Se usó procesamiento de imágenes, operaciones con matrices, funciones matemáticas, procesamiento de señales de audio para reproducir sonidos además la capacidad que tiene este software para la comunicación con programas escritos en otros lenguajes, logrando así obtener resultados satisfactorios en el desarrollo del juego en red.







Link de descarga :

domingo, 24 de octubre de 2010

Sockets en MATLAB

Pequeña aplicación de Cliente-Servidor en MATLAB, exportando las clases de Java ServerSocket y Socket.

Tiene un interfaz amigable al usuario, para correr aplicación primero se tiene que instalar el MCRInstaller, este es el runtime del MALTAB, el cual permite ejecutar la aplicación sin tener necesariamente instalado el MATLAB, dicha aplicación se desarrolló en MATLAB R2008b, solo para correr en modo localhost, puerto usado para la comunicación es el 1402.

Servidor

Cliente


Se adjunta la aplicación en *.exe y además los archivos *.m.

Para correr la aplicación desde los archivos *.m se tiene que abrir dos instancias de MATLAB, uno para el servidor y otro para el cliente. Respecto a la aplicación esta pesa 250MB ya que trae incluido el Runtime del MATLAB que no es otra cosa que el compilador necesario para poder correr la aplicación sin tener el MATLAB instalado.

Descargar : Archivos *.m

Descargar : Aplicación *.exe

sábado, 23 de octubre de 2010

Programación en MATLAB


MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Apple Mac OS X.

Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets).

Es un software muy usado en universidades y centros de investigación y desarrollo. En los últimos años ha aumentado el número de prestaciones, como la de programar directamente procesadores digitales de señal o crear código VHDL.

Fuente : Wikipedia


viernes, 2 de julio de 2010

“Circuito Controlador de Ascensor en Miniatura”

Introducción

La lógica digital es un área de la matemática aplicada a la electrónica. Esta es la base de los sistemas digitales, gracias a esta base es que hemos logrado desarrollar un circuito que actúa según las situaciones posibles de nuestro problema, el cual consiste en el control automático de todas las funciones de un ascensor.

En general este proyecto tiene como objetivo experimentar y demostrar la aplicación de los sistemas digitales de forma práctica y cotidiana como lo es un ascensor.

Las adaptaciones de los sistemas digitales en la actualidad divergen en distintas ramas y se extiende con gran magnitud, este es solo un ejemplo de cómo es que la electrónica digital es cada vez más necesaria para automatizar cada aspecto de la vida.

Diagrama de Bloques


Descripcion del Circuito

La idea es construir un circuito electrónico utilizando compuertas lógicas y otros componentes adicionales, para el control automático de todas las funciones de un ascensor. Para tener un modelo solo se trabajó en base a 3 pisos, esto nos dará una idea clara de cómo funciona el circuito, pudiendo así extenderlo a mas pisos si se desea, pero el hecho de trabajar solo con 3 pisos también implica tener en cuenta mucha variables como por ejemplo: Si el ascensor esta en 1º piso y la persona en el 3º, este debe de subir dos pisos y abrir la puerta, o si el ascensor esta en el 2º piso y la persona también , la puerta debe de abrirse inmediatamente. Si consideramos todas las posibles situaciones, tendremos 9 casos en total.

Como el circuito estará construido a base de compuertas lógicas es necesario convertir cada uno de los casos a unos y ceros, como se muestra el cuadro.

Diagrama Electrónico


Clickea para agrandar la imagen

Fotos




Link de descarga
Informe completo Del Circuito Controlador de Ascensor en Miniatura

Diagrama Electronico


Este Proyecto fue el ganador en la IV Semana de la Ciencia de la Computación 2009 - Feria de Tecnología, Escuela de Informática, Universidad Nacional de Trujillo, Perú.