1. Categorías en las Definiciones de Inteligencia Artificial
Las definiciones de Inteligencia Artificial (IA) se agrupan en cuatro categorías principales: Pensar como humanos, Actuar como humanos, Pensar racionalmente y Actuar racionalmente.
Las categorías superiores (pensar) se refieren a los procesos mentales y al razonamiento, mientras que las inferiores (actuar) aluden a la conducta observable. Las definiciones de la izquierda miden el éxito en términos de la fidelidad con la forma de actuar o pensar de los humanos, mientras que las de la derecha toman como referencia un concepto ideal de inteligencia o desempeño, que llamaremos racionalidad.
Se solicitó explicar detalladamente las categorías «Pensar Racionalmente» y «Actuar como Humanos»:
- Pensar Racionalmente (Enfoque de las «Leyes del Pensamiento»): Este enfoque se centra en construir sistemas que razonen de manera lógica, utilizando reglas de inferencia correctas. El objetivo es que el sistema opere según la lógica formal. Por ejemplo, un sistema que utiliza silogismos para derivar conclusiones a partir de premisas.
- Actuar como Humanos (Enfoque de la Prueba de Turing): Propuesto por Alan Turing, este enfoque evalúa si una máquina puede exhibir un comportamiento inteligente indistinguible del de un ser humano. Si un interrogador humano no puede diferenciar consistentemente entre las respuestas de una máquina y las de un humano, se considera que la máquina actúa como un humano.
Un sistema es racional si hace «lo correcto» en función de su conocimiento y objetivos, buscando maximizar una medida de rendimiento.
3. Agentes, Agentes Inteligentes Autónomos y Agentes Racionales
¿Qué es un Agente?
Un agente es todo aquello capaz de percibir su ambiente con la ayuda de sensores y actuar en ese medio utilizando efectores.
Ejemplos:
-
Agente humano:
- Sensores: Ojos, oídos, piel y otros órganos sensoriales.
- Percepciones: Imágenes visuales, sonidos, olores, etc.
- Efectores: Manos, piernas, cuerdas vocales, etc.
- Acciones: Caminar, hablar, agarrar objetos, etc.
-
Agente robótico:
- Sensores: Cámaras, infrarrojos, sónar, sensores de contacto, GPS.
- Percepciones: Imágenes, datos de distancia, coordenadas.
- Efectores: Motores, ruedas, brazos robóticos, pinzas.
- Acciones: Moverse, girar, manipular objetos.
¿Qué es un Agente Inteligente Autónomo?
Un agente inteligente autónomo es un sistema computacional que percibe su entorno y actúa autónomamente en él para realizar un conjunto de tareas para las cuales fue diseñado. Debe ser capaz de aprender y adaptar su comportamiento para compensar el conocimiento incompleto o parcial inicial y lograr sus objetivos.
Ejemplos:
- Un agente aspiradora que aprende patrones de suciedad para optimizar su ruta de limpieza.
- Un agente taxista automático (vehículo autónomo) que aprende a navegar el tráfico y elegir las mejores rutas para llevar a los pasajeros a su destino de forma segura y eficiente.
¿Qué es un Agente Racional?
Un agente racional es aquel que actúa para conseguir el mejor resultado esperado, o cuando hay incertidumbre, el mejor resultado esperado, según la información disponible y una medida de rendimiento definida.
4. Tipos de Ambientes para Agentes
El comportamiento y diseño de un agente dependen en gran medida del tipo de ambiente en el que opera. Los ambientes se pueden clasificar según varias dimensiones:
Accesible vs. Parcialmente Observable (o No Accesible)
- Accesible: Los sensores del agente captan en cada instante toda la información relevante del estado del entorno necesaria para tomar una decisión. Ejemplo: Un juego de mesa como el ajedrez (asumiendo que el agente ve todo el tablero), un crucigrama resuelto por software.
- Parcialmente observable: El agente no tiene acceso completo al estado del entorno. Ejemplo: Un agente taxista (no puede ver detrás de las esquinas o saber las intenciones de otros conductores), una aspiradora con sensores locales (no sabe si hay suciedad en otras habitaciones).
Determinista vs. Estocástico
- Determinista: El próximo estado del entorno está completamente determinado por el estado actual y la acción ejecutada por el agente. Ejemplo: Un crucigrama, el juego de ajedrez (sin considerar el oponente como parte del entorno).
- Estocástico: Existe incertidumbre sobre el próximo estado del entorno, incluso conociendo el estado actual y la acción. Ejemplo: Un agente taxista (el tráfico es impredecible), un robot que manipula objetos (puede haber fallos).
Episódico vs. Secuencial
- Episódico: La experiencia del agente se divide en «episodios» independientes. La acción en un episodio no afecta a los siguientes. Ejemplo: Un agente que clasifica imágenes; cada clasificación es un episodio. Un agente seleccionador de partes defectuosas en una línea de montaje.
- Secuencial: La decisión actual afecta a los estados y decisiones futuras. Las acciones tienen consecuencias a largo plazo. Ejemplo: El ajedrez, la conducción de un taxi, la gestión de inventario.
Estático vs. Dinámico
- Estático: El entorno no cambia mientras el agente está deliberando sobre qué acción tomar. Ejemplo: Un crucigrama, una base de datos consultada por un agente.
- Dinámico: El entorno puede cambiar mientras el agente decide. Si el agente no actúa rápido, la situación puede cambiar. Ejemplo: Un agente taxista (el tráfico y otros coches se mueven), una partida de fútbol robótico.
- Semidinámico: El entorno no cambia con el tiempo, pero sí la medida de rendimiento del agente. Ejemplo: Jugar al ajedrez con reloj.
Discreto vs. Continuo
- Discreto: El número de estados, percepciones y acciones es finito o contablemente infinito. Ejemplo: El ajedrez, resolver un crucigrama.
- Continuo: Los estados, el tiempo o las acciones se describen mediante valores continuos. Ejemplo: La conducción de un taxi (posición, velocidad, ángulo de giro), el control de temperatura.
6. Tipos de Programas de Agentes
Se consideran varios tipos de programas (arquitecturas) para implementar agentes inteligentes:
Agentes Reactivos Simples (Reflejo Simple)
Seleccionan sus acciones basándose únicamente en la percepción actual, ignorando el historial de percepciones. Funcionan mediante reglas condición-acción (Si [condición sobre percepción], entonces [acción]). No mantienen un estado interno complejo del mundo.
Diagrama: Los rectángulos indican el procesamiento interno y los óvalos la información de base (percepciones, reglas).
Ejemplo de regla: Si el coche de delante está frenando, entonces iniciar frenado.
Ejemplo de agente: Robot móvil simple que evita obstáculos:
- Sensores: Proximidad (frontal, derecho, izquierdo).
- Acciones: Avanzar, girar derecha, girar izquierda.
- Lógica: Reglas como: «Si detecta obstáculo al frente, girar derecha».
Agentes Reactivos Basados en Modelos (Bien Informado)
Manejan entornos parcialmente observables manteniendo un estado interno que depende del historial de percepciones. Necesitan un modelo del mundo que describe:
- Cómo evoluciona el mundo independientemente del agente.
- Cómo las acciones del agente afectan al mundo.
Este estado interno les permite tomar decisiones más informadas que los agentes reactivos simples.
Ejemplo: Para decidir cambiar de carril, un agente conductor necesita saber dónde están los otros coches (estado interno basado en percepciones pasadas y el modelo de cómo se mueven los coches).
Ejemplo de agente: Robot móvil mejorado con mapa:
- Sensores: Proximidad, odometría.
- Acciones: Avanzar, girar.
- Estado interno/Modelo: Un mapa de la habitación (obstáculos, paredes) actualizado con las percepciones y acciones. Incluye la posición estimada del robot.
- Lógica: Con el mapa, el robot puede planificar rutas cortas o moverse hacia áreas no exploradas.
Agentes Basados en Metas
Además de un modelo del mundo, estos agentes necesitan información sobre sus metas u objetivos. Eligen acciones que les permitan alcanzar dichos objetivos. Esto a menudo implica planificación y búsqueda para encontrar secuencias de acciones que lleven del estado actual a un estado meta.
Ejemplo: Un agente taxista necesita saber el destino del pasajero (la meta) para planificar la ruta.
Ejemplo de agente: Robot móvil con destino:
- Sensores, Acciones, Modelo: Como el agente basado en modelos.
- Meta: Una ubicación específica (coordenadas) en el mapa a la que debe llegar.
- Lógica: Utiliza algoritmos de búsqueda (como A*) sobre el mapa para encontrar el camino óptimo hacia la meta.
Agentes Basados en Utilidad
Cuando hay varias formas de alcanzar la meta, o cuando no todas las metas (o estados) son igualmente deseables, se necesita una medida de utilidad. La utilidad es una función que mapea un estado (o secuencia de estados) a un número real que describe su grado de «felicidad» o conveniencia para el agente. El agente elige la acción que maximiza la utilidad esperada.
Ejemplo: Un agente taxista puede tener la meta de llegar al destino, pero también puede querer maximizar la utilidad considerando factores como rapidez, seguridad, comodidad del pasajero y consumo de combustible.
Ejemplo de agente: Robot móvil optimizado:
- Sensores, Acciones, Modelo, Meta: Como el agente basado en metas.
- Utilidad: Una función que valora las rutas o estados. Por ejemplo, podría asignar mayor utilidad a rutas más cortas, que eviten zonas congestionadas o que consuman menos batería.
- Lógica: Elige la secuencia de acciones que conduce a un estado meta con la máxima utilidad esperada.
2. Estrategias de Búsqueda y Criterios de Evaluación
Se solicitó explicar la Búsqueda Voraz, Búsqueda de Costo Uniforme y Búsqueda en Profundidad Iterativa, evaluándolas según cuatro criterios: Completitud (¿garantiza encontrar una solución si existe?), Optimalidad (¿garantiza encontrar la mejor solución?), Complejidad Temporal (¿cuánto tiempo tarda?) y Complejidad Espacial (¿cuánta memoria necesita?).
Búsqueda Voraz (Greedy Best-First Search)
- Descripción: Expande el nodo que parece estar más cerca de la meta, según una función heurística h(n) que estima el costo desde el nodo n hasta la meta. No considera el costo del camino ya recorrido (g(n)).
- Completitud: No siempre. Puede atascarse en bucles si no se implementa detección de estados repetidos. Es completa en espacios de estados finitos con detección de bucles.
- Optimalidad: No. La heurística puede ser engañosa y llevar a soluciones subóptimas o no encontrar ninguna.
- Complejidad Temporal: O(b^m) en el peor caso, donde ‘b’ es el factor de ramificación y ‘m’ la profundidad máxima del espacio de búsqueda. Puede ser mucho mejor con una buena heurística.
- Complejidad Espacial: O(b^m), ya que almacena todos los nodos generados en la frontera (memoria).
Búsqueda de Costo Uniforme (Uniform Cost Search – UCS)
- Descripción: Expande el nodo no expandido ‘n’ que tenga el menor costo de camino desde el nodo inicial (g(n)). Es similar al algoritmo de Dijkstra. Prioriza los caminos más baratos.
- Completitud: Sí, siempre que los costos de los pasos sean mayores que un pequeño valor positivo ε (para evitar bucles de costo cero infinitos).
- Optimalidad: Sí, siempre que los costos de los pasos sean no negativos. Encuentra la solución con el menor costo acumulado.
- Complejidad Temporal: O(b^(1 + floor(C*/ε))), donde C* es el costo de la solución óptima. Puede ser significativamente peor que O(b^d) si los costos son muy pequeños.
- Complejidad Espacial: O(b^(1 + floor(C*/ε))), ya que almacena la frontera, que puede llegar a tener este tamaño.
Búsqueda en Profundidad Iterativa (Iterative Deepening Depth-First Search – IDDFS)
- Descripción: Realiza repetidamente búsquedas en profundidad, pero con límites de profundidad crecientes (límite=0, límite=1, límite=2, …). Combina las ventajas de la búsqueda en anchura (optimalidad para costo de paso unitario, completitud) y la búsqueda en profundidad (bajo consumo de memoria).
- Completitud: Sí, si el factor de ramificación ‘b’ es finito.
- Optimalidad: Sí, si el costo del camino es una función no decreciente de la profundidad del nodo (por ejemplo, si todos los costos de paso son 1). Encuentra la solución menos profunda, que en este caso es la óptima.
- Complejidad Temporal: O(b^d), donde ‘d’ es la profundidad de la solución óptima (la menos profunda). Sorprendentemente, la sobrecarga por repetir estados es baja.
- Complejidad Espacial: O(bd), igual que la búsqueda en profundidad simple, ya que solo necesita almacenar la rama actual. Es muy eficiente en memoria.
5. Formulación de Problemas en Inteligencia Artificial
La formulación de un problema es el primer paso hacia la solución mediante búsqueda. Consiste en definir los siguientes componentes:
- Estado Inicial: El estado desde el cual el agente comienza.
- Acciones Posibles: El conjunto de acciones que el agente puede ejecutar. A menudo se define como una función `ACCIONES(s)` que devuelve las acciones aplicables en un estado `s`.
- Modelo de Transición: Describe el resultado de realizar una acción en un estado. Se representa como una función `RESULTADO(s, a)` que devuelve el estado resultante de aplicar la acción `a` en el estado `s`. El conjunto de todos los estados alcanzables forma el espacio de estados.
- Prueba de Meta: Una función que determina si un estado dado es un estado objetivo (meta). Puede haber uno o varios estados meta.
- Costo de Camino: Una función que asigna un costo numérico a un camino (secuencia de acciones/estados). Usualmente, se define un `COSTO_PASO(s, a, s’)` para ir del estado `s` al `s’` mediante la acción `a`, y el costo total del camino es la suma de los costos de los pasos.
Para definir adecuadamente estos componentes, a menudo se utiliza el marco PEAS (Performance, Environment, Actuators, Sensors) para caracterizar la tarea del agente:
- Medida de Rendimiento (Performance Measure): Criterio que define el éxito.
- Entorno (Environment): Dónde opera el agente.
- Actuadores (Actuators): Cómo actúa el agente sobre el entorno.
- Sensores (Sensors): Cómo percibe el agente el entorno.
Ejemplos Concretos de Formulación de Problemas:
Ejemplo 1: Problema de la Aspiradora Simple
- Entorno PEAS:
- Rendimiento: Maximizar limpieza, minimizar movimientos.
- Entorno: Dos habitaciones (A, B), cada una puede estar Limpia o Sucia.
- Actuadores: Moverse (Izquierda, Derecha), Aspirar.
- Sensores: Ubicación actual, estado de limpieza de la ubicación actual.
- Formulación del Problema:
- Estados: Combinación de ubicación del agente y estado de limpieza de cada habitación (ej., [Agente en A, A=Sucio, B=Limpio]). 8 estados posibles.
- Estado Inicial: Cualquier estado (ej., [Agente en A, A=Sucio, B=Sucio]).
- Acciones(s): {Izquierda, Derecha, Aspirar} (dependiendo de la ubicación y estado).
- Modelo de Transición(s, a): Describe cómo cambia el estado (ej., `RESULTADO([En A, A=Sucio, B=Limpio], Aspirar) = [En A, A=Limpio, B=Limpio]`).
- Prueba de Meta(s): ¿Están ambas habitaciones limpias? (ej., `s = [?, A=Limpio, B=Limpio]`).
- Costo de Camino: Número de acciones (cada acción cuesta 1).
Ejemplo 2: Problema de Navegación (Ruta entre Ciudades)
- Entorno PEAS (Agente Taxista Simplificado):
- Rendimiento: Minimizar distancia recorrida (o tiempo).
- Entorno: Mapa de carreteras conectando ciudades.
- Actuadores: Conducir de una ciudad a otra adyacente.
- Sensores: Saber en qué ciudad se encuentra actualmente.
- Formulación del Problema (Ej: Ir de Arad a Bucarest):
- Estados: La ciudad en la que se encuentra el agente (ej., Arad, Sibiu, Bucarest).
- Estado Inicial: Arad.
- Acciones(s): Conjunto de ciudades a las que se puede conducir directamente desde `s` (ej., `ACCIONES(Arad) = {Sibiu, Timisoara, Zerind}`).
- Modelo de Transición(s, a): `RESULTADO(Arad, Conducir a Sibiu) = Sibiu`.
- Prueba de Meta(s): ¿Es `s` igual a Bucarest?
- Costo de Camino: Suma de las longitudes de las carreteras recorridas en el camino.