<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:HEPHAISTOS</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="Research Program - Interval analysis"/>
    <meta name="dc.title" content="Research Program - Interval analysis"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2016-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="HEPHAISTOS"/>
    <script type="text/javascript" src="https://raweb.inria.fr/rapportsactivite/RA2016/static/MathJax/MathJax.js?config=TeX-MML-AM_CHTML">
      <!--MathJax-->
    </script>
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Hephaistos</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="TdmEntry">
        <a href="./uid3.html">Overall Objectives</a>
      </div>
      <div class="TdmEntry">Research Program<ul><li class="tdmActPage"><a href="uid20.html&#10;&#9;&#9;  ">Interval analysis</a></li><li><a href="uid30.html&#10;&#9;&#9;  ">Robotics</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid34.html&#10;&#9;&#9;  ">Domain 1</a></li></ul></div>
      <div class="TdmEntry">
        <a href="./uid36.html">Highlights of the Year</a>
      </div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid46.html&#10;&#9;&#9;  ">ALIAS</a></li><li><a href="uid50.html&#10;&#9;&#9;  ">Platforms</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid55.html&#10;&#9;&#9;  ">Robotics </a></li><li><a href="uid59.html&#10;&#9;&#9;  ">Assistance</a></li><li><a href="uid76.html&#10;&#9;&#9;  ">Miscellaneous results</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid80.html&#10;&#9;&#9;  ">Airbus</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid87.html&#10;&#9;&#9;  ">Regional Initiatives</a></li><li><a href="uid90.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid93.html&#10;&#9;&#9;  ">European Initiatives</a></li><li><a href="uid104.html&#10;&#9;&#9;  ">International Initiatives</a></li><li><a href="uid114.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid117.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid141.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid151.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentmajor" href="bibliography.html">Major publications</a>
          </li>
          <li>
            <a id="tdmbibentyear" href="bibliography.html#year">Publications of the year</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2016</a> | <a href="http://www.inria.fr/en/teams/hephaistos">Presentation of the Project-Team HEPHAISTOS</a> | <a href="https://team.inria.fr/hephaistos/">HEPHAISTOS Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="hephaistos.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="hephaistos.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-hephaistos-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../hephaistos/hephaistos.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-hephaistos-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid3.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid30.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      Research Program</h2>
        <h3 class="titre3">Interval analysis</h3>
        <p>We are interested in real-valued system solving
(<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>f</mi><mo>(</mo><mi>X</mi><mo>)</mo><mo>=</mo><mn>0</mn></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>f</mi><mo>(</mo><mi>X</mi><mo>)</mo><mo>≤</mo><mn>0</mn></mrow></math></span>), in optimization problems, and in the proof
of the existence of properties (for example, it exists
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>X</mi></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>f</mi><mo>(</mo><mi>X</mi><mo>)</mo><mo>=</mo><mn>0</mn></mrow></math></span> or it exist two values
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>X</mi><mn>1</mn></msub></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>X</mi><mn>2</mn></msub></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>f</mi><mo>(</mo><msub><mi>X</mi><mn>1</mn></msub><mo>)</mo><mo>&gt;</mo><mn>0</mn></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>f</mi><mo>(</mo><msub><mi>X</mi><mn>2</mn></msub><mo>)</mo><mo>&lt;</mo><mn>0</mn></mrow></math></span>). There are few
restrictions on the function <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>f</mi></math></span> as we are able to manage
explicit functions using classical mathematical operators
(e.g. <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mo form="prefix">sin</mo><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>y</mi><mo>)</mo></mrow><mo>+</mo><mo form="prefix">log</mo><mo>(</mo><mo form="prefix">cos</mo><mrow><mo>(</mo><msup><mi>e</mi><mi>x</mi></msup><mo>)</mo></mrow><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo>)</mo></mrow></math></span> as well as implicit functions
(e.g. determining if there are parameter values of a parametrized
matrix such that the determinant of the matrix is negative, without
calculating the analytical form of the determinant).</p>
        <p>Solutions are searched within a finite domain (called a <i>box</i>)
which may be either continuous or mixed (i.e. for which some variables
must belong to a continuous range while other variables may
only have values within a discrete set). An important point is that we
aim at finding all the solutions within the domain whenever the
computer arithmetic will allow it: in other words we are looking for
<i>certified</i> solutions. For example, for 0-dimensional system
solving, we will provide a box that contains one, and only one,
solution together with a numerical approximation of this
solution. This solution
may further be refined at will using multi-precision.</p>
        <p>The core of our methods is the use of <i>interval analysis</i> that
allows one to manipulate mathematical expressions whose unknowns have interval
values. A basic component of interval analysis is the <i>interval
evaluation</i> of an expression. Given an analytical expression <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>F</mi></math></span>
in the unknowns <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mo>{</mo><msub><mi>x</mi><mn>1</mn></msub><mo>,</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi><mi>n</mi></msub><mo>}</mo></mrow></math></span> and ranges
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mo>{</mo><msub><mi>X</mi><mn>1</mn></msub><mo>,</mo><msub><mi>X</mi><mn>2</mn></msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>X</mi><mi>n</mi></msub><mo>}</mo></mrow></math></span> for these unknowns we are able to compute a
range <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mo>[</mo><mi>A</mi><mo>,</mo><mi>B</mi><mo>]</mo></mrow></math></span>, called the interval evaluation, such that</p>
        <div align="center" class="mathdisplay">
          <a name="uid21"/>
          <table width="100%">
            <tr valign="middle">
              <td align="center">
                <math xmlns="http://www.w3.org/1998/Math/MathML">
                  <mrow>
                    <mo>∀</mo>
                    <mrow>
                      <mo>{</mo>
                      <msub>
                        <mi>x</mi>
                        <mn>1</mn>
                      </msub>
                      <mo>,</mo>
                      <msub>
                        <mi>x</mi>
                        <mn>2</mn>
                      </msub>
                      <mo>,</mo>
                      <mo>...</mo>
                      <mo>,</mo>
                      <msub>
                        <mi>x</mi>
                        <mi>n</mi>
                      </msub>
                      <mo>}</mo>
                    </mrow>
                    <mo>∈</mo>
                    <mrow>
                      <mo>{</mo>
                      <msub>
                        <mi>X</mi>
                        <mn>1</mn>
                      </msub>
                      <mo>,</mo>
                      <msub>
                        <mi>X</mi>
                        <mn>2</mn>
                      </msub>
                      <mo>,</mo>
                      <mo>...</mo>
                      <mo>,</mo>
                      <msub>
                        <mi>X</mi>
                        <mi>n</mi>
                      </msub>
                      <mo>}</mo>
                    </mrow>
                    <mo>,</mo>
                    <mi>A</mi>
                    <mo>≤</mo>
                    <mi>F</mi>
                    <mrow>
                      <mo>(</mo>
                      <msub>
                        <mi>x</mi>
                        <mn>1</mn>
                      </msub>
                      <mo>,</mo>
                      <msub>
                        <mi>x</mi>
                        <mn>2</mn>
                      </msub>
                      <mo>,</mo>
                      <mo>...</mo>
                      <mo>,</mo>
                      <msub>
                        <mi>x</mi>
                        <mi>n</mi>
                      </msub>
                      <mo>)</mo>
                    </mrow>
                    <mo>≤</mo>
                    <mi>B</mi>
                  </mrow>
                </math>
              </td>
              <td class="eqno" width="10" align="right">(1)</td>
            </tr>
          </table>
        </div>
        <p class="notaparagraph">In other words the interval evaluation provides a lower bound of the
minimum of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>F</mi></math></span> and an upper bound of its maximum over the box.</p>
        <p>For example if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>F</mi><mo>=</mo><mi>x</mi><mspace width="3.33333pt"/><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>x</mi><mo>+</mo><msup><mi>x</mi><mn>2</mn></msup><mo>)</mo></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>∈</mo><mo>[</mo><mn>0</mn><mo>.</mo><mn>5</mn><mo>,</mo><mn>1</mn><mo>.</mo><mn>6</mn><mo>]</mo></mrow></math></span>, then
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>F</mi><mo>(</mo><mo>[</mo><mn>0</mn><mo>.</mo><mn>5</mn><mo>,</mo><mn>1</mn><mo>.</mo><mn>6</mn><mo>]</mo><mo>)</mo><mo>=</mo><mo>[</mo><mo>-</mo><mn>1</mn><mo>.</mo><mn>362037441</mn><mo>,</mo><mn>1</mn><mo>.</mo><mn>6</mn><mo>]</mo></mrow></math></span>, meaning that for any <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi></math></span> in
[0.5,0.6] we guarantee that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mo>-</mo><mn>1</mn><mo>.</mo><mn>362037441</mn><mo>≤</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo><mo>≤</mo><mn>1</mn><mo>.</mo><mn>6</mn></mrow></math></span>.</p>
        <p>The interval evaluation of an expression has interesting properties:</p>
        <ul>
          <li>
            <p class="notaparagraph"><a name="uid22"> </a>it can be implemented in such a way that the results are
guaranteed with respect to round-off errors i.e.
property <a title="Interval analysis" href="./uid20.html#uid21">1</a> is still valid
in spite of
numerical errors induced by the use of floating point numbers</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid23"> </a>if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>A</mi><mo>&gt;</mo><mn>0</mn></mrow></math></span> or <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>B</mi><mo>&lt;</mo><mn>0</mn></mrow></math></span>, then no values of the unknowns in
their respective ranges can cancel <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>F</mi></math></span></p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid24"> </a>if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>A</mi><mo>&gt;</mo><mn>0</mn></mrow></math></span> (<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>B</mi><mo>&lt;</mo><mn>0</mn></mrow></math></span>), then <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>F</mi></math></span> is positive (negative) for any value
of the unknowns in their respective ranges</p>
          </li>
        </ul>
        <p>A major drawback of the interval evaluation is that
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>A</mi><mo>(</mo><mi>B</mi><mo>)</mo></mrow></math></span> may be overestimated i.e. values of
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><msub><mi>x</mi><mn>1</mn></msub><mo>,</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi><mi>n</mi></msub></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>F</mi><mrow><mo>(</mo><msub><mi>x</mi><mn>1</mn></msub><mo>,</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>A</mi><mrow><mo>(</mo><mi>B</mi><mo>)</mo></mrow></mrow></math></span> may not
exist. This
overestimation occurs because in our calculation each occurrence of a
variable is considered as an independent variable. Hence if
a variable has multiple occurrences, then an overestimation may
occur. Such phenomena can be observed in the previous example where
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>B</mi><mo>=</mo><mn>1</mn><mo>.</mo><mn>6</mn></mrow></math></span> while the real maximum of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>F</mi></math></span> is approximately 0.9144. The
value of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>B</mi></math></span> is obtained because we are using in our calculation the
formula <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>F</mi><mo>=</mo><mi>x</mi><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><mi>y</mi><mo>+</mo><msup><mi>z</mi><mn>2</mn></msup><mo>)</mo></mrow></math></span> with <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>y</mi><mo>,</mo><mi>z</mi></mrow></math></span> having the same interval value
than <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi></math></span>.</p>
        <p>Fortunately there are methods that allow one to reduce the
overestimation and the overestimation amount decreases with the width of
the ranges. The latter remark leads to the use of a branch-and-bound
strategy in which for a given box a variable range will be bisected,
thereby creating two new boxes that are stored in a list and
processed later
on. The algorithm is complete if all boxes in the list
have been processed, or if during the process a box generates an answer
to the problem at hand (e.g. if we want to prove that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>F</mi><mo>(</mo><mi>X</mi><mo>)</mo><mo>&lt;</mo><mn>0</mn></mrow></math></span>, then
the algorithm stops as soon as
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>F</mi><mo>(</mo><mi>ℬ</mi><mo>)</mo><mo>≥</mo><mn>0</mn></mrow></math></span> for a certain box <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>ℬ</mi></math></span>).</p>
        <p>A generic interval analysis algorithm involves the following steps
on the current box <a href="./bibliography.html#hephaistos-2016-bid1">[1]</a>, <a href="./bibliography.html#hephaistos-2016-bid2">[8]</a>, <a href="./bibliography.html#hephaistos-2016-bid3">[5]</a>:</p>
        <ol>
          <li>
            <p class="notaparagraph"><a name="uid25"> </a><i>exclusion operators</i>: these operators determine that there
is no solution to the problem within a given box. An important issue
here is the extensive and smart use of the monotonicity of the
functions</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid26"> </a><i>filters</i>: these operators may reduce the size of the
box i.e. decrease the width of the allowed ranges for the
variables</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid27"> </a><i>existence operators</i>: they allow one to determine the existence
of a unique solution within a given box and are usually
associated with a numerical scheme that allows for the computation
of this solution in a safe way</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid28"> </a><i>bisection</i>: choose one of the variable and bisect its range
for creating two new boxes</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid29"> </a><i>storage</i>: store the new boxes in the list</p>
          </li>
        </ol>
        <p>The scope of the HEPHAISTOS project is to address all these steps in order
to find the most efficient procedures. Our efforts focus on
mathematical developments (adapting classical theorems to interval
analysis, proving interval analysis theorems), the use of symbolic
computation and formal proofs (a symbolic pre-processing allows one to
automatically adapt the solver to the structure of the problem), software
implementation and experimental tests (for validation purposes).</p>
        <p/>
        <p><b>Important note</b>:
We have insisted on interval analysis because this is a <b>major
componant</b> or our robotics activity. Our theoretical work in
robotics is an analysis of the robotic environment in order to exhibit
proofs on the behavior of the system that may be qualitative (e.g. the
proof that a cable-driven parallel robot with more than 6
non-deformable cables will have at most 6 cables under tension
simultaneously) or
quantitative. In the quantitative case as we are dealing with
realistic and not toy examples (including our own prototypes that are
developed whenever no equivalent hardware is available or to very our
assumptions) we have to manage problems that are so complex that
analytical solutions are probably out of reach (e.g. the direct
kinematics of parallel robots) and we have to resort to algorithms and
numerical analysis. We are aware of different approaches in numerical
analysis (e.g. some team members were previously involved in teams
devoted to computational geometry and algebraic geometry) but interval
analysis provides us another approach with high flexibility, the
possibility of managing non algebraic problems (e.g. the kinematics of
cable-driven parallel robots with sagging cables, that involves
inverse hyperbolic functions) and to address various types of issues
(system solving, optimization, proof of existence ...).
</p>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid3.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid30.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
