lunes, 25 de abril de 2011

Capítulo I

1.    Lógica matemática.

“… con la ayuda del simbolismo podemos hacer,
casi mecánicamente, transiciones en el razonamiento
 por el medio visual, las que, de otro modo,
pondrían en juego las más elevadas facultades cerebrales”.
Alfred North Whitehead.


Desarrollo de capacidades del alumno:

§  Que el alumno sea capaz de distinguir la lógica proposicional y la lógica de predicados y ubicarlas con respecto a las áreas de la computación.
§  A partir de un argumento en lenguaje natural del planteamiento de un problema, el alumno será capaz de identificar, aplicar los enunciados y las operaciones lógicas para su resolución computacional.
§  El alumno será capaz de conocer la importancia de la lógica matemática dentro del campo profesional de la Ingeniería en Sistemas Computacionales.
§  Partiendo del concepto de validez de un argumento, el alumno será capaz de aplicarlo en el planteamiento formal de problemas computacionales.
§  Partiendo de los conceptos y operaciones de la lógica proposicional, el alumno será capaz de comprender su importancia en el diseño de circuitos digitales.
§  Partiendo de los conceptos y operaciones de la lógica de predicados, el alumno será capaz de comprender su importancia en la formalización matemática de los problemas..
§  Partiendo del concepto de tablas de verdad, el alumno será capaz de identificar y demostrar las reglas de inferencia de la lógica simbólica.
§  Partiendo del conocimiento de las reglas de inferencia, el alumno será capaz de demostrar la validez de un argumento.
§  El alumno será capaz de entender la relación de la lógica matemática con los sistemas digitales, de control automático de procesos y la teoría de algoritmos.
§  El alumno conocerá el lenguaje Visual Prolog y será capaz de plantear programas en dicho lenguaje para representar proposiciones lógicas.
§  Que el alumno a partir de las proposiciones lógico matemáticas sea capaz de interpretarlas como instrucciones de un lenguaje de programación.

Preguntas básicas.

Quién se inicia en el estudio de las matemáticas discretas y se topa con el tema de lógica matemática debe hacerse cuatro preguntas básicas. ¿De qué trata?, ¿Para qué sirve? ¿Cómo se relaciona con la carrera de Ingeniería en Sistemas Computacionales?  ¿Y por qué es tan apasionante?

¿De qué trata la lógica matemática?

Antes que nada no se deben confundir dos áreas de conocimiento algo parecidas: La lógica y la lógica matemática. La lógica matemática tiene un objeto de estudio: el razonamiento matemático y el objeto de estudio de la lógica es el razonamiento en general. Aclaremos un poco este asunto: La lógica estudia los métodos y principios que se usan para distinguir el razonamiento  bueno (correcto) del malo (incorrecto) en todas las ciencias y actividades del ser humano.  En general la gente de ciencia se fórmula problemas, como ¿Cómo aprenden los ratones albinos a solucionar problemas de laberintos? ¿Gradualmente o por pequeños saltos? A continuación el científico fórmula hipótesis, luego las confirma en el laboratorio y no se limita a plantear generalizaciones sobre el aprendizaje específico de los ratones sino leyes y teorías sobre el aprendizaje en general. Pero las reglas y métodos científicos están muy lejos de ser falibles y de no necesitar perfeccionamiento. El objetivo de la lógica es analizar la estructura de dichos razonamientos y convalidar las leyes o teorías de la ciencia  logrando de esta manera conseguirse una verdad formal más completa. Dicho de manera sencilla, las ciencias como la física, la biología o la psicología se les denomina ciencias factuales porque estudian hechos que ocurren en el mundo y por lo tanto tienen que apelar a la experiencia para justificar sus fórmulas, mientras que la lógica y la matemática son conceptuales. La lógica es un lenguaje formal construido en base a conceptos, los enunciados en ese lenguaje son símbolos y fórmulas que pueden evaluarse por el mero análisis racional. Platón (Grecia 428 – 347 a C.) decía  “la lógica y las matemáticas son ideas con existencia propia y habitan un mundo ideal que sólo es accesible por la vía del intelecto”.  Por ejemplo, la frase “Todo es mortal” paso a paso se puede formular en lógica como sigue:

Dada cualquier cosa individual, ella es mortal.

Ahora utilizando la letra x como variable, el razonamiento resultante es:

 Dada cualquier x, x es mortal.

Y usando Mx, para simbolizar que “algo es mortal”, obtenernos:

Dada cualquier x, Mx.

Y finalmente, la frase “Dada cualquier x” suele simbolizarse como (x), el cual se denomina cuantificador universal. Como veremos más adelante, obtenemos la fórmula lógica simbolizada como:

(x)Mx

Este tipo de fórmulas se denominan fórmulas analíticas porque pueden estudiarse solamente usando el razonamiento, sin necesidad de recurrir a experimentos como los que lleva a cabo la biología cuando estudia la naturaleza.

La lógica matemática es una rama peculiar de las matemáticas que trata de la forma de las ideas o fórmulas matemáticas que pueden comprobarse por medio del análisis racional. Por ejemplo “sean x, y, z números si x=y, entonces x+z = y+z” es una fórmula, cuya verdad no depende del algún tipo de objeto real: es puramente formal y, consiguientemente, universal, es decir, aplicable siempre que se trate de conjuntos como plantas, animales o números. El interés más importante de la lógica matemática son los enunciados que resultan verdaderos (o falsos) en virtud de su forma lógica. Una teoría matemática considera objetos abstractos y sus operaciones, y define leyes que relacionan a éstos objetos entre sí: son los axiomas de la teoría, tradicionalmente de estos últimos se deducen nuevas proposiciones: los teoremas y algunas veces nuevos objetos.  Por ejemplo, en la teoría de la información de C. E. Shannon (USA1916 - 2001) el objeto abstracto es el bit (binary digit), las operaciones son formar cadenas de bits, copiar, mover bits, etcétera. El objetivo de la lógica matemática es cuestionar con el mayor rigor tales teorías matemáticas, sus conceptos y reglas de deducción. En general, nuestro sentir es que las matemáticas son infalibles; sin embargo a lo largo de la historia se han encontrado muchos resultados matemáticos paradójicos, es decir, proposiciones matemáticas que son verdaderas, así como la negación de esa misma proposición también es verdadera. Muchos lógicos y matemáticos han trabajado sobre estos extraños resultados buscando construir los fundamentos lógicos de las matemáticas. Una anécdota muy interesante a este respecto es la siguiente: En 1903, Gottlob Frege  tenía listo su segundo volumen de su obra “La leyes fundamentales de la aritmética” para enviarlo a la imprenta, cuando recibió la célebre carta de Bertrand Russell en la que le notificaba la paradoja sobre conjuntos presente en dicha obra. Frege, inmediatamente reconoció el duro golpe a sus postulados incorrectos sobre la aritmética. Con gran honradez, Frege escribió “Con nada más indeseable puede enfrentarse un científico que con deshacerse de sus fundamentos después de terminar su obra. Me ha puesto en esa situación una carta de Mr. Bertrand Russell cuando estaba a punto de mandar mi obra a la imprenta”.

¿Para qué sirve la lógica matemática?

Una pregunta que se hace todo alumno que inicia este estudio es ¿Para qué me va a servir la lógica matemática? Un ingeniero en sistemas computacionales sabe por experiencia que las aplicaciones computacionales requieren un lenguaje preciso y correcto para expresar las líneas de acción que una computadora debe seguir para resolver un problema, sabe también que un razonamiento matemático incorrecto o inválido en estas circunstancias sería  desastroso, porque una computadora sigue al píe de la letra de manera obediente las reglas que le fueron impuestas y que de alguna manera se supone que son reglas legales. Si las reglas que establecemos no son correctas, entonces la computadora que las siga no logrará hacer lo que deseamos que haga, sino otra cosa inesperada. Es decir, las reglas o instrucciones que siga la computadora deben conducirla a resolver un problema o a informarnos si es el caso que el problema no tiene solución; pero de ninguna manera debe llegar a resultados inesperados. La lógica nos ayuda para que podamos plantear correctamente un problema; para que, siguiendo un proceso de razonamiento, lleguemos a una solución. En este sentido, la lógica nos proporciona dos métodos; uno mediante reglas de inferencia para distinguir cuales razonamientos son válidamente correctos y cuáles no; y otro interpretativo en los que, apoyándose en variables y tablas de verdad, nos proporciona las reglas para interpretar las palabras y signos como “y” (AND), “o” (OR), “no” (NOT), “si…entonces …” (IF…THEN), “para todo x ("x)”, “existe x ($x)”, etcétera.

Suponga que a un ingeniero en sistemas computacionales se le plantea un problema computacional. Lo primero que se pregunta es ¿tiene solución el problema? Lo cual equivale a investigar si, a partir del planteamiento inicial, podemos seguir con una serie de razonamientos encadenados y adecuados, y afirmar la verdad de la solución del problema. Y una vez que logremos encontrar la solución entonces, si codificamos la solución como una serie de instrucciones y se las proporcionamos a una persona ajena al problema o a un autómata, y si éstos siguen los pasos lógicos correctos, podrán ir desde el extremo del planteamiento del problema a  la solución. Es decir, el lenguaje de la lógica matemática permite establecer las reglas para elaborar tablas de conducta concretas para ser ejecutadas por una computadora y resolver problemas. Incluso se podría ir un poco más allá y lograr que el autómata en cuestión aprenda, es decir, que las computadoras sean capaces de mostrar un comportamiento inteligente. Los logros más importantes en este aspecto se han obtenido en el campo de la inteligencia artificial, más conocida como IA (Artificial Intelligence en inglés), a través de los campos de las redes neuronales, los sistemas expertos, la robótica, la minería de datos, etcétera.


¿Cómo se relaciona la lógica matemática con la carrera de Ingeniería en Sistemas Computacionales? 

La lógica matemática tiene muchos puntos de contacto con la ingeniería en sistemas computacionales. Veamos algunos:

La lógica matemática como lenguaje formal y simbólico

El lenguaje español nos ofrece para comunicarnos una estructura gramatical,  ordenando las palabras en categorías tales como sustantivos, adjetivos, verbos, y demás. Esta estructura de ninguna manera carece de valor; pero es demasiado imprecisa y ambigua para nuestros propósitos de conceptualizar una idea de la ciencia computacional de manera precisa. Por ejemplo, la expresión “nueve al cubo más cuarenta y ocho por 10 al cubo más uno” puede representar el número 777, 777 pero también al 777, 001 e, incluso, al 48,730 dependiendo de cómo lo interpretemos. Además de este tipo de ambigüedades, tampoco está claro qué clase de expresiones habladas sirven como descripciones de un número. Es decir, existen dos dificultades; por un lado tenemos el aspecto engañoso del lenguaje, y por el otro el problema de decidir si la idea expresada en ese lenguaje es válida o inválida.

Nuestro propósito es que el alumno de ingeniería en sistemas computacionales conozca y use la terminología y la notación del lenguaje de la lógica matemática en la resolución de problemas computacionales y evite las trampas engañosas ligadas al lenguaje común y corriente. Es decir, que traduzca de manera correcta y precisa las expresiones ambiguas del español. No se pretende que se pueda traducir todo tipo de expresiones del español; sino solamente aquellas que son útiles para el planeamiento de problemas computacionales.

En este caso la lógica matemática le sirve al alumno para que adquiera consciencia de la importancia de conocer y usar  el lenguaje especializado del área computacional para expresar y comunicar los conceptos técnicos de dicha área y para que aprenda a plantear problemas sin ambigüedades con el propósito establecer soluciones tecnológicas correctas.

La lógica matemática como lenguaje de modelado

La lógica matemática puede usarse para conceptualizar modelos del mundo. Esto se debe a que la lógica matemática puede representar relaciones concisas y precisas para manipulaciones de ideas acerca de objetos modelados. La idea de modelo es muy familiar y rápidamente se nos vienen a la memoria modelos famosos como el modelo atómico propuesto por Niels Bohr (Copenhague, 1885 - 1962) en 1913 para explicar, mediante ecuaciones, la estabilidad del átomo de hidrogeno; el modelo helicoidal de la estructura del ADN (ácido desoxirribonucleico) ideado  en 1953 por James Watson (Chicago, 6 de abril de 1928) y Francis Crick (Weston Favell, 1916-2004) para explicar la replicación de genes y el modelo heliocéntrico del sistema solar construido por Nicolás Copérnico (1473-1543) para explicar el movimiento elíptico de los planetas. Existen dos aspectos en un modelo. El aspecto conceptual (mental o escrito) que está conformado por ecuaciones matemáticas y el modelo material o prototipo. En ambos modelos juega un papel importante la lógica matemática. Los modelos no sólo nos permiten entender sino también calcular, es decir predecir -y esto es lo importante de ellos- y anticiparnos al comportamiento de fenómenos naturales y sociales. Un modelo es producto de un esfuerzo mental y racional en busca de un entendimiento, pero que cuando encuentra una solución, se pregunta. ¿Qué problema he resuelto? Es decir, se pregunta ¿Qué otros problemas se pueden resolver sobre una base similar?

Gran parte de la actividad profesional de un  Ingeniero en Sistemas Computacionales es la modelación de sistemas mediante el uso de las computadoras. Por ejemplo, los ambientes virtuales son modelos de ambientes reales; la inteligencia artificial es un modelo orientado a la resolución inteligente de problemas; las redes neuronales son modelos de los sistemas nerviosos biológicos; etcétera. El propósito principal de un modelo es que sirva para hacer predicciones útiles. La lógica matemática, en éste caso, es un lenguaje técnico que sirve para construir modelos computacionales y para validarlos, es decir, para hacer los ajustes necesarios en la eventualidad de que las predicciones no sean acertadas. En la figura 1.1, se muestran las imágenes de telarañas generadas por computadora.




Figura 1.1 Las imágenes muestran la evolución durante la noche de una telaraña, reproducida cada cinco generaciones. Generadas mediante el programa NetSpinner, desarrollado por Peter Fuchs y Thiemo Krink.

¿Por qué es tan apasionante la lógica matemática?

Parece un disparate decirle a un joven estudiante de Ingeniería en Sistemas Computacionales que la lógica matemática es apasionante. Quizá para él sea apasionante el futbol, la música o los videojuegos ¿Pero la lógica matemática? ¿Cómo es eso?  La lógica matemática es apasionante porque es apasionante el conocimiento científico. Es apasionante porque al ser humano le gusta pensar y es feliz resolviendo problemas con el razonamiento. El ajedrez apasiona al jugador porque baraja una serie de sutiles estrategias mentales frente a su oponente. La lógica matemática es parte de un método de pensar la ciencia y somos afortunados de contar con la tecnología de la computación como ayuda. Sería tedioso repetir las grandes contribuciones de la Matemática a los resultados tecnológicos apreciados por las personas sin entrenamiento matemático o intereses computacionales. Sin embargo, no es verdad que la obtención de los más avanzados artefactos tecnológicos sea el único o, incluso, el principal motivo por el cual se estudia matemáticas. El que estudia matemática para la computación no es un infalible creador de milagros o bienes utilitarios. Es ante todo un pensador. Es parte de una comunidad de pensadores donde cada uno es un pensador comprometido con las ideas.

No hay comentarios:

Publicar un comentario