[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] Problem with absolute value

From: Jeffrey Kantor
Subject: Re: [Help-glpk] Problem with absolute value
Date: Wed, 16 Jan 2013 17:57:47 -0500

Hey, thanks for the followup.  And stay in touch, I'm very intrigued by the problem and application, and would be delighted to help out if you plan to go further with the project.

By the way, if I promised to keep a secret, could you share with us which commercial this is for?


On Wed, Jan 16, 2013 at 5:43 PM, Alessandro Saccoia <address@hidden> wrote:
Hey Jeff, Reginald et al.
I was really rushed to finish this implementation by today, so I have eventually generated the data file on the fly, called glpsol and parsed its results. Not an optimal solution I know, but for this time it works. I sincerely thank you for the time you spent helping me, and I would be interested as soon as I have time to implement an easy C++ interface to the library. It's not much work and since I am sure that I will use it again in the future, there would already be a first user.
Keep in touch, thanks again

On Jan 15, 2013, at 5:32 AM, Reginald Beardsley <address@hidden> wrote:

> All I was pointing out is how to generate the syntactic sugar (e.g. "param  P :=" ) for the data section in the context of an example I made up.  It had nothing to do with Alessandro's problem.
> BTW I just noticed there's another section on scripting with MathProg  which does things rather differently.  It might be good to move the two together and structure by environment and task e.g. parameter scanning, batch execution, etc.
> FWIW I tend to be very incremental in developing problem logic and often have a dozen or more scripts and programs called from a driver script.  This makes it easier to inspect the steps along the way.
> It's very  awkward to examine a large array in a debugger.  Much better to dump it as a binary or ASCII file and look at that.  This is particularly important if you're pulling data from a large database which has data corruption issues to be dealt with. In the data I deal with I expect 1-2% bad data, so it saves time to dump the data in a viewable format at key steps in the process for review before proceeding to the next step.  It costs computer resources, but with big memories and multiple cores it's not really a problem.  I just start the jobs and go do something else for a while.  The goal is to save my time.  I can scan  several thousand plots very quickly looking for problem data.
> I should note that I developed this style on projects that take 100's of GB of data from multiple sources and require 9-12 months to complete.  For them I might write 40-50 scripts and small programs in addition to using any number of existing programs.  It's hard enough done in many small steps.  Doing it in a single large program would probably be unsuccessful with a brickwall deadline.  I'd certainly be unwilling to try anything that large with a hard deadline.  I tend to use it a lot because I never know where projects will head, but it's not needed for small well defined tasks.  It's also not well suited to repetitive work as there are too many moving parts to keep track of.  So a repeat of the same work will lead to an emphasis on consolidating things into fewer steps.
> Have Fun!
> Reg
> --- On Mon, 1/14/13, Dmitry Nadezhin <address@hidden> wrote:
>> From: Dmitry Nadezhin <address@hidden>
>> Subject: Re: [Help-glpk] Problem with absolute value
>> To: "Alessandro Saccoia" <address@hidden>
>> Cc: "Reginald Beardsley" <address@hidden>, "glpk" <address@hidden>
>> Date: Monday, January 14, 2013, 9:09 PM
>> Hi Alessandro,
>> Reginald suggeted that GLPK formulation of your problem has
>> 8 columns
>> instead of 4:
>> S0, S1, S2, S3, Z0, Z1, Z2, Z3 ,
>> He expressed this in his script, but you can do the same
>> thing in API.
>>   -Dima
>> On Tue, Jan 15, 2013 at 4:50 AM, Alessandro Saccoia
>> <address@hidden>
>> wrote:
>>> Hi Reginald,
>>> thank you for pointing me to that script. I took a
>> look, and if I will run out of time I will definitely use
>> it. The program is really cpu intensive and the alignment
>> part is an intermediate result, so I will still try to use
>> the library. dumping formatted data to disk and running
>> another program would mean to wrap everything in a script
>> and break my original program into two parts. still it's an
>> option... thanks for your help,
>>> alessandro
>>> On Jan 14, 2013, at 2:34 PM, Reginald Beardsley <address@hidden>
>> wrote:
>>>> Alessandro,
>>>> If you look here:
>>>> at script tst2a, you'll see an example of
>> generating MathProg data files in a *nix command line
>> environment which should be pretty much all you need.
>> It's much less work than writing a custom program using the
>> library calls.  It also makes modifying the model much
>> easier.
>>>> If you need to pull the data out of something messy
>> send me a sample.  awk is really good for tasks such as
>> merging data from several sources or parsing complex
>> formats.
>>>> Have Fun!
>>>> Reg
>>>> --- On Mon, 1/14/13, Alessandro Saccoia <address@hidden>
>> wrote:
>>>>> From: Alessandro Saccoia <address@hidden>
>>>>> Subject: Re: [Help-glpk] Problem with absolute
>> value
>>>>> To: "Jeffrey Kantor" <address@hidden>
>>>>> Cc: "address@hidden"
>> <address@hidden>
>>>>> Date: Monday, January 14, 2013, 6:17 AM
>>>>> Hi Jeff,
>>>>> that works wonders! Now I would just like to
>> find a way to
>>>>> use the library instead of the executable, and
>> insert all
>>>>> this information programmatically. In the glpk
>> docs it seems
>>>>> that it's up to me to introduce all the
>> variables and create
>>>>> the A matrix, but from another answer I got in
>> pvt it looks
>>>>> like I can use this syntax and have the library
>> do the
>>>>> necessary calculations.
>>>>> If I can't avoid reading the model from file, I
>> would at
>>>>> least like to be able to provide the data at
>> runtime. Thanks
>>>>> for your time!
>>>>> Alessandro
>>>>> On Jan 14, 2013, at 1:04 PM, Jeffrey Kantor
>> <address@hidden>
>>>>> wrote:
>>>>>> Hi Alessandro,
>>>>>> I don't exactly the geometry, but here's a
>> MathProg
>>>>> model for your problem. If you want to try this
>> out, cut and
>>>>> paste it into the web page at
>>>>>> Jeff
>>>>>> set N := 0..3;
>>>>>> param q{N};
>>>>>> param r{N};
>>>>>> param a := 0.95;
>>>>>> param b := 1.05;
>>>>>> var z{N} >= 0;
>>>>>> var s{N};
>>>>>> s.t. c1 {n in 0..3}: z[n] >= r[n] -
>> s[n];
>>>>>> s.t. c2 {n in 0..3}: z[n] >= s[n] -
>> r[n];
>>>>>> s.t. c3 {n in 0..2}: s[n+1] - s[n] >=
>>>>> a*(q[n+1]-q[n]);
>>>>>> s.t. c4 {n in 0..2}: s[n+1] - s[n] <=
>>>>> b*(q[n+1]-q[n]);
>>>>>> minimize obj: sum{n in N} z[n];
>>>>>> solve;
>>>>>> data;
>>>>>> param q :=
>>>>>>       0    3
>>>>>>       1    5
>>>>>>       2    8
>>>>>>       3   12
>> ;
>>>>>> param r :=
>>>>>>       0    2
>>>>>>       1    5
>>>>>>       2    7
>>>>>>       3   11
>> ;
>>>>>> end;
>>>> _______________________________________________
>>>> Help-glpk mailing list
>>>> address@hidden
>>> _______________________________________________
>>> Help-glpk mailing list
>>> address@hidden
> _______________________________________________
> Help-glpk mailing list
> address@hidden

Help-glpk mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]