Estos apuntes son libres y los puedes editar.

Algunas secciones están en inglés puedes colaborar traduciendo algunos párrafos.

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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://lpsolve.sourceforge.net/5.5/]]. Nota: Esta página es la traducción (en curso) al español de [[http://lpsolve.sourceforge.net/5.5/]].
  
-===== 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, lp_solve es una librería, un conjunto de rutinas, llamadas la API que pueden ser llamadas desca casi cualquier lenguaje de programación para resolver problemas MILP.  Esencialmente, lp_solve es una librería, un conjunto de rutinas, llamadas la API que pueden ser llamadas desca casi cualquier lenguaje de programación para resolver problemas MILP. 
 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**: 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. Hay muchas rutinas en la API para realizar una muchas tareas y con muchas opciones. Véase lp_solve API reference para más información.
-  Vía ficheros de entrada +
-  Vía un entorno IDE+
  
- === 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, pero no es muy legible para las personas. Otrop formato es el formato lp (véase lp-format) que es más legible. lp_solve tiene la habilidad única de usar rutinas escritas por los usuarios para introducir el modelo (véase External Language Interface). Véase read_mps, read_freemps, read_MPS, read_freeMPS y read_lp, read_LP para llamar a la API para que lea un modelo desde un fichero de entrada. 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.
  
-La API es un conjunto de rutinas que pueden ser llamadas desde un lenguaje de programación para construir un modelo en memoriaresolverlo y devolver el resultado.  +  * **Via un IDE**: Gracias a Henri Gourvestahora 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.
-Hay muchas rutinas en la API para realizar una muchas tareas y con muchas opciones. Véase lp_solve API reference para más información.+
  
-=== Vía ficheros de entrada ===+Como se ha dicho previamente, lp_solve puede ser llamado desde muchos lenguajes de programación, entre otros Pascal, Delphi, Java, VB, C#, VB.NET, Excel, pero esta lista no es una limitación. Cualquier lenguaje de programación capaz de llamar a librerías externas (DLL bajo Windows, librerías compartidas (.so) bajo Unix/Linux) puede llamar a lp_solve.
  
-lp_solve soporta muchos tipos de ficheros de entrada. El comúnmente conocido como formato MPS (véase mps-formates soportado por la mayoría de los resolvedorespero no es muy legible para las personasOtrop formato es el formato lp (véase lp-format) que es más legiblelp_solve tiene la habilidad única de usar rutinas escritas por los usuarios para introducir el modelo (véase External Language Interface). Véase read_mps, read_freemps, read_MPS, read_freeMPS read_lp, read_LP para llamar a la API para que lea un modelo desde un fichero de entrada.+Aquí hay una lista de algunas de las funcionalidades de lp_solve
 +  * Resolución de problemas de programación enteros mixtos (MILP) 
 +  * 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 de MPSLP o formatos escritos por el usuario 
 +  * 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 para símplex primales y duales. 
 +  * Proporciona varios métodos de escalado para hacer el modelo más estable numéricamente. 
 +  * Tiene la capacidad de preproceso que simplifica las restricciones y hace el modelo más rápido y más fácil de resolver. 
 +  * Tiene una rutina basada en ruptura para la determinación de un punto de partida 
 +  * 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 (más rápidasde inversión/re-factorización. Véase Basis Factorization Packages 
 +  * Lectura escritura de modelos alternativos vía implementaciones XLI. Véase External Language Interfaces 
 +    * Tiene la posibilidad de convertir un modelo de un formato a otro 
 +    * Proporciona análisis de post-optimalidad. Véase Sensitivity 
 +    * ...
  
-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, 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.
  
-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 statedlp_solve can be called from many programming languageAmong them are C, C++, Pascal, Delphi, Java, VB, C#, VB.NET, Excel. But let this list not be limitation. Any programming language capable of calling external libraries (DLLs under WindowsShared libraries (.so) under Unix/Linux) can call lp_solve.+Si no sabes mucho acerca de programación linealmira primero [[Formulación de un problema en lpsolve]]. 
 +Empieza leyendo la primera parte donde se presentan ejemplos prácticos hasta llegar formularlos como un modelo matemáticoentonces vuelve aquíDichos ejemplos prácticos son usados en las siguientes presentaciones.
  
-Here is a list of some key features of lp_solve:+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://dashoptimization.com/home/downloads/book/booka4.pdf|Applications of optimization with Xpress-MP]]. El trabajo describe la programación lineal y el modelado on la aplicación comerical Xpress-MP., pero es útil para otras apliaciones como lp_solve. En caso de que el enlace no funcione, intenta [[http://www.google.be/search?hl=nl&as_qdr=all&q=%22Applications+of+optimization+with+Xpress-MP%22+%22Developing+Linear+and+Integer+Programming+models%22+%22Application+examples%22+filetype%3Apdf&btnG=Zoeken&meta=|buscarlo vía google]].
  
-    * 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 Windowsaunque también puede usarse con el emulador [[http://www.winehq.org/|wine]]. Véase [[http://lpsolve.sourceforge.net/5.5/IDE.htm|LPSolve IDE]]. 
-    * Supports Integer variablesSemi-continuous variables and Special Ordered Sets + 
-    * Can read model from MPSLP 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 powerful API interface +Otra forma de resolver un modelo es mediante la [[línea de instrucciones del programa]]. Esto funciona en cualquier plataformapero 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 and dual simplexes +===== Resolver un problema mediante la API ===== 
-    * Provides different scaling methods to make the model more numerical stable + 
-    * Has presolve capabilities to tighten constraints/make the model smaller and faster to solve +Los programadores quieren usar lp_solve de una manera totalmente distinta. Ellos quieren llamar lp_solve como una librería directamente desde su lenguaje de programación. Esto es lo que se llama API (Application Programming Interface). Véase [[Llamando a la API de lpsolve desde tu lenguaje de programación]] y [[Construcción de un modelo para un lenguaje de programación]]. Un resumen de la API cpmpleta puede encontrarse en: [[Guía de la API de lp_solve]]. 
-    * Has a base crashing routine to determine a starting point + 
-    * Allows restart after making changes to the modelSolve continues from the last found solution +===== Compile the source code yourself ===== 
-    * Possible to select desired combinations of primal and dual phases 1 and 2 + 
-    * Possible to set several solver parameters like tolerances + 
-    Alternative (and faster) inverse/re-factorisation libraries are provided for. See Basis Factorization Packages +The distribution contains precompiled libraries/binaries for Windows and Linux. However lp_solve can be compiled on other platforms also. You may also to make modifications to it and then you have to recompile also, even on the precompiled platformsSee Calling the lpsolve API from your application. In this article it is both explained how to link your code to the library and how to compile the lp_solve code. 
-    * Alternative model readers and writers possible via the XLI implementation. See External Language Interfaces + 
-    * Has the possibility to convert one model format to another format +===== Basis Factorization Packages ===== 
-    * Provides post-optimal sensitivity analysisSee Sensitivity + 
-    * ...+ 
 +Alternative inverse/re-factorization libraries can be used by lp_solve. This is a feature for the more experienced users of lp_solve. See Basis Factorization Packages for more information. The sources of these packages are in the lp_solve_5.5.0.15_bfp_*_source.tar.gz archives. The binaries are in the lp_solve_5.5.0.15_exe* archive. 
 + 
 +===== 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 for more information. The sources of these packages are in the lp_solve_5.5.0.15_xli_*_source.tar.gz archives. The binaries are in the lp_solve_5.5.0.15_exe* archive. 
 + 
 +===== 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.

QR Code
QR Code guia_lp_solve (generated for current page)