GithubHelp home page GithubHelp logo

dylp's Introduction

Dylp

A COIN-OR Project

Overview

dylp is an implementation of the dynamic simplex algorithm. Briefly, dynamic simplex attempts to work with an active constraint system which is a subset of the full constraint system. It alternates between primal and dual simplex phases. Between simplex phases, it deactivates variables and constraints which are not currently useful, and scans the full constraint system to activate variables and constraints which have become useful. The dylp documentation describes dylp's algorithms in detail.

dylp is intended as a development code. The implementation puts more weight on clarity than efficiency and is heavily instrumented and commented. It can be built with extensive statistics, informational printing, and consistency checks. It can also be built without any of these. Fully optimised, it's decently fast.

dylp is a C code, and can be used in a pure C environment completely independent of other COIN software. It also has a COIN-OR OSI interface, OsiDylp, which takes advantage of capabilities provided by COIN (e.g., enhanced input/output and constraint system preprocessing) and is recommended if you're working in a C++ environment.

dylp is released as open source under the Eclipse Public License 2.0.

It is distributed under the auspices of the COIN-OR Foundation

dylp is not under active development. The source repository is https://github.com/coin-or/DyLP. In summer 2022 it was upgraded to conform to COIN GitHub repository standards current at the time.

Current Build Status

Windows Builds

Linux and MacOS Builds

Download, Configuration, and Testing

dylp has no current releases. Clone the git repository and use the master branch. You can use coinbrew to automate the process of cloning the repositories for dylp and its dependencies and building the software. This is the best way to get started. If you want to build in a separate directory from the source files, use the coinbrew option --build-dir. If you want to install in a specified directory, use the coinbrew option --prefix.

Once you have created the necessary repositories, the minimal action required for configuration and build is to run the commands

./configure
make

in the top level directory of the distribution. Run

./configure --help

for a list of available configuration options. If you're building in a directory separate from the source directory, run configure and make from the build directory as

cd /path/to/build/Dylp
path/to/src/Dylp/configure
make

To install in a specified directory, use the --prefix option to configure as

path/to/src/Dylp/configure --prefix /path/to/install
make
make install

For a test of correct installation, dylp runs its own unit test and the OsiDylp unit test. Simply type the command

make test

in the top level build directory to build and run the unit tests.

Examples

The dylp distribution also provides two simple main programs in the directory DyLP/examples. Be sure to execute the command

make install

in the top level build directory before attempting to build the examples! To build the examples, change directory to DyLP/examples and execute the command

make examples

A simple shell script, plain, provides a convenient wrapper for both main programs. Execute the command 'plain --help' for usage information.

Dependencies

dylp's dependencies are specified in the config.yml file used by coinbrew and in the (semi-obsolete) Dependencies file. The master branch is specified but the latest releases should be entirely sufficient.

Bugs

There are undoubtably a few left somewhere. If you run across one, please let us know. The preferred way is to use a issue. You can browse existing issues to see if your bug has already been reported and add additional information. Otherwise, please submit a new issue.

dylp's People

Contributors

h-i-gassmann avatar jpfasano avatar louhafer avatar svigerske avatar tkralphs avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dylp's Issues

installing all error: Testing OsiRowCut ...free(): invalid pointer

Hello,
I tried on openSUSE tumbleweed w,th
gcc version 9.2.1 20200109 [gcc-9-branch revision 280039] (SUSE Linux)
I wanted to install all
However towards the end:

...

##################################################

Updating DyLP

##################################################

Already up to date.

##################################################

Building DyLP master

##################################################

##################################################

Running DyLP unit test

##################################################

Testing OsiDylpSolverInterface
Testing OsiRowCut ...
free(): invalid pointer
/bin/sh: line 3: 30812 Aborted (core dumped) ./osiUnitTest -mpsDir=echo /my_nvme1/my_dir/my_prg/coin-or/coinbrew/dist/share/coin/Data/Sample -netlibDir=echo /my_nvme1/my_dir/my_prg/coin-or/coinbrew/dist/share/coin/Data/Netlib -testOsiSolverInterface
make[1]: *** [Makefile:640: test] Error 134
make: *** [Makefile:842: test] Error 2

Build failed, see error output above

make distclean fails

Issue created by migration from Trac.

Original creator: Gassmann

Original creation time: 2010-11-26 19:27:05

Assignee: @LouHafer

Version: 1.5

make distclean fails with the error message

make[1]: Entering directory
`/home/gassmann/datafiles/research/OS/trunk/vpath-profile/DyLP'
rm -rf .libs _libs
/bin/bash: ./build_dylpdoc: /bin/csh: bad interpreter: No such file or directory

--with-dylp-* options don't work

Issue created by migration from Trac.

Original creator: @LouHafer

Original creation time: 2006-12-01 20:53:31

Assignee: @LouHafer

Version:

Keywords: --with-dylp, dylp, options

Specifying any --with-dylp-* option has no effect.

Path to dy_errmsgs.txt is incorrect for VPATH build.

Issue created by migration from Trac.

Original creator: @LouHafer

Original creation time: 2006-08-14 23:34:36

Assignee: @LouHafer

Version:

The default path for dy_errmsgs.txt is a relative path. Works
fine when examples are built within the distribution directory, fails for a VPATH build, and will fail for any build that puts the executables elsewhere. Likely needs a full path.

latex documentation source files missing

Issue created by migration from Trac.

Original creator: awasielak

Original creation time: 2009-01-21 17:33:18

Assignee: @LouHafer

Version:

This bug shows up in DyLP version 1.4.4 (for some reason this version doesn't show up under "Ticket Properties")

DyLP ships its documentation in pdf and ps formats:

DyLP-1.4.4/DyLP/doc/dylp.pdf
DyLP-1.4.4/DyLP/doc/dylp.ps

Unfortunately the latex files used to generate these .pdf and .ps files are not shipped as well. This problem came up when working on debian packages for DyLP. These .pdf and .ps files can't be accepted to Debian since the corresponding source files are not available. Could you guys provide latex files used to generate dylp.pdf and dylp.ps files?

Thanks,

Aramian

DyLP will not build in CYGWIN with --enable-doscompile or on Mac OSX

Issue created by migration from Trac.

Original creator: @tkralphs

Original creation time: 2007-01-31 18:27:21

Assignee: @LouHafer

Version: 2.0

I suppose this is a known quantity, but I thought I would at least raise the red flag. It's fine if you do not want to support these platforms, but I think it would be reasonable to then have the configuration fail on these platforms. Currrently, the configuration goes fine and the build fails. This is a problem for Osi, since it prevents it from building out of the box on these platforms (Osi pulls in DyLP as an external).

Dylp fail on pathological problem

Issue created by migration from Trac.

Original creator: @svigerske

Original creation time: 2008-02-10 18:03:40

Assignee: @LouHafer

Version:

Hi,

I've started to run some tests again, and DyLP (stable/1.3) seem to fail on the problem:

  min  0
  s.t. x = 0

Running the attached mps file using DyLP/examples/plain, I get


> ./plain -odsi internalconfusion.mps
Processing internalconfusion.mps, flags = -t.

Logging to internalconfusion.mps.log.
Output file is internalconfusion.mps.out.
Reading problem file internalconfusion.mps.
Starting LP.
inv_create: m = 0; invalid parameter

Running it with the -dylp option, I get

> ./plain -dylp internalconfusion.mps
Processing internalconfusion.mps, flags = -t.

Segmentation fault

Running it through GAMS and Osi, I get

add_logical (error): internal confusion, line 717.

consys_addrow_pk (error): [<<unnamed>>[actv]]: unable to add logical variable for
        constraint fakerow (1).

dy_loadcon (error): could not install constraint <<unnamed>>[actv].fakerow.

cold_loadfull (error): [<<unnamed>>[actv]]: (IN)0: unable to activate constraint <<unnamed>>.fakerow (1).

dy_coldstart (error): [<<unnamed>>[actv]]: (IN)0: unable to load active system from <<unnamed>>.

dylp (error): [<<unnamed>>]: (IN)0: cold start failed.

add_logical (error): internal confusion, line 717.

consys_addrow_pk (error): [<<unnamed>>[actv]]: unable to add logical variable for
        constraint fakerow (1).

dy_loadcon (error): could not install constraint <<unnamed>>[actv].fakerow.

cold_loadfull (error): [<<unnamed>>[actv]]: (IN)0: unable to activate constraint <<unnamed>>.fakerow (1).

dy_coldstart (error): [<<unnamed>>[actv]]: (IN)0: unable to load active system from <<unnamed>>.

dylp (error): [<<unnamed>>]: (IN)0: cold start failed.

add_logical (error): internal confusion, line 717.

consys_addrow_pk (error): [<<unnamed>>[actv]]: unable to add logical variable for
        constraint fakerow (1).

dy_loadcon (error): could not install constraint <<unnamed>>[actv].fakerow.

cold_loadfull (error): [<<unnamed>>[actv]]: (IN)0: unable to activate constraint <<unnamed>>.fakerow (1).

dy_coldstart (error): [<<unnamed>>[actv]]: (IN)0: unable to load active system from <<unnamed>>.

dylp (error): [<<unnamed>>]: (IN)0: cold start failed.

memory leak in OsiDylpWarmStartBasis.cpp stable 1.8

Issue created by migration from Trac.

Original creator: kmartin

Original creation time: 2011-03-28 14:49:39

Assignee: @LouHafer

Hi Lou:

I believe there is a memory leak in OsiDylpWarmStartBasis.cpp. In line 143 there is

{ odwsb_new = new OsiDylpWarmStartBasis(*odwsb_orig) ; }

But the odwsb object is never deleted.

Thanks

Fix bnfrdr, Windows 2000/cygwin/minGW

Issue created by migration from Trac.

Original creator: @LouHafer

Original creation time: 2006-07-02 20:20:59

Assignee: @LouHafer

Version:

Dylp's command parser, bnfrdr, does not play nicely with gcc in the cygwin/minGW environment. No errors/warnings during nonoptimised build, but any call to parse fails. At higher optimisation levels, the compiler warns that type punning breaks strict aliasing rules. The gcc documentation for strict aliasing warns against the coding style used in dylp to return results from a parse, but the problem should occur only when optimising. Error does not occur in optimised or nonoptimised builds in unix environments (Linux, Solaris).

Needs to be debugged in a Cygwin/minGW environment. Volunteers welcome.

DyLP does not build in CoinAll

Issue created by migration from Trac.

Original creator: @jpfasano

Original creation time: 2006-06-24 13:05:45

Assignee: @LouHafer

Version:

Dylp is causing make to fail in CoinAll on cygwin when using gcc compiler.
To recreate:

svn co https://projects.coin-or.org/svn/CoinAll/trunk  CoinAll
cd CoinAll
./configure -C
make

The final messages are:

Making all in src/Dylp
make[2]: Entering directory `/home/JP/coin-CoinAll/DyLP/src/Dylp'
if /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I`cygp
ath -w .` -I../../inc  -I`cygpath -w ./../DylpStdLib`   -O3 -fomit-frame-pointer
 -mno-cygwin -pipe -DNDEBUG  -pedantic-errors -Wimplicit -Wparentheses -Wsequenc
e-point -Wreturn-type -Wcast-qual -Wall -MT consys_io.lo -MD -MP -MF ".deps/cons
ys_io.Tpo" -c -o consys_io.lo consys_io.c; \
then mv -f ".deps/consys_io.Tpo" ".deps/consys_io.Plo"; else rm -f ".deps/consys
_io.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I.\\ -I../../inc -Ie:\\cygwin\\home\\JP\\coin-CoinAll\
\DyLP\\src\\DylpStdLib -O3 -fomit-frame-pointer -mno-cygwin -pipe -DNDEBUG -peda
ntic-errors -Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual
-Wall -MT consys_io.lo -MD -MP -MF .deps/consys_io.Tpo -c consys_io.c -o consys_
io.o
In file included from consys.h:90,
                 from consys_io.c:36:
vector.h:64:21: ieeefp.h: No such file or directory
vector.h:212:1: "isnan" redefined
In file included from vector.h:54,
                 from consys.h:90,
                 from consys_io.c:36:
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/include/math.h:36
4:1: this is the location of the previous definition
make[2]: *** [consys_io.lo] Error 1
make[2]: Leaving directory `/home/JP/coin-CoinAll/DyLP/src/Dylp'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/JP/coin-CoinAll/DyLP'
make: *** [all-recursive] Error 1

wrong basis for problem with many free variables

Issue created by migration from Trac.

Original creator: @svigerske

Original creation time: 2008-02-10 18:35:11

Assignee: @LouHafer

Version:

Hi,

for a problem which has a row of the form

  sum(i, x(i)) == 0

where i goes over 20 elements, and the x(i) do not appear somewhere else, DyLP (stable/1.3) reports a solution with all x(i) variables free (NBFR), while I would expect to have at least one in the basis.
I've attach the model as mps file.

Best,
Stefan

make distclean fails in OS/DyLP

Issue created by migration from Trac.

Original creator: Gassmann

Original creation time: 2011-03-08 17:49:47

Assignee: @LouHafer

in OS trunk version 4072, make distclean fails in DyLP, which it uses as an external:

make[2]: Entering directory `/home/gassmann/datafiles/research/OS/OS-trunk-work/vpath-debug/DyLP'

rm -rf .libs _libs

/bin/bash: ./build_dylpdoc: /bin/csh: bad interpreter: No such file or directory

make[3]: Entering directory `/home/gassmann/datafiles/research/OS/OS-trunk-work/vpath-debug/DyLP/doc'

make[3]: * No targets specified and no makefile found.Stop.

make[3]: Leaving directory `/home/gassmann/datafiles/research/OS/OS-trunk-work/vpath-debug/DyLP/doc'

make[2]: * [mostlyclean-local] Error 2

make[2]: Leaving directory `/home/gassmann/datafiles/research/OS/OS-trunk-work/vpath-debug/DyLP'

make[1]: * [distclean-recursive] Error 1

make[1]: Leaving directory `/home/gassmann/datafiles/research/OS/OS-trunk-work/vpath-debug/DyLP'

make: * [distclean-recursive] Error 1

Build script fails on OS X because it is unable to check if an IEEE floating point value is finite

configure: WARNING: Cannot find a C function to check if an IEEE floating point
value is finite. There is no hope of building dylp on this
system.

Continuation of discussion with @LouHafer on coin-or-tools/homebrew-coinor #80

The root cause is that isfinite is a macro on Mac OS, so AC_CHECK_FUNC is unable to resolve the symbol in ac_dylp_find_fp_funcs.m4

However, replacing the AC_CHECK_FUNC for isfinite with the following check does not resolve the symbol either:
AC_CHECK_DECL([isfinite],[ac_name_of_isfinite=isfinite],,[#include <math.h>])

Some searching finds similar problems in the past:

https://list.coin-or.org/pipermail/coinutils/2011-November/000027.html
and
https://issues.fast-downward.org/issue295

According to the mailing list discussion, there seems to be (at least circa 2011) some odd behaviour related to importing <math.h> vs but the code builds with isfinite and using std::isfinite seems ridiculous, and, anyway, after trying various permutations of those, it is still unable to resolve anything.

Suggestions are welcome.

Configuration fails under CYGWIN

Issue created by migration from Trac.

Original creator: @tkralphs

Original creation time: 2006-09-20 16:53:16

Assignee: @LouHafer

Version:

The configure script fails under CYGWIN (at least when run from CoinAll). Unfortunately, I forgot to copy the error when I had it on my laptop. If you want, I can try to reproduce it. --Ted

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.