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? Jeff On Wed, Jan 16, 2013 at 5:43 PM, Alessandro Saccoia < [email protected]> 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 > Alessandro > > > On Jan 15, 2013, at 5:32 AM, Reginald Beardsley <[email protected]> > 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 <[email protected]> wrote: > > > >> From: Dmitry Nadezhin <[email protected]> > >> Subject: Re: [Help-glpk] Problem with absolute value > >> To: "Alessandro Saccoia" <[email protected]> > >> Cc: "Reginald Beardsley" <[email protected]>, "glpk" < > [email protected]> > >> 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 > >> <[email protected]> > >> 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 <[email protected]> > >> 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 <[email protected] > > > >> wrote: > >>>> > >>>>> From: Alessandro Saccoia <[email protected]> > >>>>> Subject: Re: [Help-glpk] Problem with absolute > >> value > >>>>> To: "Jeffrey Kantor" <[email protected]> > >>>>> Cc: "[email protected]" > >> <[email protected]> > >>>>> 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 > >> <[email protected]> > >>>>> 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 > >>>> [email protected] > >>>> https://lists.gnu.org/mailman/listinfo/help-glpk > >>> > >>> > >>> _______________________________________________ > >>> Help-glpk mailing list > >>> [email protected] > >>> https://lists.gnu.org/mailman/listinfo/help-glpk > >> > > > > _______________________________________________ > > Help-glpk mailing list > > [email protected] > > https://lists.gnu.org/mailman/listinfo/help-glpk > > > _______________________________________________ > Help-glpk mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/help-glpk >
_______________________________________________ Help-glpk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-glpk
