Hola a todos, Simplemente comentar que me tengo encontrado con muchos problemas de optimización. Mi recomendación general, en el caso multidimensional y si el tiempo de computación es importante, sería buscar un algoritmo diseñado para el tipo de problema (evitar los algoritmos más generales tipo optim si puede haber problemas de mínimos locales). Algunos casos que tengo resuelto con R incluirían programación cuadrática (e.g. quadprog), Levenberg-Marquardt para mínimos cuadrados no lineales (e.g. minpack.lm) y combinaciones de algoritmos (p.e. si la función es lineal en algunos parámetros). En el caso más general, si hay muchos óptimos locales o si la función objetivo es poco suave (incluso con discontinuidades), mi recomendación sería emplear un algoritmo genético (aunque hay otras alternativas como el temple simulado - simulated annealing). El inconveniente puede ser el tiempo de computación (a veces solo los utilizo para testear si otros más rápidos funcionan bien). De los disponibles en R mi recomendación (en estos momentos) sería emplear el paquete DEoptim. Un saludo, Rubén. P.D. Por cierto, yo empleaba antes mucho un algoritmo genético (realmente micro-genético) escrito en FORTRAN con muy buenos resultados. Si alguien quiere probar a implementarlo en R puede contactar conmigo... El 17/12/2014 3:43, "Marcuzzi, Javier Rubén" escribió:> Algo m?s concreto en R porque creo que no me explico correctamente: > > Por ejemplo, la librer?a limSolve, en la p?gina 4 del manual tiene: > > Blending > A linear inverse blending problem > > El sitio web es: > http://cran.r-project.org/web/packages/limSolve/limSolve.pdf > > El ejemplo en R est? "bueno", pero yo no soy matem?tico ni estad?stico, > soy veterinario, por lo cu?l donde en este ejemplo dice m?nimo yo > tambi?n tengo maximo y unas relaci?nes un poco m?s complejas, para > continuar con el mismo ejemplo se encuentra todo lo que es nutrici?n > animal y los distintos modelos para llevar a un lenguaje matem?tico lo > que pasa en la biolog?a. > > Por lo cu?l busco sugerencias a partir de la experiencia de otros sobre > que librer?as en R les parecen m?s adecuadas que otras para este tipo de > problemas. > > Javier Marcuzzi > > El 16/12/2014 a las 09:33 p.m., "Marcuzzi, Javier Rub?n" escibi?: >> Estimados >> >> Reailizo una pregunta general, casi desconociendo. Se me ocurri? >> explorar lo siguiente: hay ejemplos de programaci?n lineal o >> utilizando la herramienta solver de excel, donde se realizan algunos >> c?lculos, lo m?s sencillo de comprender y documentado (todos lados) es >> una cantidad de productos, un costo de compra, un costo de venta, una >> cantidad para invertir y ?cu?nto me conviene para ...?, buscando la >> maximizaci?n de la ganancia o la minimizaci?n del precio. >> >> En R hay referencias en >> http://cran.r-project.org/web/views/Optimization.html >> >> Mi pregunta va en dos partes, la primera es ?cual de las herramientas >> que est? en el listado del link o alguna otra para resolver el m?nimo >> costo recomendar?an? >> >> Mi segunda pregunta es: ?y si hay varias relaci?nes no lineales?, por >> lo que la programaci?n lineal de la mayor?a de los ejemplos donde >> buscan el m?nimo costo no ser?a apropiado. Lo que busco es utilizar >> modelos animales, donde tendr?a algo como un objetivo a buscar muy >> semejante al m?nimo costo, pero con varias variables, partes que no >> son descriptas por modelos lineales, otras con restricci?nes, por >> ejemplo consumir m?s de y menos de. >> >> Puede ser que no explique correctamente, es complicado cuando los >> libros espec?ficos tienen m?s de 400 paginas llenas de n?meros y >> ecuaci?nes, y pretender optimizar de acuerdo a todo esto. >> >> Posiblemente un economista tenga claro por donde buscar para reducir >> costos u optimizar ganancias, que herramientas de R son recomendables >> sobre otras, algo que los que venimos de las ?reas biologicas no >> tenemos con la misma claridad. En mi cabeza me es m?s f?cil simular, >> pero de pronto hay otas formas que por no explorarlas ... >> >> ?Sugerencias? >> >> Gracias >> >> Javier Marcuzzi > > [[alternative HTML version deleted]] > > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]
Luis Mariano Esteban
2014-Dec-17 11:28 UTC
[R-es] optimización - resolver sistema - general
Hola Javier, te doy mi opinión, para programación lineal te recomiendo la librería lpSolve, podrás trabajar con variables continuas, enteras o binarias, y además puedes hacer el análisis de sensibilidad sin problemas. No uses la librería linprog porque tiene fallos, la solución es mas sencilla de interpretar, pero ellos mismos advierten de que en algunos casos puede fallar. Para problemas de programación no lineal, si quieres resolución numérica, con todos los problemas que esto puede llevarte, yo he usado Rsolnp, resulta sencillo definir la función objetivo y las restricciones aunque la solución depende del punto inicial para aplicar el método, no te recomiento la libreria alabama porque no trata con restricciones de igualdad. Un saludo El 17 de diciembre de 2014, 11:15, rubenfcasal <rubenfcasal en gmail.com> escribió:> > Hola a todos, > > Simplemente comentar que me tengo encontrado con muchos problemas > de optimización. Mi recomendación general, en el caso multidimensional y > si el tiempo de computación es importante, sería buscar un algoritmo > diseñado para el tipo de problema (evitar los algoritmos más generales > tipo optim si puede haber problemas de mínimos locales). Algunos casos > que tengo resuelto con R incluirían programación cuadrática (e.g. > quadprog), Levenberg-Marquardt para mínimos cuadrados no lineales (e.g. > minpack.lm) y combinaciones de algoritmos (p.e. si la función es lineal > en algunos parámetros). > > En el caso más general, si hay muchos óptimos locales o si la > función objetivo es poco suave (incluso con discontinuidades), mi > recomendación sería emplear un algoritmo genético (aunque hay otras > alternativas como el temple simulado - simulated annealing). El > inconveniente puede ser el tiempo de computación (a veces solo los > utilizo para testear si otros más rápidos funcionan bien). De los > disponibles en R mi recomendación (en estos momentos) sería emplear el > paquete DEoptim. > > Un saludo, > Rubén. > > P.D. Por cierto, yo empleaba antes mucho un algoritmo genético > (realmente micro-genético) escrito en FORTRAN con muy buenos resultados. > Si alguien quiere probar a implementarlo en R puede contactar conmigo... > > > El 17/12/2014 3:43, "Marcuzzi, Javier Rubén" escribió: > > Algo m?s concreto en R porque creo que no me explico correctamente: > > > > Por ejemplo, la librer?a limSolve, en la p?gina 4 del manual tiene: > > > > Blending > > A linear inverse blending problem > > > > El sitio web es: > > http://cran.r-project.org/web/packages/limSolve/limSolve.pdf > > > > El ejemplo en R est? "bueno", pero yo no soy matem?tico ni estad?stico, > > soy veterinario, por lo cu?l donde en este ejemplo dice m?nimo yo > > tambi?n tengo maximo y unas relaci?nes un poco m?s complejas, para > > continuar con el mismo ejemplo se encuentra todo lo que es nutrici?n > > animal y los distintos modelos para llevar a un lenguaje matem?tico lo > > que pasa en la biolog?a. > > > > Por lo cu?l busco sugerencias a partir de la experiencia de otros sobre > > que librer?as en R les parecen m?s adecuadas que otras para este tipo de > > problemas. > > > > Javier Marcuzzi > > > > El 16/12/2014 a las 09:33 p.m., "Marcuzzi, Javier Rub?n" escibi?: > >> Estimados > >> > >> Reailizo una pregunta general, casi desconociendo. Se me ocurri? > >> explorar lo siguiente: hay ejemplos de programaci?n lineal o > >> utilizando la herramienta solver de excel, donde se realizan algunos > >> c?lculos, lo m?s sencillo de comprender y documentado (todos lados) es > >> una cantidad de productos, un costo de compra, un costo de venta, una > >> cantidad para invertir y ?cu?nto me conviene para ...?, buscando la > >> maximizaci?n de la ganancia o la minimizaci?n del precio. > >> > >> En R hay referencias en > >> http://cran.r-project.org/web/views/Optimization.html > >> > >> Mi pregunta va en dos partes, la primera es ?cual de las herramientas > >> que est? en el listado del link o alguna otra para resolver el m?nimo > >> costo recomendar?an? > >> > >> Mi segunda pregunta es: ?y si hay varias relaci?nes no lineales?, por > >> lo que la programaci?n lineal de la mayor?a de los ejemplos donde > >> buscan el m?nimo costo no ser?a apropiado. Lo que busco es utilizar > >> modelos animales, donde tendr?a algo como un objetivo a buscar muy > >> semejante al m?nimo costo, pero con varias variables, partes que no > >> son descriptas por modelos lineales, otras con restricci?nes, por > >> ejemplo consumir m?s de y menos de. > >> > >> Puede ser que no explique correctamente, es complicado cuando los > >> libros espec?ficos tienen m?s de 400 paginas llenas de n?meros y > >> ecuaci?nes, y pretender optimizar de acuerdo a todo esto. > >> > >> Posiblemente un economista tenga claro por donde buscar para reducir > >> costos u optimizar ganancias, que herramientas de R son recomendables > >> sobre otras, algo que los que venimos de las ?reas biologicas no > >> tenemos con la misma claridad. En mi cabeza me es m?s f?cil simular, > >> pero de pronto hay otas formas que por no explorarlas ... > >> > >> ?Sugerencias? > >> > >> Gracias > >> > >> Javier Marcuzzi > > > > [[alternative HTML version deleted]] > > > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Luis Mariano Esteban Escaño Escuela Universitaria Politécnica de La Almunia Tlfno. 976600883 Ext.121 C/ Mayor s/n 50100 La Almunia de Doña Godina Universidad de Zaragoza [[alternative HTML version deleted]]
"Marcuzzi, Javier Rubén"
2014-Dec-18 03:33 UTC
[R-es] optimización - resolver sistema - general
Muchas gracias por las sugerencias, quiero remarcar el aporte de Enrique Gabriel Baquela, no todos donan un libro en español y en los repositorios de R, claro que también se puede comprar impreso; sobre compartir de mi parte un código R, no puedo porque aún no lo escribí, me llevará meses porque son muchas fórmulas que tengo que pasar a R, luego inventar algunos datos simples y comenzar las pruebas de optimización, y no es la prioridad, invertiré tiempo libre o de pensar en otra cosa para luego regresar al problema principal. Valoro muchísimo las sugerencias basadas en la propia experiencia, como la de Rubén y Luis, lógicamente que tomaré primero estas sugerencias al listado enorme que ofrecen varios autores de librerías en R. Nuevamente gracias. Javier Marcuzzi El 17/12/2014 a las 08:28 a.m., Luis Mariano Esteban escibió:> Hola Javier, > te doy mi opinión, para programación lineal te recomiendo la librería > lpSolve, podrás trabajar con variables continuas, enteras o binarias, y > además puedes hacer el análisis de sensibilidad sin problemas. No uses la > librería linprog porque tiene fallos, la solución es mas sencilla de > interpretar, pero ellos mismos advierten de que en algunos casos puede > fallar. > > Para problemas de programación no lineal, si quieres resolución numérica, > con todos los problemas que esto puede llevarte, yo he usado Rsolnp, > resulta sencillo definir la función objetivo y las restricciones aunque la > solución depende del punto inicial para aplicar el método, no te recomiento > la libreria alabama porque no trata con restricciones de igualdad. > > Un saludo > > El 17 de diciembre de 2014, 11:15, rubenfcasal <rubenfcasal en gmail.com> > escribió: >> Hola a todos, >> >> Simplemente comentar que me tengo encontrado con muchos problemas >> de optimización. Mi recomendación general, en el caso multidimensional y >> si el tiempo de computación es importante, sería buscar un algoritmo >> diseñado para el tipo de problema (evitar los algoritmos más generales >> tipo optim si puede haber problemas de mínimos locales). Algunos casos >> que tengo resuelto con R incluirían programación cuadrática (e.g. >> quadprog), Levenberg-Marquardt para mínimos cuadrados no lineales (e.g. >> minpack.lm) y combinaciones de algoritmos (p.e. si la función es lineal >> en algunos parámetros). >> >> En el caso más general, si hay muchos óptimos locales o si la >> función objetivo es poco suave (incluso con discontinuidades), mi >> recomendación sería emplear un algoritmo genético (aunque hay otras >> alternativas como el temple simulado - simulated annealing). El >> inconveniente puede ser el tiempo de computación (a veces solo los >> utilizo para testear si otros más rápidos funcionan bien). De los >> disponibles en R mi recomendación (en estos momentos) sería emplear el >> paquete DEoptim. >> >> Un saludo, >> Rubén. >> >> P.D. Por cierto, yo empleaba antes mucho un algoritmo genético >> (realmente micro-genético) escrito en FORTRAN con muy buenos resultados. >> Si alguien quiere probar a implementarlo en R puede contactar conmigo... >> >> >> El 17/12/2014 3:43, "Marcuzzi, Javier Rubén" escribió: >>> Algo m?s concreto en R porque creo que no me explico correctamente: >>> >>> Por ejemplo, la librer?a limSolve, en la p?gina 4 del manual tiene: >>> >>> Blending >>> A linear inverse blending problem >>> >>> El sitio web es: >>> http://cran.r-project.org/web/packages/limSolve/limSolve.pdf >>> >>> El ejemplo en R est? "bueno", pero yo no soy matem?tico ni estad?stico, >>> soy veterinario, por lo cu?l donde en este ejemplo dice m?nimo yo >>> tambi?n tengo maximo y unas relaci?nes un poco m?s complejas, para >>> continuar con el mismo ejemplo se encuentra todo lo que es nutrici?n >>> animal y los distintos modelos para llevar a un lenguaje matem?tico lo >>> que pasa en la biolog?a. >>> >>> Por lo cu?l busco sugerencias a partir de la experiencia de otros sobre >>> que librer?as en R les parecen m?s adecuadas que otras para este tipo de >>> problemas. >>> >>> Javier Marcuzzi >>> >>> El 16/12/2014 a las 09:33 p.m., "Marcuzzi, Javier Rub?n" escibi?: >>>> Estimados >>>> >>>> Reailizo una pregunta general, casi desconociendo. Se me ocurri? >>>> explorar lo siguiente: hay ejemplos de programaci?n lineal o >>>> utilizando la herramienta solver de excel, donde se realizan algunos >>>> c?lculos, lo m?s sencillo de comprender y documentado (todos lados) es >>>> una cantidad de productos, un costo de compra, un costo de venta, una >>>> cantidad para invertir y ?cu?nto me conviene para ...?, buscando la >>>> maximizaci?n de la ganancia o la minimizaci?n del precio. >>>> >>>> En R hay referencias en >>>> http://cran.r-project.org/web/views/Optimization.html >>>> >>>> Mi pregunta va en dos partes, la primera es ?cual de las herramientas >>>> que est? en el listado del link o alguna otra para resolver el m?nimo >>>> costo recomendar?an? >>>> >>>> Mi segunda pregunta es: ?y si hay varias relaci?nes no lineales?, por >>>> lo que la programaci?n lineal de la mayor?a de los ejemplos donde >>>> buscan el m?nimo costo no ser?a apropiado. Lo que busco es utilizar >>>> modelos animales, donde tendr?a algo como un objetivo a buscar muy >>>> semejante al m?nimo costo, pero con varias variables, partes que no >>>> son descriptas por modelos lineales, otras con restricci?nes, por >>>> ejemplo consumir m?s de y menos de. >>>> >>>> Puede ser que no explique correctamente, es complicado cuando los >>>> libros espec?ficos tienen m?s de 400 paginas llenas de n?meros y >>>> ecuaci?nes, y pretender optimizar de acuerdo a todo esto. >>>> >>>> Posiblemente un economista tenga claro por donde buscar para reducir >>>> costos u optimizar ganancias, que herramientas de R son recomendables >>>> sobre otras, algo que los que venimos de las ?reas biologicas no >>>> tenemos con la misma claridad. En mi cabeza me es m?s f?cil simular, >>>> pero de pronto hay otas formas que por no explorarlas ... >>>> >>>> ?Sugerencias? >>>> >>>> Gracias >>>> >>>> Javier Marcuzzi >>> [[alternative HTML version deleted]] >>> >>> >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es en r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >>[[alternative HTML version deleted]]