Está en la página 1de 7

Sistema Experto: Clasificación de animales

mamíferos
David Torremocha Ruano Guillermo Moreta Martínez
Estudiante Ing. Tec. Ind. Estudiante Ing. Tec. Ind.
Electrónica Electrónica
E.P.S. Universidad Carlos III E.P.S. Universidad Carlos III
Leganés, Madrid Leganés, Madrid
100069011@alumnos.uc3m.e 100056566@alumnos.uc3m.e
s s

SÍNTESIS clasifican a los mamíferos en subclases, infraclases, y


posteriormente en orden.
En esta disertación desarrollamos un Sistema Experto capaz de
Ejemplo:
decidir el grupo de mamífero al que pertenece un ejemplar
Clase : Mamífero
en estudio.
Subclase : Terio
Categories and Subject Descriptors Infraclase : Placentario
D.3.3 [Programming Languages]: Language Contructs and
Features – abstract data types, polymorphism, control structures. Orden : Carnívoro
This is just an example, please use the correct category and
Suborden : Félido
subject descriptors for your submission. The ACM Computing
Classification Scheme: http://www.acm.org/class/1998/ 2.1 Subclase
Las subclases de los mamíferos pueden ser terios o monotremas.
Términos generales Los terios son aquellos mamíferos los cuales el embrión se
Algoritmos, Diseño, Documentación, Teoría, Lenguajes. desarrolla dentro del útero materno. Estos comprenden a las
infraclases placentarios y marsupiales.
Palabras clave Los monotremas son aquellos mamíferos ovíparos, que poseen
Sistema Experto, Clasificación, Animal, mamífero, Clase, glándulas mamarias para alimentar a sus crías. Son los mamíferos
subclase, infraclase, orden, suborden, Prolog. más antiguos. Dentro de esta subclase no hay infraclases.

1. INTRODUCCIÓN
El ser humano desde que avanzó tecnológicamente ha buscado la 2.2 Infraclase
forma de poder transmitir sus conocimientos y su forma de Las infraclases que existen dentro de la subclase terio son los
razonar a una máquina para así facilitar al hombre muchas tareas. marsupiales y los placentarios.
La inteligencia artificial también ha buscado este objetivo, Los marsupiales son aquellos mamíferos los cuales se
queriendo conseguir que un simple robot sea capaz de razonar de caracterizan por un corto desarrollo en el útero materno y
forma similar a la del ser humano y tomar sus decisiones. Para completar gran parte del crecimiento agarrados a las glándulas
poder llevarse a cabo es necesario emplear distintos procesos que mamarias del interior de la bolsa marsupial o marsupio. Dentro de
simulan el aprendizaje y decisiones de la maquina. Este tipo de los marsupiales no hay órdenes, no hay más clasificación dentro
sistemas se acotan en un pequeño campo de conocimientos, y son de estos.
conocidos como Sistemas Basados en Conocimiento (SBC) o Los placentarios son aquellos mamíferos los cuales se
bien Sistemas Expertos, mediante los cuales con unas sencillas caracterizan porque las crías son retenidas en el útero materno
reglas podemos llegar a grandes conclusiones con gran rapidez y durante largo tiempo donde son alimentadas por una placenta
facilidad. alantoica. Dentro de los placentarios hay numerosas clases las
cuales se les llama órdenes como por ejemplo roedores, cetáceos.
2. CLASIFICACIÓN DE ANIMALES
MAMÍFEROS 2.3 Orden
Para poder clasificar a los distintos mamíferos del planeta es Las ordenes que existen son insectívoros, folidotos, desdentados,
necesario saber tanto sus características físicas, como su primates, tubulidentados, sirénidos, pinnípedos, carnívoros,
alimentación como el medio en el que viven (acuáticos o
terrestres). Primero hay una pequeña clasificación en la cual se
quirópteros, dermópteros, lagomorfos, roedores, cetáceos, ordenador que resuelve problemas que requieren experiencia
perisodáctilos, artiodáctilos, hiracoideos y proboscídeos. humana, mediante el uso de representación del conocimiento y
Dentro de los carnívoros hay subórdenes las cuales son los procedimientos de decisión". El conocimiento del experto en ese
félidos, canidos, mustélidos, úrsidos, prociónidos, vivérridos, y campo se organiza en una base de conocimientos, y en función de
hiénidos. los datos disponibles de la aplicación (base de hechos) se imita la
forma de actuar del experto explorando en la base de
conocimientos hasta encontrar la solución (motor de inferencia).
Los resultados finales y la forma en que se obtienen se expresan a
través de la interfase hombre-máquina.
Monotremas
Los sistemas expertos se basan en la simulación del razonamiento
humano. El razonamiento humano tiene para ellos, un doble
Marsupiales interés: por una parte, el del análisis del razonamiento que
Cetáceos seguiría un experto humano en la materia a fin de poder
codificarlo mediante el empleo de un determinado lenguaje
Mamíferos Pinnípedos
informático; por otra, la síntesis artificial, de tipo mecánico, de los
Sirénidos razonamientos de manera que éstos sean semejantes a los
Terios Quirópteros empleados por el experto humano en la resolución de la cuestión
planteada.
Dermópteros
Desdentados La base del conocimiento representa el universo donde está el
sistema, es decir, la información que rodea al problema. A través
Insectívoros del motor de inferencia sabemos cómo el experto decide cual
Tubulidentados regla aplicar a cuales datos, cómo resolver conflictos entre reglas
y entre datos y cómo van a inferir los nuevos hechos o nuevos
Placentarios Folidotos
datos; y para eso debemos saber cómo piensa el experto y cómo
Roedores utiliza la base del conocimiento (base de reglas y base de datos).
Lagomorfos La interfaz del usuario no sólo debe ser muy fluida y facilitar el
Primates uso, sino que además debe servir para desarrollar el sistema
experto, introducir los datos, cambiar las reglas, cambiar el motor
Carnívoros
de inferencia, así como tener capacidad de circulación y capacidad
Perisodáctilos de operación cuando se usa en el sistema experto.
Artiodáctilos El sistema experto establecido se compone, por lo tanto, de dos
Hiracoideos tipos bien diferenciados de elementos, los propios del campo de
Proboscídeos los expertos relacionados con el problema concreto (es decir, la
base de conocimientos y la base de hechos) y el que se puede
aplicar de forma general a una gran variedad de problemas de
Figura1: Clasificación mamíferos. diversos campos (como el caso del motor de inferencias). Sin
embargo, el motor de inferencias no es un mecanismo universal de
deducción, ya que hay dos tipos diverso: los que emplean el
razonamiento aproximativo (para el cual el resultado puede ser
Félidos erróneo) y aquellos que emplean un tipo de razonamiento capaz
de obtener un resultado (si llegan a él), con toda seguridad,
Canidos verdadero.
Úrsidos
El Sistema Experto está conformado por:
Carnívoros Mustélidos
- Base de conocimientos (BC): Contiene conocimiento modelado
Prociónidos extraído del diálogo con el experto.
Vivérridos
- Base de hechos (Memoria de trabajo): contiene los hechos sobre
Hiénidos un problema que se ha descubierto durante el análisis.
Figura2: Clasificación en subórdenes de mamíferos carnívoros. - Motor de inferencia: Modela el proceso de razonamiento
humano.
- Módulos de justificación: Explica el razonamiento utilizado por
el sistema para llegar a una determinada conclusión.
3. SISTEMA EXPERTO
Un sistema experto es una rama de la Inteligencia Artificial y es 3.1 Base de conocimientos
aquel que imita las actividades de un humano para resolver
En esta parte del Sistema Experto donde se encuentran los
problemas de distinto índole (no necesariamente tiene que ser de
conocimientos sobre el dominio. Éstos son extraídos de un
Inteligencia Artificial), puede definirse como "un programa de
humano y codificados en una serie de reglas que le permiten al 3.4.1 CLIPS y JESS
sistema seguir el razonamiento que seguiría el experto, en este CLIPS es una herramienta que provee un ambiente de desarrollo
caso el biólogo. Comúnmente las reglas suelen seguir una para la producción y ejecución de sistemas expertos. Fue creado a
estructura condicional: típicamente con el formato SI ocurre partir de 1984, en el Lyndon B. Johnson Space Center de la
ENTONCES pasa esto. Un ejemplo : NASA. Los fondos cesaron a principios de los años 1990, y hubo
un mandato de la NASA para comprar software comercial.
Si “El mamífero es vivíparo” CLIPS es un acrónimo de C Language Integrated Production
Entonces “El mamífero pertenece a la” subclase terio. System (Sistema de Producción Integrado en Lenguaje C). En la
actualidad, entre los paradigmas de programación que soporta
3.2 Memoria de trabajo CLIPS se encuentran la Programación lógica, la Programación
imperativa y la Programación Orientada a Objetos.
Esta parte de encarga de almacenar hechos que son relacionados
CLIPS probablemente es el sistema experto más ampliamente
con conocimientos mediante consultas, durante el uso del sistema
usado debido a que es rápido, eficiente y gratuito. Aunque ahora
experto. De esta manera se pueden ir adquiriendo nuevos
es de dominio público, aún es actualizado y mantenido por su
conocimientos que serán aplicados en consultas futuras. Es la
autor original, Gary Riley.
forma en la que el SE aprende.
De Java Expert System Shell (Jess), es un motor de reglas para la
3.3 Motor de inferencia plataforma Java - es un superconjunto del lenguaje de
Es el encargado de simular al experto. Se encarga de analizar las programación CLIPS, desarrollado por Ernest Friedman-Hill, de
respuestas del usuario del sistema experto a la pregunta que le los Laboratorios Nacionales Sandia. Fue escrita a fines de 1995.
realiza el sistema, y así poder darle al final una respuesta correcta
al usuario. Es decir a medida que el usuario va respondiendo a Ofrece una programación basada en normas adecuadas para la
preguntas condicionales el sistema va a ir descendiendo por el automatización de un sistema experto, y se refiere a menudo como
árbol de decisión dependiendo si la respuesta es sí o no. una consola de sistema experto. En los últimos años, los sistemas
de agentes inteligentes también han desarrollado, que dependen
de una capacidad similar.

¿A? Más que un modelo de procedimiento, en un solo programa tiene


SI NO un ciclo que se activa sólo una vez, el paradigma declarativo
utilizado por Jess continuamente se aplica un conjunto de reglas a
un conjunto de hechos por parte de un proceso llamado de
¿B? ¿C? patrones. Las reglas se pueden modificar la colección de hechos, o
se puede ejecutar cualquier código en Java.
SI NO SI NO

1 2 3 4 Jess se puede utilizar para construir Java Servlets, EJB, applets y


aplicaciones completas que utilizan los conocimientos en forma
de reglas declarativas para sacar conclusiones y hacer inferencias.
Figura3: Esquema de explicación.
Dado que muchas de las normas puede coincidir con muchas
entradas, hay pocas de propósito general coincidentes algoritmos
eficaces. El motor de reglas Jess utiliza el algoritmo de Rete.
3.4 Métodos de implementación
Después de analizar y explicar lo que es un sistema experto 3.4.2 Prolog
podemos proceder a explicar cómo podemos implementar uno de Prolog es un lenguaje de programación semi-interpretado
ellos. Para implementarlo podemos utilizar cualquier tipo de utilizado para la construcción de sistemas expertos. Una
lenguaje de programación pero como es una serie de preguntas herramienta basada en el lenguaje de la lógica.
condicionales se suelen usar programación con lenguajes lógicos. Los programas en Prolog se componen de cláusulas de Horn que
Hay distintos tipos de lenguajes lógicos con los que podemos constituyen reglas del tipo "modus ponendo ponens", es decir, "Si
lograr implementarlos. Algunos de ellos son: es verdad el antecedente, entonces es verdad el consecuente". Un
- Prolog. ejemplo de cláusula de Horn es:
- CLIPS.
- JESS.

Nosotros hemos implementado el sistema experto con el


lenguaje lógico Prolog y el programa SWI-Prolog que que podría leerse así: "A es hija de B si A es mujer y B es padre
posteriormente lo explicaremos con más detalle. Ahora se de A". En Prolog el símbolo :- separa la conclusión de las
procederá a una breve explicación de los otros lenguajes lógicos condiciones. Las variables se escriben comenzando por una letra
Clips y Jess. mayúscula. Todas las condiciones deben cumplirse
simultáneamente para que la conclusión sea válida; por tanto, la
coma que separa las distintas condiciones es equivalente a la
conjunción copulativa. La disyunción, en cambio, no se
representa mediante símbolos especiales, sino definiendo reglas Su sintaxis es: read(X). Instancia la variable X con el valor leído
nuevas, como la siguiente: del teclado.

3.4.2.5 Consultas
Una consulta tiene la misma forma que un hecho. El procesador
que podría leerse así: "A es hija de B si A es mujer y B es madre de Prolog buscará por toda la base de datos hechos que coincidan
de A". con la consulta y dará una respuesta que puede valer “SI”/“NO”.
Existen dos tipos de cláusulas: hechos y reglas. Además, una pregunta puede contener variables. En este caso
Prolog buscará por la base de hechos aquellos objetos que
3.4.2.1 Reglas pueden ser representados por la variable.
Una regla es del tipo:
3.4.2.6 Estrategia de Resolución y Consulta
En Prolog no existen instrucciones de control. Su ejecución se
basa en dos conceptos: la unificación y el backtracking
(retroceso). Gracias a la unificación, cada objetivo determina un
y se lee como "La cabeza es verdad si el cuerpo es verdad".
subconjunto de cláusulas susceptibles de ser ejecutadas. Cada una
La cabeza está formada por un único hecho, el cuerpo puede ser
de ellas se denomina punto de elección. Prolog selecciona el
uno o más hechos (conjunción de condiciones), separados por
primer punto de elección y ejecuta el programa hasta determinar si
coma, que se denomina “secuencia de objetivos”.
el objetivo es verdadero o falso. En caso de ser falso entra en
juego el backtracking, que consiste en deshacer todo lo ejecutado
3.4.2.2 Hechos situando el programa en el estado en el que estaba antes de llegar
Las cláusulas sin cuerpo son llamados hechos porque siempre son al punto de elección. Entonces toma el siguiente punto de
ciertos. Un ejemplo de un hecho es: elección y repite de nuevo el proceso.

4. IMPLEMENTACIÓN
3.4.2.3 Listas Para implementar este trabajo hemos realizado una red semántica
La representación de hechos simples no es lo común en la la cual recorreremos de arriba a abajo en función de las respuestas
clasificación de elementos, sino que se agrupan los elementos de que se dan a las preguntas, que irán sucediéndose una a otra según
un mismo tipo en una lista. Las listas son colecciones de se vayan contestando, hasta llegar al tipo de mamífero al que
elementos en Prolog. Una lista se divide en dos partes: Cabeza. Es pertenece el animal a reconocer.
el primer elemento de la lista. Cola. Es una lista con el resto de los A continuación se representará un ejemplo de la forma de
elementos de la lista. La cabeza y la cola de una lista se separan implementar el programa:
con el símbolo "|".

3.4.2.4 Entrada/Salida de datos


PROLOG, al igual que la mayoría de lenguajes de programación
modernos incorpora predicados predefinidos para la entrada y
salida de datos. Estos son tratados como reglas que siempre se
satisfacen.

• write : Muestra un término por pantalla. Su sintaxis es:


write('Hello world'). Figura4: Parte de la red semántica.
Las comillas simples encierran constantes, mientras que todo lo
que se encuentra entre comillas dobles es tratado como una lista.
También podemos mostrar el valor de una variable, siempre que Se definen los hechos:
este instanciada: write(X). …
prop4(monotremas,oviparo):- write('Es un monotrema').
• nl : El predicado nl fuerza un salto de linea en la salida.
prop4(puedevolar,viviparo).
• read : Lee un valor del teclado. La lectura del comando read prop4(nopuedevolar,viviparo).
no finaliza hasta que se introduce un punto ".".
prop5(puedeplanear,nopuedevolar). 5.2 Folidoto
prop5(nopuedeplanear,nopuedevolar). Puesto que mamíferos sin dientes sólo hay dos tipos: folidotos y
prop5(quiroptero,puedevolar):- write('Es un quiróptero'). desdentados, al sistema no le supone mucha dificultad llegar a la
resolución.

Mamífero vivíparo sin dientes y con el cuerpo cubierto de
Se pregunta al usuario mediante las siguientes reglas: escamas.

alg1(F) :- nl,write('¿Es vivíparo?'),read(X),alg4(X).
alg4(F) :- F==no, prop4(_,oviparo).
alg4(F) :- F==si, prop4(_,viviparo),nl,write('Es vivíparo, ¿puede
volar?'),read(X),alg5(X).
alg5(F) :- F==si, prop5(_,puedevolar).
alg5(F) :- F==no, prop5(_,nopuedevolar),nl,write('No puede
volar pero ¿puede planear?'),read(X),alg6(X). Figura7: Imagen de un folidoto.


Si se deduce del dialogo que el mamífero es vivíparo y puede
volar puesto que esas condiciones solo son cumplidas por el
quiróptero, se llega a la conclusión de que éste pertenece a la
orden de los quirópteros y se muestra por pantalla. Si por lo
contrario se deduce que no puede volar hay que seguir
profundizando en el árbol con la misma manera de
implementación.

5. EJEMPLOS
En esta sección mostraremos los resultados del programa a la hora
de reconocer entre los distintos tipos de mamíferos que existen.

Figura8: Imagen del resultado del programa.


5.1 Sirénido
Puesto que es el único mamífero placentario herbívoro que vive 5.3 Lagomorfo
en el agua, el programa no necesita hacer muchas preguntas para
Dentro de vivíparos que no pueden volar y que poseen dientes
averiguar su tipo.
hemos establecido tres preguntas: si tienen o no bolsa marsupial,
si tienen incisivos arriba y abajo y si tienen cinco dedos para
poder reconocer si son marsupiales (si tienen marsupio o bolsa
marsupial), roedores o lagomorfos (si tienen incisivos arriba y
abajo) o primates (si tienen manos de cinco dedos). Estas
preguntas consiguen que después de evaluar estas posibilidades, si
ninguna tiene respuesta satisfactoria, se procede a dividir el resto
de mamíferos entre carnívoros y herbívoros.

Mamífero vivíparo con dos pares de incisivos arriba.

Figura5: Imagen de un sirénido.

Figura9: Imagen de un lagomorfo.

Figura6: Imagen del resultado del programa.


5.5 Carnívoro félido
Mamífero vivíparo carnívoro.

Figura13: Imagen de un félido.

Figura10: Imagen del resultado del programa.

5.4 Herbívoro artiodáctilo


Mamífero vivíparo herbívoro.

Figura11: Imagen de un artiodáctilo.


Figura14: Imagen del resultado del programa.

6. CONCLUSIONES
Los sistemas expertos son una gran herramienta creada por el ser
humano, la cual nos facilita enormemente la labor de obtención de
información de forma rápida y sencilla.
En nuestro caso a partir de un animal mamífero podemos llegar a
saber qué clase de mamífero es, simplemente respondiendo de
forma condicional a una serie de preguntas el sistema experto,
después de procesar las respuestas, es capaz de darnos el nombre
de la clase a la que pertenece el animal. Esto simplifica y ahorra
mucho tiempo y esfuerzo a la hora de saber qué tipo de mamíferos
es.
En cuanto a la programación, hemos podido trabajar con un
lenguaje de programación lógico como es Prolog y utilizarlo para
realizar un sistema experto que aunque para nuestra utilidad es
sencillo permite desarrollar sistemas expertos para otros fines
mucho más complejos.
Figura12: Imagen del resultado del programa.
Con esto llegamos a la conclusión que si se elaboran sistemas
expertos en cada una de las materias conseguiríamos ser más
eficientes y eficaces en todos estos campos, ahorrándonos tiempo
y simplificando tareas que haciéndose de otra manera tardaríamos
mucho más tiempo y tendríamos que emplear un mayor número [9] Apuntes de la asignatura sobre JESS.
de recursos. [10] Apuntes de la asignatura sobre Prolog.
[11] Wikipedia, CLIPS. Disponible en Web:
7. REFERENCIAS es.wikipedia.org/wiki/CLIPS
[1] Wikipedia, Mamíferos. Disponible en Web:
[12] Wikipedia, JESS. Disponible en Web:
es.wikipedia.org/wiki/Mammalia http://en.wikipedia.org/wiki/Jess_programming_language
[2] naturaleza.ar.tripod.com/.../mamíferos/clasificacion2.htm [13] Apuntes de la asignatura sobre Sistemas Expertos.
[3] http://mamiferoes.galeon.com/clasificacion.htm [14] Viejo Hernando Diego . Sistemas expertos.
[4] Wikipedia, Placntarioss. Disponible en Web: http://www.divulga-ia.com
http://es.wikipedia.org/wiki/Eutheria [15] Wikipedia. Sistema experto, Disponible en Web:
[5] http://es.wikipedia.org/wiki/Nutrici%C3%B3n_de_los_mam http://es.wikipedia.org/wiki/Sistema_experto.
%C3%ADferos [16] http://www.monografias.com/trabajos5/prolog/prolog.shtml
[6] Wikipedia, Terioss. Disponible en Web: #reglas
http://es.wikipedia.org/wiki/Theria [17] Wikipedia, Prolog. Disponible en Web:
http://es.wikipedia.org/wiki/Prolog
[7] http://www.duiops.net/seresvivos
[8] Apuntes de la asignatura sobre CLIPS.

También podría gustarte