GithubHelp home page GithubHelp logo

coin-or / nlpapi Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 2.0 2.49 MB

NLPAPI is a set of subroutines and data structures for defining nonlinear programming problems. It includes an interface to call LANCELOT to solve the problem (you need to get your own copy of LANCELOT), and an interface to IPOPT.

License: Other

Makefile 0.90% sed 0.01% C++ 0.51% C 98.05% Shell 0.53%

nlpapi's Introduction

NLPAPI

What is NLPAPI?

NLPAPI is a subroutine library with routines for building nonlinear programming problems. The general form is an objective with a set of simple bounds, equality and inequality constraints. It is built around the "Group Partially Separable" structure that LANCELOT defines, but constraints and objective may also be defined as functions of the problem variables.

How do I use NLPAPI?

The user creates a "NLProblem", which is a pointer to a data structure. Then the objective and constraints are added with various calls. Once the problem is defined our interface to LANCELOT may be used to create a NLLancelot data structure, and pass it and the problem to a routine which either minimizes or maximizes the objective subject to the constraints.

What do I need to build NLPAPI?

The source code for NLPAPI is stand-alone. If the user wishes to use our LANCELOT interface he must obtain his own copy of LANCELOT.

Download and Installation Instructions

The very short version of the download and installation instructions for UNIX-like system (including Linux and Cygwin) is this:

  1. Get the code via subversion using the following command

    svn co https://projects.coin-or.org/svn/NLPAPI/trunk NLPAPI
    
  2. Go into the downloaded directory and edit the file share/config.site to give local lib and include dirs for LANCELOT. (Last two lines in the file).

  3. Run the configuration script

    ./configure
    

    Make sure the last line of output says that the configuration was successful. The configure script has many customization features. To see them, type ./configure --help. In particular, to install a COIN-OR package at a location accessible to all users on your machine, you can run ./configure --prefix=/usr/local.

  4. Compile the code:

    make
    
  5. Install the generated libraries, executables, and header files:

    make install
    

    This will create subdirectories bin, lib, and include in the download directory with the product of the compilation.

On what operating systems can NLPAPI be used?

NLPAPI uses autoconf. It has been tested on AIX 4.3, AIX5.1, Cygwin, and !RedHat 8.0, but should install cleanly on any UNIX machine.

Are there any examples or references for the use of NLPAPI?

Source for several examples is included, as well as a SIF decoder which will translate many SIF files (no guarantees!) into C and Fortran source for defining the NLPAPI problem.

Documentation is included in a tex file, or the user may view a pdf version of the User's Guide, or the Programming Reference.

nlpapi's People

Contributors

svigerske avatar

Stargazers

 avatar

Watchers

James Cloos avatar Ted Ralphs avatar  avatar  avatar

Forkers

tingyingwu2010

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.