Más lógica borrosa en PHP 
He liberado una nueva versión de la librería de lógica borrosa en PHP. Esta nueva versión incluye una clase InferenciadorBorroso que permite aplicar de forma sencilla la librería y también he añadido una simulación de ejemplo (ayudándome de la librería jsGraphics de Walter Zorn) que aplica la lógica borrosa para controlar la posición de una masa en un plano sin rozamiento.

include("logica_borrosa.php")

$pos_muy_izquierda =& new ConjuntoBorroso("MUY_IZQ", -10, -10, 0, 2.5);
$pos_izquierda =& new ConjuntoBorroso("IZQ", 0, 2.5, 2.5, 5);

... RESTO DE CONJUNTOS ...

$conjuntos = array("MUY_IZQ" => $pos_muy_izquierda, "IZQ" => $pos_izquierda, "CENTRO" => $pos_centro, "DER" => $pos_derecha, "MUY_DER" => $pos_muy_derecha, "V_ATRAS" => $vel_atras, "V_NULA" => $vel_nula, "V_ADELANTE" => $vel_adelante, "F_MUY_NEG" => $fuerza_muy_negativa, "F_NEG" => $fuerza_negativa, "F_NULA" => $fuerza_nula, "F_POS" => $fuerza_positiva, "F_MUY_POS" => $fuerza_muy_positiva);

$variablesEntrada = array("P" => 0, "V" => 0);
$variablesSalida = array("F" => 0);


...
$inf =& new InferenciadorBorroso();
$inf->ponerConjuntos($conjuntos);
$inf->ponerVariablesEntrada($variablesEntrada);
$inf->ponerVariablesSalida($variablesSalida);

$inf->aniadirRegla("(P == CENTRO) & (V == V_NULA)", "F == F_NULA");
$inf->aniadirRegla("(P == CENTRO) & (V == V_ATRAS)", "F == F_POS");
$inf->aniadirRegla("(P == CENTRO) & (V == V_ADELANTE)", "F == F_NEG");

... RESTO DE REGLAS ...

Para calcular la fuerza necesaria utilizando el inferenciador borroso:

$inf->variablesEntrada["P"] = $estado->posicion;
$inf->variablesEntrada["V"] = $estado->velocidad;
$inf->iterar();
$fuerza = $inf->salida["F"];



Como se ve, es muy sencillo utilizar la librería :-). Sección "soft".

[ añadir comentario ] ( 1056 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 819 )
La mala suerte nos persigue 
Y es que, desde que en enero entramos Mari y yo a vivir en el piso que tenemos alquilado en Las Palmas hemos ido de un susto a otro y tiro porque me toca. Al principio fue toda la fontanería de la casa incluyendo los bajantes, hace dos semanas fue la nevera la que dijo hasta aquí y hace un rato hemos visto cómo el calentador eléctrico de agua dice su último adiós... Menos mal que hasta ahora Resurrección, la dueña del piso, ha reaccionado bien, y no se ha tomado las cosas a mal. Creo que buscaré a alguien que coloque el termo eléctrico, me da que pagar a un fontanero es una sajada que te cagas para algo tan sencillo... en fin. Ya les contaré mis visicitudes con el termo. Deséenme suerte.

De resto muy bien, hoy hemos llegado de pasar el fin de semana en el sur (en San Agustín) y la verdad es que cuesta pensar que mañana hay que levantarse a las 8 pa levantar España; qué le vamos a hacer: La vida es así :-).

[ añadir comentario ] ( 666 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 882 )
Lógica borrosa y PHP 
En la sección "soft" he subido una pequeña librería para PHP que permite implementar lógica borrosa en nuestros scripts PHP. La he desarrollado porque la vamos a utilizar en un proyecto de la empresa para toma de decisiones.

Está licenciada GPL y aún es una versión bastante verde; hay que hacerle muchas pruebas y seguramente sufrirá cambios. Espero que le sirva de algo a alguien aparte de a mi :-).

[ 5 comentarios ] ( 1415 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 843 )
Dibujar desde Javascript 
Me acabo de quedar alucinado viendo una librería que se han currado los de http://www.walterzorn.com. La librería te permite dibujar desde código Javascript directamente en la página web: líneas, elipses, polígonos, texto con diferentes estilos, etc... y todo utilizando una API sencilla que recuerda mucho a la clase Graphics de Java (drawLine, fillRect, setColor, etc).

Pásate por http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm. Está que se sale 8-)

[ añadir comentario ] ( 915 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3.1 / 886 )
Vocoder 
En la sección "soft" he añadido un vocoder en C. Utiliza filtros de estado variable discretos para implementar los filtros paso banda y una simplificación de la transformada de Hilbert discreta para implementar los seguidores de envolvente.

Junto al enlace para bajar el código fuente del vocoder he puesto un ejemplo: dos señales, una portadora con un acorde de violines y una moduladora con una voz, y el resultado de aplicar el vocoder a estas dos señales. Mejor lo oyes y te haces una idea :-)

El código fuente del vocoder es GPL (¡cómo no! :-).

[ añadir comentario ] ( 807 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 991 )

<< <Anterior | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | Siguiente> >>