lunes, 25 de abril de 2011

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.


Capítulo III

3. Teoría de Grafos.


Las computadoras son buenas
siguiendo instrucciones,
no leyendo tu mente.
Donald Knuth.

Desarrollo de capacidades del alumno:

§  Que el alumno a partir de los grafos, sea capaz de formalizar y especificar proyectos de ingeniería en sistemas computacionales.
§  Que el alumno sea capaz de distinguir las diferentes teorías sobre grafos y la forma en que se aplican en diferentes ámbitos de la ingeniería en sistemas computacionales.
§  El alumno será capaz de conocer la importancia de los grafos dentro del campo profesional de la Ingeniería en Sistemas Computacionales.
§  Partiendo de los conceptos de árboles el alumno será capaz de aplicarlo en el planteamiento formal de problemas computacionales.
§  Partiendo del conocimiento de las estrategias de los algoritmos de búsqueda, el alumno será capaz aplicarlos en la solución de problemas computacionales.
§  Partiendo del conocimiento de la teoría redes, el alumno será capaz de identificar y modelar  la solución a problemas de redes de transporte.
§  Partiendo del conocimiento de las redes de Petri, el alumno será capaz de formalizar y especificar aplicaciones en la ingeniería en sistemas computacionales.
§  En general el alumno será capaz de entender la importancia de estudiar  los problemas de ingeniería en sistemas computacionales, mediante un análisis formal apoyándose en la teoría de grafos.

Preguntas básicas.

Quién se inicia en el estudio de las matemáticas discretas y se topa con el tema de teoría de grafos 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 teoría de grafos (o teoría de gráficas), trata del estudio matemático de problemas asociados a rutas o trayectorias en una, dos o más dimensiones mediante representaciones gráficas con el propósito de ofrecer soluciones algorítmicas a dichos problemas. En general, la teoría de grafos se puede describir a través de un problema clásico de computación conocido como el problema del agente viajero y que en resumen trata del encontrar la trayectoria mínima al visitar varias ciudades sin pasar dos veces por la misma ciudad.  Un problema asociado al agente viajero es el siguiente: en una tarjeta de circuito impreso (como la tarjeta madre de una computadora), se presenta el problema de interconectar los componentes como diodos, resistencias, capacitores, transistores y pines de conexión de circuitos integrados,  las pistas de interconexión de componentes no deben cruzarse porque daría paso a un corto circuito, pero al mismo tiempo, los componentes se deben conectar siguiendo la ruta más corta y todo circunscrito al área limitada de la tarjeta del circuito impreso.

¿Para qué sirve?

La teoría de grafos son modelos matemáticos que nos sirven para representar y diseñar soluciones computacionales de manera grafica. En general, podemos pensar que las aplicaciones computacionales tratan de objetos abstractos que interactúan bajos ciertas reglas definidas y que estos objetos abstractos representan objetos del mundo real que realizan ciertas actividades también sujetos a reglas establecidas. Imagine, por ejemplo el tráfico aéreo de la ciudad de La Paz. El controlador del sistema de control de tráfico aéreo visualiza en su monitor de computadora las llegadas y salidas de los aviones. Los pilotos deben formar los aviones en una cola en la que se deben respetar las prioridades de llegada y de salida establecidas por el controlador. Los aviones en el sistema de navegación aérea se visualizan como puntos que se mueven en una trayectoria y que muestran al controlador  la ruta del avión real. Cada punto en el sistema que el controlador visualiza en su monitor es una representación abstracta de un avión y uno se pregunta ¿Qué información trae asociada cada punto? La información típicamente es: número de vuelo (que relaciona tamaño del avión, el origen y destino del vuelo), aerolínea y trayectoria, es decir información pertinente y útil al controlador aéreo para que llegado el caso pueda éste tomar decisiones. La información pertinente de cada avión almacenado en el sistema se conoce como un registro de información mientras que la forma es que se organizan estos registros es decir en forma de “cola” se conoce como estructura de datos. Toda la actividad del tráfico aéreo se controla mediante programas computacionales elaborados con algoritmos muy precisos de la teoría de grafos. La estructura de datos en forma de cola, es conveniente para el control de tráfico aéreo, pero en algunas otras aplicaciones computacionales son más convenientes otro tipo de estructuras de datos como pilas o árboles y sus algoritmos asociados. En resumen podría decirse que la teoría de grafos nos sirve para crear modelos matemáticos que nos dan pautas de solución a diversas aplicaciones computacionales ayudándonos en la construcción de las estructuras de datos y la elaboración de algoritmos para manejarlas. Más adelante abundaremos más detalladamente sobre las estructuras de datos y los algoritmos.

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

Un sistema de software o de la electrónica digital no trivial debe sr especificado, por ejemplo, la especificación de un sistema de control automático para una refinería de petróleo  debe ser precisa, no únicamente la especificación del sistema final, sino también de los subsistemas y componentes que se usaran para construir el sistema. Dependiendo del contexto el ingeniero en sistemas computacionales debe formular la especificación del sistema, tanto si se trata de la fase de análisis como si se trata de la fase de diseño. Una especificación de diseño por ejemplo se expresa en términos de la forma en que se va a usar el sistema; el diseño se entrega como un documento o como un prototipo que describe la arquitectura del sistema y la implantación. En general los grafos les son útiles a los ingenieros en sistemas computacionales para modelar y describir sistemas reales que se desean automatizar mediante aplicaciones computacionales. Los grafos en general los usa el ingeniero en sistemas computacionales para modelar las estructuras de datos de los objetos que interactúan en una situación real y al mismo tiempo para desarrollar los algoritmos para manipular dichas estructuras de datos. Un modelo producto de la teoría de grafos pasa por varias fases de desarrollo que tienen que ver con el análisis, el diseño y la implantación, prueba y documentación aunque no necesariamente en este orden.

¿Y por qué es tan apasionante?

Si estudiamos la teoría de grafos como un  sistema matemático abstracto quizá no sea muy apasionante, pero en cuanto nos adentramos en las aplicaciones computacionales un nuevo paisaje se muestra ante nosotros. Imagine la situación en la que un grupo de robots, por alguna razón tiene que visitar varios sitios de ensamble dentro de una fabrica y deseamos que no choquen, que sigan la ruta más corta para cada visita y visiten todos y cada uno de los sitios estipulados sólo una vez. El problema se resuelve fácilmente mediante un grafo, el cual nos dirá si existe solución para un problema específico de esta naturaleza, pero además, nos dirá en caso de existir solución como resolverlo mediante un algoritmo, sin embargo, ¿Qué hay como soporte a la solución mediante grafos? Lo que existe es justamente un sistema matemático abstracto en forma de teoremas y sus demostraciones lógico matemáticas. Es muy apasionante resolver problemas mediante la tecnología computacional, porque esa es la vocación del ingeniero en sistemas computacionales, pero el ingeniero, no resuelve un problema y listo, se lava las manos, además tiene que esforzarse y sacar conclusiones y por ejemplo plantearse la siguiente pregunta ¿Se puede utilizar el resultado o el método matemático para resolver algún otro problema? Si se animan un poco, los ingenieros encontrarán fácilmente aplicaciones, las cuales consisten esencialmente en dar una interpretación concreta a los elementos matemáticos abstractos al problema. Es ese tipo de interpretación concreta es en la que el ingeniero dará muestra de mayor imaginación, ingenio y dedicación.

Capítulo IV

4.  Sistemas numéricos.


“Si de la clase de animales seleccionamos la oveja y,
de las ovejas aquellas que son astadas,
o si de la clase de los animales seleccionamos el astado y,
de éstos aquellas que son ovejas, 
el resultado es natural.
En ambos casos llegamos a la clase oveja astada”.
Este tipo de ejemplos empleó George Boole para  explicar
Sus ideas lógicas en el ensayo
The Mathematical Analysis of Logic.

Objetivos.

§  A partir del sistema de numeración, el alumno será capaz de efectuar las operaciones pertinentes para convertir un número de cualquier base numérica en cualquier otra base numérica.
§  A partir del álgebra booleana, el alumno será capaz de describir la operación y construir las tablas de verdad para las compuertas AND, OR y NOT.
§  A partir de los teoremas del álgebra booleana, el alumno será capaz simplificar expresiones lógicas.
§  A partir de las compuertas lógicas AND, OR y NOT, el alumno será capaz implantar un circuito combinatorio representado mediante una expresión booleana.
§  El alumno será capaz de convertir una expresión lógica en una suma de productos.
§  El alumno será capaz usar el álgebra booleana y el mapa de Karnaugh como herramientas para simplificar y diseñar circuitos combinatorios.
§  A partir del planteamiento de un problema el alumno será capaz de interpretarlo y plantearlo como un circuito combinatorio.

Preguntas básicas.

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

En este tema 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. Estamos acostumbrados a usar la computadora para escuchar música, jugar videojuegos, navegar en internet, participar en la redes sociales, ver películas y un sin número de actividades de carácter productivo que tienen que ver con los bancos, el gobierno y la industria o las actividades empresariales o profesionales, sin embargo, casi nunca nos detenemos a pesar que todo lo que mueve esta tecnología, son los números, en particular los números binarios. 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.

¿Para qué sirve?

Un alumno de primer semestre se puede preguntar ¿Para qué me van a servir los sistemas numéricos en mi carrera profesional? El ingeniero en sistemas computacionales se prepara para un mundo digital con soluciones electrónicas para mejorar la calidad de vida de las personas, fortalecer la industria y hacer más competitivas las empresas,  impulsar el gobierno digital para mejorar la calidad de los servicios gubernamentales. Los países están invirtiendo en la construcción de ciudades digitales como: Inchoen en Corea del sur, Medellín en Colombia, Salzburgo en Austria, Silicon Valley en USA, Ciudad Obregón en Sonora, México, Kyoto en Japón, etcétera, cuyo propósito es desarrollar tecnología para: la seguridad,  los sistemas de control de tráfico, las tarjetas inteligentes,  la educación en línea, la salud, mejorar los trámites administrativos y las comunicaciones, el comercio electrónico, la industria del entretenimiento, etcétera. En 1965, Gordon Moore, uno de los fundadores de Intel, pronóstico que el número de transistores que se podían insertar en un Chip de silicio se duplicaba cada año, con el correr del tiempo, se ha determinado que estos se duplican cada 18 meses, también se ha determinado que el software duplica su lentitud aproximadamente cada 18 meses y así podríamos enumerar otros avances del vertiginosos  desarrollo digital en materia de almacenamiento o de nuevos suscriptores en internet. Los sistemas numéricos están atrás del mundo digital lleno de innovaciones constantes.

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

Dentro de la carrera de ingeniería de sistemas computacionales se estudian muchos campos de aplicación en particular los sistemas que se conocen como sistemas en tiempo real. Un sistema de tiempo real como el monitoreo de los signos vitales de un paciente o el sistema de transporte colectivo del metro de la ciudad de México, son aquellos sistemas en los que el tiempo de respuesta con respecto a un estimulo de entrada es lo suficientemente pequeño para ser considerado con respecto a esa entrada una respuesta puntual. Para este tipo de sistemas y para otros de naturaleza parecida, el álgebra booleana es fundamental para el diseño de circuitos electrónicos. Por otro lado las personas usan cada vez más la banca electrónica o compras por internet, en este caso, la información que viaja en las redes de comunicación como internet  debe viajar de manera segura y protegida para frustrar el posible ataque de piratas. Los sistemas numéricos son el conocimiento básico para los procesos criptográficos. Un proceso criptográfico toma un flujo de datos de entrada y genera un flujo de bits (llamado cifrado de texto) que representa una forma difícil de crackear.  El éxito espectacular de la tecnología digital descansa en el sistema numérico binario y el ingeniero en sistemas computacionales al digitalizar una imagen, al diseñar un algoritmo, al diseñar un circuito electrónico, al pensar en una solución tecnológica de algún problema se involucra necesariamente con los sistemas numéricos.

 ¿Y por qué es tan apasionante?

El Mago de Oz se publico en 1907, en esta obra Frank Baum explora las diferencias y semejanzas entre los humanos, los animales y las máquinas, podría decirse que con la computadora actual con destrezas casi inteligentes, el Mago de Oz ha encontrado el mecanismo de la computación para aliviar las penas. Me parece que es apasionante buscar en las computadoras soluciones inteligentes a los problemas de la sociedad, del mundo animal, del medio ambiente o simplemente de problemas abstractos de la ciencia, de las matemáticas o de pasatiempos como el ajedrez. Norbert Wiener, Alan Turing, Arturo Rosenblueth, Von Neumann, Shannon, Minsky fueron grandes apasionados de la computación y crearon los caminos de la inteligencia artificial, redes neuronales, sistemas expertos, robótica, teoría del conocimiento y filosofía de la mente. En diseño de los circuitos electrónicos es importante por sí mismo, pero no es apasionante hasta que uno se pregunta ¿Para qué? La búsqueda de la innovación es apasionante. La vanguardia de la tecnología cambia constantemente. Gracias a la nanotecnología, lo que hace diez años era un sueño, ahora es posible, los chips semiconductores han hecho posible que las prótesis suplan artificialmente miembros faltantes o incapacidades y ha logrado que los sordos, oigan y que los ciegos vean.