enero 02, 2014

Historia de la Lógica Transcursiva (Capítulo 82)

Cuaderno IV (páginas 489 a 494)

(Continuamos con Inteligencia Artificial (IA))

Resolver problemas mediante búsqueda:

Veremos métodos en los que el agente puede seleccionar acciones en los ambientes deterministas, observables, estáticos y completamente conocidos. [única posibilidad en que un 'agente' pueda mostrar un comportamiento aparentemente 'inteligente'] En tales casos, el agente puede construir secuencias de acciones que alcanzan sus objetivos: a este proceso se le llama 'búsqueda'.

- Antes de que un agente pueda comenzar la búsqueda de soluciones, debe formular un objetivo y luego usar dicho objetivo para formular un problema. [debemos aclarar que ninguna de estas tareas las hace el agente por sí solo, sino el programador que coloca los algoritmos adecuados en su interior para que exista un objetivo que cumplir, se formule el problema pertinente y se salga a la 'búsqueda' de la solución]

- Un problema consiste en cuatro partes: 1) el estado inicial [las condiciones basales iniciales arbitrariamente elegidas, como en cualquier experimento de laboratorio, para que pueda cumplir con las 'leyes' que indica la ciencia], 2) un conjunto de acciones [todas orientadas a buscar la solución de determinado y puntual problema presentado en un entorno perfectamente definido y sin sorpresas], 3) una función para el test objetivo [en donde se brindan todos los elementos necesarios para que el test sea positivo], y 4) una función de costo del camino. [que no representa otra cosa que un método estrictamente matemático que permite conseguir el camino más corto para llegar a la solución del problema] El entorno del problema se representa por un espacio de estados. [con lo que se asegura un entorno perfectamente predecible] Un camino por el espacio de estados desde el estado inicial a un estado objetivo es una solución. [tal como ya dijimos, una solución matemáticamente posible; quedando excluidas aquellas que requieran algo de 'inteligencia' para encontrarlas]

- Un algoritmo sencillo y general de Búsqueda-Árbol puede usarse para resolver cualquier problema; las variantes específicas del algoritmo incorporan estrategias diferentes. [cualquier problema que se haya previsto resolver con este sistema]

- Los algoritmos de búsqueda se juzgan sobre la base de completitud, optimización, complejidad en tiempo y complejidad en espacio. La complejidad depende de b, factor de ramificación en el espacio de estado, y d, profundidad de la solución más superficial. [este es un método altamente ineficiente porque si la búsqueda se hace exhaustiva, el tiempo que puede tardar es enorme]

- La búsqueda primero en anchura selecciona para su expansión el nodo no expandido más superficial en el árbol de búsqueda. Es completo, óptimo para costos unidad, y tiene la complejidad en tiempo y en espacio de O(bᵈ). [lo cual produce, en el mejor de los casos, una 'explosión exponencial' de las búsquedas] La complejidad en espacio lo hace poco práctico en la mayor parte de casos. La búsqueda de coste uniforme es similar a la búsqueda primero en anchura pero expande el nodo con el costo más pequeño del camino, g(n). Es completo y óptimo si el costo de cada paso excede de una cota positiva ε.

- La búsqueda primero en profundidad selecciona para la expansión el nodo no expandido más profundo en el árbol de búsqueda. No es ni completo, ni óptimo, y tiene la complejidad en tiempo de O(bᵐ) y la complejidad en espacio de O(bm), donde m es la profundidad máxima de cualquier camino en el espacio de estados. [los mismos comentarios que en el caso anterior]

- La búsqueda de profundidad limitada impone un límite de profundidad fijo a una búsqueda primero en profundidad. [lo cual no aporta prácticamente nada]

- La búsqueda de profundidad iterativa llama a la búsqueda de profundidad limitada aumentando este límite hasta que se encuentre un objetivo. Es completo, óptimo para costos unidad, y tiene la complejidad en tiempo O(bᵈ) y la complejidad en espacio de O(bd). [como se ve, no hay alternativas, son siempre los mismos métodos ineficientes.]

- La búsqueda bidireccional puede reducir enormemente la complejidad en tiempo, pero no es siempre aplicable y puede requerir demasiado espacio. [la ineficiencia de todos estos métodos, si no se hace ver en el mucho tiempo que tardan en alcanzar una solución viable, lo hace en el enorme espacio que requieren.]

- Cuando el espacio de estados es un grafo, más que un árbol, puede valer la pena comprobar si hay estados repetidos en el árbol de búsqueda. [otra demora más] El algoritmo de Búsqueda-Grafos elimina todos los estados duplicados.

- Cuando el ambiente es parcialmente observable, el agente puede aplicar algoritmos de búsqueda en el espacio de estados de creencia, o los conjuntos de estados posibles en los cuales el agente podría estar. [de nuevo se sesga intencionadamente, mediante un apelativo en apariencia inocente, pero que trata de ocultar con 'estados de creencia' lo inapropiado que es el pretender equiparar estas elementales soluciones a problemas que en realidad no lo son, con algún proceso que lleva adelante nuestro cerebro, a través de la psiquis, para encontrarle sentido a lo que está percibiendo.] En algunos casos se puede construir una sencilla secuencia solución; en otros casos, el agente necesita de un plan de contingencia para manejar las circunstancias desconocidas que puedan surgir. [es notorio que los autores intenten convencernos de que el 'agente' tiene una serie de propiedades cuasi-humanas, cuando en realidad, solo 'hace' lo que su programador dice que haga, aún en cosas tan burdas como poner a disposición del programa una lista de soluciones posibles para acortar la búsqueda. En cuanto al plan de contingencia es algo que es imposible de implementar, pues las circunstancias desconocidas, por ser combinacionalmente casi infinitas, impiden que sean tenidas todas en cuenta; por tanto, la contingencia se soluciona cuando, luego de un error de cálculo del 'agente', el programador agrega esa nueva situación a la lista de posibles soluciones a las que echar mano en caso de apuro.]

[continuará ... ]

¡Nos encontramos mañana!