Está en la página 1de 9

Unidad II: Conocimiento y Razonamiento.

Objetivos:
* Analizar las técnicas de representación del conocimiento y razonamiento automático que
permitan su mejor integración en los sistemas expertos.

*Construir representaciones gráficas y textuales del conocimiento a través de herramientas de


modelado que permitan una abstracción y compresión del mismo para una correcta
implementación en un sistema experto.

* Valorar la lógica como formalismo para la representación del conocimiento relevante y


racional que poseerá el sistema experto que se desarrollará.

Contenido:
Solución de problemas mediante búsqueda
La resolución de problemas es fundamental para la mayoría de las aplicaciones de Inteligencia
Artificial(IA). De hecho, la capacidad de resolver problemas suele usarse como una medida de
la inteligencia tanto para el ser humano como para la computadora. Hay principalmente dos
clases de problemas. Una primera clase puede ser resuelta usando algún tipo de procedimiento
determinista cuyo éxito esté garantizado. A este procedimiento se le llama de computación. La
resolución por computación normalmente sólo se aplica a aquellos tipos de problemas para los
que existan tales procedimientos, como en matemáticas.
Se puede con frecuencia traducir los métodos usados para resolver estos problemas de manera
fácil, a un algoritmo que pueda ser ejecutado por una computadora. No obstante, a pesar de
que pocos problemas reales se prestan a soluciones computables, deben ser situados en la
segunda categoría, que consiste en problemas que se resuelven con la búsqueda de una
solución. Este es el método de resolución de problemas del que se preocupa la IA.

Figura 1.1: Plano de casa del problema de las llaves perdidas


Por ejemplo, imagine que ha perdido las llaves de su coche. Sabe que están en algún lugar de
la casa, cuyo plano está en la figura 1.1
La X indica que usted está en la puerta principal. Al empezar su búsqueda primero comprueba
la sala de estar. Luego va por el salón hacia el primer dormitorio, después vuelve al salón y va
al segundo dormitorio, y vuele de nuevo al salón para ir al dormitorio principal. Como aún no
ha encontrado las llaves, vuelve hacia atrás pasando por la sala de estar hacia la cocina, donde
encontrará sus llaves. La figura 1.2 presenta un grafo del camino que se ha seguido.

El hecho de que pueda representar la solución a esta clase de problemas en forma de grafos es
importante porque le ofrece una forma sencilla de observar cómo funcionan las diferentes
técnicas de búsqueda.
Para entender este tema es necesario tener presente las siguientes definiciones:
Un estado es la representación de un problema en un instante dado. Para definir el espacio de
estados o espacio de búsqueda (El conjunto de todos los nodos) no es necesario hacer una
exhaustiva enumeración de todos los estados válidos, sino que es posible definirlo de manera
más general.
El estado inicial consiste en uno o varios estados en los que puede comenzar el problema. El
estado objetivo o estado meta consiste en uno o varios estados finales que se consideran
solución aceptable.
Las reglas describen las acciones u operadores que posibilitan un pasaje de estados.
Podríamos decir que una regla tiene una parte izquierda y una derecha. La parte izquierda
determina la aplicabilidad de la regla, es decir, describe los estados a los que puede aplicarse la
regla. La parte derecha describe la operación que se lleva a cabo si se aplica la regla(acción).
La heurística es la información acerca de la posibilidad de que un nodo específico sea mejor
para intentar la próxima elección que cualquier otro nodo.
El camino solución es el grafo dirigido de los nodos visitados que nos llevan a la solución.

2.3.1. Espacios y métodos de búsquedas. Métodos de solución de problemas.


El planteamiento de un problema de búsqueda consiste en encontrar o conseguir un objetivo.
La resolución del mismo puede estructurarse en los siguientes pasos:
1. Determinar una serie de objetivos o metas que se deseen alcanzar. Estos objetivos pueden
ser múltiples (restricciones de tiempo, de coste, etc) o simples (alcanzar un estado final).
2. Disponer de un conjunto de acciones que conduzcan a la obtención de los objetivos o metas.
Estas acciones son denominadas operaciones.
3. Definir un procedimiento de selección entre las diferentes formas de alcanzar las metas.
Cada una de estas soluciones constituye una secuencia de acciones determinada y posible. Se
llama solucionador al módulo encargado de construir dicha solución.
Abordaremos la definición de un problema en un espacio de estados y su resolución mediante
estrategias de búsqueda que vendrán limitadas por el tipo de conocimiento que tengamos del
problema en cuestión.
Aunque los métodos de búsqueda se reduzcan en muchos casos a meros algoritmos
matemáticos, lo que se persigue desde el punto de vista de la IA es entender el problema que
se trata de resolver, analizar sus posibles soluciones y las consecuencias de buscar una solución
por un camino u otro.
No se trata de encontrar una solución final optima o al menos convincente como de haber
ganado en el conocimiento de un problema que se puede aplicar a una situación real.
La resolución de problemas es una capacidad que consideramos inteligente.
Somos capaces de resolver problemas muy diferentes: encontrar el camino en un laberinto,
resolver un crucigrama, jugar a un juego, diagnosticar una enfermedad, decidir si invertir en
bolsa, etc.
El objetivo es que un programa también sea capaz de resolverlos.
Deseamos definir cualquier tipo de problema de manera que se pueda resolver
automáticamente.
Necesitamos una representación común para todos los problemas y algoritmos que usen alguna
estrategia para resolver problemas definidos en esa representación común.

¿Cuáles son sus elementos de las técnicas de búsqueda?


Los elementos que integran las técnicas de búsqueda son:
- Conjunto de estados: todas las configuraciones posibles en el dominio.
- Estados iniciales: estados desde los que partimos.
- Estados finales: las soluciones del problema.
- Operadores: se aplican para pasar de un estado a otro.
- Solucionador: mecanismo que nos permite evolucionar de un estado a otro mediante un
algoritmo aplicando los siguientes pasos:
1. Elegir el estado a explorar
2. Establecer un operador que trabaje sobre el estado elegido en el paso 1
3. Comprobar si el resultado obtenido es un estado final (es una solución del problema).
Sino ir al paso 1.
Ejemplo con 8-puzzle: este juego consiste en, dada una matriz de 3x3 elementos, tenemos
8 números que deben de ser ordenados dejando la casilla central vacía.
Para resolverlo usaremos técnicas de búsqueda:
- El conjunto de estados son todas las combinaciones posibles de ordenación de las 9 piezas.
- El estado inicial es el estado en el que nos dan el puzzle, en desorden.
- El estado final es el puzzle ordenado.
- Los operadores son mover una ficha en cualquier dirección: arriba, abajo, izquierda o derecha.

Tipos de salucionadores
Para decidir como contestar a las preguntas del solucionador podemos usar dos tipos de
búsqueda:
- Búsqueda ciega:
- Se hace crecer el árbol de forma sistemática
- No se realiza análisis entre el estado obtenido y la solución
- Búsqueda heurística:
- El crecimiento del árbol se hace inyectando conocimiento.
- Este conocimiento permite calcular la distancia entre el estado obtenido y el estado
final.
Un buen solucionador será aquel que realice su función a bajo coste según los siguientes
parámetros:
- Complejidad temporal: tiempo empleado en obtener la solución
- Complejidad espacial: cantidad de recursos necesarios para obtener la solución. Por ejemplo:
memoria.
La explosión combinatoria es un fenómeno que hace que el problema no se pueda abordar
computacionalmente.

2.3.2. Métodos de planificación, técnicas de programación de búsquedas.


Las técnicas de búsqueda son una serie de esquemas de representación del conocimiento, que
mediante diversos algoritmos nos permite resolver ciertos problemas desde el punto de vista
de la I.A.
La fase de búsqueda, se analizan todas las secuencias posibles de acciones que nos conlleven a
los estados de valores conocidos, para así escoger la mejor secuencia de acciones, luego de esto
se ejecutan la secuencia de acciones que fue elegida en la fase de búsqueda.
Búsqueda Ciega
 Sólo utiliza información acerca de si un estado es o no objetivo para guiar su proceso de
búsqueda.
Antes de explicar los tipos de búsqueda ciega, convendría dar una serie de definiciones:
 Expandir un nodo: obtener los posibles hijos de un nodo a partir de la aplicación de los
distintos operadores sobre él.
 Nodo cerrado: Se han aplicado todos los posibles operadores sobre él, obteniéndose todos
sus posibles hijos.
 Nodo abierto: No han actuado todos los posibles operadores, con lo que podrían obtenerse
nuevos hijos aplicando los operadores restantes.
Tipos de búsqueda ciega:
 Búsqueda en amplitud.
 Búsqueda en profundidad.
 Búsqueda en profundidad progresiva.
 Búsqueda bidireccional.

2.3.2.1. Búsqueda primero en anchura.


Principio: expandir el nodo menos profundo que no haya sido expandido.
La frontera es una cola FIFO, los nuevos sucesores van al final

Algoritmo: primero en anchura


1. Crear una lista con un solo elemento consistente en una trayectoria o camino de longitud
cero: el nodo raíz
2. Hasta que el primer camino de la lista llegue al nodo objetivo o se llegue a la lista vacía hacer
a. Extraer el primer camino de la lista
b. Expandir el nodo final de este camino a todos los vecinos del nodo terminal.
c. Eliminar los ciclos de los caminos expandidos.
d. Insertar estos nuevos caminos al Final de la lista.
3. FIN Hasta
4. Si se halla el nodo meta notifique el éxito, si no el fracaso

2.3.2.2. Búsqueda de costo uniforme.


En el caso de la BÚSQUEDA DE COSTO UNIFORME se modifica la estrategia preferente por
amplitud en el sentido de expandir siempre el nodo de menor costo en el margen (medido por
el costo de la ruta g(n)) en vez del nodo de menor profundidad.g(n) = PROFUNDIDAD(n).
Se expande el nodo hoja con menor costo
Es un método completo
Es optimo incluso si el costo de cada operador es distinto
Complejidad espacio-temporal es bd
Mediante la búsqueda por costo uniforme se puede encontrar la solución más barata, siempre
y cuando se satisfaga un requisito muy sencillo: el costo de la ruta nunca debe ir disminuyendo
conforme avanzamos por la ruta. En otras palabras, es importante que: g(SUCESOR(n)) > g(n)
2.3.2.3. Búsqueda primero en profundidad.
Principio: expandir el nodo más profundo que no haya sido expandido. La frontera es una
cola LIFO, los nuevos sucesores van al inicio.

Una forma sencilla de hallar una trayectoria es tomar uno de los hijos en cada nodo que se
visita, y avanzar a partir de ese hijo. Otras alternativas del mismo nivel se ignoran por
completo, en tanto haya posibilidad de alcanzar la meta mediante la selección original. Esta
estrategia es la esencia de la búsqueda primero en profundidad. Un ejemplo de
búsqueda en profundidad se muestra en la figura 3.5. A partir del nodo inicial (S) se elige una
alternativa y se le sigue en cada nodo hasta llegar a la meta o a un nodo en el que ya no es
posible seguir hacia abajo, la búsqueda se reinicia en el antecesor más cercano que posea
hijos sin explorar
S

C E

D F

Figura 3.5. Búsqueda en profundidad del mapa

El algoritmo para la búsqueda en profundidad se enlista a continuación:

1. Forme una lista con la trayectoria que contiene el nodo inicial.


2. Hasta que la lista esté vacía
2a. Elimine la primer trayectoria de la lista
2b. Si la trayectoria llega al nodo meta vaya al paso 3
2c. Si no, genere nuevas trayectorias extendiendo la trayectoria eliminada
2d. Si alguna trayectoria generada contiene ciclos, elimínela
2e. Agrege las trayectorias generadas, si existen, al inicio de la lista
3. Si se encontró el nodo meta notificar éxito, si no notificar fracaso.

2.3.2.4. Búsqueda iterativa.


La amplitud iterativa, es un método de búsqueda que se basa en una búsqueda de anchura que
itera, en algún momento para encontrar una solución; en este caso, sería extraño que siempre
iterara de extremo a extremo (como se conoce que la búsqueda de anchura funciona), entonces
es en este punto en donde la amplitud iterativa cambia.

En la amplitud iterativa, en lugar de aumentar la profundidad de la búsqueda, se aumenta la


anchura del árbol en cada iteración. Así, la primera iteración expande solo el primer hijo de
cada nodo; en la segunda iteración vuelve a expandir el primero junto con segundo hijo
(también de cada nodo) y de esta manera sucesivamente.

Esta técnica dice que los nodos solución o nodos objetivo, no suelen ser distribuidos al azar en
el árbol, por lo que es un desperdicio explorar una porción entera del árbol inmediatamente
(como lo suele hacer la profundización).
2.3.2.5. Búsqueda A*
Esta búsqueda es una búsqueda preferente por lo mejor en la que se utiliza f como función de
evaluación.

La función f calcula el costo estimado de la solución más barata, pasando por n y se calcula de
la siguiente manera:
f=g(n) + h(n)
Siendo g(n) el costo de ruta y h(n) una heurística admisible (que nunca sobreestima el costo
que implica alcanzar la meta).

En esta búsqueda la cantidad de memoria necesaria crece exponencialmente con respecto a la


profundidad. Pero la elección de una buena función heurística permite disminuir notablemente
la complejidad tanto en tiempo como en espacio.
Es óptima y completa.

También podría gustarte