Inteligencia Artificial
Alumno:
García Acosta Alejandro de Jesús
Santos Taxilaga Salvador de Jesús
Grupo 804-A
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
ASIGNATURA
Inteligencia Artificial
PRACTICA NO.1
Reglas de Producción
OBJETIVO
Desarrollar reglas de producción para demostrar la relación entre los integrantes
de una familia.
FUNDAMENTO TEÓRICO
SWI PROLOG
Funcionamiento
Los programas Prolog hay que editarlos con un editor de texto. Se puede usar el
Notepad, pero no conviene, es bastante limitado. Hay uno que se llama emacs que
viene con el SWI. También se pueden usar editores de texto de uso general, p.ej. el
UltraEdit. Conviene guardar los archivos con extensión .pl. El SWI se usa para hacer
consultas a partir de un programa. Hay varias formas de "cargar" un programa en
Prolog, mencionamos dos [1]:
P á g i n a 2 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Edición de archivos
Editor emacs
Esto va a abrir una ventana con el editor. Si se quiere editar un archivo nuevo,
se puede usar directamente. Caso contrario, se cierra y listo. Cuando se haya
usado una vez, los siguientes archivos que se abran también se van a ver
con este editor. [1]
Editor UltraEdit
P á g i n a 3 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Comandos básicos
?- halt. Sale del entorno Prolog (el punto es muy importante ya que designa
el final de la línea).
?- edit ('archivo'). Invoca al editor predeterminado.
?- consult ('archivo'). ['archivo']. Consulta el fichero fuente.
?- help help ('ayuda). Solicita ayuda al entorno.
?- make. Consulta los ficheros que cambiaron desde la última consulta.
PROLOG
HECHOS
P á g i n a 4 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
La relación se conoce como el predicado y los objetos como los argumentos. [3]
REGLAS
Una regla consta de dos partes, una cabeza y un cuerpo. La cabeza y el cuerpo
están unidos mediante el símbolo ‘: −‘ [3]
Ejemplo: Es divisible por dos(X) :- par(X). (Se lee X es divisible por dos si X es par.).
Esta cláusula en Prolog es equivalente a la fórmula de primer orden (∀ X) par(X) ⇒
Es divisible por dos(X). Por tanto, si podemos probar que X es par entonces hemos
probado que X es divisible por dos. [3]
P á g i n a 5 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
DESARROLLO
Red semántica la cual será utilizada durante todo el proceso de esta práctica, esto
para ver si los resultados son correctos.
P á g i n a 6 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
P á g i n a 7 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
P á g i n a 8 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
P á g i n a 9 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
RESULTADOS ESPERADOS
Primero se realiza las pruebas con la función hermana para mostrar el resultado de
las hermana de x personas, en esta ocasión se basó en la red semántica que se
mostró al inicio del desarrollo.
P á g i n a 10 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Para continuar con las muestras de los resultados ahora se utiliza la función tío la
cual debe de devolver un valor en caso de que tenga un tío, para este caso se
ingresara Carmen, y los resultados son:
Por último se realizara la comprobación de la función que busca al abuelo, para ello
se ingresa el dato de Isabel, y se obtiene el siguiente resultado:
P á g i n a 11 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
CONCLUSIÓN
Como se observó durante el desarrollo de esta práctica, es de gran importancia
tener hechos ya que es la base para que se cumplan las condiciones que se
especifican.
La creación de la red semántica fue muy importante, porque mediante ella se logró
comparar los resultados que arrojaba el programa realizado en prolog. Y así ver
cuando se tenía un error y poder realizar modificaciones para obtener los resultados
requeridos.
Para el desarrollo de cada función es importante saber las sintaxis ya que en caso
de que este mal marcara error, de igual manera para realizar las condicionales se
tiene que cerrar los paréntesis correctamente ya que en caso de que falte las
condiciones no se cumplirán como se espera.
P á g i n a 12 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
P á g i n a 13 | 14
INSTITUTO TECNOLÓGICO
SUPERIOR DE SAN ANDRÉS
TUXTLA
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
REFERENCIAS ELECTRÓNICAS
P á g i n a 14 | 14