Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamu <samurey@gmail.com>2013-11-13 08:32:30 (GMT)
committer Samu <samurey@gmail.com>2013-11-13 08:32:30 (GMT)
commitf1719a4a739965ca9ac73cd6bb36a0438835b35e (patch)
tree90d0fa46c63287aec8719123a72f7e409a07eff8
parent7b12a8598a2b6f492f6e586cd480bf225cbbebcc (diff)
no se que hay de nuevo
-rw-r--r--EjercitarServer/ejbModule/beans/AdministracionBean.java72
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);