Está en la página 1de 21

INTRODUCCION Y ORIENTACIONES PARA EL ESTUDIO

INDEPENDIENTE
La búsqueda proporciona una forma de resolver los problemas en los que no se dispone de un
método más directo para resolver un problema. Cuando tenemos un grafo que representa los
estados del problema a resolver, debemos descubrir un camino, si existe, entre un estado inicial y
un estado meta.
Para construir un sistema de búsqueda, es necesario realizar cuatro acciones:
 Definir el problema con precisión
 Analizar el problema
 Aislar y representar el conocimiento necesario para resolver el problema
 Elegir la mejor técnica que resuelva el problema

Para definir el problema debemos de manera general seguir los siguientes pasos:
 Definir un espacio de estado que contenga todas las configuraciones posibles
 Identificar uno o más estados. Estados iniciales
 Identificar uno o más estados que den solución aceptable al problema.
 Especificar un conjunto de reglas que describan las acciones disponibles

Cuando tenemos un espacio de estados, debemos descubrir un camino si existe entre un estado
inicial y un estado meta. En un grafo hay bastantes nodos y no podemos inspeccionar cada nodo.
Sin embargo la búsqueda s un proceso de gran importancia en la resolución de problemas
difíciles que no pueden ser resueltos de otra forma.

Todos los procesos de búsqueda pueden tratarse como un recorrido sobre una estructura en forma
de árbol en el que cada nodo representa un estado del problema y cada enlace representa una
relación entre los estados que representan los nodos que están conectados. El árbol debería
construirse completamente mediante las reglas que definen los movimientos permitidos en el
espacio del problema.

Durante el desarrollo de esta unidad abordaremos los algoritmos de búsqueda más utilizados,
tales como: algoritmo en anchura, profundidad y primero el mejor. Cada uno de estos tiene sus
características propias, sin embargo nosotros debemos prestar especial atención al momento de la
solución de los problemas, para desarrollar habilidades y saber en que momento debemos usar
que tipo de algoritmo. Es por ello, que además de la información que compartiremos en este
documento, debemos investigar adicionalmente una serie de conceptos y bases teóricas que nos
llevaran a comprender mejor estos conceptos y técnicas. Debemos dedicar el mayor tiempo
posible a la solución de los ejercicios planteados y resolver otra vez en casa los que resolvamos
en el encuentro una mayor comprensión.

Para terminar seria bueno mencionar que nosotros como Ingenieros en Sistemas debemos
conocer todas estas técnicas para resolver problemas, en cada caso debemos tener la habilidad de
escoger aquella que nos permita resolver más rápido y eficientemente un problema. Por esto
debemos tener presente que lejos de una metodología, estas son técnicas reales que han

1
demostrado su utilidad en la resolución de muchos problemas que de otra forma no se les podría
dar solución.
Para desarrollar el contenido es bueno mencionar que esta información será de gran utilidad para
nosotros en el desarrollo como profesionales, ya que se convertirá en una poderosa herramienta
para la solución de problemas en la vida real. Al finalizar esta unidad lograremos estar
conscientes de esta afirmación y estaremos en capacidad de resolver la mayoría de problemas de
nuestra rama.

2
OBJETIVOS

 Conocer una de las formas mas utilizadas de la IA para la resolución de problemas,


ampliando los conocimientos de las diferentes técnicas de solución de problemas.

 Establecer diferencias entre los distintos algoritmos de búsqueda, considerando las


bases sobre las que se han desarrollado.

 Desarrollar habilidades en el uso adecuado de los algoritmos de búsqueda en la


solución a las tareas.

 Aplicar los algoritmos de búsqueda en la resolución de problemas de la vida real,


desarrollando habilidades y destrezas en el uso y aplicación de técnicas de búsqueda
en la solución de los mismos.

 Resolver tareas relacionadas con la vida cotidiana a través de técnicas de búsqueda


que se conviertan en un elemento de respaldo adicional en la vida profesional
solucionando diversos tipos de problemas.

3
ESQUEMA DE CONTENIDO

1. DEFINICIÓN DEL PROBLEMA

2. ANÁLISIS DEL PROBLEMA

3. TÉCNICAS DE SOLUCIÓN
3.1 Estrategia de Búsqueda
3.2 Espacio de Estado
3.3 Algoritmo Generación y Prueba (GENERATE-AND-TEST)
3.4 Algoritmo Primero a lo Ancho (BREATH-FIRST)
3.5 Algoritmo Primero en Profundidad (DEPTH-FIRST)
3.5.1 Ventajas

4. ALGORITMOS DS BUSQUEDA HEURÍSTICA


4.1 Búsqueda Heurística
4.1.1. Algoritmo de Recocido Simulado (Simulated Annealing)
4.1.2 Algoritmo Primero el Mejor (Best-First)

5. CASOS DE APLICACIÓN

4
DESARROLLO DEL CONTENIDO

1. DEFINICIÓN DEL PROBLEMA

El primer paso hacia el diseño de un programa que resuelva un problema en IA, debe ser la
creación de una forma descriptiva formal y manipulable del problema, a partir de la descripción
informal del mismo.

La definición del problema como una búsqueda en el espacio de estados forma la base de la
mayoría de los métodos que se utilizan para la solución de problemas en IA. Los estados del
sistema o descripción de estados, son representaciones que contienen el conjunto de toda la
información que describe la situación actual del sistema. En cambio, el espacio de estado del
sistema o espacio del problema, es el dominio que contiene todos los posibles estados del
sistema. El espacio de estados puede ser finito o infinito.

Los mecanismos que se emplean para modificar o transformar un estado del sistema, toman el
nombre de operadores, producciones o acciones, y se utilizan para enlazar un estado actual, con
otro estado objetivo.

Cuando existen varias posibles soluciones, representadas por diversas secuencias de operadores
que enlazan dos estados, es necesario desarrollar algoritmos de IA que sean capaces de identificar
las mejores secuencias.

En general, el posible número secuencias de operadores a ser exploradas en el desarrollo de una


solución puede ser muy grande, por lo que los algoritmos que se empleen no deben requerir la
enumeración de todas las secuencias posibles. Esto sugiere el empleo de un proceso de búsqueda
para tratar de encontrar una solución aceptable.

La búsqueda es un proceso de gran importancia en la resolución de problemas difíciles para los


que no se dispone de técnicas más directas. Los procesos de búsqueda están cercanamente
relacionados con los procesos de optimización.

En resumen, la representación como espacio de estados ofrece una estructura que permite:

 Definir formalmente el problema, al poder convertir alguna situación dada en una


situación deseada utilizando un conjunto de operaciones permitidas.
 Definir la resolución de un problema como la combinación de dos componentes:
 Un conjunto de operadores que, al modificar o transformar un estado, representan
movimiento en el espacio del problema.
 Un proceso de búsqueda, que explorando el espacio intenta encontrar alguna ruta desde el
estado actual hasta un estado objetivo.

Al proceso que se encarga de convertir una descripción informal, en una descripción formal del
problema, se lo denomina operacionalización. Los pasos a seguirse son los siguientes:

5
 Definir el espacio de estado que contiene todas las configuraciones posibles de los objetos
relevantes. Esto es posible, sin necesariamente enumerar en forma explícita todos los
estados que contiene.
 Especificar uno o más estados dentro de ese espacio que correspondan a posibles
situaciones desde donde el proceso de resolución pueda arrancar (estados iniciales).
 Especificar uno o más estados que podrían ser aceptables como soluciones al problema
(estados objetivo).
 Especificar un conjunto de operadores que describan las acciones posibles. Para esto se
debe considerar los siguientes aspectos:
 ¿Qué suposiciones implícitas están presentes en la descripción informal del problema?
 ¿Qué generalidad deben tener los operadores?
 ¿Qué cantidad del trabajo requerido para resolver el problema debería estar incluido y
representado en los operadores?

Luego, el problema puede ser resuelto utilizando el conjunto de operadores, en combinación con
una estrategia de control apropiada, para moverse dentro del espacio de estados del problema
hasta encontrar un sendero entre el estado inicial y el estado objetivo. Como se indicó
anteriormente, el mecanismo de búsqueda es fundamental para el proceso de solución del
problema. Adicionalmente, proporciona un marco donde pueden intercalarse métodos más
directos de resolución de partes del problema, en caso de ser esto posible.

2. ANÁLISIS DEL PROBLEMA

Para poder escoger el o los métodos más apropiados para resolver un problema, es necesario
analizarlo en algunos aspectos claves y buscar las respuestas necesarias a las siguientes
preguntas:
 ¿Puede el problema ser descompuesto en un conjunto de sub - problemas pequeños y,
posiblemente, independientes?
 ¿Podrían ignorarse pasos de solución o ser corregidos si resultaran inútiles?
 ¿Es posible predecir el o los resultados del problema?
 ¿Una buena solución al problema es suficientemente obvia, sin necesidad de compararla
con otras posibles soluciones?
 ¿La solución deseada es un estado o una ruta desde un estado inicial hasta un estado
objetivo?
 ¿Es absolutamente necesaria toda una cantidad de conocimiento para resolver el
problema, o es importante sólo para restringir la búsqueda?
 ¿Puede un computador, al que se le ha dado el problema, retornar por sí sólo la solución,
o será necesario que haya una interacción entre el computador y una persona?
Las respuestas que se den a las preguntas planteadas no sólo afectan a la definición del problema
en sí mismo, sino también a las características de la solución deseada y a las circunstancias bajo
las cuales debe darse la solución.

6
3. TÉCNICAS DE SOLUCIÓN

Las técnicas de solución de problemas en IA, en general, incorporan un proceso de búsqueda.


Todo proceso de búsqueda puede ser visualizado como el recorrido por un árbol en el que cada
nodo representa un estado y cada rama representa las relaciones entre los estados cuyos nodos
conecta.

En general, las reglas contienen en forma implícita el árbol, y se genera en forma explícita sólo
aquellas partes que se decide explorar. Las principales diferencias que pueden aparecer en las
diferentes técnicas de búsqueda, son:

 La dirección en la cual se conduce la búsqueda (hacia adelante o hacia atrás).


 La estrategia de control, o forma de seleccionar las reglas que pueden ser aplicables. Los
principales requerimientos de una buena estrategia de control son: que cause
desplazamiento en el espacio de estado; y, que sea sistemático.
 La forma de representar cada nodo del proceso de búsqueda (representación del
conocimiento).

Muchas veces, tratar el proceso como búsqueda en un grafo en lugar de una búsqueda en un
árbol, puede reducir el esfuerzo que se gasta en explorar senderos, esencialmente iguales, varias
veces. Sin embargo, los requisitos asociados, son:

 Cada vez que se genere un nodo se debe chequear para ver si ha sido generado antes.
 Se deben introducir procedimientos especiales para que la búsqueda no quede atrapada en
algún lazo.

A continuación se describen los algoritmos de tres procesos básicos de búsqueda de soluciones en


el espacio de estado.

3.1 Estrategia de Búsqueda

Es la forma en que se decide que regla hay que aplicar durante el proceso de búsqueda de la
solución de un problema. Esto surge a que con frecuencia es posible aplicar mas de una regla.
Esto tiene que ver con la rapidez de la solución del problema.
 El primer requisito que debe cumplir una buena estrategia de control es que cause algún
cambio.
 El segundo es que la estrategia de búsqueda sea sistemática. Elegir una entre todas las reglas
aplicables. Este requisito se corresponde con una necesidad de cambio global.

3.2 Espacio de Estado

El espacio de estado es donde se define todos los elementos generales obtenidos después del
análisis del problema. Es decir, es donde se define entre otras cosas:

7
 N: Nodos o estados
 A: Transición
 I: Estado Inicial
 F: Estado Inicial

3.3 Algoritmo Generación y Prueba (GENERATE-AND-TEST)

1. Generar una posible solución. (estado o camino)

2. Comprobar para ver si es una solución, mediante comparación con los


elementos del conjunto de objetivos aceptables.

3. Si la solución ha sido encontrada salir, de otra manera, retornar al paso 1.

3.4 Algoritmo Primero a lo Ancho (BREATH-FIRST)

1. Crear una variable NODE_LIST y ponerla al estado inicial.


2. Hasta que se encuentre el objetivo o hasta que NODE_LIST esté vacía haga lo siguiente:
a. Remover el primer elemento de NODE_LIST, y llamarlo E. Si NODE_LIST
estuvo vacía, salir.
b. Para cada forma en que cada regla puede ajustarse al estado descrito en E, haga lo
siguiente:
i. Aplicar la regla para generar un nuevo estado.
ii. Si el nuevo estado es un estado objetivo, salir y retornar este estado.
iii. Si no, añada el nuevo estado al final de NODE_LIST.

ALGORITMO:

1. FORMAR UNA PILA C1


2. FORMAR UNA PILA C2
3. EVALUAR SI C1 ES UNA PILA VACIA, SI LO ES TERMINAR Y RETORNAR
NO
4. SINO: TOMA EL PRIMER ESTADO DE C1, LO DESIGNA ESTADO –X Y
SITUARLO AL FINAL DE C2
5. SI ESTADO – X = META, TERMINA Y RETORNA SI
6. EXPANDIR ESTADO – X ( PRODUCIR LISTA DE SUCESORES)
7. ELIMINAR SUCESORES QUE YA ESTAN EN C1
8. INSERTAR SUCESORES AL FINAL DE C1
9. RETORNAR AL PASO 3

8
3.5 Algoritmo Primero en Profundidad (DEPTH-FIRST)

1. Si el estado inicial es el objetivo, salir y retornar éxito.


2. Sino, haga lo siguiente hasta que se obtenga señal de éxito o fracaso:
a. Genere un sucesor E del estado inicial. Si no hay más sucesores, retorne con señal
de fracaso.
b. Llame recursivamente al algoritmo, esta vez con E como el estado inicial.
c. Si la señal es éxito, retorne, de otra manera, continúe en este lazo.

El algoritmo siguiente resume la descripción anterior:

ALGORITMO:
1. FORMAR UNA PILA C1
2. FORMAR UNA PILA C2
3. EVALUAR SI C1 ES UNA PILA VACIA, SI LO ES TERMINAR Y RETORNAR
NO
4. SINO: TOMA EL PRIMER ESTADO DE C1, LO DESIGNA ESTADO –X Y
SITUARLO AL FINAL DE C2
5. SI ESTADO – X = META, TERMINA Y RETORNA SI
6. EXPANDIR ESTADO – X ( PRODUCIR LISTA DE SUCESORES)
7. ELIMINAR SUCESORES QUE YA ESTAN EN C1
8. INSERTAR SUCESORES AL INICIO DE C1
9. RETORNAR AL PASO 3

3.5.1 Ventajas

 Necesita menos memoria ya que solo se almacenan los nodos del camino que se siguen en ese
instante. Esto se contrasta con la búsqueda primero en anchura en la que debe almacenarse
todo el árbol que haya sido generado hasta ese momento.
 Si se tiene suerte (si se tiene cuidado en ordenar los estados alternativos sucesores). Puede
encontrar una solución sin tener que examinar gran parte del espacio de estados.
 En el caso de la búsqueda primero en anchura deben examinarse todas las partes del árbol de
nivel N antes de comenzar con los nodos del nivel N + 1

4. ALGORITMOS DS BUSQUEDA HEURÍSTICA

Las técnicas heurísticas de búsqueda son como guías de turismo. Buenas, en el sentido que
señalan aspectos de gran interés general, pero malas ya que pueden no satisfacer aspectos de
interés particular.

9
Existen varias técnicas heurísticas buenas, de propósito general, que son útiles para una
diversidad de problemas. Adicionalmente, es posible construir heurísticos especiales que
exploten conocimiento específico en cada dominio, para resolver problemas particulares.

4.1 Búsqueda Heurística

Para resolver muchos problemas difíciles (explosión combinatoria), es necesario muchas veces
llegar a un compromiso de los requerimientos de movilidad y sistematicidad y construir una
estructura de control que no necesariamente garantiza el encontrar la mejor respuesta, sino que
casi siempre encuentra una buena respuesta. Una técnica heurística mejora la eficiencia del
proceso de búsqueda sacrificando, usualmente, exhaustividad.

Las consideraciones que sirven de soporte a un proceso de búsqueda heurística, son:

 Rara vez se requiere, en realidad, una solución óptima. Una buena aproximación,
normalmente, sirve muy bien.
 A pesar que una aproximación heurística no puede resultar muy buena en el peor de los
casos, raras veces aparecen los peores casos en la práctica.
 El tratar de comprender por qué un heurístico funciona o por qué no funciona, a menudo
conduce a una mejor comprensión del problema.

En los siguiente puntos, estudiaremos con mayor profundidad la búsqueda heurística y algunos
algoritmos típicos.

4.1.1. Algoritmo de Recocido Simulado (Simulated Annealing)

Es una variación del ascenso a colina. Al inicio, este algoritmo, permite explorar una buena parte
del espacio de estado, de tal forma que la solución final puede resultar insensible al estado inicial.
En consecuencia, la probabilidad de quedar atrapado en un máximo local, en una meseta o en un
risco, se hace mínima.

El recocido simulado es un proceso computacional que refleja los pasos establecidos en el


proceso físico de tratamiento térmico de materiales. En el recocido, por ejemplo, un metal es
llevado a elevados niveles energéticos, hasta que alcanza su punto de fusión. Luego,
gradualmente es enfriado hasta alcanzar un estado sólido, de mínima energía, previamente
definido. Por su naturaleza, este algoritmo debe ser formulado como un descenso a valle en el
que la función objetivo es el nivel energético.

Las sustancias físicas usualmente se mueven desde configuraciones de alta energía a las de menor
energía, así que el descenso al valle, ocurre en forma natural. Pero, eventualmente pueden haber
transiciones a niveles energéticos más altos, con una probabilidad dada por:

T es la Temperatura absoluta y k es la constante de Boltzmann.

10
El procedimiento que se va a seguir para enfriar el sistema, se llama programa de recocido. Su
forma óptima depende de cada tipo de problema y usualmente se lo descubre empíricamente. El
programa de recocido, debe incluir los siguientes ingredientes:

1. El valor inicial de la temperatura.


2. El criterio que será utilizado para decidir cuando reducir la temperatura.
3. La cantidad en que será reducida la temperatura.
4. Cuando finalizar el proceso.

El algoritmo para el recocido simulado, es ligeramente diferente del procedimiento simple de


ascenso a colina. Las diferencias son:

1. Se debe respetar el programa de recocido.


2. Movimientos a estados peores que el actual, pueden ser aceptados.
3. Se debe mantener, a más del estado actual, el mejor estado encontrado hasta el momento.
Así, si por alguna razón el estado final resulta peor que el mejor encontrado
anteriormente, siempre será posible regresar a él.

4.1.2 Algoritmo Primero el Mejor (Best-First)

Este algoritmo, combina las ventajas de los algoritmos primero en profundidad y primero en
amplitud. Sigue un sendero a la vez, pero puede cambiarse a otro sendero que parece más
prometedor que el que está siguiendo.

En este sentido, puede considerarse que es un algoritmo que realiza su proceso de búsqueda en
un grafo de tipo O, ya que todos sus ramales representan una alternativa de solución. Para su
operación, el algoritmo necesita dos listas de nodos y una función heurística que estime los
méritos de cada nodo que se genere:

1. ABIERTOS - Es una variable que contiene los nodos que han


sido generados. La función heurística ha sido aplicada a ellos, pero
todavía no han sido examinados, es decir no se han generado sus
sucesores. ABIERTOS puede considerarse como una COLA DE
PRIORIDADES en la que los elementos con mayor prioridad son
los que tienen los valores más prometedores, dados por la función
heurística.

2. CERRADOS - Es una variable que contiene los nodos que han


sido examinados. Es necesario tener esta información, para que la
búsqueda sea en un grafo y no en un árbol.

3. FUNCIÓN HEURÍSTICA - Permite que el algoritmo busque


primero por senderos que son o parecen más prometedores.

Para muchas aplicaciones, es conveniente definir esta función f',


como la suma de dos, que se las llamará g y h'. La función g es una
medida del costo de llegar desde el nodo inicial al nodo actual. La

11
función h' es una estimación del costo adicional para llegar desde
el nodo actual al estado objetivo. Aquí es donde se explota el
conocimiento que se dispone sobre el dominio del problema.

Es decir, la función combinada f' representa una estimación del


costo de llegar desde el estado inicial hasta el estado objetivo,
siguiendo el sendero que ha generado el nodo actual. Si el nodo
actual ha generado más de un sendero, el algoritmo deberá dejar
registrado sólo el mejor.

El algoritmo, en la forma que fue formulado, se aplica a grafos. Puede ser simplificado para
aplicarse a árboles, si no se preocupa de comprobar si un nuevo nodo esta en ABIERTOS o en
CERRADOS. Esto aceleraría la generación de nodos y la búsqueda, para casos en que es poco
probable que se repitan nodos.

Usualmente, el costo de ir de un nodo a su sucesor, g, se fija en una constante igual 1, cuando se


desea encontrar un sendero a la solución, que involucre el menor número de pasos. Si por el
contrario nos interesa encontrar el camino menos costoso y algunos operadores cuestan más que
otros, se asume un valor de g, que refleje esos costos. Un valor de g igual a cero significaría que
simplemente nos interesa llegar a alguna solución, de cualquier manera.

5. CASOS DE APLICACIÓN

1. El siguiente problema toma en cuenta muchos de los aspectos relacionados con las
actividades que realiza una persona al hacer sus compras en un supermercado.

Después de hacer un análisis llegamos al siguiente diseño del grafo:

C: Cliente
M: Mercadería
D: Dólares
V: Vendedor
L: La tienda

12
1. C entra en L

2. C empieza a curiosear

3. C busca un M en particular 4. C busca cualquier M interesante

5. C pide ayuda a V

7. C encuentra M 8. C no encuentra M

9. C sale de L 10. C compra M 11. C sale de L 12. Vuelta al paso 2

13. C sale de L

14. C se lleva M
Figura 1. Grafo que representa los diferentes estados

2. Problema de los dos recipientes de agua

Se tienen 2 recipientes, uno de 3 galones y otro de 4 galones. Ninguno tiene marcas de


nivel. Existe una fuente, de la cual se puede llenar los recipientes con agua. Indicar, ¿Cómo
se puede tener exactamente 2 galones de agua en el recipiente de 4 galones?

En otras palabras:

Se tienen dos jarras, una de cuatro litros de capacidad y la otra de tres litros. Ninguna de
ellas tiene marcas de medición. Se tiene una bomba que permite llenar las jarras de agua.
¿CÓMO SE PUEDE LOGRAR TENER EXACTAMENTE DOS LITROS DE AGUA EN
LA JARRA DE CUATRO LITROS DE CAPACIDAD?. El estado inicial seria (0,0) y el
estado meta (2,n). Donde n es cualquier valor ya que el problema no especifica
cuantos litros debe haber en la jarra de 3 litros

Reglas de Producción

x = 0,1,2,3,4 y = 0,1,2,3

13
1. Llenar el recipiente de 4 galones: 2. Llenar el recipiente de 3 galones:

SI x < 4 => (4, y) SI y < 3 => (x, 3)

3. Vaciar el recipiente de 4 galones: 4. Vaciar el recipiente de 3 galones:

SI x > 0 => (0, y) SI y > 0=> (x, 0)

5. Pasar agua del recipiente de 3 6. Pasar agua del recipiente de 4 galones al


galones al de 4, hasta que se llene: de 3, hasta que se llene:

SI (x + y) >= 4 ^ y > 0 => (4, y - (4 - SI (x + y) >= 3 ^ x > 0 => (x - (3 - y), 3)


x))

7. Pasar toda el agua del recipiente 8. Pasar toda el agua del recipiente de 4
de 3 galones al de 4: galones al de 3:

SI (x + y) <= 4 ^ y > 0 => (x + y, 0) SI (x + y) <= 3 ^ x > 0 => (0, x + y)

3. Ordenar una pila de bloques.

14
OPERADORES PARA LOS BLOQUES:

1. Libre(x)  Sobre(x, Mesa)

2. Libre(x) Y Libre(y)  Sobre(x, y)

FUNCIÓN HEURÍSTICA:

Local: Añadir un punto por cada bloque sobre el lugar


correcto. Restar un punto por cada bloque sobre el lugar
incorrecto.

Global: Para cada bloque que esté sobre la estructura de


apoyo correcta (es decir, la estructura que tiene debajo es
exactamente la que tiene que ser), añadir un punto por cada
bloque en la pila. Para cada bloque que está sobre una
estructura incorrecta, restar un punto por cada bloque en la
pila.

15
RESUMEN
Como hemos visto la búsqueda proporciona una forma de resolver problemas para los
cuales no hay un método más directo, así como también se constituye en un marco de
trabajo dentro del cual cualquier técnica directa puede ser incorporada.

La búsqueda es una poderosa técnica para resolver la mayoría de los problemas, durante el
desarrollo de la IA ha sido usada ampliamente para resolver problemas complejos, donde se
necesita gran capacidad de razonamiento y sentido común. Con el pasar del tiempo se
desarrollaron algoritmos tales como los que mencionamos en los apartados anteriores, estos
son algoritmo de profundidad y anchura. Según los análisis que hemos realizado de ambas
metodologías el algoritmo en profundidad en muchos casos resulta más eficiente, es decir
se llega en menor y tiempo a la meta.

También se diseñaron técnicas heurísticas como el método de “Primero el Mejor”, esta


técnica resulta de gran importancia para resolver problemas que involucran distancias,
flujos, etc. Con este método se puede llegar fácilmente a la meta adecuada. Cabe señalar
que estos métodos muchas veces son utilizados para la instalación de redes, construcción de
caminos entre otras. Se pueden aplicar cualquiera de los algoritmos anteriores, pero en este
caso se toma en la distancia o peso entre los nodos. Es decir, para recorrer el grafo se toma
en cuenta cual es la alternativa que cuenta con el menor peso.

Por tanto debemos comprometernos en profundizar mas en estos temas y aplicarlos a los
problemas que nos depara nuestra vida como profesionales. No debemos pensar en solo
tomarlo como un conocimiento adicional, sino que por el contrario desarrollar mas las
habilidades y destrezas en la solución de problemas, a través de su aplicación.

16
BIBLIOGRAFÍA

 Andrew Tanenbaum. Redes de Computadoras

 Elaine Rich y Kevin Knight. Inteligencia Artificial. Editorial Mc GRAW HILL

 Norvin Russell. Inteligencia Artificial un enfoque moderno. Editorial PRENTICE


HALL

 Paginas Web.
o www.monografías.com
o www.lafacu.com
o www.dei.va.educpy\tar17\sexpreti\historia.htm

17
GLOSARIO

 Algoritmo: Una serie de pasos, actividades o tareas ordenadas para resolver un


problema cualquiera. Estos pasos deben de ser ordenadas y seguir una secuencia lógica.

 Búsqueda: Buscar el mejor camino por una serie de transiciones para llegar a una meta
u objetivo.

 Búsqueda en el espacio de estado: Es recorrer un grafo, tratando de encontrar un


camino entre un estado inicial y un estado final.

 Estrategia de búsqueda: Es determinar la forma en que recorre un grafo.

 Estrategia de control: Como se decide que regla hay que aplicar durante el proceso de
búsqueda de la solución de un problema.

 Heurística : Resolver un problema haciendo uso de la experiencia o la practica en un


área determinada.

18
EJERCICIOS DE AUTOCOMPROBACIÓN

Lea detenidamente y luego resuelva los siguientes problemas

1. Un granjero desea cruzar un río llevando consigo un lobo silvestre, una


oveja y una carga de col. Por desgracia su bote es tan pequeño que sólo
puede transportar una de sus pertenencias en cada viaje. Peor aún, si no
vigila al lobo, puede comerse a la oveja y si no cuida la col, puede comerse
la oveja; de modo que no puede dejar al lobo solo con la oveja, ni a la oveja
sola con la col. ¿ Cómo puede hacer para cruzar el río sin contratiempos?
.Representarlos gráficamente.

2. Aplique el algoritmo de búsqueda en Anchura y Profundidad al planteamiento


siguiente, diga cual es más eficiente. Meta: Solicitar Libros.

A: Entrada D. Bultos A
B. Supervisión E. Solicitar Lib A
C. Consulta
B
A

C D E
A A A

3. Se necesita llevar una carga urgentemente desde la ciudad de Managua a Rivas,


Seleccione la mejor ruta dada los siguientes planteamientos:

 Si se va por Carazo, aunque no hay mucho flujo de trafico, las cuestas dificultan
llevar la carga rápidamente.
 Si se va por Masaya hay un flujo intenso de trafico
 Si se va por Granada, el recorrido Granada - Rivas es demasiado problemático,
dado el mal estado de las calles.

Distancias:
 Managua – Carazo = 45  Masaya - Rivas = 110
 Managua - Masaya = 28  Masaya – Granada = 17
 Managua – Granada = 45  Granada - Rivas = 95
 Carazo – Rivas = 91

19
SOLUCIÓN A LOS EJERCICIOS DE
AUTOCOMPROBACIÓN

1.

Representación del problema del granjero, el lobo, la oveja y la col.

Las especificaciones dadas por una red semántica, son los suficientemente explícitas, como
para ser utilizadas en representaciones de problemas de IA.

Una representación basada en una red semántica, en determinados problemas, puede


generar árboles o grafos. El árbol es un tipo de red semántica que no contiene lazos, en
cambio un grafo es una estructura en la que pueden haber varios de ellos.

Desde el punto de vista de los procesos de búsqueda, los árboles son preferibles a los
grafos, ya que no hay que preocuparse por la posibilidad de quedar atrapados en algún lazo.

20
2. El algoritmo más eficiente es el algoritmo en Profundidad. Es decir el recorrido A, B,
C, E.
Normalmente el algoritmo en profundidad, es uno de los más eficientes. En este
ejercicio se observa que cualquiera de los dos algoritmos resuelven el problema de
manera optima.

3. La mejor ruta que se debe utilizar para llevar la carga es:


Managua Masaya Rivas

Aunque hay un flujo intenso de trafico, esta es una ruta muy segura, además de ser plana y
con carretera en perfectas condiciones. Sin embargo, seria bueno escoger una hora del día
donde no haya mucho trafico.

21

También podría gustarte