miércoles, 12 de diciembre de 2012

Algoritmos

Lo primero que se me viene a la mente al escuchar algoritmo es cualquier objeto, un algo, con ritmo, más específicamente un par de zapatos bailando claqué.

Después recuerdo algunos fragmentos de códigos de programación, entonces se llega al concepto "un conjunto de pasos y reglas que se deben cumplir en orden para logra cumplir el objetivo de una actividad". (Vamos que para bailar también se sigue un conjunto de pasos y reglas)
Lo que hace que me quede con el concepto de pasos ordenados y no con la imagen de los zapatos (De nuevo, zapatos y pasos también tienen relación)
El distinguir entre estos conceptos se llama inteligencia, pues se ha realizado un proceso de datos almacenados, memoria, que junto con los datos ingresados se llega a obtener datos de salida , los cuales en parte vuelven a la memoria y otros simplemente salen ese instante y no son almacenados.

Algunos Algoritmos

Este mismo proceso ha seguido un algoritmo:

-Entrada de datos.
-Comparación con datos en memoria.
-Generación de nuevos datos.
-Comparación con datos generados.
-Decisión.
-Salida.

Entonces se ve que los algoritmos forman parte de lo que llamamos inteligencia. Pero se pueden realizar proceso repetitivos "sin pensar" que igual cumplen pasos ordenados y cumplen un objetivo. Por ejemplo pestañear, respirar, cambiar el canal de la televisión "zapping",  etc. Entonces no basta que un proceso lleve de por si un algoritmo sino que en ese algoritmo existan decisiones. El tomar decisiones nos hace diferentes de una computadora llamadas "máquinas inteligentes" pero en realidad solo ejecutan algoritmos diseñados anteriormente por personas. 

Y claro que una computadora puede tomar decisiones (El comando IF -THEN, ELSE (Si-pasa algo-Entonces-sucede esto-, Caso contrario-sucede esto otro-)existe en todo lenguaje de programación) pero las toma sobre datos de entrada o datos procesados en un tiempo establecido, es decir si el proceso dura más de lo establecido el programa deja de correr y la decisión no se puede tomar, y los pasos siguientes se pueden cambiar de  acuerdo a los datos de entrada pero ya están allí de cierta forma fijados. 

Nosotros somos hasta cierto punto predecibles pero hay un gran porcentaje de acciones humanas que aún siendo bien pensadas no están dentro de lo predecible y peor aún si son acciones efectuadas por un grupo de personas el resultado se vuelve más impredecible todavía. Ejemplo: Un partido de fútbol.

Y que hay por ejemplo de videojuegos como  FIFA y PES, acaso estos juegos de computadora no logran simular el trabajo en equipo, acaso estos programas no recrean todas las incidencias posibles en un partido de fútbol, acaso no forman jugadores distintos mediante parámetros dados que mejoran con práctica y entrenamiento tal como sucede en la vida real.
La respuesta es si, logran todo eso mediante Inteligencia Artificial, que no son más que algoritmos complejos y otros no tanto pero que sirven para resolver problemas complejos. Es más parece que nada estuviera realmente establecido, pero lo está y te vas dando cuenta a medida que más tiempo dedicas a estos juegos, pero lo que hace que mucha gente (hay hasta torneos profesionales) los siga jugando es justamente lo que esa gente aporta, la libertad de jugar como ellos mejor saben, lo que vuelve a cada partido distinto del otro a pesar de ser en el interior el mismo código de computadora. Se puede lograr más realismo, más diferenciación entre jugadores pero eso requiere mucha más memoria en la que entren más datos o bien algoritmos más complejos, que igual terminan requiriendo más memoria.

Entonces pareciera que con más memoria una computadora podría ser más inteligente, de cierta manera así es pero si el algoritmo no es bueno, no toma decisiones adecuadamente y entre múltiples opciones,  la mayor memoria no sirve de mucho.      
Inteligencia Artificial. Por el momento no supera a la de Homero.
Mediante algoritmos se puede describir y efectuar cualquier actividad, incluso la toma de decisiones si existen múltiples opciones, y la elección de cada opción lleva a caminos muy diferentes.
El uso de algoritmos en toma de decisiones o clasificación de objetos es aplicable, pero el seguimiento y comprobación de funcionamiento se vuelve tan complejo que no se puede determinar si realmente es válido para dicha actividad.

El decidir entre varias opciones para algunos es la libertad, pero esta también implica la responsabilidad sobre aquella decisión. Si algún día logramos que una máquina decida por nosotros también debemos darle responsabilidad. La libertad es también inseparable de inteligencia por definición ya que ambas son decidir entre opciones, y el escoger la opción correcta sin que nada más que nuestro razonamiento nos obligue a elegirla y conscientes que somos responsables de aquella elección nos hace inteligentemente libres.    

Nota: La palabra Algoritmo viene del nombre del matemático persa Al-Juarismi, padre del álgebra  uno de los primeros en buscar soluciones generales a problemas de distintas áreas de la vida cotidiana que requerían de hacer cuentas matemáticas
En su libro Compendio de cálculo por complexión y comparación trata sobre métodos generales de solución de ecuaciones con x y x al cuadrado siguiendo pasos ordenados.

Esta entrad iba a tratar sobre álgebra, pero los algoritmos son mucho más aplicables, no requieren para la explicación de su concepto de símbolos matemáticos y al igual que el álgebra trata sobre abstracciones que a su vez se basan sobre hechos mismos.
Al sumar x+y según el álgebra no es posible reducir, se les supone de distintos tipos, x: manzanas, y: duraznos o x: perros y y: libros. Según los algoritmos x, y son la mismas variables que en el álgebra pero pueden pertenecer al mismo tipo, es decir ambos son números y si se pueden sumar, pues ya no son desconocidos. Si resultan no ser del mismo tipo no se pueden sumar pero quedan juntos, tal como uno se imagina al ver expresado un más(+) entre dos objetos.