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 [2010/01/12 12:02] 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 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 | ||
+ | * ... | ||
- | También existe un programa llamado lp_sove que usa la API para proporcionar un programa interprete de instrucciones para la resolución de modelos. Véase lp_solve para este uso. Con ese programa no necesitas saber nada acerca de la API o de lenguajes de programación. Simplemente puedes proporcionar tu modelo mediante un fichero al programa y él dará los resultados. | + | ====== Inicio rápido ======= |
- | === Via un IDE === | + | lp_solve (o lpsolve) tiene una multitud de prestaciones. Para los principiantes, |
- | Gracias a Henri Gourvest, ahora hay un IDE denominado LPSolve IDE que usa la API para proporcionar una aplicación Windows para la resolución de modelos. Véase LPSolve IDE para este uso. Con este programa no necesitas saber nada acerca de la API o de lenguajes de programación. Simplemente puedes proporcionar tu modelo al programa y él dará los resultados. | ||
+ | ===== Formulando un problema ===== | ||
- | 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. | + | Si no sabes mucho acerca de programación lineal, mira primero [[Formulación de un problema en lpsolve]]. |
+ | Empieza leyendo la primera parte donde se presentan ejemplos prácticos hasta llegar | ||
- | Here is a list of some key features | + | 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:// |
- | * Mixed Integer Linear Programming (MILP) solver | + | ===== Resolver un problema mediante IDE ===== |
- | * Basically no limit on model size | + | |
- | * It is free and with sources | + | 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:// |
- | * Supports Integer variables, Semi-continuous variables and Special Ordered Sets | + | |
- | * Can read model from MPS, LP or user written format | + | ===== Resolver un problema mediante la línea de instrucciones ===== |
- | * Models can be build in-memory without the use of files | + | |
- | * Has a powerful | + | 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]]. |
- | * Easy callable from other programming languages | + | |
- | * Advanced pricing using Devex and Steepest Edge for both primal | + | ===== Resolver un problema mediante la API ===== |
- | * Provides different scaling methods | + | |
- | * Has presolve capabilities | + | Los programadores quieren usar lp_solve de una manera totalmente distinta. Ellos quieren llamar |
- | * Has a base crashing routine to determine a starting point | + | |
- | * Allows restart after making changes | + | ===== Compile the source code yourself ===== |
- | * Possible to select desired combinations of primal | + | |
- | * Possible | + | |
- | | + | The distribution contains precompiled libraries/ |
- | | + | |
- | * Has the possibility to convert one model format to another format | + | ===== Basis Factorization Packages ===== |
- | * Provides post-optimal sensitivity analysis. See Sensitivity | + | |
- | | + | |
+ | 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. |