[Lemon-devel] Network Simplex
Kovács Péter
kpeter at inf.elte.hu
Thu Dec 6 18:13:26 CET 2012
Hi All,
> (Peter can tell you
> horror stories about e.g how the NetworkSimplex API and implementation
> was born. Hopefully for me, he will do it in private :) )
No horror stories, just challenging discussions. :) However, they were
constructive and I think they led to rather good decisions.
Anyway, I need not tell stories in private as most of the design
discussions are public, e.g.:
http://lemon.cs.elte.hu/trac/lemon/ticket/234
http://lemon.cs.elte.hu/trac/lemon/ticket/219
Best regards,
Peter
On 2012.12.06. 17:17, Alpar Juttner wrote:
> On Thu, 2012-12-06 at 14:18 +0000, Pierre Chardaire (CMP) wrote:
>
>> You distinction is not common in the OR community,
>
> In fact, it _is_ very common. Consider just the following examples:
>
> 1. Max feasible flow = Min cut theorem.
>
> It is true only if we _assume_ cap(a)>=0.
>
> 2. Feasibility condition for min calculation (Hoffman theorem)
>
> From the book Ahuja, Magnanti, Orlin: "Network Flows", page 195:
>
> Theorem 6.11 (Circulation Feasibility Conditions). A
> circulation problem with nonnegative bounds on arc flow
> is feasible if and only if for every set S of nodes
> sum(l_ij:(ij)\in(V\S,S)) <= sum(u_ij:(ij)\in(S,V\S))
>
> Again, this is true only if we _assume_ that l_ij<=u_ij.
>
> 3. Dijkstra algorithm.
> It runs and terminates and returns a path for any length
> function, but it works correctly only _assuming_ that the
> lengths are non-negative.
> Should Dijkstra alg. test the nonnegativity or can it just
> assume that?
>
> Notice the differentiation between "feasibility condition" and
> "assumption"="precondition" above. Fulfilling of the later one
> translates to "valid input" when it comes to implementation in LEMON.
>
>
>> Note: I am not totally ignorant in this field,
>
> To be honest it was clear to me, and I highly regard your opinion.
> Also, please do not consider my answers as a straightaway denial. I'm
> basically open to everything, but I would like to understand all the
> aspects of a change like the one you proposed. (Peter can tell you
> horror stories about e.g how the NetworkSimplex API and implementation
> was born. Hopefully for me, he will do it in private :) )
>
> Our main policies when designing the LEMON API are:
> * It should be as clean and uniform as possible.
> * It should be comfortable to use.
> * It should allow the fastest possible implementation.
> * Strictly maintain backward compatibility.
>
> All in all, we want to avoid "it just seemed reasonable at that time"
> type design decisions.
>
>> as I designed my own network simplex algorithm for non-oriented
>> multi-commodity flow problems:
>
> This looks very interesting. Multi-commodity flows are really a weak
> point of LEMON right now.
>
> All the best,
> Alpar
>
>>
>> @article{DBLP:journals/ior/ChardaireL02,
>> author = {Pierre Chardaire and
>> Abdel Lisser},
>> title = {Simplex and Interior Point Specialized Algorithms for Solving
>> Nonoriented Multicommodity Flow Problems},
>> journal = {Operations Research},
>> volume = {50},
>> number = {2},
>> year = {2002},
>> pages = {260-276},
>> ee = {http://dx.doi.org/10.1287/opre.50.2.260.436},
>> bibsource = {DBLP, http://dblp.uni-trier.de}
>> }
>>
>> Cheers,
>>
>> Pierre.
>>
>>> -----Original Message-----
>>> From: Alpár Jüttner [mailto:alpar.juttner at gmail.com] On Behalf Of Alpar
>>> Juttner
>>> Sent: Thursday, December 06, 2012 2:03 PM
>>> To: Kovács Péter
>>> Cc: Pierre Chardaire (CMP); lemon-devel at lemon.cs.elte.hu
>>> Subject: Re: [Lemon-devel] Network Simplex
>>>
>>> On Thu, 2012-12-06 at 13:28 +0100, Kovács Péter wrote:
>>>> Hi All,
>>>>
>>>> I generally agree with Alpar, but the distinction between invalid and
>>>> infeasible is not so clear for me in this particular case.
>>>
>>> I would say, an input is valid if the Hoffman condition works for that.
>>>
>>
>
>
>
More information about the Lemon-devel
mailing list