Mostrando las entradas con la etiqueta computación. Mostrar todas las entradas
Mostrando las entradas con la etiqueta computación. Mostrar todas las entradas

miércoles, 24 de julio de 2013

Transmisión de Datos de Mayor Densidad por Fibra Óptica

En la seguidilla de las ideas que estoy dando a conocer, esta es otra de ellas. En los siguientes párrafos, les dejo a continuación la idea.

Hace un tiempo, buscaba algunas aplicaciones para los códigos QR. Finalmente, en mi cerebro escuché un ¡clic!, y visualicé transferencia de datos entre celulares utilizando este medio. De forma entusiasta comencé a buscar qué había hecho ya al respecto que fuera similar, y me encontré con algo que no era similar a la idea, sino que ¡era idéntico! En el artículo «QuickeR: Using video QR codes to transfer data» se describe mi tristeza.
No quise ser derrotista, por lo que comencé a buscar alguna variante útil. Un día, leyendo algunas noticias, me encontré con el artículo titulado «Códigos QR para mejorar la encriptación óptica y proteger información confidencial», el cual hablaba acerca de utilizar el código QR como un contenedor de datos para enviarlos encriptados ópticamente y, aunque llegue distorsionado, decodificarlo en el receptor aprovechando las virtudes de corrección de errores del QR. A partir de esta última idea, se podrían mezclar con dos más, a saber el expuesto en el artículo QR de Mayor Densidad y el «High capacity colored two dimensional codes» de Grillo et al, utilizando un QR de mayor densidad, expuesto en el primer artículo, extendiéndolo utilizando colores, de tal forma que, en teoría, se podría densificar aún más. Esto último, eventualmente, sería posible debido a que la transmisión del código se haría a través de un medio medianamente controlado como lo es la fibra óptica.
Las preguntas que surgen de esta idea son:
  • ¿Qué tasa de transferencia se lograría?
  • ¿Se podría reutilizar la infraestructura de fibra óptica actual con un mínimo de modificaciones?
¿Alguna idea?

QR de Mayor Densidad

En la seguidilla de las ideas que estoy dando a conocer, esta es otra de ellas. En los siguientes párrafos, les dejo a continuación la idea.

El código QR convencional trabaja de forma binaria, codificando sus datos a través de bits representados mediante formas cuadradas en blanco y negro. En «High capacity colored two dimensional codes» de Grillo et al, se discute una extensión del QR utilizando color. De esta forma, los autores densifican la cantidad de datos a codificar en la misma área del QR. Sin embargo, existe un problema al utilizar colores: la luz del ambiente. Si el problema es la luz, entonces ¡por qué no descartarla! Entonces, ¿cómo densificar la codificación de datos de un QR?
Pensando en esta última cuestión, la respuesta vino de sopetón a mi mente, y me dije «¡si el problema es la luz, entonces usemos la forma!».
En un curso de la universidad donde trabajo, este semestre trabajamos junto a un alumno en esta idea, y conseguimos algunos resultados iniciales. Elegimos estratégicamente formas tales que fueran de simple identificación por parte de algún software, consiguiendo un sistema de representación en base 5 -- representándose 5 formas diferentes. Uno de los resultados más destacables es el hecho de que un caracter ASCII se puede codificar con 4 bits en base 5, consiguiendo, en forma teórica, doblar la densidad de un QR convencional.
A continuación, dejo dos imágenes que codifican 1 Juan 4:8, una versión usando el código QR y la otra el código propuesto. Es necesario aclarar que la imagen del código propuesto codifica sólo los datos ASCII en bruto, sin información de control ni de corrección de error ni datos para corregir distorsiones.
El que no ama no conoce a Dios, porque Dios es amor.
1 Juan 4:8 versión código QR.

El que no ama no conoce a Dios, porque Dios es amor.
1 Juan 4:8 versión código propuesto.


Compresión de Datos Utilizando Poliominós

En la seguidilla de las ideas que estoy dando a conocer, esta es otra de ellas. En los siguientes párrafos, les dejo a continuación la idea.

Específicamente, pentominós, los que podrían ofrecer una buena alternativa para representar formas, basándose en la morfología matemática.
Esta idea nace como una alternativa a la compresión utilizando las matrices Sudoku, discutida en el artículo Compresión de Datos Utilizando Matrices Sudoku -- estos problemas me estaban causando demasiados cortocircuitos cerebrales; por eso consideré esta idea, como una nueva vía.
La idea principal es implementar un algoritmo cuya entrada sea un flujo de bits, y cuya salida sea otro con ciertas propiedades que a continuación explico.
Internamente, el algoritmo va tomando de a m bits en m bits, conformando matrices binarias de nxn que llamaremos matriz T. A partir de T, se busca «encajar» poliominós donde existan conjuntos de bits encendidos (i.e. unos), generando un conjunto de poliominós utilizados que llamaremos P. De esta manera, sólo se necesitará codificar no toda la matriz, sino sólo el conjunto P.

Es necesario mencionar que en T pueden surgir tres situaciones. La primera es que en T existan mayor cantidad de unos que de ceros. En este caso, la cantidad de poliominós necesarios para cubrir la superficie de T será grande. Una solución simple, es invertir los bits de T. La segunda situación, es que ocurra lo contrario a la primera. En este caso, no es necesario hacer algo. Finalmente, la tercera situación es que vengan tantos unos como ceros en igual cantidad.

Los problemas que surgen de esta propuesta son los siguientes:
  • Se necesita encontrar la combinación óptima de poliominós p en P sobre T, tal que ||P|| sea el mínimo en U, donde U es el universo de conjuntos de poliominós.
  • Se requiere encontrar una representación óptima para p.
¿Alguna idea?

Compresión de Datos Utilizando Matrices Sudoku

En la seguidilla de las ideas que estoy dando a conocer, esta es otra de ellas. En los siguientes párrafos, les dejo a continuación la idea.

El objetivo de esta idea es conseguir un algoritmo que dado un conjunto de bytes de entrada, genere otro flujo de salida con ciertas propiedades que explico a continuación.
El algoritmo, en una primera versión, internamente va tomando subconjuntos de 81 bytes, conformando matrices de 9x9 que llamaremos matriz T (el tamaño del tablero de Sudoku tradicional; otra versión podría extenderse a otros tamaños). Posteriormente, a partir de T se busca un conjunto de matrices Sudoku S tal que aplicada alguna función, como sumas y multiplicaciones (u otro operador), se pueda reconstruir T.
Dada la naturaleza del Sudoku, es posible dejar sólo algunos datos en las matrices s en S. De esta forma, la representación binaria de s pudiera reducirse considerablemente, y no tan sólo porque, eventualmente, serían menos números, sino porque los números van de 1 a 9, representables con 4 bits.

Algunos pequeños gigantes problemas son los siguientes:

  • La búsqueda del conjunto S óptimo es un problema de combinación, resultando en un algoritmo exponencial. Se podría tratar con metaheurísticas, pero no garantizaría completitud.
  • Suponiendo que se ha encontrado un S óptimo, al momento de descomprimir, cada s debe ser reconstruido. Los mejores algoritmos para resolver Sudokus aún son exponenciales.
¿Alguna idea?

domingo, 21 de julio de 2013

Virtua-Vida

Para entender este post, primero, por favor, leer "Descubrir al creador" de +Ramiro Rebolledo. De hecho, en op. cit. está el mismo comentario que a continuación dejo a ustedes.

Ya es conocido que existen varios intentos por replicar el funcionamiento neuronal de forma muy precisa; creo que así como vamos (y considerando ese impactante hallazgo del Blue Gene de IBM respecto de la generación espontánea de impulsos eléctricos espontáneos -- por supuesto, simulados), en una década más ya se encontrarán maneras primitivas de replicar la consciencia en las máquinas.

Con lo anterior ya conseguido por nuestra sociedad, ¿qué será lo primero en que pensarán las máquinas de forma autónoma?

El santo grial de la IA es crear un fiel reflejo de nosotros mismos en una máquina. Esta búsqueda implica llegar a conocernos profundamente a nosotros mismos; entender cómo emerge la inteligencia y la consciencia a partir de un sistema tan maravillosa y prolijamente diseñado como lo es el sistema nervioso. ¿Estas criaturas de seguro harían los mismo si se les deja ser en su mundo virtual? ¿En algún punto de su historia se agruparán en tribus, luego en villas, luego en reinos? ¿Surgirán grandes civilizaciones que aporten conocimiento a su civilización virtual? ¿Se crearían ciencias que tengan equivalencia a las nuestras, tales como la matemática, la física, la química, las ciencias de la computación? Con esto último, ¿sentirán la necesidad de entenderse a ellos mismos y comenzarán a buscar la forma de volver a replicarse en criaturas artificiales -- desde su punto de vista, claro está -- y observar cómo su creación evoluciona tal y cual como nosotros, eventualmente, lo haríamos?

Consideremos los siguientes supuestos: Supongamos que en algún momento de nuestra historia se consigue crear un simulador H que posee la capacidad de simular de forma exacta a un ser humano. Supongamos que existe otro simulador R que consigue simular de forma exacta la realidad; simula la naturaleza, la vida microbiana, la vida vegetal, la vida animal, la atmósfera y el sistema solar y el firmamento. Supongamos que se lanza la ejecución de esta simulación de R con un hombre H1 y una mujer H2 en un entorno donde R está en completo equilibrio, y H1 y H2 no tienen fallas genéticas ni desequilibrios neuronales. Dado que el simulador H respeta todas las leyes biológicas, físicas, químicas y genéticas que nos rigen, y si no hubiese intervención de parte de nosotros, los creadores, en la simulación ni de R ni de H, ¿qué historia nos contaría estas simulaciones? ¿Habría una Babilonia, un Israel, una Roma, una India, una Grecia, una Persia, un Egipto, un pueblo Maya o Inca en su historia? Ahora, supongamos que sólo en algunas ocasiones intervenimos, y supongamos que sí surgen civilizaciones equivalentes a las antes mencionadas. ¿Qué ocurriría, por ejemplo, si la civilización equivalente a la griega nunca fuese destruida, y que todo su conocimiento se preservara y se acrecentara, incluyendo el libre ejercicio de su ideal democrático, sin la destrucción y perpetua pérdida que implicaron las guerras con la "virtua-Roma"? ¿Qué ocurriría si en la simulación surgiera un equivalente a la Biblioteca de Alejandría pero que jamás fuese destruida? Personalmente, me inquieta el conocer a qué llegarían esas civilizaciones simuladas en el año 2000 d.C. de nuestra realidad; qué avances tendrían, qué descubrimientos habrían hecho. Además, ¿en qué se encontrarían las civilizaciones de nuestro continente si jamás fuesen perturbados por otras de otros continentes? ¿en qué estarían y cuánto avance tendrían? ¿qué tecnologías habrían surgido de sus mentes?. Finalmente, ¿qué religiones, filosofías e ideologías sociales existirían?

Hablando hipotéticamente, este tipo de tecnologías de simulación se podrían aprovechar para crear proyecciones alternativas de la ciencia y el arte para nuestra realidad; dado que los tiempos virtuales no necesariamente deben ser equivalentes a los tiempos reales, la simulación se podría acelerar para conocer y estudiar tecnologías futuras (en la simulación) que aún no existen en nuestra realidad, y así traer desde el "virtua-futuro" beneficios para nuestra sociedad...o maleficios.

Ahora, dado que H y R son réplicas, se podría levantar fuertes discusiones polémicas sobre si de H emerge consciencia, y decretar que H es en sí vida, aunque virtual, pero vida al fin y al cabo, y que JUGAR (en el sentido literal de la palabra) con ellos es absolutamente inmoral y totalmente anti-ético. Pero, si, eventualmente, se llegara a esa conclusión y las instancias jurídicas que decreten anti-ética las simulaciones decreten terminar con ellas, ¿sería ético apagar todas las simulaciones que los centros de investigación de "virtua-vida" para finalizar esta posible inmoralidad, poniendo fin a todas las simulaciones H que fueron decretadas vida?

jueves, 2 de agosto de 2012

Pensamiento sobre las Ciencias de la Computación

Una breve cita de José Galaviz Casas sobre las Ciencias de la Computación:
Las matemáticas y la física tienen siglos de existencia, son grandes montañas de conocimiento que la humanidad ha construido piedra por piedra para poder ver más lejos en el horizonte y sin embargo nos siguen sorprendiendo todos los días, seguimos acarreando piedras; lo mejor de la ciencia de la computación está aun por venir…Probablemente las futuras generaciones sonrían al pensarnos ingenuos por no percatarnos de una gran roca que estaba allí y nunca vimos, como sonreímos cuando nos enteramos de que los griegos pasaron de largo junto al álgebra sin verla.
Tomado desde www.revista.unam.mx, publicado el 10 de septiembre de 2004 Vol. 5, No. 7 ISSN: 1607 - 6079.