help-glpk
[Top][All Lists]
Advanced

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

Re: [Help-glpk] Problem with absolute value


From: Reginald Beardsley
Subject: Re: [Help-glpk] Problem with absolute value
Date: Mon, 14 Jan 2013 20:32:04 -0800 (PST)

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:
> >>
> >> http://en.wikibooks.org/wiki/GLPK/Unix_Batch_Execution
> >>
> >> 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 
> >>> http://www3.nd.edu/~jeff/mathprog/mathprog.html
> >>>>
> >>>> 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
> >> https://lists.gnu.org/mailman/listinfo/help-glpk
> >
> >
> > _______________________________________________
> > Help-glpk mailing list
> > address@hidden
> > https://lists.gnu.org/mailman/listinfo/help-glpk
>



reply via email to

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