diff options
author | Samu <samurey@gmail.com> | 2013-11-13 08:32:30 (GMT) |
---|---|---|
committer | Samu <samurey@gmail.com> | 2013-11-13 08:32:30 (GMT) |
commit | f1719a4a739965ca9ac73cd6bb36a0438835b35e (patch) | |
tree | 90d0fa46c63287aec8719123a72f7e409a07eff8 | |
parent | 7b12a8598a2b6f492f6e586cd480bf225cbbebcc (diff) |
no se que hay de nuevo
-rw-r--r-- | EjercitarServer/ejbModule/beans/AdministracionBean.java | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/EjercitarServer/ejbModule/beans/AdministracionBean.java b/EjercitarServer/ejbModule/beans/AdministracionBean.java index 728decb..3376bda 100644 --- a/EjercitarServer/ejbModule/beans/AdministracionBean.java +++ b/EjercitarServer/ejbModule/beans/AdministracionBean.java @@ -51,11 +51,77 @@ public class AdministracionBean implements AdministracionBeanRemote{ // em.getTransaction().begin(); em.persist(ejercicio); - agregarEjercicioRed(ejercicio, idAsignatura); + agregarEjercicioRed(ejercicio, idAsignatura); //em.getTransaction().commit(); } - public void agregarTema(Tema tema) { + private double [] calcularProbabilidadesCCI(Ejercicio ejercicio) { + // TODO Auto-generated method stub + int dimension = (int) Math.pow(2, ejercicio.getConceptoList().size()); + double [] ejercicioDef = new double[dimension * 2]; + + int j = 0; + int contador = 0; + double x = calcularXasterisco(ejercicio); + for(int i = 0; i < dimension; i++) { + double multiplicador = 0 / (dimension - 1); + System.out.println("mult " + multiplicador); + ejercicioDef[j] = funcionGx((multiplicador * x), dimension, ejercicio); + j++; + ejercicioDef[j] = 1 - ejercicioDef[j-1]; + j++; + contador++; + + } + + return ejercicioDef; + } + + + private double calcularXasterisco(Ejercicio ejercicio) { + // TODO Auto-generated method stub + //indice de discriminacion + double a = 1; + + //b = nivel de dificultad + double b = ejercicio.getNivelDificultad(); + + //c = 1/n + double c = 1 / ejercicio.getConceptoList().size(); + + //s = adivinanza + double s = ejercicio.getAdivinanza(); + + double k = ((1 - c) * (1 + Math.exp(-1.7 * a * b)))/s - 1; + + double x = (Math.log(k) + (1.7 * a * b)) / (1.7 * a); + + return x; + + } + + private double funcionGx(double x, int dimension, Ejercicio ejercicio){ + //G(X) = 1- ( (1-c)(1+exp(-1.7ab)) ) / ( 1+exp(1.7a(x-b)) ) + + //indice de discriminacion + double a = 1; + + //b = nivel de dificultad + double b = ejercicio.getNivelDificultad(); + + //c = 1/n + double c = 1 / ejercicio.getConceptoList().size(); + + double numerador = (1 - c) * (1 + Math.exp(-1.7 * a * b)); + + double denominador = 1 + Math.exp(1.7 * a * (x - b)); + + double gX = 1 - (numerador / denominador); + + return gX; + } + + public void agregarTema(Tema tema) { em.persist(tema); agregarTemaRed(tema); @@ -376,7 +442,7 @@ public class AdministracionBean implements AdministracionBeanRemote{ } //definir probabilidades condicionales - double[] ejercicioDef = calcularProbabilidadesEval(ejercicio); + double[] ejercicioDef = calcularProbabilidadesCCI(ejercicio); net.setNodeDefinition(titulo, ejercicioDef); net.writeFile("redes/" + nombreRed); |