domingo, 13 de julio de 2008

LaTeX para Web/Blogger


Este blog está hecho para publicar algoritmos, investigaciones, y proyectos que desarrollé en la universidad, o que actualmente hago...
Pero es un poco difícil manejar el lenguaje matemático en la web...
Navegando por internet, encontré que en servalx plantean 2 soluciones (desde aquí):

Opción 1: Un editor on-line de LaTeX, aquí en rogercortesi.
La fórmula te la da en formato de imagen (pero no conviene al usar muchas fórmulas = muchas imágenes)
Opción 2: Acoplar LaTeX en el editor de Blogger (La explicación completa en inglés, está aquí)
Para esto, según voy entendiendo va así:
2.1. Necesitas tener Firefox instalado.
2.2. Necesitas tener instalado el greasemonkey (un script para editar HTML de la página cargada desde firefox)
2.3. Debes ejecutar éste script (se carga automáticamente)
2.4. Debes modificar el CSS de tu blog para que las ecuaciones no tengan bordes/marco.
Añade éste código:
img.latex_eq {
padding: 0;
margin: 0;
border: 0;
}

Justo antes de la línea ]]>
Eso es todo... Necesitas conocer LaTeX y escribir tu fórmula con $$ al inicio y también con $$ al final, y escribir sobre fondo blanco (por estética para la fórmula).
Un ejemplo: escribe ésta fórmula:

$$\pi = \int_{0}^{1} \frac{4}{1+x^{2}}$$

Y luego dale clic al botón en la barra de edición de blogger.
Y obtendrás:

Un breve y muy buen manual de LaTeX aquí.

sábado, 12 de julio de 2008

Algoritmo de un AFD genérico


Este algoritmo fue desarrollado para un curso de tercer ciclo: Teoría de la Computación.
Consiste en, hacer un algoritmo que reciba como entradas un autómata, y una palabra;
y que devuelva como resultado, si la palabra es reconocida o no por el autómata.
Es decir:

Algoritmo:
Autómata finito determinista general para reconocer palabras

Entrada:
- AFD como 5-tupla: donde:
  • es el Conjunto de Estados/Variables
  • es el Alfabeto
  • es la función de transición
  • es el estado inicial
  • es el Conjunto de estados finales
- palabra a evaluar.

Salida:
- Valor booleano que determina si la palabra evaluada pertenece al AFD.

Proceso:
1. Hacer la lectura del AFD
  • Leer : estado inicial // representado por un número
  • Leer : Conjunto de estados // representado por un arreglo de números
  • Leer : vocabulario // representado por un arreglo de caracteres
    que pertenecen a
  • Dados los tamaños de y de ,
    crear una matriz de tamaño
    para representar/almacenar las transiciones
    rellenando con en donde no hay transición
  • Leer : Conjunto de estados finales
2. Leer palabra a evaluar.

3. Analizar la palabra:
Tenemos el estado actual/temporal (el cual evalúa según momento)
Tenemos el valor booleano
Para cada caracter , mientras no termine la palabra:

si y

sino
error: palabra no reconocida


Comentarios adicionales:
1. En aquella época no sabía manejar GUIs, por eso la precariedad del programa.
Ahora se vería más bonito e interesante con un creador gráfico de estados y transiciones:


2. Me quedaba la duda de: siempre S0 será el estado inicial? (Y así, omitir el paso 1.1. del algoritmo)
3. Imágenes, cortesía de Wikipedia

lunes, 31 de marzo de 2008

Algoritmos para detección del pitch


Esta investigación fue desarrollada para el curso de Tópicos en Ciencia de la Computación III (el semestre 2007-II), con tema: Reconocimiento Automático del Habla, y dictado por el profesor Jorge Guevara

Resumen:

El análisis del pitch es un área extensa de investigación, y es un factor muy utilizado en el análisis y síntesis del habla;
Esta investigación se enfoca en los distintos métodos existentes para la detección del pitch, los cuales se categorizan en función del dominio del tiempo y de la frecuencia.
El propósito de este proyecto es el de encontrar un método de detección de la frecuencia fundamental con buenas características, de manera que presente un desenvolvimiento eficiente/óptimo. Se plantean las ventajas y desventajas de cada método analizado, y se hará una implementación para llevar a cabo la comparación de los resultados según su desempeño (considerando tiempo de procesamiento, costo computacional, y los resultados obtenidos).


El paper y el programa pueden ser descargados de aquí!
(link roto, mientras busco servidor donde colgarlos!!)

jueves, 27 de marzo de 2008

La paridad del cero (0)


Mi pregunta en concreto es: el cero es un número par?
porque, si cero dividido entre cualquier otro número es cero.
Y la propiedad de la paridad (usando la función de modularidad %) es:
Un número es par si su residuo con 2, es cero:
n % 2 == 0 ; entonces n es par.
entonces... es par, o es indeterminado? (Cómo algún profesor matemático me enseñó)
Según Java:
  1. public static void main(String[] ar)
  2. {
  3. int a=0,b=2;
  4. double r;
  5. r=Math.IEEEremainder(a,b);
  6. System.out.println(r);
  7. }

obtenemos que r = 0.0
---------------------------------------------------------------------------------

Particularmente, pretendo implementar un árbol rojo-negro (red-black tree), donde, además de ciertas características como el ser binario, y ser balanceado... utiliza colores (el rojo y el negro) para distinguir cada nivel.

entonces... Al balancear el árbol, para no complicarlo (más de lo que ya es)
mejor, al realizar los cambios, le resto (o le sumo) un 1 ...
Así, siempre que el color sea par, representará al color negro (niveles pares)
cuando el color sea impar, representa al rojo (niveles impares)

Pero (entonces) ...
el cero es un número par?

Invito a los visitantes a responder este dilema :)

martes, 8 de enero de 2008

Informática Teórica: Problema de Maximum Triangle Packing


Resumen
El presente trabajo abarca, dentro del área de investigación de Informática Teórica, el análisis y desarrollo de algoritmos, con su respectiva complejidad computacional de tiempo P o NP, y siendo aplicado a solucionar ciertos problemas de Teoría de Grafos;
Dentro de estos problemas, se le dará solución, concretamente, al algoritmo de grafos MTP:
Maximum Triangle Packing, o, su equivalente en español, Máximo Empaquetamiento de triángulos, donde el problema es, dado un grafo, si entre sus nodos forman algunos triángulos (grafos completos de 3 nodos), el algoritmo debe encontrar, bajo que orden se obtienen el mayor números de triángulos, siendo éstos, conjuntos disjuntos de nodos. Se planteará el algoritmo de solución, se presenta la implementación y estadísticas en base a algunas pruebas.

Para descargar el paper... clic aquí

Informática Teórica: Problema de Maximum Triangle Packing (Abstract)

viernes, 14 de diciembre de 2007

Bienvenida?


A pesar de tener distintos websites a mi cargo (desde el hi5, el msn-live-space, mi cuenta en youtube, otro live-space, de mi página ~grgs en el servidor de la escuela de Informática-UNT, y esta página nato.gs q google me ofrece por mi cuenta de gmail...
Me atrevo a crear una página más, pero con nuevo contenido: académico, universitario =)
x eso mismo... esta es una bienvenida! ;)