[Coin-discuss] re: Preserving row and column names using readLP & OsiSolverInterface
Francois Margot
fmargot at andrew.cmu.edu
Sat Feb 11 14:06:33 EST 2006
Matt:
I sent the new version to Laci on Wednesday 2/8.
Francois
On Fri, 10 Feb 2006, Matthew Saltzman wrote:
> Are there unit test changes in the offing related to this issue? Currently,
> the OSI unit test fails (at least with CPLEX) when saving and reading back a
> problem with non-unique row names.
>
> On Mon, 6 Feb 2006, Matthew Saltzman wrote:
>
>> On Mon, 6 Feb 2006, Francois Margot wrote:
>>
>>>
>>> John:
>>>
>>> I will make the changes. Note that, as far as I know, it is impossible
>>> to specify ranged constraints in the "Cplex" LP format
>>> (see http://plato.asu.edu/cplex_lp.pdf). They have to be written
>>> as two separate constraints.
>>
>> Or as equality with explicit bounded slack.
>>
>> I tried setting a bound on a constraint in CPLEX, but it appeared not to do
>> the right thing.
>>
>> Matt
>>
>>
>>>
>>> Francois
>>>
>>>
>>> On Mon, 6 Feb 2006, John J Forrest wrote:
>>>
>>>> Francois,
>>>>
>>>> OK - tighten restrictions on row names but then writeLP should be
>>>> changed.
>>>> writeLP must produce a valid model from a valid model. Either it must be
>>>> enforced that changeNameOnrange be true or a better alternative is to
>>>> write out the ranged constraint correctly.
>>>>
>>>> John Forrest
>>>>
>>>>
>>>>
>>>> Francois Margot <fmargot at andrew.cmu.edu>
>>>> Sent by: coin-discuss-bounces at list.coin-or.org
>>>> 02/04/2006 08:54 AM
>>>> Please respond to
>>>> Discussions about open source software for Operations Research
>>>> <coin-discuss at list.coin-or.org>
>>>>
>>>>
>>>> To
>>>> Discussions about open source software for Operations Research
>>>> <coin-discuss at list.coin-or.org>
>>>> cc
>>>>
>>>> Subject
>>>> Re: [Coin-discuss] re: Preserving row and column names using readLP &
>>>> OsiSolverInterface
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, 2 Feb 2006, John J Forrest wrote:
>>>>
>>>>> Francois,
>>>>>
>>>>> I strongly disagree. If there are no names or no duplicates then the
>>>> code
>>>>> I added is not invoked. If there are duplicates then without my change
>>>>> accessing some row names will give a segmentation error. The hash
>>>>> functions are never used for row names and it is only row names I am
>>>>> checking.
>>>>
>>>> First, there is now a memory leak: since stopHash(0) sets numberHash[0]
>>>> to
>>>> 0,
>>>> when the CoinLpIO object is deleted, the array names_[0] is not freed
>>>> properly.
>>>>
>>>> Second, the method CoinLpIO::rowIndex() now sometimes behaves
>>>> incorrectly:
>>>>
>>>> asking for the index of a row having a particular name always returns -1,
>>>> i.e. it claims that no name is in the list of row names.
>>>>
>>>>>
>>>>> So I think my solution does not harm anyone and helps people who have
>>>>> duplicates.
>>>>
>>>> One bug is replaced by two. I am not convinced that this is an
>>>> improvment.
>>>>
>>>> I think that we have to decide if we want to support duplicate row names
>>>> or not. In the current implementation, the warning that is printed when
>>>> non distinct row names are identified was intended to warn the user that
>>>> strange behavior (including possible seg faults) might come from that
>>>> fact.
>>>>
>>>> If we want to fully support identical row names, I see 2 possibilities:
>>>>
>>>> 1) Remove hash tables for row names and replace them by a vector. This
>>>> requires
>>>> changes in several methods dealing with row names.
>>>>
>>>> 2) Have hash tables storing duplicates. Requires a new set of hash table
>>>> methods.
>>>>
>>>> In addition, we have to provide a method that returns all the indices of
>>>> rows
>>>> having a given name.
>>>>
>>>> The other possibility (my preference) is to tighten the restrictions on
>>>> names:
>>>> all row names must be distinct. If non distinct names are provided, then
>>>> either an error is raised or the names are automatically replaced by
>>>> default
>>>> names.
>>>>
>>>> I can make the changes once we agree on what we want to do.
>>>>
>>>> Francois
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Coin-discuss mailing list
>>>> Coin-discuss at list.coin-or.org
>>>> http://list.coin-or.org/mailman/listinfo/coin-discuss
>>>>
>>>>
>>> _______________________________________________
>>> Coin-discuss mailing list
>>> Coin-discuss at list.coin-or.org
>>> http://list.coin-or.org/mailman/listinfo/coin-discuss
>>>
>>
>>
>
> --
> Matthew Saltzman
>
> Clemson University Math Sciences
> mjs AT clemson DOT edu
> http://www.math.clemson.edu/~mjs
>
>
More information about the Coin-discuss
mailing list