Sobre la estrategia del ataque
Es mejor conquistar un estado que destruirlo.
Es mejor tomar todo un ejército que destruirlo.
Es mejor tomar todo un batallón que destruirlo.
Es mejor tomar toda una compañía que destruirla.
Es mejor tomar todo un pelotón que destruirlo.
Por tanto, un centenar de victorias en un centenar de batallas no es lo más hábil.
Lo más hábil es someter al ejército contrario sin batalla.
Elucubraciones doctorales. Capítulo 1
martes, 30 de octubre de 2007
Optimización de funciones computacionales usando conceptos de vida artificial
En este primer capítulo de mis ideas alocadas comentaré una de las primeras ideas que me vinieron a la mente en medio de una clase y que pensé que podría ser increíblemente útil. Desgraciadamente antes de que acabará la clase el profesor hizo algunos comentarios que me hundieron en la miseria y deje la idea por imposible. Pero ahí sigue la idea.
Para empezar voy a explicar un poco lo que es la vida artificial, que básicamente se resume en jugar a ser dios y crear vida, de ahí el termino "artificial". Pero, ¿qué es la vida? o mejor dicho ¿qué es un ser vivo? Existen multitud de definiciones y aún hay gente que sigue discutiendo por definir el concepto de vida. A mi me gusta la definición que dice que un ser vivo es algo que se opone a la segunda ley de la termodinámica, pero me voy a quedar con la que me explicaron de pequeño en el colegio: "los seres vivos nacen, crecen, se relacionan con el entorno, se reproducen y mueren" a lo que voy a añadir el término de evolución, porque los seres vivos evolucionan. Y por si alguien es seguidor de la teoría del creacionismo o similar, por favor que se lea un maravilloso libro que escribió Charles Darwin: El origen de las especies (1859, On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life) (Texto íntegro en Wikisource).
Partiendo de esta definición de vida voy a contar una historia, la historia de un biólogo, Thomas S. Ray, que se presento a una conferencia de inteligencia artificial. El primer año se rieron de él por proponer la posibilidad de crear vida en el ordenador, el segundo año no tuvieron otra cosa que hacer sino asombrarse de lo que Thomas había conseguido. Como dice él: "Jugué a ser Dios y creé la vida en mi computadora". Y ¿cómo lo hizo? En primer lugar decidió lo que iba a ser el mundo de la vida que iba a crear, como se trataba de crear vida en el ordenador no hay mejor mundo que la memoría, o al menos, una parte de ella. Lo segundo que hizo fue crear un pseudo lenguaje de programación un poco más avanzado del lenguaje ensamblador pero lejos del los lenguajes de alto nivel que sería utilizado para ejecutar un código capaz de autoreplicarse en la memoria, en el universo. En este punto merece la pena mencionar la necesidad de crear un nuevo lenguaje, ya que los lenguajes actuales contienen bucles y estos bucles cuando se dejan a manos del azar y el ordenador es muy, pero muy fácil que aparezcan bucles infinitos (bucles que nunca acaban) y esto es mortal para cualquier programa. De ahí la necesidad de intentar mitigar un poco este problema con un nuevo lenguaje que hiciera más difícil estos bucles. El siguiente paso fue crear un programa capaz de autoreplicarse en memoria. Para que el programa no se replicara y fuera siempre igual añadió mutación para ver si se generaban nuevos programas capaces de replicarse pero diferentes del original. Por último determino la forma de morir de los individuos, recordar que morir es un instrumento esencial para que las especies evolucionen. Así pues, los individuos que más tiempo llevaban en memoria dejaban de ejecutarse y morían, además los individuos que hacían "cosas raras" como ejecutar instrucciones determinadas cuando no debían eran penalizados y morían antes.Con todo listo Thomas lanzo su experimento y se puso a observar. Lo primero que vio aparecer fueron los parásitos, individuos que se aprovechaban de los huéspedes para replicarse. Luego los huéspedes crearon mecanismos para defenderse, en concreto dejaban que el parásito se replicase aprovechándose de ellos pero luego proporcionaban información falsa para que el parásito replicase al huésped y no a si mismo. Y entonces los parásitos desaparecieron y los huéspedes empezaron a cooperar unos con otros creando comunidad para replicarse, era el principio de una sociedad. Pero como en toda sociedad, siempre tiene que haber parásitos y estos volvieron a aparecer. A parir de aquí la evolución se había vuelto tan loca que Thomas decidió eliminar la mutación para poder observar a los individuos. Sin la mutación Thomas pensó que no aparecerían individuos nuevos, pero sorprendentemente sí seguían apareciendo individuos nuevos distintos de sus progenitores. Fue entonces cuando descubrió que había aparecido la reproducción sexual en el universo que había creado.
Por si alguien tiene más interés en la vida artificial que creo Thomas existe un software desarrollado por el mismo llamado "Tierra Net" que se ejecuta de forma distribuida y aún sigue generando individuos nuevos.
Y cómo encaja todo esto en mi idea de optimización de funciones, pues bien, no solo apareció la reproducción sexual en el universo de Thomas, sino que también se crearon individuos capaces de replicarse con un número de instrucciones mucho menor del que Thomas había diseñado en un principio. Esto podría parecer una memez porque Thomas no creo un programa optimizado, pero cuando se le propuso a un grupo de estudiantes que crearán ellos individuos capaces de replicarse con el menor número de instrucciones posibles, ninguno fue capaz de aproximarse a lo que el universo de Y cómo encaja todo esto en mi idea de optimización de funciones, pues bien, no solo apareció la reproducción sexual en el universo de Thomas, sino que también se crearon individuos capaces de replicarse con un número de instrucciones mucho menor del que Thomas había diseñado en un principio. Esto podría parecer una memez porque ThomasThomas había creado. En este punto podría decirse que la evolución en la vida artificial supera la inteligencia humana en lo referente a crear individuos que se autorepliquen.
Partiendo de esta base por qué no aprovecharse de que la vida artificial es capaz de optimizar una función para crear nuevas funciones que desarrollen su cometido mucho más rápido. Me parece un tema especialmente interesante para cualquier aplicación de tiempo real donde una fracción de segundo pueda suponer una diferencia entre el éxito o el fracaso, además es mucho más fácil crear un código que funcione y que luego el ordenador optimice a crearlo directamente optimizado. Como dije antes, ningún programa creado por los estudiantes fue más óptimo que lo que se creo en el universo de Thomas. Pero no todo es tan bonito como parece, cuando dije que los comentarios del profesor me hundieron en la miseria fue porque aunque los científicos se entusiasmaron mucho con los resultados de Thomas nadie ha sido capaz de extrapolar los resultados a aplicaciones que no fueran una mera simulación de un universo virtual.¿Cuales son los problemas que plantea esta idea?
- Crear un lenguaje más complicado que el de Thomas con toda las potencia de los lenguajes actuales pero con las ventajas del lenguaje que creo Thomas. Esto es casi imposible y tal vez resultaría más fácil hacer un programa traductor, pero entonces puede que en la traducción se perdiera la optimización conseguida.
- Añadir la función a optimizar al código capaz de replicarse. En este punto se pueden tener esperanzas porque en lugar de que las instrucciones se ejecuten una en cada ciclo y se den los mismos ciclos de computadora a todos los individuos se podría utilizar el tiempo que la función tarda en realizar su cometido para determinar cuanto tiempo de reproducción doy a cada individuo. De forma que a una función más optimizada se le dan más ciclos para que pueda replicarse, aún así el código para replicarse debería también replicar la función.
- En caso de conseguir el punto anterior habría que tener en cuenta también que la mutación es parte del universo y esta afectaría a las funciones y estas podría dejar de realizar su cometido de forma eficaz y empezar a hacer cosas extrañas. Una solución sería penalizar a estos individuos pero entonces es posible que no hay evolución, todo sería probar.
- Con todas las restricciones anteriores, si todo funcionara sin problemas entonces a lo mejor la reproducción sexual no sería necesaria en este universo y puede que no apareciera, con todas las implicaciones que esto supone en la evolución. Una solución sería que los primeros individuos si contase con reproducción sexual.
- Y lo peor de todo es que si todo acaba funcionando puede que lo único que haya conseguido es reinventar la programación genética pero de una forma más sofisticada.
Elucubraciones doctorales. Capítulo 0
viernes, 26 de octubre de 2007
Como antesala al futuro que se me plantea, por la consecuencia intrínseca de los insensatos e irreflexivos actos cometidos durante un trastornado verano, me veo en la obligación de liberar a mi cerebro con el fin de divagar sobre la posible temática que compondrá lo que transcurrido el tiempo puede que nombre como mi tesis doctoral. Por ello, a partir de hoy y sin desmerecer la destreza y aptitud de las pocas mentes que leen asiduamente este indescriptible blog, intentaré exponer de la forma más complicada y enrevesada que conozco las ideas y conceptos que fluyan en el interior de mi cabeza.
El objetivo de estas "elucubraciones doctorales" es dar a conocer las ideas que se me han ido ocurriendo sobre las que de alguna forma estaría interesando en trabajar y desarrollar para elaborar una tesis doctoral, o al menos perder el tiempo en algo que me entretenga y, a priori, me guste. Bueno, para que os voy a engañar, aún no me planteo si haré una tesis doctoral o no, pero los temas que trataré son ideas que se me han ido ocurriendo en diferentes momentos de mi vida y son cosas sobre las que me gustaría, al menos, pararme a reflexionar. Y aunque no se entienda nada de lo que diga por lo concreto que es contenido que voy a tratar cualquier aportación en forma de idea o comentario será bien recibida. En cualquier caso intentaré exponer algunos conceptos básicos de las ramas de la inteligencia artificial que más me atraen para que se pueda entender más o menos mi idea y como puede suponer un posible avance en el campo.
Principios básicos
martes, 23 de octubre de 2007
- Todo lo que tiene un principio tiene un final.
- Para terminar algo, primero hay que empezarlo.
- Calma, constancia y perseverancia. Al final todo llega.
- Lo único imposible es lo que no se intenta.
- No preguntes algo si puede que no te guste la respuesta.
- Piensa siempre en positivo y obtendrás resultados positivos. Olvida lo negativo.
- Siempre luchar, nunca rendirse. Aunque todo parezca perdido siempre hay una opción más.
- No esperes una segunda oportunidad, aprovecha la primera.
- El pasado no se puede cambiar, piensa en el futuro.
- No pienses lo que vas a decir, pero piensa a ver a quién se lo dices.
- Arrepentirse no es una opción, aceptar la realidad sí.
- Aprende de los errores, no te arrepientas de aprender.
- La única opinión que cuenta es la tuya.
- Los sueños no son comparables con la realidad.
- Nunca podrás saberlo todo. Realmente lo que sabes es insignificante.
- Tarde o temprano siempre se comete algún error.
- Cuando buscas un problema, primero fíjate en ti mismo.
- Pensar dos veces la decisión que hay que tomar es una perdida de tiempo que puede hacernos perder la capacidad de decisión.
- Sólo conocemos nuestros propios límites cuando los sobrepasamos.
- Los únicos secretos posibles son los que no existen.
- Piensa por ti mismo.
- El que no arriesga no gana nada.
- El único miedo que hay que tener es el miedo al propio miedo.
- La suerte no existe, pero si se busca es posible encontrarla.
- Todo es relativo, depende de cada punto de vista.
- Siempre falta algo o hay algo que desconocemos...
- Tener principios no sirve para nada.
Runbot
domingo, 14 de octubre de 2007
Desde que estudié las redes de neuronas siempre me han parecido muy útiles y el día que me pusieron a cacharrear con los lego mindstorms lo primero que pensé fue en hacer un robot que aprendiera a andar. Pero como me pasa siempre alguien se me había adelantado.
Runbot es un robót de unos 23 cm de altura diseñado por unos científicos del MIT capaz de aprender a subir una rampa y, además, es el robot bípedo más rápido del mundo: 3,4 zancadas por segundo. El secreto del robot reside en un diseño muy simple que intenta imitar la forma de caminar de los humanos. Además esta dotado de un sensor infrarrojo que le permite conocer la inclinación del suelo. Es un poco diferente al robot que yo había pensando, pero aún así me resulta impresionante como es capaz de aprender a no caerse tras apenas 3 intentos y de aumentar su velocidad.
Fuentes:
¿Héroes?
miércoles, 5 de septiembre de 2007
Los verdaderos héroes nunca quieren serlo, y son elegidos en contra de su voluntad.
Las cucarachas se robotizan...
lunes, 3 de septiembre de 2007
...o mejor dicho los robots se cucarachizan.
Leo en Tendencias 21 que un grupo de científicos minirobot (InsBot) capaz de infiltrarse en una colonia de cucarachas sin llamar la atención. Como veis en la foto el robot poco se parece simple vista a una cucaracha, sin embargo, a ojos de una cucaracha el robot es otra cucaracha. Sus movimientos, su olor y su patrón de comportamiento ha sido diseñado para que logre pasar desapercibido entre sus "hermanas cucarachas".
Pero el estudio de este equipo de científicos no se queda ahí, infiltrar el robot es solo el primer paso. El siguiente es realizar un estudio de sociedad mixtas de animales y agentes artificiales para poder desarrollar modelos y herramientas para dichas sociedades. Una vez se obtengan dichos modelos se intentará desarrollar métodos para alterar el comportamiento de la sociedad y así poder controlarla. Y en un futuro algo más lejano intentar llevar las técnicas aprendidas a otros animales y a las plantas.
Más información en:
- InsBot : Design of an Autonomous Mini MobileRobot Able to Interact with Cockroaches.
- Descripción del comportamiento
- Sitio oficial del proyecto
[atención reflexión mental...]
En un momento de reflexión se me ocurre que si yo fuera un extraterrestre y quisiera invadir un planeta o destruirlo un buen método puede ser infiltrar a seres que nos imiten y se hagan control, o nos destruyan . . .
[Actualización] El proyecto terminó en Agosto del 2005 y no parece haber constancia de más logros que el infiltrar al robot. (esto me pasa por no revisar mis fuentes)
Roomba, Scooba, Dirt dog & Verro

Roomba, Scooba, Dirt dog, Verro son cuatro de los robots de la empresa iRobot encargados de la limpieza de superficies. En concreto Roomba se encarga de aspirar el suelo y Scooba de fregarlo, mientras que Dirt dog esta más orientado a limpiar suelos de industrias y Verro de la limpieza del fondo de la piscina. Hacen todo el trabajo ellos solitos y según leo en Xataka parece ser que lo hacen bastante bien. ¿Quien no querría tener uno de estos?
Dejando el tema de que voy a terminar por comprarme uno de estos cuando me toca limpiar el suelo, lo que me ha llamado la atención de estos robots es que usan inteligencia artificial, lo cual es una excusa perfecta para hacer marketing. Pero no hay que olvidar que son robots y que su éxito también se debe de la parte robótica, de la que no voy a hablar porque mis conocimientos no son tan amplios.
¿y donde esta la parte inteligente de estos robots?: ¿en qué saben volver a la base a recargarse? , ¿que saben que zonas están más sucias?, ¿que sabe no caerse por las escaleras y no chocar con las paredes? ¿en que esquivan muebles? pues nada de eso, todas esas cosas se hacen con sensores y algoritmos "sencillos", la inteligencia está en ser capaz de abarcar toda una superficie para limpiarla (un pequeño matiz, Verro limpia también las paredes de la piscina, pero en el fondo esto no es más que una superficie, es decir, un plano, igual que el suelo). Si bien es cierto que se esta investigando mucho en el tema de recorrer edificios y crear mapas, en este caso el robot se basa en un algoritmo que intenta abarcar una superficie. Y cómo se hace un algoritmo capaz de recorrer una superficie, pues si esta es cuadrada es bastante fácil, pero la cosa se complica si la superficie no es cuadrada y encima hay muebles de por medio, paredes, escaleras, etc...
Para resolver este problema se utiliza la programación genética, que no es más que un programa haciendo otros "programas" para resolver un problema. En primer lugar se definen una serie de funciones que la programación genética puede utilizar pare resolver el problema, en el caso de estos robots se podrían usar las siguientes funciones:
- de movimiento:
- avanzar X
- retroceder X
- girar X grados
- de los sensores:
- hay un obstáculo delante, a la derecha, izquierda, etc
- hay un hueco delante, a la derecha, izquierda, etc
- cuanta suciedad hay delante, detras, etc
- condicionales:
- si función A es [operador condicional > < >= <= =] funcion B entonces funcion C, sino función D
- bucles:
- repetir función A X veces
- repetir función A X veces
Con esto ya tenemos nuestro robot listo para aprender a limpiar, o más bien a recorrer una habitación sin dejar un solo rincón. La programación genética se encargará de crear programas de forma aleatoria y de evaluarlos en los escenarios que hemos preparado, con ello se hará una idea cuales son los programas que mejor limpian y a partir de estos programas se crearan programas nuevos que seguramente sean más complejos que los primeros y más eficientes en su tarea.
Evidentemente esto no es coser y cantar y seguramente haya hecho falta probar con diferentes funciones y con un gran número de escenarios muy variados para conseguir un producto que pueda llegar al consumidor. Además el programa final, el mejor que haya conseguido la programación genética después de un buen rato funcionando, habrá sido evaluado y retocado por un humano para simplificarlo y corregir los defectos observados.
Tenéis más información de los cuatro robots en la sección de cleaning robots de iRobot, junto con algunos vídeos.
...y hasta se pueden programar para que limpien la casa cuando no estamos, son una maravilla.
Una introducción a la Singularidad
viernes, 24 de agosto de 2007
Emilio me pasa un texto que se llama "Una introducción a la Singularidad" por Eliezer S. Yudkowsky. Os recomiendo bastante que lo leáis y para los más vagos hago un resumen de lo que me ha gustado más.
El texto plantea una singularidad en la inteligencia humana, es decir, que va a llegar un momento en el que la inteligencia humana de deje de crecer. La evolución ya no será capaz de hacernos más listos, al igual que pasa con las computadoras, que llegará un momento en el que el límite físico de los materiales no nos permitan construir procesadores más veloces y haya que buscar otras alternativas (como los procesados multinúcleo y la paralelización). Ante este hecho se plantea la posibilidad de crear mediante hardware un "cerebro" que sea más rápido que el nuestro. A este cerebro artificial se le introducirán técnicas de inteligencia artificial (¿algún tipo de red de neuronas, tal vez?) para que sea capaz de aprender y que pueda llegar en algún momento a mejorarse a sí mismo.
La segunda mitad del texto me parece más aburrida ya que se mete en temas de nanotecnología para imitar al cerebro y en como representar el proceso de muerte de las neuronas (y su reemplazo para crear seres inmortales super listos que puedan decidir si vivir o morir, los Amish).
Bueno, ahora voy a ofrecer mi punto de vista. El texto comienza diciendo que los ordenadores actuales son capaces de realizar más cálculos por segundo que el cerebro humano, lo cuál hasta cierto punto es cierto. Si intentas hacer una división, o mejor, una raíz cúbica seguro que tardas menos con una simple calculadora. También hay estudios que hablan de que el ojo humano solo tienen una resolución de un megapixel o que solo somos capaces de prestar atención a 4 objetos simultáneamente. También se dice que los hombres no somos capaces de hacer dos cosas a la vez... (lo cual no estoy de acuerdo porque somos capaces de hacer 2: lo que estamos haciendo y pensar en lo que siempre pensamos). Pero dejando de lado las discursiones, lo cierto es que apenas conocemos nuestro cerebro y ni siquiera usamos un 10% del mismo (o era un 1%, no lo recuerdo ahora mismo). Y lo que es más sorprendente, tampoco somos capaces de simularlo con los ordenadores actuales. Como bien dice el texto, el cerebro tiene 40 mil millones de neuronas y 100 billones de sinapsis, lo cual es una burrada para simular (casi es más fácil poner a resolverse el Eternity II) y mucho más complicado de crear mediante hardware, aunque se plantean algunas posibilidades usando nanotecnología y cristales.
Dejando todo lo anterior de lado me quedo con una paradoja del texto (copio la parte a la que me refiero):
Una civilización basada en una inteligencia más lista o más sabia o más creativa es imposible de imaginar, aún como ficción. Usted no puede escribir un cuento en el que uno de los personajes sea más listo que usted; por definición, si usted supiera lo que ese personaje haría, usted sería tan listo como él. Si la habilidad humana de considerar procesos abstractos en general es lo más lejos a lo que puede llegar cualquier inteligencia concebible, entonces una inteligencia más lista simplemente sería capaz de resolver problemas más rápido, más directamente, más elegantemente, quizás con soluciones bellamente multifacéticas, a la vez que obvias en retrospectiva (pero seguirían siendo soluciones a la misma clase de problemas que planteamos nosotros).
y digo yo, si no podemos escribir un cuento donde los personajes sean más listos que nosotros, ¿cómo vamos a crear una inteligencia que sea más lista que la nuestra?
Para mi la única respuesta a esa pregunta pasar por crear un ambiente controlado donde pueda aparecer vida de forma más o menos espontanea, un tipo de vida que se nos escapa a la imaginación, y que en ese tipo de vida aparezca inteligencia (casi por arte de magia).
SIGGRAPH 2007 "Escalado de imágenes sin perdida"
Lo he visto en mil sitios no pensaba decir nada, pero si Víctor dice que es digno de mi blog tengo que ponerlo.
SigGraph es un grupo con interés en infografía o computación gráfica de la ACM, también es el nombre de la feria más importante de diseño por ordenador. En la feria de este año parece ser que ha llamado la atención un novedoso método para escalar imágenes. La técnica se basa en buscar caminos de píxeles que son menos relevantes en la imagen para eliminarlos y así poder reducir el tamaño de la imagen, o repetirlos si lo que se quiere es agrandarla. En el vídeo se ve mucho mejor todo esto (atención a cuando elimina a una persona de la foto, los artistas del photoshop seguros que están encantados con estas cosas):
Hay muchos algoritmos para agrandar y reducir imágenes, tal vez menos impresionantes que el que acabáis de ver, pero me gustaría destacar uno. Como ya mencione cuando hable de fractales, estos podían utilizarse para comprimir imágenes con perdida (como el jpg). Esta técnica para comprimir imágenes se basa en los atractores de punto fijo, es decir, en sistemas dinámicos que independientemente del estado inicial y que tras un número de iteraciones llegan a una situación estable de la que ya no salen. La forma en la que se aplica esto para comprimir imágenes es la siguiente. Primero se divide la imagen en partes y, después, para cada parte se busca otra a partir de la que se pueda obtener con una simple operación matemática del tipo y = a·x+b. Finalmente se guardan las operaciones matemáticas y las partes sobre las que se aplican para poder volver a obtener luego la imagen original. Al haber conseguido fórmulas matemáticas que forman "el atractor de la imagen" podemos utilizarlas a "cualquier escala", es decir, no es necesario que las zonas en las que se dividió la imagen tengan el mismo tamaño que las originales y podemos hacerlas más pequeñas o más grandes para conseguir una nueva imagen de un tamaño distinto a la original. Evidentemente esto tiene sus limitaciones porque para conseguir las fórmulas matemáticas no hemos utilizado una imagen con infinito grado de detalle, pero hasta cierto punto esta técnica es interesante, sobre todo cuando se trata de imágenes de objetos naturales que se pueden considerar fractales, cómo los árboles, o pseudofractales, como las nubes.
Cómo quitarse unas esposas
miércoles, 22 de agosto de 2007
Unlock Handcuffs With A Bobby Pin! Trick Revealed! - video powered by Metacafe
Unlock Plastic Handcuffs! Police Style! - These bloopers are hilarious
Ambos vídeos son del mismo usuario de Metacafe, Kipkay.
... y si te quieres aficionar a abrir cerraduras, échale un vistazo a P1nCh1T0s T34M, tienen unos videos y textos muy interesantes.
Árboles fractales
Hace unos años tuve que crear un fractal y me dio por hacer un árbol, el resultado fue siguiente:
La forma de hacerlo es bastante sencilla, básicamente se coge un patrón simple y se va copiando a escalas más pequeñas. Lo único que hay que hacer para darle un efecto más "natural" o más "realista" es añadir algo de aleatoriedad en cada copia. En la siguiente imagen se aprecia mejor el proceso:
Hace unas semanas me dio por intentar volver a hacer un árbol, pero esta vez tenia que parecer más natural, al menos en la forma (no quería entretenerme mucho con los colores, la iluminación y las texturas). El resultado es este:
Si queréis os podéis descargar el código fuente, esta hecho para ser renderizado con POV-Ray. Y ya de paso podéis echar un vistazo al Hall of Fame de la página del POV-Ray, es bastante impresionante.
Aterriza como puedas
lunes, 20 de agosto de 2007
Yo me quedo con el último... pero aquí van unos cuantos.
Impresionante aterrizaje en la isla de St. Marteen:
Vía Microsiervos.Otro aterrizaje en St. Marteen.
Aterrizaje sin ruedas.
Vía Meneame
En un portaaviones... vaya frenada...
En un portaviones pero esta vez aterrizando en vertical...
En el sofá de tu casa...
Fractal
La palabra fractal aparecio en 1975, propuesta por el matemático Benoît Mandelbrot. En sus propias palabras:
Quería recoger la impresión de una piedra que golpeas, y se fractura. De ese fractus latín surgió el fractal. La terminación se debió a que quería que funcionara en inglés y francés.El objetivo de los fractales fue intentar representar las figuras geométricas de la naturaleza que la geometría clásica, euclidiana, era incapaz de abordar. En contraposición a la geometría euclidiana, donde todos los elementos siguen unas bases matemáticas bien definidas, la geometría fractal se presenta como un modelo donde se pretender romper la armonía de los elementos y donde se busca la regularidad en las relaciones entre un objeto y sus partes a diferentes escalas. Es decir, es un modelo donde un objeto puede ser expresado como el límite de un proceso geométrico iterativo, donde en cada iteración se produce una ruptura de la forma original.
En general un fractal es un objeto que cumple las siguientes propiedades (o al menos la mayoría):
- Autosemejanza, el objeto fractal aparece a diferentes escalas
- Tiene detalles en escalas arbitrariamente pequeñas.
- Definición sencilla
- Son generados por procesos iterativos o recursivos
- Son demasiado irregulares para describirse en términos clásicos
- Su dimension de Hausdorff-Besicovitch no es entera
Actualmente los fractales tiene diferentes aplicaciones de las cuales voy a destacar tres:- Crear música
- Generación de imágenes de elementos de la naturaleza como árboles, estructuras moleculares cosas, montañas...
- Compresión de imágenes con perdidas (con resultados mejores que el formato jpg tan extendido hoy en día, pero más lentas en el tiempo de compresión, no en el de descompresión).
Un ejemplo muy simple de una imagen de unas montañas creada con técnicas fractales.
Vista aérea de unas montañas a diferentes alturas (gracias google maps):
El conjunto de Mandelbrot a diferentes escalas:
Enlaces:El éxito
viernes, 17 de agosto de 2007
El éxito no es para los que piensan que pueden hacer algo sino para quienes lo hacen.
VIDA 10.0. Concurso Internacional Arte y Vida Artificial
martes, 14 de agosto de 2007
VIDA 10.0 es la décima edición de un concurso convocado por Convocado por Fundación Telefónica que premia obras artísticas desarrolladas con tecnologías de Vida Artificial y sus disciplinas asociadas, la robótica, la inteligencia artificial, etc. Se buscan proyectos artísticos que hagan una reflexión sobre la relación entre lo “sintético” y lo “orgánico”.
En años anteriores se han premiado proyectos artísticos realizados con robots, avatares electrónicos, algoritmos caóticos, knowbots, autómatas celulares, virus informáticos, ecologías virtuales que evolucionan con la interacción del participante, y trabajos que profundizan en aspectos sociales de la Vida Artificial.
Aquí tenéis un vídeo que he encontrado del segundo premio de la novena edición. La verdad es que no me ha parecido demasiado sorprendente pero ha sido lo único que he encontrado.
A mi me parece más interesante estos animales de Theo Jansen (mención especial como obra pionera en la sexta edición):
Límites
domingo, 12 de agosto de 2007
Mi límite es el cielo. Ya sólo me puede parar la muerte.
Jiro
viernes, 10 de agosto de 2007
Era de noche, una noche muy distinta a todas las demás. La luna llena brillaba en todo su esplendor pero las densas nubes impedían que ningún mortal pudiera contemplarla. Gracias ello pude salvar mi vida. Nuestro ataque a media noche pretendía acabar con todos, pero nos estaban esperando. La batalla fue una masacre y solo algunos logramos escapar con las pocas fuerzas que nos quedaban.
Mientras caminaba por el bosque las horas pasaban como si fueran días, apenas podía mantener la llama con la que iluminaba el camino. El silencio y la oscuridad se apoderaban de mi a cada paso que daba. Parecía que los animales tenían miedo y habían decidido esconderse hasta que llegará el día.
De repente una brisa de viento permitió a la luna aparecer entre aquellas densas nubes. Cuando quise darme cuenta ya era tarde, allí estaba él. Apareció de entre las sombras, era como si se hubiera sincronizado con la Luna. Enseguida supe de quién se trataba. Nunca antes le había visto, ni conocía a nadie que lo hubiera hecho, ni siquiera me creía que existiera. Era como si fuese una historia que había sido inventada para aterrorizar a los más cobardes y asustar a los niños. Desgraciadamente para mi era real. Su túnica azul y oscura como la noche, su cabeza afeitada, su pose en guardia esperando la lucha y, sobre todo, su katana manchada con ríos de sangre le hacían único e inconfundible. Cualquier otro ser humano al verme en el bosque hubiera pedido clemencia por su vida, pero en este caso era yo quién tenía que hacerlo.
Existían miles de leyendas que hablaban de él. Las más antiguas decían que era un hombre tranquilo, amable, pacífico con un trabajo honrado, era un hombre como cualquier otro y que como mortal siempre se había preguntado sobre el significado de la vida. Un día decidió retirase al Tibet y convertirse en monje. Pensaba que allí encontraría la respuesta. Fue en el templo de la montaña más alta, donde solo los más fuertes y valientes habían podido llegar, el lugar que escogió para su retiro. Sus hermanos le enseñaron a dominar su mente, su cuerpo y el arte de la espada. Tal fue su dominio de la espada que fueron muchos maestros los que fueron a buscarle al templo para enfrentarse a él. La leyenda del gran maestro de la espada había comenzado. Al principio solo aparecían en el templo para aprender del maestro, pero poco a poco aparecieron los más osados que quería demostrar que eran mejores, y lo único que consiguieron fue la muerte y extender su leyenda. Entonces, tal y como había llegado al templo se fue y desapareció. Algunos piensan que fue expulsado por sus hermanos cansados de tanta muerte sin sentido, otros creen que simplemente se canso de luchar contra rivales tan débiles. Con el tiempo, se convirtió en una historia de charlatanes que viajan de pueblo en pueblo y su verdadera existencia se puso en duda.
Cuando aparecimos nosotros, los humanos nos temían y, durante un tiempo, nos creímos capaces de dominar el mundo. Eramos infalibles en cuando atacábamos, ningún pueblo sobrevivía y nunca habían logrado herir a uno de los nuestros. Hasta que un día en el poblado como otro cualquiera en medio de la montaña, un sólo hombre logró aniquilar a 13 de los nuestros con su espada. Ese fue el comienzo en el que los hombres dejarían de temernos. La historia se repitió una y otra vez, y siempre era un único hombre el que lograba acabar con los nuestros. No sabíamos quien era ese hombre ni si existía de verdad, pero cada vez más de los nuestros morían y más historias aparecían del gran maestro de la espada. Todas contaban lo mismo, el gran maestro de la espada cansado de luchar contra humanos había vuelto de su escondite para luchar contra rivales más dignos y aniquilarnos a todos nosotros. Para muchos el asesino del templo del Tibet se había convertido en un héroe, para otros solo había encontrado otros seres que matar.
Seguramente fue él quien advirtió de nuestro ataque y ahora nos estaba buscando por el bosque para acabar, uno por uno, con todos los que habíamos logrado huir. Pero no podía estar más equivocada. Apenas me miro durante un segundo, envainó su espada, se giro y continuó su camino. No entendía nada, pero no podía quedarme sin saber cuál era su nombre. Se lo pregunte antes de que pudiera perderle de vista, él se giro, me miró y con una tenue voz de alguien que se encontraba perdido me dijo: "mi nombre es Jiro". En ese momento, su voz y sus breves palabras me hicieron comprender que no era él el quién había escogido matar. Para Jiro no existía el bien o el mal, solo vagaba por el mundo intentando buscar respuestas que nunca encontraría, luchando por sobrevivir y defendiendo aquello que le parecía injusto. Para algunos era un héroe, para otros un asesino. Cuando quise volver a hablar con él, ya había desaparecido.
Jiro nunca se dará cuenta que el significado de su vida es equilibrar la balanza entre el bien y el mal. Siempre seguirá vagando y buscando aquello que tanto ansia. Tal vez algún día nuestros destinos vuelvan a cruzarse, y entonces pueda darle una respuesta. Después, me veré obligada a matarle.
Bueno, y esta historia a que viene, pues no podía evitar crear un superhéroe sin ponerle una historia. Así de paso me introduzco en el mundo de los relatos, del que puede que salga pronto. Lo mío no es escribir, prefiero los números, así que no seas muy duros conmigo.
Tenéis la aplicación para hacer vuestro propio superheroe en UnderGround Online.
Vaya cosas pasan por el IRC
jueves, 9 de agosto de 2007
Descubrí bash.org, y me encontré con unas cuantas cosas que me hicieron reir un buen rato. En inglés.
random girl: hey!
me: ...hi?
me: who is this?
random girl: Jessica, I saw u on myspace
random girl: ur hot
me: thanks
random girl: np
me: this girl keeps bugging me, but I don't want to talk to her
me: what should I do?
random girl: make up sum excuse, like ur mom is kickin u off or sumthing
me: oh alright
me: I have to go
me: my mom is kicking me off
me: bye
Chin^: My sister caught me jacking off the other week and calls me a pervert
Chin^: just the other day i walked into my room and caught my sister masturbating
Chin^: So she calls me a pervert again?!?
Chin^: there is no justice in the world...
frank: can you help me install GTA3?
knightmare: first, shut down all programs you aren't using
frank has quit IRC. (Quit)
knightmare: ...
Eticam: I was in biology class once, and the teacher said there was sugar in sperm
Eticam: And a girl asked why doesn't it taste sweet then
Eticam: When she realised what she said her face became red like a spanked monkey ass
Eticam: Then the teacher said, because you taste sweetness with the front of your tongue, not the part of your tongue back in your throat
Eticam: The girl started crying and left class ^^
xxxGirlygirlxxx: Thank you for listening to me.
xxxGirlygirlxxx: You know your a really good listener.
xxxGirlygirlxxx: Sweety please say something.
Sandaedar: Ok I'm back.
JonTG: Man, my penis is so big if I laid it out on a keyboard it'd go all the way from A to Z
JonTG: wait, shit
Para centrarse...
jueves, 2 de agosto de 2007
a ver si me centro de una vez...
centrarte en queeee si no tienes nada en lo k centrarteeee
Agrupación de sonidos
martes, 31 de julio de 2007
Leo en Tendencias 21 que investigadores de la universidad de Stanford han desarrollado un programa informático que imita los procesos cerebrales usados por los niños cuando aprenden a hablar. El título me ha chocado suficientemente la atención para pensar que podría tratarse de inteligencia artificial, y no me he equivocado. Básicamente el objetivo de los investigadores era realizar una clasificación de los sonidos, para ello utilizaron una red de neuronas. Por resumir un poco una red de neuronas es un modelo conceptual y simplificado del cerebro, es decir, un conjunto de células ("neuronas") interconectadas capaces de procesar información y dar una respuesta. La forma de conseguir que la red de neuronas aprenda a clasificar los sonidos es pasárselos como entrada una y otra vez para que las conexiones entre las neuronas se vayan adaptando. Llegando un momento en el que el error al clasificar los sonidos desciendo de un cierto umbral. Seguramente en este caso el aprendizaje no fue supervisado (indicando a la red si acertaba o se equivoca en al clasificación), sino que fue la propia red la que dedujo los tipos de sonidos que había. Las redes capaces de hacer este tipos de cosas son los mapas de kohonen y las redes ART, no he encontrado buena información en español sobre ellas así que otro día las explicare con detalles.
He estado comentado el proceso de aprendizaje porque es la parte más curiosa de la inteligencia artificial, sin embargo, no he mencionado nada de como se transforma el sonido en algo que pueda introducirse en la red de neuronas. Básicamente, el componente que falta por explicar en todo este sistema es el que hace de oído. Puede ser algo que no llame tanto la atención o resulte menos curioso, pero la transformación de, en este caso, el sonido en datos interpretables por la red es un factor importante que condiciona el éxito de aplicar una técnica de inteligencia artificial. No solo se trata de transformar el sonido en bits, lo cual con un micrófono no es muy complicado, sino que en este caso seguramente también haya sido necesario realizar un pequeño procesado para separar los sonidos, o al menos, las palabras. Además, las condiciones en las que se realizan este tipo de estudios suelen ser lo más idóneas posibles y las grabaciones se habrán realizado sin apenas ruido ambiente. Con ruido el problema se complica pero estoy seguro que una red de neuronas que también tenga en cuenta datos del pasado, una cierta memoria, es capaz de resolver el problema.
También leí hace tiempo en Tendencias 21 que unos ingeniero británicos habían reinventado la rueda dotándola de capacidad para aprender y adaptarse a la carretera respondiendo a baches y problemas de a medida que se enfrenta a ellos. El artículo explicaba que eran microordenadores situados en las ruedas capaces de registrar cambios en el camino y adaptarse a ellos, pero no daba detalles de que tipo de inteligencia artificial se había aplicado. A mi se me ocurren multitud de formas de usar alguna técnica de inteligencia artificial (redes de neuronas o sistemas expertos) para dotar a las ruedas de "inteligencia", el verdadero éxito de esta inteligencia se basa en ser capaces de obtener características de la carretera en tiempo real y modificar el comportamiento en cuestión de milisegundos.
