Planificador (lenguaje de programación)

ImprimirCitar

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 se implementó esencialmente todo el lenguaje como Popler por Julian Davies en la Universidad de Edimburgo en el lenguaje de programación POP-2. 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, lo que influyó 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ánticos eran procedimentales y lógicos. El paradigma procesal fue personificado por Lisp [McCarthy et al. 1962] que presentaba procedimientos recursivos que operaban en estructuras de listas.

El paradigma lógico fue personificado por los buscadores de derivación (prueba) basados en la resolución del procedimiento de prueba uniforme [Robinson 1965]. De acuerdo con el paradigma lógico, era "hacer trampa" incorporar el conocimiento procedimental [Green 1969].

Incrustación procedimental del conocimiento

Planner se inventó con el propósito de la incorporación procesal del conocimiento [Hewitt 1971] y fue un rechazo del paradigma del procedimiento de prueba uniforme de resolución [Robinson 1965], que

  1. Convertir todo en forma clausal. Convertir toda la información en forma clausal es problemática porque esconde 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 para ser probado. Usar sólo la resolución como regla de inferencia es problemática porque esconde la estructura subyacente de las pruebas. Además, el uso de pruebas 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 de procedimiento y lógico porque combinaba la programabilidad con el razonamiento lógico. Planner presentó una interpretación procesal de oraciones lógicas donde una implicación de la forma (P implica Q) puede interpretarse procesalmente de las siguientes maneras usando invocación dirigida por patrones:

  1. Encadenamiento anticipado (principalmente):
    Si afirma P, afirmación Q
    Si afirma no Q, no P
  2. Encadenamiento trasero (consecuentemente)
    Si el objetivo Q, meta P
    Si el objetivo no P, meta no 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 microplanificadores

Gerry Sussman, Eugene Charniak y Terry Winograd [Sussman, Charniak y Winograd 1971] implementaron un subconjunto llamado Micro-Planner y se utilizó en el programa de comprensión del lenguaje natural SHRDLU de Winograd, Eugene Charniak' el trabajo de comprensión de historias, 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 principales paradigmas 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 para 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 de procedimientos 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 control de la planificación y la ejecución, por Jean-Claude Latombe para el diseño asistido por computadora, por Richard Fikes para la recuperación deductiva y por Steven Coles para un sistema experto temprano que uso guiado 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 de hoy. Así que Planner adoptó algunos recursos de eficiencia, incluidos los siguientes:

  • El retroceso [Golomb y Baumert 1965] fue adoptado para economizar el uso del tiempo y el almacenamiento trabajando y almacenando sólo una posibilidad a la vez para explorar alternativas.
  • Se adoptó un supuesto de nombre único para ahorrar espacio y tiempo asumiendo que diferentes nombres se referían a diferentes objetos. Por ejemplo, se suponía que nombres como Peking (nombre de capital anterior del PRC) y Beijing (transliteración actual del capital del PRC) se referían a diferentes objetos.
  • Una suposición del mundo cerrado podría aplicarse mediante pruebas condicionales de si un intento de demostrar un objetivo fracasaba exhaustivamente. Más tarde esta capacidad fue dada el nombre engañoso "negación como fracaso" porque para una meta G era posible decir: "si intentaba alcanzar G entonces fracasa exhaustivamente (No G)."

La génesis de Prolog

Gerry Sussman, Eugene Charniak, Seymour Papert y Terry Winograd visitaron la Universidad de Edimburgo en 1971, difundieron las noticias sobre Micro-Planner y SHRDLU y pusieron 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 (Anderson 1972) y Julian Davies (1973) implementó prácticamente 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 del MIT de Papert, Carl Hewitt. Papert expresó con elocuencia su crítica del enfoque de resolución dominante en Edimburgo "...y al menos una persona levantó palos y se fue debido a Papert". [MacKenzie 2001 pág. 82.]

Los desarrollos anteriores generaron tensión entre los Logicistas en 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 se mencionó favorablemente a SHRDLU.

Pat Hayes visitó Stanford, donde aprendió sobre Planner. Cuando regresó a Edimburgo, trató de influir en su amigo Bob Kowalski para que tuviera en cuenta a Planner en su trabajo conjunto sobre la demostración automática de teoremas. "La demostración del teorema de resolución pasó de ser un tema candente a una reliquia del pasado equivocado. Bob Kowalski se aferró obstinadamente a su fe en el potencial de la demostración del teorema de resolución. Estudió cuidadosamente a Planner”. según Bruynooghe, Pereira, Siekmann y van Emden [2004]. Kowalski [1988] afirma: "Recuerdo haber intentado convencer a Hewitt de que Planner era similar a la resolución SL". Pero Planner fue inventado con el propósito de la incorporación procesal del conocimiento y fue un rechazo del paradigma del procedimiento de prueba uniforme de resolución. Colmerauer y Roussel recordaron su reacción al enterarse de Planner de la siguiente manera:

"Mientras asistíamos a una convención de 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 usara un formalismo unificado nos dejó perplejos. Fue en este momento cuando nos enteramos de la existencia del lenguaje de programación de Carl Hewitt, Planner [Hewitt, 1969]. La falta de formalización de este lenguaje, nuestro desconocimiento de Lisp y, sobre todo, el hecho de que éramos absolutamente devotos a la lógica hizo que este trabajo tuviera poca influencia en nuestras investigaciones posteriores." [Colmerauer y Roussel 1996]

En el otoño de 1972, Philippe Roussel implementó un lenguaje llamado Prolog (una abreviatura de PROgrammation en LOGique - Francés para "programación en lógica&# 34;). Los programas de Prolog son genéricamente de la siguiente forma (que es un caso especial del encadenamiento hacia atrás en Planner):

Cuando la meta Q, meta P1 y... y objetivo Pn

Prolog duplicó los siguientes aspectos de Micro-Planner:

  • Planteamiento de la invocación de procedimientos de objetivos (i.e. encadenamiento atrasado)
  • Una base de datos indexada de procedimientos dirigidos por patrones y oraciones terrestres.
  • Renunciando al paradigma de la integridad que había caracterizado trabajos anteriores sobre teorema probando y sustituyéndolo con la integración procesal de lenguaje de programación del paradigma del conocimiento.

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

  • Estructura de control de retroceso
  • Unique Name Assumption by which different names are assumed to refer to distinct entities, Por ejemplo., Peking y Beijing se supone que son diferentes.
  • Reificación del fracaso. La forma en que Planner estableció que algo era provable era intentar con éxito como objetivo y la forma en que establece que algo era inproviable era intentarlo como meta y fracasar explícitamente. Por supuesto, la otra posibilidad es que el intento de probar el objetivo corre para siempre y nunca devuelve ningún valor. Planner también tenía un (no expresión) construcción que sucedió si expresión falló, lo que dio lugar a la terminología “Negation as Failure” en Planner.

El uso del nombre único Asunción y Negación como falla se volvió más cuestionable cuando la atención se centró en los sistemas abiertos [Hewitt y de Jong 1983, Hewitt 1985, Hewitt e Inman 1991].

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

  • Invocación dirigida por los patrones de los planes de procedimiento de las afirmaciones (i.e., encadenamiento de futuro)
  • Negación lógica, Por ejemplo., (no (sócrates humanos)).

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.
Q:- P.

El programa anterior no podría probar no P aunque sigue las reglas de la lógica matemática. Esta 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í mismo) 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.

Contenido relacionado

Software wiki

Patrón de visitantes

Heapsort

Más resultados...
Tamaño del texto:
Copiar