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, esencialmente, todo el lenguaje fue implementado como Popler por Julian Davies en la Universidad de Edimburgo 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 construir sistemas de software semántico fueron el procedimental y el lógico . El paradigma procedimental fue personificado por Lisp [2] , que incluía procedimientos recursivos que operaban sobre estructuras de listas.

El paradigma lógico se ejemplificó mediante la resolución de procedimientos de prueba uniformes, que permitían encontrar derivaciones (pruebas) [3] . Según el paradigma lógico, incorporar conocimiento procedimental era “hacer trampa”. [4]

Incorporación procedimental del conocimiento

Planner fue inventado con el propósito de incorporar conocimiento de manera procedimental [5] y fue un rechazo del paradigma del procedimiento de prueba uniforme de resolución , [6] que

  1. Convirtió todo a la forma clausular. Convertir toda la información a la forma clausular es problemático porque oculta la estructura subyacente de la información.
  2. Luego se utilizó la resolución para intentar obtener una prueba por contradicción añadiendo la forma clausal de la negación del teorema que se desea probar. Utilizar ú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 presentaba una interpretación procedimental de oraciones lógicas donde una implicación de la forma (P implica Q) puede interpretarse procedimentalmente de las siguientes maneras usando una invocación dirigida por patrones:

  1. Encadenamiento hacia adelante (antecedentemente):
    Si se afirma P, se afirma Q
    Si no se afirma Q, no se afirma P
  2. Encadenamiento hacia atrás (consecuentemente)
    Si el objetivo es Q, el objetivo es 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 de un 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 , en el trabajo de comprensión de historias de Eugene Charniak, en el trabajo de Thorne McCarty sobre razonamiento legal y en algunos otros proyectos. Esto generó mucho 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 los constructos 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 la planificación y el seguimiento de la ejecución, por Jean-Claude Latombe para el diseño asistido por ordenador, por Nachum Dershowitz para la síntesis de programas, por Richard Fikes para la recuperación deductiva y por Steven Coles para un sistema experto temprano que guiaba el uso de un modelo econométrico.

Las computadoras eran caras. Tenían un solo procesador lento y sus memorias eran muy pequeñas en comparación con las actuales. Por eso, Planner adoptó algunas medidas de eficiencia, entre ellas las siguientes:

La génesis de Prolog

Gerry Sussman , Eugene Charniak , Seymour Papert y Terry Winograd visitaron la Universidad de Edimburgo en 1971, difundiendo la noticia 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 Logistas 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 la lógica 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 hizo las maletas y se fue debido a Papert". [10]

Los acontecimientos mencionados generaron tensión entre los logicistas de Edimburgo, que 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 en IA en el Reino Unido. El informe resultante [ Lighthill 1973; McCarthy 1973] fue muy crítico, aunque se mencionó favorablemente a SHRDLU .

Pat Hayes visitó Stanford, donde aprendió sobre Planner. Cuando regresó a Edimburgo, intentó influir en su amigo Bob Kowalski para que lo tuviera en cuenta en su trabajo conjunto sobre la demostración automática de teoremas. "La demostración de teoremas de resolución pasó de ser un tema candente a una reliquia del pasado equivocado. Bob Kowalski se mantuvo tenazmente fiel a su fe en el potencial de la demostración de teoremas de resolución. Estudió Planner cuidadosamente". [11] Kowalski [1988] afirma: "Recuerdo que intenté convencer a Hewitt de que Planner era similar a la resolución SL". Pero Planner se inventó con el propósito de la incorporación procedimental del conocimiento y fue un rechazo del paradigma del procedimiento de prueba uniforme de resolución. Colmerauer y Roussel recordaron su reacción al conocer Planner de la siguiente manera:

"En septiembre de 1971, mientras asistía a una convención de la IJCAI con Jean Trudel, nos encontramos de nuevo 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 esa época cuando nos enteramos de la existencia del lenguaje de programación de Carl Hewitt, Planner. La falta de formalización de este lenguaje, nuestra ignorancia de Lisp y, sobre todo, el hecho de que nos dedicáramos por completo a la lógica hicieron que este trabajo tuviera poca influencia en nuestras investigaciones posteriores." [12]

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

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

Prolog duplicó los siguientes aspectos de Micro-Planner:

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

El uso de la asunción y negación de un 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, qué pasaría si se incluyera la negación en el siguiente programa de Prolog:

no Q.
P:-P.

El programa anterior no podría demostrar que no es P, aunque se deduce de las reglas de la lógica matemática. Esto es una ilustración del hecho de que Prolog (al igual que Planner) está pensado para ser un lenguaje de programación y, por lo tanto, no demuestra (por sí mismo) muchas de las consecuencias lógicas que se desprenden 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 no estaban incluidas en la versión original de Prolog.

Referencias

  1. ^ Carl Hewitt Historia media de la programación lógica: Resolution, Planner, Prolog y el proyecto japonés de quinta generación ArXiv 2009. arXiv :0904.3036
  2. ^ McCarthy y otros, 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