En tecnología de la información, un sistema de razonamiento es un sistema de software que genera conclusiones a partir del conocimiento disponible utilizando técnicas lógicas como la deducción y la inducción . Los sistemas de razonamiento juegan un papel importante en la implementación de la inteligencia artificial y los sistemas basados en el conocimiento .
Según la definición de uso cotidiano de la frase, todos los sistemas informáticos son sistemas de razonamiento en el sentido de que todos automatizan algún tipo de lógica o decisión. En uso típico en la tecnología de la informaciónSin embargo, en este campo, la frase generalmente se reserva para sistemas que realizan tipos de razonamiento más complejos. Por ejemplo, no para sistemas que hacen tipos de razonamiento bastante sencillos, como calcular un impuesto sobre las ventas o un descuento para el cliente, sino para hacer inferencias lógicas sobre un diagnóstico médico o un teorema matemático. Los sistemas de razonamiento vienen en dos modos: procesamiento interactivo y por lotes. Los sistemas interactivos interactúan con el usuario para hacer preguntas aclaratorias o permitir que el usuario guíe el proceso de razonamiento. Los sistemas por lotes toman toda la información disponible a la vez y generan la mejor respuesta posible sin comentarios ni orientación del usuario. [1]
Los sistemas de razonamiento tienen un amplio campo de aplicación que incluye programación , procesamiento de reglas comerciales , resolución de problemas , procesamiento de eventos complejos , detección de intrusiones , análisis predictivo , robótica , visión por computadora y procesamiento del lenguaje natural .
Historia
Los primeros sistemas de razonamiento fueron probadores de teoremas, sistemas que representan axiomas y enunciados en la lógica de primer orden y luego usan reglas de lógica como modus ponens para inferir nuevos enunciados. Otro tipo temprano de sistema de razonamiento fueron los solucionadores de problemas generales. Estos eran sistemas como el General Problem Solver diseñado por Newell y Simon . Los solucionadores de problemas generales intentaron proporcionar un motor de planificación genérico que pudiera representar y resolver problemas estructurados. Trabajaron descomponiendo problemas en subproblemas más pequeños y manejables, resolviendo cada subproblema y reuniendo las respuestas parciales en una respuesta final. Otro ejemplo de solucionador de problemas generales fue la familia de sistemas SOAR .
En la práctica, estos probadores de teoremas y solucionadores de problemas generales rara vez eran útiles para aplicaciones prácticas y requerían usuarios especializados con conocimientos de lógica para utilizarlos. La primera aplicación práctica del razonamiento automatizado fueron los sistemas expertos . Los sistemas expertos se centraron en dominios mucho más definidos que la resolución de problemas generales, como el diagnóstico médico o el análisis de fallas en una aeronave. Los sistemas expertos también se centraron en implementaciones de lógica más limitadas. En lugar de intentar implementar la gama completa de expresiones lógicas, normalmente se centraron en modus-ponens implementados a través de reglas IF-THEN. Centrarse en un dominio específico y permitir solo un subconjunto restringido de lógica mejoró el rendimiento de tales sistemas para que fueran prácticos para su uso en el mundo real y no simplemente como demostraciones de investigación como lo habían sido la mayoría de los sistemas de razonamiento automatizados anteriores. El motor utilizado para el razonamiento automatizado en sistemas expertos se denominó habitualmente motores de inferencia . Los que se utilizan para inferencias lógicas más generales se denominan habitualmente probadores de teoremas . [2]
Con el aumento de la popularidad de los sistemas expertos, se aplicaron muchos tipos nuevos de razonamiento automatizado a diversos problemas en el gobierno y la industria. Algunos, como el razonamiento basado en casos, surgieron de la investigación de sistemas expertos. Otros, como los algoritmos de satisfacción de restricciones, también se vieron influenciados por campos como la tecnología de decisión y la programación lineal. Además, un enfoque completamente diferente, uno que no se basa en un razonamiento simbólico sino en un modelo conexionista, también ha sido extremadamente productivo. Este último tipo de razonamiento automatizado es especialmente adecuado para los tipos de problemas de coincidencia de patrones y detección de señales, como la búsqueda de texto y la coincidencia de rostros.
Uso de la lógica
El término sistema de razonamiento se puede utilizar para aplicar a casi cualquier tipo de sistema sofisticado de apoyo a la toma de decisiones, como se ilustra en las áreas específicas que se describen a continuación. Sin embargo, el uso más común del término sistema de razonamiento implica la representación informática de la lógica. Varias implementaciones demuestran una variación significativa en términos de sistemas de lógica y formalidad. La mayoría de los sistemas de razonamiento implementan variaciones de lógica proposicional y simbólica ( predicado ). Estas variaciones pueden ser representaciones matemáticamente precisas de sistemas lógicos formales (p. Ej., FOL ) o versiones extendidas e híbridas de esos sistemas (p. Ej., Lógica cortés [3] ). Los sistemas de razonamiento pueden implementar explícitamente tipos lógicos adicionales (por ejemplo, lógicas modales , deónticas , temporales ). Sin embargo, muchos sistemas de razonamiento implementan aproximaciones imprecisas y semiformales a sistemas lógicos reconocidos. Estos sistemas típicamente soportan una variedad de procedimiento y de semi- declarativas técnicas con el fin de modelar diferentes estrategias de razonamiento. Enfatizan el pragmatismo sobre la formalidad y pueden depender de extensiones y archivos adjuntos personalizados para resolver problemas del mundo real.
Muchos sistemas de razonamiento emplean el razonamiento deductivo para extraer inferencias del conocimiento disponible. Estos motores de inferencia apoyan el razonamiento hacia adelante o hacia atrás para inferir conclusiones a través del modus ponens . Los métodos de razonamiento recursivo que emplean se denominan " encadenamiento hacia adelante " y " encadenamiento hacia atrás ", respectivamente. Aunque los sistemas de razonamiento apoyan ampliamente la inferencia deductiva, algunos sistemas emplean razonamiento abductivo , inductivo , anulable y otros tipos de razonamiento. También se pueden emplear heurísticas para determinar soluciones aceptables a problemas intratables .
Los sistemas de razonamiento pueden emplear el supuesto de mundo cerrado (CWA) o el supuesto de mundo abierto (OWA). La OWA se asocia a menudo con la representación del conocimiento ontológico y la Web Semántica . Los diferentes sistemas exhiben una variedad de enfoques de la negación . Además del complemento lógico o bit a bit , los sistemas pueden soportar formas existenciales de negación fuerte y débil, incluida la negación como falla y la negación "inflacionaria" (negación de átomos no terrestres ). Los diferentes sistemas de razonamiento pueden soportar el razonamiento monótono o no monótono , la estratificación y otras técnicas lógicas.
Razonar bajo incertidumbre
Muchos sistemas de razonamiento proporcionan capacidades para razonar en condiciones de incertidumbre . Esto es importante cuando se construyen agentes de razonamiento situados que deben lidiar con representaciones inciertas del mundo. Hay varios enfoques comunes para manejar la incertidumbre. Estos incluyen el uso de factores de certeza, métodos probabilísticos como la inferencia bayesiana o la teoría de Dempster-Shafer , la lógica de valores múltiples (" difusa ") y varios enfoques conexionistas . [4]
Tipos de sistema de razonamiento
Esta sección proporciona una categorización informal y no exhaustiva de tipos comunes de sistema de razonamiento. Estas categorías no son absolutas. Se superponen en un grado significativo y comparten una serie de técnicas, métodos y algoritmos .
Solucionadores de restricciones
Los solucionadores de restricciones resuelven problemas de satisfacción de restricciones (CSP). Apoyan la programación con restricciones . Una restricción es una que debe cumplirse con cualquier solución válida a un problema . Las restricciones se definen de forma declarativa y se aplican a variables dentro de dominios dados. Los solucionadores de restricciones utilizan técnicas de búsqueda , retroceso y propagación de restricciones para encontrar soluciones y determinar las soluciones óptimas. Pueden emplear formas de programación lineal y no lineal . A menudo se utilizan para realizar la optimización en espacios de problemas altamente combinatorios . Por ejemplo, pueden usarse para calcular la programación óptima, diseñar circuitos integrados eficientes o maximizar la productividad en un proceso de fabricación. [5]
Demostradores de teoremas
Los probadores de teoremas utilizan técnicas de razonamiento automatizado para determinar pruebas de teoremas matemáticos. También se pueden utilizar para verificar pruebas existentes. Además del uso académico, las aplicaciones típicas de los probadores de teoremas incluyen la verificación de la corrección de circuitos integrados, programas de software, diseños de ingeniería, etc.
Programas de lógica
Los programas de lógica (LP) son programas de software escritos utilizando lenguajes de programación cuyas primitivas y expresiones proporcionan representaciones directas de construcciones extraídas de la lógica matemática. Un ejemplo de un lenguaje de programación lógica de propósito general es Prolog . Los LP representan la aplicación directa de la programación lógica para resolver problemas. La programación lógica se caracteriza por enfoques altamente declarativos basados en la lógica formal y tiene una amplia aplicación en muchas disciplinas.
Motores de reglas
Los motores de reglas representan la lógica condicional como reglas discretas. Los conjuntos de reglas se pueden administrar y aplicar por separado a otras funciones. Tienen una amplia aplicabilidad en muchos dominios. Muchos motores de reglas implementan capacidades de razonamiento. Un enfoque común es implementar sistemas de producción para respaldar el encadenamiento hacia adelante o hacia atrás. Cada regla ('producción') vincula una conjunción de cláusulas de predicado a una lista de acciones ejecutables.
En tiempo de ejecución, el motor de reglas compara las producciones con los hechos y ejecuta ('dispara') la lista de acciones asociadas para cada coincidencia. Si esas acciones eliminan o modifican algún hecho, o afirman nuevos hechos, el motor vuelve a calcular inmediatamente el conjunto de coincidencias. Los motores de reglas se utilizan ampliamente para modelar y aplicar reglas comerciales , controlar la toma de decisiones en procesos automatizados y hacer cumplir las políticas comerciales y técnicas.
Clasificador deductivo
Los clasificadores deductivos surgieron un poco más tarde que los sistemas basados en reglas y fueron un componente de un nuevo tipo de herramienta de representación del conocimiento de inteligencia artificial conocida como lenguajes marco . Un lenguaje marco describe el dominio del problema como un conjunto de clases, subclases y relaciones entre las clases. Es similar al modelo orientado a objetos . Sin embargo, a diferencia de los modelos orientados a objetos, los lenguajes marco tienen una semántica formal basada en la lógica de primer orden.
Utilizan esta semántica para proporcionar información al clasificador deductivo. El clasificador, a su vez, puede analizar un modelo dado (conocido como ontología ) y determinar si las diversas relaciones descritas en el modelo son consistentes. Si la ontología no es consistente, el clasificador resaltará las declaraciones que son inconsistentes. Si la ontología es consistente, el clasificador puede entonces razonar más y sacar conclusiones adicionales sobre las relaciones de los objetos en la ontología.
Por ejemplo, puede determinar que un objeto es en realidad una subclase o instancia de clases adicionales como las descritas por el usuario. Los clasificadores son una tecnología importante en el análisis de las ontologías utilizadas para describir modelos en la web semántica . [6] [7]
Sistemas de aprendizaje automático
Los sistemas de aprendizaje automático evolucionan su comportamiento con el tiempo en función de la experiencia . Esto puede implicar razonamientos sobre eventos observados o datos de ejemplo proporcionados con fines de capacitación. Por ejemplo, los sistemas de aprendizaje automático pueden usar el razonamiento inductivo para generar hipótesis para hechos observados. Los sistemas de aprendizaje buscan reglas o funciones generalizadas que produzcan resultados en línea con las observaciones y luego usan estas generalizaciones para controlar el comportamiento futuro.
Sistemas de razonamiento basados en casos
Los sistemas de razonamiento basado en casos (CBR) proporcionan soluciones a problemas mediante el análisis de similitudes con otros problemas para los que ya existen soluciones conocidas. Utilizan el razonamiento analógico para inferir soluciones basadas en historias de casos. Los sistemas CBR se utilizan comúnmente en escenarios de atención al cliente / soporte técnico y centros de llamadas y tienen aplicaciones en la fabricación industrial , agricultura , medicina , derecho y muchas otras áreas.
Sistemas de razonamiento procedimental
Un sistema de razonamiento procedimental (PRS) utiliza técnicas de razonamiento para seleccionar planes de una base de conocimientos procedimentales . Cada plan representa un curso de acción para el logro de una meta determinada . El PRS implementa un modelo de creencia-deseo-intención al razonar sobre hechos (' creencias ') para seleccionar planes apropiados (' intenciones ') para objetivos dados ('deseos'). Las aplicaciones típicas de PRS incluyen sistemas de administración, monitoreo y detección de fallas .
Referencias
- ^ Wos, Larry; Owerbeek, Ross; Ewing, Lusk; Boyle, Jim (1984). Razonamiento automatizado: introducciones y aplicaciones . Prentice Hall. pag. 4 . ISBN 978-0-13-054453-7.
- ^ Hayes-Roth, Frederick; Waterman, Donald; Lenat, Douglas (1983). Construyendo sistemas expertos . AddisonWesley. ISBN 978-0-201-10686-2.
- ^ Grosof, Benjamin N. (30 de diciembre de 1997). "Programas de lógica cortés: manejo priorizado de conflictos para las reglas" (posdata) . Informe de investigación de IBM . RC 20836 (92273).
- ^ Moisés, Yoram; Vardi, Moshe Y; Fagin, Ronald; Halpern, Joseph Y (2003). Razonamiento sobre el conocimiento . Prensa del MIT. ISBN 978-0-262-56200-3.
- ^ Schalkoff, Robert (2011). Sistemas inteligentes: principios, paradigmas y pragmática: principios, paradigmas y pragmática . Jones y Bartlett Learning. ISBN 978-0-7637-8017-3.
- ^ MacGregor, Robert (junio de 1991). "Utilización de un clasificador de descripción para mejorar la representación del conocimiento". Experto IEEE . 6 (3): 41–46. doi : 10.1109 / 64.87683 .
- ^ Berners-Lee, Tim; Hendler, James; Lassila, Ora (17 de mayo de 2001). "La Web Semántica Una nueva forma de contenido web que es significativo para las computadoras desatará una revolución de nuevas posibilidades" . Scientific American . 284 (5): 34–43. doi : 10.1038 / scientificamerican0501-34 . Archivado desde el original el 24 de abril de 2013.