10-11 Hrs. Lunes, Martes y Jueves. Salón P-118. FC,UNAM.


Mostrando entradas con la etiqueta tarea. Mostrar todas las entradas
Mostrando entradas con la etiqueta tarea. Mostrar todas las entradas

miércoles, 21 de noviembre de 2007

Encontrar la descripción más breve

Hola. Esta es la cadena que apunté en el pizarròn ayer. Traten por favor de encontrar la descripción más breve.

1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 0

jueves, 8 de noviembre de 2007

Tarea II

Hola a todos.

Es hora de su segunda muy esperada tarea.

La tarea no es corta, así que es importante que empiecen a hacerla con bastante tiempo de anticipación para que puedan generar y les podamos resolver dudas. El tiempo que requieren es definitivamente menor al tiempo que les hemos dado para hacerla, pero si tienen alguna duda es mejor que la resuelvan con tiempo, por si, en el peor de los casos, tienen que volver a hacer todo. También deben tomar en cuenta que se requerirán tiempos talvez largos de cómputo, por lo que dejarlo para el último día definitivamente no es una opción.

Todos los pasos aquí descritos se pueden hacer en una hoja electrónica de cálculo. Sin embargo, si manejan matlab o algo parecido les resultará más fácil. Por supuesto, la programación estructurada les haría la vida aún más fácil. La programación orientada a objetos talvez sea excesiva, y la programación funcional o lógica muy difícil de aplicar.

1. Aquí hay 8 conjuntos de datos de Electro Encefalograma, escojan uno de ellos y justifiquen su eleccion. Llamemos E(t) a esta serie de tiempo.

2. Generen la serie S(t) con 30504 valores de sen(t), con un espaciamiento g regular entre cada t, no mayor a Pi/10.

3. Generen la serie R(t) con 30504 números aleatorios generados con el generador de números aleatorios.

4. Generen la serie C(t) con 30504 valores da tal forma que
C(1)=0.693850491132 y C(t+1)=3.99818701*C(t)*(1-C(t))

5. Redondeen los valores de las series E,S,R,C de tal forma que solo tomen 10 valores distintos uniformemente distribuidos en el intervalo entre el máximo y el mínimo de cada serie. Es decir, si su serie R va del 0 al 100, la redondean para tener solo valores: 0 10 20 30 40 50 60 70 80 90. Esto les generara cuatro series: E* S* R* y T*, todas ellas seguiran teniendo 30504 valores. Esto de redondear es equivalente a disminuir la resolución del instrumento con el que "midieron" la serie, de tal forma que, en el ejemplo anterior, su instrumento no distingue entre 10, 11, 12, 13 y 14.

6. Redondeen los valores de las series E,S,R,C de tal forma que solo tomen 100 valores distintos uniformemente distribuidos en el intervalo entre el máximo y el mínimo de cada serie. Esto les generara cuatro series: E+ S+ R+ y C+.

7. Apliquen el procedimiento que discutimos en clase del artículo de Grosse et al para calcular la información mutua para cada una de sus series E*, S*, R*, C*, E+, S+, R+, C+, para ventanas de longitud k desde 1 hasta [6*Pi/g]+1.

8. Muestren y comenten ampliamente las gráficas de k contra información mutua, comentando las diferencias entre las series * y las +, y comentando las relaciones que vean entre periodicidad y la información mutua. Por supuesto, hagan un resúmen (sin código preferentemente) del procedimiento que aplicaron, poniendo especial atención a los detalles como: ¿qué criterio utilizarón en la frontera de la serie? ¿por qué? ¿qué limitaciones tiene?

9. Investiguen algunas propiedades de la función con la que generaron la serie C, y comenten las relacionen de estas con los resultados de su experimento.

IMPORTANTE:
Si hacen satisfactoriamente lo descrito hasta este momento podrán obtener una calificación en esta tarea de máximo 8. Si quieren obtener una calificación mayor deberán comentar otras cosas, para lo que talvez sea necesario hacer más experimentos. Usen su creatividad y su curiosidad para plantearse y responder (o bosquejar las respuestas a) otras preguntas. Si quieren hacer el experimento con otras series de tiempo son bienvenidos.


Lineamientos:

1. La tarea se entregará por equipos de estrictamente no más de 4 personas. El trabajo se puede hacer entre dos personas, así que el que estén solo 2 o 3 en el equipo no los coloca en desventaja significativa. Esta vez no tendremos nada que ver con la creación de los equipos.

2. Deben entregarla en formato electrónico: .pdf .odt.

3. La fecha límite de entrega es el Jueves 29 de Noviembre antes de la clase. Es importante que respeten esta fecha pues el fin del semestre está cerca y habrá todavía otra tarea.

Nota Importante.

El cálculo de la función de densidad de probabilidad conjunta puede ser computacionalmente costoso, sobretodo para las series +. Una buena alternativa es aproximar esta función partiendo el espacio de valores en cuadraditos de lados más o menos grandes. Si optan por esto, comenten respecto a la precisión que se ha perdido, si es que se pierde.

Por lo anterior, es importante que midan el desempeño de sus algoritmos y su equipo para asegurarse de que terminarán los cómputos a tiempo.

jueves, 20 de septiembre de 2007

Juego del Caos (Actualizado lunes25)

Hola a todos.

Aquí les dejo el programita en C y el ejecutable del juego del caos.
Como siempre, bajan todos los archivos y los ponen en un mismo directorio. El archivo b.seq es la secuencia del cromosoma 30 del caballo domestico, el archivo jdc2.c es el código fuente.
Teniendo un compilador de C instalado (GCC para Unix, o DJGPP para Windows), compilan con:
gcc -lm jdc2.c

Tras correr el ejecutable anteriormente generado, se genera un archivo puntos.dat que contiene las coordenadas de los puntos. Pueden gráficarlos con gnuplot usando el siguiente comando (dentro de gnuplot):

plot "puntos.dat" using 1:2 with dots 1 14

La gráfica la pueden hacer con cualquier otra cosa, incluso en excel.
Porfavor experimenten con otras secuencias, pueden bajar de esta página, o este archivo.


Archivos:
Codigo Fuente.
Secuencia caballo.
Ejecutable para Windows 32 bits y para linux 2.x 32 bits.
Un artículo relacionado.

Adicionalmente les aviso que el Proximo VIERNES la clase será en el observatorio virtual Ixtli en DGSCA, donde Omar Suarez nos mostrará gráficas generadas a partir de secuencias de DNA.


Saludos.

viernes, 24 de agosto de 2007

Tarea del 'ahorcado' (actualizado 03sept2007)

Esta tarea consiste en lo siguiente.
Consideren que a ustedes les dan el siguiente "juego de ahorcado"
_ _     _ _ _ _ _ _ _ _     _ _ _ _ _ _ _     _ _ _ _ _ _ 


donde el mensaje oculto es: "UN FANTASMA RECORRE EUROPA"

Si probamos letra por letra para cada posición, tendríamos que probar 27^23 posibilidades: cometeríamos una gran cantidad de errores; muchos de ellos completamente innecesarios, pues probaríamos combinaciones como XE PPQOLBAJ ÑLTUOQV RRKZIW.

Las preguntas que deben responder son las siguientes:

1)Si conocemos todas las palabras del español, y las probamos una a una siempre que sean del tamaño correcto ¿cuantos errores cometeríamos?
a)como máximo
b)en promedio sobre todos los posibles ordenes para probar las palabras.

2)Si probamos letra por letra pero tomando en cuenta las palabras válidas en el español (como hicimos en clase), ¿cuantos errores cometeríamos?
a)como máximo, es decir, usando el orden más desafortunado para este ejemplo.
b)usando el orden lexicográfico (cómo el diccionario) de las palabras.

Les adjunto una lista de palabras que encontré por ahí, si ustedes encuentran una mejor por favor súbanla a algún lado (o envienla) y comenten en el blog al respecto. Aquí hay otra lista que Leonardo nos pasó y que al parecer contiene más palabras y no tiene el problemilla con los acentos. En ambas listas yo agregué a mano la palabra 'recorre'... tratando de adivinar lo mejor posible la etiqueta que le sigue.

Si encuentran alguna forma alternativa a las expuestas en 1) y 2) tambien pruébenla y envíen sus resultados, o si creen que hay algún ordenamiento de las palabras que sea más conveniente para la mayoría de los casos también repórtenlo.

Aunque no tienen que hacerlo con la computadora, hay dos razones por las que les sugerimos lo hagan:
1) Es más rápido encontrar el resultado o una buena aproximación.
2) Aprenderán nuevas técnicas para resolver problemas.

Los 'lineamientos' para entregar la tarea son los siguientes:

Sobre los equipos.
1)Es en equipos de máximo 5 personas.
2)Los equipos deben ser 'multidiciplinarios'. Este es un punto importante, a menos que no haya de otra (y no estoy seguro de que sea así) para integrar un equipo se necesita que haya en él al menos un computólogo (preferiblemente con conocimientos de estructuras de datos). Este no va a ser el mono programador del equipo, sino que va a aportar a lasdiscusiones las consideraciones computacionales pertinentes. Además de que, en caso de que decidan hacerlo en la compu, es necesario alguien que sepa programar.

Sobre lo que hay que entregar.
3)Preferíamos no revisar código. Las respuestas a las preguntas si tienen que entregarlas.
4)Deben anexar una explicación en palabras del procedimiento que usaron. Preferiblemente no debe ser escrita por las personas que programaron.
5)Entreguen en papel, o en formatos electrónicos: pdf, ps, odt, texto plano.
6)Por supuesto, pongan el nombre de los integrantes del equipo!

De la fecha de entrega
7) Tienen hasta el 10 de septiembre para entregarlo. Es decir, tienen hasta dos fines de semana :D

Importante:
Si ustedes quieren que su equipo sea el mismo para el resto del semestre, tambien es importante que integren equipos que cumplan además la condición de no estar integrado únicamente por computólogos.

Salvo por esas restricciones todo lo demás es libre, incluyendo el
lenguaje de programación que utilicen. (Si necesitán que (Víctor) les heche la mano con algún problemilla de programación, con gusto lo haré, pero solo entiendo programacion estructurada y orientada a objetos)

Verán que el archivo palabras .txt tiene algunas particularidades, en especial lo que se refiere a los acentos y las eñes, estoy seguro de que podrán decifrarlas. También, después de cada palabra viene una etiqueta que, según entiendo, tiene que ver con el tipo de palabra que es; en todo caso lo acompaño con algunos archivos de documentación que venían incluidos. Si quieren hacer uso de las etiquetas de tipo de palabra para agilizar su programa adelante, aunque les advierto que la gramática española no es sencilla.

Cualquier duda o comentario, por favor háganlo en clase o por el blog para que todos puedan oír/leer la respuesta :)

jueves, 23 de agosto de 2007

Encontrar la frase.

En la siguiente liga:

http://www.math.ucsd.edu/~crypto/java/ENTROPY/

encontraràn un applet que hace algo parecido a lo que vimos en clase. El objetivo es adivinar la frase en inglès. El programa lleva una cuenta de los errores. Al final, ya que aprieten el botòn de "entropìa", les darà un valor. ¿Què mide ese nùmero?

lunes, 20 de agosto de 2007

Primera tarea (màs o menos informal)


La escritura es algo muy interesante, sobra decir. Si reflexionan un poco al respecto, quizà lleguen a la conclusión a la que han llegado muchos lingüistas: la capacidad de codificar ideas, pensamientos,instrucciones, mètodos, etc y la capacidad de entenderlos (decodificarlos), es una de las capacidades humanas que màs (sino es la que màs) ha influenciado en el desarrollo de la especie.

Existen diferentes mètodos de escritura. Denle una leida a la liga http://en.wikipedia.org/wiki/Writing_system
para que la tarea les quede màs clara. Si aùn tienen tiempo y ganas, y como seguro es el caso, pues apenas es la segunda semana de clases y las vacaciones fueron reconfortantes, deambulen un rato por esta pàgina:http://www.ancientscripts.com/

Se sabe que ningùn sistema de escritura es superior o inferior a otro. O lo saben al menos los lingüistas, pero en el fondo, decía un profesor, un computólogo es un lingüista reprimido (¿?)

Todos los sistemas de escritura son digitales y dicen los expertos que el hecho de que todos los sistemas de escritura sean "iguales", es porque todos ellos son digitales. Si hay sistemas digitales, quiere decir que hay, o podrìan existir, sistemas analógicos. ¿Cuàl es la diferencia? ¿Què es un sistema de escritura digital?

Para entender la diferencia entre sistemas digitales y analógicos, piensen en el fonógrafo (o en el aparato inverso al fonógrafo, aquel en el que uno habla y el sonido se "almacena" en el cilindro) del que Victor habló en clase: las vibraciones se almacenan en el cilindro pues la presión de las vibraciones mueve una aguja que distorsiona la superficie del cilindo, esto es, "codifica" el sonido de forma "contìnua". En otras palabras, la "señal" puede tener un número infinito de valores.

¿Cómo funcionaría un sistema de grabación digital? (Bùsquen información del formato mp3).

Regresemos al asunto de la escritura digital. Un sistema de escritura es digital puesto que se conforma por sílabas, palabras y oraciones y permite combinaciones lineales de ellas. Es decir, un objeto, pensamiento, etc, se "descompone" en pedazos que son representados por las estructuras mencionadas.

Entonces, la tarea es tratar de responder a las siguientes preguntas:
1. ¿Cómo sería un sistema de escritura analógica?
2. ¿Què inconvenientes tendrìa un sistema analógico?

Bien, pues hagan la tarea y la discutimos tan pronto estè lista.