Re: DirectedInf
Nate Hayes wrote:
Arnold Neumaier wrote:
Nate Hayes wrote:
As controversial as it may be, more and more I believe Motion 3
is too liberal in allowing unbounded intervals. Overflow makes
things more
efficient because P1788 then no longer has to deal with special
case disctinctions between when the result is known to overflow
and be unbounded vs. when the result is known to overflow and be
bounded.
How would you then represent the interval defined by the bound
constraint x>=1 in a linear program?
Nothing overflowed, x can be any real number >=1.
If it is a constraint, then as I mentioned just last night
1 <= X
will always be true for non-empty X with the lower bound
greater-or-equal to 1. THis is all that's needed to program the
constraint.
No.
Your suggestion amounts to giving up using intervals on this problem.
How do you use your recipe and standard interval operations
to deduce from
1<=x, y=x^2-1
that y>=0?
Using the intervals from Motion 3, one simply writes
x in [1,Inf], hence y in [1,Inf]^2-1=[1,Inf]-1=[0,Inf],
and reads off from the result that Y.=0. This is how constraint
propagation works in _every_ decent presolve code for optimization.
Or one can write:
x in [1,Overflow], hence y in [1,Overflow]^2-1=[0,Overflow]
But nothing overflowed.
Yes it did: the domain of x is larger than can be represented by the
working precision of the hardware.
And you don't treat Overflow as a real number, since
Overflow^-1 = Overflow
would imply that Overflow=GoldenSectionRatio.
So you are just using Overflow as Infinity,
and pretend you do something different.
Why then not use DirectedInf which doesn't show these artifacts?
I've always said, e.g., what [1,Overflow] means to me is:
{ x | 1 <= x <= u }
where MAXREAL < u is some unknown real number.
You've already stated in past e-mails this means [1,Overflow] is a
family of compact intervals. The element of this family with the largest
upper bound is unknown.
No. The upper bound of each member of the family is known, namely it is
u. But it is not known which member of the family is intended, and no
largest element of the family exists.
You are just replacing an elegant mathematical concept by
introducing a special case of set intervals, just to work around
a minor inconvenience.
This makes the same distinction between the
decorated interval ([1,Infinity],IsBounded).
But we have this already, and we need also ([1,Infinity],IsUnbounded).
Indeed, the range if x _is_ unbounded, and we know that.
This is why in your own logic and reasoning
([1,Infinity],IsBounded) \subseteq ([1,Infinity],IsBounded)
should be "false," since each decorated interval represents a family of
possibilities: it is known in this case that the upper bound of each
interval is actually some finite number.... we just don't know _what_
number.
I revised my stand on this, and now follow the argument of Dan Zuras
that that in comparisons, the decorations should be ignored.
Fortunately, the global optimization community values unbounded
intervals too much to go that way. Just as they now have to modify
existing interval implementations to suit their needs, they'd have
to implement their own workaround around a bounded interval arithmetic
to make it handle unbounded intervals, at the cost of efficiency.
Thus the burden that should be taken away from the application area
where interval arithmetic is most widely used and the only area where
it is accepted as main stream would be back on them.
If this would become a standard, it would be worse than having no
standard, since it cements the situation for a long time to come.
I don't see any of this is true.
In a nutshell, Overflow gives the same results as Infinity in all the
interval arithmetic operations. So nothing is lost,
and nothing is gained, the concept is superfluous, as you just argue.
and it is mostly
about semantics:
The semantics of Inf is clear and simpler.
with Overflow we admit we are dealing with large but
finite unknown numbers that cannot otherwise be handled in the working
precision of the hardware.
Motion 3 already admits the same. aAn interval standfs for an unknown
number in the given range. No overflow is needed to express this
semantics. The standard mathematical semantixcs did it all the time.
So at theoretical level there is really
little difference from Infinity, and the results are mostly the same.
Some of the interval relations are slightly different, but that is
really the only difference.
Since nothing has been agreed on that so far, one can erase these
differences, without consequences for the applications.
I do have my doubts about DirectedInf, but I don't have any preconcieved
notion regarding Overflow, either (its just that right now from my
vantage point it appears to be the best solution). Bottom line for me is
I'm looking for the design that accomplishes three things:
-- facilitates the fastest and most efficient hardware and software
implementations we can think of
-- is mathematically correct
-- provides incentive to vendors like Intel, AMD, etc. to adopt the
conventions in future hardware designs, even if this only represents
incremental hardware changes that are shy of a full-blown interval procssor
I aim at the same, and more:
-- to keep the conceptual basis clean, close to the mathematics used to
create verification tools, and to minimize possible confusion.
Arnold Neumaier