lunes, 25 de abril de 2011

Matemáticas Discretas



El propósito del blog es promocionar la venta del libro Matemáticas Discretas (Con algoritmos y casos prácticos) y al mismo tiempo promover la cultura de las matemáticas discretas publicando artículos, algoritmos y aplicaciones computacionales en las que se aplique la teoría de las matemáticas discretas.

El libro es un instrumento y una guía que se ajusta al contenido de los programas de estudio de matemáticas discretas que se imparten en las carreras orientadas a la computación, la informática e ingeniería electrónica.

En este blog se pueden consultar los aspectos más relevantes del contenido del libro como la forma en que fue redactado, los objetivos temáticos, la tabla de contenido y la introducción de cada uno de los temas desarrollados en el texto.

Si alguien está interesado en comprarlo, debe comunicarse por email con el autor, y estaré muy complacido en atenderlo así como responder a sus preguntas.

Costo del libro $500 pesos mexicanos más gastos de envío.



Prefacio

Prefacio

Los temas que se presentan en este libro son: lógica matemática, relaciones, teoría de grafos y sistemas numéricos.  Cuatro temas con los cuales se pretende dotar al alumno, que recién inicia la carrera de Ingeniería en Sistemas Computacionales, de las bases matemáticas de las teorías fundamentales de la computación. Cada tema se desarrolla tratando de cumplir con los requisitos de la materia “Matemáticas Discretas” incluyendo ejemplos y ejercicios de reforzamiento con soluciones. En especial se desea que con este libro los estudiantes de primer semestre entiendan la importancia de los temas de matemática discretas en el planteamiento y solución de los problemas computacionales y, al mismo tiempo, mantener en ellos el interés de una vocación computacional que a estas alturas aún está en proceso de consolidación.

Es importante aclarar que los temas de este libro son el fundamento de muchas áreas de la computación como: bases de datos, computación grafica, diseño digital, redes neuronales, sistemas expertos, robótica, etcétera.  Pero estas áreas de aplicación se encuentran dosificadas como materias a lo largo del plan de estudio de la carrera de ingeniería en sistemas computacionales. En este libro se estudiarán las bases matemáticas de todos estos temas y se ofrecerán algunos ejemplos sencillos para mostrar parte del panorama computacional general, sin embargo los productos terminales tendrán que esperar porque se estudiarán en las materias especializadas más adelante y para las cuales, como prerrequisito, el alumno ya debe dominar los fundamentos matemáticos que aquí se estudiarán.

Características significativas.

Un buen ingeniero en sistemas computacionales necesita bases solidas en matemáticas discretas junto con los principios y técnicas para resolver y plantear problemas de automatización. Este texto trata de cubrir ambos aspectos. A continuación se describen brevemente las principales características de los temas desarrollados en este libro, las cuales tienen el propósito de ayudar al estudiante y al profesor a sacar el mejor provecho de las matemáticas discretas.

1.    Lógica matemática. La idea central del tema es que los alumnos de primer semestre conozcan la importancia de la metodología de la lógica simbólica para entender y plantear soluciones a problemas relacionados con el uso de computadoras.  En esta unidad se van a estudiar dos de las áreas más importantes de la lógica matemática: El cálculo proposicional y el cálculo de predicados. El cálculo proposicional tiene su fundamento en el álgebra booleana, que ha sido la clave para el desarrollo tecnológico de la electrónica, la computación, la información y las comunicaciones. El cálculo de predicados tiene su fundamento en los trabajos de Gottlob Frege, gracias a los cuales se logró aislar de la vaguedad de los lenguajes naturales, como el español, los conceptos lógicos necesarios para la descripción de razonamientos; ello mediante la utilización de proposiciones, de conectivos lógicos y del uso de variables que actualmente han sido la clave para el desarrollo de disciplinas como: representación del conocimiento, sistemas expertos, inteligencia artificial, procesos de lenguaje natural, modelos de aprendizaje, etcétera.

En este tema se presenta de manera introductoria el cálculo proposicional y el cálculo de predicados, con algunos ejemplos sencillos se muestra la importancia de la lógica matemática en la ingeniería en sistemas computacionales como la inteligencia artificial y la electrónica. 

2.    Relaciones. Ésta es un área de conocimiento formal dentro de las matemáticas para formular vínculos o interacciones de todo tipo, tanto las que se presentan en la naturaleza como las que son producto de las actividades humanas. En este libro vamos a formalizar los conceptos matemáticos sobre relaciones y estudiaremos una serie métodos de solución de problemas sobre las aplicaciones de las relaciones.

La formalización matemática de relaciones sirve para conceptualizar y fundamentar problemas de diversas áreas del conocimiento de las ciencias, en particular en la ingeniería en sistemas computacionales es el fundamento matemático de las bases de datos, la teoría de autómatas, diseño digital, computación virtual, modelos de transporte, redes de computadoras, etcétera.

En este tema se presenta de manera introductoria la teoría de relaciones, su representación como un sistema de información y en particular su aplicación a las bases de datos relacionales.

3.    Teoría de grafos. La teoría de grafos es un lenguaje y una notación matemática que se apoya en imágenes gráficas para modelar y describir proyectos de cómputo. La teoría de grafos es un conjunto de modelos formales y gráficos en los que se incluyen los árboles, las redes de transporte, los grafos bipartitos, las redes de Petri, etcétera, orientados al diseño de algoritmos eficientes para una gran diversidad de problemas de rutas o trayectorias de búsqueda y procesamiento de información. La teoría de grafos, nace con un problema conocido como los puentes de Königsberg, ideados por Euler. Posteriormente, la teoría de grafos se fue asociando a otros problemas famosos como “el problema de los cuatro colores” y “el problema del agente viajero”. A partir de estos problemas, ahora contamos con una teoría de grafos robusta que ha alcanzado una gran madurez para plantear y resolver problemas de los sistemas computacionales. En este tema estudiaremos de manera introductoria los aspectos formales más importantes de la teoría de grafos, la forma de representarlos como una estructura de información computacional y la solución a los problemas clásicos de esta teoría.

4.    Sistemas numéricos.  Toda la información que se maneja en los dispositivos electrónicos es la aritmética de los números binarios y toda la electrónica digital telefónica, automotriz, computo, televisión, satelital, redes de comunicación, etcétera, se construye para que opere con el sistema numérico binario. En este tema se estudia de manera introductoria la forma en que se vincula el software con el hardware a través de los sistemas numéricos, se estudian los aspectos fundamentales de la tecnología digital, se estudian los sistemas numéricos que se usan para codificar la información en los medios electrónicos y se estudia la lógica booleana que se usa para la construcción de los dispositivos electrónicos.


Casos prácticos.

El título del libro hace énfasis en los algoritmos y casos prácticos que acompañan cada uno de los temas que se presentan en el texto. Uno de los aspectos interesantes de las teorías de las matemáticas discretas son las aplicaciones concretas. En cada tema se incluyen ejemplos para ilustrar las ideas teóricas, sin embargo también se incluyen situaciones particulares como algoritmos y casos prácticos:

El capítulo 1 incluye: La construcción de una base de datos de conocimiento con Visual Prolog, el algoritmo de las diez monedas y ocho prácticas de tablas de verdad con la hoja de cálculo MS Excel.

El capítulo 2 incluye: La solución al problema del laberinto con la plataforma Matlab, el algoritmo de Warshall y algunas aplicaciones de la función modulo y la aplicación de la teoría de relaciones a las bases de datos relacionales.

El capítulo 3 incluye varios algoritmos clásicos de trayectorias y recorridos de Euler, Hamilton, Dijkstra, etcétera redactados en el lenguaje de la plataforma Matlab y casos prácticos de la teoría de árboles a los métodos de búsqueda de información. También se incluyen casos prácticos de coloración de grafos, de los matrimonios de Hall y de redes de Petri.

El capítulo 4 incluye el algoritmo de Booth para la multiplicación y división binaria y varios casos prácticos de circuitos combinatorios empleando las plataformas Livewire y Multisim de Electronic Workbench

 

Tabla de contenido

Contenido
1.    Lógica matemática.  9
1.1.  Introducción al cálculo de proposiciones.  6
Ejercicios 1.1.  21
1.2.  Concepto de argumento y tipos de proposiciones lógicas.  21
Ejercicios 1.2.  30
1.3.  Conexiones lógicas y jerarquias. 32
1.3.1.    Conjunción. 32
1.3.2.    Disyunción. 38
1.3.3.    Condicional. 44
1.3.4.    Bicondicional. 48
Ejercicios 1.3.  66
1.4.  Cálculo de predicados.  68
1.4.1.    Definición. 69
1.4.2.    Variables y particularizaciones.  70
1.4.3.    Cuatificadores y restricciones. 72
Ejercicios 1.4.  84
1.5.  Algebra declarativa. 85
Ejercicios 1.5.  93
1.6.  Inducción matemática. 94
Ejercicios 1.6.  98
1.7.  Reglas de inferencia. 99
1.8.  Evaluación de expresiones.  103
Ejercicios 1.8.  107
1.9.  Tautologías y contradicciones. 107
1.9.1.    Equivalencias lógicas y utilizaciones.  111
1.9.2.    Deducción proposicional. 111
1.9.3.    Demostración condicional directa. 119
Ejercicios 1.9.  121
1.10. Implicación tautologica. 122
Ejercicios 1.10.  126
1.11.  Demostración formal (directa, por contradicción). 127
2.    Relaciones. 137
2.1.  Introducción. 140
Ejercicios 2.1.  193
2.2.  Propiedades de las relaciones. 196
2.2.1.    Sobre un conjunto. 197
2.2.2.    Relaciones reflexivas.  197
2.2.3.    Relaciones simetricas y transitivas. 198
Ejercicios 2.2.  202
2.3.  Cerradura. 203
Ejercicios 2.3.  212
2.4.  Relaciones de equivalencia. 213
Ejercicios 2.4.  221
2.5.  Ordenes parciales. 223
2.6.  Diagramas de Hasse.  226
Ejercicios 2.6.  227
3.    Teoría de grafos.  245
3.1.  Introducción.  247
3.1.1.    Conceptos básicos de grafos.  249
3.1.2.    Clasificación de grafos.  251
Ejercicios 3.1.  266
3.2.  Representación de estructura mediante grafos.  269
3.2.1.    Secuencia.  278
3.2.2.    Selección (if_ then_ else).  278
3.2.3.    Mientras (while ).  279
3.2.4.    Repetir hasta que (repeat _ until).  281
Ejercicios 3.2.  284
3.3.  Cálculo de caminos a partir de la representación matricial.  287
Ejercicios 3.3.  310
3.4.  Espacio de estados.  312
3.5.  Representación mediante espacios de estado.  313
3.6.  Estrategia y algoritmos de búsqueda.  317
3.6.1.    Guiada por datos (forward).  318
3.6.2.    Guiada por objetivos(backtrak).  319
3.6.3.    En profundidad.  322
3.6.4.    En anchura.  327
3.7.  Arboles.  329
3.7.1.    Propiedades.  329
3.7.2.    Arboles generadores.  346
3.7.3.    Recorridos.  357
3.7.4.    Ordenamientos.  361
Ejercicios 3.7.  361
3.8.  Redes.  363
3.8.1.    Modelos.  364
3.8.2.    Teorema de flujo máxima.  369
3.8.3.    Teorema de corte minimal.  372
3.8.4.    Pareos.  382
Ejercicios 3.8.  407
3.9.  Redes de Petri.  408
Ejercicios 3.9.  420
4.    Sistemas numéricos.  423
4.1.  Representación de la información.  425
4.1.1.    Introducción.  429
4.2.  Conversiones.  430
4.2.1.    Decimal a binario, octal y hexadecimal.  437
4.2.2.    Binario a octal, decimal y hexadecimal.  438
4.2.3.    Algoritmo de Booth.  449
Ejercicios 4.2.  460
4.3.  Algebra booleana.  461
4.3.1.    Circuitos combinatorios.  463
4.3.2.    Propiedades.  464
4.3.3.    Funciones lógicas.  470
4.3.4.    Aplicaciones.  484
Ejercicios 4.3.  491
Bibliografía básica.  494     
Bibliografía complementaria.  495
Bibliografía de cultura general.  496
Respuesta a los problemas propuestos .  497
Indice.  529




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.

Capítulo II

2. Relaciones

La imaginación es la facultad de descubrir
las relaciones escondidas entre las cosas.
Es decir, su oculta unidad.
Charles Baudelaire.

Desarrollo de capacidades del alumno.

§   A partir del concepto de conjunto, el alumno será capaz de deducir las relaciones y las operaciones pertinentes para el procesamiento de la información.
§  A partir del concepto de relación, el alumno será capaz de crear modelos matriciales y gráficos para formular problemas de manejo de información.
§  A partir del concepto de matriz de una relación, el alumno será capaz de aplicarlo en el planteamiento y solución de problemas de manejo de información.
§  A partir del concepto de dígrafo de una relación, el alumno será capaz de aplicarlo en el planteamiento y solución de problemas de manejo de información.
§  A partir del concepto de diagrama de Hasse, el alumno será capaz de aplicarlo en la organización y ordenamiento de información.
§  A partir del concepto de función, el alumno será capaz de aplicarlo para describir en comportamiento de los datos de un problema computacional.
§  El alumno será capaz de conocer la importancia de las relaciones dentro del campo profesional de la Ingeniería en Sistemas Computacionales.

Preguntas básicas.

Quién se inicia en el estudio de las matemáticas discretas y se topa con el tema de relaciones 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 el tema relaciones?

Relaciones es un área de conocimiento formal dentro de las matemáticas para formular los vínculos o interacciones de todo tipo, tanto las que se presentan en la naturaleza como las que son producto de las actividades humanas. En este libro “Matemáticas Discretas” vamos a formalizar los conceptos matemáticos sobre relaciones y estudiaremos una serie de métodos de solución de problemas sobre las aplicaciones de relaciones.

¿Para qué sirve relaciones?

Las relaciones son un lenguaje matemático que sirve para modelar las interrelaciones entre diferentes objetos. Por ejemplo, la Luna y la Tierra son dos objetos que interactúan uno sobre el otro como parte de un ecosistema. Las interrelaciones de esta relación son las mareas y los eclipses. México y EUA son dos objetos cuya relación se manifiesta a través del intercambio comercial, científico y tecnológico. El ITLP y los alumnos son objetos que están relacionados a través de convenios en los que los alumnos se comprometen a estudiar y el tecnológico a ofrecerles una educación de calidad. Las relaciones es una de las áreas más fecundas de las matemáticas que se han utilizado con más éxito dentro de la computación. La formalización matemática de relaciones sirve para conceptualizar y fundamentar problemas en diversas áreas del conocimiento de las ciencias sociales al igual que en la ingeniería. En particular, los campos de la ingeniería en sistemas computacionales relacionados con las relaciones son las bases de datos, la teoría de autómatas, el diseño digital, la computación virtual, los modelos de transporte y las redes de computadoras.

¿Cómo se relaciona con la carrera de Ingeniería en Sistemas Computacionales?

La palabra sistemas, como parte del nombre “Ingeniero en Sistemas Computacionales” tiene una connotación especialmente importante. Nuestros países se encuentran inmersos en un sistema interconectado al que se le ha dado en llamar mundo globalizado o sociedad global. Los sistemas financieros, las materias primas, las capacidades humanas, los sistemas de información y comunicación, la ciencia y la tecnología, etcétera, son parte de ese mundo globalizado. En armonía con ésta situación, el Ingeniero en Sistemas Computacionales debe formularse las preguntas correctas y dar respuesta a los problemas a los que se enfrenta tomando en cuenta que nada está aislado y no relacionado.

Para entender la importancia del tema relaciones dentro de la ingeniería en sistemas computacionales, se analizarán brevemente dos ejemplos.

Ejemplo 1. Un ecosistema posee factores ambientales interrelacionados que lo mantienen en equilibrio (figura 2.1). Para este ejemplo en particular, un Ingeniero en Sistemas Computacionales podría, de acuerdo a las especificaciones de un ecólogo, diseñar un sistema virtual interactivo que mostrará las relaciones complejas de un ecosistema en equilibrio, con el fin de entender y anticipar los problemas irreversibles de desastres ambientales.


Figura 2.1 Relaciones de los elementos de un ecosistema.

Ejemplo 2. El Tratado de Libre Comercio para América del Norte (TLCAN) entre Canadá, EUA y México. Como producto de este tipo de interacciones comerciales un sistema de información nos informaría que:

Las exportaciones de México hacia sus socios del TLCAN son 238 % más que en 1993. El alza de las exportaciones es responsable de más de la mitad del crecimiento real del PIB en México durante este periodo.
Las exportaciones estadounidenses hacia sus socios del TLCAN se han más que duplicado entre 1993 y 2000, en contraste a una tasa de crecimiento del 52 % de las exportaciones al resto del mundo.
El comercio total entre los tres socios del TLCAN ha aumentado un 128 % y supera ahora los 676 mil millones de dólares al año. Cada día, los socios del TLCAN efectúan intercambios trilaterales por un valor de 1,800 millones de dólares aproximadamente.
En el transcurso de los siete primeros años de función del TLCAN, la producción en América del Norte se ha incrementado en más del 30 % en comparación a un crecimiento de un poco menos del 20 % en el transcurso de los siete años precedentes.
El comercio total durante este periodo aumentó en un 98 % para elevarse a 9,000 millones de dólares canadienses, habiendo aumentado las importaciones mexicanas en un 105 % hasta llegar a los 7,000 millones de dólares canadienses.
Los Estados Unidos representan para Canadá el 77 % de sus importaciones y el 84 % de sus exportaciones.
De 1993 a 2000, el valor de las exportaciones canadienses de mercancía hacia Estados Unidos y México ha aumentado un 109 %, mientras que sus exportaciones hacia el resto del mundo se han incrementado en un 29 %.
Más del 82 % de las exportaciones mexicanas están destinadas a los Estados Unidos.

Tabla 2.1 Relaciones comerciales entre los países del TLCAN.

Para este ejemplo en particular, un Ingeniero en Sistemas Computacionales tiene dos opciones: diseñar una base de datos operativa que de servicio a las transacciones como podría ser captura, modificación o consulta de transacciones a fin de hacer más eficiente el sistema TLCAN; o podría estar interesado es diseñar una base de datos inteligente u orientada a la toma de decisiones sobre el flujo comercial del TLCAN entre los tres países que ofreciera respuestas como las presentadas en la tabla 2.1. a fin de poder entender y lograr el mayor provecho del TLCAN.

¿Por qué es tan apasionante?

Las matemáticas son ideas abstractas de las cuales se pretende que tengan aplicación en la resolución de los problemas a los que se enfrenta la humanidad. Inicialmente estas ideas sólo parecen quebraderos de cabeza, números, figuras, modelos, estructuras, definiciones, teoremas, etcétera que dan la impresión de una improbable utilidad. Sin embargo, no nos debemos dejar llevar por estas falsas impresiones. Las ideas matemáticas surgen de la preocupación por resolver problemas reales a los que se enfrenta el profesional, el científico, el técnico e incluso el matemático mismo. El ingeniero en Sistemas Computacionales cuenta con un arsenal muy importante de recursos y herramientas para desplegar su creatividad y uno de esos recursos son las matemáticas. Las matemáticas le proporcionan al Ingeniero en Sistemas Computacionales no sólo modelos deductivos para plantear sus ideas, sino también muchas soluciones correctas a problemas concretos. La tarea de Ingeniero en Sistemas Computacionales consiste en conectar el planteamiento de un problema de sistemas computacionales con el método de resolución matemático. Para ello, las matemáticas ofrecen muchas “pistas” que el ingeniero debe descubrir.