Aparte de eso acabo de subir una nueva versión de la librería PHPRFC (que permite hacer llamadas a funciones PHP alojadas en el servidor web desde Javascript utilizando AJAX). Esta nueva versión utiliza el objeto ActiveX "Msxml2.XMLHTTP" en el caso de que estemos usando las últimas versiones de Internet Explorer y ya funciona perfectamente al enviar caracteres españoles (Latin 1) en la respuesta XML (antes fallaba en algunas versiones de Internet Explorer)... como siempre el IE tocando los webos ;-).
Ya estamos utilizando PHPRFC en un proyecto de la empresa y por ahora va muy bien :-). Sección "soft".
[ añadir comentario ] ( 2201 visualizaciones ) | [ 0 trackbacks ] | enlace permanente | ( 3 / 2505 )
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 ] ( 2483 visualizaciones ) | [ 0 trackbacks ] | enlace permanente | ( 3 / 1877 )
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 ] ( 2452 visualizaciones ) | [ 0 trackbacks ] | enlace permanente | ( 3 / 1890 )
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 ] ( 1894 visualizaciones ) | [ 0 trackbacks ] | enlace permanente | ( 3 / 1895 )
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 ] ( 1877 visualizaciones ) | [ 0 trackbacks ] | enlace permanente | ( 3 / 2127 )