Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
guia_lp_solve [2009/12/02 15:13] mmarquez |
guia_lp_solve [2010/01/14 12:24] (actual) mmarquez |
||
---|---|---|---|
Línea 3: | Línea 3: | ||
Nota: Esta página es la traducción (en curso) al español de [[http:// | Nota: Esta página es la traducción (en curso) al español de [[http:// | ||
- | ===== Introducción a lp_solve 5.5.0.15 ===== | + | ====== Introducción a lp_solve 5.5.0.15 |
¿Qué es lp_solve y qué no es? La respuesta simple es, lp_solve resuelve problemas de programación lineal entera mixta. | ¿Qué es lp_solve y qué no es? La respuesta simple es, lp_solve resuelve problemas de programación lineal entera mixta. | ||
Línea 29: | Línea 29: | ||
Esencialmente, | Esencialmente, | ||
Hay muchas formas de pasar los datos a la librería: | Hay muchas formas de pasar los datos a la librería: | ||
- | * Vía la API | + | |
- | | + | |
- | | + | |
- | === Vía la API === | + | * **Vía ficheros de entrada**: lp_solve soporta muchos tipos de ficheros de entrada. El comúnmente conocido como formato MPS (véase mps-format) es soportado por la mayoría de los resolvedores, |
- | La API es un conjunto de rutinas que pueden ser llamadas desde un lenguaje de programación para construir un modelo en memoria, resolverlo y devolver el resultado. | + | * **Via un IDE**: Gracias a Henri Gourvest, ahora hay un IDE denominado LPSolve IDE que usa la API para proporcionar |
- | Hay muchas rutinas en la API para realizar | + | |
- | === Vía ficheros | + | Como se ha dicho previamente, |
- | lp_solve | + | Aquí hay una lista de algunas de las funcionalidades de lp_solve: |
+ | * Resolución | ||
+ | * Básicamente tamaño no limitado del modelo | ||
+ | * Es libre y con fuentes | ||
+ | * Soporta variables enteras, variables semicontinuas y conjuntos ordenados especiales | ||
+ | * Puede leer modelos | ||
+ | * Los modelos se pueden contruir en memoria sin el uso de ficheros | ||
+ | * Tiene una potente interface API | ||
+ | * Es fácilmente llamable desde otros lenguajes de programación | ||
+ | * Cálculo de precios avanzado usando Devex y paso por aristas | ||
+ | * Proporciona varios métodos de escalado para hacer el modelo | ||
+ | * Tiene la capacidad | ||
+ | * Tiene una rutina basada en ruptura | ||
+ | * Permite reiniciar después de hacer cambios en el modelo. El programa continúa desde la última solución encontrada. | ||
+ | * Es posible seleccionar la combinación deseada de primal y dual en fases 1 y 2. | ||
+ | * Es posible establecer muchos parámetros como por ejemplo la tolerancia. | ||
+ | * Se dispone de librerías alternativas | ||
+ | * Lectura | ||
+ | * Tiene la posibilidad de convertir | ||
+ | * Proporciona análisis | ||
+ | * ... | ||
- | There is also a driver program called lp_solve that uses the API to provide a command line application to solve models. See lp_solve for its usage. With this program you don't have to know anything of API or computer programming languages. You can just provide your model via file to the program and it will solve the model and give you the result. | + | ====== Inicio rápido ======= |
- | Via an IDE | + | |
- | Thanks to Henri Gourvest, there is now also an IDE program called LPSolve IDE that uses the API to provide a Windows application to solve models. See LPSolve IDE for its usage. With this program you don't have to know anything of API or computer programming languages. You can just provide your model to the program and it will solve the model and give you the result. | + | lp_solve (o lpsolve) tiene una multitud de prestaciones. Para los principiantes, puede ser difícil determinar por dónde empezar. La distribución contiene multitud de ficheros y para empezar sólo necesitas un par de ellos. Según vayas aprendiendo puedes necesitar más. Aquí se explica como empezar con lp_solve. |
- | As already stated, lp_solve can be called from many programming language. Among them are C, C++, Pascal, Delphi, Java, VB, C#, VB.NET, Excel. But let this list not be a limitation. Any programming language capable of calling external libraries (DLLs under Windows, Shared libraries (.so) under Unix/Linux) can call lp_solve. | ||
- | Here is a list of some key features of lp_solve: | ||
- | * Mixed Integer Linear Programming (MILP) solver | + | ===== Formulando un problema ===== |
- | * Basically | + | |
- | * It is free and with sources | + | Si no sabes mucho acerca de programación lineal, mira primero [[Formulación de un problema en lpsolve]]. |
- | * Supports Integer variables, Semi-continuous variables | + | Empieza leyendo la primera parte donde se presentan ejemplos prácticos hasta llegar a formularlos como un modelo matemático, |
- | * Can read model from MPS, LP or user written format | + | |
- | * Models can be build in-memory without the use of files | + | Otro artículo libre y muy útil acerca de los fundamentos de programación lineal y otras técnicas avanzadas, además de discusiones y modelado de problemas es [[http:// |
- | * Has a powerful | + | |
- | * Easy callable from other programming languages | + | ===== Resolver un problema mediante IDE ===== |
- | * Advanced pricing using Devex and Steepest Edge for both primal | + | |
- | * Provides different scaling methods | + | La forma más sencilla de empezar con lp_solve es mediante un IDE. El IDE funciona sólo bajo Windows, aunque también puede usarse con el emulador [[http:// |
- | * Has presolve capabilities | + | |
- | * Has a base crashing routine to determine a starting point | + | ===== Resolver un problema mediante la línea de instrucciones ===== |
- | * Allows restart after making changes | + | |
- | * Possible to select desired combinations of primal and dual phases 1 and 2 | + | Otra forma de resolver un modelo es mediante la [[línea de instrucciones del programa]]. Esto funciona en cualquier plataforma, pero todo se controla mediante instrucciones. Este entorno es bien conocido por los programadores de Unix/Linux y de consola DOS. Véase [[línea de instrucciones del programa]]. |
- | * Possible | + | |
- | | + | ===== Resolver un problema mediante la API ===== |
- | | + | |
- | * Has the possibility to convert one model format to another format | + | Los programadores quieren usar lp_solve de una manera totalmente distinta. Ellos quieren llamar |
- | * Provides post-optimal sensitivity analysis. See Sensitivity | + | |
- | | + | ===== Compile the source code yourself ===== |
+ | |||
+ | |||
+ | The distribution contains precompiled libraries/ | ||
+ | |||
+ | ===== Basis Factorization Packages ===== | ||
+ | |||
+ | |||
+ | Alternative inverse/re-factorization | ||
+ | |||
+ | ===== External Language Interfaces ===== | ||
+ | |||
+ | |||
+ | Alternative model readers and writers possible via the XLI implementation. Models expressed in format files other than lp or MPS format can also be read or written by lp_solve via this unique feature. See External Language Interfaces | ||
+ | |||
+ | ===== Calling lp_solve from higher level Mathematical languages ===== | ||
+ | |||
+ | |||
+ | lp_solve can be called from AMPL, MATLAB, O-Matrix, Sysquake, Scilab, Octave, FreeMat, Euler, Python, Sage, PHP, R. | ||
+ | You now have a pretty good idea what lp_solve is about. |