SlideShare una empresa de Scribd logo
Sistema Experto: Venta de Muebles
Erick Celis Izaga
Alex Culquichicon Paucar
Universidad Nacional de Trujillo
Sede Valle del Jequetepeque
Escuela de Informática
Profesor : Arturo Díaz Pulido
RESUMEN
Vamos a implementar un sistema
expertocuyopropósito será ayudarnos en la
elección de un mueble a la hora de su
compra, primero haremos una breve
descripciónde lossistemas expertos y luego
veremos su desarrollo.
Palabras Claves
Prolog, sistema experto, tienda de , etc
1. INTRODUCCION
Los sistemas expertos se pueden considerar
como el primer producto verdaderamente
operacional de la inteligencia artificial.
Son programas de ordenador diseñados
para actuar como unespecialistahumanoen
un dominio particular o área de
conocimiento. En este sentido, pueden
considerarse como intermediarios entre el
experto humano, que transmite su
conocimientoal sistema,y del usuarioque lo
utiliza para resolver un problema con la
eficacia del especialista.
El sistema experto utilizará para ello el
conocimiento que tenga almacenado y
algunos métodos de inferencia. Para que
un sistema experto sea herramienta
efectiva, los usuarios deben interactuar de
una forma fácil, reuniendo dos capacidades
para poder cumplirlo
Explicar sus razonamientos o base del
conocimiento:
los sistemas expertos se deben realizar
siguiendo ciertas reglas o pasos
comprensibles de manera que se pueda
generarla explicaciónparacada unade estas
reglas, que a la vez se basan en hechos.
Adquisición de nuevos conocimientos o
integrador del sistema:
son mecanismos de razonamiento que
sirven para modificar los conocimientos
anteriores. Sobre labase de lo anterior se
puede decir que los sistemas expertos son
el producto de investigaciones en el campo
de la inteligencia artificial ya que ésta no
intenta sustituir a los expertos humanos,
sino que se desea ayudarlos a realizar con
más rapidez y eficacia todas las tareas que
realiza.
1.1. Usos de un Sistema Experto
a) Un sistema experto es muy eficaz
cuando tiene que analizar una gran
cantidad de información,
interpretándola y proporcionando
una recomendación a partir de la
misma. Un ejemplo es el análisis
financiero, donde se estudian las
oportunidades de inversión,
dependiendo de los datos
financieros de un cliente y de sus
propósitos.
b) Para detectar y reparar fallos en
equipos electrónicos, se utilizan los
sistemas expertos de diagnóstico y
depuración, que formulan listas de
preguntas con las que obtienen
los datos necesarios para llegar a
una conclusión. Entonces
recomiendanlas accionesadecuadas
para corregir los problemas
descubiertos. Este tipo de sistemas
se utilizan también en medicina
(ej. MYCIN y PUFF), y para
localizar problemas en sistemas
informáticos grandes y complejos.
c) Los sistemas expertos son buenos
para predecir resultados futuros a
partir del conocimiento que
tienen. Los sistemasmeteorológicos
y de inversión en bolsa son
ejemplos de utilización en este
sentido. El sistema PROSPECTOR es
de este tipo.
1.2. Arquitectura y funcionamiento
de un sistema experto.
La mayoría de los sistemas
expertos tienen unos componentesbásicos:
base de conocimientos,motorde inferencia,
base de datos e interfaz con el usuario.
Muchos tienen, además, un módulo de
explicación y un módulo de adquisición
del conocimiento.
1.2.1. Base de conocimiento
La base de conocimientos contiene
el conocimiento especializado extraído del
experto en el dominio. El método más
común para representar el conocimiento
es mediante reglas de producción. El
dominio de conocimiento representándose
divide, pues, en pequeñas fracciones de
conocimiento o reglas. Una característica
muy importante es que la base de
conocimientos es independiente del
mecanismo de inferencia que se utiliza
para resolver los problemas. De esta forma,
cuando los conocimientos almacenados se
han quedado obsoletos, o cuando se
dispone de nuevos conocimientos, es
relativamente fácil añadir reglas nuevas,
eliminarlasantiguas o corregir errores enlas
existentes.
1.2.2. Base de datos
La base de datos o base
de hechos es una parte de la memoria
del ordenador que se utiliza para
almacenar los datos recibidos inicialmente
para la resolución de un problema,
contiene conocimiento sobre el caso
concreto en que se trabaja. También se
registrarán en ella las conclusiones
intermedias y los datos generados en el
proceso de inferencia.
1.2.3. Motor de inferencia
El motor de inferencias es un
programa que controla el proceso de
razonamiento que seguirá el sistema
experto. Utilizando los datos que se le
suministran, recorre la base de
conocimientosparaalcanzarunasolución. La
estrategia de control puede ser de
encadenamiento progresivo o de
encadenamiento regresivo. En el primer
caso se comienza con los hechos
disponibles en la base de datos, y se buscan
reglas que satisfagan esos datos.
Normalmente,el sistemasigue lossiguientes
pasos:
1. Evaluar lascondiciones de todas las reglas
respectoa labase de datos, identificando el
conjunto de reglas que se pueden aplicar
2. Si no se puede aplicar ninguna regla, se
terminasinéxito;encaso contrario se elige
cualquiera de las reglas aplicables y se
ejecuta su parte acción (esto último genera
nuevos hechos que se añaden a la base de
datos)
3. Si se llega al objetivo, se ha resuelto
el problema; en caso contrario,se vuelve al
paso 1
1.2.4. Interfaz con el usuario.
El interfaz de usuario permite que
el usuario pueda describir el problema al
sistema experto. Interpreta sus preguntas,
los comandos y la información ofrecida. A la
inversa, formula la información generada
por el sistema incluyendo respuestas a las
preguntas, explicaciones y justificaciones.
1.2.5. Módulo de Explicación
La mayoría de los sistemas
expertos contienen un módulo de
explicación, diseñado para aclarar al
usuario la línea de razonamiento seguida en
el proceso de inferencia. Si el usuario
pregunta al sistema cómo ha alcanzado
una conclusión, éste le presentará la
secuencia completa de reglas usada
1.2.6. Módulo de adquisición
El módulo de adquisición del
conocimientopermite que se puedanañadir,
eliminar o modificar elementos de
conocimiento (en la mayoría de los casos
reglas) en el sistema experto.
1.3. Ventajas e inconvenientes de un
Sistema Experto.
1.3.1. Ventajas
a) Un sistema experto mejora la
productividadal resolvery decidirlos
problemas más rápidamente. Esto
permite ahorrar tiempo y dinero. A
veces sin esa rapidez lassoluciones
obtenidas serían inútiles.
b) Los valiosos conocimientos de un
especialista se guardan y se
difunden, de forma que, no se
pierden aunque desaparezca el
especialista
c) Con un sistema experto se
obtienen soluciones más fiables
gracias al tratamientoautomático de
los datos, y más contrastadas,
debido a que se suele tener
informatizado el conocimiento de
varios expertos.
1.3.2. Desventajas
a) El conocimiento humano es
complejo de extraer y, a veces, es
problemático representarlo. Si un
problemasobrepasa la competencia
de un sistema experto, sus
prestaciones se degradan de forma
notable. Además, las estrategias de
razonamiento de los motores de
inferencia suelen estar
programadas procedimentalmente
y se adaptan mal a las
circunstancias. Están limitados para
tratar problemas con información
incompleta.
b) Un experto humano no estudia
progresivamente unahipótesis, sino
que decide de inmediato cuando
se enfrenta a una situación
análoga a otra ocurrida en el
pasado. Los sistemas expertos no
utilizan este razonamiento por
analogía.
c) Los costes y duración del
desarrollo de un sistema experto
son bastante considerables
(aunque se suelen amortizar
rápidamente) y su campo de
aplicación actual es restringido y
específico.
1.4. Prolog
1.4.1. Introducción a Prolog
Prolog es un lenguaje de
programación lógica cuya primera versión
fue desarrolladaaprincipios de la década de
1970 por Colmerauer en la universidad de
Marsella. Contrariamente a otros lenguajes
de programación basados es estructuras de
control y definición de funciones para
calcular resultados, Prolog está orientado a
la especificación de relaciones para
responder consultas. En ese sentido Prolog
es similar a un sistema de base de datos,
aunque en el contexto de la inteligencia
artificial se prefiere hablar de bases de
conocimiento, enfatizando la complejidad
estructural de losdatos y de las deducciones
que se pueden obtener de ellos.
1.4.2. Características de Prolog
a) Basado en lógica y programación
declarativa.
b) No se especificacómodebe hacerse,
sino qué debe lograrse.
c) Una característica importante en
ProLog y que lo diferencia de otros
lenguajes de programación, es que
una variable sólo puede tener un
valormientrasse cumple el objetivo.
d) El programador se concentra más en
el conocimiento que en los
algoritmos.
-¿Qué es conocido? (hechos, reglas)
-¿Qué preguntar? (Cómo resolverlo)
e) En ProLog, se llega a una solución
infiriéndola desde algo ya conocido.
2. VENTA DE MUEBLES CON PROLOG
2.1. Planteamiento y Diseño
Queremos realizar un sistema de
ventas de muebles que nos ayude a elegir
cual esel que buscamos. Para realizar este
diseño hemos partido del diagrama de un
árbol, en el que cada nodo tiene una
pregunta asociada que se imprimirá por
pantalla y que el cliente tendrá que
responder, según la respuesta que
responda el programa se encaminará a la
rama del nodo correspondiente a la
respuesta elegida por el cliente. Asi se
realizaran las preguntas que están en eso
nodo de manera que si todas las respuestas
son segúnlodefinidoel resultadoestarábien
y se mostrara el resultado en caso contrario
seguiráconel siguiente bloque de preguntas
de la otra respuesta, en caso no encontrara
todas las respuestas correspondientes, nos
mostrara que no hay suficiente información
el árbol sea n-ario, es decir a que el
árbol no se limite a tener como máximo dos
nodos descendientes, así pues, cada nodo
de nuestro árbol podrá tener dos o más
respuestas asociadas a él.
A continuaciónle mostramos una imagen de
la raíz del árbol, donde te pregunta para que
si el mueble es para su sala o para la
habitación.
Figura 1
Según se elija la opción seguirán las
preguntas en modo árbol y ahora viene la
que nos pregunta sobre el precio, si
queremos un mueble cómodo o uno de
regular precio.
Figura 2
Y es así que se al llegar ya a este nivel las
preguntasson cada vez más independientes
y refiriéndose a un solo objeto como son el
tipo de madera, la duración, etc.
2.2. Implementación
Nuestrocódigofue implementado en prolog
en un solo archivo en donde se combina las
reglascon labase de conocimientomediante
un conjunto de afirmaciones.
Veamos un poco de código:
esPregunta('vitrina_3_puertas'):-
suPreguntaEs('sala',Resp),Resp='si',
suPreguntaEs('regular',Resp1),Resp1='si',
suPreguntaEs('cedro',Resp2),Resp2='si',
suPreguntaEs('45
anhos',Resp3),Resp3='si',!.
esPregunta('mueble_madera'):-
suPreguntaEs('sala',Resp),Resp='si',
suPreguntaEs('regular',Resp1),Resp1='si',
suPreguntaEs('cedro',Resp2),Resp2='si',
suPreguntaEs('50
anhos',Resp3),Resp3='si',!.
..
..
El mueble
es para
su?
Sala Dormitorio
Precio del
Mueble
Regular Cómodo
También utilizamos código para mostrar
imágenes usando una interfaz.
Código Interfaz
ventanaPreguntar(Pregunta,Resp) :-
new(D, dialog('Preguntas')),
send(D, append,
label(pregunta,
Pregunta,font('times','roman',16))),
send(D, append,
button(si, message(D, return,'si'))),
send(D, append,
button(no, message(D, return,
'no'))),
send(D, default_button, si),
get(D, confirm, Rval),
free(D),
Resp = Rval.
Código Imágenes
//cabeceras
:-pce_image_directory('./imagenes').
resource(vitrina_3_puertas,image,image('Vit
rina_3_Puertas.jpg')).
resource(mueble_madera,image,image('Mue
ble_Madera.jpg')).
…..
…..
// cuerpo del codigo
….
….
new(W,
window('cargador_imagen',size(300,400))),
send(D,append,W),
new(X,figure),
new(Bm,bitmap(resource(Mensaje),@on)),
send(Bm,name,1),
send(X,display,Bm),
send(X,status,1),
send(W,display,X),
….
….
3. EJECUCION
Esta es una ejecución donde afirmamos
que necesitamos un mueble para sala,
de precio regular, que sea de cedro y
tenga una duración de 45 años.
Para empezar ponemos «inicio.»
Figura 3
Figura 4
Figura 5
Figura 6
Luego de haber respondido las
diferentes interrogantes nos muestra
una respuesta, en donde nos da sus
características del mueble así como una
foto referencial del producto.
Figura 7
4. REFERENCIAS
[1]
http://es.wikipedia.org/wiki/Sistema_exper
to
[2] http://es.wikipedia.org/wiki/Prolog
[3]
www.dccia.ua.es/logica/prolog/docs/ProgG
UI.pdf
[4] es.scribd.com/doc/.../002-Manual-SWI-
Prolog-Interfaces-Graficas
[5] Apuntes de la Asignatura

Más contenido relacionado

La actualidad más candente

Archivo Secuencial
Archivo SecuencialArchivo Secuencial
Archivo Secuencial
luismy_martinez
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
J M
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
Luis Igoodbad
 
Características de sumadores, codificadores, decodificadores, multiplexores y...
Características de sumadores, codificadores, decodificadores, multiplexores y...Características de sumadores, codificadores, decodificadores, multiplexores y...
Características de sumadores, codificadores, decodificadores, multiplexores y...
Miguel Brunings
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
Esteban Andres Diaz Mina
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Clase 6 - Normalización
Clase 6  - NormalizaciónClase 6  - Normalización
Clase 6 - Normalización
Eddie Malca
 
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
JAVIER SOLIS NOYOLA
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
Alvaro Enrique Ruano
 
Ascenso a la Colina
Ascenso a la ColinaAscenso a la Colina
Ascenso a la ColinaTutor4uDev
 
circuitos de temperatura con LM741 y termistor
circuitos de temperatura con LM741 y termistorcircuitos de temperatura con LM741 y termistor
circuitos de temperatura con LM741 y termistor
Elvis Tubon Villa
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
Juan Astudillo
 
Arboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en JavaArboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en Java
LupitaOMG Garmendia
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
jmachado614
 
Apuntes automatas
Apuntes automatasApuntes automatas
Apuntes automatas
asdfa11789
 

La actualidad más candente (20)

Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Archivo Secuencial
Archivo SecuencialArchivo Secuencial
Archivo Secuencial
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Características de sumadores, codificadores, decodificadores, multiplexores y...
Características de sumadores, codificadores, decodificadores, multiplexores y...Características de sumadores, codificadores, decodificadores, multiplexores y...
Características de sumadores, codificadores, decodificadores, multiplexores y...
 
Grafos resueltos
Grafos  resueltosGrafos  resueltos
Grafos resueltos
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
COLAS
COLASCOLAS
COLAS
 
Clase 6 - Normalización
Clase 6  - NormalizaciónClase 6  - Normalización
Clase 6 - Normalización
 
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
Antecedentes al álgebra lineal y matrices. Presentación diseñada por el MTRO....
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Ascenso a la Colina
Ascenso a la ColinaAscenso a la Colina
Ascenso a la Colina
 
circuitos de temperatura con LM741 y termistor
circuitos de temperatura con LM741 y termistorcircuitos de temperatura con LM741 y termistor
circuitos de temperatura con LM741 y termistor
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Aritmetica Modular
Aritmetica ModularAritmetica Modular
Aritmetica Modular
 
Arboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en JavaArboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en Java
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Apuntes automatas
Apuntes automatasApuntes automatas
Apuntes automatas
 
Tarjetas crc
Tarjetas crcTarjetas crc
Tarjetas crc
 

Similar a Sistema de Ventas de Muebles en Prolog

Sistema Experto Detector de Enfermedades
Sistema Experto Detector de EnfermedadesSistema Experto Detector de Enfermedades
Sistema Experto Detector de Enfermedades
RqYChino
 
Enfermedades respiratorias
Enfermedades respiratoriasEnfermedades respiratorias
Enfermedades respiratorias
William Castañeda Vilchez
 
Lady informe ia
Lady informe iaLady informe ia
Lady informe ia
ladyespino
 
Lady informe ia
Lady informe iaLady informe ia
Lady informe ia
ladyespino
 
Lady informe ia
Lady informe iaLady informe ia
Lady informe ialadyespino
 
Sistema Experto : Juego "3 en Raya" bajo plataforma Linux (Ubuntu)
Sistema Experto : Juego "3 en Raya" bajo plataforma Linux (Ubuntu)Sistema Experto : Juego "3 en Raya" bajo plataforma Linux (Ubuntu)
Sistema Experto : Juego "3 en Raya" bajo plataforma Linux (Ubuntu)
jclavotafur
 
Sistema_experto de_licuados_nutritivos
Sistema_experto de_licuados_nutritivosSistema_experto de_licuados_nutritivos
Sistema_experto de_licuados_nutritivos
Nils Gálvez Alcalde
 
Informe inteligencia artificial
Informe inteligencia artificialInforme inteligencia artificial
Informe inteligencia artificial
Roan Malca Leon
 
Trabajo de sistemas expertos
Trabajo de sistemas expertosTrabajo de sistemas expertos
Trabajo de sistemas expertos
FabYola ArAnibar Valdivia
 
U4-T6: DIAGNOSTICO Y DECISIÓN 2-EAI
U4-T6: DIAGNOSTICO Y DECISIÓN 2-EAIU4-T6: DIAGNOSTICO Y DECISIÓN 2-EAI
U4-T6: DIAGNOSTICO Y DECISIÓN 2-EAI
PLC AREA DE GRADO
 
Sistema experto
Sistema expertoSistema experto
Sistema experto
roger pirela velasquez
 
Sistemas
SistemasSistemas
Sistemas
JulianaRojasH
 
Sistemas expertosdiapos2doparcial
Sistemas expertosdiapos2doparcialSistemas expertosdiapos2doparcial
Sistemas expertosdiapos2doparcial
Alexander Velazquez
 
I/O de SE
I/O de SEI/O de SE
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertos
Ignacio Castillo Espitia
 
Opc unidad iv- tema 6
Opc unidad iv- tema 6Opc unidad iv- tema 6
Opc unidad iv- tema 6
UDO Monagas
 
Introduccion sistema experto
Introduccion sistema expertoIntroduccion sistema experto
Introduccion sistema experto
Blanca Antonia Martinez
 
Sistemas expertos.
Sistemas expertos.Sistemas expertos.
Sistemas expertos.
GerimarAndrade
 
Sistema experto para determinar la personalidad de un individuo
Sistema experto para determinar la personalidad de un individuoSistema experto para determinar la personalidad de un individuo
Sistema experto para determinar la personalidad de un individuo
Bndy Quilcate
 

Similar a Sistema de Ventas de Muebles en Prolog (20)

Sistema Experto Detector de Enfermedades
Sistema Experto Detector de EnfermedadesSistema Experto Detector de Enfermedades
Sistema Experto Detector de Enfermedades
 
Enfermedades respiratorias
Enfermedades respiratoriasEnfermedades respiratorias
Enfermedades respiratorias
 
Lady informe ia
Lady informe iaLady informe ia
Lady informe ia
 
Lady informe ia
Lady informe iaLady informe ia
Lady informe ia
 
Lady informe ia
Lady informe iaLady informe ia
Lady informe ia
 
Sistema Experto : Juego "3 en Raya" bajo plataforma Linux (Ubuntu)
Sistema Experto : Juego "3 en Raya" bajo plataforma Linux (Ubuntu)Sistema Experto : Juego "3 en Raya" bajo plataforma Linux (Ubuntu)
Sistema Experto : Juego "3 en Raya" bajo plataforma Linux (Ubuntu)
 
Sistema_experto de_licuados_nutritivos
Sistema_experto de_licuados_nutritivosSistema_experto de_licuados_nutritivos
Sistema_experto de_licuados_nutritivos
 
Informe inteligencia artificial
Informe inteligencia artificialInforme inteligencia artificial
Informe inteligencia artificial
 
Trabajo de sistemas expertos
Trabajo de sistemas expertosTrabajo de sistemas expertos
Trabajo de sistemas expertos
 
U4-T6: DIAGNOSTICO Y DECISIÓN 2-EAI
U4-T6: DIAGNOSTICO Y DECISIÓN 2-EAIU4-T6: DIAGNOSTICO Y DECISIÓN 2-EAI
U4-T6: DIAGNOSTICO Y DECISIÓN 2-EAI
 
Sistema experto
Sistema expertoSistema experto
Sistema experto
 
Sistemas
SistemasSistemas
Sistemas
 
Sistemas expertosdiapos2doparcial
Sistemas expertosdiapos2doparcialSistemas expertosdiapos2doparcial
Sistemas expertosdiapos2doparcial
 
I/O de SE
I/O de SEI/O de SE
I/O de SE
 
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertos
 
Opc unidad iv- tema 6
Opc unidad iv- tema 6Opc unidad iv- tema 6
Opc unidad iv- tema 6
 
Introduccion sistema experto
Introduccion sistema expertoIntroduccion sistema experto
Introduccion sistema experto
 
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertos
 
Sistemas expertos.
Sistemas expertos.Sistemas expertos.
Sistemas expertos.
 
Sistema experto para determinar la personalidad de un individuo
Sistema experto para determinar la personalidad de un individuoSistema experto para determinar la personalidad de un individuo
Sistema experto para determinar la personalidad de un individuo
 

Último

Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
Federico Toledo
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
lasocharfuelan123
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
oscartorres960914
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
RobertSotilLujn
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
cuentauniversidad34
 

Último (10)

Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 

Sistema de Ventas de Muebles en Prolog

  • 1. Sistema Experto: Venta de Muebles Erick Celis Izaga Alex Culquichicon Paucar Universidad Nacional de Trujillo Sede Valle del Jequetepeque Escuela de Informática Profesor : Arturo Díaz Pulido RESUMEN Vamos a implementar un sistema expertocuyopropósito será ayudarnos en la elección de un mueble a la hora de su compra, primero haremos una breve descripciónde lossistemas expertos y luego veremos su desarrollo. Palabras Claves Prolog, sistema experto, tienda de , etc 1. INTRODUCCION Los sistemas expertos se pueden considerar como el primer producto verdaderamente operacional de la inteligencia artificial. Son programas de ordenador diseñados para actuar como unespecialistahumanoen un dominio particular o área de conocimiento. En este sentido, pueden considerarse como intermediarios entre el experto humano, que transmite su conocimientoal sistema,y del usuarioque lo utiliza para resolver un problema con la eficacia del especialista. El sistema experto utilizará para ello el conocimiento que tenga almacenado y algunos métodos de inferencia. Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fácil, reuniendo dos capacidades para poder cumplirlo Explicar sus razonamientos o base del conocimiento: los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generarla explicaciónparacada unade estas reglas, que a la vez se basan en hechos. Adquisición de nuevos conocimientos o integrador del sistema: son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores. Sobre labase de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que ésta no intenta sustituir a los expertos humanos, sino que se desea ayudarlos a realizar con más rapidez y eficacia todas las tareas que realiza. 1.1. Usos de un Sistema Experto a) Un sistema experto es muy eficaz cuando tiene que analizar una gran cantidad de información, interpretándola y proporcionando una recomendación a partir de la
  • 2. misma. Un ejemplo es el análisis financiero, donde se estudian las oportunidades de inversión, dependiendo de los datos financieros de un cliente y de sus propósitos. b) Para detectar y reparar fallos en equipos electrónicos, se utilizan los sistemas expertos de diagnóstico y depuración, que formulan listas de preguntas con las que obtienen los datos necesarios para llegar a una conclusión. Entonces recomiendanlas accionesadecuadas para corregir los problemas descubiertos. Este tipo de sistemas se utilizan también en medicina (ej. MYCIN y PUFF), y para localizar problemas en sistemas informáticos grandes y complejos. c) Los sistemas expertos son buenos para predecir resultados futuros a partir del conocimiento que tienen. Los sistemasmeteorológicos y de inversión en bolsa son ejemplos de utilización en este sentido. El sistema PROSPECTOR es de este tipo. 1.2. Arquitectura y funcionamiento de un sistema experto. La mayoría de los sistemas expertos tienen unos componentesbásicos: base de conocimientos,motorde inferencia, base de datos e interfaz con el usuario. Muchos tienen, además, un módulo de explicación y un módulo de adquisición del conocimiento. 1.2.1. Base de conocimiento La base de conocimientos contiene el conocimiento especializado extraído del experto en el dominio. El método más común para representar el conocimiento es mediante reglas de producción. El dominio de conocimiento representándose divide, pues, en pequeñas fracciones de conocimiento o reglas. Una característica muy importante es que la base de conocimientos es independiente del mecanismo de inferencia que se utiliza para resolver los problemas. De esta forma, cuando los conocimientos almacenados se han quedado obsoletos, o cuando se dispone de nuevos conocimientos, es relativamente fácil añadir reglas nuevas, eliminarlasantiguas o corregir errores enlas existentes. 1.2.2. Base de datos La base de datos o base de hechos es una parte de la memoria del ordenador que se utiliza para almacenar los datos recibidos inicialmente para la resolución de un problema, contiene conocimiento sobre el caso concreto en que se trabaja. También se registrarán en ella las conclusiones intermedias y los datos generados en el proceso de inferencia. 1.2.3. Motor de inferencia El motor de inferencias es un programa que controla el proceso de razonamiento que seguirá el sistema experto. Utilizando los datos que se le suministran, recorre la base de conocimientosparaalcanzarunasolución. La estrategia de control puede ser de
  • 3. encadenamiento progresivo o de encadenamiento regresivo. En el primer caso se comienza con los hechos disponibles en la base de datos, y se buscan reglas que satisfagan esos datos. Normalmente,el sistemasigue lossiguientes pasos: 1. Evaluar lascondiciones de todas las reglas respectoa labase de datos, identificando el conjunto de reglas que se pueden aplicar 2. Si no se puede aplicar ninguna regla, se terminasinéxito;encaso contrario se elige cualquiera de las reglas aplicables y se ejecuta su parte acción (esto último genera nuevos hechos que se añaden a la base de datos) 3. Si se llega al objetivo, se ha resuelto el problema; en caso contrario,se vuelve al paso 1 1.2.4. Interfaz con el usuario. El interfaz de usuario permite que el usuario pueda describir el problema al sistema experto. Interpreta sus preguntas, los comandos y la información ofrecida. A la inversa, formula la información generada por el sistema incluyendo respuestas a las preguntas, explicaciones y justificaciones. 1.2.5. Módulo de Explicación La mayoría de los sistemas expertos contienen un módulo de explicación, diseñado para aclarar al usuario la línea de razonamiento seguida en el proceso de inferencia. Si el usuario pregunta al sistema cómo ha alcanzado una conclusión, éste le presentará la secuencia completa de reglas usada 1.2.6. Módulo de adquisición El módulo de adquisición del conocimientopermite que se puedanañadir, eliminar o modificar elementos de conocimiento (en la mayoría de los casos reglas) en el sistema experto. 1.3. Ventajas e inconvenientes de un Sistema Experto. 1.3.1. Ventajas a) Un sistema experto mejora la productividadal resolvery decidirlos problemas más rápidamente. Esto permite ahorrar tiempo y dinero. A veces sin esa rapidez lassoluciones obtenidas serían inútiles. b) Los valiosos conocimientos de un especialista se guardan y se difunden, de forma que, no se pierden aunque desaparezca el especialista c) Con un sistema experto se obtienen soluciones más fiables gracias al tratamientoautomático de los datos, y más contrastadas, debido a que se suele tener informatizado el conocimiento de varios expertos. 1.3.2. Desventajas a) El conocimiento humano es complejo de extraer y, a veces, es problemático representarlo. Si un problemasobrepasa la competencia
  • 4. de un sistema experto, sus prestaciones se degradan de forma notable. Además, las estrategias de razonamiento de los motores de inferencia suelen estar programadas procedimentalmente y se adaptan mal a las circunstancias. Están limitados para tratar problemas con información incompleta. b) Un experto humano no estudia progresivamente unahipótesis, sino que decide de inmediato cuando se enfrenta a una situación análoga a otra ocurrida en el pasado. Los sistemas expertos no utilizan este razonamiento por analogía. c) Los costes y duración del desarrollo de un sistema experto son bastante considerables (aunque se suelen amortizar rápidamente) y su campo de aplicación actual es restringido y específico. 1.4. Prolog 1.4.1. Introducción a Prolog Prolog es un lenguaje de programación lógica cuya primera versión fue desarrolladaaprincipios de la década de 1970 por Colmerauer en la universidad de Marsella. Contrariamente a otros lenguajes de programación basados es estructuras de control y definición de funciones para calcular resultados, Prolog está orientado a la especificación de relaciones para responder consultas. En ese sentido Prolog es similar a un sistema de base de datos, aunque en el contexto de la inteligencia artificial se prefiere hablar de bases de conocimiento, enfatizando la complejidad estructural de losdatos y de las deducciones que se pueden obtener de ellos. 1.4.2. Características de Prolog a) Basado en lógica y programación declarativa. b) No se especificacómodebe hacerse, sino qué debe lograrse. c) Una característica importante en ProLog y que lo diferencia de otros lenguajes de programación, es que una variable sólo puede tener un valormientrasse cumple el objetivo. d) El programador se concentra más en el conocimiento que en los algoritmos. -¿Qué es conocido? (hechos, reglas) -¿Qué preguntar? (Cómo resolverlo) e) En ProLog, se llega a una solución infiriéndola desde algo ya conocido. 2. VENTA DE MUEBLES CON PROLOG 2.1. Planteamiento y Diseño Queremos realizar un sistema de ventas de muebles que nos ayude a elegir cual esel que buscamos. Para realizar este diseño hemos partido del diagrama de un árbol, en el que cada nodo tiene una pregunta asociada que se imprimirá por pantalla y que el cliente tendrá que responder, según la respuesta que responda el programa se encaminará a la rama del nodo correspondiente a la respuesta elegida por el cliente. Asi se realizaran las preguntas que están en eso nodo de manera que si todas las respuestas
  • 5. son segúnlodefinidoel resultadoestarábien y se mostrara el resultado en caso contrario seguiráconel siguiente bloque de preguntas de la otra respuesta, en caso no encontrara todas las respuestas correspondientes, nos mostrara que no hay suficiente información el árbol sea n-ario, es decir a que el árbol no se limite a tener como máximo dos nodos descendientes, así pues, cada nodo de nuestro árbol podrá tener dos o más respuestas asociadas a él. A continuaciónle mostramos una imagen de la raíz del árbol, donde te pregunta para que si el mueble es para su sala o para la habitación. Figura 1 Según se elija la opción seguirán las preguntas en modo árbol y ahora viene la que nos pregunta sobre el precio, si queremos un mueble cómodo o uno de regular precio. Figura 2 Y es así que se al llegar ya a este nivel las preguntasson cada vez más independientes y refiriéndose a un solo objeto como son el tipo de madera, la duración, etc. 2.2. Implementación Nuestrocódigofue implementado en prolog en un solo archivo en donde se combina las reglascon labase de conocimientomediante un conjunto de afirmaciones. Veamos un poco de código: esPregunta('vitrina_3_puertas'):- suPreguntaEs('sala',Resp),Resp='si', suPreguntaEs('regular',Resp1),Resp1='si', suPreguntaEs('cedro',Resp2),Resp2='si', suPreguntaEs('45 anhos',Resp3),Resp3='si',!. esPregunta('mueble_madera'):- suPreguntaEs('sala',Resp),Resp='si', suPreguntaEs('regular',Resp1),Resp1='si', suPreguntaEs('cedro',Resp2),Resp2='si', suPreguntaEs('50 anhos',Resp3),Resp3='si',!. .. .. El mueble es para su? Sala Dormitorio Precio del Mueble Regular Cómodo
  • 6. También utilizamos código para mostrar imágenes usando una interfaz. Código Interfaz ventanaPreguntar(Pregunta,Resp) :- new(D, dialog('Preguntas')), send(D, append, label(pregunta, Pregunta,font('times','roman',16))), send(D, append, button(si, message(D, return,'si'))), send(D, append, button(no, message(D, return, 'no'))), send(D, default_button, si), get(D, confirm, Rval), free(D), Resp = Rval. Código Imágenes //cabeceras :-pce_image_directory('./imagenes'). resource(vitrina_3_puertas,image,image('Vit rina_3_Puertas.jpg')). resource(mueble_madera,image,image('Mue ble_Madera.jpg')). ….. ….. // cuerpo del codigo …. …. new(W, window('cargador_imagen',size(300,400))), send(D,append,W), new(X,figure), new(Bm,bitmap(resource(Mensaje),@on)), send(Bm,name,1), send(X,display,Bm), send(X,status,1), send(W,display,X), …. …. 3. EJECUCION Esta es una ejecución donde afirmamos que necesitamos un mueble para sala, de precio regular, que sea de cedro y tenga una duración de 45 años. Para empezar ponemos «inicio.» Figura 3 Figura 4 Figura 5 Figura 6 Luego de haber respondido las diferentes interrogantes nos muestra una respuesta, en donde nos da sus características del mueble así como una foto referencial del producto.
  • 7. Figura 7 4. REFERENCIAS [1] http://es.wikipedia.org/wiki/Sistema_exper to [2] http://es.wikipedia.org/wiki/Prolog [3] www.dccia.ua.es/logica/prolog/docs/ProgG UI.pdf [4] es.scribd.com/doc/.../002-Manual-SWI- Prolog-Interfaces-Graficas [5] Apuntes de la Asignatura