stringtranslate.com

Planificador (lenguaje de programación)

Planner (a menudo visto en publicaciones como "PLANNER" aunque no es un acrónimo) es un lenguaje de programación diseñado por Carl Hewitt en el MIT y publicado por primera vez en 1969. Primero, se implementaron subconjuntos como Micro-Planner y Pico-Planner, y Luego , Julian Davies en la Universidad de Edimburgo implementó esencialmente todo el lenguaje como Popler en el lenguaje de programación POP-2 . [1] Derivaciones como QA4, Conniver, QLISP y Ether (ver metáfora de la comunidad científica ) fueron herramientas importantes en la investigación de inteligencia artificial en la década de 1970, que influyeron en desarrollos comerciales como Knowledge Engineering Environment (KEE) y Automated Reasoning Tool (ART).

Enfoque procedimental versus enfoque lógico

Los dos paradigmas principales para la construcción de sistemas de software semántico fueron el procedimental y el lógico . El paradigma procesal fue personificado por Lisp [2] , que presentaba procedimientos recursivos que operaban en estructuras de listas.

El paradigma lógico se personificó en los buscadores de derivación (prueba) basados ​​en resolución de procedimiento de prueba uniforme . [3] Según el paradigma lógico, incorporar conocimientos procedimentales era “hacer trampa”. [4]

Incorporación procesal del conocimiento.

Planner se inventó con el propósito de incorporar conocimientos procedimentalmente [5] y fue un rechazo del paradigma del procedimiento de prueba uniforme de resolución , [6] que

  1. Convirtió todo a forma clausal. Convertir toda la información a forma clausal es problemático porque oculta la estructura subyacente de la información.
  2. Luego utilizó la resolución para intentar obtener una prueba por contradicción añadiendo la forma clausal de la negación del teorema a demostrar. Usar únicamente la resolución como regla de inferencia es problemático porque oculta la estructura subyacente de las pruebas. Además, utilizar la prueba por contradicción es problemático porque las axiomatizaciones de todos los dominios prácticos del conocimiento son inconsistentes en la práctica.

Planner era una especie de híbrido entre los paradigmas procedimental y lógico porque combinaba la programabilidad con el razonamiento lógico. Planner presentó una interpretación procedimental de oraciones lógicas donde una implicación de la forma (P implica Q) se puede interpretar procedimentalmente de las siguientes maneras utilizando la invocación dirigida por patrones:

  1. Encadenamiento directo (antecedentemente):
    Si afirma P, afirma Q
    Si afirma no Q, afirma no P
  2. Encadenamiento hacia atrás (en consecuencia)
    Si objetivo Q, objetivo P
    Si el objetivo no es P, el objetivo no es Q

En este sentido, el desarrollo de Planner estuvo influenciado por los sistemas lógicos deductivos naturales (especialmente el de Frederic Fitch [1952]).

Implementación del microplanificador

Gerry Sussman , Eugene Charniak y Terry Winograd [7] implementaron un subconjunto llamado Micro-Planner y se utilizó en el programa de comprensión del lenguaje natural SHRDLU de Winograd , el trabajo de comprensión de historias de Eugene Charniak, el trabajo de Thorne McCarty sobre razonamiento legal y algunos otros proyectos. Esto generó un gran entusiasmo en el campo de la IA. También generó controversia porque proponía una alternativa al enfoque lógico que había sido uno de los paradigmas fundamentales de la IA.

En SRI International , Jeff Rulifson, Jan Derksen y Richard Waldinger desarrollaron QA4, que se basó en las construcciones de Planner e introdujo un mecanismo de contexto para proporcionar modularidad a las expresiones en la base de datos. Earl Sacerdoti y Rene Reboh desarrollaron QLISP, una extensión de QA4 integrada en INTERLISP , que proporciona un razonamiento similar al de Planner integrado en un lenguaje procedimental y desarrollado en su rico entorno de programación. QLISP fue utilizado por Richard Waldinger y Karl Levitt para la verificación de programas, por Earl Sacerdoti para el monitoreo de la planificación y ejecución, por Jean-Claude Latombe para el diseño asistido por computadora, por Nachum Dershowitz para la síntesis de programas, por Richard Fikes para la recuperación deductiva y por Steven Coles por uno de los primeros sistemas expertos que guiaban el uso de un modelo econométrico.

Las computadoras eran caras. Sólo tenían un procesador lento y sus memorias eran muy pequeñas en comparación con las actuales. Entonces Planner adoptó algunos expedientes de eficiencia que incluyen los siguientes:

La génesis de Prolog

Gerry Sussman , Eugene Charniak , Seymour Papert y Terry Winograd visitaron la Universidad de Edimburgo en 1971, difundiendo noticias sobre Micro-Planner y SHRDLU y poniendo en duda el enfoque del procedimiento de prueba uniforme de resolución que había sido el pilar de los lógicos de Edimburgo. En la Universidad de Edimburgo, Bruce Anderson implementó un subconjunto de Micro-Planner llamado PICO-PLANNER, [9] y Julian Davies (1973) implementó esencialmente todo Planner.

Según Donald MacKenzie, Pat Hayes recordó el impacto de una visita de Papert a Edimburgo, que se había convertido en el "corazón de Logicland de la inteligencia artificial ", según el colega de Papert en el MIT, Carl Hewitt. Papert expresó elocuentemente su crítica del enfoque de resolución dominante en Edimburgo "...y al menos una persona tomó medidas y se fue por culpa de Papert". [10]

Los acontecimientos anteriores generaron tensión entre los lógicos de Edimburgo. Estas tensiones se exacerbaron cuando el Consejo de Investigación Científica del Reino Unido encargó a Sir James Lighthill que escribiera un informe sobre la situación de la investigación de la IA en el Reino Unido. El informe resultante [ Lighthill 1973; McCarthy 1973] fue muy crítico aunque SHRDLU fue mencionado favorablemente.

Pat Hayes visitó Stanford donde conoció Planner. Cuando regresó a Edimburgo, intentó influir en su amigo Bob Kowalski para que tuviera en cuenta a Planner en su trabajo conjunto sobre la demostración automatizada de teoremas. "La demostración del teorema de resolución fue degradada de un tema candente a una reliquia del pasado equivocado. Bob Kowalski se mantuvo obstinadamente en su fe en el potencial de la demostración del teorema de resolución. Estudió cuidadosamente a Planner”. [11] Kowalski [1988] afirma " Recuerdo haber intentado convencer a Hewitt de que Planner era similar a la resolución SL". Pero Planner se inventó con el propósito de incorporar conocimientos procedimentalmente y fue un rechazo del paradigma del procedimiento de prueba uniforme de resolución. Colmerauer y Roussel recordaron su reacción al aprendizaje. sobre Planner de la siguiente manera:

"Mientras asistíamos a una convención del IJCAI en septiembre de 1971 con Jean Trudel, nos encontramos nuevamente con Robert Kowalski y escuchamos una conferencia de Terry Winograd sobre el procesamiento del lenguaje natural. El hecho de que no utilizara un formalismo unificado nos dejó perplejos. Fue en ese momento que supimos de la existencia del lenguaje de programación de Carl Hewitt, Planner. La falta de formalización de este lenguaje, nuestro desconocimiento de Lisp y, sobre todo, el hecho de que éramos absolutamente devotos de la lógica hicieron que este trabajo tuviera poca influencia en nuestro posterior. investigación." [12]

En el otoño de 1972, Philippe Roussel implementó un lenguaje llamado Prolog (una abreviatura de PRO grammation en LOG ique – en francés "programación en lógica"). Los programas Prolog tienen genéricamente la siguiente forma (que es un caso especial del encadenamiento hacia atrás en Planner):

Cuando objetivo Q, objetivo P 1 y ... y objetivo P n

Prolog duplicó los siguientes aspectos de Micro-Planner:

Prolog también duplicó las siguientes capacidades de Micro-Planner que fueron pragmáticamente útiles para las computadoras de la época porque ahorraron espacio y tiempo:

El uso de la asunción y negación del nombre único como fracaso se volvió más cuestionable cuando la atención se centró en los sistemas abiertos. [13]

Las siguientes capacidades de Micro-Planner se omitieron de Prolog:

Prolog no incluyó la negación en parte porque plantea problemas de implementación. Considere, por ejemplo, si la negación se incluyera en el siguiente programa Prolog:

no q.
P:- P.

El programa anterior no podría demostrar que no es P aunque siga las reglas de la lógica matemática. Esto es una ilustración del hecho de que Prolog (al igual que Planner) pretende ser un lenguaje de programación y por lo tanto no prueba (por sí solo) muchas de las consecuencias lógicas que se derivan de una lectura declarativa de sus programas.

El trabajo en Prolog fue valioso porque era mucho más simple que Planner. Sin embargo, a medida que surgió la necesidad de un mayor poder expresivo en el lenguaje, Prolog comenzó a incluir muchas de las capacidades de Planner que quedaron fuera de la versión original de Prolog.

Referencias

  1. ^ Carl Hewitt Historia media de la programación lógica: resolución, planificador, prólogo y el proyecto japonés de quinta generación ArXiv 2009. arXiv :0904.3036
  2. ^ McCarthy y col. 1962
  3. ^ Robinson 1965
  4. ^ Verde 1969
  5. ^ Hewitt 1971
  6. ^ Robinson 1965
  7. ^ Sussman, Charniak y Winograd 1971
  8. ^ Golomb y Baumert 1965
  9. ^ Anderson 1972
  10. ^ MacKenzie 2001 pág.82.
  11. ^ Bruynooghe, Pereira, Siekmann y van Emden [2004]
  12. ^ Colmerauer y Roussel 1996
  13. ^ Hewitt y de Jong 1983, Hewitt 1985, Hewitt e Inman 1991

Bibliografía

enlaces externos