conceptos computacionales - elisa schaeffer · capes.co.uk/graphics/pictures/volcanic2.jpg ... su...

51
Conceptos computacionales esenciales en arte multimedia 12 de marzo de 2007 Dra. Elisa Schaeffer FIME/UANL [email protected]

Upload: trandat

Post on 07-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Conceptos computacionales esenciales en arte multimedia

12 de marzo de 2007

Dra. Elisa SchaefferFIME/UANL

[email protected]

AlgoritmoUn algoritmo es un método de solución para resolver una instancia de un cierto problema.

En computación, por lo general, se escribe el algoritmo en un lenguaje de programación para ser ejecutado por una computadora.

Ejemplos:

¿Cómo encontrar un nombre en la guía telefónica?¿Cómo llegar de mi casa a mí oficina?¿Cómo determinar si un dado número es un número primo?

Para un problema, por lo general existen varios algoritmos con eficiencia (es decir, tiempo de ejecución) diferente.

Un algoritmo para determinar si un numero es par o impar

Parámetros: en número de interés XSalida: “sí” si X es par y “no” si X es impar

Procedimiento:Divide el valor X por dos.Asigna en una variable Y el resultado de la división.Si Y es un número entero, dice “sí”.En otro caso, dice que “no”.Termina ejecución.

Asignar X = 83 nos da Y = 41,5 que no es entero y el resultado es “no”.Asignar X = 76 nos da Y = 38 que es entero y el resultado es “sí”.

,,

Elementos tipicos de algoritmosVariables: “espacios de memoria” donde se guarda datos durante la ejecución del algoritmo (nombre, a, x[1])

Asignaciones: poner como el valor de una variable el resultado de alguna operación o copiar el valor de otra variable (a = b, c = 0.45, p = promedio(a, c))

Reclamaciones: “frases” que pueden ser verdaderos o falsos(b > 10, a == d, (e != 3 && d <= 8))

Condiciones: haz una cosa o otra dependiendo si una reclamación R es o no es verdad (if)

Repeticiones: haz algo N veces o haz algo mientras una dada condición es válida (for while do)

,

AutomataVarios algoritmos funcionan en base de un conjunto de estados.

El modelo abstracto de operación según el estado actual através de transiciones entre los estados se llama autómata.

A

B

CC B

A

A

,

Automata de control de crucero Un sistema para fijar la velocidad de un vehículo que se controla con un solo botón; reacciona automáticamente si el chofer frena o accelera.

Cada transición del autómata está disparada por una de tres acciones: presionar el botón (B), accelerar (A) o frenar (F).

Modelo simplificado con dos estados: crucero apagado o activo.

A

B, FA,F

B

ON

OFF

,

FractalesFractales son estructuras matemáticas donde el mismo “patrón” repite en diferentes “niveles”.

Ejemplo: Copo de nieve de Kochtoma una líneadivídelo en tres partes elije la parte centrallevanta su punto medio arriba(repite para cada parte)

(si se hace lo mismo con tres líneas en forma de un triangulo, resulta un copo completo)

Línea del copo después de 10 iteraciones

Conjunto Julia

http://home.ix.netcom.com/~dcwright/CS35/Lab1/images/blue-julia.png

Conjunto Mandelbrot

http://en.wikipedia.org/wiki/Image:Mandel_zoom_00_mandelbrot_set.jpg

Fractales: Inspiracion de la naturaleza

Muchos organismos naturales muestran comportamiento parecido a las matemáticas de fractales.

http://students.washington.edu/pblaxton/Pics/fractal%20non-crystal%20salt.JPG

,

Terrenos fractales

Existen varios algoritmos para generar terrenos artificiales con computación de tipo fractal.

Midpoint-displacement (diamonds and squares)

Terrenos artificiales

http://en.wikipedia.org/wiki/Image:Fractal_mountain.gif

Con el fin de lograr imágenes más realísticas, ell procesamiento de los algoritmos de terrenos artificiales es iterativo y además estocástico, en diferencia en los algoritmos determinísticos de fractales matemáticos.

Terrenos fractales

http://www.fractal-landscapes.co.uk/graphics/pictures/volcanic2.jpg

Después de generar una reja de las alturas, se añade textura y color:

Helecho fractal

http://en.wikipedia.org/wiki/Image:Bransleys_fern.png

x =  0.796956 x + 0.0607246 yy = ­0.0697246 x + 0.796956 y + 1.0

x = ­0.119707 x + 0.328892 yy =  0.328892 x + 0.119707 y + 0.5

x =  0.107736 x ­ 0.296003 y + 0.0y =  0.296003 x + 0.107736 y + 1.0

x =  0.0y =  0.2232 y

Arboles fractales

http://epod.usra.edu/archive/images/fractal_tree.jpg

http://www.sfu.ca/~rpyke/335/tree.jpg

,

Interfaz

Una interfaz es una “frontera” o “cortina” entre dos o más componentes (un usuario humano y un software, dos computadoras, varias piezas del mismo software, etcétera) que les permite interactuar/comunicar/colaborar sin conocer en detalle la estructura o función del “otro lado”, utilizando la información que ofrece la interfaz.

A

B

InternetEl Internet es una red de computadoras que comunican entre ellas por un protocolo, enviando paquetes de datos de una computadora a otra pasando por una cadena de computadoras intermedias.

Cada computadora conectada al Internet tiene asignada una dirección IP númerico (por ejemplo, 148.234.29.72, tipo Ipv4) y el proceso de encontrar un camino para entregar un paquete de datos de la computadora de orígen al recipiente se llama ruteo.

Se puede asignar un sobrenombre a una dirección IP por servidores especiales de servicio dinámico de nombres (DNS): por ejemplo, la computadora con la dirección IP 148.234.30.91 tambien se conoce como www.uanl.mx.

World Wide Web (WWW)

La Web está compuesta por documentos que se intercambia entre computadores conectados al Internet por un protocolo especial que se llama HTTP (HyperText Transfer Protocol).

La red abstracta está formada por enlaces entre las páginas de web. Una página se identifica por su URL (Universal Resource Locator) que está compuesta por el nombre del servidor de HTTP donde están guardados y el camino de carpetas en el disco duro del servidor.

El acto de navegar la web significa copiar documentos por el protocolo HTTP de un servidor conectado al Internet al disco duro de la computadora local para mostrar sus contenidos en un navegador que es un software especializado.

World Wide Web (WWW)Los documentos transferidos por HTTP típicamente son páginas de web que son documentos escritos en HTML (HyperText Markup Language).

<html><head><title>Mi p&aacute;gina personal</title></head><body><h1>La p&aacute;gina de Elisa</h1><p>&iexclam;Bienvenidos a mi p&aacute;gina!<br>Tambi&eacute;n tengo <a href=”http://yalma.fime.uanl.mx/~elisa/”>otra</a> p&aacute;gina de web, pero es de mi trabajo.</p></body></html>

Por HTTP también mueven documentos de otro formato, pero no se consideran páginas de web en si.

Si el navegador tiene un plugin adecuado instalado, documentos de otros tipos también abren en el navegador, y en otro caso, se los guarda en el disco duro.

Retroalimentacion

(inglés: feedback)

Un mecanismo para permitir que un sistema utilice su propia salida (en tiempo t) como una de sus entradas (típicamente con retardo: el uso como entrada será en tiempo t + 1).

,

Cibernetica

El estudio de mecanismos con retroalimentación se llama la cibernética.

En términos más generales, es la ciencia de comunicación y control en organizaciones, máquinas y organismos vivos.

La inteligencia artificial y diferentes tipos de sistemas adaptivos son ejemplos de cibernática.

,

Inteligencia Artificial

La IA es la ciencia e ingeniería del diseño y la construcción de máquinas que tengan capacidad de razonar sobre observaciones y/o reaccionar en su ambiente

Clasificación según John McCarthy: lógica, búsqueda, identificación de patrones, representación, inferencia, conocimiento de sentido común, razonamiento, aprendizaje de experiencia, planificación, epistemiología, ontología, heurísticas, programación genética

http://www-formal.stanford.edu/jmc/whatisai/whatisai.html

La prueba de Turing

Estás chateando con un desconocido. Necesitas determinar si estás realmente chateando con un ser humano o con una máquina. Si no puedes detectar cuando estás comunicando con una persona y cuando con una máquina, se considera la máquina inteligente.

(originalmente por Alan Turing en 1950)

Agentes inteligentes

AI = una pieza de software que utiliza IA para realizar algunas tareas predeterminadas, típicamente en una manera interactiva con su ambiente.

Por lo menos tienen la capacidad de observar su ambiente, y en algunos casos, también pueden modificarlo.

Adaptación + Aprendizaje

(Ro)botEn general, robot es un agente inteligente programado para realizar una(s) cierta(s) tareas.

La ciencia de estudio y desarrollo de robotes se llama robótica.

Si los robotes son controlados de distancia, se trata de telerrobótica.

Robotes físicos tienen una máquina como su “cuerpo” para interactuar con su ambiente. Robotes de software interactuan con su ambiente por Internet o por una interfaz de usuario.

En computación, se dice también “bot” en vez de “robot”. Los bot suelen realizar tareas de tipo navegación automatizada de la web en búsqueda de información o de interacción con usuarios (realizando por ejemplo calculaciones o traducciones).

Bit

= la unidad básica de información digital

Un bit es una variable binaria: tiene dos valores posibles que se interpreta como los valores lógicos “verdad” y “falso”

verdad = 1 (on)falso = 0 (off)

Numeros binarios,

Expresamos los números con sumas de potencias de dos:

20 = 1, 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32, etcétera,

empezando con la potencia más grande que quepa en el número e iterando hasta llegar a la suma correcta. Representamos la presencia de una cierta potencia con 1 y su ausencia por 0, empezando con la potencia más grande presente:

61 = 32 + 29 = 32 + 16 + 13 = 32 + 16 + 8 + 5 = 32 + 16 + 8 + 4 + 1 = 25 + 24 + 23 + 22 + 20

= 111101 es un 6-bit representación de 61

Byte

= la unidad básica de capacidad de memoria digital

Un byte (se pronuncia báit) es una secuencia de 8 bits.

El número entero más grande que se puede guardar en un byte es

27 + 26 + 25 + 24 + 23 + 22 + 21 + 20 = 28 – 1 = 255

y entonces, contando cero, son 256 valores posibles por un byte.

1024 bytes = un kilobyte1024 kilobytes = un megabyte1024 megabytes = un gigabyte

210 = 1024

Analogico versus digitalUn señal analógico se representa con frecuencias.

En la representación digital, no se toma en cuenta todas las frecuencias, pero una “escalera” preterminada (posiblemente dinámica) de frecuencias. El proceso de aplicar la escalera se llama discretización.

,

Analogico versus digitalAdemás, el señal analógico es de tiempo continuo, pero la representación digital de tiempo discreto: se elije una frecuencia de muestreo y solamente guarda la frecuencia del señal original en ciertos instantes según la frecuencia de muestreo elegida discretizado al nivel más cercano:

,

Pixel

Con imágenes, la discretización de hace en 2D: se impone una reja imaginaria sobre la imágen y representa cada celda de la reja con un pixel, es decir, un rectangulo pequeño que tiene un sólo color.

Colores en forma digital,

El color asignada al pixel es el color más cercano de una tabla predeterminada de colores. Típicamente los colores están guardados en formato RGB (o otro formato parecido), asignando una cierta cantidad de bytes por cada componente de color.

En la representación estándar, se asigna un byte por color y escribe el byte con dos dígitos hexadecimales. El primer byte indica el nivel de “presencia” del color rojo, el segundo el nivel de verde, y el tercero el nivel de azul.

El valor cero (expresado como 00) significa que el color no está presente y el valor 255 (expresado como FF) significa que se usa el máximo posible del color.

Tabla hexadecimal de colores

,

http://www.drewfoster.com/rgbhex/images/rgbhex.gif

RRGGBBTípicamente no se utiliza todaslas combinaciones posibles de tres valores entre 0 y 255, pero seis niveles:

FF = 255, CC = 204, 99 = 153, 66 = 102, 33 = 51, 00 = 0

Resolucion

La resolución de la imágen es la cantidad de pixeles en la dirección horizontal y la cantidad de pixeles en la dirección vertical.

Por ejemplo, la resolución 1024x768 es típica

Cuando la resolución se define con un sólo número, es el producto de los dos: cinco megapixeles corresponde por ejemplo a 2621x2000.

,

Pixel y resolucion,

100 pixeles horizontalmente480 pixeles horizontalmente

Compresion de datosCuando la información ya ha sido digitalizada, se puede aplicar un algoritmo de compresión para poder guardarlo en menor espacio.

Dos posibilidades: compresión con o sin pérdida.

En compresión con pérdida, se ignora información “no tan relevante” para ahorrar espacio. En compresión sin pérdida, se aprovecha ciertas regularidades de los datos para evitar repetición no necesaria de elementos.

,

Ejemplo de CompresionDigamos que queremos de expresar la secuencia siguiente con menos símbolos:

AAAAABBBCCCCAAAAACCCCAAAAABBBAAAAABBBAAACCCCCAAAAABBBCCCC

Una posibilidad de utilizar frecuencias:

5A3B4C5A4C5A3B5A3B5A4C5A3B4C

Añadimos símbolos auxiliares:

DEFDFDEDEDFDEF                           #D5AE3BF4C

La parte subrayada es un “diccionario” que nos ahorraría mucho espacio si tuvieramos una secuencia más larga original. En este caso, el ahorro es solamente de tres símbolos como tenemos que incluirlo también para no perder información.

,

Numeros aleatorios

Existen algoritmos para generar números pseudo-aleatorios, es decir, que parecen como si hubieran sido generados totalmente al azar, aunque no lo son.

El ejemplo más simple imaginable:

Xt+1

= (a Xt + c) mod b

(generador lineal congruencial de Lehmer, 1948)

,

Secuencia de ejemplo

Asignamos en el método de Lehmer X0 = 6, a = 21, c = 3 y b = 100:

X1 = (21 x 6 + 3) mod 100 = 129 mod 100 = 29

Secuencia generada: 6, 29, 12, 55, 58, 21, 44, 27, 70, 73, 36, 59, 42, 85, 88, 51, 74, 57, 0, 3, 66, 89, 72, 15, 18, 81, 4, 87, 30, 33, 96, 19, 2, 45, 48, 11, 34, 17, 60, 63, 26, 49, 32, 75, 78, 41, 64, 47, 90, 93, 56, 79, 62, 5, 8, 71, 94, 77, 20, 23, 86, 9, 92, 35, 38, 1, 24, 7, 50, 53, 16, 39, 22, 65, 68, 31, 54, 37, 80, 83, 46, 69, 52, 95, 98, 61, 84, 67, 10, 13, 76, 99, 82, 25, 28, 91, 14, 97, 40, 43

Está combinación nos da números de 0 a 99 y después vuelve a repetir la misma secuencia. Es un algoritmo muy simple por lo cual repite bastante rápidamente.

Existen otros muy buenos con cuales no se puede predecir con facilidad qué número es el siguiente haber observado los anteriores.

Numeros aleatorios “naturales”

Otra opción es el uso de observaciones del mundo real en la generación de números “al azar”.

Ejemplos:

Uso de la temperatura dentro de la computadora:Decide un límite de temperatura T.Si la temperatura actual es mayor que T, la salida es uno.Si la temperatura es menor o igual a T, la salida es cero.

Uso del reloj de la computadora:Toma el último dígito D de la hora actual.Si D es par, la salida es cero. Si D es impar, la salida es uno.

,

SimulacionEn ciencias aplicadas, se utiliza simulación para estudiar el comportamiento de un método nuevo antes de adoptarlo en uso. La idea es:

,

i. programar un modelo computacional de la situaciónii. aplicar la solución propuesta en el modeloiii. hacer observaciones del comportamientoiv. ajustar la solución y el modelov. repetir la aplicación y observación

Cuando el resultado de la simulación ya está suficientemente satisfactoria, se puede adoptar la solución en uso con mayor confianza en su éxito. También se utiliza simulación para estudiar el comportamiento de algún mecanismo de interés y experimentar con los efectos de diferentes perturbaciones.

Formacion de gruposUna simulación donde nodos en movimiento forman grupos con otros nodos “cercanos”:

,

Deteccion de incendios,

Un ejemplo de simulación simplificada: vigilancia de un bosque para evitar incendios con una red de sensores que comuniquen por radio a distancias cortas.

Realidad virtualRealidad virtual es un ambiente artificial generado completamente o parcialmente por computadora.

Cuando la generación es parcial, es decir, cuando se combina el ambiente artificial con el mundo real, se utiliza el concepto de realidad aumentada.

Sus usos principales son simulaciones ambientales para el entrenamiento de por ejemplo pilotos de aviones, personal militar o médicos. Realidad aumentada se utiliza por ejemplo en películas con efectos especiales creados por computadora y combinados con grabación de actores humanos.

RV y RA interactivaTípicamente la ilusión de una RV consiste por lo menos de

(1) una experiencia amplia visual, de uno a seis paredes de pantalla, con efectos esterocópicos para lograr una aparencia 3-dimensional

(2) sonidos por auriculares o bocinas, generados con algoritmos especiales para crear una ilusión de fuentes de sonido en diferentes

ubicaciones e incluso fuentes de sonido en movimiento

Además, más y más sistemas actualmente cuenten con sensores para seguir la posición y postura del usuario para ajustar dinámicamente la vista y la producción de audio a los movimientos del usuario.

También se puede incorporar elementos hápticos a través de sistemas de información tactil que crean sensaciones de contacto con los objetos virtuales, típicamente por un guante especial.

AvatarOriginalmente es un concepto de hinduismo (la palabra proviene de sánscrito) que refiere a la incarnación de un dios.

Actualmente (desde hace los años 80) se utiliza también para referir a la identidad elegida/construida por una persona para representarla en alguna comunidad virtual que comunica por Internet, en un foro de discusión o en un juego.

Un avatar puede ser una representación gráfica de un “cuerpo virtual” (en 2D o 3D) o simplemente un sobrenombre de texto y símbolos.

El ejemplo fue creado en http://www.sp-studio.de/

TelepresenciaCuando una persona comunica o interactua con otras personas (o máquinas) de distancia como si estuviera físicamente presente.

(Piensen en los “teléfonos” de películas de ciencia ficción donde aparece una imágen 3D de una persona en una sala de reunion. También los cines con pantalla IMAX ofrecen un grado de telepresencia – desde el punto de vista del espectador, es casi como estar presente.)

Sus aplicaciones incluyen, además de teleconferencias, la realización de trabajos peligrosos sin poner en peligro seres humanos: el trabajador controla de distancia un robot (= telerrobótica) para ejecutar la tarea, utilizando información enviada por el robot (video por una cámara en el robot, audio por micrófono, información háptica, medidas de niveles de sustancias químicas). Incluso existen sistemas para cirurgía de distancia.

Telepresencia y RV/RAPor lo general, se utiliza mucha de la misma tecnología de RV/RA, pero la meta es diferente:

En telepresencia, hay que establecer que el usuario interactue con un ambiente real a través de computadora en vez de crear uno artificial.

Además, si la interacción es entre personas y no puras máquinas, hay que crear una representación tipo avatar del usuario en el ambiente con cual interactua.

VRML(Virtual Reality Modeling Language)

= un lenguaje de representación para objetos tres-dimensionales interactivos en la World Wide Web

La meta de VRML es el modelado de ambientes virtuales (tipo RV) los cuales se puede “navegar” a través de un navegador de una manera similar al navegar páginas de web escritos en HTML.

Para crear modelos en VRML, no se necesita ninguna herramienta especializada – solamente se escribe la descripción en un archivo con la extensión .wrl y se pone el archivo disponible en un servidor de HTTP.

Uno tiene que instalar un plugin gratuito en su navegador como lo de http://ovrt.nist.gov/cosmo/ para poder ver e interactuar con los modelos.

(Los que prefieren XML sobre HTML, utilizan X3D en vez de VRML.)

Telematica = la ciencia de enviar, recibir y guardar

información vía aparatos de telecomunicación

Actualmente se utiliza el concepto de telemática comunmente en especial para referir a sistemas vehiculares de telecomunicación.

El sistema GPS (Global Positioning System) es un sistema de satelites para navegación global, es decir, para determinar con exactitud alta la ubicación, velocidad y dirección de un aparato receptor sin importar donde está en el planeta.

La calculación está basada en comparaciones los retrasos de transmisión/recepción de señal que recibe el aparato simultaneamente de tres diferentes satelites, las posiciones de los cuales están conocidos. El método se llama trilateración.

,

Gracias por su atencion

Si surgen dudas o preguntas después, contactenme por correo electrónico:

[email protected]

Estas diapositivas ya están en la página

http://yalma.fime.uanl.mx/~elisa/en la parte de pósteres y diapositivas

,