[OS] [Ipopt] [Cbc] Linear System Constraint Least Square

Tony Kelman kelman at berkeley.edu
Thu Oct 24 19:01:12 EDT 2013


I’d recommend MinGW rather than Cygwin, as Cygwin applications will always depend on Cygwin dll’s.

When you’re running an MSYS shell, make sure you have it set up to use your TDM-GCC MinGW64 compilers by changing the paths appropriately in the file /etc/fstab.

Make sure you download the ThirdParty/ASL, ThirdParty/Blas, ThirdParty/Lapack, ThirdParty/Metis, and ThirdParty/Mumps sources using the ./get.ASL, etc scripts. You’ll need wget for these, which is easiest to install in MSYS with the following command:
mingw-get install msys-wget

Getting a DLL with MinGW64 should be possible (though not in an easy way, the autotools aren’t set up to do this all for you in MinGW), but one step at a time - try to configure, make test and get a working AMPL bonmin.exe (and/or an Optimization Services OSSolverService.exe) first. MIQP’s should be simple enough to create in OSiL format, so you could solve them via command-line.

-Tony


From: soufiane khiat 
Sent: Thursday, October 24, 2013 10:58 AM
To: Tony Kelman 
Cc: Ted Ralphs ; OS at list.coin-or.org 
Subject: Re: [Ipopt] [Cbc] Linear System Constraint Least Square

I was try with TDM-GCC distribution of MinGW64 via MSys & Cygwin but that don't work in my side.
For exemple int64_t are not reconized. make install for blas don't work (cannot confiure because he not detect Blas), etc, etc...

I would like to build Bonmin as x64 dll (without MKL) to load it on another code.


All my test was done with Bonmin Release 1.7.2. I will test with Trunk...




2013/10/24 Tony Kelman <kelman at berkeley.edu>

  Just for reference sake, the whole COIN-OS stack builds nicely using MSYS and the TDM-GCC distribution of MinGW64 (http://tdm-gcc.tdragon.net/). You will need to add the configure flag ADD_FFLAGS=-static-libgcc, although that won’t be necessary any more after https://projects.coin-or.org/BuildTools/changeset/3004 makes its way through testing and into a future release.

  If you want to end up with redistributable binaries that are statically linked to libgfortran, the best way I’ve found for doing that is by calling make as:
  AM_LDFLAGS=-all-static make all install test

  -Tony


  From: soufiane khiat 
  Sent: Monday, October 21, 2013 12:26 PM
  To: Ted Ralphs 
  Cc: OS at list.coin-or.org ; ipopt at list.coin-or.org ; cbc ; Bonmin at list.coin-or.org 
  Subject: Re: [Ipopt] [Cbc] Linear System Constraint Least Square

  Thank for you detailled answer and clarification.

  I can't buy a licence of solver like AMPL (http://www.ampl.com/index.html), So I tried OS. MS Binaries, but as expected only x86 are provided and after linking:
  amplsolv.lib(fpinitmt.obj) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'...


  And Intel x64 binary could not be used, due to the MKL dependencies (note: MKL is not free http://software.intel.com/en-us/intel-mkl).


  So I will try to build x64 version with MinGW (I can't switch to x86).


  If anyone has a x64 binary without MKL dependence that would very helpful for Coin-OR community.


  Cheers

  Soufiane




  2013/10/21 Ted Ralphs <ted at lehigh.edu>

    Sorry, I guess my answer wasn't too clear on a few points. The bottom line is that you need a Fortran compiler to build Ipopt. If you want to build Ipopt with Visual Studio, the only way I have successfully done it is using the Intel Fortran compiler along with the Visual Studio compiler. There may be some other ways to do it (you can build MSVC++ compatible libraries with the MinGW compilers for instance, though I've never done it), but this is by far the easiest. Actually, the only way to build the whole stack "out of the box" with the Visual Studio compilers is to use the autotools and the MSys shell, i.e., not the Visual Studio IDE. Keep in mind, though, that the binaries for ipopt, Bonmin, Couenne, etc only work through AMPL. 


    To clarify one other point, the OS project is not just for building Web service applications. It provides libraries and binaries that work in the usual way, but wrap the other solvers and provide a uniform interface to them, including an XML-based format for specifying instances. I've cross-posted this to the more relevant lists in case others want to comment.


    Cheers,

    Ted







    On Mon, Oct 21, 2013 at 9:16 AM, soufiane khiat <soufiane.khiat at gmail.com> wrote:

      I can't use Intel Compiler for many reason (one of them is a non-optimal code for AMD http://en.wikipedia.org/wiki/Intel_C++_Compiler#Criticism).

      So I am constraint to use Visual Studio 2012 (v11), is not a problem for major part Coin-OR project's. I can automatically update to v11 from MSVisualStudio/v10 folder provided by projects.

      I don't need specially a binary (dll or/and lib) I prefer to build it my self with my own options, but many dependencies are not explicited, I know on linux it is very easy to compile anythink (sudo apt-get ...package...) I can get directly the correct package with dependencies after make + install all my dependencies are installed, but is not a case for major part of the people on Windows Environnement.

      I can't use a webservice I have to provide a standalone for users.

      I try to build all dependencies, but all are not specified, for exemple Bonmin need IpOpt and IpOpt need mpi etc...

      I saw some project delivered with Visual Studio and Full-Third Party include on one archive, I think this initiative could be generalized.


      Thanks for you time and your help


      Cheers,

      Soufiane





      2013/10/19 Ted Ralphs <ted at lehigh.edu>

        Bonmin can be built fairly easily on x64 if you have access to an Intel 64-bit compiler. Is there a reason you specifically need 64-bit binaries? I will shortly release an installer for 32-bit Windows versions of the COIN solvers built with the 32-bit Intel Fortran compiler and the 32-bit version of Visual Studio. If you need 64-bit, there will also be a 64-bit version built with MinGW. The binary of Bonmin can only be used through AMPL, however. You might take a look at the Optimization Services project (https://projects.coin-or.org/OS), which provides alternative interfaces to Bonmin and many of the other COIN solvers.


        Cheers,

        Ted




        On Fri, Oct 18, 2013 at 7:36 PM, soufiane khiat <soufiane.khiat at gmail.com> wrote:

          Hi,


          Yes indeed Bonmin look like what I need. But on windows it's a nightmare to build. And binary distribution do not provide any release for Visual Studio x64.


          Other project like:

          - LaGO

          - Couenne

          - NLPAPI
          ...


          Could provide a function to solve my MIQP ?


          Thanks for you help

          Soufiane





          2013/10/17 Stefan Vigerske <stefan at math.hu-berlin.de>

            Hi,

            you asked for an alternative interfaces to do MIQP with Cbc, not whether Cbc can solve your problem.
            I never tried solving (convex) MIQPs with Cbc. Within COIN-OR, I would probably go with Bonmin.

            Stefan 


            On 10/17/2013 07:46 PM, soufiane khiat wrote:

              Cbc do not allow us to solve this kind of problem?
              Or any package on Coin-OR?

              Thanks

              Soufiane


              2013/10/17 Mike Steglich <mike.steglich at berlin.de>


                An additional alternative for an open source MPL is CMPL (coliop.org).

                Mike

                Am 17.10.2013 um 16:26 schrieb Stefan Vigerske:


                  Hi,

                  you might want to look into algebraic modeling languages then, e.g.,
                  Pyomo, ZIMPL for open source, and
                  AIMMS, AMPL, GAMS for commercial.

                  Stefan


                  On 10/16/2013 08:18 PM, soufiane khiat wrote:

                    Hello,

                    I'm new on Optimization topic. I try to minimize:
                    ||Ax-b||_2
                    Subject to a list of constraint {B_i, L_ij, E_ij}:
                    B_i (each x_i could have a: no bound, min bound, max bound or both):
                    min_i<=x_i<=max_i

                    L_ij (with i != j, (i,j) On [1..N]):
                    x_i + x_j = u_ij With u_ij = {0 OR 1}

                    E_ij (with i != j, (i,j) On [1..N]):
                    u_i >= x_i
                    u_j >= x_j
                    u_i + u_j <= 1 With (u_i, u_j) is Binary variable like u_ij on L_ij.

                    I have no control on size of data, number of B_i, L_ij and E_ij it is

                only

                    a data.
                    A is a Matrix NxM, x and b is a vector. So I would like to find best as
                    possible x to satisfact this constraints.

                    My question is, how can I fill a CbcModel to describ this problem

                without

                    *.mps file?
                    It is possible to only provide a Matrix A and b?

                    Thanks for you answers.

                    Soufiane KHIAT
                    Software Engineer



                    _______________________________________________
                    Cbc mailing list
                    Cbc at list.coin-or.org
                    http://list.coin-or.org/mailman/listinfo/cbc



                  _______________________________________________
                  Cbc mailing list
                  Cbc at list.coin-or.org
                  http://list.coin-or.org/mailman/listinfo/cbc










          _______________________________________________
          Cbc mailing list
          Cbc at list.coin-or.org
          http://list.coin-or.org/mailman/listinfo/cbc





        -- 
        Dr. Ted Ralphs
        Associate Professor, Lehigh University
        (610) 628-1280
        ted 'at' lehigh 'dot' edu
        coral.ie.lehigh.edu/~ted





    -- 
    Dr. Ted Ralphs
    Associate Professor, Lehigh University
    (610) 628-1280
    ted 'at' lehigh 'dot' edu
    coral.ie.lehigh.edu/~ted



------------------------------------------------------------------------------
  _______________________________________________
  Ipopt mailing list
  Ipopt at list.coin-or.org
  http://list.coin-or.org/mailman/listinfo/ipopt

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/os/attachments/20131024/b7d867dd/attachment-0001.html>


More information about the OS mailing list