You are on page 1of 9

INTELIGENCIA ARTIFICIAL

Sistema Experto para la venta de autos.

Carrera: Ingeniera en Software

Implementacin

El lenguaje experto WUCSHELL fue desarrollado en la Universidad Central de


las Villas, Cuba y permite escribir bases de conocimientos mediante reglas
de produccin de la forma IF.THEN. ACTION. Wucshell calcula la
incertidumbre de las conclusiones a partir del grado de confianza que
tengan los datos que manipula. De esta forma se brinda un elemento para
estimar lo confiable que es la conclusin a que arrib el sistema experto y
as puede aceptarse o descartarse. El fichero de reglas para Wucshell est
integrado por tres mdulos opcionales de acuerdo con las caractersticas de
la base de conocimientos y un bloque de acciones.

Definicin de variables externas.

En esta seccin se definen las variables que la base de conocimiento debe


buscar en una zona de memoria externa.

Bloque de preguntas.

En el bloque de preguntas se utiliza la palabra clave ask para obtener las


variables que se preguntarn. En cada pregunta se pueden definir
opcionalmente las posibles soluciones con las palabras clave domain o
choice, pues ellas garantizan que la variable tome solo uno de los valores
especificados por ellas. Si no se utiliza ninguna de estas palabras, la
variable puede tomar cualquier valor. Una palabra clave muy importante es
Because, porque su definicin especifica una lista de elementos que sern
mostrados en la pantalla cuando el usuario presione el botn de explicacin
de la pregunta. Se utiliza para explicarle al usuario, porque el S.E hace
cierta pregunta. Definiendo un texto con Because de una pregunta, ste
puede ser mostrado en la interface oprimiendo el botn correspondiente.
Con esto se

Bloque de reglas.

En este bloque se sitan las diferentes reglas de produccin. Si se cumple


alguna de ellas, se ejecutan las acciones especificadas.

El codigo siguiente fue programdo en Wucshell e implmenta las 32 reglas


resultantes del arbol optimoAUTOSE.kbo AUTOSE.kbs .

Sistema experto
External
precio
Asks
ASK pregunta: '"ESTE ES UN SISTEMA EXPERTO DE VENTA DE AUTOMOVILES "
TE GUSTARIA CONOCER LAS DIFERENTES AUTOS?'
DOMAIN 'Si','No'
BECAUSE 'EL OBJETIVO PRINCIPAL ES QUE CONOZCAS/n'
ASK marca: 'CUAL ES LA MARCA QUE MAS LE AGRADA?'
DOMAIN 'Ford','Nissan','BMW'
BECAUSE 'PORQUE ES NECESARIO SABER LA MARCA QUE LE AGRADA'
ASK lujo: 'LE GUSTAN LOS AUTOS DE LUJO?'
DOMAIN 'si','no'

BECAUSE 'PORQUE ES NECESARIO SABER SI LE GUSTARIA QUE SU AUTO FUERA


LUJOSO'
ASK cilindraje: 'CUAL ES EL TAMAO DE CILINDDRAJE QUE MAS LE AGRADA
PARA SU AUTO?'
DOMAIN '4','6','8'
BECAUSE 'PORQUE ES NECESARIO SABER EL TAMAO DE CILINDRAJE'
ASK tipoa: 'QUE TIPO DE AUTO LE GUSTARIA?'
DOMAIN 'carro','camioneta','deportivo'
BECAUSE 'PORQUE ES IMPORTANTE SABER QUE TIPO DE AUTO PREFIERE'
ASK puertas: 'CUANTAS PUERTAS DESEA QUE TENGA SU AUTO?'
DOMAIN '2','4'
BECAUSE 'PORQUE ES IMPORTANTE SABER LAS PUERTAS QUE LE GUSTARIA QUE
TUVIERA SU AUTO'
ASK color: 'CUAL ES EL COLOR QUE MAS LE AGRADA?'
DOMAIN 'azul','rojo','negro'
BECAUSE 'PORQUE ES IMPORTANTE SABER DE QUE COLOR LE GUSTARIA QUE FUERA
SU AUTO'
ASK tipoc: 'DE QUE TIPO DE CAJA DESEA QUE SEA SUU AUTO?'
DOMAIN 'automatico','estandar'
BECAUSE 'PORQUE ES IMPORTANTE SABER QUE TIPO DE CAJA DESSEA'
ASK aire: 'LE GUSTA QUE LOS AUTOS TENGAN AIRE ACONDICIONADO?'
DOMAIN 'si','no'
BECAUSE 'PORQUE ES NECESARIO SABER SI LE GUSTARIA QUE SU AUTO TUVIERA
AIRE ACONDICIONADO'
ASK seguros: 'COMO LE GUSTAN LOS SEGUROS DEL AUTO?'
DOMAIN 'electricos','manuales'
BECAUSE 'PORQUE ES NECESARIO SABER SI LE GUSTARIA QUE SU AUTO TUVIERA
SEGUROS ELECTRICOS O MANUALES'
ASK radio: 'LE GUSTA QUE LOS AUTOS TENGAN RADIO?'
DOMAIN 'si','no'
BECAUSE 'PORQUE ES NECESARIO SABER SI LE GUSTARIA QUE SU AUTO TUVIERA
RADIO'
ASK usb: 'LE GUSTA QUE SU AUTO TENGA ENTRADAS USB EN EL ESTEREO?'
DOMAIN 'si','no'
BECAUSE 'PORQUE ES NECESARIO SABER SI LE GUSTARIA QUE SU AUTO TUVIERA
ENTRADAS USB EN SU ESTEREO'
ASK asientos: 'LE GUSTARIA QUE LOS ASIENTOS DE SU AUTO FUERAN DE
PIEL?'
DOMAIN 'si','no'
BECAUSE 'PORQUE ES NECESARIO SABER SI LE GUSTARIA QUE SU AUTO TUVIERA
ASIENTOS DE PIEL'

Rules
RULE 1
if (cilindraje = '4')and (asientos = 'si') and (marca = 'BMW') and
(tipoc = 'automatico')
THEN
precio := 'bajo'

ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'BAJO/n'
END;
RULE 2
if (cilindraje = '4')and (asientos = 'si') and (marca = 'BMW') and
(tipoc = 'estandar')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 3
if (cilindraje = '4')and (asientos = 'si') and (marca = 'Nissan')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 4
if (cilindraje = '4')and (asientos = 'si') and (marca = 'Ford') and
(seguros = 'electricos') and (usb = si)
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 5
if (cilindraje = '4')and (asientos = 'si') and (marca = 'Ford') and
(seguros = 'electricos') and (usb = no)
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 6
if (cilindraje = '4')and (asientos = 'si') and (marca = 'Ford') and
(seguros = 'manuales') and (radio = 'si') and (color = 'azul')
THEN
precio := 'bajo'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'BAJO/n'
END;
RULE 7

if (cilindraje = '4')and (asientos = 'si') and (marca = 'Ford') and


(seguros = 'manuales') and (radio = 'si') and (color = 'negro')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 8
if (cilindraje = '4')and (asientos = 'si') and (marca = 'Ford') and
(seguros = 'manuales') and (radio = 'no')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 9
if (cilindraje = '4')and (asientos = 'no') and (color = 'negro')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 10
if (cilindraje = '4')and (asientos = 'no') and (color = 'azul') and
(marca = 'BMW')
THEN
precio := 'bajo'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'BAJO/n'
END;
RULE 11
if (cilindraje = '4')and (asientos = 'no') and (color = 'azul') and
(marca = 'Nissan') and (seguros = 'electricos')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 12
if (cilindraje = '4')and (asientos = 'no') and (color = 'azul') and
(marca = 'Nissan') and (seguros = 'manuales')
THEN
precio := 'bajo'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',

'BAJO/n'
END;
RULE 13
if (cilindraje = '4')and (asientos = 'no') and (color = 'azul') and
(marca = 'Ford')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 14
if (cilindraje = '4')and (asientos = 'no') and (color = 'rojo') and
(tipoc = 'automatico')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 15
if (cilindraje = '4')and (asientos = 'no') and (color = 'rojo') and
(tipoc = 'estandar')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 16
if (cilindraje = '6')and (asientos = 'si') and (color = 'azul') and
(lujo = 'no')
THEN
precio := 'bajo'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'BAJO/n'
END;
RULE 17
if (cilindraje = '6')and (asientos = 'si') and (color = 'azul') and
(lujo = 'si')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 18
if (cilindraje = '6')and (asientos = 'si') and (color = 'rojo') and
(lujo = 'no')

THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 19
if (cilindraje = '6')and (asientos = 'si') and (color = 'rojo') and
(lujo = 'si')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 20
if (cilindraje = '6')and (asientos = 'no') and (rines = 'deportivo')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 21
if (cilindraje = '6')and (asientos = 'no') and (rines = 'normal') and
(color = 'azul')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 22
if (cilindraje = '6')and (asientos = 'no') and (rines = 'normal') and
(color = 'rojo')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 23
if (cilindraje = '8')and (color = 'azul') and (puertas = '2') and
(lujo = 'si')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;

RULE 24
if (cilindraje = '8')and (color = 'azul') and (puertas = '2') and
(lujo = 'no')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 25
if (cilindraje = '8')and (color = 'azul') and (puertas = '4')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 26
if (cilindraje = '8')and (color = 'negro') and (tipoa = 'camioneta')
and (lujo = 'si')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 27
if (cilindraje = '8')and (color = 'negro') and (tipoa = 'camioneta')
and (lujo = 'no')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 28
if (cilindraje = '8')and (color = 'negro') and (tipoa = 'deportivo')
THEN
precio := 'alto'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'ALTO/n'
END;
RULE 29
if (cilindraje = '8')and (color = 'negro') and (tipoa = 'carro') and
(puertas = '2')
THEN
precio := 'medio'
ACTIONS

DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del


auto es/n/n/n',
'MEDIO/n'
END;
RULE 30
if (cilindraje = '8')and (color = 'negro') and (tipoa = 'carro') and
(puertas = '4')
THEN
precio := 'bajo'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'BAJO/n'
END;
RULE 31
if (cilindraje = '8')and (color = 'rojo') and (lujo = 'no')
THEN
precio := 'medio'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'MEDIO/n'
END;
RULE 31
if (cilindraje = '8')and (color = 'rojo') and (lujo = 'si')
THEN
precio := 'bajo'
ACTIONS
DISPLAY 'De acuerdo a las caractersticas que escogiste el precio del
auto es/n/n/n',
'BAJO/n'
END;
ACTIONS
REPEAT
RESET ALL
Find precio
UNTILKNOWN finalizar
END.

You might also like