diff options
author | cecigg <caggsld@gmail.com> | 2013-11-13 11:57:43 (GMT) |
---|---|---|
committer | cecigg <caggsld@gmail.com> | 2013-11-13 11:57:43 (GMT) |
commit | 8c7ee8f64054a37bc45595cd4a115d38bed56b78 (patch) | |
tree | 44723ae092457fd66970a6250d84041b25bee0c7 /EjercitarServer | |
parent | 06884e521a51b251c640ac1d671cd185c187e1c5 (diff) | |
parent | f1719a4a739965ca9ac73cd6bb36a0438835b35e (diff) |
Merge remote-tracking branch 'remotes/origin/samu' into Cecilia
Diffstat (limited to 'EjercitarServer')
-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 59d2a81..0864b15 100644 --- a/EjercitarServer/ejbModule/beans/AdministracionBean.java +++ b/EjercitarServer/ejbModule/beans/AdministracionBean.java @@ -53,11 +53,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); @@ -391,7 +457,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); |