Está en la página 1de 29

Inteligencia en Redes de Comunicaciones

Inteligencia en Redes de Comunicaciones

Resolucin de problemas

Julio Villena Romn


jvillena@it.uc3m.es

El problema de resolver problemas


La resolucin de problemas es uno de los procesos bsicos de razonamiento que la inteligencia artificial trata de abordar El objetivo consiste en lograr que la mquina ayude a un experto humano a encontrar la solucin a un determinado problema (de forma ms rpida, ms exacta, ms fiable...) Pero...
cmo expresar el problema de forma computacional? cmo puede resolverlo la mquina de forma eficiente?
IRC 2008 - JVR - 2

Inteligencia en Redes de Comunicaciones

ndice
Formalizacin Estrategias de bsqueda de soluciones
Bsquedas sin informacin del dominio Bsquedas heursticas

Problemas de satisfaccin de restricciones Juegos

IRC 2008 - JVR - 3

El problema de resolver problemas


La resolucin de problemas es una bsqueda en un espacio de estados, siendo: Estado = <Q, R, C> Q : estructura de datos que describen al estado R : reglas u operaciones que describen las transiciones en el espacio de estados C : estrategia de control de tal forma que encontrar la solucin consiste en encontrar una secuencia de reglas r1rn que conduzcan desde el estado inicial qo al estado final qf
IRC 2008 - JVR - 4

Inteligencia en Redes de Comunicaciones

Definicin formal de un problema


Pasos: Definir un espacio (conjunto) de estados Especificar uno o ms estados iniciales Especificar uno o ms estados finales (meta/objetivo) Definir reglas sobre las acciones disponibles
(abstraccin del mundo real a un modelo simblico)

El problema se resuelve usando las reglas en combinacin con una estrategia de control La estrategia de control establece el orden de aplicacin de las reglas y resuelve los conflictos
IRC 2008 - JVR - 5

El problema del viajante de comercio


Bilbao La Corua Len Burgos Zaragoza Madrid Cceres Valencia Toledo Badajoz Murcia Sevilla Cdiz Barcelona

IRC 2008 - JVR - 6

Inteligencia en Redes de Comunicaciones

Tipos de problemas
Problemas de un estado inicial (single-state) q0 = {Madrid} Problemas de mltiples estados iniciales (multiple-state) q0 = {Madrid, Barcelona, Sevilla} Problemas de contingencia (contingency) q0 = {Madrid} pueden fallar los vuelos Problemas de exploracin (online) viajar sin mapa
IRC 2008 - JVR - 7

Soporte computacional: Definiciones


Un grafo es una estructura de informacin compuesta de nodos (piezas de informacin) + arcos (uniones entre ellos) Hojas: nodos sin descendientes (los ltimos) Camino: sucesin de nodos siguiendo los arcos Ciclo: camino cerrado (bucle) Grafo dirigido: los arcos indican el sentido de la relacin Grafo acclico: no tiene ciclos Grafo conexo: entre dos nodos siempre hay un camino Un rbol es un grafo dirigido acclico conexo en el que: Hay un nico nodo raz Cada nodo tiene un nico padre Para cada nodo existe un nico camino que lo conecta con el nodo raz
Coste de un nodo: coste de llegar al nodo desde la raz a lo largo del mejor camino
IRC 2008 - JVR - 8

Inteligencia en Redes de Comunicaciones

Soporte computacional: rboles


Para modelar los problemas de bsqueda se usan rboles, en los que:
nodos: estados intermedios arco: aplicacin de un operador (movimientos vlidos) a un estado

IRC 2008 - JVR - 9

El problema de euros y dlares


Situacin inicial: Objetivo: $ $ $ $

Estado: serie de monedas Reglas: r1: desplazar $ al hueco de la derecha r2: desplazar al hueco de la izquierda r3: saltar $ a la derecha r4: saltar a la izquierda Card(Q) = 27 ( sirve una bsqueda exhaustiva)
IRC 2008 - JVR - 10

Inteligencia en Redes de Comunicaciones

El problema del puzzle-8


4 7 6 1 5 3 2 8 1 2 3 8 4 7 6 5

Estado: matriz Reglas: r1: hueco a la derecha r2: hueco a la izquierda r3: hueco arriba r4: hueco abajo Card(Q) = 9! = 362.880 ( sirve una bsqueda exhaustiva)
IRC 2008 - JVR - 11

El problema del puzzle-15


4 7 6 1 5 3 2 8 1 2 3 4 5 6 8 7 Card(Q) = 16! ~ 21013 ya no sirve una bsqueda exhaustiva!!!

IRC 2008 - JVR - 12

Inteligencia en Redes de Comunicaciones

Complejidad

La resolucin de problemas en IA es un problema NP-completo (No-Determinista Polinmico, con crecimiento asinttico)


IRC 2008 - JVR - 13

Estrategias de bsqueda
En definitiva, no slo basta plantear los problemas de una manera formal, sino que hace falta encontrar la forma apropiada de decidir las reglas a aplicar desde el estado inicial para llegar al estado final y el orden en que stas se aplican: las estrategias de bsqueda

IRC 2008 - JVR - 14

Inteligencia en Redes de Comunicaciones

Algoritmo general de bsqueda


A partir del nodo inicial, se expande el nodo i-simo, ejecutando todas sus transiciones:
Si el nodo destino no existe en el rbol, se aade Si el nodo destino ya existe:
expandir el nodo i-simo apuntando al nodo existente si se est registrando el mejor camino, comprobar si el nuevo camino es mejor

Si el nodo destino es un nodo final, devolver como solucin el camino seguido desde el nodo inicial hasta llegar a l

IRC 2008 - JVR - 15

Algoritmo general de bsqueda (2)


Q, V: lista de nodos S: nodo inicial 1) Inicializar Q = {S}, V = {S}, costeS=0 2) Si Q est vaca, devolver SIN_SOLUCIN 3) Sacar un nodo N de Q 4) Si N es nodo final, devolver N como solucin 5) Para todos los descendientes Ni de N: - Enlazar Ni con N - Si Ni no est en V: costeNi=costeN+costeN Ni aadir Ni a Q aadir Ni a V - En otro caso: Si costeNi_anterior>costeN+costeN Ni costeNi=costeN+costeN Ni aadir Ni a Q En otro caso, no hay que hacer nada 6) Volver a 2

IRC 2008 - JVR - 16

Inteligencia en Redes de Comunicaciones

Estrategias de bsqueda
Las estrategias de bsqueda definen el orden para la expansin de nodos (qu N se extrae, dnde se inserta Ni) Cada estrategia hay que evaluarla segn:

la completitud de la solucin
encuentra la solucin, si sta existe?

la complejidad temporal
cuntos nodos se han generado?

la complejidad espacial
cuntos nodos como mximo se han guardado en memoria?

la optimalidad de la solucin
encuentra la solucin de menor coste?
Factor de ramificacin (b), profundidad de la solucin (d), mxima profundidad (m)
IRC 2008 - JVR - 17

Parmetros de evaluacin:

Tipos de estrategias de bsqueda


Estrategias sin informacin del dominio o bsqueda a ciegas (uninformed strategies)
Slo emplean la informacin en la definicin del problema Fuerza bruta

Estrategias con informacin del dominio o estrategias heursticas (informed strategies)


Emplean informacin del espacio de bsqueda para evaluar cmo va el proceso La idea es utilizar una funcin de evaluacin (heurstico) de cada nodo (del coste de llegar a l)
IRC 2008 - JVR - 18

Inteligencia en Redes de Comunicaciones

Bsquedas sin informacin del dominio


Bsqueda en anchura breadth-first search Bsqueda en profundidad depth-first search Bsqueda de coste uniforme uniform-cost search Bsqueda en profundidad limitada depth-limited search Bsqueda en profundidad progresiva iterative deepening search
IRC 2008 - JVR - 19

El mundo de los bloques

SOAR (a general cognitive architecture for developing systems that exhibit intelligent behavior) http://sitemaker.umich.edu/soar/home
IRC 2008 - JVR - 20

10

Inteligencia en Redes de Comunicaciones

Bsqueda en anchura (algoritmo)


Expandir el nodo ms superficial no expandido
(FIFO: extraer por el principio de Q e insertar al final)

IRC 2008 - JVR - 21

Bsqueda en anchura (evaluacin)


Solucin completa Complejidad temporal O(bd): exponencial Complejidad espacial O(bd): exponencial (guarda todos los nodos en memoria) No es la estrategia ptima (en general) El espacio es el principal problema

IRC 2008 - JVR - 22

11

Inteligencia en Redes de Comunicaciones

Bsqueda en profundidad (algoritmo)


Expandir el nodo ms profundo no expandido
(LIFO: extraer e insertar por el principio de Q)

IRC 2008 - JVR - 23

Bsqueda en profundidad (evaluacin)


Solucin no completa
En espacios con ciclos puede haber bucles infinitos Es necesaria una comprobacin de estados repetidos

Complejidad temporal O(bm):


enorme si profundidad mxima >> profundidad de la solucin Sin embargo, el algoritmo es rpido si el espacio de soluciones es denso

Complejidad espacial O(bm): lineal No es la estrategia ptima (en general)


IRC 2008 - JVR - 24

12

Inteligencia en Redes de Comunicaciones

Bsqueda de coste uniforme (algoritmo)


Expandir el nodo con menos coste no expandido
(Q: cola con prioridad)

IRC 2008 - JVR - 25

Bsqueda de coste uniforme (evaluacin)


Solucin completa Complejidad temporal:
n de nodos con coste <= coste de la solucin ptima

Complejidad espacial:
n de nodos con coste <= coste de la solucin ptima

Estrategia ptima
Pesos positivos: algoritmo de Dijkstra Pesos negativos: algoritmo de Bellman-Ford

IRC 2008 - JVR - 26

13

Inteligencia en Redes de Comunicaciones

Bsqueda en profundidad limitada


Expandir el nodo ms profundo no expandido, hasta una profundidad L

IRC 2008 - JVR - 27

Bsqueda en profundidad progresiva (algoritmo)


FOR L=0 to inf Aplicar bsqueda_en_profundidad_limitada(L) Si el resultado es vlido, se devuelve NEXT L

IRC 2008 - JVR - 28

14

Inteligencia en Redes de Comunicaciones

Bsqueda en profundidad progresiva (evaluacin)


Solucin completa Complejidad temporal O(bd): exponencial (similar a otras estrategias) Complejidad espacial O(bd): lineal Estrategia ptima si el coste = 1 Puede modificarse para utilizar bsqueda de coste uniforme

IRC 2008 - JVR - 29

IRC 2008 - JVR - 30

15

Inteligencia en Redes de Comunicaciones

Las Torres de Hanoi

IRC 2008 - JVR - 31

Bsquedas heursticas

Se dice de aquel truco o regla emprica que ayuda a encontrar la solucin de un problema (pero que no garantiza que se encuentre)
IRC 2008 - JVR - 32

16

Inteligencia en Redes de Comunicaciones

Bsquedas heursticas
Primero el mejor (best-first)
Bsqueda avariciosa (greedy search) Bsqueda A*

Mtodo del gradiente (hill-climbing) Simulated annealing

IRC 2008 - JVR - 33

Primero el mejor
Se utiliza una funcin de evaluacin (heurstica) para cada nodo y se expande el nodo mejor evaluado no expandido
(misma idea que en la bsqueda de coste uniforme)

Tema complejo y muy abierto a la idea feliz Casos especiales:


bsqueda avariciosa (greedy search) bsqueda A*

IRC 2008 - JVR - 34

17

Inteligencia en Redes de Comunicaciones

Greedy search
La funcin de evaluacin estima el coste del nodo-i hasta la meta, con lo que se expande el nodo que parece estar ms cerca de la meta (ejemplo: lnea recta) Una buena funcin de evaluacin puede mejorar drsticamente la bsqueda PROBLEMA: puede atascarse en bucles infinitos
IRC 2008 - JVR - 35

Bsqueda A*
La idea es evitar expandir caminos que ya son muy costosos Funcin de evaluacin: f(n) = g(n) + h(n)
g(n): coste sufrido hasta alcanzar n h(n): coste estimado desde n hasta la meta f(n): coste estimado total hasta la meta pasando por n

Se demuestra que la bsqueda A* alcanza la solucin ptima, siempre que se utilice un heurstico admisible (que no sobreestime el coste real):
h(n) <= h*(n) (el coste real)
IRC 2008 - JVR - 36

18

Inteligencia en Redes de Comunicaciones

Ejemplos de heursticos
4 7 6 1 5 3 2 8 1 2 3 4 5 6 8 7

Por ejemplo, se podra usar:


nmero de cuadros fuera de su sitio distancia Manhattan (nmero de cuadros desde el sitio correcto de cada cuadro)
IRC 2008 - JVR - 37

Hill-climbing
Trata de ir decidiendo el camino con menor coste hasta la meta Para ello se queda en cada salto con el nodo destino mejor valorado y sigue expandiendo por l PROBLEMA: puede atascarse en mximos locales, segn el estado inicial
Mximo global

Mximo local

IRC 2008 - JVR - 38

19

Inteligencia en Redes de Comunicaciones

Simulated annealing
La idea es escapar de los mximos locales permitiendo movimientos incorrectos, pero reduciendo gradualmente su tamao y frecuencia Se utiliza como parmetro la temperatura T del proceso Si la temperatura se reduce suficientemente despacio, se alcanza la solucin ptima Fue desarrollado en 1953 para modelado de procesos fsicos
IRC 2008 - JVR - 39

Problemas de satisfaccin de restricciones


Constraint satisfaction problem (CSP) Objetivo: descubrir un estado del problema que satisfaga un conjunto de restricciones Los CSPs son problemas especiales en los que:
los estados estn definidos por los valores asignados a un conjunto de variables el objetivo est definido por restricciones en los valores de las variables
IRC 2008 - JVR - 40

20

Inteligencia en Redes de Comunicaciones

Ejemplo clsico: 4 reinas


Poner cuatro reinas (damas) sin que ninguna pueda atacar a las dems ( sin que haya dos en la misma columna y no estn en diagonal) Variables: Q1, Q2, Q3, Q4 Dominio: {1,2,3,4} Restricciones:
Q Q Q Q

Qi != Qj |Qi - Qj| != |i - j|
Significado: (Q1, Q2) pueden valer (1,3) (1,4) (2,4) (3,1) (4,1) (4,2)

IRC 2008 - JVR - 41

Ejemplo: Sudoku

http://sudoku.3ontech.com

IRC 2008 - JVR - 42

21

Inteligencia en Redes de Comunicaciones

Otros ejemplos menos ldicos


Planificacin de horarios de clase Configuracin de hardware compatible Planificacin de rutas Planificacin de produccin Problemas de asignacin de recursos Evaluacin de riesgos en inversiones

IRC 2008 - JVR - 43

Bsqueda en CSP (enfoque inicial)


El enfoque inicial es abordar una bsqueda normal Estado inicial: variables sin asignar Operadores: asignar valores a variables no asignadas Objetivo: todas las variables asignadas, todas las restricciones cumplidas Estrategia: (por ejemplo) bsqueda en profundidad DESVENTAJAS: Baja eficiencia porque el orden de asignacin es irrelevante y no se comprueban las restricciones no cumplidas

IRC 2008 - JVR - 44

22

Inteligencia en Redes de Comunicaciones

Bsqueda con retroceso (backtracking)


Igual que el anterior, empleando bsqueda en profundidad pero:
fijando el orden de asignacin de variables comprobando violacin de restricciones permitiendo slo sucesores vlidos

Este es el algoritmo bsico sin informacin del dominio para los CSPs Es capaz de resolver hasta 15-reinas

IRC 2008 - JVR - 45

Comprobacin hacia delante (forward checking)


Idea:
recordar los valores vlidos que quedan para las variables no asignadas detener la bsqueda cuando no quedan valores vlidos para una variable

La comprobacin hacia delante evita a priori asignaciones errneas Es capaz de resolver hasta 30-reinas

http://www.iol.ie/~jmchugh/csc302/more/queens/
IRC 2008 - JVR - 46

23

Inteligencia en Redes de Comunicaciones

Bsqueda heurstica en CSPs


Idea: tomar decisiones ms inteligentes sobre:
qu valor asignar a la siguiente variable qu variable asignar la siguiente

El uso de heursticos inteligentes mejora significativamente el proceso de bsqueda Se puede resolver hasta 1000-reinas ... y ms de eso?

IRC 2008 - JVR - 47

Juegos
Problemas de bsqueda donde interviene al menos un adversario
Tus movimientos por s solos no aseguran la victoria: es necesaria una estrategia de oposicin En general, el tiempo disponible para cada movimiento impone soluciones aproximadas (no sirve la fuerza bruta) Dos tipos de juegos:
Deterministas: no interviene el azar (4-en-raya, ajedrez, damas) No deterministas: el azar est presente (backgammon, parchs, monopoly)

Por qu gustan tanto en IA?


Divertidos Difciles Fciles de formalizar y con un nmero pequeo de acciones
(Los juegos son para la IA como la F1 es para la ingeniera del automvil)

IRC 2008 - JVR - 48

24

Inteligencia en Redes de Comunicaciones

Estrategia Minimax
Consiste en elegir el mejor movimiento para uno mismo (MAX) suponiendo que el adversario (MIN) escoger el mejor para s mismo (que tambin juega a ganar) Pasos: Generar el rbol de juego, alternando movimientos (ply) de MAX y MIN y asignndoles los valores apropiados (MAX>0, MIN<0) Calcular la funcin de utilidad de cada nodo final, recorriendo recursivamente los nodos hasta el estado inicial Elegir como jugada a realizar aquel primer movimiento que conduce al nodo final con mayor funcin de utilidad
IRC 2008 - JVR - 49

Las 3 en raya

IRC 2008 - JVR - 50

25

Inteligencia en Redes de Comunicaciones

Posible rbol de bsqueda (2-ply)


f(n)= (n de filas, columnas o diagonales abiertas para MAX) (n de filas, columnas o diagonales abiertas para MIN)

IRC 2008 - JVR - 51

Problema de minimax
El nmero de estados del juego es exponencial al nmero de movimientos
(esto es, en la mayora de juegos, generar el rbol completo es inviable en recursos de memoria)

Solucin: no examinar todos los estados


Generar un rbol parcial (anticipar slo los N movimientos siguientes) Usar heursticos: Memoria de partidas anteriores Movimientos preferidos Poda alfa-beta (alpha-beta pruning) Alfa = valor de la mejor jugada hasta el momento para MAX Beta = valor de la mejor jugada hasta el momento para MIN No expandir (podar) los caminos que no proporcionen mejoras sobre el mejor camino hasta el momento
IRC 2008 - JVR - 52

26

Inteligencia en Redes de Comunicaciones

Las 4 en Raya

http://www.it.uc3m.es/jvillena/irc/demos/cuatroenraya/cuatroenraya.html
IRC 2008 - JVR - 53

Las Damas

http://www.it.uc3m.es/jvillena/irc/demos/damas/damas.html
IRC 2008 - JVR - 54

27

Inteligencia en Redes de Comunicaciones

Juegos con varios jugadores


La funcin de utilidad se convierte en un vector de valores

IRC 2008 - JVR - 55

Juegos con azar

Se modelan las probabilidades de la jugada mediante un jugador ficticio (CHANCE) Por tanto, el valor de la funcin de utilidad es simplemente aproximado
IRC 2008 - JVR - 56

28

Inteligencia en Redes de Comunicaciones

Juegos con suma no nula


Minimax se puede aplicar a juegos con suma cero y en los que el oponente juega a ganar
la ganancia o prdida de MAX se equilibra exactamente con las prdidas o ganancias de MIN

Sin embargo, muchas de las situaciones del mundo real habitualmente tienen suma no nula
los participantes pueden beneficiarse o perder al mismo tiempo Ejemplos: ciclismo, las actividades econmicas, la guerra En estas situaciones, la moraleja es que resulta mejor maximizar el beneficio conjunto

IRC 2008 - JVR - 57

Paradigma: El dilema del prisionero


La polica arresta a dos sospechosos. No hay pruebas suficientes para condenarles, y tras haberles separado, les visita a cada uno y les ofrece el mismo trato:

Estrategia dominante: confesin


independientemente de lo que decida el otro, puedes reducir tu condena confesando Sin embargo, el resultado no es ptimo

Estrategia ptima: colaboracin (equilibrio de Nash) Variaciones:


La decisin en realidad depende de la matriz de costes Dilema del prisionero iterado
IRC 2008 - JVR - 58

29