cs0404034/all.tex
1: \documentclass{llncs}
2: 
3: \usepackage{times,epsfig,amssymb,latexsym,lscape}
4: 
5: \newcommand{\at}{\hbox{{\it atomic}}}
6: \newcommand{\fs}{\hbox{{\it feasible}}}
7: \newcommand{\upb}{\hbox{{\it getUpperBound}}}
8: \newcommand{\MS}{\hbox{{\it MS}}}
9: \newcommand{\lb}{\hbox{{\it lb}}}
10: \newcommand{\rb}{\hbox{{\it rb}}}
11: \newcommand{\diffdiag}{\hbox{{\it diffdiag}}}
12: \newcommand{\lt}{\hbox{{\it lt}}}
13: \newcommand{\allEq}{\hbox{{\it allEq }}}
14: \newcommand{\ex}{\exists}
15: 
16: %\newcommand{\abcdef}{\ensuremath{\hbox{{\it abcdef}}}}
17: 
18: \newcommand{\A}{\mathcal{A}}
19: \newcommand{\C}{\mathcal{C}}
20: \newcommand{\E}{\mathcal{E}}
21: \newcommand{\D}{\mathcal{D}}
22: \newcommand{\F}{\mathcal{F}}
23: \newcommand{\R}{\mathcal{R}}
24: \newcommand{\N}{\mathcal{N}}
25: \newcommand{\Z}{\mathcal{Z}}
26: \newcommand{\calS}{\mathcal{S}}
27: \newcommand{\pp}{^{\prime\prime}}
28: \newcommand{\T}{\mathcal{T}}
29: \newcommand{\V}{\mathcal{V}}
30: \newcommand{\X}{\mathcal{X}}
31: 
32: \newcommand{\myVc}[3]{\ensuremath{#1_#2,\ldots,#1_{#3}}}
33: \newcommand{\myVec}[2]{\ensuremath{#1_1,\ldots,#1_{#2}}}
34: \newcommand{\cartVec}[2]{\ensuremath{#1_1 \times \cdots \times #1_{#2}}}
35: \newcommand{\exVec}[3]
36: {\ensuremath{\exists #1_1,\ldots,#1_{#2-1},#1_{#2+1},\ldots,#1_{#3}}}
37: 
38: \title{Propagation by Selective Initialization\\
39:        and Its Application to\\
40:        Numerical Constraint Satisfaction Problems}
41: %\title{Using propagation for solving composite arithmetic constraints}
42: \author{M.H. van Emden \and B. Moa}
43: 
44: \institute{Department of Computer Science, \\University of Victoria,
45: Victoria, Canada \\
46: \email{\{vanemden, bmoa\}@cs.uvic.ca},\\ WWW home page:
47: \texttt{http://www.cs.uvic.ca/\homedir vanemden/ }\\
48: }
49: 
50: %\date{}
51: \pagestyle{headings}
52: \setcounter{page}{1}
53: \begin{document}
54: \maketitle
55: 
56: \begin{abstract}
57: Numerical analysis has no satisfactory method for the more realistic
58: optimization models. However, with constraint programming one can
59: compute a cover for the solution set to arbitrarily close
60: approximation. Because the use of constraint propagation for composite
61: arithmetic expressions is computationally expensive, consistency is
62: computed with interval arithmetic.  In this paper we present theorems
63: that support, selective initialization, a simple modification of
64: constraint propagation that allows composite arithmetic expressions to
65: be handled efficiently.
66: 
67: \end{abstract}
68: 
69: \section{Introduction}
70: The following attributes all make an optimization problem more
71: difficult:  having an objective function with an unknown and possibly
72: large number of local minima, being constrained, having nonlinear
73: constraints, having inequality constraints, having both
74: discrete and continuous variables.  Unfortunately, faithfully
75: modeling an application tends to introduce many of these attributes.
76: As a result, optimization problems are usually linearized, discretized,
77: relaxed, or otherwise modified to make them feasible according to
78: conventional methods.
79: 
80: One of the most exciting prospects of constraint programming is
81: that such difficult optimization problems can be solved without
82: these
83: possibly invalidating modifications.  Moreover, constraint programming
84: solutions are of known quality:  they yield intervals
85: guaranteed to contain all solutions. Equally important, constraint
86: programming can prove the absence of solutions.
87: 
88: In this paper we only consider the core of the constraint programming
89: approach to optimization, which is to solve a system of nonlinear
90: inequalities:
91: 
92: \begin{equation}
93: \label{nonLinSys}
94: \begin{array}{ccccccccc}
95: g_1(x_1&,& x_2 &,& \ldots &,& x_m)  & \leq & 0     \\
96: g_2(x_1 &,& x_2 &,& \ldots &,& x_m) & \leq & 0     \\
97: \multicolumn{9}{c}{\dotfill}            \\
98: g_k(x_1 &,& x_2 &,& \ldots &,& x_m) & \leq & 0     \\
99: \end{array}
100: \end{equation}
101: It is understood that it may happen that $g_i= -g_j$ for some pairs
102: $i$ and $j$, so that equalities are a special case. If this occurs,
103: then certain obvious optimizations are possible in the methods
104: described here.
105: 
106: The ability to solve systems such as (\ref{nonLinSys})
107: supports optimization in more ways
108: than one.  In the first place, these systems occur as conditions
109: in some constrained optimized problems. Moreover, one of \myVec{g}{k}
110: could be defined as $f(\myVec{x}{m}) - c$, where $f$ is the objective
111: function and where $c$ is a constant.  By repeatedly solving such a
112: system for suitably chosen $c$, one can find the greatest value of $c$
113: for which (\ref{nonLinSys}) is found to have no solution.  That value
114: is a lower bound for the global minimum \cite{vnmdn03}.
115: 
116: This approach handles nonlinear inequalities with real variables.
117: It also allows some or all variables to be integer by regarding
118: integrality as a constraint on a real variable \cite{bnldr97}.
119: 
120: All constraint programming work in this direction has been based on
121: interval arithmetic. The earliest work \cite{BNR88} used a generic
122: propagation algorithm based directly on
123: domain reduction operators for primitive arithmetic
124: constraints. These constraints included
125: $sum(x,y,z)$ defined as $x+y=z$ for all reals
126: $x$,
127: $y$, and
128: $z$.
129: Also included was
130: $prod(x,y,z)$ defined as $xy=z$ for all reals
131: $x$,
132: $y$, and
133: $z$.
134: 
135: This was criticized in \cite{bmcv94} which advocated the use of
136: composite arithmetic expression directly rather than reducing them
137: to primitive arithmetic constraints.
138: In \cite{bggp99,vnmdn01b} it was acknowledged that
139: the generic propagation algorithm is not satisfactory for CSPs that
140: derive from composite arithmetic expressions.  These papers describe
141: propagation algorithms that exploit the structure of such expressions
142: and thereby improve on what is attainable by evaluating such
143: expressions in interval arithmetic.
144: Selective Initialization was first described in \cite{vnmdn03a}.
145: This was done under the tacit assumption that all default domains are
146: $[-\infty,+\infty]$. As a result some of the theorems in that paper are
147: not as widely applicable as claimed.
148: 
149: All of these researches are motivated by the severe difficulties
150: experienced by conventional numerical analysis to solve practical
151: optimization problems.  They can be regarded as attempts to fully
152: exploit the potential of interval arithmetic. In this paper we also
153: take this point of view. We show that, though Equation
154: (\ref{nonLinSys}) can contain arbitrarily large expressions, only a
155: small modification of the generic  propagation algorithm is needed to
156: optimally exploit the structure of these expressions.  This is made
157: possible by a new canonical form for Equation (\ref{nonLinSys}) that we
158: introduce in this paper.  In addition to supporting our application of
159: constraint processing to solving systems similar to Equation
160: (\ref{nonLinSys}), this canonical form exploits the potential for
161: parallelism in such systems.
162: 
163: \section{A software architecture for optimization problems}
164: \begin{figure}[!htb]
165: \begin{center}
166: 
167: %\begin{tabular}{r|l}
168: %\hline
169: %   4   & optimization algorithm \\
170: %\hline
171: %   3   & system of nonlinear inequalities \\
172: %\hline
173: %   2   & interval CSP \\
174: %\hline
175: %   1   & interval arithmetic \\
176: %\hline
177: %   0   & floating-point arithmetic \\
178: %\hline
179: %\end{tabular}
180: 
181: \epsfxsize=4in
182: \leavevmode
183: \epsfbox{optarch.eps}
184: 
185: \end{center}
186: \caption{
187: \label{softArch}
188: A software architecture for optimization problems.
189: }
190: \end{figure}
191: 
192: In Figure~\ref{softArch} we propose a hierarchical software architecture for
193: optimization problems. Each layer is implemented in terms of the layer below.
194: 
195: In the introduction we briefly remarked on how layer 4 can be reduced to layer
196: 3. More detail is given in \cite{vnmdn03}. For the transition between layers
197: 0 and 1 there is much material in the interval arithmetic literature. The
198: part that is relevant to constraint processing can be found in
199: \cite{hckvnmdn01}.
200: In the present paper we present a new method for implementing layer
201: 3 in terms of layer 2. But first we review the transition between layers
202: 1 and 2.
203: 
204: \section{Preliminaries}
205: In this section we provide background by reviewing some basic
206: concepts.  These reviews also serve to establish the terminology and
207: notation used in this paper.  The first few sections apply to all
208: constraint satisfaction problems, not only to numerical ones.
209: 
210: \subsection{Constraint satisfaction problems}
211: A {\em constraint satisfaction problem (CSP)} consists of a set of {\em
212: constraints}. Each of the variables in the constraint is associated
213: with a {\em domain}, which is the set of values that are possible for
214: the variable concerned. Typically, not all sets of values can be
215: domains. For example, sets of real values are restricted to intervals,
216: as described later.
217: 
218: A {\em valuation} is a tuple indexed by variables where the component
219: indexed by $v$ is an element of the domain of $v$.  A {\em solution}
220: is a valuation such that each constraint is true if every variable
221: in the constraint is substituted by the component of the valuation
222: indexed by the variable.  The set of solutions is a set of valuations;
223: hence a set of tuples; hence a \emph{relation}. We regard this relation
224: as the relation defined by the CSP.  In this way the relation that
225: is the meaning of a constraint in one CSP can be defined by
226: another.  This gives CSPs an hierarchical structure.
227: 
228: With each constraint, there is an associated {\em domain
229: reduction operator}\/; DRO for short.  This operator may remove
230: from the domains of each of the variables in the constraint certain
231: values that do not satisfy the constraint, given that the other
232: variables of the constraint are restricted to their associated
233: domains.  Any DRO is contracting, monotonic, and idempotent.
234: 
235: When the DROs of the constraints are applied in a ``fair'' order,
236: the domains converge to a limit or one of the domains becomes empty.
237: A sequence of DROs activations is \emph{fair} if every one of them occurs
238: an infinite number of times.  The resulting
239: Cartesian product of the domains becomes the greatest common fixpoint
240: of the DROs \cite{vnmd97,aptEssence}.  If one of the domains becomes
241: empty, it follows that no solutions exist within the initial domains.
242: 
243: In practice, we are restricted to the domains that are representable
244: in a computer. As there are only a finite number of these, any fair
245: sequence of DRO applications yields domains that remain constant
246: from a certain point onwards.
247: 
248: \subsection{Constraints}
249: According to the usual terminology in constraint programming,
250: a constraint states that a certain relation holds between
251: its arguments.
252: But in first-order predicate logic the same role
253: is played by an \emph{atomic formula}.
254: In this paper we adopt the
255: terminology of first-order predicate logic for the meaning
256: of ``atomic formula'' and we reserve ``constraint'' for a
257: special case.
258: 
259: Thus an atomic formula consists of a predicate symbol
260: with terms as arguments. A \emph{term} is a function
261: symbol with terms as arguments. What makes an atomic
262: formula first-order is that a predicate symbol can only
263: occur as the outermost symbol in the formula.
264: 
265: 
266: At first sight, the inequalities in Equation (\ref{nonLinSys})
267: are atomic formulas. In fact, they follow the related, but
268: different, usage that prevails in informal mathematics.
269: The inequality
270: 
271: \begin{equation}
272: \label{inEq}
273: \begin{array}{ccccccccc}
274: g_i(x_1&,& x_2 &,& \ldots &,& x_m)  & \leq & 0
275: \end{array}
276: \end{equation}
277: is an atomic formula where $\leq$ is the predicate symbol
278: with two arguments, which are the terms
279: $g_i(x_1, x_2 , \ldots , x_m)$ and $0$.
280: A possible source of confusion is that in mathematics
281: $g_i(x_1, x_2 , \ldots , x_m)$ is not necessarily interpreted
282: as a syntactically concrete term,
283: but as an abstractly conceived function $g_i$ applied to the
284: arguments
285: \myVc{x}{1}{m}. The function could be defined by means of a term
286: that looks quite different; such a term could be
287: nested and contain several function symbols. For example,
288: Equation (\ref{inEq}) could be
289: $g_i(x_1,x_2) \leq 0$
290: with $g_i$ defined as
291: $g_i(x,y) =  x^2 + xy - y^2 $ for all $x$ and $y$.
292: Accordingly, the atomic formula corresponding to Equation (\ref{inEq})
293: is
294: \begin{equation}
295: \label{inEqEx}
296: \begin{array}{ccccccccc}
297: \leq(+(sq(x),-(\times(x,y),sq(y))),0).
298: \end{array}
299: \end{equation}
300: Taking advantage of infix and postfix notation this becomes
301: $x^2 + xy - y^2 \leq 0$.
302: 
303: A \emph{constraint} is an atomic formula without function symbols.
304: An example of such an atomic formula is
305: $sum(x,y,z)$, which is a ternary constraint whose relation is defined
306: by $x+y=z$ for all reals $x$, $y$, and $z$.
307: 
308: In this paper we translate Equation~(\ref{inEqEx}) to a CSP
309: with the set of constraints
310: $$
311: \{t_1 \leq 0,sum(t_2,t_3,t_1),sq(x,t_2),sum(t_5,t_3,t_4),
312:   prod(x,y,t_5),sq(y,t_4)
313: \}
314: $$
315: 
316: Consider a constraint $c(\myVec{x}{n})$. The meaning of predicate
317: symbol $c$ is a relation, say $r$.
318: For all $i \in \{1,\ldots,n\}$, a value $a_i$ for variable
319: $x_i$ is \emph{inconsistent} with respect to $r$ and domains
320: $X_1,\ldots,X_{i-1},X_{i+1},\ldots,X_{n}$
321: iff it is not the case that
322: \begin{eqnarray*}
323:   \ex a_1 \in X_1,\ldots,
324:   \ex a_{i-1} \in X_{i-1},\ex a_{i+1}\in X_{i+1},\ldots,
325:   \ex a_{n} \in X_{n} \hbox{ such that } \\
326:  \langle \myVec{a}{n} \rangle \in r.
327: \end{eqnarray*}
328: A DRO for $c$ may replace one or more
329: of the domains \myVec{X}{n} by a subset of it if the set difference between
330: the old and the new domains contains inconsistent values only.
331: A DRO is \emph{optimal}
332: if every domain is replaced by the smallest domain containing
333: all its consistent values.
334: We call a constraint
335: \emph{primitive} if an optimal DRO is available for it that is
336: sufficiently efficiently computed.
337: What is sufficient depends on the context.
338: 
339: \subsection{Constraint propagation}
340: To gain information about the solution set,
341: inconsistent values are removed as much as possible with modest
342: computation effort.  For example, DROs can be applied as long as
343: they remove inconsistent values.  It is the task of a constraint
344: propagation algorithm to reach as quickly as possible a set of
345: domains that cannot be reduced by any DRO.
346: Many versions of this algorithm exist
347: \cite{aptEssence,rthpra01}.
348: They can be regarded as refinements of
349: the algorithm in Figure~\ref{lGPA}, which we refer to as the
350: \emph{generic propagation algorithm}\/; GPA for short.
351: 
352: GPA maintains a pool of DROs, called {\em active set}.  No order
353: is specified for applying these operators.  Notice that the active
354: set $A$ is initialized to contain all constraints.
355: 
356: \begin{figure}
357: \begin{tabbing}
358: put all constraints into the active set $A$\\
359: while \=( $A \neq \emptyset$) $\{$\\
360:          \>choose a constraint $C$ from $A$\\
361:          \>apply the DRO associated with $C$\\
362:          \> if one of the domains has become empty, then stop\\
363:          \>add to $A$ all constraints involving variables whose
364:            domains have changed, if any\\
365:          \>remove $C$ from $A$\\
366: $\}$
367: \end{tabbing}
368: \caption{
369: \label{lGPA}
370: A pseudo-code for GPA.
371: }
372: \end{figure}
373: 
374: \subsection{Intervals}
375: A {\em floating-point number} is any element of $F \cup \{-\infty,
376: +\infty\}$, where $F$ is a finite set of reals. A {\em floating-point
377: interval} is a closed connected set of reals, where the bounds, in
378: so far as they exist, are floating-point numbers. When we write
379: ``interval'' without qualification, we mean a floating-point
380: interval.  For every bounded non-empty interval $X$, $lb(X)$ and
381: $rb(X)$ denote the least and the greatest element of $X$ respectively.
382: They are referred to as the left and the right bound of $X$.  If
383: $X$ is not bounded from below, then $lb(X) = -\infty$.
384: Similarly, if $X$ is not bounded from above, then
385: $rb(X) = +\infty$.
386: Thus, $ X = [lb(X), rb(X)]$ is a convenient
387: notation for all non-empty intervals, bounded or not.
388: 
389: A {\em box} is a Cartesian product of intervals.
390: 
391: \subsection{Solving inequalities in interval arithmetic}
392: 
393: Moore's idea of solving inequalities such as those in Equation
394: (\ref{nonLinSys}) by means of interval arithmetic is at least as important as
395: the subsequent applications of interval constraints to this problem.
396: 
397: Suppose we wish to investigate the presence of solutions of a single
398: inequality in Equation (\ref{nonLinSys}) in a box
399: $X_1 \times \cdots \times X_m$.
400: Then one evaluates in interval arithmetic the
401: expression in the left-hand side.
402: As values for the variables $x_1 , \ldots , x_m$
403: one uses the intervals $X_1 , \cdots , X_m$.
404: Suppose the result is the interval
405: $[a_i,b_i]$. We have exactly one of the following three cases.
406: If $0 < a_i$ for at least one $i$, then there are no solutions.
407: If $b_i \leq 0$ for all $i$, then all tuples
408: in $X_1 \times \cdots \times X_m$ are solutions.
409: If $a_i \leq 0 < b_i$ for at least one $i$, then either of the above may be
410: true.
411: In this same case of $a_i \leq 0 < b_i$,
412: it may also be that some of the tuples
413: in $X_1 \times \cdots \times X_m$ are solutions,
414: while others are not.
415: 
416: Again, in the case where $a_i \leq 0 < b_i$,
417: it may be possible to split $X_1 \times \cdots \times X_m$.
418: In this way, a more informative outcome may be obtained
419: for one or both of the results of splitting.
420: Such splits can be repeated as long as possible and necessary.
421: 
422: %%%%%%%%%%%%%%%%%(This would be nice.)
423: %If the expression on the left-hand side contains no multiple occurrences of
424: %any variable, then $a_i \leq 0$ implies that at least one solutions of the
425: %$i$-inequality exists in $X_1 \times \cdots \times X_m$.
426: 
427: \subsection{Interval CSPs}
428: 
429: Problems in a wide variety of application areas can be expressed
430: as CSPs.  Domains can be as different as booleans, integers, finite
431: symbolic domains, and reals.  In this paper we consider {\em Interval
432: CSPs} (ICSPs), which are CSPs where all domains are intervals and
433: all constraints are primitive.
434: 
435: ICSPs are important because they encapsulate what can be
436: efficiently computed; they represent Layer 2 in the software
437: architecture of Figure~\ref{softArch}.
438: The layer is distinct from Layer 3 because in Equation (\ref{nonLinSys})
439: there typically occur atomic formulas
440: that contain function symbols.
441: 
442: To emphasize the role of ICSPs as a layer of software
443: architecture, we view them as a \emph{virtual machine}, with a
444: function that is similar to those for Prolog or Java. Just as a
445: program in Prolog or Java is translated to virtual machine
446: instructions, a system such as Equation (\ref{nonLinSys}) can be
447: translated to an ICSP, as described in a later section.
448: 
449: The instructions of the ICSP level are DROs, one for each
450: constraint.  As an example of such an ICSP virtual machine instruction,
451: consider the DRO for product constraint. It reduces the box
452: $[a,b]\times [c,d]\times [e,f]$ to the box that has the projections
453: \begin{eqnarray}
454: \varphi([a,b] & \cap & ([e,f]/[c,d])) \nonumber\\
455: \varphi([c,d] & \cap & ([e,f]/[a,b])) \nonumber\\
456: \varphi([e,f] & \cap & ([a,b]*[c,d])) \nonumber
457: \end{eqnarray}
458: Here $\varphi$ is the function that yields the smallest interval
459: containing its argument.
460: 
461: Of particular interest is the effect of the DRO when all variables
462: have $[-\infty,+\infty]$ as domain.  For each argument, the domain
463: after application of the DRO is defined as the \emph{default domain}
464: of that argument.  Typically, default domains are $[-\infty,+\infty]$.
465: Notable exceptions include the constraint $sin(x,y)$ (defined as
466: $y = \sin(x)$), where the default domain of $y$ is $[-1,1]$. Another
467: is $\hbox{sq}(x,y)$ (defined as $y = x^2$), where the default domain
468: of $y$ is $[0,\infty]$.
469: 
470: A difference with other virtual machines is that
471: a program for the ICSP virtual machine is an unordered collection of DROs.
472: Programs for other virtual machines are ordered sequences of instructions.
473: In those other virtual machines,
474: the typical instruction does not specify the successor instruction.
475: By default this is taken to be the next one in textual order.
476: Execution of the successor is implemented
477: by incrementing the instruction counter by one.
478: 
479: The simplicity of the instruction sequencing in conventional virtual
480: (and actual) machines is misleading. Many instruction executions
481: concern untypical instructions, where the next instruction is
482: specified to be another than the default next instruction.  Examples
483: of such untypical instructions are branches (conditional or
484: unconditional) and subroutine jumps.
485: 
486: In the ICSP virtual machine, the DROs are the instructions,
487: and they form an unordered set. Instead of an instruction counter
488: specifying the next instruction, there is the active set of GPA
489: containing the set of possible next instructions. Instead of an
490: instruction or a default rule determining the next instruction to
491: be executed, GPA selects in an unspecified way which of the DROs
492: in the active set to execute.  In this way, programs can be
493: declarative:  instructions have only meaning in terms of \emph{what}
494: is to be computed.  \emph{How} it is done (instruction sequencing),
495: is the exclusive task of the virtual machine.
496: 
497: \subsection{A canonical form for nonlinear numerical inequalities}
498: \label{arch}
499: 
500: Equation (\ref{nonLinSys}) may have multiple occurrences of variables
501: in the same formula.  As there are certain advantages in avoiding such
502: occurrences, we rewrite without loss of generality the system in
503: Equation~(\ref{nonLinSys}) to the canonical form shown in
504: Figure~\ref{singleSys}.
505: 
506: \begin{figure}
507: \begin{displaymath}
508: \begin{array}{ccccccccc}
509: g_1(y_1&,& y_2 &,& \ldots &,& y_n) & \leq &0     \\
510: g_2(y_1 &,& y_2 &,& \ldots &,& y_n) & \leq & 0     \\
511: \multicolumn{9}{c}{\dotfill}            \\
512: g_k(y_1 &,& y_2 &,& \ldots &,& y_n) & \leq & 0     \\
513: 
514: \allEq(v_{1,1}&,& v_{1,2}&,& \ldots&,& v_{1,{n_1}}) &&  \\
515: \multicolumn{7}{c}{\dotfill}            \\
516: \allEq(v_{p,1}&,& v_{p,2}&,& \ldots&,& v_{p,{n_p}}) &&  \\
517: \end{array}
518: \end{displaymath}
519: \caption{
520: \label{singleSys}
521: A system of non-linear inequalities without multiple occurrences
522: of variables. Instead,
523: the set $\{y_1,\ldots,y_n\}$ is partitioned into equivalence
524: classes
525: $V_1,\ldots,V_p$ where
526: $V_j$ is a subset $\{v_{j,1}, \ldots, v_{j,{n_j}}\}$
527: of $\{y_1,\ldots,y_n\}$,
528: for $j \in \{1,\ldots, p\}$.
529: An $\mathit{allEq}$ constraint asserts that its arguments
530: are equal.
531: }
532: \end{figure}
533: 
534: In Figure~\ref{singleSys}, the expressions for the functions $g_1,
535: \ldots, g_k$ have no multiple occurrences of variables.  As a
536: result, they have variables \myVec{y}{n} instead of \myVec{x}{m},
537: with $m \leq n$ as in Equation~(\ref{nonLinSys}).  This canonical
538: form is obtained by associating with each of the variables $x_j$
539: in Equation~(\ref{nonLinSys}) an equivalence class of the variables
540: in Figure~\ref{singleSys}.  This is done by replacing in
541: Equation~(\ref{nonLinSys}) each occurrence of a variable by a
542: different element of the corresponding equivalence class.
543: This is possible by ensuring
544: that each equivalence class is as large as the largest number of
545: multiple occurrences.  The predicate $\allEq$ is true if and only
546: if all its real-valued arguments are equal.
547: 
548: An advantage of this translation is that evaluation in interval
549: arithmetic of each expression gives the best possible result, namely
550: the range of the function values. At the same time, the $\allEq$
551: constraint is easy to enforce by making all intervals of the
552: variables in the constraint equal to their common intersection.
553: This takes information into account from all $k$ inequalities.  If
554: the system in its original form as in Equation~\ref{nonLinSys},
555: with multiple occurrences, would be translated to a CSP, then only
556: multiple occurrences in a single expression would be exploited at
557: one time.
558: 
559: In the coming sections and without loss of generality, we will only
560: consider expressions without multiple occurrences of variables.
561: 
562: \subsection{Translating nonlinear inequalities to ICSPs}
563: \label{translation}
564: ICSPs represent what we \emph{can} solve.  They consist of atomic
565: formulas without function symbols that, moreover, have efficient
566: DROs.  Equation (\ref{nonLinSys}) exemplifies what we \emph{want}
567: to solve: it consists of atomic formulas typically containing deeply
568: nested terms.
569: 
570: \paragraph{The tree form of a formula}
571: We regard a first-order atomic formula as a tree.  The unique
572: predicate symbol is the root.  The terms that are the arguments of
573: the formula are also trees and they are the subtrees of the root.
574: If the term is a variable, then the tree only has a root, which is
575: that variable.  A term may also be a function symbol with one or
576: more arguments, which are terms. In that case, the function symbol
577: is the root with the argument terms as subtrees.
578: 
579: In the tree form of a formula the leaves are variables.
580: In addition,
581: we label every node that is a function symbol with a unique variable.
582: 
583: Any constants that may occur in the formula are replaced by unique
584: variables.  We ensure that the associated domains contain the
585: constants and are as small as possible.
586: 
587: \paragraph{Translating a formula to an ICSP}
588: The tree form of a formula thus labeled is readily translated to an
589: ICSP. The translation has a set of constraints in which each
590: element is obtained by translating an internal node of the tree.
591: 
592: The root translates to $p(\myVc{x}{0}{n-1})$
593: where $p$ is the predicate symbol that is the root and
594: \myVc{x}{0}{n-1}
595: are the variables labeling the children of the root.
596: 
597: A non-root internal node
598: of the form $f(\myVc{t}{0}{n-1})$
599: translates to
600: $F(\myVc{x}{0}{n-1}, y)$, where
601: \begin{itemize}
602: \item
603: $y$ is the variable labeling the node
604: \item
605: \myVc{x}{0}{n-1} are the variables labeling the child nodes
606: \item
607: $F$ is the relation defined by $F(\myVc{a}{0}{n-1}, v)$
608: iff $v= f(\myVc{a}{0}{n-1})$ for all $\myVc{a}{0}{n-1},v$.
609: \end{itemize}
610: 
611: %We obtain a constraint from such an atomic formula by repeatedly
612: %removing a single function symbol:
613: %$P(\ldots, f(\myVc{t}{0}{n-1}),\ldots)$ is replaced by
614: %$P(\ldots, y, \ldots)$ and $F(\myVc{t}{0}{n-1},y)$
615: %where $y$ is a new variable and where $F$ is defined by
616: %$$\forall x_0, \ldots, \forall x_n.
617: %   F(\myVc{x}{0}{n}) \leftrightarrow x_n = f(\myVc{x}{0}{n-1}),
618: %$$
619: %where $y$ is a new variable.
620: %For example $t_0/t_1 \leq z$ is replaced by
621: %$y \leq z$ and $\mbox{prod}(t_1,y,t_0)$.
622: %Here $\mbox{prod}$ is defined by
623: %$\mbox{prod}(u,v,w) \leftrightarrow u \times v = w$ for all reals
624: %$u$,
625: %$v$, and
626: %$w$.
627: 
628: %\subsection{Propagation for ICSP}
629: %
630: %A remarkable feature of GPA is its chaotic nature:
631: %the order in which the DROs are applied is arbitrary,
632: %except that the resulting sequence has to be fair.
633: %Moreover, GPA has this
634: %property for all CSPs, including those where the constraints are
635: %randomly generated, as is sometimes done in theoretical studies.
636: %
637: %Of course there are CSPs where one sequence converges much faster
638: %than another. In such cases we cannot expect GPA to magically find
639: %such a fast sequence. An important class of ICSPs where we can
640: %avoid inefficient sequences are those that result from translating
641: %systems of nonlinear inequalities.
642: %
643: %In response to this need, \cite{bmcv94} introduced the notion of box
644: %consistency. This avoided translation to constraints more primitive
645: %than those implied by the original inequalities.  In
646: %\cite{bggp99,vnmdn01b} the generic propagation algorithm was replaced
647: %by one that is controlled by a data structure reflecting the tree
648: %structure of the formulas in Equation (\ref{nonLinSys}).
649: %
650: %We show that, though (\ref{nonLinSys}) can contain
651: %arbitrarily large expressions, only a small modification of the
652: %generic  propagation algorithm is needed to optimally exploit the
653: %structure of these expressions.
654: %No data structures are needed to record the tree structure of
655: %the formulas.
656: 
657: \subsection{Search}
658: %\subsection{Iterated propagation}
659: 
660: Propagation may terminate with small intervals for all variables
661: of interest. This is rare. More likely, propagation leaves a large
662: box as containing all solutions, if any. To obtain more information
663: about possibly existing solutions, it is necessary to split an ICSP into two
664: ICSPs and to apply propagation to both. An ICSP $S'$ is a result
665: of splitting an ICSP $S$ if $S'$ has the same constraints as $S$
666: and differs only in the domain for one variable, say, $x$.  The
667: domain for $x$ in $S'$ is the left or right half of the domain for
668: $x$ in $S$.
669: 
670: A \emph{search strategy} for an ICSP is a binary tree representing
671: the result of successive splits. Search strategies can differ
672: greatly in the effort required to carry them to completion.  The
673: most obvious search strategy is the \emph{greedy strategy}\/: the
674: one that ensures that all intervals become small enough by choosing
675: a widest domain as the one to be split.
676: 
677: This is a plausible strategy in the case where the ICSP has a few
678: point solutions. In general, the set of solutions is a continuum:
679: a line segment, a piece of a surface, or a variety in a higher
680: dimensional space that has positive volume.  In such cases we prefer
681: the search to result in a single box containing all solutions.
682: Of course we also prefer such a box to be as small as possible. The
683: greedy search strategy splits the continuum of solutions into an
684: unmanageably large number of small boxes.  It is not clear that
685: the greedy strategy is preferable even in the case of a few
686: well-isolated point solutions. In general we need a search
687: strategy other than the greedy one.
688: 
689: A more promising search strategy was first described in the \verb+absolve+
690: predicate of the BNR Prolog system \cite{BNR88} and by \cite{bmcv94},
691: where it is called \emph{box consistency}.
692: 
693: The box consistency search strategy selects a variable and a domain
694: bound. Box consistency uses binary search to
695: determine a boundary interval that can be shown to contain no
696: solutions. This boundary interval can then be removed from the
697: domain, thus shrinking the domain.  This is repeated until a boundary
698: interval with width less than a certain tolerance is found that
699: cannot be shown to contain no solutions. When this is the case for
700: both boundaries of all variables, the domains are said to be \emph{box
701: consistent} with respect to the tolerance used and with respect to
702: the method for showing inconsistency.
703: When this method is interval arithmetic, we obtain
704: \emph{functional box consistency}. When it is
705: propagation, then it is called \emph{relational box consistency}
706: \cite{vnmdn01b}.
707: 
708: All we need to know about search in this paper is that greedy search
709: and box consistency are both search strategies and that both can
710: be based on propagation.  Box consistency is the more promising
711: search strategy. Thus we need to compare interval arithmetic and
712: propagation as ways of showing that a nonlinear inequality has no
713: solutions in a given box.
714: This we do in section~\ref{PSI}.
715: 
716: \section{Propagation with selective initialization}
717: %\section{Relations between interval arithmetic and ICSPs}
718: \label{PSI}
719: 
720: Suppose we have a term that can be evaluated in interval
721: arithmetic. Let us compare the interval that is the result of such
722: an evaluation with the effect of GPA on the ICSP obtained by
723: translating the term as described in section~\ref{translation}.
724: 
725: To make the comparison possible we define evaluation of a term
726: in interval arithmetic.
727: The definition follows the recursive structure of the term:
728: a term is either a variable or
729: it is a function symbol with terms as arguments.
730: If the term is an interval, then the result is that interval.
731: If the argument is function $f$ applied to arguments, then the result
732: is $f$ evaluated in interval arithmetic applied to the results of
733: evaluating the arguments in interval arithmetic.
734: This assumes that every function symbol denotes a function that is
735: defined on reals as well as on intervals.
736: The latter is called the \emph{interval extension} of the former.
737: For a full treatment of interval extensions,
738: see \cite{moore66,nmr90,hnsn92}.
739: The following lemma appears substantially as Theorem 2.6 in \cite{chn98}.
740: 
741: \begin{lemma}
742: \label{basic}
743: Let $t$ be a term
744: that can be evaluated in interval arithmetic.
745: Let the variables of $t$ be $x_1,\ldots,x_n$.
746: Let $y$ be the variable associated with the root of the tree form
747: of $t$.
748: Let $S$ be the ICSP that results from translating $t$, where the domains
749: of $x_1,\ldots,x_n$ are $X_1,\ldots,X_n$ and where the domains
750: of the internal variables are $[-\infty,+\infty]$.
751: After termination of GPA applied to $S$, the domain for $y$
752: is the interval that results from interval arithmetic evaluation of $t$.
753: \end{lemma}
754: 
755: \begin{proof}
756: Suppose that a variable of a constraint has domain $[-\infty,+\infty]$.
757: After applying the DRO for that constraint, this domain has become
758: the result of the interval arithmetic operation that obtains the
759: domain for this variable from the domains of the other variables
760: of the constraint.\\
761: According to \cite{vnmd97,aptEssence}, every fair sequence of DROs
762: converges to the same domains for the variables.  These are also
763: the domains on termination of GPA.  Let us consider a fair sequence
764: that begins with a sequence $s$ of DROs that mimics the evaluation
765: of $t$ in interval arithmetic. At the end of this, $y$ has the
766: value computed by interval arithmetic.  This shows that GPA gives
767: a result that is a subinterval of the result obtained
768: by interval arithmetic.\\
769: GPA terminates after activating the DROs in $s$. This is because
770: in the interval arithmetic evaluation of $t$ an operation is only
771: performed when its arguments have been evaluated. This means that
772: the corresponding DRO only changes one domain. This domain is the
773: domain of a unique variable that occurs in only one constraint that
774: is already in the active set. Therefore none of the DRO activations
775: adds a constraint to the active set, which is empty after $s$.
776: \end{proof}
777: 
778: GPA yields the same result whatever the way constraints are selected
779: in the active set.  Therefore GPA always gives the result of interval
780: arithmetic evaluation. However, GPA may obtain this result in an
781: inefficient way by selecting constraints that have no effect.
782: This suggests that the active set be structured in a way that reflects
783: the structure of $t$. This approach has been taken in \cite{bggp99,vnmdn01b}.
784: 
785: The proof shows that, if the active set had not contained any of
786: the constraints only involving internal variables, these constraints
787: would have been added to the active set by GPA. This is the main
788: idea of selective initialization.
789: By initializing and ordering the active set
790: in a suitable way and leaving GPA otherwise unchanged,
791: it will obtain the interval arithmetic result
792: with no more operations than interval arithmetic.
793: This assumes the optimization implied by the Totality Theorem in \cite{hckmdw98}.
794: 
795: %\begin{definition}
796: %Let an ICSP be \emph{normalized} when for each variable the domain is contained
797: %in the intersection of the default domains assigned to it by the constraints
798: %in which the variable occurs.
799: %\end{definition}
800: 
801: \begin{definition}
802: A constraint is a \emph{seed constraint}
803: iff at least one of its variables has a domain that differs from the default
804: domain assigned to that variable.
805: \end{definition}
806: 
807: For example, the term $\sin(x_1)+\sin(x_2)$ translates to an ICSP
808: with constraints $sum(u,v,y)$, $sin(x_1,u)$, and $sin(x_2,v)$.
809: When the domains are $[-\infty,+\infty]$ for all variables, then the
810: seed constraints are $sin(x_1,u)$ and $sin(x_2,v)$.
811: When the domains are $[-\infty,+\infty]$ for
812: $x_1$, $x_2$, and $y$;
813: $[-1,1]$ for $u$ and $v$, then $sum(u,v,y)$ is the
814: one seed constraint.
815: When the domains are $[-\infty,+\infty]$ for
816: $x_2$ and $y$;
817: $[-1,1]$ for $x_1$, $u$ and $v$, then the seed constraints are $sum(u,v,y)$ and
818: $sin(x_1,u)$.
819: 
820: \begin{definition}
821: Let PSI (Propagation with Selective Initialization) be GPA except for
822: the following modifications.\\
823: (a) PSI only applies to ICSPs generated by translation from
824: an atomic formula.  \\
825: (b) The active set is a priority queue that is ordered according to the
826: distance from the root of the node that generated the constraint.
827: The greater that distance, the earlier the item is removed from
828: the queue.  \\
829: (c) The active set contains all seed constraints and no other ones.
830: \end{definition}
831: 
832: Lemma~\ref{basic} says that GPA simulates interval arithmetic as far as the
833: result is concerned. It does not say anything about the efficiency with which
834: the result is obtained. Theorem~\ref{simulate}
835: says that PSI obtains the result as efficiently as it is done in interval
836: arithmetic. This assumes the functionality optimization in the DROs
837: \cite{hckmdw98}.
838: 
839: \begin{theorem}
840: \label{simulate}
841: Let $S$ be the ICSP obtained by translating
842: a term $t$ in variables
843: \myVc{x}{1}{n},
844: where these variables have domains
845: \myVc{X}{1}{n}.
846: Applying PSI to S terminates after selecting no constraint more than once.
847: Moreover, the root variable ends up with $Z$ as domain where $Z$ is the
848: interval resulting from evaluating $t$ with
849: \myVc{x}{1}{n} substituted by \myVc{X}{1}{n}.
850: \end{theorem}
851: 
852: \begin{proof}
853: Suppose GPA is applied to $S$ in such a way that all non-seed
854: constraints are selected first.  The execution of the DRO corresponding
855: to these non-seed constraints does not change any domains.  Therefore
856: these DRO executions do not add any constraints.  As a result, the
857: effect of applying GPA is the same as when the active set would
858: have been initialized with only the seed constraints.\\
859: Suppose the seed constraints are selected according to priority
860: order.  This ensures that no future constraint selection re-introduces
861: a constraint previously selected. Thus GPA terminates after activating
862: every seed constraint exactly once.\\
863: Such an execution of GPA coincides step by step with that of PSI.
864: As GPA terminates with the correct result, so does PSI.
865: \end{proof}
866: 
867: \section{Using ICSPs to solve inequalities}
868: 
869: We briefly reviewed how interval arithmetic can solve systems of nonlinear
870: inequalities. The fundamental capability turned out to be that of evaluating
871: a term in interval arithmetic.
872: We saw that this can also be done by applying propagation to ICSPs
873: generated from arithmetic terms.
874: We now investigate how to extend this
875: to the use of ICSPs to solve nonlinear inequalities.
876: 
877: \subsection{Using ICSPs to solve a single inequality}
878: 
879: Suppose $S$ is the ICSP resulting from translating
880: $$
881: g_i(\myVc{x}{1}{m}) \leq 0
882: $$
883: Let $y$ be the variable labeling the left child of the root; that is,
884: the variable representing the value of the left-hand side.
885: Let \myVc{X}{1}{m} be the domains in $S$ of  \myVc{x}{1}{m}, respectively.
886: 
887: Now suppose that GPA is applied to $S$. One possible initial sequence
888: of DRO activations is the equivalent of interval arithmetic evaluation
889: of the left-hand side, leaving $y \leq 0$ as the only constraint in the
890: active set with the domain for $y$ equal to $[a_i,b_i]$, the value in
891: interval arithmetic of $g_i(\myVc{X}{1}{m})$.
892: 
893: At this stage the DRO for $y \leq 0$ is executed.
894: If $0 < a_i$, then failure occurs.
895: If $b_i \leq 0$, then the domain for $y$ is unchanged. Therefore,
896: no constraint is added to the active set. Termination occurs with
897: nonfailure. There is no change in the domain of any of
898: \myVc{x}{1}{m}.
899: The third possibility is that $a_i \leq 0 < b_i$.
900: In this case, the domain for $y$ shrinks: the upper bound decreases from
901: $b_i$ to $0$.
902: This causes the constraints to be brought into the active set
903: that correspond to nodes at the next lower level in the tree.
904: This propagation may continue all the way down to the lowest level
905: in the tree, resulting in shrinking of the domain of one or more of
906: \myVc{x}{1}{m}.
907: 
908: Let us compare this behaviour with the use of interval arithmetic to solve
909: the same inequality.
910: In all three cases, GPA gives the same outcome as interval arithmetic:
911: failure or nonfailure. In the first two cases, GPA gives no more information
912: than interval arithmetic. It also does no more work.
913: 
914: In the third case,
915: GPA may give more information than interval arithmetic:
916: in addition to the nonfailure outcome,
917: it may shrink the domain of one or more of \myVc{x}{1}{m}.
918: This is beyond the capabilities of interval arithmetic,
919: which is restricted to transmit information
920: about arguments of a function to information
921: about the value of the function.
922: It cannot transmit information in the reverse direction.
923: To achieve this extra capability,
924: GPA needs to do more work than
925: the equivalent of interval arithmetic evaluation.
926: 
927: In the above, we have assumed that
928: GPA magically avoids selecting constraints in a way that is not optimal.
929: In such an execution of GPA we can recognize two phases:
930: an initial phase that
931: corresponds to evaluating the left-hand side in interval arithmetic,
932: followed by a second phase that starts with
933: the active set containing only the constraint $y \leq 0$.
934: When we consider the nodes in the tree that correspond to the constraints
935: that are selected, then it is natural to call the first phase bottom-up
936: (it starts at the leaves and ends at the root) and
937: the second phase top-down
938: (it starts at the root and may go down as far as to touch some of the leaves).
939: The bottom-up phase can be performed automatically by the PSI algorithm.
940: 
941: The start of the top-down phase is similar to
942: the situation that occurs in search.
943: In both search and in the top-down phase a different form of selective
944: initialization can be used, shown in the next section.
945: 
946: The bottom-up phase and the top-down phase are separated by a state
947: in which the active set only contains $y \leq 0$.
948: For reasons that become apparent in the next section,
949: we prefer a separate treatment of this constraint:
950: not to add it to the active set and to execute the shrinking of
951: the domain for $y$ as an extraneous event.
952: This is then a special case of termination of GPA, or its equivalent PSI,
953: followed by the extraneous event of shrinking one domain.
954: 
955: The Pseudo-code for PSI algorithm is given in Figure~\ref{PSIAlg}.
956: 
957: \begin{figure}[!htb]
958: \begin{tabbing}
959: let the active set $A$ be a priority queue in which the
960: constraints are\\
961: $\;\;$ ordered according to the level they occupy in the tree,\\
962: $\;\;$ with those that are further away from the root
963: placed nearer to the front of the queue\\
964: put only \textbf{seed} constraints into $A$\\
965: while \=( $A \neq \emptyset$) $\{$\\
966:          \>choose a constraint $C$ from $A$\\
967:          \>apply the DRO associated with $C$\\
968:          \> if one of the domains is empty, then stop\\
969:          \>add to $A$ all constraints involving variables whose
970:            domains have changed, if any\\
971:          \>remove $C$ from $A$\\
972: $\}$
973: \end{tabbing}
974: \caption{
975: \label{PSIAlg}
976: Pseudo-code for Propagation with Selective Initialization (PSI).
977: }
978: \end{figure}
979: The correctness of PSI algorithm can be easily deduced from
980: the following theorem.
981: 
982: \begin{theorem}
983: \label{modEval}
984: Consider the ICSP $\mathcal{S}$ obtained from the tree $T$ of the atomic
985: formula
986: $g_i(x_1,\ldots,x_n) \leq 0$.
987: Suppose we modify GPA so that the active set is initialized to contain
988: instead of all constraints only seed constraints.
989: Suppose also that the active set is a priority queue in which the
990: constraints are ordered according to the level they occupy in
991: the tree $T$, with those that are further away from the root
992: placed nearer to the front of the queue.  Then GPA terminates
993: with the same result as when the active set would have been
994: initialized to contain all constraints.
995: \end{theorem}
996: 
997: \begin{proof}
998: As we did before, suppose that in GPA the active set $A$ is initialized
999: with all constraints such that the seed constraints are at the end of the
1000: active set. Applying any DRO of a constraint that is not a seed constraint
1001: will not affect any domain. Thus, the constraints that are not seed
1002: constraints can be removed from the active set without changing the result
1003: of GPA. Since the GPA
1004: does not specify any order, $A$ can be ordered as desired.
1005: Here we choose to order it in such a way we get an efficient GPA when
1006: used to evaluate an expression (see previous section).
1007: \end{proof}
1008: 
1009: \section{Selective Initialization for search}
1010: 
1011: Often we find that after applying GPA to an ICSP $S$,
1012: the domain $X$ for one of the variables, say $x$, is too wide.
1013: Search is then necessary.
1014: This can take the form of splitting $S$ on the domain for $x$.
1015: The results of such a split are
1016: two separate ICSPs $S_1$ and $S_2$
1017: that are the same as $S$ except for the domain of $x$.
1018: In $S_1$, $x$ has as domain the left half of $X$;
1019: in $S_2$, it is the right half of $X$.
1020: 
1021: However, applying GPA to $S_1$ and $S_2$ entails duplicating
1022: work already done when GPA was applied to $S$.
1023: When splitting on $x$ after termination of the application
1024: of GPA to $S$, we have the same situation as at the beginning
1025: of the downward phase of applying GPA to an inequality:
1026: the active set is empty and an extraneous event changes
1027: the domain of one variable to a proper subset.
1028: 
1029: The following theorem justifies a form of the PSI algorithm where the
1030: active set is initialized with what is typically a small subset of
1031: all constraints.
1032: 
1033: \begin{theorem}
1034: \label{modSolveGeneral}
1035: Let $T$ be the tree obtained from the atomic formula
1036: $g_i(x_1,\ldots,x_n) \leq 0$.
1037: Let $\mathcal{S}$ be the ICSP obtained from $T$.
1038: Let $x$ be a variable in $\mathcal{S}$.
1039: Suppose we apply GPA to $\mathcal{S}$.
1040: After the termination of GPA, suppose the domain
1041: of $x$ is changed to an interval that is a proper subset of it.
1042: If we apply GPA to $\mathcal{S}$ with an active set initialized
1043: with the constraints only involving $x$,
1044: then GPA terminates with the same result as
1045: when the active set would have been initialized to contain
1046: all constraints.
1047: \end{theorem}
1048: 
1049: \begin{proof}
1050: To prove Theorem~\ref{modSolveGeneral}, we should
1051: show that initializing GPA with all constraints
1052: gives the same results as when it is initialized with only the
1053: constraints involving $x$.
1054: 
1055: Since no ordering is specified for the active set of GPA,
1056: we choose an order in which the constraints involving $x$ are
1057: at the end of the active set.
1058: Because DROs are idempotent,
1059: all constraints at the front of the active set,
1060: different from those involving $x$, do not affect
1061: any domain.
1062: Thus removing them from the active set in the initialization
1063: process does not change the fixpoint of the GPA.
1064: Thus, Theorem~\ref{modSolveGeneral} is proved.
1065: \end{proof}
1066: 
1067: \section{Further work}
1068: We have only considered the application of selective initialization
1069: to solve a single inequality.
1070: A conjunction of inequalities such as Equation~(\ref{nonLinSys})
1071: can be solved by solving each in turn.
1072: This has to be iterated because the solving of another inequality
1073: affects the domain of an inequality already solved.
1074: This suggests performing the solving of all inequalities in parallel.
1075: Doing so avoids the waste of completing an iteration
1076: on the basis of unnecessarily wide intervals.
1077: It also promises speed-up because many of the DRO activations
1078: only involve variables that are unique to the inequality.
1079: In the current version of the design of our algorithm,
1080: we combine this parallelization with a method of minimizing
1081: the complexity usually caused by multiple occurrences of variables.
1082: 
1083: \section{Conclusions}
1084: Before interval methods it was not clear how to tackle
1085: numerically realistic optimization models.
1086: Only with the advent of interval arithmetic in the 1960s \cite{moore66}
1087: one could for the first time at least say:
1088: ``If only we had so much memory and so much time,
1089: then we could solve this problem.''
1090: 
1091: Interval arithmetic has been slow in developing.
1092: Since the 1980s constraint programming has added fresh impetus to
1093: interval methods.
1094: Conjunctions of nonlinear inequalities, the basis for optimization,
1095: can be solved both with interval
1096: arithmetic and with constraint programming. In this paper we relate
1097: these two approaches.
1098: 
1099: It was known that constraint propagation subsumes interval arithmetic.
1100: It was also clear that using propagation for the special case of
1101: interval arithmetic evaluation is wasteful. In this paper we present
1102: an algorithm for propagation by Selective Initialization
1103: that
1104: ensures that propagation is as efficient
1105: in the special case of interval arithmetic evaluation.
1106: We also apply Selective Initialization
1107: for search and for solving inequalities.
1108: Preliminary results on a parallel version of the methods
1109: presented here suggest that realistic optimization models
1110: will soon be within reach of modest computing resources.
1111: 
1112: \section*{Acknowledgments}
1113: We acknowledge generous support by the
1114: University of Victoria, the Natural Science and Engineering Research
1115: Council NSERC, the Centrum voor Wiskunde en Informatica CWI, and the
1116: Nederlandse Organisatie voor Wetenschappelijk Onderzoek NWO.
1117: %\bibliography{sample}
1118: %\bibliographystyle{plain}
1119: %\bibliography{article,book,collection,proceedings,techreport,thesis,unpublished,misc}
1120: 
1121: \begin{thebibliography}{10}
1122: 
1123: \bibitem{aptEssence}
1124: K.R. Apt.
1125: \newblock The essence of constraint propagation.
1126: \newblock {\em Theoretical Computer Science}, 221(1-2):179--210, 1999.
1127: 
1128: \bibitem{rthpra01}
1129: Roman Bartak.
1130: \newblock Theory and practice of constraint propagation.
1131: \newblock In {\em Proceedings of the 3rd Workshop on Constraint Programming in
1132:   Decision and Control (CPDC 2001)}, pages 7--14. J. Figwer(Editor), 2001.
1133: 
1134: \bibitem{bmcv94}
1135: F.~Benhamou, D.~McAllester, and P.~Van Hentenryck.
1136: \newblock {CLP}({I}ntervals) revisited.
1137: \newblock In {\em Logic Programming: Proc. 1994 International Symposium}, pages
1138:   124--138, 1994.
1139: 
1140: \bibitem{bggp99}
1141: Fr\'ed\'eric Benhamou, Fr\'ed\'eric Goualard, Laurent Granvilliers, and
1142:   Jean-Fran\c{c}ois Puget.
1143: \newblock Revising hull and box consistency.
1144: \newblock In {\em Proceedings of the 16th International Conference on Logic
1145:   Programming}, pages 230--244. MIT Press, 1999.
1146: 
1147: \bibitem{bnldr97}
1148: Fr\'ed\'eric Benhamou and William~J. Older.
1149: \newblock Applying interval arithmetic to real, integer, and {B}oolean
1150:   constraints.
1151: \newblock {\em Journal of Logic Programming}, 32:1--24, 1997.
1152: 
1153: \bibitem{BNR88}
1154: BNR.
1155: \newblock {BNR} {P}rolog user guide and reference manual.
1156: \newblock Version 3.1 for Macintosh, 1988.
1157: 
1158: \bibitem{chn98}
1159: H.M. Chen.
1160: \newblock {\em Global Optimization Using Interval Constraints}.
1161: \newblock PhD thesis, University of Victoria, 1998.
1162: 
1163: \bibitem{hnsn92}
1164: Eldon Hansen.
1165: \newblock {\em Global Optimization Using Interval Analysis}.
1166: \newblock Marcel Dekker, 1992.
1167: 
1168: \bibitem{hckvnmdn01}
1169: T.~Hickey, Q.~Ju, and M.H. van Emden.
1170: \newblock Interval arithmetic: from principles to implementation.
1171: \newblock {\em Journal of the ACM}, 48(5).
1172: \newblock Sept. 2001.
1173: 
1174: \bibitem{hckmdw98}
1175: T.J. Hickey, M.H. van Emden, and H.~Wu.
1176: \newblock A unified framework for interval constraints and interval arithmetic.
1177: \newblock In Michael Maher and Jean-Fran\c{c}ois Puget, editors, {\em
1178:   Principles and Practice of Constraint Programming -- CP98}, pages 250 -- 264.
1179:   Springer-Verlag, 1998.
1180: \newblock Lecture Notes in Computer Science 1520.
1181: 
1182: \bibitem{moore66}
1183: Ramon~E. Moore.
1184: \newblock {\em Interval Analysis}.
1185: \newblock Prentice-Hall, 1966.
1186: 
1187: \bibitem{nmr90}
1188: Arnold Neumaier.
1189: \newblock {\em Interval Methods for Systems of Equations}.
1190: \newblock Cambridge University Press, 1990.
1191: 
1192: \bibitem{vnmd97}
1193: M.H. van Emden.
1194: \newblock Value constraints in the {CLP} {S}cheme.
1195: \newblock {\em Constraints}, 2:163--183, 1997.
1196: 
1197: \bibitem{vnmdn01b}
1198: M.H. van Emden.
1199: \newblock Computing functional and relational box consistency by structured
1200:   propagation in atomic constraint systems.
1201: \newblock In {\em Proc. 6th Annual Workshop of the ERCIM Working Group on
1202:   Constraints; downloadable from CoRR}, 2001.
1203: 
1204: \bibitem{vnmdn03}
1205: M.H. van Emden.
1206: \newblock Using the duality principle to improve lower bounds for the global
1207:   minimum in nonconvex optimization.
1208: \newblock In {\em Second COCOS workshop on intervals and optimization}, 2003.
1209: 
1210: \bibitem{vnmdn03a}
1211: M.H. van Emden and B.~Moa.
1212: \newblock Using propagation for solving complex arithmetic constraints.
1213: \newblock Technical Report DCS-XXX-IR, Department of Computer Science,
1214:   University of Victoria.
1215: \newblock Paper cs.NA/0309018 in Computing Research Repository (CoRR),
1216:   September 2003.
1217: 
1218: \end{thebibliography}
1219: \end{document}
1220: