Dentro de la programación podríamos decir que tenemos dos grandes ramas, la computación clásica y la computación flexible.

La primera clase es la de toda la vida, aquella de que tenemos un problema y hacemos algo que resuelve ese problema de una manera más o menos óptima. Aquí es dónde podríamos englobar, por ejemplo, los algoritmos de ordenamiento.

Por otro lado tenemos la computación flexible, que redundantemente se podría decir que es más flexible. ¿El motivo? Simple realmente. Resulta que las soluciones de la clásica son fijas y, aunque pueden llegar a ser los más óptimos, pecan de que solo sirven para la solución con que ha sido creado.

La computación flexible no te garantiza que tengas la mejor solución, pero a cambio te da la posibilidad de utilizar una serie de técnicas que son aplicables a muchos más problemas sin tener que modificar el sistema, o con cambios mínimos.

Dentro de este tipo podemos encontrar tres grandes familias (si es que no me dejo ninguna, claro):

  • Lógica difusa. El ejemplo que siempre utilizo para hablar de ésto es el pensar en que a partir de los 30 años se considera una persona vieja y, si tienes menos, se considera joven. La lógica normal te daría que hasta los 29 años y 365 días eres joven, y al día siguiente te vuelves viejo. La lógica difusa lo que proporciona son modificadores como más o menos viejo, más o menos joven. Aunque, por supuesto, todo es mucho más complicado que ésto.
  • Redes neuronales. Es el intento de imitar un sistema nervioso, aunque personalmente he de decir que la manera habitual de hacerlo es bastante burda. Me valdré del ejemplo que aparece en el libro “Sobre la inteligencia” (libro buenísimo del creador del sistema Graffitti de la Palm): ¿podríamos decir que hemos hecho un ordenador si cogemos un montón de microchips y los unimos? Pues no, no es igual. Básicamente aquí pasa algo parecido, los sistemas se basan en la imitación de las neuronas y sus conexiones, creando una serie de redes que almacenan su conocimiento en los pesos de cada una de sus conexiones, aprendiendo en una etapa previa a su utilización y, posteriormente, reconociendo patrones. Su uso, por contra de lo que pueda parecer, es muy útil, dado que es relativamente sencillo crearlas y utilizarlas para un conjunto acotado de patrones a reconocer.
  • Computación evolutiva. Se basa en la teoría de la evolución, en que solo las mejores soluciones perduraran con el tiempo. Básicamente se suelen crean una serie de “cromosomas”, aparearlos de alguna manera para crear un hijo, seleccionar de alguna manera a los mejores, mutarlos, y volver a empezar durante muchas generaciones.

Estos tres enfoques también permiten utilizarse híbridamente, cogiendo lo mejor de cada uno de ellos, todo depende de que se quiera hacer ;)

Y bueno, ésto es una aproximación a la computación flexible a grandes rasgos. Por si no se nota, en lo que ando en mi DEA, diploma de estudios avanzados, trata de ésto, así que volveré profundizando un poco más… ¡¡A ver si alguien se lo puede leer sin bostezar!!

  1. Ejemplo de computación flexible:
    “cambio de planificación: esto tiene que estar para mañana” XDDD

    Lo más curioso es que todo eso que detallas es equivalente en expresividad a la máquina de Turing… QUEREMOS HIPERCOMPUTACIÓN YAAAAA!!!!!

  2. 3. La verdad es que, como tú, decepciona bastante lo que te enseñan… Suerte que luego puedes imaginarte cosas más guays… que no se dan en clase ¬¬

    4. Juas… si es que somos flexibles como las gominolas ;)
    Y me apunto a tu petición… ¡¡¡Hipercomputación yaaaa!!!

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>