Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Apellidos/Nombres/Código:_________________________________________________________________
RESOLUCIÓN: Tomando en cuenta una propuesta de solución se empiezan a considerar soluciones paso a paso
hasta llegar a la solución esperada, para esto tendrá que aplicar todo el conocimiento que hasta ahora a logrado.
Primero entendiendo el problema se tiene ideas diferentes: nombre del profesor, asignatura, día; además existen
relaciones entre estos considerando tres relaciones:
Relación 1: r1 nombre con asignatura
Relación 2: r2 nombre con día
Relación 3: r3 asignatura con día
Así que se propone (copiar):
Domains
nombre,asignatura,dia_e =symbol
Predicates
prof(nombre)
asig(asignatura)
dia(dia_e)
r1(nombre,asignatura)
r2(nombre,dia_e)
r3(asignatura,dia_e)
Clauses
/*---- BASE DE CONOCIMIENTOS ----*/
/*- PROPIEDADES -*/
/* prof(Profesor) <- Profesor es el nombre de un profesor */
prof("maria").
prof("jesus").
prof("faraon").
/* asig(Asignatura) <- Asignatura es el nombre de una asignatura */
asig("logica").
asig("programacion").
asig("matematicas").
/* dia(Dia) <- Dia es un dia de la semana que hay alguna clase */
dia("lunes").
dia("miercoles").
dia("jueves").
Resultado Final
Goal r1(N,A),r2(N,D),r3(A,D).
Resultado de la Ejecución(Copie abajo): Como debería ser las relaciones:
N=maria, A=programacion, D=jueves
N=jesus, A=matematicas, D=lunes
N=faraon, A=logica, D=miércoles
3 Solutions
13 Solutions
PARTE 3: Mejorando las relaciones.
Como se ha visto las relaciones no llegan a satisfacer los resultados esperados, entonces hay que mejorar las
relaciones especificadas en las cláusulas.
Análisis de la Relación 1:
Como se ah visto las relaciones:
r1("maria","programacion").
r1(Profesor,Asignatura):-prof(Profesor),Profesor<>"maria",asig(Asignatura).
No cumplen con el objetivo buscado, tienen dos relaciones por demás
N=jesus, A=programacion
N=faraon, A=programacion
Son por demás por que Maria enseña programación y ni Jesús ni faraón podrían enseñar estas asignaturas
r1("maria","programacion"). %Maria enseña programación
Análisis de Lo que sucede
N=maria, A=programación
¿Dónde esta el problema?
r1(Profesor,Asignatura):-prof(Profesor),Profesor<>"maria",asig(Asignatura).
Análisis de Lo que sucede Resulto final logrado(combinación final):
prof(Profesor) ,Profesor<>"maria" asig(Asignatura) prof(Profesor),Profesor<>"maria",asig(Asignatura).
N=Jesús, A= programacion N=jesus, A=logica
N=faraon, A=logica N=jesus, A=programación (error)
A=matemáticas N=jesus, A=matematicas
(no debería N=faraon, A=logica
existir N=faraon, A=programación (error)
programación) N=faraon, A=matemáticas
¿Cómo eliminar la condicional?
El curso que enseña María no debería aparecer en las asignaturas, por lo que utilizando la búsqueda(Recursiva):
r1("maria",AsignaturaM),=> AsignaturaM=Programacion lo que hace que AsignaturaM<>Asignatura =>
Programacion <>Programacion
Análisis de Lo que sucede Resulto final logrado(combinación final):
prof(Profesor) asig(Asignatura) prof(Profesor),Profesor<>"maria",asig(Asignatura).
,Profesor<>"maria" r1("maria",AsignaturaM),
AsignaturaM<>Asignatura
N=Jesús, A=logica N=jesus, A=logica
N=faraon, A=matemáticas N=jesus, A=matematicas
N=faraon, A=logica
N=faraon, A=matemáticas
Según la nueva solución:
La nueva relación será: (Copie abajo): Resultado Esperado Goal r1(N,A). :
r1("maria","programacion"). N=maria, A=programacion
r1(Profesor,Asignatura) :- N=jesus, A=logica
prof(Profesor), N=jesus, A=matematicas
Profesor<>"maria",asig(Asignatura), N=faraon, A=logica
r1("maria",AsignaturaM),AsignaturaM<>Asignatura. N=faraon, A=matematicas
5 Solutions
Análisis de la Relación 2:
La segunda relación no presenta problemas devuelve el resultado esperado
r2("faraon",Dia) :- dia(Dia), Dia<>"lunes".
Análisis de Lo que sucede
N=faraon, D=miércoles
N=faraon, D=jueves (faraón solo puede enseñar miércoles y jueves)
r2(Profesor,Dia) :- prof(Profesor), Profesor<>"faraon",dia(Dia).
Análisis de Lo que sucede Resulto final logrado(combinación final):
prof(Profesor), Profesor<>"faraon" dia(Dia). prof(Profesor),Profesor<>"maria",asig(Asignatura).
N=___________ D=_________ N=maria, D=lunes
N=___________ D=__________ N=maria, D=miercoles
D=__________ N=maria, D=jueves (María enseña cualquier día)
N=jesus, D=lunes
N=jesus, D=miercoles
N=jesus, D=jueves (Jesus enseña cualquier día)
Análisis de la Relación 3:
Como se ah visto las relaciones:
r3("logica",Dia) :- dia(Dia), Dia<>"lunes", Dia<>"jueves".
r3("programacion",Dia) :- dia(Dia), Dia<>"lunes". %Programación no es el lunes
r3(Asignatura,Dia) :- asig(Asignatura), Asignatura<>"logica",Asignatura<>"programacion", dia(Dia).
No cumplen con el objetivo buscado, tienen varias relaciones por demás
A=programacion, D=miércoles (error) Lógica se supone que es el miércoles
A=matematicas, D=miércoles (error) Lógica se supone que es el miércoles
A=matematicas, D=jueves (error) Programación es después de lógica ósea el jueves
r3 3 Solutions
Consulta:
¿En que tiempo promedio logro entender el problema y resolverlo?:__________horas___________minutos.