Inteligencia Artificial Una Nueva Sintesis Nils j. Nilsson

April 18, 2017 | Author: xtian613 | Category: N/A
Share Embed Donate


Short Description

Download Inteligencia Artificial Una Nueva Sintesis Nils j. Nilsson...

Description

OOf NIL l•

n r-L..

CONSULTORES EDITORIALES ÁREA DE INFORMÁTICA y COMPUTACIÓN Antonio Vaquero Sánchez

INTELIGENCIA

ARTIFICIAL

Catedrático de Lenguaje y Sistemas Infonnáticos Escuela Superior de Informática Universidad Complutense de Madrid ESPAÑA

Gerardo Quiroz Vieyra

Una nueva síntesis

Ingeniero de Comunicaciones y Electrónica por la ESIME del Instituto Politécnico Nacional Profesor de la Universidad Autónoma Metropolitana Unidad Xochimilco MÉXICO

-\

NILS J. NILSSON

- ¡

Stanford University

1 1

\

i I "/2 ;,,~é(';., ':>:> .::::. :iii.;¿~;;¿

._,---,-

B'BL'Ol-~CA UW'¡~~R3rr~~R~A\ GHANA[)k \ N,Q Documento 8Ó( 3- S 13

1

,.(,

Traducción

N,Q Copia- i?5~ t..¡~~

--

ROQUE MARÍN MORALES

JOSÉ TOMÁS PALMA MÉNDEZ

ENRIQUE PANIAGUAARIS

Departamento de Informática, Inteligencia Artificial y Electrónica

Universidad de Murcia

Revisión técnica SEBASTIÁN DORMIDO BENCOMO

Departamento de Infonnática y Automática

Universidad Nacional de Educación a Distancia



MADRID· BUENOS AIRES • CARACAS • GUATEMALA • USBOA • MÉXICO

NUEVA YORK· PANAMÁ. SAN JUAN· SANTAFÉ DE BOGOTÁ. SANTIAGO· SAO PAULO

AUCKLAND • HAMBURGO • LONDRES • MILÁN • MONTREAL • NUEVA DELHI • PARís

SAN FRANCISCO • SIDNEY • SINGAPUR • STo LOUIS • TOKIO • TORONTO

Contenido

Prefacio

1. Introducción

xvii

1

1.1. ¿Qué es la lA? .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Aproximaciones a la Inteligencia Artificial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Breve historia de la lA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4. Plan del libro ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5. Lecturas y consideraciones adicionales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejercicios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

5

7

10

12

15

l. SISTEMAS REACTIVOS.............................................

17

2. Agentes de estímulo-respuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.1. Percepción y acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Percepción ........................................... ..... 2.1.2. Acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3. Álgebra booleana ............................................ 2.1.4. Clases y formas de las funciones booleanas. . . . . . . . . . . . . . . . . . . . . . . .

19

22

22

23

24

2.2. Representación e implementación de las funciones para la selección de acciones 2.2.1. Sistemas de producción ....................................... 2.2.2. Redes ..................................................... 2.2.3. La arquitectura de subsunción ..................................

24

25

26

29

2.3. Lecturas y consideraciones adicionales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

31

vii

viü

Contenido

3. Redes neuronales .................................................... .

33

3.1. Introducción ..................................................... . 3.2. Entrenamiento de una ULU ......................................... . 3.2.1. Interpretación geométrica del funcionamiento de una ULU .......... . 3.2.2. La dimensión n + 1 '" ....................................... . 3.2.3. Métodos del gradiente descendente ............................. . 3.2.4. El procedimiento de Widrow-Hoff .............................. . 3.2.5. El procedimiento delta generalizado ............................ . 3.2.6. El procedimiento de corrección del error ......................... . 3.3. Redes neuronales ................................................. . 3.3.1. Motivación ................................................ . 3.3.2. Notación .................................................. . 3.3.3. El método de la retropropagación ............................... . 3.3.4. Cálculo de] cambio de los pesos en la última capa .................. . 3.3.5. Cálculo del cambio de los pesos en las capas intermedias ............ . 3.4. Generalización, precisión y sobreajuste ............................... . 3.5. Lecturas y consideraciones adicionales ................................ . Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .... ..... .

33

34

34

35

35

37

37

39

40

40

4. Sistemas evolutivos .................................................. .

53

4.1. Computación evolutiva ............................................ . 4.2. Programación genética ............................................ . 4.2.1. Representación de los programas en PG ......................... . 4.2.2. E] proceso PG .............................................. . 4.2.3. Desarrollo de un robot seguidor de paredes ....................... . 4.3. Lecturas y consideraciones adicionales ................................ . Ejercicios ........................................................... .

53

54

54

57

58

62

62

5. Sistemas con estados ................................................. .

63

5.1. Representación del entorno mediante vectores de características ............ . 5.2. Redes de Elman .................................................. . 5.3. Representaciones icónicas .......................................... . 5.4. Sistemas basados en pizarras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. 5.5. Lecturas y consideraciones adicionales ................................ . Ejercicios ........................................................... .

63

65

66

71

71

6. Visión artificial ................................................... .. .

75

Introducción ..................................................... . Conduciendo un automóvil ......................................... . Las dos etapas de la visión por computador ............................ . Procesamiento de imágenes ......................................... . 6.4.1. Promediado ................................................ . 6.4.2. Detección de bordes ......................................... .

75

76

78

80

80

83

6.1. 6.2. 6.3. 6.4.

41

42

43

44

Contenido

ix

6.4.3. Un operador para el promediado y la detección de bordes ............ .

6.4.4. Búsqueda de regiones ........................................ .

6.4.5. Otros atributos de imagen distintos a la intensidad ................. .

6.5. Análisis de escenas ............................................... .

6.5.1. Interpretación de líneas y curvas en una imagen ................... .

6.5.2. Visión basada en modelos ..................................... .

6.6. Visión estereoscópica e información sobre la intensidad .................. .

6.7. Lecturas y consideraciones adicionales ................................ .

Ejercicios ........................................................... .

II. BÚSQUEDA EN ESPACIOS DE ESTADO .............................. . 7. Agentes que planifican .

. . . . . . . . . . . . . . .. . . . . "

"

.. .

(í)8. Búsqueda a ciegas .... . . . . . . . . . . . . . ..

(~ \.:) 9.

"

••

..



....

·"

..........



•••

98

99

103

"

105 106 109 110 111 112 112

. .............................. . 115

8.1. Especificación del espacio de búsqueda ............................... .

8.2. Elemento de un grafo de estados implícito ............................. .

8.3. Búsqueda primero en anchura ....................................... .

8.4. Búsqueda primero en profundidad o búsqueda con vuelta atrás ............. .

8.5. Descenso iterativo ................................................ .

8.6. Lecturas y consideraciones adicionales ................................ .

Ejercicios ........................................................... . 't'

Búsqueda heurls lC8

96

. . . . . .. .. . . . . .... ..... .... 105

7.1. Memoria o cálculo, ................................................ .

7.2. Grafos de estados ................................................. .

7.3. Búsqueda en estados explícitos ...................................... .

7.4. Estados basados en características ................................... .

7.5. Notación de grafos ................................................ .

7.6. Lecturas y consideraciones adicionales ................................ .

Ejercicios ........................................................... .

46

50

51

69

~

85 86 89 91 92 94

""

......

"

•••

5

.....

"

..........

,,

.........

"

9.1. Funciones de evaluación ........................................... . 9.2. Algoritmo genérico de búsqueda en grafos ............................. .

9.2.1. Algoritmo A* .................... ' personales de investigadores y mucho material adicional. Mi anterior libro de texto sobre lA, Principles ofArtificial Intelligence (Morgan Kaufmann, 1980)*, está hoy en día completamente obsoleto, pero parte del material introducido en él puede aún ser útil, y lo he usado libremente para preparar el presente volumen. La comparación con otros libros de texto de lA (particularmente [Russell y Norvig, 1995; Rich y Knight, 1991, Y Ste­ fik, 1995]) ha sido también muy útil. Mis estudiantes y los profesores ayudantes de mis cursos sobre inteligencia artificial y aprendizaje en Stanford han hecho diversas sugerencias útiles. La siguiente lista incluye, espero, a la mayoría de ellos: Eyal Amir, David Andre, Scott Benson, George John, Steve Ketchpel, Ron Kohavi, Andrew Kosoresow, Ofer Matan, Karl Pfleger y Charles Richards. Colegas y revisores de Stanford y de otros sitios me han ayudado a aprender lo que ellos ya sabían. Gracias a Helder Coelho, Oscar Firschein, Carolyn Hayes, Giorgio Ingargiola, Leslie Kaelbling, Daphne Koller, John Roza, Richard Korf, Pat Langley, John McCarthy, Bart Selman, Yoav Shoham, Devika Subramanian, Gheorghe Tecuci y Michael Wellman. Gracias especialmente a Cheri Palmer, mi editora de producción en Morgan Kaufmann, que consiguió que me atuviese al plan establecido, aceptando amablemente mis interminables cambios, y que trabajó muy duro para conseguir que un libro difícil como éste fuese publicado en la fecha prevista. El trabajo sobre este libro fue realizado en el Robotics Laboratory del Stanford's Departrnent of Computer Science y en el San­ ta Fe lnstitute. También quiero agradecer el continuo soporte económico recibido de la National Science Foundation.

*

Editado en castellano como Principios de Inteligencia Artificial. Díaz de Santos, 1987. (N. del T.)

Introducción

En mi opinión, para comprender la inteligencia hay que comprender cómo se adquiere, se representa y se almacena el conocimiento; cómo se genera y se aprende el comportamiento inte­ ligente; cómo se desarrollan y se usan las motivaciones, las emociones y las prioridades; cómo las señales sensoriales son transfonnadas en símbolos; cómo se manipulan los símbolos para aplicar la lógica, para razonar sobre el pasado y para planificar el futuro, y cómo los mecanis­ mos de la inteligencia producen los fenómenos de la ilusión, las creencias, las esperanzas, los temores y los sueños --y, sí, incluso la bondad y el amor-o Comprender estas funciones en un nivelfundamental sería, creo yo, un logro científico de la misma escala que lafísica nuclear, la relatividad y la genética molecular. James Albus, en respuesta a Henry Hexmoor, citado en la dirección URL: http://tommy.jsc.nasa.gov/er/er6/mrl/papers/symposium/albuS.txt 13 de febrero de 1995

¿Qué es la lA? La Inteligencia Artificial (lA), en una definición amplia y un tanto circular, tiene por objeto el estudio del comportamiento inteligente en las máquinas. A su vez, el comportamiento inteligen­ te supone percibir, razonar, aprender, comunicarse y actuar en entornos complejos. Una de las metas a largo plazo de la lA es el desarrollo de máquinas que puedan hacer todas estas cosas igual, o quizá incluso mejor, que los humanos. Otra meta de la lA es llegar a comprender este tipo de comportamiento, sea en las máquinas, en los humanos o en otros animales. Por tanto, la lA persigue al mismo tiempo metas científicas y metas de ingeniería. En este libro, nos dedicaremos principalmente a la lA como ingeniería, focalizando nuestra atención sobre los conceptos e ide­ as más importantes que subyacen en el diseño de máquinas inteligentes. La lA ha estado siempre rodeada de controversia. La cuestión básica de la lA -¿Pueden pensar las máquinas?- ha interesado tanto a filósofos como a científicos e ingenieros. En un 1

2

Inteligencia artificial. Una nueva síntesis

famoso artículo, Alan Turing, uno de los fundadores de la informática, expresó esta misma cuestión, pero formulada en términos más adecuados para su comprobación empírica. Es lo que se ha dado en llamar el Test de Turing [Turing, 1950]. Describiremos este test un poco más adelante, en esta misma sección, pero primero es importante destacar lo que ya observara Turing: que la respuesta a la pregunta «¿Pueden pensar las máquinas?» depende de cómo definamos las palabras máquina y pensar. Turing podría haber añadido que la respuesta depende también de cómo se defina la palabra pueden. Consideremos primero la palabra pueden. ¿Queremos decir que las máquinas pueden pensar ya ahora, o que algún día podrán pensar? ¿Queremos decir que las máquinas podrían ser capaces de pensar, en principio (incluso aunque nunca lleguemos a construir ninguna que lo haga), o lo que perseguimos es una implementación real de una máquina pensante? Estas cuestiones son real­ mente importantes puesto que todavía no disponemos de ninguna máquina que posea amplias habilidades pensantes. Algunas personas creen que las máquinas pensantes tendrían que ser tan complejas, y dis­ poner de una experiencia tan compleja (por ejemplo, interaccionando con el entorno o con otras máquinas pensantes), que nunca seremos capaces de diseñarlas o construirlas. Una buena ana­ logía nos la proporcionan los procesos que regulan el clima global del planeta: incluso aunque conociésemos todo 10 que es importante acerca de estos procesos, este conocimiento no nos capa­ citaría necesariamente para duplicar el clima en toda su riqueza. Ningún sistema menos complejo que el formado por la superficie de la tierra, la atmósfera y los océanos --embebido en un espacio interplanetario, calentado por el sol e influenciado por las mareas- sería capaz de duplicar los fenómenos climáticos con todo detalle. De forma similar, la inteligencia de nivel humano, a escala real, podría ser demasiado compleja, o al menos demasiado dependiente de la fisiología humana, para existir fuera de su encarnación en seres humanos inmersos en su entor­ no. (Para una discusión acerca de la importancia de la noción de encarnación véase, por ejemplo, [Lakoff, 1987; Winograd y Flores, 1986; Harnad, 1990, y Matarlc, 1997].) La cuestión de si algu­ na vez seremos capaces, o no, de construir máquinas pensantes de nivel humano no admite aún una respuesta definitiva. El progreso de la lA hacia esta meta ha sido constante, aunque más len­ to de lo que algunos pioneros del tema habían predicho. Personalmente, soy optimista sobre nues­ tro eventual éxito en esta empresa. Consideremos ahora la palabra máquina. Para mucha gente, una máquina es todavía un artefacto más bien estúpido. La palabra evoca imágenes de engranajes rechinando, de chorros de vapor siseando y de piezas de acero martilleando. ¿Cómo podría llegar a pensar una cosa como ésa? Sin embargo, hoy en día, los ordenadores han ampliado en gran medida nuestra noción de lo que una máquina puede ser, y nuestra creciente comprensión de los mecanismos biológicos está expandiéndose incluso más aún. Consideremos, por ejemplo, un virus simple, como el denominado Bacteriófago E6, mostrado esquemáticamente en la Figura 1.1. Su cabe­ za contiene ADN vírico. Este virus es capaz de adherirse a la pared celular de una bacteria mediante las fibras de su cola, pinchar la pared e inyectar su ADN ella. Este ADN hace que la bacteria fabrique millares de copias de cada una de las piezas del virus. Después, las piezas se ensamblan automáticamente ellas mismas, formando nuevos virus que salen de la bacteria para repetir el proceso. El ensamblaje completo se parece mucho al de una máquina, por lo que podríamos, con toda propiedad, decir que se trata de una máquina -una máquina hecha de pro­ teínas. Pero ¿qué ocurre con otros procesos y organismos biológicos? El genoma completo de la bacteria Haemophilus influenzae Rd ha sido secuenciado recientemente [Fleischmann, et al., 1995]. Este genoma consta de 1.830.137 pares de bases (identificadas con las letras A, G, C YT). Esto equivale, aproximadamente, a 3,6 x 1()6 bits, es decir, casi medio megabyte. Aunque todavía no se conoce la función de todos y cada uno de sus 1.743 genes, los científicos están comenzando

3

Introducción

Figura 1.1. Ilustración esquemática del Bacteriófago E6.

a explicar el desarrollo y el funcionamiento de este organismo en los mismos términos en los que explicarían una máquina, -una máquina muy compleja, desde luego. De hecho, hay técnicas que son muy familiares a los informáticos, tales como el uso de cronogramas para los circuitos lógicos, que están demostrando ser útiles para entender cómo los genes regulan los complejos procesos bioquímicos de un virus que infecta a bacterias [McAdams y Shapiro, 1995]. La secuenciación de los genomas completos de otros organismos, incluyendo el genoma humano, está en curso. Una vez que conozcamos estas «marcas», ¿pensaremos en estos organismos -bac­ terias, gusanos, moscas, ratones, delfines, humanos- como máquinas? ¡Si los humanos fuesen máquinas, entonces es que las máquinas pueden pensar! Tendríamos una demostración de su exis­ tencia. Lo que ocurre, «simplemente», es que no conocemos aún cómo funciona la máquina humana. Sin embargo, aunque estuviésemos de acuerdo acerca de lo que es una máquina, este último argumento es rebatible. Aunque una máquina hecha de proteínas puede pensar, quizá una hecha de silicio no sería capaz de hacerlo. Un conocido filósofo, John Searle, cree que la materia de la que estamos hechos es fundamental para la inteligencia [Searle, 1980; Searle, 1992]. Para él, el pensamiento sólo puede ocurrir en máquinas muy especiales -las máquinas vivientes hechas de proteínas. La hipótesis del sistemafísico de símbolos de Newell y Simon [Newell y Simon, 1976] está en oposición directa a las creencias de Searle (y a la noción de encarnación mencionada ante­ riormente). Esta hipótesis establece que un sistema físico de símbolos dispone de los medios necesarios y suficientes para desarrollar una actividad general inteligente. De acuerdo con Newell y Simon, un sistema físico de símbolos es una máquina, tal como un ordenador digital, que es capaz de manipular datos simbólicos -sumar números, reordenar listas de símbolos (por ejemplo, ordenar alfabéticamente una lista de nombres), reemplazar algunos símbolos por otros, etcétera. Un aspecto importante de esta hipótesis es que no importa de qué esté hecho el sistema físico de símbolos. Decimos que la hipótesis de Newell y Simon es «neutral respecto al sustrato».

4

Inteligencia artificial. Una nueva síntesis

Una entidad inteligente podría estar hecha de proteínas, de relés mecánicos, de transistores, o de cualquier otra cosa, con tal de que sea capaz de procesar símbolos l. Otros pensadores creen que no es realmente importante que las máquinas estén hechas de sili­ cio o de proteínas; piensan que el comportamiento inteligente es, en su mayor parte, el resultado de lo que ellos llaman procesamiento subsimbólico, es decir, procesamiento de señales, no de símbolos. Consideremos, por ejemplo, el reconocimiento de rostros familiares. Los humanos hacemos esto sin esfuerzo alguno, y aunque no se sabe exactamente cómo lo hacemos, se sos­ pecha que la mejor explicación para el proceso es la que se basa en el tratamiento de imágenes, o de partes de ellas, como señales multidímensionales, no como símbolos. Podríamos citar muchos otros puntos de vista sobre el tipo de máquinas que podrían ser capa­ ces de desarrollar habilidades pensantes como las de los humanos. Algunas de las hipótesis que se oyen a menudo son las siguientes: • El cerebro procesa la información en paralelo, mientras que los ordenadores convencio­ nales lo hacen secuencialmente. Por tanto, tenemos que construir nuevas variedades de ordenadores paralelos para realizar progresos en la lA. • La maquinaria computacional convencional está basada en la lógica binaria (verdadero o falso). Por tanto, los sistemas realmente inteligentes tendrán que usar algún tipo de lógica borrosa. • Las neuronas animales son mucho más complejas que simples conmutadores -los bloques constructivos básicos de los ordenadores actuales-o Por tanto, necesitaremos neuronas artificiales verdaderamente realistas para construir máquinas inteligentes. Quizá es aún demasiado pronto para que se alcance un consenso en el campo de la IA sobre el tipo de maquinaria requerida, aunque muchos investigadores aceptan ya la hipótesis del siste­ ma físico de símbolos. Finalmente, llegamos a la palabra más difícil: pensar. En lugar de intentar definir esta pala­ bra, Turing propuso un test, el llamado Test de Turing, mediante el cual pudiera decidirse si una máquina particular es o no inteligente. El test fue descrito originalmente como un juego. Citemos del artículo de Turing [Turing, 1950]: En el juego participan tres personas, un hombre (A), una mujer (B) y un interrogador (C), que puede ser de cualquier sexo. El interrogador permanece en una sala, separado de los otros dos, pero pudiendo comunicarse con ellos mediante un teletipo. El objetivo del juego para el interrogador es determinar cuál de los otros dos es el hombre y cuál es la mujer. El interroga­ dor los designa mediante las etiquetas X e Y, y al final del juego debe decir «X es A e Yes B» o «X es B e Y es A». Para ello, el interrogador puede plantear preguntas a A y a B, tales como: C: ¿Podría decirme X cuál es la longitud de su pelo? Supongamos que X es realmente A; entonces es A quien debe responder. El objetivo de A en el juego es intentar que C haga una identificación errónea. El objetivo del juego para el tercer participante (B) es ayudar al interrogador. Ahora podemos plantearnos la siguiente cuestión: «¿Qué sucedería si una máquina inter­ pretase el papel de A en el juego?» ¿El interrogador hará tantas identificaciones erróneas como cuando el juego es interpretado por un hombre y una mujer? Estas cuestiones reem­ plazan a nuestra cuestión original: «¿Pueden pensar las máquinas?»

1 Obviamente, si tomamos en cuenta aspectos prácticos como la velocidad, la estabilidad, la fiabilidad, la capacidad de procesamiento paralelo, la sensibilidad a la temperatura, etc., algunos materiales de construcción serán mejores que otros.

5

Introducción

A menudo, el Test de Turing se simplifica, planteándolo como un juego en el que una máquina intenta convencer a un interrogador humano de que el1a es también humana. Esta ver­ sión simplificada del Test de Turing no se considera usualmente como un test de inteligencia muy útil, debido a que es posible, incluso para programas muy simples, engañar al interrogador humano durante un buen rato, Por ejemplo, el programa ELlZA de Joseph Weizenbaum usa algu­ nos trucos muy simples para ello, pero es capaz de desarrollar un diálogo que resulta aparente­ mente realista para el interrogador poco avezado, aunque es un diálogo completamente vano [Weizenbaum, 1%5]. El programa JULIA de Mauldin es también un programa de diálogo de este tipo, pero más reciente y sofisticado [Mauldin, 1994]2. Aparte del Test de Turing, una cuestión que merece la pena intentar responder es la de cuáles deben ser la habilidades requeridas en una máquina para que podamos calificarla como inteli­ gente. Actualmente, existen muchos programas de ordenador capaces de realizar cosas real­ mente prodigiosas, incluyendo la planificación óptima de rutas aéreas para economizar com­ bustible, la simulación global de condiciones meteorológicas, la planificación del uso de recursos en una factoría, etc. ¿Son inteligentes estos programas? ¿Deben ser considerados como objeto de estudio de la IA? Habíamos comenzado este capítulo describiendo máquinas que difícilmente podrían ser etiquetadas como inteligentes. ¿Son gradualmente más y más inteligentes conforme se incrementa su complejidad? Personalmente, lo creo así, pero existen indudablemente opinio­ nes para todos los gustos.

Aproximaciones a la Inteligencia Artificial Aun aceptando que la IA ya ha sido capaz de producir algunos sistemas prácticos muy útiles, la creencia general es que el objetivo último de alcanzar una inteligencia de nivel humano está aún muy distante. Siendo esto así, todavía hay un gran debate sobre cuáles son las mejores aproxi­ maciones hacia la IA -mejores en el sentido de sentar los fundamentos centrales para conseguir las metas planteadas a largo plazo, así como mejores en el sentido de producir resultados prácti­ cos a corto plazo-. En consecuencia, durante los últimos 40 años ha emergido un cierto núme­ ro de paradigmas diferentes. Cada uno de ellos tiene abogados apasionados, y algunos han pro­ ducido resultados suficientemente interesantes como para no ser descartados sin más. Quizá lo que se requiere es una combinación apropiada de estas aproximaciones diferentes. En cualquier caso, cada investigador cree, a menudo, que la suya es la metodología avanzada que merece espe­ cial atención. Los principales paradigmas pueden ser clasificados en dos grupos. El primer grupo incluye lo que llamaríamos las aproximaciones basadas en procesamiento de símbolos. Se sustentan sobre la hipótesis del sistema físico de símbolos de Newell y Simon, y aunque esta hipótesis no puede considerarse aún como universalmente aceptada, en ella se basa mucho de lo que podríamos llamar IA «clásica» (lo que el filósofo John Haugeland llama «lA al viejo estilo» (GOFAI, o Good-Old-Fashioned-AI). Un miembro destacado de esta familia de aproximaciones es el que se basa en la aplicación de operaciones lógicas sobre bases de conoci­ miento declarativo. Inspirado originalmente en los informes de John McCarthy sobre su «sistema consejero» [McCarthy, 1958], este estilo de lA representa el «conocimiento» sobre un problema del dominio mediante sentencias declarativas, a menudo basadas en sentencias de la lógica de

2 En 1991, Hugh Loebner estableció una competición, el Premio Loebner, ofreciendo un premio de 100.000 dóla­ res al autor del primer programa de ordenador capaz de superar un Test de Turing no restringido. Además, todos los años se proponen competiciones anuales con premios más pequeños para el mejor programa que supere alguna versión res­ tringida del Test de Turing.

r

6

Inteligencia artificial. Una nueva síntesis

predicados o sustancialmente equivalentes a ellas. Para deducir consecuencias a partir de este conocimiento se aplican técnicas de inferencia lógica. Este método admite numerosas variantes, incluyendo aquellas cuyo énfasis está en la axiomatización formal del dominio en un lenguaje lógico. Cuando se aplica a problemas «reales», este método requiere la representación de una can­ tidad sustancial de conocimiento del dominio, por lo que se suele hablar de aproximaciones basa­ das en el conocimiento. Se han construido muchos sistemas basados en estos métodos, y nos refe­ riremos a algunos de ellos más adelante. En muchas de las aproximaciones basadas en procesamiento de símbolos, el análisis de los comportamientos deseados, o la síntesis de máquinas para conseguirlos, se extienden a través de varios niveles. El nivel superior corresponde al nivel del conocimiento [Newell, 1982], en el cual se especifica el conocimiento necesario para que la máquina alcance sus objetivos. A continuación vie­ ne el nivel simbólico, donde se representa este conocimiento mediante estructuras simbólicas, como, por ejemplo, listas escritas en el lenguaje de programación L1SP, y se especifican operacio­ nes sobre estas estructuras. Después están los niveles inferiores, en los cuales, realmente se imple­ mentan las operaciones de procesamiento de símbolos. Muchas aproximaciones basadas en pro­ cesamiento de símbolos utilizan una metodología de diseño «descendente»; se comienza en el nivel del conocimiento y se procede hacia abajo a través de los niveles simbólico y de implementación. El segundo grupo de aproximaciones hacia la lA incluye lo que se denominan aproximacio­ nes «subsimbólicas». Éstas siguen usualmente un estilo de diseño «ascendente», comenzando en el nivel más bajo y procediendo hacia los niveles superiores. En los niveles más bajos, el con­ cepto de símbolo no es tan apropiado como el concepto de señal. Entre las aproximaciones subsimbólicas, una aproximación muy prominente es la que algunos han llamado «vida artifi­ cial». Los defensores de este estilo [Wilson, 1991 y Brooks, 1990] señalan que la inteligencia humana se desarrolló sólo después de más de mi] millones de años de vida sobre la tierra. Según ellos, para conseguir máquinas inteligentes tendremos que seguir muchos de estos pasos evolutivos. Primero, debemos concentramos en la duplicación de las capacidades de procesa­ miento de señal y control de las que disponen los animales más simples -los insectos, por ejem­ plo-- y subir por la escalera evolutiva en pasos sucesivos. Esta estrategia no sólo conducirá a la obtención a corto plazo de máquinas útiles, sino que desarrollará el substrato sobre el cual deben construirse necesariamente los niveles superiores de inteligencia. Este segundo grupo de aproximaciones también pone énfasis en los fundamentos simbólicos. Brooks introdujo ]a hipótesis de los fundamentos físicos, en contraste con la hipótesis de los sis­ temas físicos de símbolos [Brooks, 1990]. Según su hipótesis, se puede obtener un comporta­ miento complejo sin usar modelos centralizados; para ello, bastaría con dejar que los diversos módulos de comportamiento de un agente interactúen independientemente con el entorno. Sin embargo, Brooks acepta que para conseguir lA de nivel humano puede ser necesaria la integra­ ción de las dos aproximaciones. La interacción entre una máquina y su entorno conduce a lo que se denomina comporta­ miento emergente. En palabras de una investigadora [Maes, 1990b, p. 1]:

La funcionalidad de un agente debe verse como una propiedad emergente de la interacción intensiva del sistema con su entorno dinámico. La especificación del comportamiento del agente aislado no explica la funcionalidad que exhibe cuando el agente está operando. Por el contrario, su funcionalidad se basa en gran medida en las propiedades del entorno. No sólo hay que tener en cuenta las características dinámicas del entorno, sino que éstas deben ser explotadas para servir al funcionamiento del sistema. Las redes neuronales son un ejemplo bien conocido de máquinas que provienen de la escue­ la subsimbólica. Estos sistemas, inspirados en modelos biológicos, son interesantes, principal-

7

Introducción

mente por su capacidad de aprendizaje. También se han conseguido resultados interesantes mediante procesos que simulan ciertos aspectos de la evolución biológica: cruzamiento, mutación y reproducción de los organismos mejor adaptados. Otras aproximaciones ascendentes, cercanas a las aproximaciones del tipo «vida artificial», se basan en ]a teoría del control y en el análisis de sistemas dinámicos (véase, por ejemplo, [Beer, 1995, y Port y van Gelder, 1995]). A medio camino entre las aproximaciones descendentes y ascendentes está la basada en autó­ matas situados [Kaelbling y Rosenschein, 1990, y Rosenschein y Kaelbling, 1995]. Kaelbling y Rosenschein proponen un lenguaje de programación para especificar, en un alto nivel de abs­ tracción, el comportamiento deseado en un agente, así como un compilador para crear la circui­ tería necesaria a partir de los programas escritos en este lenguaje.

Breve historia de la lA Cuando empezaron a desarrollarse los primeros ordenadores durante las décadas de los años 40 y 50, algunos investigadores escribieron programas que podían realizar tareas elementales de razonamiento. Entre los resultados más prominentes de esta época podemos citar los primeros programas de ordenador capaces de jugar al ajedrez [Shannon, 1950, Newell, y Shaw y Simon, 1958], los programas capaces de jugar a las damas [Samuel , 1959, y Samuel, 1967] y los pro­ gramas para demostrar teoremas de geometría plana [Gelemter, 1959]. En 1956, John McCarthy y Claude Shannon coeditaron un volumen titulado Automata Studies [Shannon y McCarthy, 1956]. La mayoría de los artículos del volumen trataban sobre los fundamentos matemáticos de ]a teoría de autómatas, por lo que McCarthy, decepcionado, decidió acuñar el término Inteligen­ cia Artificial y usarlo como título de una conferencia celebrada en Dartmouth en 1956. En esta conferencia se presentaron algunos trabajos muy relevantes, incluyendo uno de Allen Newell, Cliff Shaw y Herbert Simon sobre un programa llamado Teorizador Lógico [Newell; Shaw y Simon, 1957], que podía demostrar teoremas en lógica proposicional. Aunque se propusieron muchos otros términos para e] campo, tales como procesamiento de información compleja, inteligencia de máquinas, programación heurística o cognología, sólo el nombre de Inteligencia Artificial ha perdurado. sin duda a causa de la creciente progresión de libros de texto, cursos, con­ gresos y revistas que usaban este término. El primer paso hacia la inteligencia artificial fue dado mucho tiempo atrás por Aristóteles (384-322 a. C.), cuando comenzó a explicar y a codificar ciertos estilos de razonamiento deduc­ tivo que él llamó silogismos. Algunos de los esfuerzos tempranos para automatizar la inteligen­ cia nos parecerían quijotescos hoy en día. Ramón Llul1 (1235-1316), un místico y poeta catalán, construyó una máquina de engranajes, llamada Ars Magna, que supuestamente era capaz de res­ ponder a todas las preguntas. Pero hubieron también científicos y matemáticos que perseguían la automatización del razonamiento. Martín Gardner [Gardner, 1982, p. 3] atribuye a Gottfried Leib­ niz (1646-1716) el sueño de un «álgebra universal mediante la cual todo el conocimiento, inclu­ yendo las verdades morales y metafísicas, pueda ser algún día representado en un único sistema deductivo». Leibniz llamó a su sistema cálculo filosófico o raciocinador; fue, claro está, un sue­ ño que no pudo ser realizado con el aparataje tecnológico de la época. No comenzó a haber un progreso sustancial hasta que George Boole [Boo]e, 1854] desarrolló los fundamentos de la lógica proposicional. El propósito de Boole, entre otras cosas, era «recoger... algunos funda­ mentos probables relativos a la naturaleza y a la constitución de la mente humana». Hacia e] final del siglo XIX, Gottlieb Frege propuso un sistema de notación para el razonamiento mecánico, con lo que inventó mucho de lo que hoy conocemos con el nombre de cálculo de predicados [Frege, 1879]. Llamó a su lenguaje Begriffsschrift, lo que puede ser traducido como «escritura de con­ ceptos».

8

Inteligencia artificial. Una nueva síntesis

En 1958, John McCarthy propuso la utilización del cálculo de predicados como un lenguaje para representar y usar conocimiento en un sistema al que llamó «sistema consejero» [McCarthy, 1958]. A este sistema, en lugar de programarlo, había que decirle lo que necesitaba saber para resolver un problema. Una modesta, pero influyente, implementación de estas ideas fue aborda­ da por Cordell Green en su sistema QA3 [Green, 1969a]. Como resultado de muchas controver­ sias entre los investigadores de la lA, el cálculo de predicados y sus variantes han sobrevivido como el fundamento básico para la representación del conocimiento. Los lógicos del siglo xx, incluyendo a Kurt Gooel, Stephen KIeene, Emil Post, Alonzo Church y Alan Thring, formalizaron y clarificaron lo que puede ser hecho y lo que no puede ser hecho mediante sistemas lógicos y computacionales. Posteriormente, informáticos como Stephen Cook y Richard Karp identificaron las clases de cómputos que, siendo posibles en principio, requerirían cantidades de tiempo y de memoria completamente impracticables. Muchos de estos resultados de la lógica y de la informática se referían a «verdades que no pueden ser deducidas» y a «cálculos que no pueden ser realizados». Seguramente animados por estos hallazgos negativos, algunos filósofos y científicos [Lucas, 1961; Penrose, 1989, y Penro­ se, 1994] los interpretaron como confirmaciones de que la inteligencia humana no podría ser nun­ ca mecanizada. Estos pensadores creían que los humanos son, de alguna forma, inmunes a las limitaciones computacionales inherentes a las máquinas. Sin embargo, la mayoría de los lógicos y de los informáticos creen que estos resultados negativos de ningún modo implican que las máquinas tengan límites que no sean aplicables también a los humanos. El primer artículo moderno que trataba sobre la posibilidad de mecanizar la inteligencia al estilo humano fue el de Alan Thring que ya hemos citado anteriormente [Thring, 1950]. Durante el mismo período, Warren McCulloch y Walter Pitts teorizaban sobre las relaciones entre ele­ mentos computacionales simples y neuronas biológicas [McCulloch y Pitts, 1943]. Demostraron que es posible calcular cualquier función computable mediante redes de puertas lógicas (véase [Minsky, 1967], para un tratamiento muy legible de los aspectos computacionales de las «neu­ ronas de McCulloch-Pitts»). Otro trabajo, de Frank Rosenblatt [Rosenblatt, 1962], exploraba el uso de redes de tipo neuronal, denominadas perceptrones, para el aprendizaje y el reconocimiento de patrones. Algunas otras corrientes de trabajo, entre ellas la cibernética [Wiener, 1948], la psi­ cología cognitiva, la lingüística computacional [Chomsky, 1965] y la teoría del control adaptativo [Widrow y Hoff, 1960], han contribuido también a esta matriz intelectual dentro de la cual se ha desarrollado la lA. Una gran parte del trabajo inicial en la lA (durante la década de los años 60 y la primera par­ te de la década de los 70) se dedicaba a explorar diversas representaciones de problemas, técni­ cas de búsqueda y heurísticas generales que se aplicaban en programas de ordenador capaces de resolver puzzles sencillos, de jugar contra el usuario o de recuperar información. Uno de los pro­ gramas más influyentes fue el Solucionador General de Problemas (GPS, o General Problem Sol­ ver) de Allen Newell, Cliff Shaw y Herbert Simon [Newell; Shaw, y Simon, 1959, y Newell y Simon, 1963]. Entre los problemas de muestra resueltos por estos sistemas pioneros se incluían la integración simbólica [Slagle, 1963], los problemas de álgebra [Bobrow, 1968], los puzzles analógicos [Evans, 1968] yel control de robots móviles [Nilsson, 1984b]. Muchos de estos sistemas constituyen el tema central de los artículos reunidos en el histórico volumen Computa and Thought [Feigenbaum y Feldman, 1963]. Los intentos de «escalar» estos programas y sus técnicas para enfrentarlos a aplicaciones de importancia práctica revelaron que sólo valían para resolver «problemas de juguete». La cons­ trucción de sistemas más potentes requería la inclusión de mucho más conocimiento sobre el dominio de aplicación. Los últimos años de la década de los 70 Y los primeros de la década de los 80 vieron el desarrollo de programas más realistas, que contenían el conocimiento necesario para mimetizar el comportamiento de los expertos humanos en tareas tales como el diagnóstico, el

Introducción

9

diseño y el análisis. Fueron explorados y desarrollados varios métodos para la representación de conocimiento específico del problema. El programa al que se atribuye el mérito de ser el prime­ ro que demostró la importancia de recoger grandes cantidades de conocimiento específico del dominio fue DEN ORAL, un sistema para predecir la estructura de moléculas orgánicas a partir de su fórmula química y de su espectrograma de masas [Feigenbaum; Buchanan, y Lederberg, 1971, y Lindsay et al., 1980]. Después se desarrollaron otros «sistemas expertos», incluyendo sis­ temas para diagnóstico médico [Shortliffe, 1976, y Miller, Pople y Myers, 1982], sistemas para configurar ordenadores [McDermott, 1982] y sistemas para valorar posibles yacimientos de minerales [Campbell et al., 1982, y Duda, Gaschnig y Hart, 1979]. Un buen resumen de la his­ toria de la lA a lo largo de este período fue escrito por [McCorduck, 1979]. Una de las áreas en la que se han realizado progresos sustanciales al escalar el tamaño del problema es el área de los juegos. El 11 de mayo de 1997, un programa de ordenador de mM, denominado DEEP BLUE, consiguió vencer al entonces campeón del mundo de ajedrez, Garry Kasparov, por 3,5 a 2,5 en un encuentro a seis partidas. Este alto nivel de juego se ha consegui­ do gracias a la sinergia de sofisticados algoritmos de búsqueda, ordenadores de alta velocidad y hardware específico para el juego del ajedrez. La inteligencia humana abarca muchas habilidades, incluyendo la habilidad para percibir y analizar escenas visuales y la habilidad para entender o generar el lenguaje. Éstos son temas espe­ cíficos que han recibido mucha atención. Larry Roberts desarrolló uno de los primeros programas de análisis de escenas [Roberts, 1963]. Este trabajo preliminar fue seguido de una extensa can­ tidad de investigación en visión artificial ([Nalwa, 1993] es un buen libro de texto general), guia­ da mediante estudios científicos de los sistemas de visión animal [Letvinn et al., 1959; Hubel, 1988, y Marr, 1982]. Uno de los sistemas pioneros en comprensión del lenguaje natural fue el desarrollado por Terry Winograd [Winograd, 1972]. Durante la década de los años 70 se llevó a cabo un proyecto coordinado multicentro que desarrolló prototipos de sistemas para la comprensión fluida del habla; el sistema LUNAR [Woods, 1973], desarrollado por William Woods, era capaz de res­ ponder a preguntas orales en inglés sobre las muestras de rocas recogidas por las misiones luna­ res de la NASA. Aunque actualmente existen diversos sistemas de comprensión del lenguaje natural, su com­ petencia se restringe a áreas temáticas específicas y a vocabularios especializados. El desarrollo de sistemas con un alcance más amplio requerirá de nuevos avances en la representación de gran­ des cantidades de conocimiento general de sentido común. El proyecto CYC [Guha y Lenat, 1990; Lenat, y Guha 1990, y Lenat, 1995] tiene como uno de sus objetivos la recogida y repre­ sentación de conocimiento de este tipo. Aunque el interés en las redes neuronales decayó un poco tras el trabajo pionero realizado en los últimos años de la década de los 50 por Frank Rosenblatt, resurgió con energía en los años 80. Las redes de elementos no lineales con interconexiones de pesos variables se consideran actual­ mente como una clase muy importante de herramientas para el modelado no lineal. Hoy en día existen diversas aplicaciones importantes de las redes neuronales. El trabajo sobre redes neuro­ nales, junto con el trabajo en temas de vida artificial, ha ayudado a focalizar la investigación actual en lA sobre los problemas relacionados con la conexión entre procesos simbólicos y los sensores y efectores de los robots inmersos en un entorno físico. . Si proyectamos las tendencias actuales hacia el futuro, es razonable esperar un nuevo énfasis en el desarrollo de sistemas autónomos integrados, robots y «softbots». Los softbots [Etzioni y Weld, 1994] son agentes so:tr.ware que recorren Internet buscando la información que ellos creen que puede ser de interés J?irra sus usuarios. La constante presión ejercida para mejorar las capa­ cidades de los robots y dé los agentes software motivará y guiará la investigación en inteligencia artificial durante muchOS años.

r 8

Inteligencia artificial. Una nueva síntesis

En 1958, John McCarthy propuso la utilización del cálculo de predicados como un lenguaje para representar y usar conocimiento en un sistema al que llamó «sistema consejero» [McCarthy, 1958]. A este sistema, en lugar de programarlo, había que decirle lo que necesitaba saber para resolver un problema. Una modesta, pero influyente, implementación de estas ideas fue aborda­ da por Cordell Green en su sistema 0A3 [Green, 1969a]. Como resultado de muchas controver­ sias entre los investigadores de la lA, el cálculo de predicados y sus variantes han sobrevivido como el fundamento básico para la representación del conocimiento. Los lógicos del siglo xx, incluyendo a Kurt GOdel, Stephen Kleene, Emil Post, Alonzo Church y Alan Turing, formalizaron y clarificaron lo que puede ser hecho y 10 que no puede ser hecho mediante sistemas lógicos y computacionales. Posteriormente, informáticos como Stephen Cook y Richard Karp identificaron las clases de cómputos que, siendo posibles en principio, requerirían cantidades de tiempo y de memoria completamente impracticables. Muchos de estos resultados de la lógica y de la informática se referían a «verdades que no pueden ser deducidas» y a «cálculos que no pueden ser realizados». Seguramente animados por estos hallazgos negativos, algunos filósofos y científicos [Lucas, 1961; Penrose, 1989, y Penro­ se, 1994] los interpretaron como confIrmaciones de que la inteligencia humana no podría ser nun­ ca mecanizada. Estos pensadores creían que los humanos son, de alguna forma, inmunes a las limitaciones computacionales inherentes a las máquinas. Sin embargo, la mayoría de los lógicos y de los informáticos creen que estos resultados negativos de ningún modo implican que las máquinas tengan límites que no sean aplicables también a los humanos. El primer artículo moderno que trataba sobre la posibilidad de mecanizar la inteligencia al estilo humano fue el de Alan Turing que ya hemos citado anterionnente [Turing, 1950]. Durante el mismo período, Warren McCulloch y Walter Pitts teorizaban sobre las relaciones entre ele­ mentos computacionales simples y neuronas biológicas [McCulloch y Pitts, 1943]. Demostraron que es posible calcular cualquier función computable mediante redes de puertas lógicas (véase [Minsky, 1967], para un tratamiento muy legible de los aspectos computacionales de las «neu­ ronas de McCulloch-Pitts»). Otro trabajo, de Frank Rosenblatt [Rosenblatt, 1962], exploraba el uso de redes de tipo neuronal, denominadas perceptrones, para el aprendizaje y el reconocimiento de patrones. Algunas otras corrientes de trabajo, entre ellas la cibernética [Wiener, 1948], la psi­ cología cognitiva, la lingüística computacional [Chomsky, 1965] y la teoría del control adaptativo [Widrow y Hoff, 1960], han contribuido también a esta matriz intelectual dentro de la cual se ha desarrollado la lA. Una gran parte del trabajo inicial en la lA (durante la década de los años 60 y la primera par­ te de la década de los 70) se dedicaba a explorar diversas representaciones de problemas, técni­ cas de búsqueda y heurísticas generales que se aplicaban en programas de ordenador capaces de resolver puzzles senci11os, de jugar contra el usuario o de recuperar información. Uno de los pro­ gramas más influyentes fue el Solucionador General de Problemas (GPS, o General Problem Sol­ ver) de Allen Newell, Cliff Shaw y Herbert Simon [Newell; Shaw, y Simon, 1959, y Newell y Simon, 1963]. Entre los problemas de muestra resueltos por estos sistemas pioneros se incluían la integración simbólica [Slagle, 1963], los problemas de álgebra [Bobrow, 1968], los puzzles analógicos [Evans, 1968] y el control de robots móviles [Nilsson, 1984b]. Muchos de estos sistemas constituyen el tema central de los artículos reunidos en el histórico volumen Computer and Tlwught [Feigenbaum y Feldman, 1963]. Los intentos de «escalar» estos programas y sus técnicas para enfrentarlos a aplicaciones de importancia práctica revelaron que sólo valían para resolver «problemas de juguete». La cons­ trucción de sistemas más potentes requería la inclusión de mucho más conocimiento sobre el dominio de aplicación. Los últimos años de la década de los 70 y los primeros de la década de los 80 vieron el desarrollo de programas más realistas, que contenían el conocimiento necesario para mimetizar el comportamiento de los expertos humanos en tareas tales como el diagnóstico, el

9

Introducción

diseño y el análisis. Fueron explorados y desarrollados varios métodos para la representación de conocimiento específico del problema. El programa al que se atribuye el mérito de ser el prime­ ro que demostró la importancia de recoger grandes cantidades de conocimiento específico del dominio fue DENDRAL, un sistema para predecir la estructura de moléculas orgánicas a partir de su fórmula química y de su espectrograma de masas [Feigenbaum; Buchanan, y Lederberg, 1971, y Lindsay et al., 1980]. Después se desarrollaron otros «sistemas expertos», incluyendo sis­ temas para diagnóstico médico [Shortliffe, 1976, y Miller, Pople y Myers, 1982], sistemas para configurar ordenadores [McDermott, 1982] y sistemas para valorar posibles yacimientos de minerales [Campbell et al., 1982, y Duda, Gaschnig y Hart, 1979]. Un buen resumen de la his­ toria de la lA a lo largo de este período fue escrito por [McCorduck, 1979]. Una de las áreas en la que se han realizado progresos sustanciales al escalar el tamaño del problema es el área de los juegos. El 11 de mayo de 1997, un programa de ordenador de IBM, denominado DEEP BLUE, consiguió vencer al entonces campeón del mundo de ajedrez, Garry Kasparov, por 3,5 a 2,5 en un encuentro a seis partidas. Este alto nivel de juego se ha consegui­ do gracias a la sinergia de sofisticados algoritmos de búsqueda, ordenadores de alta velocidad y hardware específico para el juego del ajedrez. La inteligencia humana abarca muchas habilidades, incluyendo la habilidad para percibir y analizar escenas visuales y la habilidad para entender o generar el lenguaje. Éstos son temas espe­ cíficos que han recibido mucha atención. Larry Roberts desarrolló uno de los primeros programas de análisis de escenas [Roberts, 1963]. Este trabajo preliminar fue seguido de una extensa can­ tidad de investigación en visión artificial ([Nalwa, 1993] es un buen libro de texto general), guia­ da mediante estudios científicos de los sistemas de visión animal [Letvinn el al., 1959; Hubel, 1988, y Marr, 1982]. Uno de los sistemas pioneros en comprensión del lenguaje natural fue el desarrollado por Terry Winograd [Wmograd, 1972]. Durante la década de los años 70 se llevó a cabo un proyecto coordinado multicentro que desarrolló prototipos de sistemas para la comprensión fluida del habla; el sistema LUNAR [Woods, 19731. desarrollado por William Woods, era capaz de res­ ponder a preguntas orales en inglés sobre las muestras de rocas recogidas por las misiones luna­ res de la NASA. Aunque actualmente existen diversos sistemas de comprensión del lenguaje natural, su com­ petencia se restringe a áreas temáticas específicas y a vocabularios especializados. El desarrollo de sistemas con un alcance más amplio requerirá de nuevos avances en la representación de gran­ des cantidades de conocimiento general de sentido común. El proyecto [Guha y Lenat, 1990; Lenat, y Guha 1990, y Lenat, 1995] tiene como uno de sus objetivos la recogida y repre­ sentación de conocimiento de este tipo. Aunque el interés en las redes neuronales decayó un poco tras el trabajo pionero realizado en los últimos años de la década de los 50 por Frank Rosenblatt, resurgió con energía en los años 80. Las redes de elementos no lineales con interconexiones de pesos variables se consideran actual­ mente como una clase muy importante de herramientas para el modelado no lineal. Hoy en día existen diversas aplicaciones importantes de las redes neuronales. El trabajo sobre redes neuro­ nales, junto con el trabajo en temas de vida artificial, ha ayudado a focalizar la investigación actual en lA sobre los problemas relacionados con la conexión entre procesos simbólicos y los sensores y efectores de los robot si una determinada celda está libre para ser ocupada o no, y para ello debe llevar a cabo las acciones primitivas que correspondan. El robot puede percibir si cada una de las ocho celdas con las que limita están libres o no. De esta forma, podemos decir que nuestro sistema (el robot) dispone de ocho entradas sensoriales a las que asociaremos las variables binarias SI' S2' S3' S4' ss' S6' S7 Y ss' Estas variables tomarán el valor O siempre que la correspondiente celda (relativa a la posición del robot, tal como se mues­

* Para la elaboración de la condición por la que no pueden existir pasillos estrechos se puede consultar www.mkp.comlnils/clarified. (N. del T.) 19

20

Inteligencia artificial. Una nueva síntesis

21

Agentes de estímulo-respuesta

El robot percibe si las ocho celdas que le rodean están libres u ocupada. 3

---

•••

6.4.1. Promediado A partir de aquí, asumiremos que la imagen está representada por una matriz de dimensión m x n; I(x,y), de números, a la que denominaremos matriz de intensidad de la imagen, y que divide el plano de la imagen en celdillas que se denominan píxels. Cada uno de los números que forman

la matriz de intensidades representa la intensidad de la luz en el correspondiente punto de la ima­

gen. Mediante el promediado podemos suavizar determinadas irregularidades que pueden apa­

recer en la imagen. Esta operación se realiza desplazando una ventana de promediado por toda la imagen. Para cada píxel, centramos la ventana de promediado en él y calculamos la suma pro­

mediada de todos los números correspondientes a los píxels que están cubiertos por la ventana.

Una vez que hemos realizado la suma ponderada, su resultado se utiliza para reemplazar el valor del píxel central. Esta operación de desplazamiento de la ventana y el cálculo de la suma pon-

= s(t) * w(t)

••

•• • ~

Imagen original

./

Suma = 2 < 3

Imagen promediada

Figura 6.6. Elementos del proceso de promediado.

r

82

Inteligencia artificial. Una nueva síntesis

Visión artificial

83

tado de aplicar la operación de promediado a una imagen binaria mediante una función de sua­

vizado rectangular y el uso de un valor umbral (en la figura, hemos supuesto que los píxels negros

representan valores altos de intensidad, mientras que los blancos representan valores bajos de

intensidad; este convenio puede ser invertido, pero hace que este ejemplo sea un poco más sim­

ple). Como se puede apreciar en el ejemplo, el proceso de suavizado tiende a reoforzar las lí­

neas gruesas y a eliminar las líneas fmas y los detalles pequeños.

Una función comúnmente utilizada para suavizar las imágenes es la función gaussiana de dos

dimensiones:

1

W(x,y)

=G(x,y) = - - 2 e

_ x2+y2

(a) Imagen original

(b) Anchura del gaussiano =2 píxeles

20"2

21t0'

Como podemos ver en la Figura 6.7, la superficie descrita por la función gaussiana tiene for­

ma de campana (para hacer más clara la gráfica hemos rotado los ejes de la misma). La desvia­

ción estándar de la gaussiana, 0', determina la «anchura» de la superficie, y, como ya menciona­

mos, el grado de suavizado. La integral de G(x,y) sobre x e y es igual a 1. En la Figura 6.8 3 se

pueden ver tres versiones suavizadas de la escena original, en la que aparecen los bloques y el

robot, en las cuales se han utilizado diferentes factores de suavizado (normalmente, las versiones

discretas de las operaciones de suavizado y filtrado realizan interpolaciones entre los valores dis­

cretos para mejorar el rendimiento).

Como podemos apreciar en la secuencia de imágenes de la Figura 6.8, el grado de borrosidad

de las imágenes va aumentando. Una forma de entender este fenómeno consiste en considerar que

la función de intensidad de la imagen I(x,y) representa un campo de temperatura inicial definido

sobre una superficie rectangular conductora de calor. A medida que pasa el tiempo, el calor se

difunde isotrópicamente sobre la superficie provocando que las temperaturas altas se mezclen con

las bajas. De acuerdo con esta visión, la secuencia de imágenes de la Figura 6.8 se puede ver como la evolución del campo de temperaturas inicial a lo largo del tiempo. Koenderink [Koen­ derink, 1984] ha demostrado que la convolución de una imagen con una función gaussiana de desviación estándar 0', es equivalente a encontrar la solución de la ecuación de difusión, para un tiempo proporcional a O' y estando las condiciones iniciales definidas por el campo de intensidad correspondiente a la imagen inicial.

w

y . . . . . ._ ....... x

Figura 6.7. Función gaussiana de suavizado.

3 El autor agradece a Charles Richards la creación de las imágenes y programación de las operaciones de proce­ samiento que se utilizan en este capítulo.

(e) Anchura del gaussiano

=4 píxeles

(b) Anchura del gaussiano = 8 píxeles

Figura 6.8.

Imagen suavizada por un filtro gaussiano.

6.4.2.

Detección de bordes Como hemos mencionado anteriormente, algunas de las técnicas usadas en la visión por com­ putador están orientadas a la detección de los bordes de la imagen. Una vez detectados los bordes, éstos pueden usarse para tnmsformar la imagen en un dibujo a base de líneas. Posteriormente, los contornos obtenidos en la imagen transformada se pueden comparar con los patrones de contor­ nos característicos de los objetos que pueden aparecer en la imagen. Uno de los métodos que se utilizan para detectar contornos en una imagen empieza por un proceso que resalta los bordes. Un borde es un área de la imagen a través de la cual alguna propiedad, como, por ejemplo, la inten­ sidad, cambia de manera abrupta. Como podemos ver en la Figura 6.3, en la mayoría de los casos los bordes están relacionados con propiedades relevantes de los objetos de la escena. Comenzaremos nuestro análisis considerando imágenes «unidimensionales» en las que la función de intensidad I(x,y) varía sólo a lo largo del eje x. Después, generalizaremos los resulta­ dos alcanzados al caso bidimensional. Para resaltar los bordes de intensidad de una imagen unidimensional, podemos convolucionarla con una ventana dividida verticalmente en dos partes, una negativa y otra positiva. En la Figura 6.9 se puede ver una ventana de este tipo. La única res­ tricción que debemos tener en cuenta es que la suma ponderada de la ventana debe ser nula para las zonas uniformes de la imagen. Si convolucionamos la ventana de la Figura 6.9 con la imagen a lo largo de la dirección del eje x, obtendremos unos picos en aquellas posiciones en las que el borde está alineado en la direc­ ción y. Esta operación es similar al cálculo de la primera derivada de la función de intensidad de la imagen respecto a x, dl/dx. Si hubiésemos calculado la segunda derivada, habríamos obtenido unos efectos más pronunciados. En este último caso, obtendríamos una banda de valores positi­ vos a un lado del borde, una banda con valor cero en el borde y una banda con valores negativos

,...­ 84

Inteligencia artificial. Una nueva síntesis

85

Visión artificial

6.4.3. Un operador para el promediado y la detección de bordes Parte «negativa»

Parte «positiva» de la ventana

--¡-¡...fIII~111tt~111

de la ventana

Si sólo utilizásemos técnicas para la detección de bordes, resaltaríamos tanto los bordes como los elementos aleatorios de ruidos que aparezcan en la imagen. Para obtener técnicas que sean menos sensibles al ruido, podríamos combinar las dos operaciones que acabamos de ver: prime­ ro realizaríamos un promediado y posteriormente aplicaríamos una técnica para la detección de bordes. En el caso unidimensional continuo, el suavizado se puede realizar mediante la convo­ lución con la función gaussiana: X2

1 - 2,,2 --e G(x ) = -J2iicr

Figura 6.9. Detección de bordes.

donde cr es la desviación estándar y proporciona una medida de la anchura de la función de sua­ vizado. Por medio del suavizado a través de una función gaussiana obtenemos la función filtrada:

al otro lado del borde. En la Figura 6.10 se pueden ver estos efectos para un caso unidimensional,

en el que la intensidad cambia suavemente (y, por tanto, es derivable) a diferencia del cambio

brusco de intensidad que se muestra en la Figura 6.9. Por supuesto, cuanto más abrupto sea el

cambio en la intensidad de la imagen, más estrecho será el pico en dlldx. Con esta técnica, los

bordes de una imagen se localizarán en las posiciones donde d 2lldr =O, es decir, en los cruces

por cero de la segunda derivada de la imagen.

*

J

l*(x) = l(x) G(x) = l(u)G(u-x) du

Aplicando a dicha imagen una técnica para resaltar los bordes, obtenemos: d 2 [I*(x)] / dx 2

=d 2 [/(x) * G(x)] / dx 2 = d 2 [J l(u)G(u -

x) du] / dx 2

2 Intensidad de la imagen /(x)

1,5 1

0,5

que con­ tienen superticies que no son planas. En [Nalwa, 1993, Cap. 4] se puede ver una exposición más completa (con referencias a otros trabajos) sobre la interpretación de dibujos de líneas. La interpretación de las líneas y curvas de un dibujo de líneas nos proporciona una gran can­ tidad de información útil. Por ejemplo, un robot podría predecir que si se dirige hacia un borde cóncavo (o pliegue), eventualmente podría quedar situado en un rincón. De la misma forma, para que un robot pueda moverse en un entorno con obstáculos poliédricos, sólo tendría que evitar los bordes convexos. Como hemos visto, a partir de un dibujo de líneas ya interpretado podemos extraer, tanto las características que necesitamos como un modelo icónico, siempre y cuando con­ temos con el conocimiento general suficiente sobre el tipo de escenas que estamos tratando.

_b_

a, b, e + 6 parámetros de localización

Figura 6.18. Cilindro generalizado.

¡ij

-ll

6.5.2. Visión basada en modelos El siguiente paso en el incremento de la complejidad del conocimiento requerido en el análisis de escenas consiste en el uso de modelos de los objetos que pueden aparecer en la escena. Por ejem­ plo, si supiésemos que una escena va a estar formada por elementos utilizados en la construcción de robots, los modelos geométricos sobre las formas de dichos elementos nos podrían ayudar en la interpretación de las imágenes. En los siguientes párrafos haremos un breve análisis sobre las

1 1

II._ _J'

Figura 6.19. Modelado de una escena utilizando cilindros generalizados.

I~¡

96

Inteligencia artificial. Una nueva síntesis

cilindro del modelo puede ser descompuesto en otros cilindros más pequeños que se ajustan a la figura de una forma más precisa. La representación de objetos de una escena mediante una jerarquía de cilindros generalizados es, según palabras de Nalwa [Nalwa, 1993, p. 293], «más fácil de decir que de hacer», aunque el método ha sido utilizado en determinadas aplicaciones sobre reconoci­ miento de objetos [Brooks, 1981]. En [Ballard y Brown, 1982, Cap. 9], se puede ver un análisis más detallado sobre la utilización de modelos para la representación de estructuras tridimensionales. Disponiendo de un conjunto suficiente de elementos de modelado, podemos ajustar dichos modelos a las regiones de una imagen hasta que obtengamos, o bien una representación icónica de toda la escena, o bien suficiente información de la escena para extraer de ella el conjunto de características necesarias para la tarea que se está desarrollando. Para comprobar la precisión de los métodos basados en modelos, se puede comparar la imagen original con una imagen simu­ lada, que se puede obtener del modelo icónico producido en el análisis de escena. La imagen simulada puede ser renderizada a partir del modelo utilizando parámetros parecidos a los utili­ zados en el proceso de adquisición de la imagen (ángulo de la cámara, posición de la misma, etcé­ tera). Para poder realizar este proceso es necesario disponer de buenos modelos para la ilumina­ ción, la reflectancia de las superficies y para todos los aspectos que son necesarios para el proceso de renderización, tal y como es utilizado en el campo de los gráficos por computador.

97

Visión artificial

Plano de la imagen

I

Objeto

h

1o(_---

d =hItan a.

1

.1

Suelo

Figura 6.20. Cálculo de la profundidad a partir de una única imagen.

Visión estereoscópica e información sobre la profundidad Si sólo nos basamos en el proceso de proyección en perspectiva, un objeto grande y alejado de la cámara puede producir la misma imagen que un objeto parecido pero más pequeño y cercano. Esto nos puede dar una idea de lo complejo que resulta estimar las distancias a las que se encuentran los objetos utilizando una sola imagen. Mediante la visión estereoscópica, podemos obtener información sobre la profundidad de los objetos, que está basada en un proceso de triangulación a partir de dos (o más) imágenes. Sin embargo, antes de analizar el proceso de visión estereoscópica, indicaremos cómo, bajo ciertas circunstancias y con un conocimiento previo apropiado, podemos extraer información de profundidad de una sola imagen. Por ejemplo, el análisis de la textura de una imagen (teniendo en cuenta las transformaciones en perspectiva de las texturas de la escena) puede indicar que algu­ nos elementos están más alejados que otros. Incluso, si tenemos en cuenta ciertas circunstancias, podemos obtener información más precisa sobre la profundidad de los objetos. Por ejemplo, si estamos analizando una escena en el interior de una oficina y sabemos que uno de los objetos per­ cibidos está en el suelo, conociendo la altura a la que está la cámara y el ángulo formado por el centro de la lente y el objeto, podemos calcular de una forma precisa la distancia a la que se encuentra dicho objeto. En la Figura 6.20 podemos ver un ejemplo de este tipo de cálculos (podemos calcular el ángulo a partir de la distancia focal de la cámara y las dimensiones de la imagen). Los mismos cálculos se pueden utilizar para la distancia a la que se encuentran las puer­ tas, el tamaño de los objetos, etc. La visión estereoscópica también se basa en el proceso de triangulación. La idea es bastante simple. Consideremos el gráfico de la Figura 6.21, en el que aparecen dos lentes cuyos ejes ópti­ cos están separados por una distancia b. En el gráfico se puede ver cómo se forman dos imágenes, correspondientes a una escena formada por un punto situado a una distancia d de la línea que une los centros de las lentes. En el mismo gráfico se muestra cómo se pueden ca1cular los ángulos que forman las imágenes con el centro de la lente. A medida que los objetos sean más pequeños y que la distancia entre las lentes sea más grande, se pueden conseguir mediciones más precisas, aun­ que siempre estaremos limitados por la precisión con que estén hechas las medidas iniciales (dis­ tancia entre las lentes y distancia entre las lentes y el objeto de la escena). El ejemplo que estamos

Planos de la imagen

Lente ---1-1

~

a.

Punto l.

......,,~~--

d

)01

1 b

d=

a. + tan p)

1p Lente

Figura 6.21. Proceso de triangulación en la visión estereoscópica.

considerando supone una simplificación de lo que suele ocurrir en la realidad, ya que los ejes ópticos son paralelos, los planos de las imágenes son coplanares y el punto considerado en la escena está en el mismo plano en el que se encuentran los ejes ópticos. En situaciones reales, estas condiciones no se cumplen, lo que complica la geometría del proceso aunque la idea bási­ ca de la triangulación sea la misma (hay que tener en cuenta que los animales y algunos robots pueden rotar los ejes ópticos de las lentes para apuntar a un determinado punto de la imagen).

98

Inteligencia artificial. Una nueva síntesis

Sin embargo, el proceso de triangulación no es la principal complicación en la visión este­ reoscópica. En aquellas escenas que contengan más de un punto (obviamente, el caso más usual), el primer proceso que hay que realizar es el de encontrar parejas de puntos, donde cada punto pertenezca a una imagen distinta, que se correspondan con el mismo punto de la escena (para, de esta forma, poder calcular las distancias). Dicho en otras palabras, una vez que hemos sido capaces de detectar en una imagen un píxel y su correspondiente punto en la escena, debe­ ríamos ser capaces de identificar el píxel correspondiente en la otra escena. Este problema es conocido como el problema de la correspondencia. El espacio del que disponemos en este libro no nos permite tratar con la profundidad requerida el problema de la correspondencia; sin embargo, sí podemos hacer unas pocas observaciones. Primero, teniendo en cuenta la geometría del problema, el problema de encontrar el píxel correspondiente en la otra imagen se reduce a una búsqueda a lo largo de una dimensión (en vez de dos). Esta dimensión se denomina línea epipolar. Esta búsqueda unidimensional se puede rea­ lizar mediante una correlación cruzada de las dos imágenes de intensidad a lo largo de las líneas epipolares. Segundo, en muchas aplicaciones, no es necesario encontrar correspondencias entre pares de puntos individuales de la imagen, ya que podemos buscar correspondencias entre ele­ mentos más grandes, como, por ejemplo, líneas 7. Mediante el análisis de escenas de cada una de las imágenes podemos obtener pistas que nos ayuden a encontrar las correspondencias entre lí­ neas. En [Nalwa, 1993, Cap. 71, podemos encontrar una excelente revisión de los métodos com­ putacionales utilizados para la visión estereoscópica.

Lecturas y consideraciones adicionales El grupo que desarrolló ALVINN continúa trabajando en otros sistemas de navegación autónoma, y alguno de ellos utiliza técnicas similares a las analizadas en este capítulo ([Thorpe et al., 1992]). En trabajos similares, [Herbert et al., 1992] describen un sistema de navegación autónoma en terrenos abiertos y utilizan visión estereoscópica y sensores infrarrojos. Aunque existen aplicaciones en las que el sistema de visión artificial necesita trabajar con modelos tridimensionales de la escena, los robots, normalmente, sólo requieren la información necesaria para poder desarrollar la tarea que les ha sido encomendada. Como una reacción a los primeros trabajos en visión, que estaban orientados al cálculo de modelos de la escena completa, algunos autores se han centrado en el campo de la visión dirigida por objetivos, tarea que consi­ deran más importante. En [Horswill, 1993], se presenta un interesante ejemplo de un sencillo sis­ tema de visión orientado a tareas. Los sistemas orientados a tareas, normalmente, son suficientes para conseguir una navegación robusta en un robot. Otro ejemplo de esta filosofía se puede ver en [Churchland; Ramachandran, y Sejnowski, Estudiando los fundamentos psicológicos y neurofisiológicos de la visión humana y animal, podemos aprender mucho acerca del proceso de percepción visual. [Gibson, 1950; Gibson, 1979] ha estudiado, entre otros fenómenos, cómo cambia el campo visual cuando aparece un objeto en movi­ miento en sus inmediaciones. [Jules, 1971] descubrió que los humanos pueden explotar las discon­ tinuidades en una distribución aleatoria de puntos para obtener infonnación de profundidad. [Marr y Poggio, 1979] han construido un modelo neuronal que simula el proceso de visión estereoscópica. Distintos experimentos realizados con ranas [Letvinn et al., 1959] han revelado que su sis­ tema visual sólo responde a cambios globales en la iluminación (como los que podría causar la sombra de un animal grande que se está acercando) o el movimiento de objetos pequeños y oscu­ ros (como, por ejemplo, moscas). En [Hubel y Wiesel, 1968], se describen una serie de experi­ 7

O podemos encontrar correspondencias entre los puntos de la imagen en los que las líneas se intersectan.

99

Visión artificial

mentos realizados con monos que demuestran que ciertas neuronas de la corteza visual se excitan ante la presencia de segmentos en distintas orientaciones en su campo visual. Otros experimen­ tos realizados con cangrejos han revelado que existen células adyacentes de su sistema visual que se inhiben entre sí (inhibición lateral), produciendo un efecto muy parecido a lo que más tarde se ha conocido como el filtrado laplaciano [Reichardt, 1965]. Para profundizar en el campo de la visión biológica, se puede acudir a [Marr, 1982; Hubel, 1988]. [Bhanu y Lee, 1994] han utilizado técnicas genéticas para el proceso de segmentación de imágenes. Los congresos más relevantes en el área de la visión por computador son: el Congreso Inter­ nacional en Visión por Computador, ICCV (Interoational Conference on Computer Vision), el Congreso Europeo en Visión Artificial, ECCV (European Conference on Computer Vision) y el congreso sobre Visión Artificial y Reconocimiento de Patrones, CVPR (Computer Vision and Pat­ tero Recognition). La publicación más importante es el Intemational Joumal of Computa Vision. Entre los libros más relevantes, podemos citar [Nalwa, 1993; Horo, 1986; Ballard y Brown, 1982; Janí, Kasturi y Schunck, 1995, y Faugeras, 1993]. En [Fischler y Firschein, 1987], se pue­ de encontrar una recopilación de algunos de los artículos más importantes sobre visión por computador. El libro [Strat, 19921 está dedicado a escenas de exterior, y una publicación donde se trata de forma divulgativa nuestro proceso visual es [Gregory, 1966].

6.1. Se nos propone el diseño de un sistema visual que sirva para detectar pequeños objetos negros sobre un fondo claro. Podemos suponer que uno de esos objetos es un cuadrado de 5 píxe­ les de ancho. El sistema será usado para definir una característica booleana que valdrá 1 cuando aparezca un único objeto de ese tipo en la imagen (representada por una matriz de 100 X 100), Y valdrá Oen cualquier otro caso. Describa cómo se podría diseñar un sistema de este tipo mediante: a) Una red neuronal con una capa oculta. b) Un proceso de convolución con una función de ponderación especialmente diseñada para

este problema. 6.2. Dada la función I(x), que representa una imagen unidimensional, y la función W(x), que representa una función unidimensional de ponderación, represente gráficamente el resultado de la convolución I(x) * W(x).

[(x)

i

i

i

i

i

I

i

i

i

!

i

i

i

i

I

,

I

I

i

i

i

i

..

X

i

I

..

X

W(x)

i

100

Inteligencia artificial. Una nueva síntesis

6.3. La cruz de Roberts es un sencillo operador para la detección de bordes que produce una ima­ gen, l*(x, y), a partir de una imagen original I(x, y) según la siguiente expresión: l*(x,y) =~(/(x,y)-I(x+ ~,y + ~W + (/(x, y +~)

Visión artificial

101

6.5. La siguiente figura representa el triángulo de Penrose, que es una figura imposible muy conocida.

l(x + ~,y»2

donde se toma el valor positivo de la raíz cuadrada y ~ indica un desplazamiento de un píxel de longitud. Se pide utilizar el cálculo diferencial para encontrar y adaptar la expresión anterior para píxeles de tamaños infinitesimales y usar dicha expresión para calcular l*(x, y) cuando l(x, y) se define de la siguiente forma: 1* (r, 9)

1 para r < 9

1* (r,9)

=1 para r> 10

l*(r,9)

=lO-r para 9 > r< 10

Considere que la imagen completa tiene un radio de 20 píxeles. (Nota: Para facilitar el pro­ ceso, puede ser útil expresar la imagen en coordenadas polares). En la figura siguiente se puede ver de forma esquemática la imagen utilizada como ejemplo: l(r, a)

6.4. Etiquete las líneas y los vértices de la siguiente figura con alguna de las clases comentadas en la Sección 6.5.1. Muestre todos los posibles etiquetados consistentes que pudieran existir y dé una interpretación física a los mismos.

¿Es posible encontrar un etiquetado consistente para dicho triángulo? Considere que la figura está suspendida en un espacio vacío. Sobre la base de a esta figura, analice la relación que puede existir entre lo que podríamos denominar consistencia local y consistencia global.

...

úsqueda en

• espacIos

de estado

El hombre que no hace planes a largo plazo se encontrará con problemas a la vuelta de la es­ quina. Confucio ... [la hormiga] sabía que se tenían que tomar ciertas medidas, pero no se podía imaginar cómo hacerlo. Es como si una persona con una taza de té en una mano y un sandwich en la otra qui­ siera encender un cigarrillo con una cerilla. Sin embargo, mientras que a la persona se le ocu­ rriría dejar primero la taza y el sandwich -antes de coger el cigarrillo y la cerilla-, la hormiga dejaría primero el sandwich para coger la cerilla, después dejaría otra vez la cerilla para coger el cigarrillo, después dejaría el cigarrillo para coger el sandwich, después dejaría la taza para coger el cigarrillo y, finalmente, dejaría el sandwich para coger la cerilla. Es decir, estaría destinada a confiar en la consecución de una serie de accidentes para lograr su propósito. Sin embargo, la hormiga es muy paciente y no piensa... Wart observó la estrategia con cierto asom­ bro, que se convirtió en irritación, y, finalmente, en disgusto. Entonces se preguntó por qué no había considerado la situación con la suficiente antelación. T. H. White, El único y futuro rey. Capítulo 13

Agentes que planifican

Memoria o cálculo Las funciones para la selección de acciones de los agentes reactivos (Figs. 2.2, 5.1 Y 5.3) realizan muy pocos cálculos. Esencialmente, estos agentes tienen sus acciones diseñadas para que sea así -bien creadas por el diseñador, o mediante aprendizaje, o mediante procesos evolutivos, o por alguna combinación de éstos-o Las propias funciones para la selección de acciones pueden estar implementadas mediante tablas, reglas de producción o circuitos de lógica combinacional que seleccionan las acciones recomendadas para un vector de características dado. Tales implemen­ taciones tienden hacia el polo «espacio» en el clásico dilema espacio-tiempo de las ciencias de la computación. Estas implementaciones --o compilaciones- del conocimiento del diseñador están basadas en el espacio de memoria. !::!llilmáquina reactiva realJ!lente competente, capaz de realizar ti.lJ"eas CQWI21j;'>jªs en entornos complejos, requeriría de grandes canti~!! (qui~ cªº[email protected].~!>jnªs.e!ll!iQJ~..s)Qe m¡;;,mg!ia. Además, el diseñador de este tipo de máquina reactiva necesitaría anticipar las reacciones apropiadas para todas las posibles situaciones, lo cual escapa a los límites humanos. Ello nos lleva a intercambiar tiempo por espacio y adaptación en vez de diseño explícito. Como primer paso, vamos a intro­ ducir en la función para la selección de acciones algunos de los cálculos que el diseñador habría tenido que realizar. Estos cálculos tomarán tiempo, pero reducirán los requisitos de memoria del agente y la carga de trabajo del diseñador. Algunos de los cálculos que podríamos considerar son aquellos que predicen las conse­ cuencias de las posibles acciones aplicadas sobre una situación dada. Seguramente, un diseñador de máquinas reactivas competente habría tenido que basar su diseño en estas consecuencias anti­ cipadas. El diseñador (o, en su caso, el proceso de aprendizaje o evolutivo) todavía tendría que especificar cuáles son dichos cálculos, pero los programas para realizarlos (en el momento en que se necesitaran) requerirían mucho menos espacio del que lo harían todos sus posibles resultados. y sería más fácil para el diseñador especificar los cálculos a tener en cuenta que todas las posibles situaciones. Quizá el punto más importante es que si estos cálculos de predicción de consecuen­ cias pudieran ser aprendidos o desarrollarse de forma automática, el agente que los utilizara sería

105

106

Inteligencia artificial. Una nueva síntesis

capaz de seleccionar las acciones apropiadas, aun en aquellas situaciones que el diseñador no habría sido capaz de prever. Para predecir las consecuencias de una acción, un agente debe tener un modelo del mundo en el que habita, así como modelos de los efectos de sus acciones en su modelo del mundo. En este caso, las acciones actuales no deben realizarse hasta que sus simulaciones hayan mostrado que éstas son seguras y efectivas.

Grafos de estados Como ejemplo, consideremos un mundo espacial cuadriculado conteniendo tres bloques de juguete, A, B Y e, todos ellos inicialmente en el suelo. Supongamos que la tarea de nuestro robot es apilarlos de tal manera que A esté sobre B, B sobre e, y e en el suelo. Aun siendo obvio para nosotros qué acciones deberían realizarse, no es así de obvio para un robot. Supongamos que el robot fuera capaz de modelar los efectos de cada acción en su entorno. Podría hacerlo mediante un par de modelos -uno que representara el estado del mundo antes de que la acción se ejecutara y otro que representara el estado del mundo después de haberse ejecutado la acción-o Para el propósito de este ejemplo, supongamos que el robot es capaz de mover cualquier bloque, x, que no tiene ningún bloque sobre él, a algún lugar y, bien en el suelo o encima de un bloque que no tiene ningún otro bloque encima. Modelamos estas acciones mediante instancias de un esquema (o patrón) al que denominamos mover(x, y), en donde x puede ser A, S o e, e y puede ser A, S, e, o Suelo. Entendemos que ciertas instancias del esquema (por ejemplo, mover(A, A» no son acciones ejecutables. A las instancias del esquema, como, por ejemplo, mover(A, e), las deno­ minaremos operadores. De esta manera, los operadores son modelos de las acciones. Utilizando un modelo icónico estructurado en listas, en la Figura 7.1 se muestra el modelo de los efectos de todas aquellas acciones que pueden ejecutarse cuando todos los bloques están en el suelo 1, Para mayor claridad, hemos incluido un boceto de cada situación, Las imágenes son icó-

IAIrmra «A)(B)(C»

'1¡o •.

"e,. ¡¡ C; S)

filra

rmlel

fIlra

IAI~

I%lrm

IAI~

«AB)(C»

«B)(AC»

«BA)(C»

«BC)(A»

«CA)(B»

«A)(CB»

Figura 7.1. Efectos de mover un bloque.

J Para mayor simplicidad, continuamos utilizando una representación abstracta en la cual las posiciones horizon­ tales de los bloques no son relevantes, y, por tanto, no necesitan ser representadas.

Agentes que planifican

107

nicas para nosotros, mientras que las listas son icónicas para un agente procesador de listas. Dos de estos efectos, en concreto, «AB) (C) y «A) (BC), parecen estar, de algún modo, más «cerca­ nos» al objetivo «ABC) que los otros efectos. De esta manera, considerando los efectos predichos de una acción simple, el robot podría preferir las acciones modeladas mediante mover(A, S) y mover(S, e) que las otras. Y, desde luego, el robot no habría realizado ninguna acción todavía. A menudo, adelantarse un paso en una simulación puede producir predicciones muy útiles, pero adelantarse más pasos, quizá todo el recorrido para completar la tarea, puede ser más útil aún, pues permite encontrar atajos y evitar caminos sin salida. Una estructura útil para guardar los efectos de diversas secuencias alternativas de acciones es un grafo dirigido. El co!'!Ü!!!.to de ..!!!º-J:l~S q':1~_~~ll,g~!l~e.~~r,í~ ~~l.1erar 11lediaI1~e~11.S ac~ion.~..Hm~es.Slr..tepresentado~lIñ grafo...S .~ 'están eti.Q.Udados cJ)nlas.rep,~~~~!º~WItS

(,&

~ «A)(CB»

«AB)(C»

rAl~

1!1[CJ mover (B, el

«BA)(C»

m ~ '­

3

«CBA»

«A)(BC»

por la eficiencia de los métodos de búsqueda. En los próximos dos capítulos, discutiremos los métodos de búsqueda aplicables a grafos que son 10 suficientemente grandes como para tener que ser representados de modo implícito. y que deben ser recorridos de forma eficiente.

Búsqueda en estados explícitos La búsqueda en grafos explícitos requiere ir propagando «marcadores» a lo largo de los nodos del grafo. Comenzamos marcando el nodo inicio con un 0, y después iremos incrementando este número, a medida que nos extendemos a modo de «ondas», hasta que alcanzamos el nodo obje­ tivo. Entonces, recorremos el camino inverso desde el nodo objetivo hasta el nodo inicio decre­ mentando los números de la secuencia. Las acciones a 10 largo del camino, desde el nodo inicio al nodo objetivo, son las acciones que permitirían alcanzar el objetivo. Este método requiere O(n) pasos, donde n es el número de nodos del grafo (si hay un nodo objetivo simple, el proceso podría implementarse en dirección inversa --comenzando en el nodo objetivo y finalizando en el nodo inicio--). Los enteros asignados a los nodos en este proceso pueden interpretarse como un tipo de función potencial sobre los nodos, con un mínimo global en el nodo inicio. El camino inverso (desde el objetivo hasta el inicio) va reduciendo el «gradiente» de dicha función. Los diferentes pasos en la propagación de los marcadores del problema de transformar «BAC» en «ABC» se muestran en la Figura 7.3. Este método se llama búsqueda primero en anchura, y fue propuesto por primera vez por [Moore, 1959]. Al proceso de marcar los sucesores de un nodo lo llamamos expansión. Consiste en marcar todos los nodos vecinos al nodo que no han sido marcados previamente. Una cuestión importante con respecto a la eficiencia es ¿qué nodos no expandidos lo serán en el paso siguiente? En la bús­

m ~

O>

~

E

E

i)

109

o

3 «ABC»

Figura 7.2. Un grafo de estados.

nodo inicio, y no pueden existir otros agentes o procesos dinámicos que cambien el mundo simul­ táneamente. Si se cumplen todas estas presunciones, y si el tiempo permitido para la tarea admi­ te la búsqueda de un estado objetivo, se puede planificar y ejecutar una secuencia de acciones (como si fuera un cálculo balístico) sin necesidad de establecer un lazo de realimentación del entorno mediante sensores. Aunque estas presunciones no se encuentran en muchas aplicaciones del mundo real, la pla­ nificación mediante búsqueda en grafos es una idealización extremadamente importante y útil. Puede ser generalizada para acomodarse a requisitos con presunciones menos restrictivas o puede ser un componente empotrado de una arquitectura adaptada a dichos requisitos. Volveremos sobre este tema en el Capítulo 10. En este capítulo, comenzaremos nuestro tratamiento de la bús­ queda de caminos en grafos describiendo un procedimiento particularmente sencillo, adecuado cuando el grafo en el que se realiza la búsqueda puede ser almacenado explícitamente. Por 10 gene­ ral, en ese caso, el grafo es razonablemente pequeño, así que no nos debemos preocupar demasiado

(a)

(b)

(e)

(d)

Figura 7.3. Pasos de la búsqueda.

110

Inteligencia artificial. Una nueva síntesis

queda primero en anchura expandimos cualquier nodo no expandido etiquetado con un número no mayor que otros nodos no expandidos. Es decir, expandimos todos los nodos etiquetados con un número i antes de expandir aquellos etiquetados con un número j tal que i
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF