Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
1 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
Búsqueda a ciegas [8 - Puzzle]
En esta práctica de laboratorio se aborda el tema de búsqueda en la Inteligencia Artificial, con lo cual podremos partir de
un estado inicial y llegar hasta un estado objetivo en la solución de algún tipo de problema relacionado con un
ordenamiento.
Conocer e identificar la búsqueda a ciegas en la IA.
Implementar búsqueda a ciegas.
Implementar ordenamientos utilizado un ordenamiento basado en objetivos sin información adicional.
Guía de laboratorio N° 4.
Computadora con Netbeans 7 o superior.
Dispositivo de almacenamiento.
Las técnicas de búsqueda son una serie de esquemas de representación del conocimiento, que, mediante diversos
algoritmos, permite resolver ciertos problemas desde el punto de vista de la inteligencia artificial.
Elementos de la búsqueda
Conjunto de estados: todas las posibles configuraciones del dominio.
Estado inicial: estado (configuración) desde el cual partimos.
Estados finales (estados de aceptación): son las soluciones del problema.
Operadores: se aplican para pasar de un estado a otro.
Búsqueda a Ciegas
Solo utiliza información acerca de si un estado es o no es objetivo para guiar el proceso de búsqueda.
¿Qué hago en la búsqueda a ciegas?
Si pensamos en realizar una búsqueda y auxiliarse de la teoría de árboles binarios, entonces se puede decir que en la
búsqueda a ciegas se puede realizar lo siguiente:
Facultad: Ingeniería
Escuela: Ingeniería en Computación
Asignatura: Sistemas Expertos e Inteligencia Artificial
Contenido
Objetivos Específicos
Material y Equipo
Introducción Teórica
2 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
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 propios hijos.
Tipos de búsqueda a ciegas
En esta materia utilizaremos la búsqueda en amplitud y en profundidad. La primera se realizar recorriendo los niveles del
árbol y la segunda se realiza recorriendo las ramas del árbol.
1. Crear un nuevo proyecto con el nombre Puzzle. Por defecto, se crea la clase principal (Puzzle.java).
2. Agregar un JFrame con el nombre FrmPuzzle.
3. Agregar 9 botones:
4. Ahora vamos a personalizar el formulario. Hacemos el siguiente proceso:
5. Hacemos clic derecho sobre el contenedor (en este caso es el JFrame) y elegimos la respectiva configuración
referente a las posiciones de los objetos (botones).
Procedimiento
3 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
6. Cuando se selecciona esa opción tendremos una configuración así:
Como se puede observar, ahora tenemos una nueva opción para el JFrame en donde se pueden modificar algunas
características o propiedades.
7. Hacemos clic derecho sobre GridLayout Propiedades y obtenemos el siguiente cuadro:
8. En este cuadro vamos definir la cantidad de filas y columnas que deseamos para nuestro Layout. Para este ejemplo,
la configuración quedará así (3 filas x 3 columas):
4 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
9. Hacemos clic en Close y tendremos la siguiente configuración:
TIPS:
Generalmente cuando tenemos más de una clase o más de un elemento que se quiere ejecutar, lo que hacemos es hacer
clic derecho sobre el elemento a ejecutar. Sin embargo, podemos hacer una pequeña modificación que consiste en remover
el método (de cualquier elemento, en este caso de nuestro JFrame) para luego ejecutar el proyecto completo:
Luego, este método se coloca en nuestra clase principal. La Clase principal debe quedar así:
5 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
Ahora, al ejecutar la aplicación (proyecto completo) se obtiene el siguiente resultado:
Aparece, por defecto, de este tamaño, pero perfectamente lo podemos agrandar desde el constructor del formulario, así:
10. Ahora vamos a cambiar los nombres de cada botón (Btn1,…,Btn9). Para agilizar este proceso lo podemos realizar
haciendo clic derecho sobre el elemento (en este caso el botón) y ahí asignar un nombre.
6 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
11. Una vez cambiados los nombres de los botones nos dirigimos al constructor de la clase FrmPuzzle y agregamos el
siguiente código:
12. Ejecutamos y observemos que ya está desactivado el botón 9.
13. Ahora sí, vamos a programar los movimientos de cada botón. Por ejemplo, en el caso del botón 8, solo tiene un
posible movimiento, a la derecha, el caso del botón 6, solo tiene un posible movimiento, hacia abajo. Y así
sucesivamente vamos a programar cada posible movimiento.
A continuación, se les presenta el código respectivo de cada botón:
7 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
8 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
9 Sistemas Expertos e Inteligencia Artificial / Guía V / Ciclo 01 – 2019 / Ing. Herson Serrano
1. Implementar un método para desordenar automáticamente el puzzle
2. Implementar un método para ordenar el puzzle a su posición normal (ordenado del 1 al 8).
Inteligencia Artificial con Aplicaciones a la Ingeniería, Pedro Ponce Cruz.
Investigación Complementaria
Bibliografía