Practica

6
Universidad Nacional del Altiplano Puno Escuela 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 hepatitis Juan padece hepatitis María padece gripe Carlos padece intoxicación La fiebre es síntoma de gripe El cansancio es síntoma de hepatitis La diarrea es síntoma de intoxicación El cansancio es síntoma de gripe La aspirina suprime la fiebre El 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) Página 1

Transcript of Practica

Page 1: 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

Page 2: Practica

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

Page 3: Practica

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

Page 4: Practica

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

Page 5: Practica

ENTRENAMIENTO 3:

trainlgdm 2.793966 seg.

ENTRENAMIENTO 4:

trainlgda 2.284557 seg.

ENTRENAMIENTO 5:

trainlgdx 2.456878 seg

CONCLUSIONES:

Página 5

Page 6: Practica

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