Conceptos computacionales
esenciales en arte multimedia
12 de marzo de 2007
Dra. Elisa Schaeffer
FIME/UANL
[email protected]
Algoritmo
Un 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 número es par o impar
Parámetros: en número de interés X
Salida: “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 típicos de algoritmos
Variables: “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)
Autómata
Varios 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
C
C
B
A
A
Autómata 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.
B, F
ON
A
B
OFF
A,F
Fractales
Fractales son estructuras matemáticas donde el mismo
“patrón” repite en diferentes “niveles”.
Ejemplo: Copo de nieve de Koch
toma una línea
divídelo en tres partes
elije la parte central
levanta su punto medio arriba
(repite para cada parte)
Si se hace el mismo con un triangulo,
línea por línea, resulta un copo.
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: Inspiración 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
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.
http://en.wikipedia.org/wiki/Image:Fractal_mountain.gif
Terrenos fractales
Después de generar una reja de las alturas, se
añade textura y color:
http://www.fractal-landscapes.co.uk/graphics/pictures/volcanic2.jpg
Helecho fractal
x = 0.796956 x + 0.0607246 y
y = -0.0697246 x + 0.796956 y + 1.0
x = -0.119707 x + 0.328892 y
y = 0.328892 x + 0.119707 y + 0.5
x = 0.107736 x - 0.296003 y + 0.0
y = 0.296003 x + 0.107736 y + 1.0
x = 0.0
y = 0.2232 y
http://en.wikipedia.org/wiki/Image:Bransleys_fern.png
Árboles fractales
http://www.sfu.ca/~rpyke/335/tree.jpg
http://epod.usra.edu/archive/images/fractal_tree.jpg
Interfaz
A
B
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.
Internet
El 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).
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 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 un
software especializado que se llama un navegador.
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.
Retroalimentación
(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).
Cibernética
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 la 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
Una clasificación de IA 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)bot
En 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
falso = 0
(on, alto)
(off, bajo)
Números 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 + 28 = 32 + 16 + 13 = 32 + 16 + 8 + 5
= 32 + 16 + 8 + 4 + 1
= 25 + 2 4 + 2 3 + 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 kilobyte
1024 kilobytes = un megabyte
1024 megabytes = un gigabyte
210 = 1024
Analógico versus digital
Un señal analógico se representa con frecuencias.
En la representación digital, no se toma en cuenta todas las
frecuencias, pero una escala discreta predeterminada (posiblemente
dinámica) de frecuencias.
El proceso de aplicar la escalera se llama discretización.
Analógico versus digital
Además, el señal analógico es de tiempo continuo, pero
la representación digital de tiempo discreto: se elija una
frecuencia de muestreo y solamente guarda la frecuencia del
señal original en ciertos instantes según la frecuencia de
muestreo elegida discretizada 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 para la
representación de cada componente del 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
RRGGBB
Típicamente no se utiliza todas
las combinaciones posibles de
tres valores entre 0 y 255,
pero seis niveles:
FF = 255, CC = 204, 99 = 153,
66 = 102, 33 = 51, 00 = 0
http://www.drewfoster.com/rgbhex/images/rgbhex.gif
,
Resolución
La resolución de la imagen es la cantidad de pixeles en la
dirección horizontal por la cantidad de pixeles en la dirección
vertical.
Por ejemplo, la resolución 1024x768 es típica para monitores
de 15 pulgadas.
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.
Un ejemplo del efecto de la resolución
480 pixeles horizontalmente
100 pixeles horizontalmente
Compresión de datos
Cuando la información ya ha sido digitalizada, se
puede aplicar un algoritmo de compresión para
poder guardarlo en un espacio menor.
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.
Un ejemplo de la compresión
Digamos que queremos de expresar la secuencia siguiente
con menos símbolos:
AAAAABBBCCCCAAAAACCCCAAAAABBBAAAAABBBAAACCCCCAAAAABB
BCCCC
Una posibilidad: las frecuencias de uso de los símbolos
5A3B4C5A4C5A3B5A3B5A4C5A3B4C
Otra posibilidad: añadimos también 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 incluir el diccionario
mismo también para no perder información.
Números aleatorios
Existen algoritmos para generar números pseudoaleatorios, 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)
Una 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.
Números 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.
Simulación
En 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ón
ii. aplicar la solución propuesta en el modelo
iii. hacer observaciones del comportamiento
iv. ajustar la solución y el modelo
v. 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.
Un ejemplo de simulación: formación de grupos
Nodos en movimiento forman grupos con otros nodos “cercanos”.
Otro ejemplo de simulación: detección de incendios
La vigilancia distribuida de un bosque para evitar incendios: se coloca varios
aparatos pequeños que comuniquen por radio a distancias cortas en el bosque.
Cada uno cuenta con un termómetro y una batería. Se pueden fallar y dar
alarmas falsas. Al detectar una alarma, un aparato tiene que decidir si o no va a
transmitir alarma también.
Realidad virtual
Realidad 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 interactiva
Tí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.
Avatar
Originalmente 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/
Telepresencia
Cuando 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/RA
Por 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.
¿Cómo utilizar VRML?
Para crear modelos en VRML, no se necesita ninguna herramienta especializada.
1.
Se escribe la descripción en un archivo con la extensión .wrl con una
sintaxis predeterminada.
2.
Los archivos hay que poner disponible en algún servidor de HTTP.
3.
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 a HTML, utilizan X3D en vez de VRML.
Telemática
= la ciencia de enviar, recibir y guardar
información vía aparatos de telecomunicación
Actualmente se utiliza el concepto de telemática comúnmente en
especial para referir a sistemas vehiculares de telecomunicación.
El sistema GPS (Global Positioning System) es un sistema
de satélites 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
simultáneamente de tres diferentes satélites, las posiciones de los
cuales están conocidos. El método se llama trilateración.
¡Gracias por su atención!
Si surgen dudas o preguntas después,
contáctenme 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
en formatos PDF (sin animaciones), MS PowerPoint y OpenOffice.
Descargar

Conceptos computacionales esenciales en arte multimedia