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 [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://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 
 +    * ...
  
-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 Gourvestthere is now also an IDE program called LPSolve IDE that uses the API to provide a Windows application to solve modelsSee LPSolve IDE for its usageWith this program you don't have to know anything of API or computer programming languagesYou 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 principiantespuede ser difícil determinar por dónde empezarLa distribución contiene multitud de ficheros y para empezar sólo necesitas un par de ellosSegún vayas aprendiendo puedes necesitar másAquí 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 no limit on model size + 
-    * 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 variablesSemi-continuous variables and Special Ordered Sets +Empieza leyendo la primera parte donde se presentan ejemplos prácticos hasta llegar a formularlos como un modelo matemático, entonces vuelve aquí. Dichos ejemplos prácticos son usados en las siguientes presentaciones. 
-    * Can read model from MPSLP 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 avanzadasademá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]]. 
-    * Has powerful API interface + 
-    * Easy callable from other programming languages +===== Resolver un problema mediante IDE ===== 
-    * Advanced pricing using Devex and Steepest Edge for both primal and dual simplexes + 
-    * Provides different scaling methods to make the model more numerical stable +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]]. 
-    * Has presolve capabilities to tighten constraints/make the model smaller and faster to solve + 
-    * Has a base crashing routine to determine a starting point +===== Resolver un problema mediante la línea de instrucciones ===== 
-    * Allows restart after making changes to the modelSolve continues from the last found solution + 
-    * Possible to select desired combinations of primal and dual phases 1 and +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 to set several solver parameters like tolerances + 
-    Alternative (and faster) inverse/re-factorisation libraries are provided for. See Basis Factorization Packages +===== Resolver un problema mediante la API ===== 
-    * 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 +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]]. 
-    * Provides post-optimal sensitivity analysisSee Sensitivity + 
-    * ...+===== Compile the source code yourself ===== 
 + 
 + 
 +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. 
 + 
 +===== Basis Factorization Packages ===== 
 + 
 + 
 +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)