Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.4.2
Objetivos Especficos
Implementar la base de conocimiento que le permita al sistema sugerir las razas segn los datos ingresados por el
cliente.
El sistema experto podr ser implementado por cualquier veterinaria o pet shop de la ciudad de Oruro.
ste proyecto llegar hasta el desarrollo del sistema, ms no se realizar la etapa de transicin.
Limitaciones
Los sistemas expertos no tienen sentido comn. El sistema slo resolver aquellos problemas para los que est
especficamente programado.
El sistema experto no posee la capacidad de aprendizaje a partir de sus experiencias, y requiere de la necesidad de
ingenieros del conocimiento para mejorar sus capacidades.
El sistema fue creado en espaol, lo que limita la poblacin que puede hacer uso de ste, ya que les obliga a tener
conocimiento de dicho idioma.
METODOLOGA
METODOLOGA DE INVESTIGACIN
El enfoque de investigacin para ste proyecto es emprico-analtico, de tipo tcnico, orientado la trasformacin de informacin en
bases de hechos y bases de conocimientos las cuales permiten realizar sugerencias hiptesis de acuerdo al problema al que sean
expuestas.
La extraccin de informacin se realiz mediante hechos de la vida cotidiana, visitas a expertos en canes, y diferentes medios de
informacion como lo son folletos, manuales y pginas web relacionadas entre otros.
Para hacer el software funcional con la informacin respectiva, se clasifican los objetos, en ste caso los tamaos de cada raza
encontradas en los diferentes medios exponentes de ste conocimiento, creando reglas que permitan parametrizar las consultas hacia
los usuarios y el software realice el trabajo para el que fue diseado.
La clasificacin mencionada anteriormente se realiza extrayendo los atributos de cada raza de perro y as mismo se clasifican las
similitudes entre stos facilitando la bsqueda en las consultas y mejor an en la organizacin de la informacin.
Los siguientes son ejemplos de programas orientados a sistemas expertos, aunque el proyecto de clasificacion es realizado en Prolog.
Dendral
XCon
Dipmeter Advisor
CADUCEUS
R1
CLIPS
Prolog
Los sistemas expertos pueden ser desarrollados para varios tipos de tareas, entre stos estn:
Monitorizacin: La monitorizacin es un proceso que realiza un sistema experto, el cual consiste en la interpretacin de las entradas
que un usuario le indique a este, para poder ejecutar una serie de instrucciones que en este caso permite la comparacin continua de
las entradas al sistema. Usualmente los Sistemas Expertos se utilizan principalmente como herramientas de diagnstico. Esta
caracterstica se basa en que el sistema debe predecir una serie de acontecimientos, analizarlos y generar una respuesta a la consulta
previa teniendo en cuenta las caractersticas dadas por el usuario.
Diseo: Es el proceso mediante el cual se realizan las descripciones del sistema que tiene como objetivo solucionar la problemtica
especificada y que se debe relacionar con diferentes campos del conocimiento que sirven como fuente de informacin para el
Sistema
proceso que se define como un sistema de bsqueda hacia una solucin ms ptima de una problemtica. Para que el sistema
experto cumpla con dar la mejor informacin hacia el usuario, se realizan una serie de comparaciones con otros sistemas verificando
la solucin ms adecuada hacia un problema y as poder definir si el Sistema Experto es viable y pueda ser implementado a esta
situacin.
Simulacin: Consiste en emular las funciones de un sistema aplicando las caractersticas de este en otro, a fin de estudiar el
comportamiento de los sistemas y de verificar
que
tipos
de
entrada
salidas
tienen. La
simulacin que hacen los Sistemas Expertos permite a los usuarios interactuar con dicho sistema brindndole las mismas soluciones
que un experto humano le podra ofrecer.
Planificacin: La planificacin se basa en la ejecucin de secuencias de acciones y se compone de un sistema de control y un
simulador.
Sin embargo esta presenta una serie de problemas, donde los datos pueden ser probables pero no seguros en su mayora, se debe
tener ms de un plan y explicaciones con un caso de resultados imprevistos o datos que deben ser valorados y/o influyan con un factor
de peso, en un Sistema Experto.
Control: Un sistema de control permite que la ejecucin de toda accin en el Sistema Experto sea de forma secuencial y este
permite que se realice un proceso de retroalimentacin que consiste en diagnosticar y verificar que las instrucciones estn de acuerdo
con los datos especificados por el usuario y poder ser un gua que acompae en la bsqueda de la informacin pertinente.
Los Sistemas de control realizan una serie de acciones para rectificar que el Sistema Experto se encuentre
funcionando
correctamente, las acciones que el sistema debe ejecutar son las siguientes: analizar entradas, realizar las correspondientes
validaciones y en caso de no cumplir los parmetros realizar las rectificaciones o reparaciones del sistema.
DESARROLLO INGENIERIL
Reglas para verificacion:
hipotesis(pequines)
:- pequines, !.
.
.
.
hipotesis(pastor_aleman) :- pastor_aleman, !.
.
.
.
hipotesis(rotweiller)
:- rotweiller, !.
.
.
.
Reglas de Identificacion:
pequines :raza_pequea,
verify(tiene_ojos_saltones),
verify(tienen_mal_caracter),
verify(tiene_hocico_pequea).
Reglas de clasificacion:
raza_pequea :- verify(tiene_pesor_menor_a_5kg), !.
raza_pequea :- verify(come_poco_y_es_aburrido),
verify(viven_bastante).
raza_mediana
:- verify(tiene_pesor_menor_a_25kg), !.
raza_mediana
:- verify(come_moderadamente),
verify(es_agil).
raza_grande :- verify(tiene_peso_mayor_a_25), !.
raza_grande :- verify(es_lento).
CONCLUSIONES Y RECOMENDACIONES
Para un proyecto que utilice sistemas expertos es vital tener conocimiento del tema que se va a trabajar, la problemtica y saber cmo
se puede aplicar el sistema para que cumpla las funciones de una persona experta.
Realizar la base de conocimiento en Prolog es lo ms conveniente para un proyecto de ste tipo, ya que es un lenguaje fcil de entender
y de utilizar. Pero se debe tener en cuenta que al crear la base de conocimiento de sta forma, quedar como un archivo plano
dificultando la conexin directa con otros programas.
CIBERGRAFIA
PRESSMAN S, Roger. Ingeniera de Software Un Enfoque Prctico, McGraw Hill, Quinta Edicin en Espaol. [Libro en lnea] <
http://es.scribd.com/doc/7978336/Ingenieria-de-Software-Un- Enfoque-Practico-Pressman-5th-Ed>> [con acceso el 4 junio de 2011].
Anexo 1
Cdigo prolog
identificar :- hipotesis(Animal),
write('Pienso que el perro que pensaste es: '),
write(Animal),
nl,
undo.
hipotesis(pequines)
hipotesis(chapi)
:- pequines, !.
:- chapi, !.
hipotesis(chihuaha)
:- chihuaha, !.
hipotesis(coocker)
:- coocker, !.
hipotesis(pug_carlino)
hipotesis(rotweiller)
:- pug_carlino, !.
:- rotweiller, !.
hipotesis(doberman)
:- doberman, !.
hipotesis(san_bernando)
hipotesis(pastor_ingles)
hipotesis(gran_danes)
:- san_bernando, !.
:- pastor_ingles, !.
:- gran_danes, !.
hipotesis(pastor_aleman) :- pastor_aleman, !.
hipotesis(boxer) :- boxer, !.
hipotesis(golden) :- golden, !.
hipotesis(pitbull) :- pitbull, !.
hipotesis(dalmata) :- dalmata, !.
hipotesis(huscky) :- huscky, !.
hipotesis(sharpei) :- sharpei, !
hipotesis(chow_chow) :- chow_chow, !
hipotesis(desconocido).
/* sin diagnostico */
pequines :raza_pequea,
verify(tiene_ojos_saltones),
verify(tienen_mal_caracter),
verify(tiene_hocico_pequea).
chapi :raza_pequea,
verify(tiene_pelo_largo_rizado),
verify(tiene_hocico_pequeo).
chihuaha :raza_pequea,
verify(tiene_ojos_saltones),
verify(tienen_mal_caracter),
verify(tiene_hocico_largo_para_su_tamao).
coocker :raza_pequea,
verify(tiene_orejas_largas),
verify(tienen_buen_caracter),
verify(tienen_pelo_largo).
pug_carlino :-
raza_pequea,
verify(tiene_orejas_pequeas),
verify(tienen_ojos_saltones),
verify(actua_en_Men_IN_Black).
rotweiller :- raza_grande,
verify(tiene_pelo_corto),
verify(es_perro_de_guardia),
verify(tiene_hocico_grande),
verify(es_color_negro).
doberman :- raza_grande,
verify(tiene_orejas_puntiagudas),
verify(es_perro_de_guardia),
verify(es_color_negro),
verify(tiene_pelo_corto).
san_bernando :- raza_grande,
verify(tiene_orejas_largas),
verify(tiene_pelo_largo),
verify(es_muy_baboso).
pastor_ingles :- raza_grande,
verify(tiene_orejas_largas),
verify(tiene_pelo_largo_y_rizado),
verify(parece_un_peluche).
gran_danes :- raza_grande,
verify(tiene_orejas_puntiagudas),
verify(tiene_pelo_corto),
verify(es_la_estrella_en_SCOOBY_DOO).
pastor_aleman :- raza_mediana,
verify(tiene_hocico_grande),
verify(tiene_pelo_largo),
verify(es_cafe_y_negro),
verify(es_la_raza_preferida_por_policias).
boxer :- raza_mediana,
verify(tiene_hocico_achatado),
verify(tiene_pelo_corto),
verify(es_muy_baboso).
golden :- raza_mediana,
verify(tiene_hocico_grande),
verify(tiene_pelo_largo_y_dorado),
verify(tiene_buen_caracter).
pitbull :- raza_mediana,
verify(tiene_hocico_grande),
verify(tiene_pelo_corto),
verify(tiene_orejas_puntiagudas),
verify(es_la_raza_mas_temida).
dalmata :- raza_mediana,
verify(tiene_hocico_mediano),
verify(tiene_pelo_corto),
verify(tiene_manchas_negras),
verify(su_mayor_enemigo_es_Cruela_Devila).
huscky :- raza_mediana,
verify(tiene_hocico_mediano),
verify(tiene_pelo_largo),
verify(tiene_ojos_azules),
verify(desciende_de_los_lobos).
sharpei :- raza_mediana,
verify(tiene_hocico_mediano),
verify(tiene_pelo_corto),
verify(es_muy_arrugado.
chow_chow :- raza_mediana,
verify(tiene_hocico_grande),
verify(tiene_pelo_largo),
verify(parece_peluche),
verify(tiene_la_lengua_negra_morada).
raza_mediana
:- verify(tiene_pesor_menor_a_25kg), !.
raza_mediana
:- verify(come_moderadamente),
verify(es_agil).
raza_pequea :- verify(tiene_pesor_menor_a_5kg), !.
raza_pequea :- verify(come_poco_y_es_aburrido),
verify(viven_bastante).
raza_grande :- verify(tiene_peso_mayor_a_25), !.
raza_grande :- verify(es_lento).
/* Hace Preguntas */
ask(Question) :write('El perro tiene la siguiente caracteristica : '),
write(Question),
write('? '),
read(Response),
nl,
( (Response == yes ; Response == y)
->
assert(yes(Question)) ;
assert(no(Question)), fail).
:- dynamic yes/1,no/1.
/* Verificacion */
verify(S) :(yes(S)
->
true ;
(no(S)
->
fail ;
ask(S))).
undo :- retract(yes(_)),fail.
undo :- retract(no(_)),fail.
undo.