diff options
author | cecigg <caggsld@gmail.com> | 2014-07-19 19:16:10 (GMT) |
---|---|---|
committer | cecigg <caggsld@gmail.com> | 2014-07-19 19:16:10 (GMT) |
commit | 662c0c14b908bb126aa0483aefa9d018933e7a85 (patch) | |
tree | d887b6fe594a46b367d7486fc1c2dc5014607653 /EjercitarServer | |
parent | b41bc8366c9206364e4a01cc489e269f285b7da4 (diff) |
se corrigieron los calculos de probabilidades de temas y asignaturas.
se arreglo el estilo de las vistas
Diffstat (limited to 'EjercitarServer')
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 |