Capítulo II ¿La computadora es un cerebro electrónico? En cierta manera todos nos hemos asomado un poco a la anatomía y fisiología del cerebro. Todos nos hemos acostumbrado un poco a la existencia de una célula, la neurona, y a la idea de que su conectividad con otras, produce en última instancia -quien sabe como- una actividad inteligente. Existe, sin embargo, un divorcio entre lo que el psicólogo, el biólogo y el médico saben de la arquitectura cerebral y lo que se sabe de la arquitectura de las computadoras actuales. Este divorcio tiene que ser minimizado si buscamos la unidad en el conocimiento. ¿LAS COMPUTADORAS SON BUENOS CANDIDATOS A CEREBRO? Intentemos primero analogar la arquitectura de una microcomputadora con nuestras nociones de arquitectura de cerebro: su anatomía y su histología, su bioquímica, su ultraestructura, etc., y después hacer una analogía con nuestras nociones de arquitectura maquinística. Comencemos por imaginar que abrimos una microcomputadora (y aquí voy a suplicar al lector que busque la oportunidad de ínspeccionar una microcomputadora por dentro). Esto es equivalente a abrir un cráneo y ver qué es lo que existe dentro. La sensación que uno experimenta es de vacío, no hay casi nada, la mayor parte de la caja está vacía y en el fondo, "en la base del cráneo" existe un conjunto de cuadritos negros, como fichas de dominó, que el use ha consagrado con el nombre de "CHIPS". Estos chips están representados en la figura 1. Imagínense ustedes que esta figura representa la vista aérea de una microcomputadora a la que le hemos abierto la parte superior y cuyo fondo estamos mirando. Lo más ostensible en el interior de la caja es la fuente de poder: una computadora recibe corriente alterna de la calle (110 volts, que cambian en un 60avo de segundo de positivo a negativo y viceversa en forma de onda senoidal). Ese tipo de voltaje no puede ser usado para los componentes de la microcomputadora, debemos alimentarlos de una corriente directa de 14 volts estacionarios. Lo que hacemos es transformar los 110 volts de la calle en 14, mismos que introducimos a todos los componentes a través de una "lámina madre" que soporta todos los circuitos (véase figura 1). Un detalle que es muy importante señalar es que si yo tornara un pedacito de la lámina madre y lo viera con cuidado, notaría en él un conjunto de conectores de cobre: tirillas de cobre que la recorren como carreteras. No son más que conectores que tienen sitios donde se insertan los chips y algunos otros componentes. En última instancia la lámina madre no es más que un soporte de conexiones. Si ustedes, lectores, quisieran hacer un análogo con el sistema nervioso central dirían: "es pura substancia blanca". Es importante mencionar cómo se fabrica esta lámina madre. Como se verá, si entendemos cómo se fabrica, probablemente entenderemos también el proceso de fabricación de los chips. Una lámina madre se hace de una manera muy simple, como los niños de las secundarias actuales lo hacen. Sobre una lámina de cobre montada sobre baquelita, con un plumón, se cubren con tinta las futuras trayectorias de conexión y después de corroer con ácido las partes desprotegidas, ¡oh maravilla!, todo un circuito eléctrico, que antes se lograba con una inextrincable maraña de alambres, queda limpiamente acomodado en un solo plano. Imagínense ustedes que en lugar de hacer este proceso de cubrir con el plumón proyectamos sobre el cobre una transparencia fotográfica que tenga las trayectorias de conexión dibujadas y ahora la parte que se corroe es la parte iluminada; hemos mejorado la técnica anterior mediante una técnica fotográfica. Esta variante es fundamental para el desarrollo de la tecnología de fabricación de chips. Pero retomemos el hilo y postulemos que ya tenemos la corriente directa instalada en todas las líneas de conexión que alimentarán a todos estos artilugios que no sabemos todavía qué son ni cómo compararlos con el sistema nervioso central. Para entender la arquitectura podemos empezar a clasificar macroscópicamente los chips. Lo primero que nos llama la atención es un chip en particular que tiene aproximadamente 40 patas (figura 1) denominado microprocesador y que le da el nombre de "micro" a la computadora. Éste es el objeto más importante de nuestra aventura intelectual en este capítulo. En el espacio libre que queda fuera de la zona de "slots" y de la del microprocesador se instalan las fichas del banco de memoria residente. Se llama "memoria residente" aquella que está disponible para el use inmediato del microprocesador a través de alambres directamente conectados a él. Se distinguen dos grupos de fichas en esta clase de memoria: a) las que están vacías de información y que por el hecho de poder ser consultadas y anotar en ellas como se hace con las páginas de un cuaderno (un cuaderno se puede abrir y consultar o anotar en determinado sitio de él sin tener que pasar por las páginas anteriores: aleatoriamente) se les llama "memoria de acceso aleatorio" (RAM: random access memory) y b) las que contienen información que no se puede anotar o borrar, sólo leer, como el caso de un libro bien cuidado: (ROM: "read only memory" figura 2). En cuanto a las vías o cables que llevan información, entre las panes anatómicas ya mencionadas no tiene importancia su localización precisa excepto para el componedor ("cirujano"); bástenos saber que el ROM se conecta al microprocesador (MP) y al RAM. El MP se conecta en ambos sentidos al RAM y ROM. La conexión del MP con los dispositivos periféricos se hace mediante los slots (figura 3). El tablero se puede considerar un dispositivo periférico conectado al RAM con un conector especializado. Lo mismo ocurre con el tubo de rayos catódicos (MONITOR) que permite la comunicación visual máquina-hombre. Un tipo de memoria no-residente extraordinariamente útil SON Los Discos blandos o diskettes. Se trata de una memoria magnética, como la de una grabadora de cassette, en la que la cinta del cassette se ha dispuesto en forma de delgada "tortilla de maíz", la cual se hace girar dentro de un "sobre" cuadrado mediante un motorcillo. Una cabeza magnética lee sus distintas pistas (o las graba) a gran velocidad. La consistencia del "sobre" que contiene el delgado disco magnético contenido en él es blanda, por lo que se le ha dado el nombre de disco blando o diskette. TÓPICOS ESPECIALES DE HISTOLOGÍA DE UNA "MICRO" "El sistema nervioso central de la micro" está formado por "núcleos" o chips, formados a su vez de micro-transistores tan densamente empacados que un microprocesador puede contener millares de éstos arreglados en circuitos equivalentes a los formados con macro-resistencias, macrocapacitancias y macrotransistores. Esta alta densidad lograda ha recibido el nombre de tecnología LSI: Large Scale Integration. Si observáramos al microscopio electrónico un come "histológico" del centro de un CHIP veríamos una imagen como la que se muestra en la figura 4. La zona donde se ha contaminado el silicio con boro constituye el complemento electrónico (para la formación dé un transistor) de la zona contaminada con arsénico, El óxido de silicio, en este transistor ultramicroscópico, actúa como aislador adecuado y el metal (aluminio) se usa para establecer los microcircuitos que conectan entre sí estos transistores. ¿Cómo es posible formar los óxidos, removerlos, difundir los elementos contaminantes (boro y arsénico) y depositar los conductores en dimensiones tan pequeñas como las que se describieron? En principio la técnica es simple, es esencialmente una técnica fotográfica -como la que se emplea en el grabado de la lámina madre- de superposición múltiple, en la que el "revelado" puede significar difusión, depósito o remoción de sustancias sobre una matriz de silicón puro, cristalino, o "placa fotográfica". En la práctica el problema es difícil, pues se necesitan, entre otras cosas, instrumentos ópticos de altísima definición que proyecten las distintas "mascarillas", que la configuración del microcircuito requiere, sobre la matriz de silicio. Nuestra sorpresa también es grande cuando comprobamos que la parte de microcircuitos del chip es sólo el centro: ¡la mayor parte de la estructura del chip es de soporte! Recapitulando: Los chips o núcleos del sistema nervioso central de la micro están formados por microcircuitos elementales arreglados a su vez en circuitos mayores que confieren a cada chip su función. Los componentes electrónicos de cada microcircuito son los microtransistores que se pueden observar sólo a través de la microscopia electrónica. TÓPICOS ESPECIALES DE LA "BIOQUÍMICA" DE UNA "MICRO" El silicón del que está constituido un chip !es un solo cristal de silicio! La razón del porqué se usa tal estructura cristalina para hacer un chip es porque se trata de un cristal no conductor que puede transformarse en semiconductor de electrones cuando se contamina con un metal pentavalente (As) y en semiconductor de "agujeros" cuando se le contamina con un metal trivalente como el "boro". El secreto en ambos casos es desequilibrar las cuatro valencias del silicio: por exceso de electrones o por deficiencia en cada caso. El cristal contaminado por boro, amalgamado sobre el cristal de silicón contaminado con As, permite, en un solo bloque, construir los microcircuitos de "transistores", "resistencias" y "capacitores" necesarios para el funcionamiento del microprocesador. Cada uno de los elementos anteriores es el sitio donde se ha hecho una "manchita" de boro sobre el cristal contaminado con arsénico. TÓPICOS ESPECIALES DE LA FISIOLOGÍA DE UNA "MICRO" Anatomía y fisiología del microprocesador El microprocesador, como ya se describió, es un CHIP de cuarenta patas (Bus) que se conecta a las memorias RAM y ROM. Las cuarenta patas se pueden clasificar, por el tipo de información que conducen, en: Bus de direcciones. Bus de datos, líneas de control, reloj y entrada de la fuente de poder. "Las neuronas" del microprocesador El microprocesador se transforma en un operador diferente dependiendo de sus entradas: como si el microprocesador fuera tuna sola neurona, no especializada, que se especializa cuando le ordenamos que lo haga. Un programa no es más que la especificación, en serie, del tipo de especializaciones que el microprocesador debe adoptar secuencialmente para la solución de un problema. Una computadora construida con muchas neuronas "en paralelo", debería contar en cada neurona con sitios distintos para la entrada y salida de la información (dendritas, botones terminales). Si una sola "Neurona" hace todo el trabajo, como es el caso del microprocesador, el sitio de entrada puede ser el mismo que el de salida (alternadamente); esto, debido a que se especializará en cierto cálculo que requiere sólo entrada o sólo salida cada vez. Por otra parte, la entrada o salida no necesita ser de un tren de pulsos; el microprocesador maneja varios impulsos simultáneos. En resumen, el BUS de datos hace el papel de axón y dendritas alternativamente. Mecanismos de atención en el SNC de una "MICRO" Todos sabemos que el proceso de atención de nuestros sentidos es un "dirigirse" momentáneamente al sitio de origen de la información. Los informaticistas llaman a esta idea un "multiplexor". Esta función reside también en nuestra neuronacampeona o microprocesador, Pero para comprender la fisiología de esta función es necesario entender que el MP no está en contacto con el medio exterior, su universo de acción es siempre algún tipo de memoria residente. El mecanismo de atención equivaldría figurativamente a una especie de motor que a manera de góndolas llevara las localidades de la memoria a enfrentarse al BUS de datos para transmitir a él o recibir de ellas los "impulsos simultáneos" ya mencionados. El secreto de la función de atención reside en el hecho de que el microprocesador "señala" electrónicamente ("multiplexa") cuál es el sitio de atención en la memoria (bus de direcciones) en lugar de moverla mecánicamente al sitio. EL CEREBRO DE UNA "MICRO" COMO UN CEREBRO DISTRIBUIDO EN EL TIEMPO El concepto de microprocesador como neurona especializada en el tiempo nos conduce de forma inevitable a la conclusión de que UNA MICROCOMPUTADORA PROGRAMADA de manera conveniente es en realidad UN CEREBRO DISTRIBUIDO EN EL TIEMPO que, potencialmente, aunque no equivalentemente, puede tener funciones como las de un cerebro con neuronas en paralelo, como es el caso de nuestro cerebro. TÓPICOS ESPECIALES DE LA PSICOLOGÍA DE UNA "MICRO" La programación y los lenguajes Al hablar del funcionamiento del MP se mencionó también que un programa era una serie de órdenes residentes en la memoria para ser ejecutadas por el MP. No se dijo, sin embargo, que esas órdenes (pulsos simultáneos) que se comunican al MP se pueden describir también mediante un número. Estos números son binarios (base dos): equivalentes los voltajes altos (14 volts) a los unos y los voltajes bajos (cero volts) a los ceros, De la misma manera que resulta abusivo decir que el lenguaje de una neurona es la colección de trenes de impulsos significativos para una siguiente neurona, también aquí resulta abusivo hablar del lenguaje del Me como trenes de "unos y ceros". Sin embargo, si denotamos ciertos números por símbolos como LAC y SAC, por ejemplo, éstos sí podrían ser las panes gramaticales de un lenguaje llamado lenguaje ensamblador. Un programa en el RAM que transforme los símbolos anteriores en "ceros y unos" se puede considerar ya como un intérprete lingüístico de un programa escrito en lenguaje "ensamblador". La complejidad del lenguaje puede aumentarse mucho, al extremo de que una sentencia del tipo LET A = B equivale a un largo programa de "unos y ceros", donde A es un símbolo que indica el sitio de la memoria donde quedará el contenido de B. Ya no importa a este nivel cuál es la dirección exacta en la memoria de A o de B. Se trata de una instrucción en el lenguaje Basic que un programa residente en ROM llamado "intérprete Basic" transforma, sin que el usuario se dé cuenta, al binario (de unos y ceros) ya referido. La presencia de distintos programas intérpretes y "compiladores" permite a una "micro" establecer una comunicación humanoide con el hombre. A tal extremo puede llevarse a cabo lo anterior que una programación adecuada puede resultar en una interacción inteligente hombre--,máquina. Ciertos lenguajes como LISP y PROLOG pueden ser usados en la construcción de interacciones inteligentes hombre-máquina. El secreto de estos lenguajes radica en su orientación simbólica a conjuntos -en un caso- y a la lógica formal -en el otro caso-. Ambos lenguajes permiten el uso fácil de procedimientos de búsqueda en "gasa recursiva" (véase adelante) esenciales para la solución heurística de problemas. CÒMO EVITAR LA FRUSTRACIÓN AL RELACIONARSE CON UNA "MICRO" El contacto productivo de una "Micro" con el hombre estará determinado por las relaciones de aversión o de empatía con la computadora que los lenguajes utilizados propician. El problema micro-sociológico que quisiéramos tratar aquí es el que se genera cuando se hace el primer contacto con la computadora a través de lenguajes como Basic, que "huelen" a matemáticas. El desencanto es mayúsculo y a veces inhabilita una relación futura productiva hombre-máquina. Si a esto añadimos la espinosa disciplina de programación a la que se somete el novicio con la esperanza de alcanzar la relación hombre-máquina esperada, la frustración es el resultado neto. Una alternativa gentil es la de un enfrentamiento "hacia adelante", llamado por algunos "para poetas". Se trata de explicar el desarrollo de programas de computación en la intención con la que se ejecutan, y con ello lograr una aceptación razonada y no una "programación desde cero". Esto permite un acceso no-lesivo de las relaciones hombre-máquina que permitirá, más tarde, una apetencia tan vigorosa por la "programación desde cero" que ningún obstáculo la desalentará. Con esta profesión de fe iniciamos el siguiente capítulo de nuestra aventura comunicativa. Capítulo III ¿Cómo solucionamos problemas? EL PARADIGMA GENERA Y PRUEBA Supongamos que el diagrama de la figura 6, del juego de "gato", representa todas las movidas que se pueden hacer en dicho juego. Si quiero encontrar cuál es mi estrategia ganadora, debo buscar al final, en mi turno, cuando "yo gano" a ir hacia atrás; descubriendo que finalmente yo ganaré cada vez que ubique a la máquina en posición de sólo poder cubrir una de dos opciones "de gane" planteadas por mí. Lo anterior me fue posible en principio porque examiné todos los finales, en una figura como la 6. Ahora bien, en Inteligencia Artificial no se trabaja con un espacio de solución como el que la figura anterior representa, Los estados se van generando a medida que se necesita y se va probando si son o no la solución buscada, de uno en uno, desde el estado inicial del juego en adelante, de la misma manera como una rata resuelve un laberinto resolviendo primero las bifurcaciones con las que se encuentra primero. Lo anterior se entiende mejor cuando se explica un programa que resuelve un problema, El mejor ejercicio que existe para esto es el juguete pedagógico llamado misioneros y caníbales que explicaremos a continuación. A pesar de que hablaremos de un juguete pedagógico, las explicaciones sobre éste son tan importantes que permiten entender un paradigma que usa la Inteligencia Artificial para resolver problemas: genera y prueba. El juego consiste en suponer la existencia de tres misioneros, tres caníbales y una lancha (figura 7). Los estados del juego Los personajes llegan a la orilla de un río -donde se encuentra una lancha que tiene solamente 2 plazas- con la intención de hacer el tránsito entre ambas orillas. El juego tiene éxito cuando se hace pasar a todos los misioneros y a todos los canìbales a la otra orilla sin que en algún momento del juego se produzca una "comilona" de misioneros. El canibalismo se produce cuando en cualquier orilla el número de caníbales excede el número de misioneros. Note usted que lo primero que hicimos, casi inconscientemente, fue representar el problema con un diagrama, el de la figura 7; no pudimos evitar hacer tal representación, que en última instancia no es más que una burda formalización del problema. ¿Qué pasa, por ejemplo, si de repente decido hacer una "movida"?: embarcar a dos caníbales y "llevarlos" a la otra orilla, Esto me ha obligado a cambiar la primera representación por una nueva. A esto lo denominaremos en adelante un cambio de estado (figura 8). La parte mecánica del juego Hemos comenzado a representar los estados válidos del juego (naturalmente estados sin comilona). El estado final que buscamos ocurre cuando llegamos a la representación de la figura 9. ¿Cómo llegar a ella?, ¿cómo hacer que una máquina llegue por sí misma del estado inicial al final?: lo primero que tenemos que enseñarle es cómo "mover" los personajes, es decir, la mecánica del juego, ya vendrá después la estrategia del juego. Lo primero que haré es una receta o función que llamaré QUITA, que quitará de una representación los símbolos que yo le indique. También construiré un programa que va a PONER símbolos. En la representación de estado que hemos elegido denominaremos al conjunto que está a la izquierda de la representación del agua ORILLA IZQUIERDA, y al del otro lado ORILLA DERECHA. Inicialmente debo instruir a la máquina sobre lo que significa mover a los viajeros de izquierda a derecha y viceversa. Receta MUEVE-I-D La receta para mover los símbolos de izquierda a derecha es: i) Toma la lista de símbolos de la ORILLA IZQUIERDA y QUITA los símbolos de "los viajeros". íí) Toma la lista de símbolos de ORILLA DERECHA y PON los viajeros. Cuando mi computadora lea de su memoria la función (MUEVE-I-D) ejecutará el programa anterior, cambiando con ello los símbolos que están tanto en ORILLA IZQUIERDA como en ORILLA DERECHA. La construcción de la mecánica del juego Lo que quiero construir ahora, en la imaginación del lector, es un robotito que sin preguntar desde dónde tengo que mover ejecute un movimiento, por ejemplo: si yo le digo que tiene que mover la lancha y dos caníbales, el robotito debe saber de dónde tomarlos y a dónde moverlos. Este "robot-secretaria" (llamado GENERA) después de preguntarme quiénes serán los viajeros generará el nuevo estado de las orillas. Una manera de hacer que todo esto funcione mejor es permitir que GENERA sea guiada a su vez por otra función, la función EXPLORA. ¿Qué quiere decir esto? Quiere decir que de alguna manera debe existir un programa que comande al otro y que EXPLORA debe IMAGINAR, antes de mover, si produciría o no una "comilona". En este robotito se observa ya el paradigma de la Inteligencia Artificial que se puede describir como: IMAGINA-PRUEBA EJECUTA. A medida que avanzamos en la construcción del robotito le iremos delegando una responsabilidad cada vez mayor hasta que resuelva el problema por sí solo. NÓTESE QUE HASTA AHORA L,A COMPUTADORA NOS SIGUE PREGUNTANDO SOBRE LA PARTE ESENCIAL DE LA ESTRATEGIA: CUÁLES SON LOS "VIAJEROS" EN CADA MOVIDA. Continuemos: ahora podemos agregar a EXPLORA una función que nos garantice que no se hará una "movida ¡legal" en el juego y, lo que es más interesante, le podemos asignar la "chamba" de decirnos si el estado imaginado ya es la solución buscada (estado de la figura 9). La estrategia y su construcción Ahora ya estamos en posibilidad de establecer una estrategia. Dado el robotito hasta aquí esbozado, ¿cómo vamos a embarcarnos definitivamente en la aventura que consiste en que la máquina (máquina = programa + computadora) misma encuentre la solución? Queremos modificar nuestra función original GENERA para que en lugar de preguntarnos cuáles movidas queremos hacer, la genere ella misma. Esto es posible porque el número de las movidas que se pueden hacer es pequeño (figura 10). De esta manera no resulta tardado hacer que la computadora pruebe sistemáticamente los estados generados por todas las movidas. Pero existe una creencia escondida en esta estrategia, y es que una vez que encuentro una movida legal, ésta me conduce a la solución. Pronto, al ensayar nuestro robot, nos damos cuenta de algo que es muy importante; nos encontramos con que no habíamos sido lo suficientemente listos como para preveer que la máquina podría explorar estados ya conseguidos antes: comienza a ciclar inútilmente, por lo cual no hemos avanzado en la solución. ¿Cómo resolver ahora el problema de salirse de ese círculo vicioso? ¿Tendremos alguna manera de decir a la máquina: no vayas a caer en un círculo vicioso? La manera de evitar lo anterior es hacerla "recordar" que si ya pasó por un cierto estado no debe volver a él. Para esto lo que se debe hacer son dos pequeños programas que se llaman RECUERDA ORILLAS y MEMORIZA-ORILLAS. MEMORIZA ORILLAS es un programa que a medida que vamos ejecutando un nuevo estado, va acumulando éste en la memoria y cada vez que se pregunte si el estado ya lo vimos antes recurre a la memoria mediante la función RECUERDA ORILLAS. Esto es algo así como si estuviéramos jugando ajedrez e hiciéramos una anotación de cuáles son las posiciones sucesivas del tablero y no de las jugadas, como se acostumbra. Veamos finalmente cómo nuestro robotito equipado con lo que hemos descrito hasta aquí resuelve el problema planteado. La figura 11 representa la secuencia de búsqueda. Los estados ilegales, fallidos o ya vistos se representan sólo con los letreros correspondientes. ¿PERO, QUÉ TIENE QUE VER LO ANTERIOR CON NUESTRA MANERA DE RESOLVER PROBLEMAS? Una variedad particularmente importante de búsquedas inteligentes fue desarrollada hace más de 15 años por dos investigadores de la Universidad Carnegie-Mellon: A. Newell y H. Simon. Estos investigadores diseñaron algo que entonces fue muy estimulante para la IA, ya que generó una gran cantidad de trabajo intelectual: el RGP. Esencialmente el Resolvedor General de Problemas (RGP) es un programa que tiene un grado de complejidad mayor que el de misioneros y caníbales. En RGP la búsqueda no es una búsqueda directa de soluciones sino de métodos, los métodos que van acercando el estado inicial a la solución. La esencia del método es contar con una medida de qué tan lejos nos encontramos de la solución. Ejemplifico: si en un supuesto viaje a La Habana yo me encontrara en Mérida y mi conocimiento geográfico me dijera que me encuentro mas cerca de Progreso que de Cuba, dada esa cercanía primero planeo ir a Progreso en autobús y después planeo tomar el barco platanero "el misterio del Mayab" (el único que va de Progreso a La Habana); todo esto como alternativa a la solución de hacer un viaje directo en avión Mérida-La Habana. Tomar el barco platanero de aquel lugar equivale a haber encontrado un plan económico mediante el uso de dos MÉTODOS (camión + barco) para resolver un problema. Tan inspirador ha sido el GPS para la comunidad de IA y tan inspirado fue en la observación de cómo un hombre resuelve un problema, que he decidido comunicar su esencia haciéndolo llegar mediante una serie de dibujos animados. La técnica que empleo para ello consiste en un cuento en el que los robots habían logrado la libertad al independizarse de los hombres. Estos robots "vivían" en comunidades aisladas y uno de aquellos días -Robert-ito, el héroe de la caricatura, le pide permiso a su papá para viajar a casa de su abuelo, Robert-apa, que vivía en otra población. El "padre" de Robert-ito le hace saber que como no está programado para el viaje tendrían que construir entre los dos un módulo electrónico especial para ello, un artefacto electrónico que "enchufado" a Robert-ito le permitiría llegar a la casa de su abuelo. Se discute en la historieta cómo construir el módulo, que es esencialmente el de programar un GPS. Los métodos que se deben seleccionar son los vehículos que se pueden tomar para el viaje. GPS fue un programa inspirado en la observación de cómo un individuo resuelve problemas con la ayuda de la verbalización del sujeto durante el proceso de solución ("pensando en voz alta"). La influencia que ha tenido GPS ha sido grande en el mundo de la Inteligencia Artificial y fuera de él, pues permitió plantear preguntas tales como: ¿de qué manera (como plantea Polya) reconoceremos que el problema presente se parece a uno ya resuelto por nosotros?; ¿cómo decidimos cambiar nuestros "agentes" de solución por otros frente a dificultades inesperadas? ¿cómo creamos?