Más sobre Lógica Computacional

Echar un vistado al artículo: Computational Logic: Memories of the past and challenges for the future de John Alan Robinson

El campo de la Lógica Computacional cubre todos los tipos de aplicaciones de la lógica en la informática. La Lógica Computacional se centra en la definición:

Algoritmo = Lógica + Control.

De acuedo con este punto de vista, los algoritmos tratan tanto de la descripción de un problema (de la parte lógica) como de la estrategia para llevar a cabo las computaciones utilizadas en su descripción (la parte de control). La Lógica Computacional se dedica al ideal de un programador que es concentrarse en la descripción de un problema y no invertir ningún tiempo en el mecanismo de computación necesario. Este paradigma único de la "programación declativa" hace que el desarrollo de los programas sea sencillo y rápido, y que asimismo sea facil de entender y de mantener ( estas son características que cada vez van cobrando más importancia al aumentar constantemente la complejidad de los sistemas informáticos en la actualidad). Adicionalmente, el uso riguroso de la lógica revoluciona por completo el campo de la verificación de hardware y de software. En lugar de tener que hacer una fase de pruebas, que puede que no ofrezca necesariamente otro resultado excepto el de la confirmación de que el programa parece hacer lo que se espera de el, el desarrollo de programas y sistemas con garantía de corrección es el segundo ideal de la Computación Lógica.

Perspectiva profesional

La tecnología de la información en estos días está siendo testigo de un cambio en todos los aspectos. Se está acercado cada vez más a nuestras vidas y a más y más gente y está desempeñando cada día un papel más importante: en las transacciones on-line, chats, e-mail, navegadores, audio y video en tiempo real, etc. Los ordenadores y especialmente Internet han invadido el mundo actual por completo. Internet es un invento científico que ha influido de forma importante en nuestra forma de pensar y de actuar. Como todo ello se introduce de forma creciente en nuestras vidas, se presenta un futuro en el que los informáticos tendrán que manejar varias de las claves que están asociadas a la seguridad de datos, transacciones, computación y arquitectura de redes, arquitectura de ordenadores, software complejo, plataformas distribuidas y en breve cada pequeño detalle que afecte a nuestra rutina diaria en esta sociedad informatizada. Como nuestros sistemas cada vez son más inteligentes y como las organizaciones más importantes buscan conseguir la mayor cuota de mercado posible, los informáticos de hoy en día están obligados a entender los asustos claves cada vez más deprisa puesto que realizar sofisticados avances parece actualmente una trivialidad.

La computación lógica es el único paradigma que resuelve los problemas de diseño de hardware y software que son demasiado complejos para ser resueltos con reglas y heurísticas simples. Se ha llegado a un punto en el que el hardware no puede sobrevivir sin un buen software y viceversa. De hecho, ambos tienen que crecer sinergéticamente puesto que nuestros sistemas son cada vez más complejos. La aparición de software moderno y complejos algoritmos ha forzado la la comunidad VLSI a pensar sobre varios asuntos clave y destaca entre ellos la forma en que este harware ha sido probado y verificado despues de ser diseñado de una forma tal que ellos mismos comprueban usando software actual. Esto obliga a los científicos a cuidar cad detalle del diseño de los sistemas. Hoy en día es ampliamente admitido que solo si estos sistemas son verificados por herramientas formales, se evita la aparición de ciertos errores ocultos que pueden ser en el futuro catastróficos.

Se ha observado que la computación lógica juega tambien un papel crucial en la comprensión de los problemas clave del software. La aparición de la lógica y de la programación con restricciones ha supuestos un gran triunfo de los lenguajes de programación declarativos en los sistema expertos, el procesamiento de lenguaje natural en sistemas expertos, planificación, etc. En el mundo actual de comunicaciones inalámbricas y redes de telefonía movil, los protocolos de sistemas distribuidos configuran un aspecto importante en el diseño de sistemas. Eliminar los cómputos innecesarios y redundantes de esos protocolos y verificarlos adecuadamente es habitualmente un trabajos improbo. Con las herramientas que ofrece la computación lógica se trata de una tarea sencilla. El area de la ingeniería del software está siendo testigo de una propuesta multi-disciplinar para definir formalmente las especificaciones de los sistemas software y la lógica se ha perfilado con una inmensa guia potencial del camino por el que las especificaciones formales deben ser estudiadas. Con estas motivaciones para guiar las heurísticas y poner más enfasis en los métidos formales para la verificación de software y hardware, la computación lógica cubre el ámbito de las areas antes mencionadas.

Objetivos docentes

Basado en un sólido conocimiento de la lógica matemática y sus subáreas (como normalmente se enseña en cursos de ingeniería informática y en inteligencia artificial) un estudiante de nuestro programa aprenderá los aspectos de la computación lógica más entroncados con la ingeniería: como opera un sistema deductivo, qué tipo de gramáticas basadas en la lógica se pueden usar para el procesamiento de lenguaje natural, cómo se pueden aplicar a la industria las técnicas de verificación de hardware y software, qué clase de técnicas de implementación son necesarias para los sistemas lógicos, qué métodos formales se necesitan en la fabricación de ordenadores integrados, cómo aplicar los métodos formales para el diseño de máquinas y procesos, y qué problemas aparecen en esas aplicaciones.

Lógica

En las aplicaciones de Computación Lógica aparecen todo tipo de lógicas: lógica proposicional, lógica de predicados clásica, lógica de orden superior y lógicas no clásicas (como modales, no-monótonas y lógica difusa).

Razonamiento y representación del conocimiento

Describir un problema significa representar y razonar sobre su conocimiento, lo cual cubre aspectos tan diversos como la toma de decisiones, el razonamiento sobre evidencias, el razonamiento causal, el razonamiento basado en casos, el razonamiento por analogía, inducción, abducción y deducción, el razonamiento legal y la comprensión y generación de lenguaje natural, el razonamiento a partir de acciones y planificación, modelos para procesos y dinámicos y sistemas y especificaciones hardware.

Control

La Lógica Computacional incluye el diseño de máquinas reales y abstractas para los lenguajes de programación declarativos y para la construcción de sistemas de deducción y probadores automáticos de teoremas. Puesto que la búsqueda es el mecanismo fundamental en Lógica Computacional, el desarrollo de estrategias de control y de heurísticas es un tema prioritario.

Programación

La ingeniería del software en Lógica Computacional incluye programación lógica, programación con restricciones y programación funcional, análisis de programas, síntesis de programas y transformación de programas. El estudiante aprenderá cómo analizar problemas y algoritmos de acuerdo con las propiedades de decidibilidad, tratabilidad y complejidad.