[Coin-discuss] FLOPC++

Tim Hultberg thh at mat.ua.pt
Fri Feb 7 08:00:42 EST 2003


>
> This look VERY interesting!
>
> What solver does minimize use?
> Can it use OSI's solver?

Yes, any OSI supported solver can be used. The model constructor takes a pointer to an 
OSI solver interface as argument. F.ex.

   MP_model  myModel(new OsiCpxSolverInterface);

or

   MP_model& MP_model::default_model = *new MP_model(new OsiClpSolverInterface);

>
> Would you release it under Common Public License (CPL) Open Source License?

Yes.

> If not, which license?
>
> I wonder about a few things:
>
> Why is it minimize and not MP_minimize?
> Why is it forall and not MP_forall?
> Why is it sum and not MP_sum?
> I would worry that an application program trying to use flopc++ might
> already have symbols minimize, forall, and sum defined and they will
> collide flopc++ symbols with same name.
> (As far as I know all coin symbols start with a 3 character component id to
> avoid this potential problem).

It would probably be a good idea to use MP_minimize and MP_forall as you suggest. 
I am a bit reluctant to change sum to MP_sum because it would make complicated
expressions involving many sums less appealing to read, but ....

>
> What kind of runtime performance have you experienced compared to Ampl or
> Gams?

I havent experimented with generation of big problems yet, but I would expect runtime performance
to be comparable or better than Ampl/Gams - at least that should be the goal.

A first order condition for good runtime performance is that the runtime complexity of generating
a constraint such as:
     supply(S(i)) = sum( link(i,j), x(link(i,j))) <= capacity(i);
is of the order  |link|  rather than  |S| * |link|  as one might get by a naive implementation. This condition
is fulfilled by FLOPC++. There is however  still considerable scope for "constant factor" improovements
of runtime performance, but I prefer to wait a little with this until the need is clearly identified and/or
eventual bugs (which hopefully will be diccovered if FLOPC++ becomes part of COIN) are removed.

>
> On what platforms has it been used:
> linux g++, windows microsoft visual c++, solaris, hpux, aix, ....
> With COIN components we try to support all of these.
> I think most of the current users are using Linux and then windows.

I am using linux g++. The code also uses STL, which might perhaps give portability problems
on some platforms?

>
> Thanks.
>
> JP Fasano
> jpfasano at us.ibm.com
> (914)945-1324  (tie line 862-1324)
> COIN www.coin-or.org

-- 

Tim Hultberg



More information about the Coin-discuss mailing list