[puntonet] evaluar funcion
Hola lista Quiero hacer un metodo que evalue una funcion tan compleja como sea Seria algo como ((z+1)*10)/(30*y) donde z,y son valores aleatorios y la funcion tan compleja como sea... Alguien tiene idea??? Slds alejandro Verificado por AVG. Versión: 7.5.467 / Base de datos de virus: 269.5.9/1154 - Fecha de la versión: 27/11/2007 11:40 a.m. slds alejandro -- Correo analizado por AVG 7.5 no se detecto ningun programa dañino. Verificado por AVG. Versión: 7.5.467 / Base de datos de virus: 269.5.9/1154 - Fecha de la versión: 27/11/2007 11:40 a.m.
[puntonet] evaluar funcion
Alguien tiene idea de que ? No quedó muy claro que estás necesitando. - Si necesitas representar una función como esa a un lenguaje como c# o VB.Net, deberías indagar System.Math. - Si vos queres que de 1 string como este: "((z+1)*10)/(30*y)" se transforme en una evaluación... me parece que estás necesitando algo mcho más complejo. Necesitarías tener conceptos como: pasar de una expresion infija (string en cuestion) a postfija. A partir de la expresion postfija, realizar la evaluación de los nodos (operadores y operandos). Podrías también armar el arbol de expresion y lo vas resolviendo naturalmente, el problema es armar el arbol. - También podrías resolverlo por medio de un poco de juegos con el compilar usango compilación dinámica via CodeDom. Facil y funciona. No sé que estás necesitando... contanos más...sino no podemos saber. Saludos ! On Nov 30, 2007 11:07 PM, <[EMAIL PROTECTED]> wrote: > Hola lista > > Quiero hacer un metodo que evalue una funcion tan compleja como sea > > Seria algo como ((z+1)*10)/(30*y) donde z,y son valores aleatorios y la > funcion tan compleja como sea... > > Alguien tiene idea??? > -- Dario Quintana http://darioquintana.com.ar/blogging
[puntonet] evaluar funcion
Perdon si la pregunta sonó fea... no es con mala intención, me dí cuenta despues que escribí, mejor me voy a dormir... Saludos y segun nos comentes un poco más...podremos ayudarte. On Dec 1, 2007 2:14 AM, Dario Quintana <[EMAIL PROTECTED]> wrote: > Alguien tiene idea de que ? No quedó muy claro que estás necesitando. > -- Dario Quintana http://darioquintana.com.ar
[puntonet] evaluar funcion
Bueno Dario, me explico: El tema es que estoy haciendo un programa que se basa en los algoritmos geneticos los cuales tienen una funcion de adaptación, que esta funcion es la que dicta si el problema a resolver te genera soluciones factibles a medida que pasan las generaciones. Es decir genero soluciones a partir de evaluar una funcion tecleada por el usuario en tiempo de ejecución parecida a la de abajo o mas compleja... No se si me explico bien en concreto un metodo que evalue una funcion Se me ocurria pasarle cantidad de variables y valor de la variable en un arreglo y definir los operandos y operadores pero en realidad Programado asi en bruto es bastante complejo y puede ser que falle en algun momento Bsucaba si habia funciones en visual Studio que aliviaran este problema... Slds alejandro _ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Dario Quintana Enviado el: Sábado, 01 de Diciembre de 2007 12:14 a.m. Para: puntonet@mug.org.ar Asunto: [puntonet] evaluar funcion Alguien tiene idea de que ? No quedó muy claro que estás necesitando. - Si necesitas representar una función como esa a un lenguaje como c# o VB.Net, deberías indagar System.Math. - Si vos queres que de 1 string como este: " ((z+1)*10)/(30*y)" se transforme en una evaluación... me parece que estás necesitando algo mcho más complejo. Necesitarías tener conceptos como: pasar de una expresion infija (string en cuestion) a postfija. A partir de la expresion postfija, realizar la evaluación de los nodos (operadores y operandos). Podrías también armar el arbol de expresion y lo vas resolviendo naturalmente, el problema es armar el arbol. - También podrías resolverlo por medio de un poco de juegos con el compilar usango compilación dinámica via CodeDom. Facil y funciona. No sé que estás necesitando... contanos más...sino no podemos saber. Saludos ! On Nov 30, 2007 11:07 PM, mailto:[EMAIL PROTECTED]"[EMAIL PROTECTED]> wrote: Hola lista Quiero hacer un metodo que evalue una funcion tan compleja como sea Seria algo como ((z+1)*10)/(30*y) donde z,y son valores aleatorios y la funcion tan compleja como sea... Alguien tiene idea??? -- Dario Quintana HYPERLINK "http://darioquintana.com.ar/blogging"http://darioquintana.com.ar/blogging Verificado por AVG. Versión: 7.5.467 / Base de datos de virus: 269.5.9/1154 - Fecha de la versión: 27/11/2007 11:40 a.m. slds alejandro -- Correo analizado por AVG 7.5 no se detecto ningun programa dañino. Verificado por AVG. Versión: 7.5.467 / Base de datos de virus: 269.5.9/1154 - Fecha de la versión: 27/11/2007 11:40 a.m.
[puntonet] evaluar funcion
No hay problema Esta lista no es para ponernos bravos, sino para resolver problemas con la inteligencia comun de todos..ese es el fuerte de las listas Por mi parte no hay problema Slds alejandro _ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Dario Quintana Enviado el: Sábado, 01 de Diciembre de 2007 12:20 a.m. Para: puntonet@mug.org.ar Asunto: [puntonet] evaluar funcion Perdon si la pregunta sonó fea... no es con mala intención, me dí cuenta despues que escribí, mejor me voy a dormir... Saludos y segun nos comentes un poco más...podremos ayudarte. On Dec 1, 2007 2:14 AM, Dario Quintana < HYPERLINK "mailto:[EMAIL PROTECTED]"[EMAIL PROTECTED]> wrote: Alguien tiene idea de que ? No quedó muy claro que estás necesitando. -- Dario Quintana HYPERLINK "http://darioquintana.com.ar"http://darioquintana.com.ar Verificado por AVG. Versión: 7.5.467 / Base de datos de virus: 269.5.9/1154 - Fecha de la versión: 27/11/2007 11:40 a.m. slds alejandro -- Correo analizado por AVG 7.5 no se detecto ningun programa dañino. Verificado por AVG. Versión: 7.5.467 / Base de datos de virus: 269.5.9/1154 - Fecha de la versión: 27/11/2007 11:40 a.m.
[puntonet] evaluar funcion
Fijate si esto te puede servir... http://www.odetocode.com/Code/80.aspx Tuve que usarlo tiempo atras y me dio resultado... SAludos. Dario Quintana <[EMAIL PROTECTED]> wrote: Perdon si la pregunta sonó fea... no es con mala intención, me dí cuenta despues que escribí, mejor me voy a dormir... Saludos y segun nos comentes un poco más...podremos ayudarte. On Dec 1, 2007 2:14 AM, Dario Quintana < [EMAIL PROTECTED]> wrote: Alguien tiene idea de que ? No quedó muy claro que estás necesitando. -- Dario Quintana http://darioquintana.com.ar - Be a better sports nut! Let your teams follow you with Yahoo Mobile. Try it now.
[puntonet] evaluar funcion
Ah !! Algoritmos Genéticos... me encanta ! Ok, entonces supongo que tu método es una Fitness Function (Funcion de aptitud), entonces por lo general, no va a variar. Ahora si estamos hablando. Por lo tanto con hacerla fija, y por medio de C# debería bastarte. http://msdn2.microsoft.com/en-us/library/system.math(VS.71).aspx Pegale una mirada a eso, si me estoy equivocando corregime y la seguimos. Y si le estoy errando, seguramente te va a convenir el approach de Alan, para hacer la evaluación dinámica. No veo el enlace por problemas con el ISP (rrre lento está el enlace), pero me imagino que es eso. Saludos On Dec 1, 2007 2:24 AM, <[EMAIL PROTECTED]> wrote: > Bueno Dario, me explico: > > > > El tema es que estoy haciendo un programa que se basa en los algoritmos > geneticos los cuales tienen una funcion de adaptación, > > que esta funcion es la que dicta si el problema a resolver te genera > soluciones factibles a medida que pasan las generaciones. > > > > Es decir genero soluciones a partir de evaluar una funcion tecleada por > el usuario en tiempo de ejecución parecida a la de abajo o mas compleja… > > > > > > No se si me explico bien en concreto un metodo que evalue una funcion…. > > > > Se me ocurria pasarle cantidad de variables y valor de la variable en un > arreglo y definir los operandos y operadores pero en realidad > > Programado asi en bruto es bastante complejo y puede ser que falle en > algun momento…. > > > > Bsucaba si habia funciones en visual Studio que aliviaran este problema… > > > > Slds > > alejandro > -- Dario Quintana http://darioquintana.com.ar/blogging
[puntonet] evaluar funcion
Hola gente! Hace poco creo hubo una pregunta parecida, no se si envie estos enlaces, donde esta tambien el mencionado por Alan, (jeje ya va siendo tiempo de publicar AjBasic con un ejemplo de este tipo): (seria interesante tambien plantear el tema de algoritmo genetico en una grid pero eso es otro tema ver algo en http://msmvps.com/blogs/lopez/archive/2007/11/15/programando-para-una-grid.aspx http://msmvps.com/blogs/lopez/archive/2007/11/21/m-225-s-programando-para-una-grid.aspx ) Build a Custom .NET "EVAL" Provider http://www.eggheadcafe.com/articles/20030908.asp http://www.codeproject.com/csharp/runtime_eval.asp http://www.codeproject.com/csharp/csi.asp Runtime Compilation (A .NET eval statement) http://www.codeproject.com/dotnet/evaluator.asp An Eval Function for C# using JScript.NET (JavaScript) http://www.odetocode.com/Code/80.aspx Evaluate C# Code (Eval Function) http://www.codeproject.com/csharp/evalcscode.asp The expression evaluator revisited (Eval function in 100% managed .net) http://www.codeproject.com/useritems/eval3.asp Evaluating Mathematical Expressions by Compiling C# Code at Runtime http://www.codeproject.com/cs/algorithms/matheval.asp A Simple Compiler for the Common Language Runtime http://www.codeproject.com/cs/algorithms/compiler.asp Nos leemos! Angel "Java" Lopez http://www.ajlopez.com/ - Original Message - From: Alan Lavintman To: puntonet@mug.org.ar Sent: Saturday, December 01, 2007 6:22 AM Subject: [puntonet] evaluar funcion Fijate si esto te puede servir... http://www.odetocode.com/Code/80.aspx Tuve que usarlo tiempo atras y me dio resultado... SAludos. Dario Quintana <[EMAIL PROTECTED]> wrote: Perdon si la pregunta sonó fea... no es con mala intención, me dí cuenta despues que escribí, mejor me voy a dormir... Saludos y segun nos comentes un poco más...podremos ayudarte. On Dec 1, 2007 2:14 AM, Dario Quintana < [EMAIL PROTECTED]> wrote: Alguien tiene idea de que ? No quedó muy claro que estás necesitando. -- Dario Quintana http://darioquintana.com.ar -- Be a better sports nut! Let your teams follow you with Yahoo Mobile. Try it now.
[puntonet] evaluar funcion
Hola a todos, hola estimado Maestro Hace algun tiempo quise encontrar un equivalente a la funcion ExecScript(string) de nuestro nunca bien ponderado VisualFoxPro, donde un ExecScript("SELECT ... FROM...") compila on-the-fly y ejecuta actualmente la sentencia como si esta estuviese presente en ese lugar. Más aún, el runtime de Fox podía ejecutar el comando COMPILE, para ir autogenerando bloques de codigo enteros. Esta funcionalidad, por ejemplo, permitía compilar páginas web con scripting en lenguaje Fox, de hecho, uno de los mecanismos de WebConnection está basado en esta posibilidad. Otros lenguajes como Perl tambien tienen una implementacion notablemente parecida a la de Fox. En .NET parece ser que el problema está, al menos en parte, en lo fuertemente tipado del entorno de ejecución y en el mecanismo del CLR, con lo cual aparentemente es altamente complicado lograr esta funcionalidad en runtime. Por ejemplo, nosotros necesitábamos cargar en un string algo asi como "Dim obj AS "+ cTipoClase y luego ejecutarlo inmediatamente, donde el tipo cTipoClase sólo se conocía en tiempo de ejecución, porque necesitábamos generar un formulario de clase de base con la logica para el patrón singleton a fin de heredarlo a lo largo de toda la solución. En el algoritmo genético, algo parecido aplica, en cada época o generación del mismo es posible que sea necesario alterar significativamente su comportamiento, ya que por definición no bastaría sólo con cambiar sus parámetros de funcionamiento, sino que el mismo algoritmo debe automodificarse en cada iteración. Al carecer de ejecución dinámica como lo pretendíamos, vimos que la mayor parte de las soluciones venían del lado de crear un objeto compilador, pasarle un string/archivo/bloque, luego enlazar el ensamblado creado y ejecutarlo. Sin embargo, esto , aunque efectivo, no es elegante sobre todo si recordamos aquellos lujos que tenía el zorro (permitanme ponerme un poco nostálgico). Tuvimos que lidiar con reflexión y esas cosas, y aunque se tuvo la solución, no nos pareció elegante. Nuestra conclusion fue que efectivamente era necesario recurrir a los trucos expuestos, al menos hasta que eventualmente se coloque este proceso en un espacio de nombres en algun release futuro de .NET, aunque si examinamos como está diseñado el CLR, creería que va a costar algo, pero son solo conjeturas de este momento. En java está la posibilidad de lograr evaluacion dinamica de expresiones a través de un compilador on-memory y no necesariamente uno externo, el cual genera bytecodes on-the-fly al recibir un string, aunque exige que el programador conozca los internals de estos objetos para poder luego utilizarlos. De todos modos, algunos ejemplos tirados por el Maestro podrían considerarse como algo parecido a compiladores en-proceso de todos modos, y en este caso el parecido (y las limitaciones) entre ambos mundos quedan muy evidenciados. Cordiales saludos, Carlos A. Pérez _ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Angel "Java" Lopez Enviado el: Saturday, December 01, 2007 10:21 Para: puntonet@mug.org.ar Asunto: [puntonet] evaluar funcion Hola gente! Hace poco creo hubo una pregunta parecida, no se si envie estos enlaces, donde esta tambien el mencionado por Alan, (jeje ya va siendo tiempo de publicar AjBasic con un ejemplo de este tipo): (seria interesante tambien plantear el tema de algoritmo genetico en una grid pero eso es otro tema ver algo en http://msmvps.com/blogs/lopez/archive/2007/11/15/programando-para-una-grid.a spx http://msmvps.com/blogs/lopez/archive/2007/11/21/m-225-s-programando-para-un a-grid.aspx ) Build a Custom .NET "EVAL" Provider http://www.eggheadcafe.com/articles/20030908.asp http://www.codeproject.com/csharp/runtime_eval.asp http://www.codeproject.com/csharp/csi.asp Runtime Compilation (A .NET eval statement) http://www.codeproject.com/dotnet/evaluator.asp An Eval Function for C# using JScript.NET (JavaScript) http://www.odetocode.com/Code/80.aspx Evaluate C# Code (Eval Function) http://www.codeproject.com/csharp/evalcscode.asp The expression evaluator revisited (Eval function in 100% managed .net) http://www.codeproject.com/useritems/eval3.asp Evaluating Mathematical Expressions by Compiling C# Code at Runtime http://www.codeproject.com/cs/algorithms/matheval.asp A Simple Compiler for the Common Language Runtime http://www.codeproject.com/cs/algorithms/compiler.asp Nos leemos! Angel "Java" Lopez http://www.ajlopez.com/ - Original Message - From: Alan <mailto:[EMAIL PROTECTED]> Lavintman To: puntonet@mug.org.ar Sent: Saturday, December 01, 2007 6:22 AM Subject: [puntonet] evaluar funcion Fijate si esto te puede servir... http://www.odetocode.com/Code/80.aspx Tuve que usarlo tiempo atras y me dio resultado... SAludos. Dario Quintana <[EMAIL PROTECTED]> wrote: Perdon si la pregunta sonó fea... no es con
[puntonet] evaluar funcion
Lista: No tengo acceso a Internet :-( Malamente este correo y jsustificado por los programas que desarrollo sino, ni esto... Asi que les agradeceria si me enviaran los doc por aquí De hecho hace poco tuve que desarrollar un buscador basado en el web2mail de todas formas tratare de adquirirlo por esa via Slds alejandro _ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Dario Quintana Enviado el: Sábado, 01 de Diciembre de 2007 05:55 a.m. Para: puntonet@mug.org.ar Asunto: [puntonet] evaluar funcion Ah !! Algoritmos Genéticos... me encanta ! Ok, entonces supongo que tu método es una Fitness Function (Funcion de aptitud), entonces por lo general, no va a variar. Ahora si estamos hablando. Por lo tanto con hacerla fija, y por medio de C# debería bastarte. HYPERLINK "http://msdn2.microsoft.com/en-us/library/system.math(VS.71).aspx"http://msdn2.microsoft.com/en-us/library/system.math(VS.71).aspx Pegale una mirada a eso, si me estoy equivocando corregime y la seguimos. Y si le estoy errando, seguramente te va a convenir el approach de Alan, para hacer la evaluación dinámica. No veo el enlace por problemas con el ISP (rrre lento está el enlace), pero me imagino que es eso. Saludos On Dec 1, 2007 2:24 AM, mailto:[EMAIL PROTECTED]"[EMAIL PROTECTED]> wrote: Bueno Dario, me explico: El tema es que estoy haciendo un programa que se basa en los algoritmos geneticos los cuales tienen una funcion de adaptación, que esta funcion es la que dicta si el problema a resolver te genera soluciones factibles a medida que pasan las generaciones. Es decir genero soluciones a partir de evaluar una funcion tecleada por el usuario en tiempo de ejecución parecida a la de abajo o mas compleja... No se si me explico bien en concreto un metodo que evalue una funcion Se me ocurria pasarle cantidad de variables y valor de la variable en un arreglo y definir los operandos y operadores pero en realidad Programado asi en bruto es bastante complejo y puede ser que falle en algun momento Bsucaba si habia funciones en visual Studio que aliviaran este problema... Slds alejandro -- Dario Quintana HYPERLINK "http://darioquintana.com.ar/blogging"http://darioquintana.com.ar/blogging Verificado por AVG. Versión: 7.5.467 / Base de datos de virus: 269.5.9/1154 - Fecha de la versión: 27/11/2007 11:40 a.m. slds alejandro -- Correo analizado por AVG 7.5 no se detecto ningun programa dañino. Verificado por AVG. Versión: 7.5.467 / Base de datos de virus: 269.5.9/1154 - Fecha de la versión: 27/11/2007 11:40 a.m.
[puntonet] evaluar funcion
Hola Carlos, Aunque esto no esta relacionado con la pregunta original, el tema que planteas demuestra lo molestas que son los miembros de clase (static en C# o Shared en VB). Una opcion alternativa al patrin singleton es el patron monostate, el cual no tiene algunas de las limitaciones del primero. Abrazo Carlos Peix _ From: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Carlos Alejandro PEREZ Sent: Sábado, 01 de Diciembre de 2007 11:47 a.m. To: puntonet@mug.org.ar Subject: [puntonet] evaluar funcion Hola a todos, hola estimado Maestro Hace algun tiempo quise encontrar un equivalente a la funcion ExecScript(string) de nuestro nunca bien ponderado VisualFoxPro, donde un ExecScript("SELECT ... FROM...") compila on-the-fly y ejecuta actualmente la sentencia como si esta estuviese presente en ese lugar. Más aún, el runtime de Fox podía ejecutar el comando COMPILE, para ir autogenerando bloques de codigo enteros. Esta funcionalidad, por ejemplo, permitía compilar páginas web con scripting en lenguaje Fox, de hecho, uno de los mecanismos de WebConnection está basado en esta posibilidad. Otros lenguajes como Perl tambien tienen una implementacion notablemente parecida a la de Fox. En .NET parece ser que el problema está, al menos en parte, en lo fuertemente tipado del entorno de ejecución y en el mecanismo del CLR, con lo cual aparentemente es altamente complicado lograr esta funcionalidad en runtime. Por ejemplo, nosotros necesitábamos cargar en un string algo asi como "Dim obj AS "+ cTipoClase y luego ejecutarlo inmediatamente, donde el tipo cTipoClase sólo se conocía en tiempo de ejecución, porque necesitábamos generar un formulario de clase de base con la logica para el patrón singleton a fin de heredarlo a lo largo de toda la solución. En el algoritmo genético, algo parecido aplica, en cada época o generación del mismo es posible que sea necesario alterar significativamente su comportamiento, ya que por definición no bastaría sólo con cambiar sus parámetros de funcionamiento, sino que el mismo algoritmo debe automodificarse en cada iteración. Al carecer de ejecución dinámica como lo pretendíamos, vimos que la mayor parte de las soluciones venían del lado de crear un objeto compilador, pasarle un string/archivo/bloque, luego enlazar el ensamblado creado y ejecutarlo. Sin embargo, esto , aunque efectivo, no es elegante sobre todo si recordamos aquellos lujos que tenía el zorro (permitanme ponerme un poco nostálgico). Tuvimos que lidiar con reflexión y esas cosas, y aunque se tuvo la solución, no nos pareció elegante. Nuestra conclusion fue que efectivamente era necesario recurrir a los trucos expuestos, al menos hasta que eventualmente se coloque este proceso en un espacio de nombres en algun release futuro de .NET, aunque si examinamos como está diseñado el CLR, creería que va a costar algo, pero son solo conjeturas de este momento. En java está la posibilidad de lograr evaluacion dinamica de expresiones a través de un compilador on-memory y no necesariamente uno externo, el cual genera bytecodes on-the-fly al recibir un string, aunque exige que el programador conozca los internals de estos objetos para poder luego utilizarlos. De todos modos, algunos ejemplos tirados por el Maestro podrían considerarse como algo parecido a compiladores en-proceso de todos modos, y en este caso el parecido (y las limitaciones) entre ambos mundos quedan muy evidenciados. Cordiales saludos, Carlos A. Pérez _ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Angel "Java" Lopez Enviado el: Saturday, December 01, 2007 10:21 Para: puntonet@mug.org.ar Asunto: [puntonet] evaluar funcion Hola gente! Hace poco creo hubo una pregunta parecida, no se si envie estos enlaces, donde esta tambien el mencionado por Alan, (jeje ya va siendo tiempo de publicar AjBasic con un ejemplo de este tipo): (seria interesante tambien plantear el tema de algoritmo genetico en una grid pero eso es otro tema ver algo en http://msmvps.com/blogs/lopez/archive/2007/11/15/programando-para-una-grid.aspx http://msmvps.com/blogs/lopez/archive/2007/11/21/m-225-s-programando-para-una-gr id.aspx ) Build a Custom .NET "EVAL" Provider http://www.eggheadcafe.com/articles/20030908.asp http://www.codeproject.com/csharp/runtime_eval.asp http://www.codeproject.com/csharp/csi.asp Runtime Compilation (A .NET eval statement) http://www.codeproject.com/dotnet/evaluator.asp An Eval Function for C# using JScript.NET (JavaScript) http://www.odetocode.com/Code/80.aspx Evaluate C# Code (Eval Function) http://www.codeproject.com/csharp/evalcscode.asp The expression evaluator revisited (Eval function in 100% managed .net) http://www.codeproject.com/useritems/eval3.asp Evaluating Mathematical Expressions by Compiling C# Code at Runtime http://www.codeproject.com/cs/algorithms/matheval.asp A Simple Compiler for the Common Language Runtime