Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/EjercitarServer
diff options
context:
space:
mode:
authorcecigg <caggsld@gmail.com>2014-07-19 19:16:10 (GMT)
committer cecigg <caggsld@gmail.com>2014-07-19 19:16:10 (GMT)
commit662c0c14b908bb126aa0483aefa9d018933e7a85 (patch)
treed887b6fe594a46b367d7486fc1c2dc5014607653 /EjercitarServer
parentb41bc8366c9206364e4a01cc489e269f285b7da4 (diff)
se corrigieron los calculos de probabilidades de temas y asignaturas.
se arreglo el estilo de las vistas
Diffstat (limited to 'EjercitarServer')
-rw-r--r--EjercitarServer/ejbModule/beans/AdministracionBean.java306
-rw-r--r--EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java3
-rw-r--r--EjercitarServer/ejbModule/beans/EjercitarWSBean.java57
-rw-r--r--EjercitarServer/ejbModule/beans/EjercitarWSRemote.java2
4 files changed, 200 insertions, 168 deletions
diff --git a/EjercitarServer/ejbModule/beans/AdministracionBean.java b/EjercitarServer/ejbModule/beans/AdministracionBean.java
index 8368297..a47f7a6 100644
--- a/EjercitarServer/ejbModule/beans/AdministracionBean.java
+++ b/EjercitarServer/ejbModule/beans/AdministracionBean.java
@@ -9,6 +9,7 @@ import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
import javax.servlet.http.Part;
import smile.Network;
@@ -59,18 +60,20 @@ public class AdministracionBean implements AdministracionBeanRemote{
//em.getTransaction().commit();
}
- private double [] calcularProbabilidadesCCI(Ejercicio ejercicio) {
+ public double [] calcularProbabilidadesCCI(Ejercicio ejercicio) {
// TODO Auto-generated method stub
- int dimension = (int) Math.pow(2, ejercicio.getConceptoList().size());
- double [] ejercicioDef = new double[dimension * 2];
+ Double dimension = Math.pow(2, ejercicio.getConceptoList().size());
+ double [] ejercicioDef = new double[dimension.intValue() * 2];
int j = 0;
int contador = 0;
double x = calcularXasterisco(ejercicio);
for(int i = 0; i < dimension; i++) {
- double multiplicador = 0 / (dimension - 1);
+ double multiplicador = i / (dimension - 1);
+ System.out.println("i: " + i + " /dimension: "+ dimension);
System.out.println("mult " + multiplicador);
- ejercicioDef[j] = funcionGx((multiplicador * x), dimension, ejercicio);
+ ejercicioDef[j] = funcionGx((multiplicador * x), dimension.intValue(), ejercicio);
+ System.out.println("funcionGx: " + ejercicioDef[j]);
j++;
ejercicioDef[j] = 1 - ejercicioDef[j-1];
j++;
@@ -158,11 +161,11 @@ public class AdministracionBean implements AdministracionBeanRemote{
// TODO Auto-generated method stub
String nombreRed = "red_asignatura_" + tema.getAsignatura().getIdAsignatura() + ".xdsl";
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
//cambiar formato nombre
String nom = sp.convertirEspacioToGuion(tema.getNombre());
net.deleteNode(nom);
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
public void agregarConcepto(Concepto concepto) {
@@ -199,7 +202,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
// = em.find(Ejercicio.class,idEjercicio);
}
- calcuarlarProbalidadesEval(ejercicios, idAsignatura);
+ calcularProbabilidadesCCI(ejercicios, idAsignatura);
}
@@ -220,7 +223,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
ejercicios.add(em.find(Ejercicio.class,idEjercicio));
}
- calcuarlarProbalidadesEval(ejercicios, concepto.getTema().getAsignatura().getIdAsignatura().toString());
+ calcularProbabilidadesCCI(ejercicios, concepto.getTema().getAsignatura().getIdAsignatura().toString());
em.remove(concepto);
@@ -234,12 +237,12 @@ public class AdministracionBean implements AdministracionBeanRemote{
String nombreRed = "red_asignatura_" + concepto.getTema().getAsignatura().getIdAsignatura() + ".xdsl";
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
//cambiar formato nodo
String nom = sp.convertirEspacioToGuion(concepto.getNombre());
net.deleteNode(nom);
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
@@ -252,7 +255,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
em.persist(asignatura);
Network net = new Network();
String nombreRed = "red_asignatura_" + asignatura.getIdAsignatura() + ".xdsl";
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}*/
@@ -268,14 +271,14 @@ public class AdministracionBean implements AdministracionBeanRemote{
// Calculo de las probabilidades condicionales de las relaciones de agregacion
String nombreRed = "red_asignatura_" + idAsignatura + ".xdsl";
- System.out.println("redes/" + nombreRed);
+ System.out.println("/home/redes/" + nombreRed);
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
String nomTem;
Asignatura asignatura = em.find(Asignatura.class, idAsignatura);
- List<Tema> temaList = (List<Tema>) em.createQuery("Select e from Tema e where e.profesor = :profesor and e.asignatura=:asignatura" )
- .setParameter("profesor", asignatura.getProfesor()).setParameter("asignatura", asignatura).getResultList();
+ List<Tema> temaList = (List<Tema>) em.createQuery("Select e from Tema e where e.profesor = :profesor and e.asignatura=:asignatura order by e.idTema" )
+ .setParameter("profesor", asignatura.getProfesor()).setParameter("asignatura", asignatura).getResultList() ;
for(Tema tema : temaList) {
double[] temaDef = calcularProbabilidadesTema(tema);
@@ -292,16 +295,18 @@ public class AdministracionBean implements AdministracionBeanRemote{
net.setNodeDefinition(nomTem, asignaturaDef);
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
private double[] calcularProbabilidadesAsignatura(Asignatura asignatura) {
int dimension = (int) Math.pow(2, asignatura.getTemaList().size());
double [] asignaturaDef = new double[dimension * 2];
+ System.out.println("DimensionAsignatura "+ dimension );
+
int j = 0;
for(int i = 0; i < dimension; i++) {
- asignaturaDef[j] = cpAsignatura(asignatura, i);
+ asignaturaDef[j] = 1 - cpAsignatura(asignatura, i);
j++;
asignaturaDef[j] = 1 - asignaturaDef[j-1];
j++;
@@ -320,102 +325,37 @@ public class AdministracionBean implements AdministracionBeanRemote{
while(comb.length() != dimension){
comb = "0" + comb;
}
- int k = dimension - 1;
+
double valTemp = 0;
List<Tema> temaList = em.createQuery("Select e from Tema e where e.asignatura = :asignatura")
.setParameter("asignatura", asignatura).getResultList();
System.out.println(temaList);
for (int j = 0; j < temaList.size(); j++) {
- if(comb.charAt(k) == '1') {
+ if(comb.charAt(j) == '1') {
valTemp = valTemp + temaList.get(j).getPeso();
}
- k--;
- }
+ }
return valTemp;
}
- private double [] calcularProbabilidadesEval(Ejercicio ejercicio) {
- //Calculo de las probabilidades condicionales
- int dimension = (int) Math.pow(2, ejercicio.getConceptoList().size());
- double [] ejercicioDef = new double[dimension * 2];
-
- int j = 0;
- for(int i = 0; i < dimension; i++) {
- ejercicioDef[j] = cp(ejercicio, i);
- j++;
- ejercicioDef[j] = 1 - ejercicioDef[j-1];
- j++;
-
- }
-
- return ejercicioDef;
- }
-
- private double cpTest(Ejercicio ejercicio, int i) {
-
- //ejercicio.getConceptoList().size()
-
- String comb = Integer.toBinaryString(i);
- while(comb.length() < ejercicio.getConceptoList().size()){
- comb = "0" + comb;
- System.out.println(comb);
- }
- int k = ejercicio.getConceptoList().size() - 1;
- double valTemp = 1;
- for (int j = 0; j < ejercicio.getConceptoList().size(); j++) {
- if(comb.charAt(k) == '0') {
- valTemp = valTemp * ejercicio.getConceptoList().get(j).getAdivinanza();
- } else {
- valTemp = valTemp * (1 -
- ejercicio.getConceptoList().get(j).getDescuido());
- }
-
- k--;
- }
-
- return valTemp;
-
- }
-
-
- private double cp(Ejercicio ejercicio, int i) {
-
- String comb = Integer.toBinaryString(i);
- while(comb.length() < ejercicio.getConceptoList().size()){
- comb = "0" + comb;
- System.out.println(comb);
- }
- int k = ejercicio.getConceptoList().size() - 1;
- double valTemp = 1;
- for (int j = 0; j < ejercicio.getConceptoList().size(); j++) {
- if(comb.charAt(k) == '0') {
- valTemp = valTemp * ejercicio.getConceptoList().get(j).getAdivinanza();
- } else {
- valTemp = valTemp * (1 -
- ejercicio.getConceptoList().get(j).getDescuido());
- }
-
- k--;
- }
-
- return valTemp;
-
- }
-
+
private double [] calcularProbabilidadesTema(Tema tema) {
//Calculo de las probabilidades condicionales
int dimension = (int) Math.pow(2, tema.getConceptoList().size());
+ System.out.println("dimension " + dimension);
double [] temaDef = new double[dimension * 2];
-
+ System.out.println("**************************************************************");
int j = 0;
for(int i = 0; i < dimension; i++) {
- temaDef[j] = cpTema(tema, i);
+ temaDef[j] = 1- cpTema(tema, i);
j++;
temaDef[j] = 1 - temaDef[j-1];
j++;
}
+ System.out.println("**************************************************************");
+
return temaDef;
}
@@ -426,13 +366,22 @@ public class AdministracionBean implements AdministracionBeanRemote{
while(comb.length() < tema.getConceptoList().size()){
comb = "0" + comb;
}
- int k = tema.getConceptoList().size() - 1;
+
+
double valTemp = 0;
for (int j = 0; j < tema.getConceptoList().size(); j++) {
- if(comb.charAt(k) == '1') {
+ System.out.println("--------------------------------------------------------");
+ System.out.println("j: " + j);
+
+ System.out.println("comb: " + comb);
+ if(comb.charAt(j) == '1') {
+
+ System.out.println("concepto: " + tema.getConceptoList().get(j));
+ System.out.println("peso: " + tema.getConceptoList().get(j).getPeso());
+ System.out.println("--------------------------------------------------------");
+
valTemp = valTemp + tema.getConceptoList().get(j).getPeso();
}
- k--;
}
return valTemp;
@@ -442,9 +391,9 @@ public class AdministracionBean implements AdministracionBeanRemote{
private void agregarEjercicioRed(Ejercicio ejercicio, int idAsignatura) {
//operaciones sobre la red bayesiana con smile
String nombreRed = "red_asignatura_" + idAsignatura + ".xdsl";
- System.out.println("redes/" + nombreRed);
+ System.out.println("/home/redes/" + nombreRed);
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
//agregar nodo ejercicio
String titulo = "E" + Integer.toString(ejercicio.getIdEjercicio());
@@ -464,15 +413,15 @@ public class AdministracionBean implements AdministracionBeanRemote{
double[] ejercicioDef = calcularProbabilidadesCCI(ejercicio);
net.setNodeDefinition(titulo, ejercicioDef);
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
private void agregarTemaRed(Tema tema) {
//operaciones sobre la red bayesiana con smile
String nombreRed = "red_asignatura_" + tema.getAsignatura().getIdAsignatura() + ".xdsl";
- System.out.println("redes/" + nombreRed);
+ System.out.println("/home/redes/" + nombreRed);
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
//agregar nodo ejercicio
@@ -488,16 +437,16 @@ public class AdministracionBean implements AdministracionBeanRemote{
net.addArc(titulo, sp.convertirEspacioToGuion(tema.getAsignatura().getNombre()));
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
private void agregarConceptoRed(Concepto concepto) {
//operaciones sobre la red bayesiana con smile
String nombreRed = "red_asignatura_" + concepto.getTema().getAsignatura().getIdAsignatura() + ".xdsl";
String titulo;
- System.out.println("redes/" + nombreRed);
+ System.out.println("/home/redes/" + nombreRed);
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
//agregar nodo concepto
//cambiar formato nodo
@@ -518,7 +467,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
conceptoDef[0] = 1 - conceptoDef[1];
//cambiar formato nodo
net.setNodeDefinition(titulo, conceptoDef);
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
@Override
@@ -536,21 +485,23 @@ public class AdministracionBean implements AdministracionBeanRemote{
}
@Override
- public void agregarAsignatura(Asignatura asignatura) {
- em.persist(asignatura);
+ public Asignatura agregarAsignatura(Asignatura asignatura) {
+
Network net = new Network();
String titulo = sp.convertirEspacioToGuion(asignatura.getNombre());
-
+ em.persist(asignatura);
////cambiar formato nodo
net.addNode(Network.NodeType.Cpt, titulo);
net.setOutcomeId(titulo, 0, "No_conoce");
net.setOutcomeId(titulo, 1, "Conoce");
String nombreRed = "red_asignatura_" + asignatura.getIdAsignatura() + ".xdsl";
- net.writeFile("redes/" + nombreRed);
+ System.out.println("/home/redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
+ System.out.println("iiiiid asignaturaaaaa " + asignatura.getIdAsignatura());
// TODO Auto-generated method stub
-
-
+
+ return asignatura;
}
@Override
@@ -559,7 +510,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
String nombreRed = "red_alumno_" + idAlumno + "_asignatura_" + idAsignatura + ".xdsl";
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
net.updateBeliefs();
//cambiar formato nodo
@@ -586,13 +537,13 @@ public class AdministracionBean implements AdministracionBeanRemote{
String nombreRed = "red_asignatura_" + idAsignatura + ".xdsl";
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
for (Alumno alumno : alumnoList) {
String nombreRedAlumno = "red_alumno_" + alumno.getIdAlumno() + "_asignatura_" + idAsignatura + ".xdsl";
- net.writeFile("redes/" + nombreRedAlumno);
+ net.writeFile("/home/redes/" + nombreRedAlumno);
}
@@ -609,7 +560,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
String nombreRed = "red_asignatura_" + tema.getAsignatura().getIdAsignatura() + ".xdsl";
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
String tituloNuevo = sp.convertirEspacioToGuion(tema.getNombre());
@@ -622,24 +573,24 @@ public class AdministracionBean implements AdministracionBeanRemote{
net.setNodeName(tituloNuevo, tituloNuevo);
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
- private void calcuarlarProbalidadesEval(List <Ejercicio>ejercicios, String idAsignatura){
+ private void calcularProbabilidadesCCI(List <Ejercicio>ejercicios, String idAsignatura){
String nombreRed = "red_asignatura_" + idAsignatura + ".xdsl";
- System.out.println("redes/" + nombreRed);
+ System.out.println("/home/redes/" + nombreRed);
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
for(Ejercicio ejercicio : ejercicios){
- double[] ejercicioDef = calcularProbabilidadesEval(ejercicio);
+ double[] ejercicioDef = calcularProbabilidadesCCI(ejercicio);
net.setNodeDefinition("E"+ejercicio.getIdEjercicio(), ejercicioDef);
}
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
@@ -648,9 +599,9 @@ public class AdministracionBean implements AdministracionBeanRemote{
//operaciones sobre la red bayesiana con smile
String nombreRed = "red_asignatura_" + concepto.getTema().getAsignatura().getIdAsignatura() + ".xdsl";
- System.out.println("redes/" + nombreRed);
+ System.out.println("/home/redes/" + nombreRed);
Network net = new Network();
- net.readFile("redes/" + nombreRed);
+ net.readFile("/home/redes/" + nombreRed);
//se modifica el nombre del concepto
String titulo = sp.convertirEspacioToGuion(concepto.getNombre());
@@ -673,7 +624,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
conceptoDef[0] = 1 - conceptoDef[1];
net.setNodeDefinition(titulo, conceptoDef);
- net.writeFile("redes/" + nombreRed);
+ net.writeFile("/home/redes/" + nombreRed);
}
@@ -681,6 +632,8 @@ public class AdministracionBean implements AdministracionBeanRemote{
Asignatura asignaturaPlantilla = em.find( Asignatura.class, idAsignaturaPlanitilla);
+
+ em.persist(asignatura);
Profesor profesor = asignatura.getProfesor();
//Asignatura asignatura = new Asignatura();
Concepto concepto;
@@ -688,7 +641,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
Ejercicio ejercicio;
Respuesta respuesta;
ArrayList <Respuesta> respuestaList = new ArrayList();
-
+ ArrayList <Concepto> conceptosList = new ArrayList();
//Cargar los temas a una asignatura
for(Tema temaPlantilla: asignaturaPlantilla.getTemaList()){
@@ -702,11 +655,11 @@ public class AdministracionBean implements AdministracionBeanRemote{
System.out.print("asignaturaaaaa " + asignatura.getIdAsignatura());
//persiste el tema y agrega a la red
- agregarTema(tema);
+ em.persist(tema);
System.out.println("tema: " + temaPlantilla.getNombre());
//crear conceptos
- for(Concepto conceptoPlantilla : tema.getConceptoList()){
+ for(Concepto conceptoPlantilla : temaPlantilla.getConceptoList()){
System.out.println("concepto " + conceptoPlantilla.getNombre());
concepto = new Concepto();
concepto.setAdivinanza(conceptoPlantilla.getAdivinanza());
@@ -717,41 +670,10 @@ public class AdministracionBean implements AdministracionBeanRemote{
concepto.setPeso(conceptoPlantilla.getPeso());
concepto.setProfesor(profesor);
concepto.setTema(tema);
-
- //persistir el concepto y agregar a la red
- agregarConcepto(concepto);
-
-
- //crear ejercicios
-
- for(Ejercicio ejercicioPlantilla : concepto.getEjercicioList()){
-
- ejercicio = new Ejercicio();
- ejercicio.setAdivinanza(ejercicioPlantilla.getAdivinanza());
- ejercicio.setEnunciado(ejercicioPlantilla.getEnunciado());
- ejercicio.setImagen(ejercicioPlantilla.getImagen());
- ejercicio.setNivelDificultad(ejercicioPlantilla.getNivelDificultad());
- ejercicio.setProfesor(profesor);
- ejercicio.setRespuesta(ejercicioPlantilla.getRespuesta());
-
-
- //crear Respuestas para ejercicios
- for(Respuesta respuestaPlantilla : ejercicio.getRespuestaList()){
-
- respuesta = new Respuesta();
- respuesta.setDescripcion(respuestaPlantilla.getDescripcion());
- respuestaList.add(respuesta);
-
- }
-
- ejercicio.setRespuestaList(respuestaList);
-
- //agregar ejercicio a la red
-
- agregarEjercicio(ejercicioPlantilla, asignatura.getIdAsignatura());
- ;
- }
+ //persistir el concepto y agregar a la red
+ em.persist(concepto);
+
@@ -759,10 +681,72 @@ public class AdministracionBean implements AdministracionBeanRemote{
+ }
+
+/* List<Concepto> conceptoList = new ArrayList();
+ String queryConceptosPlantillas = "select c from Concepto c join c.tema t where t.asignatura = :asignatura";
+ String queryEjercicios = "select e from Ejercicio e join e.conceptoList c where c in (:conceptos)";
+
+ String queryConceptos = "Select c from Concepto c where c.nombre = :nombre and c.descripcion = :descripcion and c.profesor = :profe order by c.idConcepto asc";
+ List<Concepto> conceptos = em.createQuery(queryConceptosPlantillas)
+ .setParameter("asignatura", asignaturaPlantilla).getResultList();
+
+ System.out.println("tamanooooo conceptos " + conceptos.size());
+
+ List<Ejercicio> ejercicios = em.createQuery(queryEjercicios)
+ .setParameter("conceptos", conceptos).getResultList();
+
+ System.out.println("tamanooooo " + ejercicios.size());
+
+ for (Ejercicio ejercicioPlantilla : ejercicios) {
+
+ ejercicio = new Ejercicio();
+ ejercicio.setAdivinanza(ejercicioPlantilla.getAdivinanza());
+ ejercicio.setEnunciado(ejercicioPlantilla.getEnunciado());
+ ejercicio.setImagen(ejercicioPlantilla.getImagen());
+ ejercicio.setNivelDificultad(ejercicioPlantilla
+ .getNivelDificultad());
+ ejercicio.setProfesor(profesor);
+ ejercicio.setRespuesta(ejercicioPlantilla.getRespuesta());
+
+ // ejercicio.setConceptoList(ejercicioPlantilla.getConceptoList());
+ // crear Respuestas para ejercicios
+ for (Concepto conceptoP : ejercicioPlantilla.getConceptoList()) {
+
+ Concepto nuev = (Concepto) em
+ .createQuery(queryConceptos)
+ .setParameter("nombre", conceptoP.getNombre())
+ .setParameter("descripcion", conceptoP.getDescripcion())
+ .setParameter("profe", profesor).setMaxResults(1)
+ .getSingleResult();
+
+ conceptoList.add(nuev);
+
+ }
+ for (Respuesta respuestaPlantilla : ejercicioPlantilla
+ .getRespuestaList()) {
+
+ respuesta = new Respuesta();
+ respuesta.setDescripcion(respuestaPlantilla.getDescripcion());
+
+ respuestaList.add(respuesta);
+
+ }
+ ejercicio.setConceptoList(conceptoList);
+ ejercicio.setRespuestaList(respuestaList);
+
+ // agregar ejercicio a la red
+
+ em.persist(ejercicio);
+ ;
+
+ }
+ */
}
- }
+
+
diff --git a/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java b/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java
index 8071ee7..47cfeef 100644
--- a/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java
+++ b/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java
@@ -22,7 +22,7 @@ public interface AdministracionBeanRemote {
public void agregarTema(Tema tema);
public void agregarProfesor(Profesor profesor);
public Profesor logIn(String usuario, String password);
- public void agregarAsignatura(Asignatura asignatura);
+ public Asignatura agregarAsignatura(Asignatura asignatura);
public void editarTema(Tema tema);
public void editarConcepto(Concepto concepto, String asignatura);
public void eliminarConcepto(int idConcepto);
@@ -40,7 +40,6 @@ public interface AdministracionBeanRemote {
public void copiarRedAsignatura(Integer idAsignaturaPlanitilla, Asignatura asignatura);
-
}
diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
index 1ddec16..b98f3cb 100644
--- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
+++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
@@ -6,6 +6,7 @@ import java.util.Date;
import java.util.List;
import java.util.Random;
+import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@@ -21,6 +22,7 @@ import javax.persistence.Query;
import smile.Network;
import model.Alumno;
+import model.Asignatura;
import model.Concepto;
import model.Curso;
import model.Ejercicio;
@@ -41,6 +43,8 @@ public class EjercitarWSBean implements EjercitarWSRemote {
EntityManager em;
+ @EJB
+ AdministracionBean admin;
/**
* Default constructor.
@@ -132,7 +136,7 @@ public class EjercitarWSBean implements EjercitarWSRemote {
Network net1 = new Network();
String nombreRed = "red_alumno_" + alumno.getIdAlumno() + "_asignatura_" + idAsignatura + ".xdsl";
- net1.readFile("redes/" + nombreRed);
+ net1.readFile("/home/redes/" + nombreRed);
net1.updateBeliefs();
String nombreEjercicio = "E" + idEjercicio;
System.out.println("proba d");
@@ -154,7 +158,7 @@ public class EjercitarWSBean implements EjercitarWSRemote {
net1.clearEvidence(nombreEjercicio);
net1.updateBeliefs();
- net1.writeFile("redes/" + nombreRed);
+ net1.writeFile("/home/redes/" + nombreRed);
}
@WebMethod
@@ -178,18 +182,20 @@ public class EjercitarWSBean implements EjercitarWSRemote {
private Ejercicio seleccionUtilidadMax(Tarea tarea, Alumno alumno) {
-
+ try{
List<Concepto> conceptoList = em.createQuery("Select c from Concepto c inner join c.tareaList t where t = :tarea").setParameter("tarea", tarea).getResultList();
// inicializacion
double utilidadMax = 0;
Ejercicio ejercicio = null;
+
for (Concepto concepto : conceptoList) {
Network net1 = new Network();
String nombreRed = "red_alumno_" + alumno.getIdAlumno() + "_asignatura_" + tarea.getAsignatura().getIdAsignatura() +".xdsl";
- System.out.println("redes/" + nombreRed);
- net1.readFile("redes/" + nombreRed);
+ System.out.println("seleccionUtilidadMax - /home/redes/" + nombreRed);
+
+ net1.readFile("/home/redes/" + nombreRed);
net1.updateBeliefs();
String nombreConcepto = concepto.getNombre();
double [] values = net1.getNodeValue(nombreConcepto);
@@ -226,6 +232,10 @@ public class EjercitarWSBean implements EjercitarWSRemote {
}
}
return ejercicio;
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ return null;
}
@WebMethod
@@ -365,5 +375,42 @@ public class EjercitarWSBean implements EjercitarWSRemote {
}
+ @WebMethod
+ public void corregirProbabilidadesEjercicios() {
+
+
+ Asignatura asignatura = em.find(Asignatura.class, 3);
+
+ System.out.println(asignatura.getNombre());
+ List<Tema> temas = (List<Tema>) em.createQuery("select t from Tema t where t.asignatura = :asignatura").setParameter("asignatura", asignatura).getResultList();
+ System.out.println("tema " + temas.size());
+
+ List<Concepto> conceptos = (List<Concepto>) em.createQuery("select c from Concepto c where c.tema in :temas").setParameter("temas", temas).getResultList();
+
+ System.out.println("conceptos " + conceptos.size() );
+ Network net = new Network();
+
+ net.readFile("/home/redes/red_asignatura_3.xdsl");
+
+ System.out.println("########## leido #############");
+
+ for(Concepto concepto : conceptos){
+
+ for(Ejercicio ejercicio : concepto.getEjercicioList()){
+
+ String titulo = "E" + Integer.toString(ejercicio.getIdEjercicio());
+
+ System.out.println(titulo);
+
+ double[] ejercicioDef = admin.calcularProbabilidadesCCI(ejercicio);
+ net.setNodeDefinition(titulo, ejercicioDef);
+ }
+
+ }
+ net.writeFile("/home/redes/red_asignatura_3.xdsl");
+
+
+}
+
}
diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java b/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
index 6cfbfe4..f7c8c95 100644
--- a/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
+++ b/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
@@ -34,6 +34,8 @@ public interface EjercitarWSRemote {
public String obtenerCantidadEjercicioTarea(Integer idAlumno, Integer idTarea);
public void terminarTarea(Integer idSesion);
+
+ public void corregirProbabilidadesEjercicios();
} \ No newline at end of file