[Coin-discuss] API vs modelling language

Michael Hennebry hennebry at web.cs.ndsu.nodak.edu
Thu Aug 18 16:40:22 EDT 2005


On Thu, 18 Aug 2005, Leo Lopes wrote:
[reordered]

> On 8/18/05, Michael Hennebry <hennebry at web.cs.ndsu.nodak.edu> wrote:
> > On Thu, 23 Jun 2005, Leo Lopes wrote:
> > [reordered]
> >
> > > Michael Hennebry wrote:
> > > > A reason that I almost always use an API without a modelling
> > > > language is that if I don't assign index numbers myself,
> > > > I don't know how to interpret them while my program is running.
> >
> > > Interesting comment.  ...
> >
> > How do other people's programs interpret solver output if they
                          ^^^^^^^^
> > let a modelling language implementation set the index numbers?
> If I understand your problem correctly, you are asking how to
> interpret a solver message such as  "x[1223] has impossible bounds" if
> you didn't say what 1223 was. If that is the right question, then here
> is my answer:
>
> the modeling language keeps an internal table connecting your names to
> the sequences of [variables|constraints] it creates. So if in your AML
> code you declared something like:
>
> var x{CARS};
>
> and later you populated the set CARS from a spreadsheet with something like:
>
> CARS = @OLE()
>
> Then the modeling language should keep, internally, a mapping such as:
>
> VINJ3324321324123 -> 1
> VIN J456363454634 -> 2
> .....
> VIN K12435245345 -> 1223
> .....
>
> so that in using the modeling language, any error message sent by the
> solver would be filtered so that when it arrived to you, you would see
> something like:
>
> "x[K12435245345] has impossible bounds".

That is fine for printing and reading.
Suppose the model is the generate part of a generate and test loop.
How does one do the test part without eyeball intervention?
Suppose the solver allows one to generate
problem-specific cutting planes.
How does the cut-generator tell a CARS variable from a STREETS variable?
Suppose one has solved for a set of edges forming paths.
How would one print node sequences?
How would one print a list of edges in the set?

-- 
Mike   hennebry at web.cs.ndsu.NoDak.edu
"There are three kinds of people,
those who can count and those who can't."




More information about the Coin-discuss mailing list