[Coin-standards] minutes / strategy
Irv Lustig
ilustig at ilog.com
Tue Apr 9 09:30:29 EDT 2002
Leo:
At 06:28 PM 4/8/02 -0500, Leonardo B. Lopes wrote:
>I value your opinion and experience tremendously, but it is obvious that I
>disagree with you here.
So we agree to disagree!
> More importantly, a lot of other people also do,
>both in research and in business. There really is a standards problem, and
>there are two sanity checks to show that: The attendance and discussion
>level at the different talks on the subject; and the methods through which
>optimization software currently communicates (including ILOG software).
I think you need to separate out the interest from academics and vendors,
from the *users* of optimization in business settings. (By users here, I
mean people who understand how to formulate optimization problems, not the
end users of an application embedding optimization). If I was still in
academia, I would believe that it would be a good idea to come up with a
standard. However, I work for a vendor, and the users of optimization
software aren't banging down our doors asking for a new standard. So, from
where I sit, there is not a "standards problem" for those users of
optimization.
>That might be fine for supporting bugs, or benchmarking software, but it
>is a far cry from an industry-wide solution that addresses the
>representation and communication needs we have -- and will have -- in a
>comprehensive way. To confirm this, it is enough to see that virtually
>every solver connected to ampl uses the .nl file and associated library,
>an example of a far superior solution in design and implementation.
The .nl file is a means to an end. If someone wants to use AMPL, a .nl
file provides the mechanism for hooking up a solver. It is a solution that
works, but it is NOT a trivial task to hook up a solver to AMPL! It would
have been great if AMPL had been designed to also provide an in-memory
hookup to a solver. That would have provided a cleaner solution for many
users. Maybe when a standard exists, AMPL would get re-engineered to
provide that via your standard.
AMPL is a very nice modeling language. If its implementation was not so
directly tied to its command line interface, and the language design
separated the imperative directives (solve, display, option setting,
looping, etc.) from the modeling directives, AMPL could be a potential
standard for representing problems. However, the real impediment for the
acceptance of any modeling language as such a standard is that when someone
formulates a problem using a modeling language, the model is their
intellectual property. They are not keen on sharing that with others,
including vendors! We often find that when AMPL users want us to
benchmark, they are unwilling to give us their AMPL models, but are willing
to give us MPS files. And we could be able to help them so much more if
they gave us the AMPL model, because often changing a formulation can
improve performance (especially for MIPs).
So one concern is that when you propose a standard that gets closer to a
formulation, there may be less likelihood for people to share that standard
with others.
>But XML's verbosity
>will not be a serious problem, for three reasons:
>
>First, the format can be designed to guarantee linear complexity in all
>operations;
Sure it has linear complexity. For an LP with m rows, n columns, and nz
nonzeros, the format can be parsed in O(n + m + nz) operations. This means
that the number of operations is some constant alpha times (n + m + nz).
But you're ignoring the fact that alpha is on the order of 1.0e9. (Pardon
my sarcasm and cynicism here).
> Second, part of developing an XML format is defining a DOM (in
>rough terms, a DOM is an access library). In almost all practical
>scenarios, objects will get passed around between applications directly in
>memory, using much more terse representations;
Now, things get more interesting!
> Third, since we can express
>a tremendous amount of structure using XML, we will actually produce
>smaller files to begin with. Imagine for example building a matrix out of
>blocks and having only one copy of the block. For an example of this see
>my informs presentation.
But then you'll get to the issue I mentioned above about having the format
too close to the model and the intellectual property of the model
developer. I'm also not sure if people really "think" this way in
modeling. Certainly when you write an AMPL model, the block structure is
not something you think about. And would it be that easy to figure out the
blocks from an AMPL model? (Maybe so - this would be interesting for
someone in academia to investigate).
> In addition, XML compresses extremely well. There
>is even software specifically designed to compress XML, with which the
>compressed XML becomes smaller than the compressed original data. See for
>example http://www.research.att.com/sw/tools/xmill/.
Thanks for the pointer.
>Developing a new standard means finding a cheaper, faster, easier way to
>convey mathematical programs of as many practical categories as possible,
>with as much structure information as possible, in an efficient manner and
>in the context we do business and research in.
And how does a modeling language like AMPL not achieve this goal?
>Now let me repost my question: Assume for a minute that we had such a
>mechanism in place. In other words, assume that it were much much easier,
>faster, and cheaper to communicate mathematical programming instances.
>That brings two questions:
>
>First, do people think there would be a greater number of profitable
>applications involving an optimization component?
I don't think so. The barrier today is having enough people out there who
know how to apply optimization (i.e., do good modeling) in the first place.
> Would there be new
>opportunities for complex applications, such as smarter assembly line
>products, or web-enabled sales decision support systems?
I don't think so. See previous paragraph.
> Would there be
>new opportunities for less complex applications, such as inventory
>management modules for small business software, or handheld-based
>applications?
I don't think so. See previous paragraph.
>Would there be more research problems?
Yes. A standard would help the research community.
>Second, assuming there are these applications, would your company or your
>research group be interested in them?
I think the applications are there *today*. A standard contributes very
little to our ability to make those applications successful.
-Irv Lustig
ilustig at ilog.com
Manager, Technical Services, ILOG Direct
http://www.ilog.com/
More information about the Coin-standards
mailing list