[Coin-standards] minutes / strategy
Irv Lustig
ilustig at ilog.com
Wed Apr 10 11:26:29 EDT 2002
Leo:
At 12:35 AM 4/10/02 -0500, Leonardo B. Lopes wrote:
>Great! At least one person read that long message :)... It'd be nice to
>get other people's opinions on some of these things...
I agree!
>I didn't necessarily expect them to do that very often, especially to you.
>I probably wouldn't complain about that issue to you if I were an user
>either.
I talk to lots of optimization users, and I do hear the issues that bother
them. People do express their "pains" in terms of using optimization software.
> But I wonder if they complain about some related things: Do you
>hear complaints about users who wished they could do some Oracle
>integration?
Yes. And we provide solutions for that.
> Or who could really benefit from running SPSS or Mathematica
>over some data before using it in an optimization code?
Yes, and our customers do it all the time.
> Or who would like
>to develop web interfaces to their applications?
Yes, and our customers do it all the time.
> Do you think you might be
>able to sell more cplex licenses if people didn't have to install it on
>their own machines?
NO! There is a real challenge to make sure that the growth of server-based
optimization does not erode into our revenues that are traditionally based
on client-based deployments. The only thing that prevents having CPLEX on
a web server is our license agreement, not technology.
>I think that _part_ of creating more satisfactory answers to those
>questions, and thus creating new growth opportunities and new research
>material for optimization, is coming up with better ways to ship
>optimization instances around.
Only if the cost of shipping them around between applications is cheap.
What seems to be happening is that people have data in databases that needs
to be transformed in some way to an optimization instance, and then the
optimization instance needs to be solved. The data that drives the
instance is much smaller than the description of the instance. So, what we
see people doing is setting up servers where the server queries the
(possibly remote) database to get the relevant data, builds the instance,
and then solves the problem.
Here's a simple example that I use all the time from AMPL. Take a look at
the model steelT.mod and datafile steelT.dat. Here, you have 31 data items
needed to describe a problem that has 12 constraints, 24 variables, 38
matrix nonzeros, 24 objective nonzeros, 5 RHS nonzeros, 8 bound nonzeros.
So, now the number of nonzero values needed to represent the problem is 75.
(And I'm not even counting the storage required to tell where all these
nonzeros are located) The requirements for describing the problem have more
than doubled from the data instance. Now, scale up the problem to 100
products and 500 time periods. The data requirements increase, but the
problem instance requirements increase even more. If someone were to
create a server for solving this problem, it would be smarter to set up the
server to receive the equivalent (in XML, say) of "steelT.dat", rather than
the equivalent of the complete problem instance. Or, even better, have the
data live on the same server as the optimization solver.
> That is why IMHO, amongst other
>developments we need a better, open, comprehensive standard.
I still think the standard is a solution looking for an industrial
problem. However, IMHO, the standard *does* help academic research.
>That is not really my vision for the standard. I think of communicating
>instances, not models. That distinction gets complicated once programs get
>sufficiently sofisticated (especially with CLP), and that is one of the
>things we need to figure out.
I agree.
>That's important. I hadn't though about it that way. I hope you (Irv) can
>raise a flag for that once we move to technical aspects. Do you think
>block structures would make users uncomfortable?
Maybe. It's hard to say because it's not clear how well people can describe
block structures.
>Forgiven. I share this concern, in the cases where files would actually be
>written and read. But I believe we can engineer to keep alpha pretty low.
>BTW, how important is read/write time in the business environment?
Today, especially when people use modeling languages, we often see more
time spent in model generation than in the solver itself. Read/write time
just adds to that generation time. It needs to be kept low.
>I don't think of the format as any more useful for modeling than MPS is. I
>would hope people don't think about the block structure when they are
>modeling. But the structure can be useful for computers to look at, and is
>something that can be extracted from the model.
I'm not sure how well we know how to do that yet, but I admit I'm not up on
the literature in this regard.
>
>It does, for a lot of cases. Just like ILOG's or IBM's libraries do for
>some other cases. But they all solve a different problem than this
>standard would. My vision of a standard is for machine <-> machine
>communication. The standard would be used by people developing tools that
>complement or augment ampl or ILOG or IBM software. I think there is a lot
>of value to be added in that realm, but it isn't going to happen if
>manipulating optimization problems is as hard as it is now.
I don't see how a new standard makes it *easier* to manipulate optimization
problems. If there is a new standard, I have to understand it in order to
use it. And if the standard represents instances and not models, creating
instances using a new standard is just as hard as it is to use any of the
solver libraries. This is why modeling languages are so appealing. They
make the manipulation of optimization problems much easier.
>I agree that people being able to apply optimization is the number one
>limitation we currently have, and I hope we are both right, since I intend
>to expend quite a bit of intellectual effort over the next couple decades
>working on that problem. I think that a big part of solving this problem
>is creating domain-specific extensions to current modeling tools.
I think this is a nice idea.
> To do
>that, we will often need to interface with non-optimization applications.
>It better be cheap and easy to do that, and good standards are part of the
>solution.
Those standards will make it easier to integrate external data into
optimization tools. And we need that. This is one of the big problems our
customers face. But I don't see how a standard helps integrate
optimization into non-optimization applications. That is being addressed
by ILOG, Dash, and Maximal via products like OPL Studio, Xpress-Mosel, and
Optimax, respectively. It is those tools that need to improve in order to
address the integration problem.
>I also think that the applications are there *today*, and that we need a
>lot more than a standard to make them successful. A standard doesn't solve
>all the problems, but it helps create an environment where the problems
>can be solved. Without it, there are a lot of things that would be just
>too cumbersome to do. A standard is not a sufficient, but a necessary
>condition.
I disagree that a standard for representing problem instances is necessary
for the growth of optimization applications. We have lots of tools and
environments (from ILOG as well as ILOG's competitors) that make
optimization easier to use and integrate into applications. IMHO, if we
could agree on a standard modeling language where each vendor could provide
their own implementation of that language, we'd be far better off. But I
don't see how all the vendors could agree on what that common language
should look like. It needs to have features that are present in AMPL, OPL,
MPL, and Mosel. And someone needs to put a reference implementation of
such a language in the public domain, or at least create a scheme for
licensing that implementation so that the vendors could modify it. This is
what Sun has done with Java. AMPL almost has these properties, but the
implementation can't be modified by the vendors, and there are some design
deficiencies that should be fixed.
-Irv
More information about the Coin-standards
mailing list