Practica

Post on 21-Jul-2016

86 views 8 download

Transcript of Practica

Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniería de Sistemas Inteligencia Artificial (Curso Vacacional 2014)Ejercicios propuestos de la Primera Unidad.

Fecha: 26/02/2014

NOMBRES Y APELLIDOS: JILAJA PARICOTO LIZETH ROSMERY

1. Tenemos el siguiente conocimiento directo:Pedro padece gripe.Pedro padece hepatitisJuan padece hepatitisMaría padece gripeCarlos padece intoxicaciónLa fiebre es síntoma de gripeEl cansancio es síntoma de hepatitisLa diarrea es síntoma de intoxicaciónEl cansancio es síntoma de gripeLa aspirina suprime la fiebreEl Lomotil suprime la diarrea

Además podemos aportar el siguiente conocimiento inferido

Un fármaco alivia una enfermedad si la enfermedad tiene un síntoma que sea suprimido por el fármaco.Una persona debería tomar un fármaco si padece una enfermedad que sea aliviada por el fármaco.

Construir un programa que refleje dicho conocimiento y permita resolver las siguientes cuestiones:

1) ¿Podemos conocer qué dolencia tiene Pedro? ¿Y María?2) ¿Quién padece gripe?3) ¿Qué síntomas tiene Pedro?4) ¿Quién padece diarrea?5) ¿Y quién está cansado?6) ¿Hay algún fármaco que alivie a Pedro?7) ¿Hay algún síntoma que compartan Juan y María?

CODIGO PROLOG

padece(symbol, symbol)sintoma(symbol,symbol)suprime(symbol,symbol)alivia(symbol,symbol)tomar(symbol,symbol)sintomas_persona1(symbol,symbol)sintomas_persona2(symbol,symbol)farmaco_persona(symbol,symbol)sintomas(symbol,symbol, symbol)

padece(pedro, gripe).padece(pedro, hepatitis).

Página 1

padece(juan, hepatitis).padece(maria, gripe).padece(carlos, intoxicación).sintoma(fiebre, gripe).sintoma(cansancio, hepatitis).sintoma(diarrea, intoxicación).sintoma(cansancio, gripe).suprime(aspirina, fiebre).suprime(lomotil, diarrea).alivia(Farmaco,Enfermedad):-sintoma(S,Enfermedad), suprime(Farmaco, S).tomar(Persona,Farmaco):-padece(Persona,Enfermedad), alivia(Farmaco, Enfermedad).sintomas_persona1(Persona,Sintomas):-padece(Persona,Enfermedad), sintoma(Sintomas, Enfermedad).sintomas_persona2(Persona,Sintomas):- sintoma(Sintomas, Enfermedad), padece(Persona,Enfermedad).farmaco_persona(Persona, Farmaco):-padece(Persona, Enfermedad), alivia(Farmaco, Enfermedad).sintomas(P1, P2, S):- sintomas_persona1(P1, S),sintomas_persona1(P2, S).

PREGUNTAS:1. ¿Podemos conocer qué dolencia tiene Pedro? ¿Y María?

padece(pedro, DP).padece(maria, DM).

2. ¿Quién padece gripe?padece(P, gripe).

3. ¿Qué síntomas tiene Pedro?sintomas_persona1(pedro, Sintomas).

4. ¿Quién padece diarrea?sintomas_persona1(Persona, diarrea).

5. ¿Y quién está cansado?sintomas_persona2(Persona, cansancio).

6. ¿Hay algún fármaco que alivie a Pedro?farmaco_persona(pedro, Farmaco ).

7. ¿Hay algún síntoma que compartan Juan y María?sintomas(juan, maria, S ).

2. QUE ANIMAL ES?

CODIGO PROLOG

animal('LEON'):-clase(mamifero),alimentacion('carnivoro').animal('MUSARAÑA'):-clase(mamifero),alimentacion('insectivoro').animal('CABALLO'):-clase(mamifero),alimentacion('herbivoro').animal('COCODRILO'):-clase(reptil),alimentacion('carnivoro').animal('CAMALEON'):-clase(reptil),alimentacion('insectivoro').animal('TORTUGA DE TIERRA'):-clase(reptil),alimentacion('herbivoro').

Página 2

animal('AGUILA'):-clase(ave),alimentacion('carnivoro').animal('GOLONDRINA'):-clase(ave),alimentacion('insectivoro').animal('PERDIZ'):-clase(ave),alimentacion('herbivoro').pregunta1:-write('la clase a la que pertenece el animal es:'),nl,nl,write('1.mamifero.'),nl,write('2.reptil.'),nl,write('3.ave.'),nl,write('4.por que se hace la pregunta?'),nl,read(N),clasificar1(N).clasificar1(1):-assert(clase(mamifero)),!.clasificar1(2):-assert(clase(reptil)),!.clasificar1(3):-assert(clase(ave)),!.clasificar1(4):-write(clase('el hecho de saber la clase, permite aproximarse'),nl,write('a la determinacion del animal especifico de la tabla'),nl,nl,pregunta1,!.clasificar1(_):-pregunta1,!.pregunta2:-write('segun tipo de alimentacion puede ser:'),nl,nl,write('1.carnivoro.'),nl,write('2.insectivoro.'),nl,write('3.hervivoro.'),nl,write('4.por que se hace la pregunta?'),nl,read(N2),clasificar2(N2).clasificar2(1):-assert(alimentacion(carnivoro)),!.clasificar2(2):-assert(alimentacion(insectivoro)),!.clasificar2(3):-assert(alimentacion(hervovoro)),!.clasificar2(4):-write('el hecho de saber el tipo de3 alimentacion,una vez conocida la clase, permite establecer'),nl,write('inequivocadamente el animal de que se trata, con base en la informacion de la tabla'),nl,nl,pregunta2,!.clasificar2(_):-pregunta2,!.clasificar:-animal(M),write('el animal puede ser:'),nl,write(''),write(M),nl,write('por que es el unico animal que cumple la condicion de ser'),clase(X),nl,write(X),write('y'),alimentacion(Y),write(Y),nl.empezar:-pregunta1,

pregunta2,clasificar,!.limpiar:-retrac(clase(_)),retrac(alimentacion(_)),!.continue('s'):-empezar,!.continue('S'):-empezar,!.continue('n'):-continue('N').continue('N'):-write('NOS AGRADÓ AYUDARTE'),nl,write('.........HASTA PRONTO.........').pregunta:-nl,nl,write('Desea continuar s/n:'),read(X),continue(X).

Página 3

3. RED NEURONAL

CODIGO MATLAB

y=length(Salida)e1=Entrada(2:1:(y-1))e2=Entrada(1:1:(y-2))s1=Salida(2:1:(y-1))s2=Salida(1:1:(y-2))s3=Salida(3:1:(y))INs=[e1 e2 s1 s2];ENTRADAS=INs'red=newff(minmax(ENTRADAS),[10,1],{'tansig','purelin'},'trainlm')red.trainparam.show=20red.trainparam.epochs=100red.trainparam.goal=0.0000001red=train(red,ENTRADAS,s3')gensim(red,0.05)

ENTRENAMIENTO 1:

trainlm 1.822503 seg.

ENTRENAMIENTO 2:

traingd 2.425252 seg.

Página 4

ENTRENAMIENTO 3:

trainlgdm 2.793966 seg.

ENTRENAMIENTO 4:

trainlgda 2.284557 seg.

ENTRENAMIENTO 5:

trainlgdx 2.456878 seg

CONCLUSIONES:

Página 5

El entrenamiento tranlm es el más eficaz de todos los entrenamientos para este tipo de red neuronal, ya que es este quien realiza su labor en el menor tiempo y logra el objetivo de obtener un error inferior a 0.000001

Página 6