& xdof = psi_h . get_space (). get_xdofs ();
16 point xmin = xdof [ idof_min ];
17 dout << " xc \ t \ tyc \ t \ tpsi " << std :: endl
18 << xmin [0] << " \t " << xmin [1] << " \ t " << psi_min << std :: endl ;
19 }
For higher Reynolds number, Shen [53] showed in 1991 that the flow converges to a stationary state
for Reynolds numbers up to 10 000; for Reynolds numbers larger than a critical value 10 000 <
Re1 < 10 500 and less than another critical value 15 000 < Re2 < 16 000, these authors founded
that the flow becomes periodic in time which indicates a Hopf bifurcation; the flow loses time
periodicity for Re ≥ Re2. In 1998, Ould Salihi [38] founded a loss of stationarity between 10 000
and 20 000. In 2002, Auteri et al. [7] estimated the critical value for the apparition of the first
instability to Re1 ≈ 8018. In 2005, Erturk et al. [17] computed steady driven cavity solutions up
to Re 6 21 000. Also in 2005, this result was infirmed by [19]: these authors estimated Re1 close
to 8000, in agreement with [7]. The 3D driven cavity has been investigated in [33] by the method
of characteristic (see also [32] for 3D driven cavity computations). In conclusion, the exploration
of the driven cavity at large Reynolds number is a fundamental challenge in computational fluid
dynamics.100 Rheolef version 6.6 update 15 April 2014Part III
Advanced and highly nonlinear
problems
101Chapter 7
Equation defined on a surface
This chapter deals with equations defined on a closed hypersurface. We present three different
numerical methods: the direct resolution of the problem on an explicit surface mesh generated
independently of Rheolef, the direct resolution on a surface mesh generated by Rheolef from a
volume mesh, and finally a level set type method based on a volume mesh in an h-narrow band
containing the surface. This last method allows to define hybrid operators between surface and
volume-based finite element fields. These methods are demonstrated on two model problems and
two different surfaces.
Let us consider a closed surface Γ ∈ R
d
, d = 2 or 3 and Γ is a connected C
2
surface of dimension
d − 1 with ∂Γ = 0. We first consider the following problem:
(P1) find u, defined on Γ such that:
u − ∆su = f on Γ (7.1)
where f ∈ L
2
(Γ). For all function u defined on Γ, ∆s denotes the Laplace-Beltrami operator:
∆su = divs(∇su)
where ∇s and divs are the tangential derivative and the surface divergence along Γ, defined
respectively, for all scalar field ϕ and vector field v by:
∇sϕ = (I − n ⊗ n) ∇ϕ
divs v = (I − n ⊗ n) : ∇v
Here, n denotes a unit normal on Γ.
We also consider the following variant of this problem:
(P2) find u, defined on Γ such that:
−∆su = f on Γ (7.2)
This second problem is similar to the first one: the Helmholtz operator I − ∆s has been replaced
by the Laplace-Beltrami one −∆s. In that case, the solution is defined up to a constant: if u is
a solution, then u + c is also a solution for any constant c ∈ R. Thus, we refers to (P1) as the
Helmholtz-Beltrami problem and to (P2) as the Laplace-Beltrami one.
7.1 Approximation on an explicit surface mesh
The Helmholtz-Beltrami problem
Tanks to the surface Green formula (see appendix A.3), the variational formulation of problem
(P1) writes:
103104 Rheolef version 6.6 update 15 April 2014
(V F1): find u ∈ H1
(Γ) such that:
a(u, v) = l(v), ∀v ∈ H1
(Γ)
where for all u, v ∈ H1
(Γ),
a(u, v) = Z
Γ
(u v + ∇su.∇sv) ds
l(v) = Z
Γ
f v ds
Let k > 1 and consider a k-th order curved surface finite element mesh Γh of Γ. We define the
space Wh:
Wh =
vh ∈ H1
(Γh); v|S ∈ Pk, ∀S ∈ Γh
The approximate problem writes:
(V F1)h: find uh ∈ Wh such that:
a(uh, vh) = l(vh), ∀vh ∈ Wh
Example file 7.1: helmholtz_s.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " sphere . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo gamma ( argv [1]);
8 size_t d = gamma . dimension ();
9 space Wh ( gamma , argv [2]);
10 trial u ( Wh ); test v ( Wh );
11 form a = integrate ( u * v + dot ( grad_s ( u ) , grad_s ( v )));
12 field lh = integrate ( f (d )* v );
13 field uh ( Wh );
14 solver sa ( a . uu ());
15 uh . set_u () = sa . solve ( lh . u () - a . ub ()* uh . b ());
16 dout << uh ;
17 }
Comments
The problem involves the Helmholtz operator and thus, the code is similar to ‘neumann-nh.cc’
presented page 36. Let us comments the only differences:
form a = integrate ( u * v + dot ( grad_s ( u ) , grad_s ( v )));
The form refers to the grad_s operator instead of the grad one, since only the coordinates related
to the surface are involved.
field lh = integrate ( f (d )* v );
The right-hand-side does not involve any boundary term, since the surface Γ is closed: the boundary
domain ∂Γ = ∅. As test problem, the surface Γ is the unit circle when d = 2 and the unit
sphere when d = 3. The data f has been chosen as in [14, p. 17]. This choice is convenient since
the exact solution is known. Recall that the spherical coordinates (ρ, θ, φ) are defined from the
artesian ones (x0, x1, x2) by:
ρ =
q
x
2
0 + x
2
1 + x
2
2
, φ = arccos (x2/ρ), θ =
arccos
x0/
p
x
2
0 + x
2
1
when x1 > 0
2π − arccos
x0/
p
x
2
0 + x
2
1
otherwiseRheolef version 6.6 update 15 April 2014 105
Example file 7.2: sphere.icc
1 struct p : field_functor {
2 Float operator () ( const point & x ) const {
3 if ( d == 2) return 26*( pow ( x [0] ,5) - 10* pow ( x [0] ,3)* sqr( x [1])
4 + 5* x [0]* pow ( x [1] ,4));
5 else return 3* sqr( x [0])* x [1] - pow ( x [1] ,3);
6 }
7 p ( size_t d1 ) : d ( d1 ) {}
8 protected : size_t d ;
9 };
10 struct f : field_functor {
11 Float operator () ( const point & x ) const {
12 if ( d == 2) return _p ( x )/ pow ( norm ( x ) ,5);
13 else return alpha * _p ( x );
14 }
15 f ( size_t d1 ) : d ( d1 ) , _p ( d1 ) {
16 Float pi = acos ( Float ( -1));
17 alpha = -(13./8.)* sqrt (35./ pi );
18 }
19 protected : size_t d ; p _p ; Float alpha ;
20 };
21 struct u_exact : field_functor < u_exact ,Float > {
22 Float operator () ( const point & x ) const {
23 if ( d == 2) return _f ( x )/(25+ sqr( norm ( x )));
24 else return sqr ( norm ( x ))/(12+ sqr( norm ( x )))* _f ( x );
25 }
26 u_exact ( size_t d1 ) : d ( d1 ) , _f ( d1 ) {}
27 protected : size_t d ; f _f ;
28 };
29 Float phi ( const point & x ) { return norm ( x ) - 1; }
How to run the program
The program compile as usual:
make helmholtz_s
A mesh of a circle is generated by:
mkgeo_ball -s -e 100 > circle.geo
geo circle
The mkgeo_ball is a convenient script that generates a mesh with the gmsh mesh generator. Then,
the problem resolution writes:
./helmholtz_s circle P1 > circle.field
field circle.field
field circle.field -elevation
The tridimensional case is similar:
mkgeo_ball -s -t 10 > sphere.geo
geo sphere.geo -stereo
./helmholtz_s sphere.geo P1 > sphere.field
field sphere.field -paraview
field sphere.field -stereo -gray
The solution is represented on Fig .7.1.left.106 Rheolef version 6.6 update 15 April 2014
Figure 7.1: Helmholtz-Beltrami problem: high-order curved surface mesh and its corresponding
isoparametric solution: (top) order = 1; (bottom) order = 3.
Higher-order isoparametric finite elements can be considered for the curved geometry:
mkgeo_ball -s -e 30 -order 3 > circle-P3.geo
geo circle-P3.geo -subdivide 10
Observe the curved edges (see Fig .7.1). The -subdivide option allows a graphical representation
of the curved edges by subdividing each edge in ten linear parts, since graphical softwares are not
yet able to represent curved elements. The computation with the P3 isoparametric approximation
writes:
./helmholtz_s circle-P3 P3 > circle-P3.field
field circle-P3.field -elevation
Notice that both the curved geometry and the finite element are second order. The tridimensional
counterpart writes simply:
mkgeo_ball -s -t 10 -order 3 > sphere-P3.geo
geo sphere-P3.geo
./helmholtz_s sphere-P3 P3 > sphere-P3.fieldRheolef version 6.6 update 15 April 2014 107
field sphere-P3.field -paraview
field sphere-P3.field -stereo -gray
The solution is represented on Fig .7.1).right-bottom. The graphical representation is not yet able
to represent the high-order approximation: each elements is subdivided and a piecewise linear
representation is used in each sub-elements.
Since the exact solution is known, the error can be computed: this is done by the program
helmholtz_s_error.cc. This file is not presented here, as it is similar to some others examples,
but can be founded in the Rheolef example directory. Figure 7.2 plots the error in various norms
versus element size for different isoparametric approximations.108 Rheolef version 6.6 update 15 April 2014
10−8
10−6
10−4
10−2
10−2 10−1
h
kuh − πh(u)k0,2,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−8
10−6
10−4
10−2
10−2 10−1
h
kuh − πh(u)k0,∞,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−8
10−6
10−4
10−2
100
10−2 10−1
h
|uh − πh(u)|1,2,Ω
1 = k
2
3
k = 1
k = 2
k = 3
Figure 7.2: Curved non-polynomial surface: error analysis in L
2
, L∞ and H1 norms.Rheolef version 6.6 update 15 April 2014 109
The Laplace-Beltrami problem
This problem has been introduced in (7.2), page 103. While the treatment of the HelmholtzBeltrami
problem was similar to the Helmholtz problem with Neumann boundary conditions, here,
the treatment of the Laplace-Beltrami problem is similar to the Laplace problem with Neumann
boundary conditions: see section 2.4, page 39. Notice that for both problems, the solution is
defined up to a constant. Thus, the linear problem has a singular matrix. The ‘laplace_s.cc’
code is similar to the ‘neumann-laplace.cc’ one, as presented in section 2.4. The only change
lies one the definition of the right-hand side.
Example file 7.3: laplace_s.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " torus . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo gamma ( argv [1]);
8 size_t d = gamma . dimension ();
9 space Wh ( gamma , argv [2]);
10 trial u ( Wh ); test v ( Wh );
11 form m = integrate ( u * v );
12 form a = integrate ( dot ( grad_s ( u ), grad_s ( v )));
13 field b = m * field ( Wh ,1);
14 field lh = integrate ( f (d )* v );
15 csr A = {{ a . uu () , b . u ()} ,
16 { trans ( b . u ()) , 0 }};
17 vec B = { lh . u () , 0 };
18 solver sa ( A );
19 vec U = sa . solve ( B );
20 field uh ( Wh );
21 uh . set_u () = U [ range (0 , uh . u (). size ())];
22 dout << uh ;
23 }110 Rheolef version 6.6 update 15 April 2014
Example file 7.4: torus.icc
1 static const Float R = 1;
2 static const Float r = 0.6;
3 Float phi ( const point & x ) {
4 return sqr( sqrt (sqr (x [0])+ sqr( x [1])) - sqr( R )) + sqr( x [2]) - sqr( r );
5 }
6 void get_torus_coordinates ( const point & x ,
7 Float & rho , Float & theta , Float & phi ) {
8 static const Float pi = acos ( Float ( -1));
9 rho = sqrt (sqr( x [2]) + sqr( sqrt (sqr ( x [0]) + sqr( x [1])) - sqr( R )));
10 phi = atan2 ( x [1] , x [0]);
11 theta = atan2 ( x [2] , sqrt (sqr( x [0]) + sqr ( x [1])) - R );
12 }
13 struct u_exact : field_functor < u_exact ,Float > {
14 Float operator () ( const point & x ) const {
15 Float rho , theta , phi ;
16 get_torus_coordinates (x , rho , theta , phi );
17 return sin (3* phi )* cos (3* theta + phi );
18 }
19 u_exact ( size_t d =3) {}
20 };
21 struct f : field_functor {
22 Float operator () ( const point & x ) const {
23 Float rho , theta , phi ;
24 get_torus_coordinates (x , rho , theta , phi );
25 Float fx = (9* sin (3* phi )* cos (3* theta + phi ))/ sqr (r )
26 - ( -10* sin (3* phi )* cos (3* theta + phi ) - 6* cos (3* phi )* sin (3* theta + phi ))
27 /sqr( R + r * cos ( theta ))
28 - (3* sin ( theta )* sin (3* phi )* sin (3* theta + phi ))
29 /( r *( R + r * cos ( theta )));
30 return fx ;
31 }
32 f ( size_t d =3) {}
33 };
As test problem, the surface Γ is the a torus when d = 3. The data f has been chosen as
in [37, p. 3355]. This choice is convenient since the exact solution is known. Let R and r denotes
the large and small torus radii, respectively. The torus coordinates (ρ, θ, φ) are defined linked to
the Cartesian ones by:
x0
x1
x2
= R
cos(φ)
sin(φ)
0
+ ρ
cos(φ) cos(θ)
sin(φ) cos(θ)
sin(θ)
Here ρ is the distance from the point to the circle in the x0x1 plane around 0 with radius R,
θ is the angle from the positive (x0, x1, 0) to x0 and φ is the angle from the positive x0 axis to
(x0, x1, 0).Rheolef version 6.6 update 15 April 2014 111
How to run the program ?
Figure 7.3: Laplace-Beltrami problem on a torus: high-order curved surface mesh and its corresponding
isoparametric solution: (top) order = 1; (bottom) order = 2.
The surface mesh of the torus is generated by:
gmsh -2 torus.mshcad -o torus.msh
msh2geo torus.msh > torus.geo
geo torus.geo -stereo
The ‘torus.mshcad’ is not presented here: it can be founded in the Rheolef example directory.
Then, the computation and visualization writes:
make laplace_s
./laplace_s torus.geo P1 > torus.field
field torus.field -paraview
field torus.field -stereo -gray
For a higher-order approximation:
gmsh -2 -order 2 torus.mshcad -o torus-P2.msh
msh2geo torus-P2.msh > torus-P2.geo
geo torus-P2.geo
./laplace_s torus-P2.geo P2 > torus-P2.field
field torus-P2.field -paraview
The solution is represented on Fig. 7.3. By editing ‘torus.mshcad’ and changing the density of
discretization, we can improve the approximate solution and converge to the exact solution. Due
to a bug [52] in the current gmsh version 2.5.1 the convergence is not optimal O(h
k
) for higher
values of k.112 Rheolef version 6.6 update 15 April 2014
7.2 Building a surface mesh from a level set function
The previous method is limited to not-too-complex surface Γ, that can be described by a regular
finite element surface mesh Γh. When the surface change, as in a time-dependent process, complex
change of topology often occurs and the mesh Γh can degenerate or be too complex to be efficiently
meshed. In that case, the surface is described implicitly as the zero isosurface, or zero level set, of
a function:
Γ = {x ∈ Λ; φ(x) = 0}
where Λ ⊂ R
d
is a bounding box of the surface Γ.
The following code automatically generates the mesh Γh of the surface described by the zero
isosurface of a discrete φh ∈ Xh level set function:
Γh = {x ∈ Λ; φh(x) = 0}
where Xh is a piecewise affine functional space over a mesh Th of Λ:
Xh = {ϕ ∈ L
2
(Λ) ∩ C
0
(Λ); ϕ/K ∈ P1, ∀K ∈ Th}
The polynomial approximation is actually limited here to first order: building higher order curved
finite element surface meshes from a level set function is planed for the future versions of Rheolef.
Finally, a computation, as performed in the previous paragraph can be done using Γh. We also
point out the limitations of this approach.
Example file 7.5: level_set_sphere.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " sphere . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo lambda ( argv [1]);
8 level_set_option_type opts ;
9 opts . split_to_triangle
10 = ( argc > 2 && argv [2] == std :: string (" - tq ")) ? false : true ;
11 space Xh ( lambda , " P1 ");
12 field phi_h = interpolate (Xh , phi );
13 geo gamma = level_set ( phi_h , opts );
14 dout << gamma ;
15 }
Comments
All the difficult work of building the intersection mesh Γh, defined as the zero level set of the φh
function, is performed by the level_set function:
geo gamma = level_set ( phi_h , opts );
When d = 3, intersected tetrahedra leads to either triangular or quadrangular faces. By default,
quadrangular faces are split into two triangles. An optional -tq program flag allows to conserve
quadrangles in the surface mesh: it set the split_to_triangle optional field to false.
How to run the program ?
After the compilation, generates the mesh of a bounding box Λ = [−2, 2]d of the surface and run
the program:Rheolef version 6.6 update 15 April 2014 113
make level_set_sphere
mkgeo_grid -t 20 -a -2 -b 2 -c -2 -d 2 > square2.geo
./level_set_sphere square2.geo > circle.geo
geo circle.geo -stereo
The computation of the previous paragraph can be reused:
./helmholtz_s circle.geo P1 | field -
Notice that, while the bounding box mesh was uniform, the intersected mesh could present arbitrarily
small edge length (see also Fig. 7.4):
geo -min-element-measure circle.geo
geo -max-element-measure circle.geo
Let us turn to the d = 3 case:
mkgeo_grid -T 20 -a -2 -b 2 -c -2 -d 2 -f -2 -g 2 > cube2.geo
./level_set_sphere cube2.geo | geo -upgrade - > sphere.geo
geo sphere.geo -stereo
./helmholtz_s sphere.geo P1 | field -paraview -
This approach can be extended to the Laplace-Beltrami problem on a torus:
sed -e ’s/sphere/torus/’ < level_set_sphere.cc > level_set_torus.cc
make level_set_torus
./level_set_torus cube2.geo | geo -upgrade - > torus.geo
geo torus.geo -stereo
./laplace_s torus.geo P1 | field -paraview -
While the bounding box mesh was uniform, the triangular elements obtained by intersecting the
3D bounding box mesh with the level set function can present arbitrarily irregular sizes nd shapes
(see also Fig. 7.4):
geo -min-element-measure -max-element-measure sphere.geo
geo -min-element-measure -max-element-measure torus.geo
Thus, there is no theoretical guaranties for the finite element method to converge on these irregular
families of meshes, despite, most of the time, the computations run well. This is the major
drawback of this method.114 Rheolef version 6.6 update 15 April 2014
Figure 7.4: Building an explicit surface mesh from level set: (top) circle; (center) sphere; (bottom)
torus.Rheolef version 6.6 update 15 April 2014 115
7.3 The banded level set method
The banded level set method presents the advantages of the two previous methods without their
drawback: it applies to very general geometries, as described by a level set funtion, and has
theoretical fundations, as usual finite element methods. The previous drawback of the intersection
mesh can be circumvented by enlarging the surface Γh to a band βh containing all the intersected
elements of Th (see [2, 15, 37]):
βh = {K ∈ Th; K ∩ Γh 6= ∅}
Then, we introduce Bh the piecewise affine functional space over βh:
Bh = {v ∈ L
2
(βh) ∩ C
0
(βh); v/K ∈ P1, ∀K ∈ Th}
The problem is extended from Γh to βh as:
(V F)h: find uh ∈ Bh such that:
a(uh, vh) = l(vh), ∀vh ∈ Bh
where, for all u, v ∈ Bh,
a(u, v) = Z
Γh
(u v + ∇su.∇sv) ds
l(v) = Z
Γh
f v ds
for all uh, vh ∈ Bh. Notice that while uh and vh are defined over βh, the summations in the
variational formulations are restricted only to Γh ⊂ βh.
Example file 7.6: helmholtz_band_iterative.cc
1 # include " rheolef . h "
2 using namespace std ;
3 using namespace rheolef ;
4 # include " sphere . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo lambda ( argv [1]);
8 size_t d = lambda . dimension ();
9 space Xh ( lambda , " P1 ");
10 field phi_h = interpolate (Xh , phi );
11 band gamma_h ( phi_h );
12 space Bh ( gamma_h . band () , " P1 ");
13 trial u ( Bh ); test v ( Bh );
14 form a = integrate ( gamma_h , u * v + dot ( grad_s ( u ) , grad_s ( v )));
15 field lh = integrate ( gamma_h , f ( d )* v );
16 field uh ( Bh ,0);
17 size_t max_iter = 10000;
18 Float tol = 1e -10;
19 pminres ( a . uu () , uh . set_u () , lh . u () , eye () , max_iter , tol , & derr );
20 dout << catchmark (" phi ") << phi_h
21 << catchmark (" u ") << uh ;
22 }
Comments
The band is build directly from the level set function as:
band gamma_h ( phi_h );
The band structure is a small class that groups the surface mesh Γh, available as
gamma_h.level_set(), and the βh mesh, available as gamma_h.band(). It also manages some116 Rheolef version 6.6 update 15 April 2014
correspondance between both meshes. Then, the space of piecewise affine functions over the band
is introduced:
space Bh ( gamma_h . band () , " P1 ");
Next, two forms are computed by using the integrate function, with the band gamma_h as a
domain-like argument:
form m = integrate ( gamma_h , u * v );
form a = integrate ( gamma_h , dot ( grad_s ( u ) , grad_s ( v )));
The right-hand side also admits the gamma_h argument:
field lh = integrate ( gamma_h , f ( d )* v );
Recall that summations for both forms and right-hand side will be performed on Γh, represented
by gamma_h.level_set(), while the approximate functional space is Bh. Due to this summation
on Γh instead of βh, the matrix of the system is singular [2, 36, 37] and the MINRES algorithm
has been chosen to solve the linear system:
pminres ( a . uu () , uh . set_u () , lh . u () , eye () , max_iter , tol , & derr );
The eye() argument represents here the identity preconditioner, i.e. no preconditioner at all. It
has few influence of the convergence properties of the matrix and could be replaced by another
simple one: the diagonal of the matrix diag(a.uu()) without sensible gain of performance:
pminres ( a . uu () , uh . set_u () , lh . u () , diag ( a . uu ()) , max_iter , tol , & derr );
How to run the program
The compilation and run writes:
make helmholtz_band_iterative
mkgeo_grid -T 20 -a -2 -b 2 -c -2 -d 2 -f -2 -g 2 > cube-20.geo
./helmholtz_band_iterative cube-20.geo > sphere-band.field
The run generates also two meshes (see Fig. 7.5): the intersection mesh and the band around it.
The solution is here defined on this band: this extension has no interpretation in terms of the
initial problem and can be restricted to the intersection mesh for visualization purpose:
make proj_band
./proj_band < sphere-band.field | field -paraview -
The ‘proj_band.cc’ is presented below. The run generates also the Γh mesh (see Fig. 7.5), required
for the visualization. The two-dimensional case is obtained simply by replacing the 3D bounding
box by a 2D one:
mkgeo_grid -t 20 -a -2 -b 2 -c -2 -d 2 > square-20.geo
./helmholtz_band_iterative square-20.geo > circle-band.field
./proj_band < circle-band.field | field -paraview -
./proj_band < circle-band.field | field -paraview -elevation -bw -stereoRheolef version 6.6 update 15 April 2014 117
Example file 7.7: proj_band.cc
1 # include " rheolef . h "
2 using namespace std ;
3 using namespace rheolef ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 field phi_h ;
7 din >> catchmark (" phi ") >> phi_h ;
8 const space & Xh = phi_h . get_space ();
9 band gamma_h ( phi_h );
10 space Bh ( gamma_h . band () , " P1 ");
11 field uh ( Bh );
12 din >> catchmark (" u ") >> uh ;
13 space Wh ( gamma_h . level_set () , " P1 ");
14 gamma_h . level_set (). save ();
15 dout << interpolate ( Wh , uh );
16 }
7.4 A direct solver for the banded level set method
The iterative algorithm previously used for solving the linear system is not optimal: for 3D
problems on a surface, the bidimensionnal connectivity of the sparse matrix suggests that a direct
sparse factorisation would be much more efficent.
Recall that φh = 0 on Γh. Thus, if uh ∈ Bh is solution of the problem, then uh + αφh|βh ∈ Bh
is also solution for any α ∈ R, where φh|βh ∈ Bh denotes the restriction of the level set function
φh ∈ Xh on the band βh. Thus there is multiplicity of solutions and the matrix of the problem
is singular. The direct resolution is still possible on a modified linear system with additional
constraints in order to recover the unicity of the solution. We impose the constraint that the
solution uh should be othogonal to φh|βh ∈ Bh. In some special cases, the band is composed of
several connected components (see Fig. 7.6): this appends when a vertex of the bounding box
mesh belongs to Γh. In that case, the constaint sould be expressed on each connected component.
Fig. 7.6 shows also the case when a full side of an element is included in Γh: such an element of
the band is called isolated.118 Rheolef version 6.6 update 15 April 2014
Example file 7.8: helmholtz_band.cc
1 # include " rheolef . h "
2 using namespace std ;
3 using namespace rheolef ;
4 # include " sphere . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo lambda ( argv [1]);
8 size_t d = lambda . dimension ();
9 space Xh ( lambda , " P1 ");
10 field phi_h = interpolate (Xh , phi );
11 band gamma_h ( phi_h );
12 field phi_h_band = phi_h [ gamma_h . band ()];
13 space Bh ( gamma_h . band () , " P1 ");
14 Bh . block (" isolated ");
15 Bh . unblock (" zero ");
16 trial u ( Bh ); test v ( Bh );
17 form a = integrate ( gamma_h , u * v + dot ( grad_s ( u ) , grad_s ( v )));
18 field lh = integrate ( gamma_h , f ( d )* v );
19 vector > b ( gamma_h . n_connected_component ());
20 vector z ( gamma_h . n_connected_component () , 0);
21 for ( size_t i = 0; i < b . size (); i ++) {
22 const domain & cci = gamma_h . band () [" cc "+ itos ( i )];
23 field phi_h_cci ( Bh , 0);
24 phi_h_cci [ cci ] = phi_h_band [ cci ];
25 b [ i ] = phi_h_cci . u ();
26 }
27 csr A = { { a . uu () , trans ( b )} ,
28 { b , 0 } };
29 vec F = { lh . u () , z };
30 A . set_symmetry ( true );
31 solver sa = ldlt ( A );
32 vec U = sa . solve ( F );
33 field uh ( Bh ,0);
34 uh . set_u () = U [ range (0 , uh . u (). size ())];
35 dout << catchmark (" phi ") << phi_h
36 << catchmark (" u ") << uh ;
37 }
Comments
The management of the special sides and vertices that are fully included in Γh is perfomed by:
Bh . block (" isolated ");
Bh . unblock (" zero ");
The addition of linear constraints is similar to the ‘neumann-laplace.cc’ code, as presented in
section 2.4:
csr A = { { a . uu () , trans ( b )} ,
{ b , 0 } };
Here b is a vector >, i.e. a vector of linear constraints, one per connected component
of the band βh.
How to run the program
The commands are similar to the previous iterative implementation, just replacing
helmholtz_band_iterative by helmholtz_band.
This approach could be also adapted to the Laplace-Beltrami problem on the torus.Rheolef version 6.6 update 15 April 2014 119
Example file 7.9: laplace_band.cc
1 # include " rheolef . h "
2 using namespace std ;
3 using namespace rheolef ;
4 # include " torus . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo lambda ( argv [1]);
8 size_t d = lambda . dimension ();
9 space Xh ( lambda , " P1 ");
10 field phi_h = interpolate (Xh , phi );
11 band gamma_h ( phi_h );
12 field phi_h_band = phi_h [ gamma_h . band ()];
13 space Bh ( gamma_h . band () , " P1 ");
14 Bh . block (" isolated ");
15 Bh . unblock (" zero ");
16 trial u ( Bh ); test v ( Bh );
17 form m = integrate ( gamma_h , u * v );
18 form a = integrate ( gamma_h , dot ( grad_s ( u ) , grad_s ( v )));
19 field lh = integrate ( gamma_h , f ( d )* v );
20 vector > b ( gamma_h . n_connected_component ());
21 vector z ( gamma_h . n_connected_component () , 0);
22 for ( size_t i = 0; i < b . size (); i ++) {
23 const domain & cci = gamma_h . band () [" cc "+ itos ( i )];
24 field phi_h_cci ( Bh , 0);
25 phi_h_cci [ cci ] = phi_h_band [ cci ];
26 b [ i ] = phi_h_cci . u ();
27 }
28 field c = m * field ( Bh ,1);
29 csr A = { { a . uu () , trans ( b ) , c . u ()} ,
30 { b , 0 , 0 } ,
31 { trans ( c. u ()) , 0 , 0 } };
32 vec F = { lh . u () , z , 0};
33 A . set_symmetry ( true );
34 solver sa = ldlt ( A );
35 vec U = sa . solve ( F );
36 field uh ( Bh ,0);
37 uh . set_u () = U [ range (0 , uh . u (). size ())];
38 dout << catchmark (" phi ") << phi_h
39 << catchmark (" u ") << uh ;
40 }
Comments
The code is simlar to the previous one helmholtz_band.cc. Since the solution is defined up to a
constant, an additional linear constraint has to be inserted:
Z
Γh
uh dx = 0
This writes:
field c = m * field ( Bh ,1);
csr A = { { a . uu () , trans ( b ) , c . u ()} ,
{ b , 0 , 0 } ,
{ trans ( c. u ()) , 0 , 0 } };
How to run the program
make laplace_band
mkgeo_grid -T 20 -a -2 -b 2 -c -2 -d 2 -f -2 -g 2 > cube-20.geo
./laplace_band cube-20.geo > torus-band.field
./proj_band < torus-band.field | field -stereo -120 Rheolef version 6.6 update 15 April 2014
The solution is represented on Fig. 7.5.bottom.Rheolef version 6.6 update 15 April 2014 121
Figure 7.5: The banded level set method: (top) circle; (center) sphere; (bottom) torus.122 Rheolef version 6.6 update 15 April 2014
cc0
cc1
cc2
cc3
cc4
cc5
cc6
cc7
cc8
cc9
isolated
zero
Figure 7.6: The banded level set method: the band is composed of several connected components.Chapter 8
The highly nonlinear p-laplacian
problem
8.1 Problem statement
Let us consider the classical p-Laplacian problem with homogeneous Dirichlet boundary conditions
in a domain bounded Ω ⊂ R
d
, d = 1, 2, 3:
(P): find u, defined in Ω such that:
−div
η
|∇u|
2
∇u
= f in Ω
u = 0 on ∂Ω
where η : z ∈ R
+ 7−→ z
p−2
2 ∈ R
+. Several variants of the η can be considered: see [49] for practical
and usefull examples. Here p ∈]1, +∞[ and f are known. For the computational examples, we
choose f = 1. When p = 2, this problem reduces to the linear Poisson problem with homogeneous
Dirichlet boundary conditions. Otherwise, for any p > 1, the nonlinear problem is equivalent to
the following minimization problem:
(MP): find u ∈ W
1,p
0
(Ω) such that:
u = arg min
v∈W1,p
0
(Ω)
1
2
Z
Ω
H
|∇v|
2
dx −
Z
Ω
f v dx,
where H denotes the primitive of η:
H(z) = Z z
0
η(z) dz =
2z
p
p
Here W
1,p
0
(Ω) denotes the usual Sobolev spaces of functions in W1,p(Ω) We also assume that f ∈
W−1,p(Ω), where W
−1,p
0
(Ω) denotes the dual space of W
1,p
0
(Ω) that vanishes on the boundary [11,
p. 118]. The variational formulation of this problem expresses:
(VF): find u ∈ W
1,p
0
(Ω) such that:
a(u; u, v) = l(v), ∀v ∈ W
1,p
0
(Ω)
where a(., .) and l(.) are defined for any u0, u, v ∈ W1,p(Ω) by
a(u0; u, v) = Z
Ω
η
|∇u0|
2
∇u.∇v dx, ∀u, v ∈ W
1,p
0
(Ω) (8.1)
l(v) = Z
Ω
f v dx, ∀u, v ∈ L
2
(Ω) (8.2)
The quantity a(u; u, u)
1/p = k∇uk0,p,Ω induces a norm in W
1,p
0
, equivalent to the standard norm.
The form a(.; ., .) is bilinear with respect to the two last variable and is related to the energy form.
123124 Rheolef version 6.6 update 15 April 2014
8.2 The fixed-point algorithm
8.2.1 Principe of the algorithm
This nonlinear problem is then reduced to a sequence of linear subproblems by using the fixed-point
algorithm. The sequence
u
(n)
n>0
is defined by recurrence as:
• n = 0: let u
(0) ∈ W
1,p
0
(Ω) be known.
• n > 0: suppose that u
(n) ∈ W
1,p
0
(Ω) is known and find u
∗ ∈ W
1,p
0
(Ω) such that:
a
u
(n)
; u
∗
, v
= l(v), ∀v ∈ W
1,p
0
(Ω)
and then set
u
(n+1) = ωu∗ + (1 − ω) ∗ u
(n)
Here ω > 0 is the relaxation parameter: when ω = 1 we obtain the usual un-relaxed fixed point
algorithm. For stiff nonlinear problems, we will consider the under-relaxed case 0 < ω < 1. Let
u
(n+1) = G
u
(n)
denotes the operator that solve the previous linear subproblem for a given u
(n)
.
Since the solution u satisfies u = G(u), it is a fixed-point of G.
Let us introduce a mesh Th of Ω and the finite dimensional space Xh of continuous piecewise polynomial
functions and Vh, the subspace of Xh containing elements that vanishes on the boundary
of Ω:
Xh = {vh ∈ C
0
0
Ω
; vh/K ∈ Pk, ∀K ∈ Th}
Vh = {vh ∈ Xh; vh = 0 on ∂Ω}
where k = 1 or 2. The approximate problem expresses: suppose that u
(n)
h ∈ Vh is known and find
u
∗
h ∈ Vh such that:
a
u
(n)
h
; u
∗
h
, vh
= l(vh), ∀vh ∈ Vh
By developing u
∗
h
on a basis of Vh, this problem reduces to a linear system.Rheolef version 6.6 update 15 April 2014 125
Example file 8.1: p_laplacian_fixed_point.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " eta . icc "
5 # include " dirichlet . icc "
6 int main (int argc , char ** argv ) {
7 environment rheolef ( argc , argv );
8 geo omega ( argv [1]);
9 Float eps = std :: numeric_limits :: epsilon ();
10 string approx = ( argc > 2) ? argv [2] : " P1 ";
11 Float p = ( argc > 3) ? atof ( argv [3]) : 1.5;
12 Float w = ( argc > 4) ? ( is_float ( argv [4]) ? atof ( argv [4]) :2/ p ) :1;
13 Float tol = ( argc > 5) ? atof ( argv [5]) : 1 e5 * eps ;
14 size_t max_it = ( argc > 6) ? atoi ( argv [6]) : 500;
15 derr << " # P - Laplacian problem by fixed - point : " << endl
16 << " # geo = " << omega . name () << endl
17 << " # approx = " << approx << endl
18 << " # p = " << p << endl
19 << " # w = " << w << endl
20 << " # tol = " << tol << endl ;
21 space Xh ( omega , approx );
22 Xh . block (" boundary ");
23 trial u ( Xh ); test v ( Xh );
24 form m = integrate ( u * v );
25 solver sm ( m . uu ());
26 quadrature_option_type qopt ;
27 qopt . set_family ( quadrature_option_type :: gauss );
28 qopt . set_order (2* Xh . degree () -1);
29 field uh ( Xh );
30 uh [" boundary "] = 0;
31 field lh = integrate ( v );
32 dirichlet ( lh , uh );
33 derr << " # n r v " << endl ;
34 Float r = 1 , r0 = 1;
35 size_t n = 0;
36 do {
37 form a = integrate ( compose ( eta ( p ) , norm2 ( grad ( uh )))* dot ( grad ( u ) , grad ( v )) ,
38 qopt );
39 field mrh = a * uh - lh ;
40 field rh ( Xh , 0);
41 rh . set_u () = sm . solve ( mrh . u ());
42 r = rh . max_abs ();
43 if ( n == 0) { r0 = r ; }
44 Float v = ( n == 0) ? 0 : log10 ( r0 /r )/ n ;
45 derr << n << " " << r << " " << v << endl ;
46 if ( r <= tol || n ++ >= max_it ) break ;
47 solver sa ( a . uu ());
48 vec u_star = sa . solve ( lh .u () - a . ub ()* uh . b ());
49 uh . set_u () = w * u_star + (1 - w )* uh . u ();
50 } while ( true );
51 dout << catchmark (" p ") << p << endl
52 << catchmark (" u ") << uh ;
53 return ( r <= tol ) ? 0 : 1;
54 }
8.2.2 Comments
The implementation with Rheolef involves a weighted forms: the tensor-valued weight
η
∇u
(n)
h
2
is inserted in the variationnal expression passed to the integrate function. The
construction of the weighted form a(.; ., .) writes:
form a = integrate ( compose ( eta ( p ) , norm2 ( grad ( uh )))* dot ( grad ( u ) , grad ( v )) ,
qopt );126 Rheolef version 6.6 update 15 April 2014
Remarks the usage of the compose, norm2 and grad libray functions. The weight η
∇u
(n)
h
2
is
represented by the compose(eta(p),norm2(grad(uh))) sub-expression. This weight is evaluated
on the fly at the quadrature nodes during the assembly process implemented by the integrate
function. Also, notice the distinction between uh, that represents the value of the solution at step
n, and the trial u and test v functions, that represents any elements of the function space Xh.
These functions appear in the dot(grad(u),grad(v)) sub-expression. As the integrals involved
by this weighted form cannot be computed exactly for a general η function, a quadrature formula
is used:
Z
K
f(x) dx =
nXK−1
q=0
f(xK,q) ωK,q + O(h
k
′+1)
where (xK,q, ωK,q)06q {
2 Float operator () ( const Float & z ) const {
3 check_macro ( z != 0 || p > 2 , " eta : division by zero ( HINT : check mesh ) ");
4 return pow (z , (p -2)/2);
5 }
6 Float derivative ( const Float & z ) const {
7 check_macro ( z != 0 || p > 4 , " eta ’: division by zero ( HINT : check mesh ) ");
8 return 0.5*( p -2)* pow (z , (p -4)/2);
9 }
10 eta ( const Float & q ) : p ( q ) {}
11 Float p ;
12 };
The η function is implemented separately, in file named eta.icc in order to easily change its
definition. The derivative member function is not yet used here: it is implemented for a
forthcoming application (the Newton method). Notice the guards that check for division by
zero and send a message related to the mesh: this will be commentated in the next paragraph.
Finally, the fixed-point algorithm is initiated with u
(0) as the solution of the linear problem
associated to p = 2, i.e. the standard Poisson problem with Dirichlet boundary conditions.Rheolef version 6.6 update 15 April 2014 127
Example file 8.3: dirichlet.icc
1 void dirichlet ( const field & lh , field & uh ) {
2 const space & Xh = lh . get_space ();
3 trial u ( Xh ); test v ( Xh );
4 form a = integrate ( dot ( grad ( u ) , grad ( v )));
5 solver sa ( a . uu ());
6 uh . set_u () = sa . solve ( lh . u () - a. ub ()* uh . b ());
7 }
8.2.3 Running the program
Compile the program, as usual:
make p_laplacian_fixed_point
and enter the commands:
mkgeo_ugrid -t 50 > square.geo
geo square.geo
The triangular mesh has a boundary domain named boundary.
./p_laplacian_fixed_point square.geo P1 1.5 > square.field
field square.field -elevation -stereo
Figure 8.1: The p-Laplacian for d = 2: elevation view for p = 1.25 (left), p = 2 (center) and
p = 2.5 (right).
Run the field visualization:
field square.field -elevation -stereo
field square.field -cut -origin 0.5 0.5 -normal 1 1
The first command shows an elevation view of the solution (see 8.1) while the second one shows
a cut along the first bisector x0 = x1. Observe that the solution becomes flat at the center
when p decreases. The p = 2 case, corresponding to the linear case, is showed for the purpose of
comparison.
There is a technical issue concerning the mesh: the computation could failed on some mesh that
presents at least one triangle with two edges on the boundary:
mkgeo_grid -t 50 > square-bedge.geo
geo square-bedge.geo
./p_laplacian_fixed_point square-bedge.geo P1 1.5 > square-bedge.field128 Rheolef version 6.6 update 15 April 2014
The computation stops and claims a division by zero: the three nodes of such a triangle, the
three nodes are on the boundary, where uh = 0 is prescribed: thus ∇uh = 0 uniformly inside
this element. Notice that this failure occurs only for linear approximations: the computation
works well on such meshes for Pk approximations with k > 2. While the mkgeo_grid generates
uniform meshes that have such triangles, the mkgeo_ugrid calls the gmsh generator that automatically
splits the triangles with two boundary edges. When using bamg, you should consider the
-splitpbedge.
8.2.4 Convergence properties of the fixed-point algorithm
The fixed-point algorithm prints also rn, the norm of the residual term, at each iteration n, and the
convergence rate vn = log10(rn/r0)/n. The residual term of the non-linear variational formulation
is defined by:
r
(n)
h ∈ Vh and m
r
(n)
h
, vh
= a
u
(n)
h
; u
(n)
h
, vh
− l(vh), ∀vh ∈ Vh
where m(., .) denotes the L
2
scalar product. Clearly, u
(n)
h
is a solution if and only if r
(n)
h = 0.
For clarity, let us drop temporarily the n index of the current iteration. The field rh ∈ Vh can be
extended as a field rh ∈ Xh with vanishing components on the boundary. The previous relation
writes, after expansion of the bilinear forms and fields on the unknown and blocked parts (see
page 17 for the notations):
m.uu*rh.u = a.uu*uh.u + a.ub*ub.b - lh.u
rh.b = 0
This relation expresses that the residual term rh is obtained by solving a linear system involving
the mass matrix.
It remains to choose a good norm for estimating this residual term. For the corresponding continuous
formulation, we have:
r = −div
η
|∇u|
2
∇u
− f ∈ W−1,p(Ω)
Thus, for the continuous formulation, the residual term may be measured with the W−1,p(Ω)
norm. It is defined, for all ϕ ∈ W−1,p(Ω), by duality:
kϕk−1,p,Ω = sup
ϕ∈W1,p
0
(Ω)
v6=0
hϕ, vi
kvk1,p,Ω
= sup
v∈W1,p
0
(Ω)
kvk1,p,Ω=1
hϕ, vi
where h., .i denotes the duality bracked between W
1,p
0
(Ω) and W−1,p(Ω).
By analogy, let us introduce the discrete W−1,p(Ω) norm, denoted as k.k−1,h, defined by duality
for all ϕh ∈ Vh by:
kϕhk−1,h = sup
vh∈Vh
kvhk1,p,Ω=1
hϕh, vhi
The dual of space of the finite element space Vh is identified to Vh and the duality bracked is the
Euclidian scalar product of R
dim(Vh)
. Then, kϕhk−1,h is the largest absolue value of components
of ϕh considered as a vector of R
dim(Vh)
. With the notations of the Rheolef library, it simply
writes:
Float r = rh.u().max_abs()
Fig 8.2.top-left shows that the residual term decreases exponentially versus n, since the slope of
the plot in semi-log scale tends to be strait. Moreover, observe that the slope is independent ofRheolef version 6.6 update 15 April 2014 129
10−15
10−10
10−5
1
0 25 50
n
r
(n)
h
−1,h
p = 3/2
h = 1/10
h = 1/20
h = 1/30
h = 1/40
h = 1/50
10−15
10−10
10−5
1
0 25 50
n
r
(n)
h
−1,h
p = 3/2
k = 1
k = 2
k = 3
k = 4
k = 5
10−15
10−10
10−5
1
0 250 500
n
r
(n)
h
−1,h
p = 2.95
p = 2.90
p = 2.50
10−15
10−10
10−5
1
0 100 200
n
r
(n)
h
−1,h
p = 1.15
p = 1.25
p = 1.50
Figure 8.2: The fixed-point algorithm on the p-Laplacian for d = 2: when p = 3/2, independence
of the convergence properties of the residue (top-left) with mesh refinement; (top-right) with
polynomial order Pk; when h = 1/50 and k = 1, convergence (bottom-left) for p > 2 and (bottomright)
for p < 2.
the mesh size h. Also, by vertue of the previous carreful definition of the residual term and its
corresponding norm, all the slopes falls into a master curve.
These invariance properties applies also to the polynomial approximation Pk : Fig 8.2.top-right
shows that all the curves tends to collapse when k increases. Thus, the convergence properties
of the algorithm are now investigated on a fixed mesh h = 1/50 and for a fixed polynomial
approximation k = 1.
Fig 8.2.bottom-left and 8.2.bottom-right show the convergence vesus the power-law index p: observe
that the convergence becomes easier when p approaches p = 2, where the problem is linear.
In that case, the convergence occurs in one iteration. Nevertheless, it appears two limitations.
From one hand, when p → 3 the convergence starts to slow down and p > 3 cannot be solved
by this algorithm (it will be solved later in this chapter). From other hand, when p → 1, the
convergence slows down too and numerical rounding effets limits the convergence: the machine
precision canot be reached. Let us introduce the convergence rate vn = log10(rn/r0)/n it tends to
a constant, denoted as v¯ and: rn ≈ r0 × 10−v n¯
. Observe on Fig 8.3.left that v¯ tends to +∞ when
p = 2, since the system becomes linear and the algorithm converge in one iteration. Observe also
that v¯ tends to zero for p = 1 and p = 3 since the algorithm diverges. Fig 8.3.right shows the
same plot in semi-log scale and shows that v¯ behaves as: v¯ ≈ − log10 |p − 2|. This study shows130 Rheolef version 6.6 update 15 April 2014
0
1
2
1 2 3
p
v¯ computation
0
1
2
10−3 10−2 10−1 100
|p − 2|
v¯ computation: p < 2
computation: p > 2
fit: − log10 |p − 2|
Figure 8.3: The fixed-point algorithm on the p-Laplacian for d = 2: (left) convergence rate versus
p; (right) convergence rate versus p in semi-log scale.
that the residual term of the fixed point algorithm behaves as:
rn ≈ r0 |p − 2|
n
8.2.5 Improvement by relaxation
The relaxation parameter can improve the fixed-point algorithm: for instance, for p = 3 and
ω = 0.5 we get a convergent sequence:
./p_laplacian_fixed_point square.geo P1 3 0.5 > square.field
Observe on Fig. 8.4 the effect on the relaxation parameter ω upon the convergence rate v¯: for
p < 2 it can improve it and for p > 2, it can converge when p > 3. For each p, there is clearly an
optimal relaxation parameter, denoted by ωopt. A simple fit shows that (see Fig. 8.4.bottom-left):
ωopt = 2/p
Let us denote v¯opt the corresponding rate of convergence. Fig. 8.4.top-right shows that the convergence
is dramatically improved when p > 2 while the gain is less prononced when p < 2.
Coveniently replacing the extra parameter ω on the command line by - leads to compute automatically
ω = ωopt: the fixed-point algorithm is always convergent with an optimal convergent
rate, e.g.:
./p_laplacian_fixed_point square.geo P1 4.0 - > square.field
There is no way to improve more the fixed point algorithm: the next paragraph shows a different
algorithm that dramatically accelerates the computation of the solution.Rheolef version 6.6 update 15 April 2014 131
0
0.1
0.2
0.3
0.4
0 0.5 1 1.5 2
ω
v¯ p = 1.2
p = 1.3
p = 1.4
p = 1.5
0
0.1
0.2
0.3
0.4
0 0.25 0.5 0.75 1
ω
v¯ p = 3
p = 4
p = 5
p = 6
0
0.5
1
1.5
2
1 2 3 4 5 6 7 8
p
ωopt
computation: ωopt
fit: ωopt(p) = 2/p
0
0.5
1
1.5
2
2.5
1 2 3 4 5 6 7 8
p
v¯opt v¯ when ω = ωopt
v¯ when ω = 1
Figure 8.4: The fixed-point algorithm on the p-Laplacian for d = 2: effect of the relaxation
parameter ω (top-left) when p < 2; (top-right) when p > 2; (bottom-left) optimal ωopt; (bottomright)
optimal v¯opt.132 Rheolef version 6.6 update 15 April 2014
8.3 The Newton algorithm
8.3.1 Principe of the algorithm
An alternative to the fixed-point algorithm is to solve the nonlinear problem (P) by using the
Newton algorithm. Let us consider the following operator:
F : W
1,p
0
(Ω) −→ W−1,p(Ω)
u 7−→ F(u) = −div
η
|∇u|
2
∇u
− f
The F operator computes simply the residual term and the problem expresses now as: find u ∈
W
1,p
0
(Ω) such that F(u) = 0.
The Newton algorithm reduces the nonlinear problem into a sequence of linear subproblems: the
sequence
u
(n)
n>0
is classically defined by recurrence as:
• n = 0: let u
(0) ∈ W
1,p
0
(Ω) be known.
• n > 0: suppose that u
(n)
is known, find δu(n)
, defined in Ω, such that:
F
′
u
(n)
δu(n) = −F
u
(n)
and then compute explicitly:
u
(n+1) := u
(n) + δu(n)
The notation F
′
(u) stands for the Fréchet derivative of F, as an operator from W−1,p(Ω) into
W
1,p
0
(Ω). For any r ∈ W−1,p(Ω), the linear tangent problem writes:
find δu ∈ W
1,p
0
(Ω) such that:
F
′
(u) δu = −r
After the computation of the Fréchet derivative, we obtain the strong form of this problem:
(LT): find δu, defined in Ω, such that
−div
η
|∇u|
2
∇(δu) + 2η
′
|∇u|
2
{∇u.∇(δu)} ∇u
= −r in Ω
δu = 0 on ∂Ω
where
η
′
(z) = 1
2
(p − 2)z
p−4
2 , ∀z > 0
This is a Poisson-like problem with homogeneous Dirichlet boundary conditions and a non-constant
tensorial coefficient. The variational form of the linear tangent problem writes:
(V LT): find δu ∈ W
1,p
0
(Ω) such that
a1(u; δu, δv) = l1(v), ∀δv ∈ W
1,p
0
(Ω)
where the a1(.; ., .) is defined for any u, δu, δv ∈ W
1,p
0
(Ω) by:
a1(u; δu, δv) = Z
Ω
η
|∇u|
2
∇(δu).∇(δv) + 2η
′
|∇u|
2
{∇u.∇(δu)} {∇u.∇(δv)}
dx
l1(v) = −
Z
Ω
r v dx
For any ξ ∈ R
d
let us denote by ν(ξ) the following d × d matrix:
ν(ξ) = η
|ξ|
2
I + 2η
′
|ξ|
2
ξ ⊗ ξRheolef version 6.6 update 15 April 2014 133
where I stands for the d-order identity matrix. Then the a1 expresses in a more compact form:
a1(u; δu, δv) = Z
Ω
(ν(∇u)∇(δu)).∇(δv) dx
Clearly a1 is linear and symmetric with respect to the two last variables.
Example file 8.4: p_laplacian_newton.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " p_laplacian . h "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega_h ( argv [1]);
8 Float eps = std :: numeric_limits :: epsilon ();
9 string approx = ( argc > 2) ? argv [2] : " P1 ";
10 Float p = ( argc > 3) ? atof ( argv [3]) : 1.5;
11 Float tol = ( argc > 4) ? atof ( argv [4]) : 1 e5 * eps ;
12 size_t max_iter = ( argc > 5) ? atoi ( argv [5]) : 500;
13 derr << " # P - Laplacian problem by Newton : " << endl
14 << " # geo = " << omega_h . name () << endl
15 << " # approx = " << approx << endl
16 << " # p = " << p << endl
17 << " # tol = " << tol << endl
18 << " # max_iter = " << max_iter << endl ;
19 p_laplacian F (p , omega_h , approx );
20 field uh = F . initial ();
21 int status = newton (F , uh , tol , max_iter , & derr );
22 dout << setprecision ( numeric_limits :: digits10 )
23 << catchmark (" p ") << p << endl
24 << catchmark (" u ") << uh ;
25 return status ;
26 }
Example file 8.5: p_laplacian.h
1 class p_laplacian {
2 public :
3 typedef field value_type ;
4 typedef Float float_type ;
5 p_laplacian ( Float p , const geo& omega , string approx );
6 field initial () const ;
7 field residue ( const field & uh ) const ;
8 void update_derivative ( const field & uh ) const ;
9 field derivative_solve ( const field & mrh ) const ;
10 field derivative_trans_mult ( const field & mrh ) const ;
11 Float space_norm ( const field & uh ) const ;
12 Float dual_space_norm ( const field & mrh ) const ;
13 Float p ;
14 space Xh ;
15 field lh ;
16 form m ;
17 solver sm ;
18 quadrature_option_type qopt ;
19 mutable form a1 ;
20 mutable solver sa1 ;
21 };
22 # include " p_laplacian1 . icc "
23 # include " p_laplacian2 . icc "
8.3.2 Comments
The Newton algorithm is implemented in a generic way, for any F function, by the newton function
from the Rheolef librarys. The reference manual for the newton generic function is available
online:134 Rheolef version 6.6 update 15 April 2014
man newton
The function F and its derivative F
′ are provided by a template class argument. Here,
the p_laplacian class describes our F function, i.e. our problem to solve: its interface
is defined in the file ‘p_laplacian.h’ and its implementation in ‘p_laplacian1.icc’
and ‘p_laplacian2.icc’. The introduction of the class p_laplacian will allow an easy exploration
of some variants of the Newton algorithm for this problem, as we will see in the next section.
Example file 8.6: p_laplacian1.icc
1 # include " eta . icc "
2 # include " nu . icc "
3 # include " dirichlet . icc "
4 p_laplacian :: p_laplacian ( Float p1 , const geo & omega , string approx )
5 : p ( p1 ) , Xh () , lh () , m () , sm () , qopt () , a1 () , sa1 () {
6 Xh = space ( omega , approx );
7 Xh . block (" boundary ");
8 qopt . set_family ( quadrature_option_type :: gauss );
9 qopt . set_order (2* Xh . degree () -1);
10 trial u ( Xh ); test v ( Xh );
11 lh = integrate ( v );
12 m = integrate ( u * v );
13 sm = solver ( m. uu ());
14 }
15 field p_laplacian :: initial () const {
16 field uh ( Xh , 0);
17 dirichlet ( lh , uh );
18 return uh ;
19 }
20 field p_laplacian :: residue ( const field & uh ) const {
21 trial u ( Xh ); test v ( Xh );
22 form a = integrate ( compose ( eta ( p ), norm2 ( grad ( uh )))* dot ( grad ( u ) , grad ( v )) ,
23 qopt );
24 field mrh = a * uh - lh ;
25 mrh . set_b () = 0;
26 return mrh ;
27 }
28 void p_laplacian :: update_derivative ( const field & uh ) const {
29 size_t d = Xh . get_geo (). dimension ();
30 trial u ( Xh ); test v ( Xh );
31 a1 = integrate ( dot ( compose ( nu < eta >( eta ( p ) , d ) , grad ( uh ))* grad ( u ) , grad ( v )) ,
32 qopt );
33 sa1 = ldlt ( a1 . uu ());
34 }
35 field p_laplacian :: derivative_solve ( const field & rh ) const {
36 field delta_uh ( Xh ,0);
37 delta_uh . set_u () = sa1 . solve ( rh . u ());
38 return delta_uh ;
39 }
The residual term F(uh) is computed by the member function residual while the resolution of
F
′
(uh)δuh = Mrh is performed by the function derivative_solve. The derivative F
′
(uh) is
computed separately by the function update_derivative:
a1 = integrate ( dot ( compose ( nu < eta >( eta (p ) , d ) , grad ( uh ))* grad ( u ) , grad ( v )) ,
qopt );
Notice that the a1(u; ., .) bilinear form is a tensorial weighted form, where ν = ν(∇u) is the
weight tensor. The tensorial weight ν is inserted as (ν∇u).∇v in the variationnal expression for
the integrate function. As the tensor ν is symmetric, the bilinear form a1(., .) is also symmetric.
As the weight is non-polynomial for general η function and a quadrature formula is used:
a1(u0; u, v) = X
K∈Th
nXK−1
q=0
(ν (∇u0(xK,q)) ∇u(xK,q).∇v(xK,q)) ωK,q (8.4)
By using exactly the same quadrature for computing both a1(., .) and a(., .) in (8.4), then we have
that F
′
is always the derivative of F at the discrete level: while, in general, the derivation andRheolef version 6.6 update 15 April 2014 135
the discretization of problems does not commute, it is the case when using the same quadrature
formulae on both problems. This is an important aspect of the Newton method at discrete level,
for conservating the optimal convergence rate of the residual terms versus n.
The linear system involving the derivative F
′
(uh) is solved by the p_laplacian member function
derivative_solve. Finally, applying the generic Newton method requires a stopping criteria
on the residual term: this is the aim of the member function dual_space_norm. The three last
member functions are not used by the Newton algorithm, but by its extension, the damped Newton
method, that will be presented later.
Example file 8.7: p_laplacian2.icc
1 field p_laplacian :: derivative_trans_mult ( const field & mrh ) const {
2 field rh ( Xh , 0);
3 rh . set_u () = sm . solve ( mrh . u ());
4 field mgh = a1 * rh ;
5 mgh . set_b () = 0;
6 return mgh ;
7 }
8 Float p_laplacian :: space_norm ( const field & uh ) const {
9 return sqrt ( m ( uh , uh ));
10 }
11 Float p_laplacian :: dual_space_norm ( const field & mrh ) const {
12 field rh ( Xh , 0);
13 rh . set_u () = sm . solve ( mrh . u ());
14 return sqrt ( dual ( mrh , rh ));
15 }
The ν function is implemented for a generic η function, as a class-function that accept as template
agument another class-function.
Example file 8.8: nu.icc
1 template < class Function >
2 struct nu : std :: unary_function {
3 tensor operator () ( const point & grad_u ) const {
4 Float x2 = norm2 ( grad_u );
5 Float a = f ( x2 );
6 Float b = 2* f . derivative ( x2 );
7 tensor value ;
8 for ( size_t i = 0; i < d ; i ++) {
9 value (i , i ) = a + b* grad_u [ i ]* grad_u [ i ];
10 for ( size_t j = 0; j < i ; j ++)
11 value (j , i ) = value (i , j ) = b * grad_u [ i ]* grad_u [j ];
12 }
13 return value ;
14 }
15 nu ( const Function & f1 , Float d1 ) : f ( f1 ) , d ( d1 ) {}
16 Function f ;
17 size_t d ;
18 };
8.3.3 Running the program
Enter:
make p_laplacian_newton
mkgeo_ugrid -t 50 > square.geo
./p_laplacian_newton square.geo P1 3 > square.field
field square.field -elevation -stereo
The program prints at each iteration n, the residual term rn in discrete L
2
(Ω) norm. Convergence
occurs in less than ten iterations: it dramatically improves the previous algorithm (see Fig. 8.5).
Observe that the slope is no more constant in semi-log scale: the convergence rate accelerates and136 Rheolef version 6.6 update 15 April 2014
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3
fixed point ω = 2/3
Newton
Figure 8.5: The Newton algorithm on the p-laplacian for d = 2: comparison with the fixed-point
algorithm.
the slope tends to be vertical, the so-called super-linear convergence. This is the major advantage
of the Newton method. Figs. 8.6.top-left and. 8.6.top-bottom shows that the algorithm converge
when p > 3 and that the convergence properties are independant of the mesh size h and the
polynomial order k. There are still two limitations of the method. From one hand, the Newton
algorithm is no more independant of h and k when p 6 3/2 and to tends to diverges in that
case when h tends to zero (see Fig. 8.6.bottom-left). From other hand, when p becomes large
(see Fig. 8.6.bottom-right), an overshoot in the convergence tends to increases and distroys the
convergence, due to rounding problems. In order to circumvent these limitations, another strategy
is considered in the next section: the damped Newton algorithm.Rheolef version 6.6 update 15 April 2014 137
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3
h = 1/10
h = 1/20
h = 1/30
h = 1/40
h = 1/50
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3
k = 1
k = 2
k = 3
k = 4
k = 5
10−15
10−10
10−5
1
0 50 100
n
r
(n)
h
−1,h
p = 3/2
h = 1/10
h = 1/20
h = 1/30
h = 1/40
h = 1/50
10−15
10−10
10−5
100
0 25
n
r
(n)
h
−1,h
p = 2.5
p = 3.0
p = 3.5
Figure 8.6: The Newton algorithm on the p-laplacian for d = 2: (top-left) comparison with the
fixed-point algorithm; when p = 3, independence of the convergence properties of the residue (topleft)
with mesh refinement; (top-right) with polynomial order Pk; (bottom-left) mesh-dependence
convergence when p < 2; (bottom-right) overshoot when p > 2.138 Rheolef version 6.6 update 15 April 2014
8.4 The damped Newton algorithm
8.4.1 Principe of the algorithm
The Newton algorithm diverges when the initial u
(0) is too far from a solution, e.g. when p is
not at the vicinity of 2. Our aim is to modify the Newton algorithm and to obtain a globally
convergent algorithm, i.e to converge to a solution for any initial u
(0). By this way, the algorithm
should converge for any value of p ∈]1, +∞[. The basic idea is to decrease the step length while
maintaining the direction of the original Newton algorithm:
u
(n+1) := u
(n) + λn δu(n)
where λ
(n) ∈]0, 1] and δu(n)
is the direction from the Newton algorithm, given by:
F
′
u
(n)
δu(n) = −F
u
(n)
Let V a Banach space and let T : V → R defined for any v ∈ V by:
T(v) = 1
2
kC
−1F(v)k
2
V
,
where C is some non-singular operator, easy to invert, used as a non-linear preconditioner. The
simplest case, without preconditioner, is C = I. The T function furnishes a measure of the residual
term in L
2 norm. The convergence is global when for any initial u
(0), we have for any n > 0:
T
u
(n+1)
6 T
u
(n)
+ α
D
T
′
u
(n)
, u(n+1) − u
(n)
E
V ′
,V
(8.5)
where h., .iV ′
,V is the duality product between V and its dual V
′
, and α ∈]0, 1[ is a small parameter.
Notice that
T
′
(u) = {C
−1F
′
(u)}
∗C
−1F(u)
where the superscript ∗ denotes the adjoint operator, i.e. the transpose matrix the in finite
dimensional case. In practice we consider α = 10−4 and we also use a minimal step length
λmin = 1/10 in order to avoid too small steps. Let us consider a fixed step n > 0: for convenience
the n superscript is dropped in u
(n) and δu(n)
. Let g : R → R defined for any λ ∈ R by:
g(λ) = T (u + λδu)
Then :
g
′
(λ) = hT
′
(u + λδu), δuiV ′
,V
= hC
−1F(u + λδu), F′
(u + λδu)C
−1
δuiV,V ′
where the superscript ∗ denotes the adjoint operator, i.e. the transpose matrix the in finite
dimensional case. The practical algorithm for obtaining λ was introduced first in [28] and is also
presented in [43, p. 385]. The step length λ that satisfy (8.5) is computed by using a finite sequence
λk, k = 0, 1 . . . with a second order recurrence:
• k = 0 : initialization λ0 = 1. If (8.5) is satisfied with u + λ0 d then let λ := λ0 and the
sequence stop here.
• k = 1 : first order recursion. The quantities g(0) = f(u) et g
′
(0) = hf
′
(u), di are already
computed at initialization. Also, we already have computed g(1) = f(u + d) when verifying
whether (8.5) was satisfied. Thus, we consider the following approximation of g(λ) by a
second order polynomial:
g˜1(λ) = {g(1) − g(0) − g
′
(0)}λ
2 + g
′
(0)λ + g(0)Rheolef version 6.6 update 15 April 2014 139
After a short computation, we find that the minimum of this polynomial is:
λ˜
1 =
−g
′
(0)
2{g(1) − g(0) − g
′(0)}
Since the initialization at k = 0 does not satisfy (8.5), it is possible to show that, when α is
small enough, we have λ˜
1 6 1/2 and λ˜
1 ≈ 1/2. Let λ1 := max(λmin, λ˜
1). If (8.5) is satisfied
with u + λ1 d then let λ := λ1 and the sequence stop here.
• k > 2 : second order recurrence. The quantities g(0) = f(u) et g
′
(0) =if
′
(u), dh are
available, together with λk−1, g(λk−1), λk−2 and g(λk−2). Then, g(λ) is approximated by
the following third order polynomial:
g˜k(λ) = aλ3 + bλ2 + g
′
(0)λ + g(0)
where a et b are expressed by:
a
b
=
1
λk−1 − λk−2
1
λ
2
k−1
−
1
λ
2
k−2
−
λk−2
λ
2
k−1
λk−1
λ
2
k−2
g(λk−1) − g
′
(0)λk−1 − g(0)
g(λk−2) − g
′
(0)λk−2 − g(0)
The minimum of g˜k(λ) is
λ˜
k =
−b +
p
b
2 − 3ag′(0)
3a
Let λk = min(1/2 λk, max(λ˜
k/10, λ˜
k+1) in order for λk to be at the same order of magnitude
as λk−1. If (8.5) is satisfied with u + λk d then let λ := λk and the sequence stop here.
The sequence (λk)k>0 is strictly decreasing: when the stopping criteria is not satisfied until λk
reaches the machine precision εmach then the algorithm stops with an error.
Example file 8.9: p_laplacian_damped_newton.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " p_laplacian . h "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega_h ( argv [1]);
8 Float eps = numeric_limits :: epsilon ();
9 string approx = ( argc > 2) ? argv [2] : " P1 ";
10 Float p = ( argc > 3) ? atof ( argv [3]) : 1.5;
11 Float tol = ( argc > 4) ? atof ( argv [4]) : eps ;
12 size_t max_iter = ( argc > 5) ? atoi ( argv [5]) : 500;
13 derr << " # P - Laplacian problem by damped Newton :" << endl
14 << " # geo = " << omega_h . name () << endl
15 << " # approx = " << approx << endl
16 << " # p = " << p << endl ;
17 p_laplacian F (p , omega_h , approx );
18 field uh = F . initial ();
19 int status = damped_newton (F , uh , tol , max_iter , & derr );
20 dout << catchmark (" p ") << p << endl
21 << catchmark (" u ") << uh ;
22 return status ;
23 }
8.4.2 Comments
The damped_newton function implements the damped Newton algorithm for a generic T(u) function,
i.e. a generic nonlinear preconditioner. This algorithms use a backtrack strategy implemented140 Rheolef version 6.6 update 15 April 2014
in the file ‘newton-backtrack.h’ of the Rheolef library. The simplest choice of the identity preconditioner
C = I i.e. T(u) = kF(u)k
2
V ′/2 is showed in file damped-newton.h. The gradient at
λ = 0 is
T
′
(u) = F
′
(u)
∗F(u)
and the slope at λ = 0 is:
g
′
(0) = hT
′
(u), δuiV ′
,V
= hF(u), F′
(u)δuiV ′
,V ′
= −kF(u)k
2
V ′
The ‘p_laplacian_damped_newton.cc’ is the application program to the p-Laplacian problem
together with the k.kL2(Ω) discrete norm for the function T.
8.4.3 Running the program
Figure 8.7: The p-Laplacian for d = 2: elevation view for p = 1.15 (left) and p = 7 (right).
As usual, enter:
make p_laplacian_damped_newton
mkgeo_ugrid -t 50 > square.geo
./p_laplacian_damped_newton square.geo P1 1.15 | field -stereo -elevation -
./p_laplacian_damped_newton square.geo P1 7 | field -stereo -elevation -
See Fig. 8.7 for the elevation view of the solution. The algorithm is now quite robust: the
convergence occurs for quite large range of p > 1 values and extends the range previously presented
on Fig. 8.1. The only limitation is now due to machine roundoff on some architectures.
Figs. 8.8.top shows that the convergence properties seems to slightly depend on the mesh re-
finement. Nevertheless, there are quite good and support both mesh refinement and high order
polynomial degree. When p is far from p = 2, i.e. either close to one or large, Figs. 8.8.bottom
shows that the convergence becomes slower and that the first linear regime, corresponding to the
line search, becomes longer. This first regime finishes by a brutal super-linear regime, where the
residual terms fall in few iterations to the machine precision.Rheolef version 6.6 update 15 April 2014 141
8.5 Error analysis
While there is no simple explicit expression for the exact solution in the square Ω =]0, 1[2
, there
is one when considering Ω as the unit circle:
u(x) = (p − 1) 2− 1
p−1
p
1 −
x
2
0 + x
2
1
p
p−1)
Example file 8.10: p_laplacian_circle.icc
1 struct u_exact : field_functor < u_exact ,Float > {
2 Float operator () ( const point & x ) const {
3 return (1 - pow ( norm2 ( x ) , p /(2* p -2)))/(( p /(p -1))* pow (2. ,1/( p -1)));
4 }
5 u_exact ( Float q ) : p ( q ) {}
6 protected : Float p ;
7 };
8 struct grad_u : field_functor < grad_u ,point > {
9 point operator () ( const point & x ) const {
10 return - ( pow ( norm2 ( x ) , p /(2* p -2) - 1)/ pow (2. ,1/( p -1)))* x ;
11 }
12 grad_u ( Float q ) : p ( q ) {}
13 protected : Float p ;
14 };
Example file 8.11: p_laplacian_error.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " p_laplacian_circle . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 Float tol = ( argc > 1) ? atof ( argv [1]) : 1e -15;
8 Float p ;
9 field uh ;
10 din >> catchmark (" p ") >> p
11 >> catchmark (" u ") >> uh ;
12 const geo & omega = uh . get_geo ();
13 const space & Xh = uh . get_space ();
14 field pi_h_u = interpolate ( Xh , u_exact ( p ));
15 field eh = pi_h_u - uh ;
16 quadrature_option_type qopt ;
17 qopt . set_family ( quadrature_option_type :: gauss );
18 qopt . set_order (2* Xh . degree ());
19 Float err_lp = pow ( integrate ( omega ,
20 pow ( fabs ( uh - u_exact (p )) , p ) , qopt ) , 1./ p );
21 Float err_w1p = pow ( integrate ( omega ,
22 pow ( norm ( grad ( uh ) - grad_u ( p )) , p ) , qopt ) , 1./ p );
23 Float err_linf = eh . max_abs ();
24 dout << " err_linf = " << err_linf << endl
25 << " err_lp = " << err_lp << endl
26 << " err_w1p = " << err_w1p << endl ;
27 return ( err_linf < tol ) ? 0 : 1;
28 }
Notice, in the file ‘p_laplacian_error.cc’, the usage of the integrate function, together with
a quadrature formula specificiation, for computing the errors in L
p norm and W1,p semi-norm.
Notice also the flexibility of expressions, mixing together fields as uh and field_functors, as
u_exact. The whole expression is evaluated by the integrate function at quadrature points
inside each element of the mesh.
By this way, the error analysis investigation becomes easy:
make p_laplacian_error
mkgeo_ball -t 10 -order 2 > circle-10-P2.geo
./p_laplacian_damped_newton circle-10-P2.geo P2 1.5 | ./p_laplacian_error142 Rheolef version 6.6 update 15 April 2014
We can vary both the mesh size and the polynomial order and the error plots are showed on
Fig. 8.9 for both the L
2
, L∞ norms and the W1,p semi-norm. Observe the optimal error behavior:
the slopes in the log-log scale are the same as those obtained by a direct Lagrange interpolation
of the exact solution.Rheolef version 6.6 update 15 April 2014 143
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3/2, k = 1
h = 1/10
h = 1/20
h = 1/30
h = 1/40
h = 1/50
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3/2, k = 1
k = 1
k = 2
k = 3
k = 4
k = 5
10−15
10−10
10−5
100
0 25 50
n
r
(n)
h
−1,h
h = 1/50, k = 1
p = 1.5
p = 1.4
p = 1.3
p = 1.2
10−15
10−10
10−5
100
0 5 10 15 20 25
n
r
(n)
h
−1,h
h = 1/50, k = 1
p = 3
p = 4
p = 5
p = 6
p = 7
Figure 8.8: The damped Newton algorithm on the p-Laplacian for d = 2: when p = 1.5 and
h = 1/50, convergence properties of the residue (top-left) with mesh refinement; (top-right) with
polynomial order Pk; (bottom-left) convergence when p < 2; (bottom-right) when p > 2.144 Rheolef version 6.6 update 15 April 2014
10−8
10−6
10−4
10−2
10−2 10−1 1
h
ku − uhk0,p,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−8
10−6
10−4
10−2
10−2 10−1 1
h
ku − uhk0,∞,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−6
10−4
10−2
1
10−2 10−1 1
h
|∇(u − uh)|0,p,Ω
1 = k
2
3
k = 1
k = 2
k = 3
Figure 8.9: The p-Laplacian for d = 2: error analysis.Part IV
Technical appendices
145Appendix A
How to write a variational
formulation ?
The major keypoint for using Rheolef is to put the problem in variational form. Then this
variational form can be efficiently translated into C++ language. This appendix is dedicated to
readers who are not fluent with variational formulations and some related functionnal analysis
tools.
A.1 The Green formula
Let us come back to the model problem presented in section 1.1, page 15, equations (1.1)-(1.2)
and details how this problem is transformed into (1.3).
Let H1
0
(Ω) the space of functions whose gradient square has a finite sum over Ω and that vanishes
on ∂Ω:
H1
0
(Ω) = {v ∈ L
2
(Ω); ∇v ∈ L
2
(Ω)d
and v = 0 on ∂Ω}
We start by multiplying (1.1) by an arbitrarily test-function v ∈ H1
0
(Ω) and then integrate over Ω :
−
Z
Ω
∆u v dx =
Z
Ω
f v dx, ∀v ∈ H1
0
(Ω)
The next step is to invoque an integration by part, the so-called Green formula:
Z
Ω
∆u v dx +
Z
Ω
∇u.∇v dx =
Z
∂Ω
∂u
∂n v ds, ∀u, v ∈ H1
(Ω)
Since our test-function v vanishes on the boundary, the integral over ∂Ω is zero and the problem
becomes:
Z
Ω
∇u.∇v dx =
Z
Ω
f v dx, ∀v ∈ H1
0
(Ω)
This is exactly the variational formulation (1.3), page 15.
A.2 The vectorial Green formula
In this section, we come back to the linear elasticity problem presented in section 4.1, page 51,
equations (4.1)-(4.2) and details how this problem is transformed into (4.3).
Let Γd (resp. Γn) denotes the parts of the boundary ∂Ω related to the homogeneous Dirichlet
boundary condition u = 0 (resp. the homogeneous Neumann boundary condition σ(u) n = 0).
147148 Rheolef version 6.6 update 15 April 2014
We suppose that ∂Ω = Γd ∩ Γn. Let us introduce the following functional space:
V = {v ∈ H1
(Ω)d
; v = 0 on Γd}
Then, multiplying the first equation of (4.2) by an arbitrarily test-function v ∈ V and then
integrate over Ω :
−
Z
Ω
div(σ(u)).v dx =
Z
Ω
f.v dx, ∀v ∈ V
The next step is to invoque an integration by part:
Z
Ω
div τ.v dx +
Z
Ω
τ : D(v) dx =
Z
∂Ω
τ : (v ⊗ n) ds, ∀τ ∈ L
2
(Ω)d×d
, ∀v ∈ V
Recall that div τ denotes Pd−1
j=0 ∂j τi,j
06i square.geo
This command creates a ‘square.geo’ file. Look at the mesh via the command:
geo square
This presents the mesh it in a graphical form, usually with gnuplot. You can switch to the
paraview or mayavi renders:
geo square -paraview
geo square -mayavi
A finer mesh could be generated by:
bamg -coef 0.5 -g square.bamgcad -o square-0.5.bamg
B.2 Unidimensional mesh with gmsh
The simplest unidimensional mesh is a line:
h_local = 0.1;
Point(1) = {0, 0, 0, h_local};
Point(2) = {1, 0, 0, h_local};
Line(3) = {1,2};
Physical Point("left") = {1};
Physical Point("right") = {2};
Physical Point("boundary") = {1,2};
Physical Line("interior") = {3};
The mesh generation command writes:
gmsh -1 line.mshcad -format msh -o line.msh
Then, the conversion to ‘.geo’ format and the visualization:
msh2geo line.msh > line.geo
geo lineRheolef version 6.6 update 15 April 2014 151
B.3 Bidimensional mesh with gmsh
Figure B.1: Visualization of the gmsh meshes ‘square.geo’ and ‘cube.geo’.
We first create a ‘square.mshcad’ file:
n = 10.0;
hloc = 1.0/n;
Point(1) = {0, 0, 0, hloc};
Point(2) = {1, 0, 0, hloc};
Point(3) = {1, 1, 0, hloc};
Point(4) = {0, 1, 0, hloc};
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,1};
Line Loop(5) = {1,2,3,4};
Plane Surface(6) = {5} ;
Physical Point("left_bottom") = {1};
Physical Point("right_bottom") = {2};
Physical Point("right_top") = {3};
Physical Point("left_top") = {4};
Physical Line("boundary") = {1,2,3,4};
Physical Line("bottom") = {1};
Physical Line("right") = {2};
Physical Line("top") = {3};
Physical Line("left") = {4};
Physical Surface("interior") = {6};
This is an uniform mesh with element size h = 0.1. We refer to the gmsh documentation [21] for
the complete file format description. Next, enter the mesh generator commands:152 Rheolef version 6.6 update 15 April 2014
gmsh -2 square.mshcad -format msh -o square.msh
Then, enter the translation command:
msh2geo square.msh > square.geo
This command creates a ‘square.geo’ file. Look at the mesh via the command:
geo square
Remark that the domain names, defined in the .mshcad file, are included in the gmsh .msh input
file and are propagated in the .geo by the format conversion.
B.4 Tridimensional mesh with gmsh
First, create a ‘cube.mshcad’ file:
Mesh.Algorithm = 7; // bamg
Mesh.Algorithm3D = 7; // mmg3d
a = 0; c = 0; f = 0;
b = 1; d = 1; g = 1;
n = 10;
hloc = 1.0/n;
Point(1) = {a, c, f, hloc};
Point(2) = {b, c, f, hloc};
Point(3) = {b, d, f, hloc};
Point(4) = {a, d, f, hloc};
Point(5) = {a, c, g, hloc};
Point(6) = {b, c, g, hloc};
Point(7) = {b, d, g, hloc};
Point(8) = {a, d, g, hloc};
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,1};
Line(5) = {5,6};
Line(6) = {6,7};
Line(7) = {7,8};
Line(8) = {8,5};
Line(9) = {1,5};
Line(10) = {2,6};
Line(11) = {3,7};
Line(12) = {4,8};
Line Loop(21) = {-1,-4,-3,-2};
Plane Surface(31) = {21} ;
Line Loop(22) = {5,6,7,8};
Plane Surface(32) = {22} ;
Line Loop(23) = {1,10,-5,-9};
Plane Surface(33) = {23} ;
Line Loop(24) = {12,-7,-11,3};
Plane Surface(34) = {24} ;
Line Loop(25) = {2,11,-6,-10};
Plane Surface(35) = {25} ;
Line Loop(26) = {9,-8,-12,4};Rheolef version 6.6 update 15 April 2014 153
Plane Surface(36) = {26} ;
Surface Loop(41) = {31,32,33,34,35,36};
Volume(51) = {41};
Physical Surface("bottom") = {31};
Physical Surface("top") = {32};
Physical Surface("left") = {33};
Physical Surface("front") = {35};
Physical Surface("right") = {34};
Physical Surface("back") = {36};
Physical Volume("internal") = {51};
Next, enter the mesh generator commands:
gmsh -3 cube.mshcad -format msh -o cube.msh
Then, enter the translation command:
msh2geo cube.msh > cube.geo
This command creates a ‘cube.geo’ file. Look at the mesh via the command:
geo cube
geo cube.geo -paraview -cut
The second command allows to see inside the mesh.154 Rheolef version 6.6 update 15 April 2014Appendix C
Migrating to Rheolef version 6.0
Due to its new distributed memory and computation support, Rheolef version 6.0 presents some
backward incompatibilities with previous versions: codes using previous versions of the library
should be slightly modified. This appendix presents some indications for migrating existing code.
C.1 What is new in Rheolef 6.0 ?
The major main features are:
• support distributed achitectures: the code looks sequential, is easy to read and write but
can be run massively parallel and distributed, based on the MPI library.
• high order polynomial approximation: Pk basis are introduced in this version, for k > 0.
This feature will be improved in the future developments.
• mesh adaptation and the charateristic method are now available for threedimensional
problems.
In order to evoluate in these directions, internal data structures inside the library are completely
rewritten in a different way, and thus this version is a completely new library.
Conversely, the library and unix command interfaces was as less as possible modified.
Nevertheless, the user will find some few backward incompatibilities: 5.93 based codes will not
directly compile with the 6.0 library version. Let us review how to move a code from 5.93 to 6.0
version.
C.2 What should I have to change in my 5.x code ?
1. Namespace
The namespace rheolef was already introduced in last 5.93 version. Recall that a code usually
starts with:
# include " rheolef . h "
using namespace rheolef ;
2. Environment
The MPI library requires initialisation and the two command line arguments. This initialisation
is performed via the boost::mpi class environment: The code entry point writes:
155156 Rheolef version 6.6 update 15 April 2014
int main (int argc , char ** argv ) {
environment rheolef ( argc , argv );
...
3. Fields and forms data accessors
The accesses to unknown and blocked data was of a field uh was direct, as uh.u and uh.b.
This access is no more possible in a distributed environment, as non-local value requests may be
optimized and thus, read and write access may be controled thought accessors. These accessors
are named uh.u() and uh.b() for read access, and uh.set_u() and uh.set_b() for write access.
Similarly, a form a has accessors as a.uu().
A typical 5.93 code writes:
ssk sa = ldlt ( a . uu );
uh . u = sa . solve ( lh . u - a . ub * uh . b );
and the corresponding 6.0 code is:
solver sa ( a . uu ());
uh . set_u () = sa . solve ( lh . u () - a. ub ()* uh . b ());
This major change in the library interface induces the most important work when porting to the
6.0 version.
Notice also that the old ssk class has been supersetted by the solver class, that manages
both direct and iterative solvers in a more effective way. For three-dimensional problems,
the iterative solver is the default while direct solvers are used otherwise. In the same spirit, a
solver_abtb has been introduced, for Stokes-like mixed problem. These features facilitate the
dimension-independent coding style provided by the Rheolef library.
4. Distributed input and output streams
Input and output sequential standard streams cin, cout and cerr may now replaced by distributed
Rheolef streams din, dout and derr as:
din >> omega ;
dout << uh ;
These new streams are available togeher with the idiststream and odiststream classes of the
Rheolef library.
5. File formats ‘.geo’ and ‘.field’ have changed
The ‘.geo’ and ‘.field’ file formats have changed. The ‘.mfield’ is now obsolete: it has been
merged into the ‘.field’ format that supports now multi-component fields. Also, the corresponding
mfield unix command is obsolete, as these features are integrated in the field unix
command.
At this early stage of the 6.0 version, it is not yet possible to read the old ‘.geo’ format, but this
backward compatibility will be assured soon.
6. Space on a domain
A space defined on a domain "boundary" of a mesh omega was defined in the 5.93 version as:
space Wh ( omega [" boundary "] , omega , " P1 ");
It writes now:
space Wh ( omega [" boundary "] , " P1 ");
as the repetition of omega is no more required.Rheolef version 6.6 update 15 April 2014 157
7. Nonlinear expressions involving fields
Non-linear operations, such as sqrt(uh) or 1/uh was directly supported in Rheolef-5.x.
space Xh ( omega , " P1 ");
field uh ( Xh , 2.);
field vh = 1/ uh ;
Notice that non-linear operations as 1/uh do not returns in general picewise polynomials while
uh*uh is piecewise quadratic. In Rheolef-5.x, the returned value was implicitly the Lagrange
interpolant of the nonlinear expression in space Xh. For more clarity, Rheolef-6.x requires an
explicit call to the interpolate function and the code should write:
field vh = interpolate (Xh , 1/ uh );
Notice that when the expression is linear, there is no need to call interpolate.
C.3 New features in Rheolef 6.4
The Rheolef-6.x code is in active developments. While backward compatibility s maintained since
6.0, some styles and idioms evoluates in order to increase the expressivity and the flexibility of the
interface library. Here is the summary of these evolutions.
1. Nonlinear expressions
Nonlinear expressions has been extended since Rheolef-6.4 to expression mixing field and functions
or field_functor. For instance, when u_exact is a field_functor, an L
2
error could be
computed using a nonlinear expression submitted to the integrate function:
Float err_l2 = sqrt ( integrate ( omega , sqr ( uh - u_exact ()) , qopt ));
2. Right-hand-side specification
For specifiying a right-hand-side involving f, previous code style, from Rheolef-6.0 to 6.3 was
using:
field lh = riesz ( Xh , f ());
Rheolef-6.4 introduces:
test v ( Xh );
field lh = integrate ( f ()* v );
This feature opens new possibilities of right-hand-side specifications, e.g. expressions involving
some derivatives of the test-function v. The riesz function is no more needed: it is maintained
for backward compatibility purpose.
3. Form specification
For specifiying a bilinear form, previous code style, from Rheolef-6.0 to 6.3 was using a specifi-
cation based on a name:
form a ( Xh , Xh , " grad_grad ");
Rheolef-6.4 introduces:
trial u ( Xh ); test v ( Xh );
form a = integrate ( dot ( grad ( u ) , grad ( v )));
This feature opens new possibilities for form specifications and more flexibility. The form specifi-
cation based on a name is no more needed: it is maintained for backward compatibility purpose.158 Rheolef version 6.6 update 15 April 2014Appendix D
GNU Free Documentation License
Version 1.1, March 2000
Copyright c 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing
it is not allowed.
*
Preamble
The purpose of this License is to make a manual, textbook, or other written document “free”
in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially. Secondarily, this License
preserves for the author and publisher a way to get credit for their work, while not being considered
responsible for modifications made by others.
This License is a kind of “copyleft”, which means that derivative works of the document must
themselves be free in the same sense. It complements the GNU General Public License, which is
a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software
needs free documentation: a free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to software manuals; it can be used for
any textual work, regardless of subject matter or whether it is published as a printed book. We
recommend this License principally for works whose purpose is instruction or reference.
Applicability and Definitions
This License applies to any manual or other work that contains a notice placed by the copyright
holder saying it can be distributed under the terms of this License. The “Document”, below, refers
to any such manual or work. Any member of the public is a licensee, and is addressed as “you”.
A “Modified Version” of the Document means any work containing the Document or a portion of
it, either copied verbatim, or with modifications and/or translated into another language.
A “Secondary Section” is a named appendix or a front-matter section of the Document that deals
exclusively with the relationship of the publishers or authors of the Document to the Document’s
overall subject (or to related matters) and contains nothing that could fall directly within that
overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary
159160 Rheolef version 6.6 update 15 April 2014
Section may not explain any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal, commercial, philosophical, ethical
or political position regarding them.
The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those
of Invariant Sections, in the notice that says that the Document is released under this License.
The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or
Back-Cover Texts, in the notice that says that the Document is released under this License.
A “Transparent” copy of the Document means a machine-readable copy, represented in a format
whose specification is available to the general public, whose contents can be viewed and edited
directly and straightforwardly with generic text editors or (for images composed of pixels) generic
paint programs or (for drawings) some widely available drawing editor, and that is suitable for
input to text formatters or for automatic translation to a variety of formats suitable for input to
text formatters. A copy made in an otherwise Transparent file format whose markup has been
designed to thwart or discourage subsequent modification by readers is not Transparent. A copy
that is not “Transparent” is called “Opaque”.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo
input format, LATEX input format, SGML or XML using a publicly available DTD, and standardconforming
simple HTML designed for human modification. Opaque formats include PostScript,
PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML
or XML for which the DTD and/or processing tools are not generally available, and the machinegenerated
HTML produced by some word processors for output purposes only.
The “Title Page” means, for a printed book, the title page itself, plus such following pages as are
needed to hold, legibly, the material this License requires to appear in the title page. For works
in formats which do not have any title page as such, “Title Page” means the text near the most
prominent appearance of the work’s title, preceding the beginning of the body of the text.
Verbatim Copying
You may copy and distribute the Document in any medium, either commercially or noncommercially,
provided that this License, the copyright notices, and the license notice saying this License
applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever
to those of this License. You may not use technical measures to obstruct or control the
reading or further copying of the copies you make or distribute. However, you may accept compensation
in exchange for copies. If you distribute a large enough number of copies you must also
follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display
copies.
Copying in Quantity
If you publish printed copies of the Document numbering more than 100, and the Document’s
license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and
legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify you as the publisher of these
copies. The front cover must present the full title with all words of the title equally prominent
and visible. You may add other material on the covers in addition. Copying with changes limited
to the covers, as long as they preserve the title of the Document and satisfy these conditions, can
be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones
listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.Rheolef version 6.6 update 15 April 2014 161
If you publish or distribute Opaque copies of the Document numbering more than 100, you must
either include a machine-readable Transparent copy along with each Opaque copy, or state in
or with each Opaque copy a publicly-accessible computer-network location containing a complete
Transparent copy of the Document, free of added material, which the general network-using public
has access to download anonymously at no charge using public-standard network protocols. If you
use the latter option, you must take reasonably prudent steps, when you begin distribution of
Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the
stated location until at least one year after the last time you distribute an Opaque copy (directly
or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before
redistributing any large number of copies, to give them a chance to provide you with an updated
version of the Document.
Modifications
You may copy and distribute a Modified Version of the Document under the conditions of sections
2 and 3 above, provided that you release the Modified Version under precisely this License, with
the Modified Version filling the role of the Document, thus licensing distribution and modification
of the Modified Version to whoever possesses a copy of it. In addition, you must do these things
in the Modified Version:
• Use in the Title Page (and on the covers, if any) a title distinct from that of the Document,
and from those of previous versions (which should, if there were any, be listed in the History
section of the Document). You may use the same title as a previous version if the original
publisher of that version gives permission.
• List on the Title Page, as authors, one or more persons or entities responsible for authorship
of the modifications in the Modified Version, together with at least five of the principal
authors of the Document (all of its principal authors, if it has less than five).
• State on the Title page the name of the publisher of the Modified Version, as the publisher.
• Preserve all the copyright notices of the Document.
• Add an appropriate copyright notice for your modifications adjacent to the other copyright
notices.
• Include, immediately after the copyright notices, a license notice giving the public permission
to use the Modified Version under the terms of this License, in the form shown in the
Addendum below.
• Preserve in that license notice the full lists of Invariant Sections and required Cover Texts
given in the Document’s license notice.
• Include an unaltered copy of this License.
• Preserve the section entitled “History”, and its title, and add to it an item stating at least
the title, year, new authors, and publisher of the Modified Version as given on the Title
Page. If there is no section entitled “History” in the Document, create one stating the title,
year, authors, and publisher of the Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous sentence.
• Preserve the network location, if any, given in the Document for public access to a Transparent
copy of the Document, and likewise the network locations given in the Document
for previous versions it was based on. These may be placed in the “History” section. You
may omit a network location for a work that was published at least four years before the
Document itself, or if the original publisher of the version it refers to gives permission.162 Rheolef version 6.6 update 15 April 2014
• In any section entitled “Acknowledgements” or “Dedications”, preserve the section’s title, and
preserve in the section all the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
• Preserve all the Invariant Sections of the Document, unaltered in their text and in their
titles. Section numbers or the equivalent are not considered part of the section titles.
• Delete any section entitled “Endorsements”. Such a section may not be included in the
Modified Version.
• Do not retitle any existing section as “Endorsements” or to conflict in title with any Invariant
Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary
Sections and contain no material copied from the Document, you may at your option designate
some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections
in the Modified Version’s license notice. These titles must be distinct from any other section titles.
You may add a section entitled “Endorsements”, provided it contains nothing but endorsements
of your Modified Version by various parties – for example, statements of peer review or that the
text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as
a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage
of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made
by) any one entity. If the Document already includes a cover text for the same cover, previously
added by you or by arrangement made by the same entity you are acting on behalf of, you may not
add another; but you may replace the old one, on explicit permission from the previous publisher
that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use
their names for publicity for or to assert or imply endorsement of any Modified Version.
Combining Documents
You may combine the Document with other documents released under this License, under the terms
defined in section 4 above for modified versions, provided that you include in the combination all
of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant
Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant
Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same
name but different contents, make the title of each such section unique by adding at the end of
it, in parentheses, the name of the original author or publisher of that section if known, or else a
unique number. Make the same adjustment to the section titles in the list of Invariant Sections in
the license notice of the combined work.
In the combination, you must combine any sections entitled “History” in the various original
documents, forming one section entitled “History”; likewise combine any sections entitled “Acknowledgements”,
and any sections entitled “Dedications”. You must delete all sections entitled
“Endorsements.”
Collections of Documents
You may make a collection consisting of the Document and other documents released under this
License, and replace the individual copies of this License in the various documents with a singleRheolef version 6.6 update 15 April 2014 163
copy that is included in the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under
this License, provided you insert a copy of this License into the extracted document, and follow
this License in all other respects regarding verbatim copying of that document.
Aggregation With Independent Works
A compilation of the Document or its derivatives with other separate and independent documents
or works, in or on a volume of a storage or distribution medium, does not as a whole count
as a Modified Version of the Document, provided no compilation copyright is claimed for the
compilation. Such a compilation is called an “aggregate”, and this License does not apply to
the other self-contained works thus compiled with the Document, on account of their being thus
compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if
the Document is less than one quarter of the entire aggregate, the Document’s Cover Texts may
be placed on covers that surround only the Document within the aggregate. Otherwise they must
appear on covers around the whole aggregate.
Translation
Translation is considered a kind of modification, so you may distribute translations of the Document
under the terms of section 4. Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include translations of some or all Invariant
Sections in addition to the original versions of these Invariant Sections. You may include a translation
of this License provided that you also include the original English version of this License.
In case of a disagreement between the translation and the original English version of this License,
the original English version will prevail.
Termination
You may not copy, modify, sublicense, or distribute the Document except as expressly provided
for under this License. Any other attempt to copy, modify, sublicense or distribute the Document
is void, and will automatically terminate your rights under this License. However, parties who
have received copies, or rights, from you under this License will not have their licenses terminated
so long as such parties remain in full compliance.
Future Revisions of This License
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation
License from time to time. Such new versions will be similar in spirit to the present version, but
may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft.
Each version of the License is given a distinguishing version number. If the Document specifies
that a particular numbered version of this License "or any later version" applies to it, you have the
option of following the terms and conditions either of that specified version or of any later version
that has been published (not as a draft) by the Free Software Foundation. If the Document does
not specify a version number of this License, you may choose any version ever published (not as
a draft) by the Free Software Foundation.164 Rheolef version 6.6 update 15 April 2014
*
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document
and put the following copyright and license notices just after the title page:
Copyright c YEAR YOUR NAME. Permission is granted to copy, distribute and/or
modify this document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation; with the
Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being
LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in
the section entitled “GNU Free Documentation License”.
If you have no Invariant Sections, write “with no Invariant Sections” instead of saying which
ones are invariant. If you have no Front-Cover Texts, write “no Front-Cover Texts” instead of
“Front-Cover Texts being LIST”; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these
examples in parallel under your choice of free software license, such as the GNU General Public
License, to permit their use in free software.Bibliography
[1] E. M. Abdalass. Résolution performante du problème de Stokes par mini-éléments, maillages
auto-adaptatifs et méthodes multigrilles – applications. PhD thesis, Thèse de l’école centrale
de Lyon, 1987. 74
[2] L. Abouorm. Méthodes mathématiques pour les écoulements sur des surfaces. PhD thesis,
M2R Université J. Fourier, Grenoble, 2010. 115, 116
[3] P. R. Amestoy, I. S. Duff, J.-Y. L’Excellent, and J. Koster. A fully asynchronous multifrontal
solver using distributed dynamic scheduling. SIAM J. Matrix Anal. Appl., 23(1):15–41, 2001.
24
[4] P. R Amestoy, A. Guermouche, J.-Y. L’Excellent, and S. Pralet. Hybrid scheduling for the
parallel solution of linear systems. Parallel Comput., 32(2):136–156, 2006. 24
[5] D. N. Arnold, F. Brezzi, and M. Fortin. A stable finite element for the Stokes equations.
Calcolo, 21:337–344, 1984. 73
[6] C. Ashcraft and J. W. H. Liu. Robust ordering of sparse matrices using multisection. SIAM
Journal on Matrix Analysis and Applications, 19(3):816–832, 1998. 24
[7] F. Auteri, N. Parolini, and L. Quartapelle. Numerical investigation on the stability of singular
driven cavity flow. J. Comput. Phys., 183(1):1–25, 2002. 99
[8] G. K. Batchelor. An introduction to fluid dynamics. Cambridge university press, UK, sixth
edition, 1967. 79
[9] H. Borouchaki, P. L. George, F. Hecht, P. Laug, B. Mohammadi, and E. Saltel. Mailleur
bidimensionnel de Delaunay gouverné par une carte de métriques. Partie II: applications.
Technical Report RR-2760, INRIA, 1995. 59
[10] K. Boukir, Y. Maday, B. Metivet, and E. Razafindrakoto. A high-order characteristic/finite
element method for the incompressible Navier-Stokes equations. Int. J. Numer. Meth. Fluids,
25:1421–1454, 1997. 92
[11] H. Brezis. Analyse fonctionnelle. Théorie et application. Masson, Paris, 1983. 123
[12] F. Brezzi and J. Pitkäranta. On the stabilization of finite element approximation of the Stokes
equations. In Efficient solutions of elliptic systems, Kiel, Notes on numerical fluid mechanics,
volume 10, pages 11–19, 1984. 75
[13] M. J. Castro-Diaz, F. Hecht, B. Mohammadi, and O. Pironneau. Anisotropic unstructured
mesh adaption for flow simulations. Int. J. Numer. Meth. Fluids, 25(4):475–491, 1997. 59
[14] K. Deckelnick, G. Dziuk, C.M. Elliott, and C.-J. Heine. An h-narrow band finite element
method for elliptic equations on implicit surfaces. IMA Journal of Numerical Analysis, to
appear:0, 2009. 104
165166 Rheolef version 6.6 update 15 April 2014
[15] M. Dicko. Méthodes mathématiques pour les écoulements sur des surfaces. PhD thesis, M2P
Université J. Fourier, Grenoble, 2011. 115
[16] J. Donea and A. Huerta. Finite element methods for flow problems. Wiley, New-York, 2003.
98
[17] E. Erturk, T. C. Corke, and C. Gökçol. Numerical solutions of 2-D steady incompressible
driven cavity flow at high Reynolds numbers. Int. J. Numer. Meth. Fluids, 48:747–774, 2005.
99
[18] G. Fourestey and S. Piperno. A second-order time-accurate ALE Lagrange-Galerkin method
applied to wind engineering and control of bridge profiles. Comput. Methods Appl. Mech.
Engrg., 193:4117–4137, 2004. 92
[19] T. Gelhard, G. Lube, M. A. Olshanskii, and J. H. Starcke. Stabilized finite element schemes
with LBB-stable elements for incompressible flows. J. Comput. Appl. Math., 177:243–267,
2005. 99
[20] A. George. Nested dissection of a regular finite element mesh. SIAM J. Numer. Anal.,
10:345–363, 1973. 24
[21] C. Geuzaine and J.-F. Remacle. Gmsh: a three-dimensional finite element mesh generator
with built-in pre- and post-processing facilities. Int. J. Numer. Meths Engrg., 79(11):1309–
1331, 2009. 149, 151
[22] U. Ghia, K. N. Ghia, and C. T. Shin. High Re solutions for incompressible flow using the
Navier-Stokes equations and a multigrid method. J. Comput. Phys., 48:387–411, 1982. 98
[23] V. Girault and P. A. Raviart. Finite element methods for the Navier-Stokes equations. Theory
and algorithms. Springer, 1986. 39, 65, 67
[24] M. M. Gupta and J. C. Kalita. A new paradigm for solving Navier-Stokes equations:
streamfunction-velocity formulation. J. Comput. Phys., 207:52–68, 2005. 98
[25] F. Hecht. BAMG: bidimensional anisotropic mesh generator, 2006. http://www.ann.
jussieu.fr/~hecht/ftp/bamg. 59, 149
[26] A. J. Hoffman, M. S. Martin, and D. J. Rose. Complexity bounds for regular finite difference
and finite element grids. SIAM J. Numer. Anal., 10(2):364–369, 1973. 24
[27] P. Hood and C. Taylor. A numerical solution of the Navier-Stokes equations using the finite
element technique. Comp. and Fluids, 1:73–100, 1973. 63, 72, 93
[28] Jr. J. E. Dennis and R. B. Schnablel. Numerical methods for unconstraint optimization and
nonlinear equations. Prentice Hall, Englewood Cliff, N. J., 1983. 138
[29] A. Klawonn. An optimal preconditioner for a class of saddle point problems with a penalty
term. SIAM J. Sci. Comput, 19(2):540–552, 1998. 64, 72
[30] A. Laadhari, C. Misbah, and P. Saramito. On the equilibrium equation for a generalized
biological membrane energy by using a shape optimization approach. Phys. D, 239:1568–
1572, 2010. 148
[31] R. J. Labeur and G. N. Wells. A Galerkin interface stabilisation method for the advectiondiffusion
and incompressible Navier-Stokes equations. Comput. Meth. Appl. Mech. Engrg.,
196(49–52):4985–5000, 2007. 98
[32] S. Melchior, V. Legat, P. Van Dooren, and A. J. Wathen. Analysis of preconditioned iterative
solvers for incompressible flow problems. Int. J. Numer. Meth. Fluids, 2011. 99Rheolef version 6.6 update 15 April 2014 167
[33] P. D. Minev and C. R. Ethier. A characteristic/finite element algorithm for the 3-D NavierStokes
equations using unstructured grids. Comput. Meth. in Appl. Mech. and Engrg., 178(1-
2):39–50, 1998. 99
[34] D. R. Musser and A. Saini. C++ STL tutorial and reference guide. Addison Wesley, Reading,
1996. 28
[35] D. R. Musser and A. Saini. STL tutorial and reference guide. Addison-Wesley, 1996. 88
[36] M. A. Olshanskii and A. Reusken. A finite element method for surface PDEs: matrix properties.
Numer. Math., 114:491–520, 2010. 116
[37] M. A. Olshanskii, A. Reusken, and J. Grande. A finite element method for elliptic equations
on surfaces. SIAM J. Num. Anal., 47(5):3339–3358, 2009. 110, 115, 116
[38] M. L. Ould Salihi. Couplage de méthodes numériques en simulation directe d’écoulements
incompressibles. PhD thesis, Université J. Fourier, Grenoble, 1998. 99
[39] C. C. Paige and M. A. Saunders. Solution of sparse indefinite systems of linear equations.
SIAM J. Numer. Anal., 12(4):617–629, 1975. 39
[40] F. Pellegrini. PT-Scotch and libscotch 5.1 user’s guide. Université de Bordeaux and INRIA,
France, 2010. 24
[41] O. Pironneau. Méthode des éléments finis pour les fluides. Masson, Paris, 1988. 87
[42] O. Pironneau and M. Tabata. Stability and convergence of a galerkin-characteristics finite
element scheme of lumped mass type. Int. J. Numer. Meth. Fluids, 64:1240–1253, 2010. 88
[43] W. H. Press, S. A. Teulkolsky, W. T. Vetterling, and B. P. Flannery. Numerical recepies in
C. The art of scientific computing. Cambridge University Press, UK, second edition, 1997.
Version 2.08. 138
[44] P. A. Raviart and J. M. Thomas. Introduction à l’analyse numerique des équations aux
dérivées partielles. Masson, Paris, 1983. 126
[45] N. Roquet, R. Michel, and P. Saramito. Errors estimate for a viscoplastic fluid by using Pk
finite elements and adaptive meshes. C. R. Acad. Sci. Paris, ser. I, 331(7):563–568, 2000. 59
[46] H. Rui and M. Tabata. A second order characteristic finite element scheme for convection
diffusion problems. Numer. Math. (to appear), 2001. 87
[47] P. Saramito. Simulation numérique d’écoulements de fluides viscoélastiques par éléments finis
incompressibles et une méthode de directions alternées; applications. PhD thesis, Institut
National Polytechnique de Grenoble, 1990. 79
[48] P. Saramito. Rheolef home page. http://www-lmc.imag.fr/lmc-edp/Pierre.Saramito/
rheolef, 2012. 29
[49] P. Saramito. Méthodes numériques en fluides complexes : théorie et algorithmes. CNRSCCSD,
2012. http://cel.archives-ouvertes.fr/cel-00673816. 123
[50] P. Saramito. Language C++ et calcul scientifique. College Publications, London, 2013. 3, 24
[51] P. Saramito and N. Roquet. An adaptive finite element method for viscoplastic fluid flows in
pipes. Comput. Meth. Applied Mech. Engng, 190(40-41):5391–5412, 2001. 23
[52] Pierre Saramito. Are curved and high order gmsh meshes really high order ?, 2012. http:
//www.geuz.org/pipermail/gmsh/2012/006967.html. 111168 Rheolef version 6.6 update 15 April 2014
[53] J. Shen. Hopf bifurcation of the unsteady regularized driven cavity flow. J. Comp. Phys.,
95:228–245, 1991. http://www.math.purdue.edu/~shen/pub/Cavity.pdf. 99
[54] B. Stroustrup. The C++ programming language. Addison Wesley, Reading, special edition,
1997. 3
[55] B. Stroustrup. C++ programming styles and libraries. InformIt.com, 0:0, 2002. 2
[56] M.-G. Vallet. Génération de maillages anisotropes adaptés, application à la capture de couches
limites. Technical Report RR-1360, INRIA, 1990. 59
[57] Wikipedia. The Stokes stream function. Wikipedia, 2012. http://en.wikipedia.org/wiki/
Stokes_stream_function. 79
[58] N. Wirth. Algorithm + data structure = programs. Prentice Hall, NJ, USA, 1985. 2List of example files
Makefile, 16
cavity.icc, 61
convect.cc, 85
convect_error.cc, 87
cosinusprod.icc, 28
cosinusprod_error.cc, 28
cosinusprod_laplace.icc, 26
cosinusrad.icc, 30
cosinusrad_laplace.icc, 30
dirichlet-nh.cc, 26
dirichlet.cc, 14
dirichlet.icc, 125
elasticity_criterion.icc, 58
elasticity_solve.icc, 58
embankment.cc, 51
embankment.icc, 51
embankment_adapt.cc, 57
eta.icc, 124
heat.cc, 81
helmholtz_band.cc, 115
helmholtz_band_iterative.cc, 113
helmholtz_s.cc, 102
incompressible-elasticity.cc, 70
laplace_band.cc, 116
laplace_s.cc, 107
level_set_sphere.cc, 110
navier_stokes_cavity.cc, 92
navier_stokes_criterion.icc, 93
navier_stokes_solve.icc, 91
neumann-laplace.cc, 38
neumann-nh.cc, 34
nu.icc, 133
p_laplacian.h, 131
p_laplacian1.icc, 132
p_laplacian2.icc, 133
p_laplacian_circle.icc, 139
p_laplacian_damped_newton.cc, 137
p_laplacian_error.cc, 139
p_laplacian_fixed_point.cc, 122
p_laplacian_newton.cc, 131
poiseuille.h, 74
proj_band.cc, 114
robin.cc, 36
rotating-hill.h, 86
sinusprod_helmholtz.icc, 35
sphere.icc, 103
stokes_cavity.cc, 61
stokes_contraction_bubble.cc, 73
streamf_cavity.cc, 66
streamf_contraction.cc, 76
stress.cc, 53
torus.icc, 107
transmission.cc, 42
vortex_position.cc, 97
vorticity.cc, 64
cavity.icc, 93
contraction.mshcad, 74, 78
convect.cc, 92
cosinusrad_error.cc, 30
cube.mshcad, 150
dirichlet_nh_ball.cc, 30
helmholtz_s_error.cc, 105
line.mshcad, 60, 148
neumann-nh.cc, 102
square.bamgcad, 59, 95, 147
square.dmn, 59, 95, 147
square.mshcad, 149
stokes_contraction.cc, 76
streamf_cavity.cc, 95
streamf_contraction.cc, 78
stress.cc, 80
torus.mshcad, 109
169List of commands
bamg2geo, 147
bamg, 59, 95, 147
-splitpbedge, 126
branch, 86
-gnuplot, 84
-paraview, 84, 89
-umax, 84
convect, 86
ffmpeg, 84
field, 17, 154
-, 19
-bw, 18, 76, 79, 95, 114
-catchmark, 63
-comp, 53, 56, 79, 96
-cut, 79, 96, 125
-elevation, 18, 56, 114, 125
-fill, 53
-gray, 18
-max, 77, 96
-min, 96
-n-iso, 76
-n-iso-negative, 76, 79, 95
-noclean, 67
-noexecute, 67
-nofill, 18, 53, 59
-normal, 79, 96, 125
-origin, 79, 96, 125
-paraview, 18, 53, 59, 114
-proj, 55
-scale, 71, 95
-stereo, 18, 20, 53, 55, 56, 103,
114
-velocity, 63, 95
-volume, 20, 27
geo, 17
-cut, 19
-fill, 19
-full, 19
-paraview, 19
-shrink, 19
-stereo, 19, 103
-subdivide, 104
gmsh, 60, 74, 78, 103, 109, 126, 148
gnuplot, 17, 19, 44, 53, 84, 87, 148
gzip, 59
library
boost, 15, 39, 153
CGAL, computational geometry, 85
MPI, message passing interface,
153
MPI, message passing interface, 15
mumps, linear system direct solver, 22
scotch, mesh partition library, 22
STL, standard template library, 86
make, 16
man, 19
mayavi, 55, 56, 148
mkgeo_ball, 103
-e, 103
-q, 30
-s, 103
-t, 30, 103
mkgeo_grid, 17, 86, 126
-H, 20
-T, 19, 89
-a, 87
-b, 87
-c, 89
-d, 89
-e, 19
-f, 89
-g, 89
-q, 20
-region, 44
-t, 17
-zr, 77
mkgeo_ugrid, 30, 126
mpirun, 22, 39, 45
msh2geo, 74, 148, 150
-zr, 78
paraview, 18, 20, 55, 56, 67, 84, 89,
148
rheolef-config, 13
–check, 13
–docdir, 13
–exampledir, 13
sed, 30
visualization
170Rheolef version 6.6 update 15 April 2014 171
mesh, 17
deformed, 53
vlc, 84
zcat, 95Index
approximation, 14
P0, 55
P1b-P1, 71
P1d, 55
P1, 15, 51, 55, 70, 71, 90
P2-P1, Taylor-Hood, 61, 71, 72, 76
P2, 15, 19, 51, 55, 70, 90
Pk, 15, 19, 153
bubble, 71
discontinuous, 43, 54–56, 64
high-order, 15, 19, 45, 153
isoparametric, 104
mixed, 61
argc, argv, command line arguments, 15, 153
BDF2 scheme, 90
benchmark
driven cavity flow, 60, 90
Dziuk-Elliott-Heine on a sphere, 102
embankment, 49
flow in an abrupt contraction, 72, 78
Olshanskii-Reusken-Grande on a torus,
108
rotating hill, 85
boundary condition
Dirichlet, 13, 25, 43, 49, 60, 69, 90, 121,
130
mixed, 69, 72, 78
Neumann, 33, 37, 43, 49, 69
Poiseuille flow, 74
Robin, 35
class
Float, 27
adapt_option_type, 59
band, 113
branch, 82, 88
characteristic, 85
communicator, 39
csr, 39
doubledouble, 27
environment, 153
eye, 114
field_functor, 27, 155
field, 14, 154
form_option_type, 73, 78
form, 14
geo, 14
idiststream, 154
level_set_option_type, 110
odiststream, 58, 154
point, 27
quadrature_option_type, 85, 124, 139
solver_abtb, 92, 154
solver_option_type, 21
solver, 16, 21, 62, 154
space, 14, 154
vec, 39
compilation, 16
convergence
error
versus mesh, 28, 105, 139
versus polynomial degree, 28, 105, 139
residue
rate, 126, 127
super-linear, 133
coordinate system
axisymmetric, 74, 76, 77
Cartesian, 26, 44
spherical, 102
torus, 108
directory of example files, 13, 74, 76
distributed computation, 15, 22, 39, 153
element shape, 45
error analysis, 28, 88, 105, 139
file format
‘.bamgcad’ bamg geometry, 59, 147
‘.bamg’ bamg mesh, 59, 147
‘.branch’ family of fields, 83
‘.dmn’ domain names, 147
‘.field’ field, 17, 154
‘.field’ multi-component field, 53, 154
‘.geo’ mesh, 17, 74, 77, 147, 148, 150,
154
‘.gz’ gzip compressed file, 59
172Rheolef version 6.6 update 15 April 2014 173
‘.jpg’ joint photographic experts group,
84
‘.mov’ quicktime video file, 84
‘.mshcad’ gmsh geometry, 60, 74, 78,
109, 148
‘.msh’ gmsh mesh, 60, 74, 78, 148
‘.vtk’ vtk file, 67, 84
form
(η∇u).∇v, 132
2D(u) : D(v), 61, 69
2D(u) : D(v) + λdiv u div v, 51
2D(u) : D(v) + u.v, 91
η∇u.∇v, 43, 123
∇su.∇sv + uv, 102
∇u.∇v, 14
∇u.∇v + uv, 35
uv, 28
bcurl(u).ξ, 76
curl(u).ξ, 63
div(u) q, 61, 69
energy, 14, 42, 121
product, 73
weighted, 43, 123
quadrature formula, 124, 132
tensorial weight, 132
Fréchet derivative, 130
function
adapt, 57, 59
catchmark, 39, 51, 63, 82
compose, 85, 93, 123, 132
damped_newton, 137
diag, 114
dis_time, 21
field_functor, 139
grad, 123, 132
integrate, 15, 35, 73, 76, 85, 102, 123,
132, 139, 155
on a band, 114
interpolate, 27, 58, 74, 88, 155
ldlt, 39
level_set, 110
newton, 131
norm2, 58, 93, 123
riesz, 155
sqr, 58
class-function object, 26, 86, 133
geometry
axisymmetric, 74, 76
circle, 30, 103
contraction, 72, 78
cube, 19, 150
curved, 104
line, 19, 148
sphere, 102
square, 17, 149
surface, 101
curvature, 146
torus, 109
Green formula, 101, 145
Lagrange
interpolation, 26, 27, 34, 38
multiplier, 37, 62
node, 15
Lamé coefficients, 49
Makefile, 16
matrix
bloc-diagonal
inverse, 73
block structure, 16
concatenation, 39
diagonal, 114
factorization
Choleski, 16
identity, 114
indefinite, 39
singular, 39, 114
sparse, 39
mesh, 14, 147
adaptation, 153
anisotropic, 57, 93
connected components, 115
generation, 74, 78, 147
method
characteristic, 84, 90, 153
conjugate gradient algorithm, 16, 37, 61,
70
Euler implicit scheme, 81, 84
fixed-point, 122, 134
relaxation, 122, 128
level set, 101, 110
banded, 113
minres algorithm, 37, 114
Newton, 130
damped, 136
namespace
rheolef, 14, 153
std, 14
norm
in W−1,p, 126
discrete version, 126
in W1,p, 121
in W
1,p
0
, 121
operator174 Rheolef version 6.6 update 15 April 2014
adjoint, 136
curl, 63
divergence, 49
gradient, 49
symmetric part, 49
Helmholtz, 33
Helmholtz-Beltrami, 101
Laplace, 13
Laplace-Beltrami, 101
parallel computation, 15, 22, 39
polar coordinate system, 77
preconditioner, 61
Choleski incomplete factorization, 16
for nearly incompressible elasticity, 70
for Stokes problem, 61
problem
Helmholtz, 33
Navier-Stokes, 90
Poisson, 13, 25, 35, 37, 81, 121, 123
Stokes, 60, 71, 90
convection-diffusion, 84
elasticity, 49
heat, 81
linear tangent, 130
nonlinear, 90
p-Laplacian, 121
stabilized Stokes, 73
transmission, 42
projection, 55, 65
quadrature formula, 124
quadrature formulae
Gauss, 86
Gauss-Lobatto, 86
region, 42, 44
residual term, 126, 130
singular solution, 65
space
W−1,p, 121
W−1,p, dual of W
1,p
0
, 126
W1,p, 121
W
1,p
0
, 121
dual, 126
duality bracket h., .i, 126
weighted (axisymmetric), 77
speedup, 22
stabilization, 69
stream function, 65, 76, 95
axisymmetric, 77
tensor
Cauchy stress, 49, 80
field, 55
rate of deformation, 80
visualization as ellipsoid, 54
unknow and blocked components, 15
variable
derr, 154
din, 154
dout, 154
visualization
animation, 84
elevation view, 18, 125
stereoscopic anaglyph, 18, 53
vortex, 76, 79
vorticity, 63
NooJ pour l’Intelligence ´economique
Philippe Lambert
To cite this version:
Philippe Lambert. NooJ pour l’Intelligence ´economique. Ecole th´ematique. Semaine de for- ´
mation NooJ `a l’INALCO, INALCO, 2012, pp.14.
HAL Id: cel-00677782
https://cel.archives-ouvertes.fr/cel-00677782
Submitted on 9 Mar 2012
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Free Powerpoint Templates Page 1
NooJ pour l’intelligence
économique
Philippe Lambert
Institut Jean Lamour
Philippe.lambert@ijl.nancy-universite.fr
Semaine NooJ 2012Free Powerpoint Templates Page 2
PLAN
I. Contexte : l’intelligence économique
II. Cas d’études :
II. A.: Identification d’experts vietnamiens
II. B. : Traitement de questions ouvertes
d’un questionnaire
III. Perspectives de rechercheFree Powerpoint Templates Page 3
I. : L’intelligence économique
1/ L'ensemble des activités coordonnées de
collecte, de traitement et de diffusion de
l'information utile aux acteurs économiques
en vue de son exploitation
(Rapport Martre 1994)
2/ Réduction du niveau de l’incertitude dans
la prise de décision
(Nombreux auteurs)
3/ Donner la bonne information à la bonne
personne au bon momentFree Powerpoint Templates Page 4
I. : L’intelligence économique
Veille Intelligence
économique Observation
Donnée Information Connaissance
Définir les critères
de recherche
Rechercher les
données
Collecter et traiter
Valider, diffuser
l’information
Analyser l’information
et l’intégrer dans le
processus de prise de
décision
Le cycle de l’IEFree Powerpoint Templates Page 5
II. A.: Identification d’experts
Scénario : Implantation d’une entreprise au Vietnam
Trouver un point de contact localFree Powerpoint Templates Page 6
Restructuration des données
Entrepôt de données
(analyse multidimensionnelle)
II. A.: Identification d’expertsFree Powerpoint Templates Page 7
II. A.: Identification d’expertsFree Powerpoint Templates Page 8
II. B. : Questionnaire
Traitement des questions ouvertes
Questionnaire en ligne sur les nanosciences
Détermination des compétences des répondants
+
Leurs principales motivations
Répondants :
- Une centaine de chercheurs des laboratoires en recherche fondamentale (CNRS
et universités)
dans le champs des nanosciences (spintronique, photovoltaïques, optronique,
plasmas chauds, etc.
Comité de pilotage stratégiqueFree Powerpoint Templates Page 9
Préparation des données :
- Sélection des données
- Nettoyage des données
- Construction de nouvelles données
- Intégration des données
- Formatage des données
Fichier CSV
Mappage XSD
II. B. : QuestionnaireFree Powerpoint Templates Page 10
Création de
dictionnaires
II. B. : QuestionnaireFree Powerpoint Templates Page 11
II. B. : QuestionnaireFree Powerpoint Templates Page 12
Réponse ouverte : « les raisons de votre participation »
Traitement par NooJ d’un noeud XML spécifique
Extraction des syntagmes nominaux les plus
pertinents
II. B. : QuestionnaireFree Powerpoint Templates Page 13
Extraction des SN avec l’outil statistique de NooJFree Powerpoint Templates Page 14
Merci de votre attention !
Efficient C++ finite element computing with Rheolef :
volume 2: discontinuous Galerkin methods
Pierre Saramito
To cite this version:
Pierre Saramito. Efficient C++ finite element computing with Rheolef : volume 2: discontinuous
Galerkin methods. DEA. Grenoble, France, 2013, pp.51.
HAL Id: cel-00863021
https://cel.archives-ouvertes.fr/cel-00863021
Submitted on 18 Sep 2013
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Efficient C++ finite element
computing with Rheolef
volume 2:
discontinuous Galerkin methods
Pierre Saramito
version 6.6 update 17 September 2013
0
0.5
1
0 0.5 1
x
h = 1/20 φ(x)
φh(x)
Re = 10 000Copyright (c) 2003-2013 Pierre Saramito
Permission is granted to copy, distribute and/or modify this document under the terms of the
GNU Free Documentation License, Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy
of the license is included in the section entitled "GNU Free Documentation License".Contents
Notations 2
I Getting started with simple problems 5
1 A scalar first-order problem 7
1.1 The transport equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Scalar second-order problems 11
2.1 The Poisson problem with Dirichlet boundary conditions . . . . . . . . . . . . . . . 11
2.2 The Helmholtz problem with Neumann boundary conditions . . . . . . . . . . . . . 13
II Fluids and solids computations 17
3 The linear elasticity and the Stokes problems 19
3.1 The linear elasticity problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 The Stokes problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 The stationnary Navier-Stokes problem . . . . . . . . . . . . . . . . . . . . . . . . 23
III Technical appendices 39
A GNU Free Documentation License 41
List of example files 47
List of commands 49
Index 49
12 Rheolef version 6.6 update 17 September 2013
Notations
Rheolef mathematics description
d d ∈ {1, 2, 3} dimension of the physical space
dot(u,v) u.v =
X
d−1
i=0
uivi vector scalar product
ddot(sigma,tau) σ : τ =
X
d−1
i,j=0
σi,j τi,j tensor scalar product
tr(sigma) tr(σ) = X
d−1
i=0
σi,i trace of a tensor
trans(sigma) σ
T
tensor transposition
sqr(phi)
norm2(phi) φ
2
square of a scalar
norm2(u) |u|
2 =
X
d−1
i=0
u
2
i
square of the vector norm
norm2(sigma) |σ|
2 =
X
d−1
i,j=0
σ
2
i,j square of the tensor norm
abs(phi)
norm(phi) |φ| absolute value of a scalar
norm(u) |u| =
X
d−1
i=0
u
2
i
!1/2
vector norm
norm(sigma) |σ| =
X
d−1
i,j=0
σ
2
i,j
1/2
tensor norm
grad(phi) ∇φ =
∂φ
∂xi
06i 0, f and φΓ being known. Notice that this is the steady version of the unsteady
diffusion-convection problem previously introduced in section 6.2, page 80 and when the diffusion
coefficient ν vanishes. Here, the ∂Ω− notation is the upstream boundary part, defined by
∂Ω− = {x ∈ Ω; u(x).n(x) < 0}
Let us suppose that u ∈ W1,∞(Ω)d and introduce the space:
X = {ϕ ∈ L
2
(Ω); (u.∇)ϕ ∈ L
2
(Ω)d
}
and, for all φ, ϕ ∈ X
a(φ, ϕ) = Z
Ω
(u.∇φ ϕ + σ φ ϕ) dx +
Z
∂Ω
max (0, −u.n) φ ϕ ds
l(ϕ) = Z
Ω
f ϕ dx +
Z
∂Ω
max (0, −u.n) φΓ ϕ ds
Then, the variational formulation writes:
(F V ): find φ ∈ X such that
a(φ, ϕ) = l(ϕ), ∀ϕ ∈ X
Notice that the term max(0, −u.n) = (|u.n| − u.n)/2 is positive and vanishes everywhere except
on ∂Ω−. Thus, the boundary condition φ = φΓ is weakly imposed on ∂Ω− via the integrals on the
boundary. The discontinuous finite element space is defined by:
Xh = {ϕh ∈ L
2
(Ω); ϕh|K ∈ Pk, ∀K ∈ Th}
78 Rheolef version 6.6 update 17 September 2013
where k > 0 is the polynomial degree. Notice that Xh 6⊂ X and that the ∇φh term has no more
sense for discontinous functions φh ∈ Xh. Following [6, p. 14], we introduce the broken gradient
∇h as a convenient notation:
(∇hφh)|K = ∇(φh|K), ∀K ∈ Th
Thus
Z
Ω
u.∇hφh ϕh dx =
X
K∈Th
Z
K
u.∇φh ϕh dx, ∀φh, ϕh ∈ Xh
This leads to a discrete version ah of the bilinear form a, defined for all φh, ϕh ∈ Xh by (see
e.g. [6, p. 57], eqn. (2.34)):
ah(φh, ϕh) = Z
Ω
(u.∇hφh ϕh + σφh ϕh) dx +
Z
∂Ω
max (0, −u.n) φh ϕh ds
+
X
S∈S
(i)
h
Z
S
− u.n [[φh]] {{ϕh}} +
α
2
|u.n| [[φh]] [[ϕh]]
ds
The two last terms involves a sum over S
(i)
h
, the set of internal sides of the mesh Th. Each internal
side S has two possible orientations: one is choosen definitively. In practice, this orientation
is defined in the ‘.geo’ file containing the mesh, where all sides are listed, together with teir
orientation. Let n the corresponding normal to the side: as S is an internal side, there exists
two elements K0 and K1 such that S = ∂K0 ∩ ∂K1 and n is the outward unit normal of K0
on ∂K0 ∩ S and the inward unit normal of K1 on ∂K1 ∩ S. We also denote on S the jump
[[φ]] = φ|K0 − φ|K1
and the average {{φ}} = (φ|K0 + φ|K1
)/2. The last term in the definition of ah
is ponderated by a coefficient α > 0. Choosing α = 0 correspond to the so-called centered flux
approximation, while α = 1 is the upwinding flux approximation. The case α = 1 and k = 0
(piecewise constant approximation) leads to the popular upwinding finite volume scheme. Finally,
the discrete variational formulation writes:
(F V )h: find φh ∈ Xh such that
ah(φh, ϕh) = l(ϕh), ∀ϕh ∈ Xh
The following code implement this problem in the Rheolef environment.
Example file 1.1: transport_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 geo omega ( argv [1]);
7 space Xh ( omega , argv [2]);
8 Float alpha = ( argc > 3) ? atof ( argv [3]) : 1;
9 Float sigma = ( argc > 4) ? atof ( argv [4]) : 3;
10 point u (1 ,0 ,0);
11 trial phi ( Xh ); test psi ( Xh );
12 form ah = integrate ( dot (u , grad_h ( phi ))* psi + sigma * phi * psi )
13 + integrate (" boundary ", max (0 , - dot (u , normal ()))* phi * psi )
14 + integrate (" internal_sides ",
15 - dot (u , normal ())* jump ( phi )* average ( psi )
16 + 0.5* alpha * abs ( dot (u , normal ()))* jump ( phi )* jump ( psi ));
17 field lh = integrate (" boundary ", max (0 , - dot (u , normal ()))* psi );
18 solver sah ( ah . uu ());
19 field phi_h ( Xh );
20 phi_h . set_u () = sah . solve ( lh . u ());
21 dout << catchmark (" sigma ") << sigma << endl
22 << catchmark ("phi ") << phi_h ;
23 }Rheolef version 6.6 update 17 September 2013 9
Comments
The data are φγ = 1 and u = (1, 0, 0), and then the exact solution is known: φ(x) = exp(−σx0).
The numerical tests are running with σ = 3 by default. The one-dimensional case writes:
make transport_dg
mkgeo_grid -e 10 > line.geo
./transport_dg line P0 | field -
./transport_dg line P1d | field -
./transport_dg line P2d | field -
Observe the jumps accross elements: these jumps decreases with mesh refinement or when polynomial
approximation increases. The two-dimensional case writes:
mkgeo_grid -t 10 > square.geo
./transport_dg square P0 | field -elevation -
./transport_dg square P1d | field -elevation -
./transport_dg square P2d | field -elevation -
The elevation view shows details on inter-element jumps. Finaly, the three-dimensional case writes:
mkgeo_grid -T 5 > cube.geo
./transport_dg cube P0 | field -
./transport_dg cube P1d | field -
./transport_dg cube P2d | field -
0
0.5
1
0 0.5 1
x
h = 1/20 φ(x)
φh(x)
0
0.5
1
0 0.5 1
x
h = 1/40 φ(x)
φh(x)
Figure 1.1: The discontinuous Galerkin method for the transport problem when k = 0 and d = 1.
Fig. 1.1 plots the solution when d = 1 and k = 0: observe that the boundary condition φ = 1 at
x0 = 0 is only weakly satified. It means that the approximation φh(0) tends to 1 when h tnds to
zero. Fig. 1.2 plots the error φ − φh in L
2 and L∞ norms: these errors behave as O
h
k+1
for
all k > 0, which is optimal. A theoretical O
h
k+1/2
error bound was shown in [9]. The present
numerical results confirm that these theoretical error bounds can be improved for some families of
meshes, as pointed out by Richter [11], that showed a O
h
k+1
optimal bound for the transport
problem. This result was recently extended by Cockburn et al. [2], while Peterson [10] showed
that the estimate O
h
k+1/2
is sharp for general families of quasi-uniform meshes.10 Rheolef version 6.6 update 17 September 2013
10−15
10−10
10−5
1
10−2 10−1
h
kφ − φhkL2
1 = k + 1
5 = k + 1
k = 0
k = 1
k = 2
k = 3
k = 4
10−15
10−10
10−5
1
10−2 10−1
h
kφ − φhkL∞
1 = k + 1
5 = k + 1
k = 0
k = 1
k = 2
k = 3
k = 4
Figure 1.2: The discontinuous Galerkin method for the transport problem: convergence when
d = 2.Chapter 2
Scalar second-order problems
2.1 The Poisson problem with Dirichlet boundary conditions
The Poisson problem with non-homogeneous Dirichlet boundary conditions has been already introduced
in volume 1, section 2.1, page 23:
(P): find u, defined in Ω, such that
−∆u = f in Ω
u = g on ∂Ω
where f and g are given.
The discontinuous finite element space is defined by:
Xh = {vh ∈ L
2
(Ω); vh|K ∈ Pk, ∀K ∈ Th}
where k > 1 is the polynomial degree. As elements of Xh do not belongs to H1
(Ω), due to
discontinuities at inter-elements, we introduce the broken Sobolev space:
H1
(Th) = {v ∈ L
2
(Ω); v|K ∈ H1
(K), ∀K ∈ Th}
such that Xh ⊂ H1
(Th). We introduce the folowing bilinear form ah(., .) and linear for lh(.),
defined for all u, v ∈ H1
(Th) by (see e.g. [6, p. 125 and 127], eqn. (4.12)):
ah(u, v) = Z
Ω
∇hu.∇hv dx +
X
S∈Sh
Z
S
(ηs [[u]] [[v]] − {{∇hu.n}} [[v]] − [[u]] {{∇hv.n}}) ds (2.1)
lh(v) = Z
Ω
f u dx +
Z
∂Ω
(ηs g v − g ∇hv.n) ds (2.2)
The last term involves a sum over Sh, the set of all sides of the mesh Th, i.e. the internal sides
and the boundary sides. By convenience, the definition of the jump and average are extended to
all boundary sides as [[u]] = {{u}} = u. Notice that, as for the previous transport problem, the
Dirichlet boundary condition u = g is weakly imposed on ∂Ω via the integrals on the boundary.
Finally, ηs > 0 is a stabilization parameter on a side S. The stabilization term associated to ηs is
present in order to achieve coercivity: it penalize interface and boundary jumps. A common choice
is ηs = β h−1
s where β > 0 is a constant and hs is a local length scale associated to the current side
S. One drawnback to this choice is that it requires the end user to specify the numerical constant
β. From one hand, if the value of this parameter is not sufficiently large, the form ah(., .) is not
coercive and the approximate solution develops instabilities an do not converge [7]. From other
hand, if the value of this parameter is too large, its affect the overall efficiency of the iterative
solver of the linear system: the spectral condition number of the matrix associated to ah(., .)
1112 Rheolef version 6.6 update 17 September 2013
grows linearly with this paramater [1]. An explicit choice of penalty parameter is proposed in [12]:
ηs = β $s where β = (k + 1)(k + d)/d and
$s =
meas(∂K)
meas(K)
when S = K ∩ ∂Ω is a boundary side
max
meas(∂K0)
meas(K0)
,
meas(∂K1)
meas(K1)
when S = K0 ∩ K1 is an internal side
Notice that $s scales as h
−1
s
. Now, the computation of the penalty parameter is fully automatic
and the convergence of the method is always guaranted to converge. Moreover, this choice has
been founded to be sharp and it preserves the optimal efficiency of the iterative solvers. Finally,
the discrete variational formulation writes:
(F V )h: find uh ∈ Xh such that
ah(uh, vh) = lh(vh), ∀vh ∈ Xh
The following code implement this problem in the Rheolef environment.
Example file 2.1: dirichlet_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " cosinusprod_laplace . icc"
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 space Xh ( omega , argv [2]);
9 size_t d = omega . dimension ();
10 size_t k = Xh . degree ();
11 Float beta = ( k +1)*( k + d )/ d;
12 trial u ( Xh ); test v ( Xh );
13 form a = integrate ( dot ( grad_h ( u ) , grad_h ( v )))
14 + integrate (" sides ", beta * penalty ()* jump ( u )* jump ( v )
15 - jump ( u )* average ( dot ( grad_h ( v ) , normal ()))
16 - jump ( v )* average ( dot ( grad_h ( u ) , normal ())));
17 field lh = integrate ( f (d )* v )
18 + integrate (" boundary ", beta * penalty ()* g ( d )* v
19 - g ( d )* dot ( grad_h ( v ), normal ()));
20 solver sa ( a . uu ());
21 field uh ( Xh );
22 uh . set_u () = sa . solve ( lh . u ());
23 dout << uh ;
24 }
Comments
The penalty() pseudo-function implements the computation of $s in Rheolef. The right-hand
side f and g are given by (2.1), volume 1, page 24. In that case, the exact solution is known.
Running the one-dimensional case writes:
make dirichlet_dg
mkgeo_grid -e 10 > line.geo
./dirichlet_dg line P1d | field -
./dirichlet_dg line P2d | field -
Fig. 2.1 plots the one-dimensional solution when k = 1 for two meshes. Observe that the jumps at
inter-element nodes decreases very fast with mesh refinement and are no more perceptible on the
plots. Recall that the Dirichlet boundary conditions at x = 0 and x = 1 is only weakly imposed:
the corresponding jump at the boundary is also not perceptible.
The two-dimensional case writes:Rheolef version 6.6 update 17 September 2013 13
-1
0
1
0 0.5 1
x
h = 1/10
u(x)
uh(x)
-1
0
1
0 0.5 1
x
h = 1/20
u(x)
uh(x)
Figure 2.1: The discontinuous Galerkin method for the Poisson problem when k = 1 and d = 1.
mkgeo_grid -t 10 > square.geo
./dirichlet_dg square P1d | field -elevation -
./dirichlet_dg square P2d | field -elevation -
and the three-dimensional one
mkgeo_grid -T 10 > cube.geo
./dirichlet_dg cube P1d | field -elevation -
./dirichlet_dg cube P2d | field -elevation -
Error analysis
The space H1
(Th) is equiped with the norm k.k1,h, defined for all v ∈ H1
(Th by [6, p. 128]:
kvk
2
1,h = k∇hvk
2
0,Ω +
X
S∈Sh
Z
S
h
−1
s
[[v]]2 ds
The code cosinusprod_error_dg.cc compute the error in these norms. This code it is not listed
here but is available in the Rheolef example directory. The computation of the error writes:
make cosinusprod_error_dg
./dirichlet_dg square P1d | cosinusprod_error_dg
Fig. 2.2 plots the error u − uh in L
2
, L∞ and the k.k1,h norms. The L
2 and L∞ error norms
behave as O
h
k+1
for all k > 0, while the k.k1,h one behaves as O
h
k
, which is optimal.
2.2 The Helmholtz problem with Neumann boundary conditions
The Poisson problem with non-homogeneous Neumann boundary conditions has been already
introduced in volume 1, section 2.2, page 31:
(P): find u, defined in Ω, such that
u − ∆u = f in Ω
∂u
∂n = g on ∂Ω14 Rheolef version 6.6 update 17 September 2013
10−15
10−10
10−5
1
10−2 10−1
h
ku − uhk0,Ω
2 = k + 1
5 = k + 1
k = 1
k = 2
k = 3
k = 4
10−15
10−10
10−5
1
10−2 10−1
h
ku − uhk∞,Ω
2 = k + 1
5 = k + 1
k = 1
k = 2
k = 3
k = 4
10−10
10−5
1
10−2 10−1
h
ku − uhk1,h
1 = k
4 = k
k = 1
k = 2
k = 3
k = 4
Figure 2.2: The discontinuous Galerkin method for the Poisson problem: convergence when d = 2.
where f and g are given. We introduce the folowing bilinear form ah(., .) and linear for lh(.),
defined for all u, v ∈ H1
(Th) by (see e.g. [6, p. 127], eqn. (4.16)):
ah(u, v) = Z
Ω
(u v + ∇hu.∇hv) dx (2.3)
+
X
S∈S
(i)
h
Z
S
(β$s [[u]] [[v]] − {{∇hu.n}} [[v]] − [[u]] {{∇hv.n}}) ds (2.4)
lh(v) = Z
Ω
f u dx +
Z
∂Ω
g v ds (2.5)
Let us comment the changes between these forms and those used for the Poisson problem with
Dirichlet boundary conditions. The Poisson operator −∆ has been replaced by the Helmholtz one
I − ∆ in order to have an unique solution. Remark also that the sum is performed in (2.1) for all
internal sides in S
(i)
h
, while, in (2.1), for Dirichlet boundary conditions, it was for all sides in Sh,
i.e. for both boundary and internal sides. Also, the right-hand-side linear form lh(.). do no more
involves any sum over sides.
Finally, the discrete variational formulation writes:
(F V )h: find uh ∈ Xh such that
ah(uh, vh) = lh(vh), ∀vh ∈ Xh
The following code implement this problem in the Rheolef environment.Rheolef version 6.6 update 17 September 2013 15
Example file 2.2: neumann_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " sinusprod_helmholtz . icc"
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 space Xh ( omega , argv [2]);
9 size_t d = omega . dimension ();
10 size_t k = Xh . degree ();
11 Float beta = ( k +1)*( k + d )/ d;
12 trial u ( Xh ); test v ( Xh );
13 form a = integrate ( u * v + dot ( grad_h ( u ) , grad_h (v )))
14 + integrate (" internal_sides ",
15 beta * penalty ()* jump ( u )* jump ( v )
16 - jump ( u )* average ( dot ( grad_h ( v ) , normal ()))
17 - jump ( v )* average ( dot ( grad_h ( u ) , normal ())));
18 field lh = integrate ( f (d )* v ) + integrate (" boundary ", g (d )* v );
19 solver sa ( a . uu ());
20 field uh ( Xh );
21 uh . set_u () = sa . solve ( lh . u ());
22 dout << uh ;
23 }
Comments
The right-hand side f and g are given by (2.2), volume 1, page 24. In that case, the exact solution
is known. Running the program is obtained from the non-homogeneous Dirichlet case, by replacing
dirichlet_dg by neumann_dg.16 Rheolef version 6.6 update 17 September 2013Part II
Fluids and solids computations
17Chapter 3
The linear elasticity and the Stokes
problems
3.1 The linear elasticity problem
The elasticity problem (4.2) has been introduced in volume 1, section 4.1, page 47.
(P): find u such that
−div (λdiv(u).I + 2D(u)) = f in Ω
u = g on ∂Ω
where λ > −1 is a constant and f, g given. This problem is a natural extension to vector-valued
field of the Poisson problem with Dirichlet boundary conditions.
The variational formulation writes:
(F V )h: find u ∈ V(g) such that
a(u, v) = lh(v), ∀v ∈ V(0)
where
V(g) = {v ∈ H1
(Ω)d
; v = g on ∂Ω}
a(u, v) = Z
Ω
(λ div(u) div(v) + 2D(u):D(v)) dx
l(v) = Z
Ω
f.v dx
The discrete variational formulation writes:
(F V )h: find uh ∈ Xh such that
ah(uh, vh) = lh(vh), ∀vh ∈ Xh
where
Xh = {vh ∈ L
2
(Ω)d
; vh|K ∈ P
d
k
, ∀K ∈ Th}
ah(u, v) = Z
Ω
(λ divh(u) divh(v) + 2Dh(u):Dh(v)) dx
+
X
S∈Sh
Z
S
(β$s[[u]].[[v]] − [[u]].{{λdivh(v)n + 2Dh(v)n}} − [[v]].{{λdivh(u)n + 2Dh(u)n}}) ds
lh(v) = Z
Ω
f.v dx +
Z
∂Ω
g.(β$sv − λdivh(v)n − 2Dh(v)n) ds
1920 Rheolef version 6.6 update 17 September 2013
where k > 1 is the polynomial degree in Xh.
Example file 3.1: elasticity_taylor_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " taylor .icc"
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 space Xh ( omega , argv [2] , " vector ");
9 Float lambda = ( argc > 3) ? atof ( argv [3]) : 1;
10 size_t d = omega . dimension ();
11 size_t k = Xh . degree ();
12 Float beta = ( k +1)*( k + d )/ d;
13 trial u ( Xh ); test v ( Xh );
14 form a = integrate ( lambda * div_h ( u )* div_h ( v ) + 2* ddot ( Dh ( u ) , Dh ( v )))
15 + integrate ( omega . sides () ,
16 beta * penalty ()* dot ( jump ( u ) , jump ( v ))
17 - lambda * dot ( jump ( u ), average ( div_h ( v )* normal ()))
18 - lambda * dot ( jump ( v ), average ( div_h ( u )* normal ()))
19 - 2* dot ( jump ( u ) , average ( Dh ( v )* normal ()))
20 - 2* dot ( jump ( v ) , average ( Dh ( u )* normal ())));
21 field lh = integrate ( dot ( f () , v ))
22 + integrate ( omega . boundary () ,
23 beta * penalty ()* dot ( g () , jump ( v ))
24 - lambda * dot ( g () , average ( div_h ( v )* normal ()))
25 - 2* dot ( g () , average ( Dh ( v )* normal ())));
26 solver sa ( a . uu ());
27 field uh ( Xh );
28 uh . set_u () = sa . solve ( lh . u ());
29 dout << uh ;
30 }
Comments
The data are given when d = 2 by:
g(x) =
− cos(πx0) sin(πx1)
sin(πx0) cos(πx1)
and f = 2π
2g (3.1)
This choice is convenient since the exact solution is known u = g. This benmark solution was
proposed in 1923 by Taylor [13] in the context of the Stokes problem. Notice that the solution is
independent of λ since div(u) = 0.
Example file 3.2: taylor.icc
1 struct g : field_functor {
2 point operator () ( const point & x ) const {
3 return point ( - cos ( pi * x [0])* sin ( pi * x [1]) ,
4 sin ( pi * x [0])* cos ( pi * x [1])); }
5 g () : pi ( acos ( Float ( -1.0))) {}
6 const Float pi ;
7 };
8 struct f : field_functor {
9 point operator () ( const point & x ) const { return 2* sqr ( pi )* _g ( x ); }
10 f () : pi ( acos ( Float ( -1.0))) , _g () {}
11 const Float pi ; g _g ;
12 };
As the exact solution is known, the error can be computed. The code code
elasticity_taylor_error_dg.cc compute the error in L
2
, L∞ and energy norms. This code
it is not listed here but is available in the Rheolef example directory. The computation writes:
make elasticity_taylor_dg elasticity_taylor_error_dgRheolef version 6.6 update 17 September 2013 21
mkgeo_grid -t 10 > square.geo
./elasticity_taylor_dg square P1d | ./elasticity_taylor_error_dg
./elasticity_taylor_dg square P2d | ./elasticity_taylor_error_dg
3.2 The Stokes problem
Let us consider the Stokes problem for the driven cavity in Ω =]0, 1[d
, d = 2, 3. The problem has
been introduced in volume 1, section 4.4, page 57.
(P): find u and p, defined in Ω, such that
− div(2D(u)) + ∇p = f in Ω,
− div u = 0 in Ω,
u = g on ∂Ω
where f and g are given. This problem is the extension to divergence free vector fields of the
elasticity problem. The variational formulation writes:
(V F)h find u ∈ V(g) and p ∈ L
2
(Ω) such that:
a(u, v) + b(v, p) = l(v), ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
(Ω) (3.2)
where
V(g) = {v ∈ H1
(Ω)d
; v = g on ∂Ω}
a(u, v) = Z
Ω
2D(u):D(v) dx
b(u, q) = −
Z
Ω
div(u) q dx
l(v) = Z
Ω
f.v dx
The discrete variational formulation writes:
(V F)h find uh ∈ Xh and ph ∈ Qh such that:
ah(uh, vh) + bh(vh, ph) = lh(vh), ∀vh ∈ Xh,
bh(uh, qh) − ch(ph, qh) = kh(q), ∀qh ∈ Qh.
(3.3)
The discontinuous finite element spaces are defined by:
Xh = {vh ∈ L
2
(Ω)d
; vh|K ∈ P
d
k
, ∀K ∈ Th}
Qh = {qh ∈ L
2
(Ω)d
; qh|K ∈ P
d
k
, ∀K ∈ Th}
where k > 1 is the polynomial degree. Notice that velocity and presure are approximated by the
same polynomial order. This method was introduced by [4] and some recent theoretical results
can be founded in [5]. The forms are defined for all u, v ∈ H1
(Th)
d and q ∈ L
2
(Ω) by (see22 Rheolef version 6.6 update 17 September 2013
e.g. [6, p. 249]):
ah(u, v) = Z
Ω
2Dh(u):Dh(v) dx
+
X
S∈Sh
Z
S
(β$s[[u]].[[v]] − [[u]].{{2Dh(v)n}} − [[v]].{{2Dh(u)n}}) ds
bh(u, q) = Z
Ω
u.∇hq dx −
X
S∈S
(i)
h
Z
S
{{u}}.n [[q]] ds
ch(p, q) = X
S∈S
(i)
h
Z
S
hs [[p]] [[q]] ds
lh(v) = Z
Ω
f.v ds +
Z
∂Ω
g.(β$s v − 2Dh(v) n) ds
kh(q) = Z
∂Ω
g.n q ds
The stabilization form ch controls the pressure jump accross internal sides. This stabilization
term is necessary when using equal order polynomial approximation for velocity and pressure.
The definition of the forms is grouped in a subroutine: it will be reused later for the Navier-Stokes
problem.
Example file 3.3: stokes_dirichlet_dg.icc
1 void stokes_dirichlet_dg ( const space & Xh , const space & Qh ,
2 form & a , form & b , form & c , form & mp , field & lh , field & kh ,
3 quadrature_option_type qopt = quadrature_option_type ())
4 {
5 size_t k = Xh . degree ();
6 size_t d = Xh . get_geo (). dimension ();
7 Float beta = ( k +1)*( k + d )/ d;
8 trial u ( Xh ) , p ( Qh );
9 test v ( Xh ) , q ( Qh );
10 a = integrate (2* ddot ( Dh ( u ) , Dh ( v )) , qopt )
11 + integrate (" sides ", beta * penalty ()* dot ( jump ( u ) , jump ( v ))
12 - 2* dot ( jump ( u ) , average ( Dh ( v )* normal ()))
13 - 2* dot ( jump ( v ) , average ( Dh ( u )* normal ())) , qopt );
14 lh = integrate ( dot ( f () , v ) , qopt )
15 + integrate (" boundary ", beta * penalty ()* dot ( g () , v )
16 - 2* dot ( g () , Dh ( v )* normal ()) , qopt );
17 b = integrate ( dot (u , grad_h ( q )) , qopt )
18 + integrate (" internal_sides ", - dot ( average ( u ) , normal ())* jump ( q) , qopt );
19 kh = integrate (" boundary ", dot (g () , normal ())* q , qopt );
20 c = integrate (" internal_sides ", h_local ()* jump ( p )* jump ( q ) , qopt );
21 mp = integrate ( p *q , qopt );
22 }
A simple test program writes:Rheolef version 6.6 update 17 September 2013 23
Example file 3.4: stokes_taylor_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " taylor .icc"
5 # include " stokes_dirichlet_dg . icc"
6 int main (int argc , char ** argv ) {
7 environment rheolef ( argc , argv );
8 geo omega ( argv [1]);
9 space Xh ( omega , argv [2] , " vector ");
10 space Qh ( omega , argv [2]);
11 form a , b , c , mp ;
12 field lh , kh ;
13 stokes_dirichlet_dg ( Xh , Qh , a , b , c , mp , lh , kh );
14 field uh ( Xh , 0) , ph (Qh , 0);
15 solver_abtb stokes ( a . uu () , b . uu () , c . uu () , mp . uu ());
16 stokes . solve ( lh . u () , kh . u () , uh . set_u () , ph . set_u ());
17 dout << catchmark ("u") << uh
18 << catchmark ("p") << ph ;
19 }
Comments
The data are given when d = 2 by (3.1). This choice is convenient since the exact solution is
known u = g and p = 0. The code stokes_taylor_error_dg.cc compute the error in L
2
, L∞
and energy norms. This code it is not listed here but is available in the Rheolef example directory.
The computation writes:
make stokes_taylor_dg stokes_taylor_error_dg
mkgeo_grid -t 10 > square.geo
./stokes_taylor_dg square P1d | ./stokes_taylor_error_dg
./stokes_taylor_dg square P2d | ./stokes_taylor_error_dg
3.3 The stationnary Navier-Stokes problem
3.3.1 Problem statemment
The Navier-Stokes problem has been already introduced in volume 1, section 3.3 page 23. Here
we consider the stationnary version of this problem. Let Re > 0 be the Reynolds number. The
problem writes:
(P): find u and p, defined in Ω, such that
Re (u.∇)u − div(2D(u)) + ∇p = f in Ω,
− div u = 0 in Ω,
u = g on ∂Ω
Notice that, when Re > 0, the problem is nonlinear, due to the inertia term u.∇u. When Re = 0
the problem reduces to the linear Stokes problem, presented in the previous section/
The variationnal formulation of this nonlinear problem writes:
(F V ): find u ∈ V(g) and p ∈ L
2
(Ω) such that
Re t(u; u, v) + a(u, v) + b(v, p) = l(v), ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
(Ω)
where the space V(g) and forms a, b and l are given as in the previous section 3.2 for the Stokes
problem and the trilinear form t(.; ., .) is given by:
t(w; u, v) = Z
Ω
((w.∇)u).v dx24 Rheolef version 6.6 update 17 September 2013
3.3.2 The discrete problem
Let
t(w; u, u) = Z
Ω
(w.∇u).u dx
Observe that, for all u, w ∈ H1
(Ω)d we have
Z
Ω
(w.∇u).u dx =
X
d−1
i,j=0
Z
Ω
ui wj ∂j (ui) dx
=
X
d−1
i,j=0
−
Z
Ω
ui ∂j (ui wj ) dx +
Z
∂Ω
u
2
i wj nj dx
=
X
d−1
i,j=0
−
Z
Ω
ui ∂j (ui) wj dx −
Z
Ω
u
2
i ∂j (wj ) dx +
Z
∂Ω
u
2
i wj nj dx
= −
Z
Ω
(w.∇u).u dx −
Z
Ω
div(w)|u|
2 dx +
Z
∂Ω
w.n |u|
2 ds (3.4)
Thus
t(w; u, u) = Z
Ω
(w.∇u).u dx = −
1
2
Z
Ω
div(w)|u|
2 dx +
1
2
Z
∂Ω
w.n |u|
2 ds
When div(w) = 0, the trilinear form t(.; ., .) reduces to a boundary term: it is formaly skewsymmetric.
The skew-symmetry of t is an important property: let (v, q) = (u, p) as test functions
in (F V ). We obtain:
a(u, u) = l(u)
In other words, we obtain the same energy balance as for the Stokes flow and inertia do not
contribute to the energy balance. This is an important property and we aim at obtaining the
same one at the discrete level. As the discrete solution uh is not exactly divergence free, following
Temam, we introduce the following modified trilinear form:
t
∗
(w; u, v) = Z
Ω
(w.∇u).v +
1
2
div(w) u.v
dx −
1
2
Z
∂Ω
(w.n) u.v ds, ∀u, v, w ∈ H1
(Ω)d
This form integrates the non-vanishing terms and we have:
t
∗
(w; u, u) = 0, ∀u, w ∈ H1
(Ω)d
When the discrete solution is not exactly divergence free, it is better to use t
∗
than t.
The discontinuous finite element spaces Xh and Qh and forms ah, bh, ch, lh and kh are defined as
in the previous section. Let us introduce t
∗
h
, the following discrete trilinear form, defined for all
uh, vh, wh ∈ Xh:
t
∗
h
(wh; uh, vh) = Z
Ω
(wh.∇huh).vh +
1
2
divh(wh) uh.vh
dx −
1
2
Z
∂Ω
(wh.n) uh.vh ds
Notice that t
∗
h
is similar to t
∗
: the gradient and divergence has been replaced by their broken
counterpart in the first term. As Xh 6⊂ H1
(Ω)d
, the skew-symmetry property is not expected to
be true at the discrete level. Then
t
∗
h
(wh; uh, uh) = X
K∈Th
Z
K
(wh.∇uh).uh +
1
2
div(wh)|uh|
2
dx −
1
2
Z
∂Ω
(wh.n)|uh|
2 dsRheolef version 6.6 update 17 September 2013 25
As the restriction of uh and wh to each K ∈ Th belongs to H1
(K)
d
, we have, using a similar
integration by part:
Z
K
(wh.∇uh).uh dx = −
1
2
Z
K
div(wh)|uh|
2 dx +
1
2
Z
∂K
(wh.n)|uh|
2 ds
Thus
t
∗
h
(wh; uh, uh) = 1
2
X
K∈Th
Z
∂K
(wh.n)|uh|
2 ds −
1
2
Z
∂Ω
(wh.n)|uh|
2 ds
The terms on boundary sides vanish while those on internal sides can be grouped:
t
∗
h
(wh; uh, uh) = 1
2
X
S∈S
(i)
h
Z
S
[[|uh|
2wh]].n ds
The jump term [[(uh.vh) wh]].n is not easily manageable and could be developed. A short computation
shows that, for all scalar fields φ, ϕ we have on any internal side:
[[φϕ]] = [[φ]]{{ϕ}} + {{φ}}[[ϕ]] (3.5)
{{φϕ}} = {{φ}}{{ϕ}} +
1
4
[[φ]][[ϕ]] (3.6)
Then
t
∗
h
(wh; uh, uh) = 1
2
X
S∈S
(i)
h
Z
S
{{wh}}.n [[|uh|
2
]] + [[wh]].n {{|uh|
2
}}
ds
=
X
S∈S
(i)
h
Z
S
{{wh}}.n ([[uh]].{{uh}}) + 1
2
[[wh]].n {{|uh|
2
}}
ds
Thus, as expected, the skew-symmetry property is no more satisfied at the discrete level, due to
the jumps of the fields at the inter-element boundaries. Following the previous idea, we introduce
the following modified discrete trilinear form:
th(wh; uh, vh) = t
∗
h
(wh; uh, vh) −
X
S∈S
(i)
h
Z
S
{{wh}}.n ([[uh]].{{vh}}) + 1
2
[[wh]].n {{uh.vh}}
ds
=
Z
Ω
(wh.∇huh).vh +
1
2
divh(wh) uh.vh
dx −
1
2
Z
∂Ω
(wh.n) uh.vh ds
−
X
S∈S
(i)
h
Z
S
{{wh}}.n ([[uh]].{{vh}}) + 1
2
[[wh]].n {{uh.vh}}
ds (3.7)
This expression has been proposed by Pietro and Ern [5, p. 22], eqn (72) (see also [6, p. 272], eqn
(6.57)). The boundary term introduced in th may be compensated in the right-hand side:
l
∗
h
(v) := lh(v) −
Re
2
Z
∂Ω
(g.n) g.vh ds
Notice that the boundary term introduced in th is compensated in the right-hand side l
∗
h
.26 Rheolef version 6.6 update 17 September 2013
Example file 3.5: inertia.icc
1 template < class W , class U , class V >
2 form inertia ( W w , U u , V v ,
3 quadrature_option_type qopt = quadrature_option_type ())
4 {
5 return
6 integrate ( dot ( grad_h ( u )* w , v ) + 0.5* div_h ( w )* dot (u , v ) , qopt )
7 + integrate (" boundary ", - 0.5* dot (w , normal ())* dot (u , v ) , qopt )
8 + integrate (" internal_sides ",
9 - dot ( average ( w ) , normal ())* dot ( jump ( u ) , average ( v ))
10 - 0.5* dot ( jump ( w ) , normal ())
11 *( dot ( average ( u ) , average ( v )) + 0.25* dot ( jump ( u ) , jump ( v ))) , qopt );
12 }
13 field inertia_fix_rhs ( test v ,
14 quadrature_option_type qopt = quadrature_option_type ())
15 {
16 return integrate (" boundary ", - 0.5* dot ( g () , normal ())* dot ( g () , v ) , qopt );
17 }
The discrete problem is
(F V )h: find uh ∈ Xh and p ∈ Qh such that
Re th(uh; uh, vh) + ah(uh, vh) + bh(vh, ph) = l
∗
h
(vh), ∀vh ∈ Xh,
bh(uh, qh) − ch(ph, qh) = kh(q), ∀qh ∈ Qh
(3.8)
The simplest approach for solving the discrete problem is to consider a fixed-point algorithm. The
sequence
u
(k)
h
k>0
is defined by reccurence as:
• k = 0: let u
(0)
h ∈ Xh being known.
• k > 0: let u
(k−1)
h ∈ Xh given. Find u
(k)
h ∈ Xh and p
(k)
h ∈ Qh such that
Re th
u
(k−1)
h
; u
(k)
h
, vh
+ ah
u
(k)
h
, vh
+ bh
vh, p
(k)
h
= l
∗
h
(vh), ∀vh ∈ Xh,
bh
u
(k)
h
, qh
− ch
p
(k)
h
, qh
= kh(q), ∀qh ∈ Qh.
At each step k > 0, this algorithm involves a linear subproblem of Stokes-type.Rheolef version 6.6 update 17 September 2013 27
Example file 3.6: navier_stokes_taylor_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " taylor .icc"
5 # include " stokes_dirichlet_dg . icc"
6 # include " inertia .icc"
7 int main (int argc , char ** argv ) {
8 environment rheolef ( argc , argv );
9 geo omega ( argv [1]);
10 space Xh ( omega , argv [2] , " vector ");
11 space Qh ( omega , argv [2]);
12 Float Re = ( argc > 3) ? atof ( argv [3]) : 1;
13 size_t max_iter = ( argc > 4) ? atoi ( argv [4]) : 1;
14 form a , b , c , mp ;
15 field lh , kh ;
16 stokes_dirichlet_dg ( Xh , Qh , a , b , c , mp , lh , kh );
17 field uh ( Xh , 0) , ph (Qh , 0);
18 solver_abtb stokes ( a . uu () , b . uu () , c . uu () , mp . uu ());
19 stokes . solve ( lh . u () , kh . u () , uh . set_u () , ph . set_u ());
20 trial u ( Xh ); test v ( Xh );
21 form a1 = a + Re * inertia ( uh , u , v );
22 lh += Re * inertia_fix_rhs ( v );
23 derr << "#k r as" << endl ;
24 for ( size_t k = 0; k < max_iter ; ++ k ) {
25 solver_abtb stokes ( a1 . uu () , b. uu () , c . uu () , mp . uu ());
26 stokes . solve ( lh . u () , kh . u () , uh . set_u () , ph . set_u ());
27 form th = inertia ( uh , u , v );
28 a1 = a + Re * th ;
29 field rh = a1 * uh + b . trans_mult ( ph ) - lh ;
30 derr << k << " " << rh . max_abs () << " " << th ( uh , uh ) << endl ;
31 }
32 dout << catchmark ("Re") << Re << endl
33 << catchmark ("u") << uh
34 << catchmark ("p") << ph ;
35 }
Comments
The data are given when d = 2 by (3.1). This choice is convenient since the exact solution is known
u = g and p = −(Re/4)(cos(2πx0) + cos(2πx1)). The code navier_stokes_taylor_error_dg.cc
compute the error in L
2
, L∞ and energy norms. This code it is not listed here but is available in
the Rheolef example directory. The computation writes:
make navier_stokes_taylor_dg navier_stokes_taylor_error_dg
./navier_stokes_taylor_dg square P1d 10 10 | ./navier_stokes_taylor_error_dg
./navier_stokes_taylor_dg square P2d 10 10 | ./navier_stokes_taylor_error_dg
3.3.3 A conservative variant
Remark the identity
div(u ⊗ u) = (u.∇)u + div(u) u
The momentum conservation can be rewritten in conservative form and the problem writes:
(P˜): find u and p, defined in Ω, such that
div(Re u ⊗ u − 2D(u)) + ∇p = f in Ω,
− div u = 0 in Ω,
u = g on ∂Ω28 Rheolef version 6.6 update 17 September 2013
Notice the Green formulae (see volume 1, appendix A.2, page 141):
Z
Ω
div(u ⊗ u).v dx = −
Z
Ω
(u ⊗ u):∇v dx +
Z
∂Ω
(u.n) (u.v) ds
The variationnal formulation is:
(F Vg): find u ∈ V(g) and p ∈ L
2
(Ω) such that
Re t˜(u; u, v) + a(u, v) + b(v, p) = ˜l(v), ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
(Ω)
where the forms t˜ and ˜lh are given by:
t˜(w; u, v) = −
Z
Ω
(w ⊗ u):∇v dx
˜l(v) = l(v) − Re Z
∂Ω
(g.n) (g.v) ds
Notice that the right-hand side ˜l contains an additional term that compensates those comming
from the integration by parts. Then, with v = u:
t˜(w; u, u) = −
Z
Ω
(w ⊗ u):∇u dx
=
Z
Ω
div(w ⊗ u).u dx −
Z
∂Ω
(w ⊗ u) : (u ⊗ n) dx
=
Z
Ω
(((u.∇)w).u + div(u) (u.w)) dx −
Z
∂Ω
(u.n) (u.w) dx
From an integration by part similar to (3.4):
Z
Ω
(u.∇w).u dx = −
Z
Ω
(u.∇u).w dx −
Z
Ω
div(u) (u.w) dx +
Z
∂Ω
(u.n) (u.w) ds
The term (u.∇w).u do not reapper after the integration by parts: instead, it appears (u.∇u).w.
Thus, the structure of the t˜ trilinear form do not permit a general skew-symmetry property as it
was the case for t. It requires the three arguments to be the same:
t˜(u; u, u) = Z
Ω
((u.∇)u).u + div(u)|u|
2
dx −
Z
∂Ω
(u.n)|u|
2 dx
Using (3.4) with w = u leads to:
Z
Ω
((u.∇)u).u dx = −
1
2
Z
Ω
div(u)|u|
2 dx +
1
2
Z
∂Ω
(u.n)|u|
2 ds (3.9)
Then
t˜(u; u, u) = 1
2
Z
Ω
div(u)|u|
2 dx −
1
2
Z
∂Ω
(u.n)|u|
2 ds
When working with velocities that are not divergence-free, a possible modification of the trilinear
form t˜ is to consider
t˜∗
(w; u, v) = t˜(w; u, v) −
1
2
Z
Ω
div(v) (u.w) dx +
1
2
Z
∂Ω
(v.n) (u.w) ds
= −
Z
Ω
(w ⊗ u):D(v) + 1
2
div(v) (u.w)
dx +
1
2
Z
∂Ω
(v.n) (u.w) dsRheolef version 6.6 update 17 September 2013 29
Then we have
t˜∗
(u; u, u) = 0, ∀u ∈ H1
(Ω)d
The new variationnal formulation is:
(F Vg)
∗
: find u ∈ V(g) and p˜ ∈ L
2
(Ω) such that
Re t˜∗
(u; u, v) + a(u, v) + b(v, p˜) = ˜l(v), ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
(Ω)
One can easily check that when (u, p˜) is a solution of (F Vg)
∗
, then (u, p) is a solution of (F Vg)
with p = ˜p + Re|u|/2. The apparition of the kinetic energy term Re|u|/2 in the modified pressure
field p˜ is due to the introduction of the div(v) (u.w) term in the trilinear form t˜∗
.
At the discrete level, let us define for all uh, vh, wh ∈ Xh:
t˜∗
h
(wh; uh, vh) = −
Z
Ω
(wh ⊗ uh):∇hvh +
1
2
divh(vh) (uh.wh)
dx
+
1
2
Z
∂Ω
(vh.n) (uh.wh) ds
Notice that t˜∗
h
is similar to t˜∗
: the gradient and divergence has been replaced by their broken
counterpart in the first term. As Xh 6⊂ H1
(Ω)d
, the skew-symmetry property is not expected to
be true at the discrete level. Then
t˜∗
h
(uh; uh, uh) = −
Z
Ω
(uh ⊗ uh):∇huh +
1
2
divh(uh)|uh|
2
dx +
1
2
Z
∂Ω
(uh.n)|uh|
2 ds
Next, using (3.9) in each K, and then developing thanks to (3.5)-(3.6), we get
t˜∗
h
(uh; uh, uh) = 1
2
Z
∂Ω
(uh.n)|uh|
2 ds −
1
2
X
K∈Th
Z
∂K
(uh.n)|uh|
2 ds
= −
1
2
X
S∈S
(i)
h
Z
S
[[(uh.n)|uh|
2
]] ds
= −
1
2
X
S∈S
(i)
h
Z
S
({{uh}}.n) [[|uh|
2
]] + ([[uh]].n) {{|uh|
2
}}
ds
= −
X
S∈S
(i)
h
Z
S
({{uh}}.n) ({{uh}}.[[uh]]) + 1
2
([[uh]].n) {{|uh|
2
}}
ds
The idea is to integrate this term in the definition of a discrete t˜h. One of the possibilities is
t˜h(wh; uh, vh) = t˜∗
h
(wh; uh, vh) + X
S∈S
(i)
h
Z
S
({{uh}}.n) ({{wh}}.[[vh]]) + 1
2
{{uh.wh}} ([[vh]].n)
ds
= −
Z
Ω
(wh ⊗ uh):∇hvh +
1
2
divh(vh) (uh.wh)
dx
+
1
2
Z
∂Ω
(vh.n) (uh.wh) ds
+
X
S∈S
(i)
h
Z
S
({{uh}}.n) ({{wh}}.[[vh]]) + 1
2
{{uh.wh}} ([[vh]].n)
ds (3.10)
This expression was proposed by [5, p. 21], eqn (73) (see also [6, p. 282]) folling and original idea
introduced in [3].30 Rheolef version 6.6 update 17 September 2013
Example file 3.7: inertia_cks.icc
1 form inertia ( field w , trial u , test v ,
2 quadrature_option_type qopt = quadrature_option_type ())
3 {
4 return
5 integrate ( - dot ( trans ( grad_h ( v ))* w , u ) - 0.5* div_h ( v )* dot (u , w ) , qopt )
6 + integrate (" internal_sides ",
7 dot ( average ( u ) , normal ())* dot ( jump ( v ) , average ( w ))
8 + 0.5* dot ( jump ( v ) , normal ())
9 *( dot ( average ( u ) , average ( w )) + 0.25* dot ( jump ( u ) , jump ( w ))) , qopt )
10 + integrate (" boundary ", 0.5* dot (v , normal ())* dot (u , w ) , qopt );
11 }
12 field inertia_fix_rhs ( test v ,
13 quadrature_option_type qopt = quadrature_option_type ())
14 {
15 return integrate (" boundary ", - dot ( g () , normal ())* dot ( g () , v ), qopt );
16 }
The discrete problem is
(F Vg)h: find uh ∈ Xh and p˜ ∈ Qh such that
Re t˜h(uh; uh, vh) + ah(uh, vh) + bh(vh, p˜h) = ˜l
∗
h
(vh), ∀vh ∈ Xh,
bh(uh, qh) − ch(ph, qh) = kh(q), ∀qh ∈ Qh
A simple test program is obtained by replacing in navier_stokes_taylor_dg.cc the include
inertia.icc by inertia_cks.icc. The compilation and run are similar.
3.3.4 A Newton solver
The discrete problems (F V )h can be put in a compact form:
F(uh, ph) = 0
where F is defined in variationnal form:
hF(uh, ph), (vh, qh)i =
Re th(uh; uh, vh) + ah(uh, vh) + bh(vh, ph) − l
∗
h
(vh)
bh(uh, qh) − ch(ph, qh) − kh(q)
for all (vh, qh) ∈ Xh × Qh. Notices that, after some minor modifications in the definition of
F, this method could also applies for the locally conservative formulation (F Vg)h. The previous
formulation is simply the variationnal expression of F(uh, ph) = 0. The Newton method defines
the sequence
u
(k)
h
k>0
by reccurence as:
• k = 0: let u
(0)
h ∈ Xh being known.
• k > 0: let u
(k−1)
h ∈ Xh given. Find δuh ∈ Xh and δph ∈ Qh such that
F
0
u
(k−1)
h
, p
(k−1)
h
.(δuh, δph) = −F
u
(k−1)
h
, p
(k−1)
h
and then defines
u
(k)
h = u
(k−1)
h + δuh and p
(k)
h = p
(k−1)
h + δph
At each step k > 0, this algorithm involves a linear subproblem involving the jacobian F
0
that is
definied by its variationnal form:
hF
0
u
(k−1)
h
, p
(k−1)
h
.(δuh, δph), (vh, qh)i
=
Re (th(δuh; uh, vh) + th(uh; δuh, vh)) + ah(δuh, vh) + bh(vh, δph)
bh(δuh, qh) − ch(δph, qh)
Rheolef version 6.6 update 17 September 2013 31
Example file 3.8: navier_stokes_taylor_newton_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " taylor .icc"
5 # include " stokes_dirichlet_dg . icc"
6 # include " inertia .icc"
7 # include " navier_stokes_dg .h"
8 int main (int argc , char ** argv ) {
9 environment rheolef ( argc , argv );
10 Float eps = numeric_limits :: epsilon ();
11 geo omega ( argv [1]);
12 string approx = ( argc > 2) ? argv [2] : " P1d";
13 Float Re = ( argc > 3) ? atof ( argv [3]) : 100;
14 Float tol = ( argc > 4) ? atof ( argv [4]) : eps ;
15 size_t max_iter = ( argc > 5) ? atoi ( argv [5]) : 100;
16 string restart = ( argc > 6) ? argv [6] : "";
17 navier_stokes_dg F ( Re , omega , approx );
18 navier_stokes_dg :: value_type xh = F . initial ( restart );
19 int status = damped_newton (F , xh , tol , max_iter , & derr );
20 dout << catchmark ("Re") << Re << endl
21 << catchmark ("u") << xh [0]
22 << catchmark ("p") << xh [1];
23 return status ;
24 }
Comments
The implementation of the Newton method follows the generic approach introduced in volume 1,
section 8.3, page 126. For that purpose we define a class navier_stokes_dg.
Example file 3.9: navier_stokes_dg.h
1 struct navier_stokes_dg {
2 typedef valarray value_type ;
3 typedef Float float_type ;
4 navier_stokes_dg ( Float Re , const geo& omega , string approx );
5 value_type initial ( string restart ) const ;
6 value_type residue ( const value_type & uh ) const ;
7 void update_derivative ( const value_type & uh ) const ;
8 value_type derivative_solve ( const value_type & mrh ) const ;
9 value_type derivative_trans_mult ( const value_type & mrh ) const ;
10 Float space_norm ( const value_type & uh ) const ;
11 Float dual_space_norm ( const value_type & mrh ) const ;
12 Float duality_product ( const value_type & mrh , const value_type & msh ) const ;
13 Float Re ;
14 space Xh , Qh ;
15 quadrature_option_type qopt ;
16 form a0 , b , c , mu , mp ;
17 field lh0 , lh , kh ;
18 solver smu , smp ;
19 mutable form a1 ;
20 mutable solver_abtb stokes1 ;
21 };
22 # include " navier_stokes_dg1 .icc"
23 # include " navier_stokes_dg2 .icc"
The member functions of the class are defined in two separate files.32 Rheolef version 6.6 update 17 September 2013
Example file 3.10: navier_stokes_dg1.icc
1 navier_stokes_dg :: navier_stokes_dg (
2 Float Re1 , const geo& omega , string approx )
3 : Re ( Re1 ), Xh () , Qh () , qopt () , a0 () , b () , c () , mu () , mp () , lh0 () , lh () , kh () ,
4 smu () , smp () , a1 () , stokes1 ()
5 {
6 Xh = space ( omega , approx , " vector ");
7 Qh = space ( omega , approx );
8 qopt . set_family ( quadrature_option_type :: gauss );
9 qopt . set_order (2* Xh . degree ()+1);
10 stokes_dirichlet_dg ( Xh , Qh , a0 , b , c , mp , lh0 , kh , qopt );
11 trial u ( Xh ); test v ( Xh );
12 lh = lh0 + Re * inertia_fix_rhs (v , qopt );
13 mu = integrate ( dot (u , v ) , qopt );
14 smu = solver ( mu . uu ());
15 smp = solver ( mp . uu ());
16 }
17 navier_stokes_dg :: value_type
18 navier_stokes_dg :: initial ( string restart ) const {
19 value_type xh (2);
20 xh [0] = field ( Xh , 0);
21 xh [1] = field ( Qh , 0);
22 Float Re0 = 0;
23 if ( restart == "") {
24 solver_abtb stokes0 ( a0 . uu () , b . uu () , c . uu () , mp . uu ());
25 stokes0 . solve ( lh0 . u () , kh . u () , xh [0]. set_u () , xh [1]. set_u ());
26 } else {
27 idiststream in ( restart );
28 in >> catchmark ("Re") >> Re0
29 >> catchmark ("u") >> xh [0]
30 >> catchmark ("p") >> xh [1];
31 check_macro ( xh [1]. get_space () == Qh , " unexpected " << xh [0]. get_space (). stamp ()
32 << " approximation in file \"" << restart << "\" (" << Xh . stamp () << " expected )");
33 }
34 derr << "# continuation : from Re=" << Re0 << " to " << Re << endl ;
35 return xh ;
36 }
37 navier_stokes_dg :: value_type
38 navier_stokes_dg :: residue ( const value_type & xh ) const {
39 trial u ( Xh ); test v ( Xh );
40 form a = a0 + Re * inertia ( xh [0] , u , v , qopt );
41 value_type mrh (2);
42 mrh [0] = a * xh [0] + b . trans_mult ( xh [1]) - lh ;
43 mrh [1] = b * xh [0] - c * xh [1] - kh ;
44 return mrh ;
45 }
46 void navier_stokes_dg :: update_derivative ( const value_type & xh ) const {
47 trial u ( Xh ); test v ( Xh );
48 a1 = a0 + Re *( inertia ( xh [0] , u , v , qopt ) + inertia (u , xh [0] , v , qopt ));
49 stokes1 = solver_abtb ( a1 . uu () , b . uu () , c . uu () , mp . uu ());
50 }
51 navier_stokes_dg :: value_type
52 navier_stokes_dg :: derivative_solve ( const value_type & mrh ) const {
53 value_type delta_xh (2);
54 delta_xh [0] = field ( Xh , 0);
55 delta_xh [1] = field ( Qh , 0);
56 stokes1 . solve ( mrh [0]. u () , mrh [1]. u () ,
57 delta_xh [0]. set_u () , delta_xh [1]. set_u ());
58 return delta_xh ;
59 }
60 navier_stokes_dg :: value_type
61 navier_stokes_dg :: derivative_trans_mult ( const value_type & mrh ) const {
62 value_type rh (2);
63 rh [0] = field ( Xh );
64 rh [1] = field ( Qh );
65 rh [0]. set_u () = smu . solve ( mrh [0]. u ());
66 rh [1]. set_u () = smp . solve ( mrh [1]. u ());
67 value_type mgh (2);
68 mgh [0] = a1 . trans_mult ( rh [0]) + b . trans_mult ( rh [1]);
69 mgh [1] = b * rh [0] - c * rh [1];
70 return mgh ;
71 }Rheolef version 6.6 update 17 September 2013 33
Example file 3.11: navier_stokes_dg2.icc
1 Float navier_stokes_dg :: dual_space_norm ( const value_type & mrh ) const {
2 value_type rh (2);
3 rh [0] = field ( Xh );
4 rh [1] = field ( Qh );
5 rh [0]. set_u () = smu . solve ( mrh [0]. u ());
6 rh [1]. set_u () = smp . solve ( mrh [1]. u ());
7 return std :: max ( rh [0]. max_abs () , rh [1]. max_abs ());
8 }
9 Float navier_stokes_dg :: space_norm ( const value_type & xh ) const {
10 return sqrt ( mu ( xh [0] , xh [0]) + mp ( xh [1] , xh [1]));
11 }
12 Float navier_stokes_dg :: duality_product (
13 const value_type & mrh , const value_type & msh ) const
14 {
15 value_type rh (2);
16 rh [0] = field ( Xh );
17 rh [1] = field ( Qh );
18 rh [0]. set_u () = smu . solve ( mrh [0]. u ());
19 rh [1]. set_u () = smp . solve ( mrh [1]. u ());
20 return dual ( rh [0] , msh [0]) + dual ( rh [1] , msh [1]);
21 }
make navier_stokes_taylor_newton_dg navier_stokes_taylor_error_dg
./navier_stokes_taylor_newton_dg square P2d 1000 | ./navier_stokes_taylor_error_dg
3.3.5 Application to the driven cavity benchmark
Example file 3.12: cavity_dg.icc
1 struct g : field_functor {
2 point operator () ( const point & x ) const {
3 return point (( abs (1 - x [1]) < 1e -7) ? 1 : 0 , 0 , 0); }
4 };
5 struct f : field_functor {
6 point operator () ( const point & x ) const { return point (0 ,0 ,0); }
7 };
The program navier_stokes_cavity_newton_dg.cc is obtained by replacing in
navier_stokes_taylor_newton_dg.cc the include taylor.icc by cavity_dg.icc that
defines the boundary conditions. The compilation and run are similar.
make navier_stokes_cavity_newton_dg stream_cavity
./navier_stokes_cavity_newton_dg square P1d 500 > square.field
field -proj square.field -field | ./streamf_cavity | \
field -bw -n-iso-negative 10 -mayavi -
3.3.6 Upwinding
The skew symmetry property is generalized to the requirement that th be non-dissipative (see [6,
p. 282], eqn (6.68)):
th(wh; uh, uh) > 0, ∀wh, uh ∈ Xh
A way to satisfy this property is to add an upwinding term in th:
t˘h(wh; uh, vh) := th(wh; uh, vh) + sh(wh; uh, vh)
with
sh(wh; uh, vh) = 1
2
X
S∈S
(i)
h
Z
S
|{{wh}}.n| ([[uh]].[[vh]]) ds34 Rheolef version 6.6 update 17 September 2013
10−10
10−5
100
0 5 10 15 20 25
n
r
(n)
h
L∞
h = 1/40, k = 1
Re = 100
500
1000
Figure 3.1: The discontinuous Galerkin method for the Navier-Stokes problem on the driven cavity
benchmark when k = 1 and d = 2: convergence of the damped Newton algorithm.
We aim at using a Newton method. We replace th by its extension t˘h containing the upwind
terms in the definition of F, and then we compute its jacobian F
0
. As the absolute value is
not differentiable, the functions sh, t˘h and then F are also not differentiable with respect to
wh. Nevertheless, the absolute value is convex and we can use some concets of the sudifferential
calculus. Let us introduce the multi-valued sign function:
sgn(x) =
{1} when x > 0
[−1, 1] when x = 0
{−1} when x < 0
Then, the subdifferential of the absolute value function is sgn(x) and for all δwh, wh, uh, vh ∈ Xh,
we define a generalization of the partial derivative as
∂sh
∂wh
(wh; uh, vh).(δwh) = 1
2
X
S∈S
(i)
h
Z
S
sgn({{wh}}.n) ({{δwh}}.n) ([[uh]].[[vh]]) ds
Example file 3.13: inertia_upw.icc
1 # include " sgn.icc"
2 form inertia_upw ( field w , trial u , test v ,
3 quadrature_option_type qopt = quadrature_option_type ())
4 {
5 return integrate (" internal_sides ",
6 0.5* abs ( dot ( average ( w ), normal ()))* dot ( jump (u ) , jump ( v )));
7 }
8 form d_inertia_upw ( field w , trial dw , field u , test v ,
9 quadrature_option_type qopt = quadrature_option_type ())
10 {
11 return integrate (" internal_sides ",
12 0.5* compose ( sgn , dot ( average ( w ) , normal ()))
13 * dot ( average ( dw ) , normal ())* dot ( jump ( u ) , jump ( v )));
14 }Rheolef version 6.6 update 17 September 2013 35
A multi-valued jacobian F
0
is then defined:
hF
0
u
(k−1)
h
, p
(k−1)
h
.(δuh, δph), (vh, qh)i
= Re
th(δuh; uh, vh) + th(uh; δuh, vh) + ∂sh
∂wh
(uh; uh, vh).(δuh) + sh(uh; δuh, vh)
0
+
ah(δuh, vh) + bh(vh, δph)
bh(δuh, qh) − ch(δph, qh)
We are abble to extend the Newton method to the F function that allows a multi-valued subdifferential
F
0
. During iterations, we can choose any of the available directions in the subdifferential.
One the possibilities is then to replace the multi-valued sign function by a single-value one:
sgn( g x) =
1 when x > 0
−1 when x < 0
Example file 3.14: sgn.icc
1 Float sgn ( Float x ) { return ( x >= 0) ? 1 : -1; }
Example file 3.15: navier_stokes_upw_dg.h
1 # include " navier_stokes_dg .h"
2 struct navier_stokes_upw_dg : navier_stokes_dg {
3 typedef valarray value_type ;
4 typedef Float float_type ;
5 navier_stokes_upw_dg ( Float Re , const geo& omega , string approx );
6 value_type residue ( const value_type & uh ) const ;
7 void update_derivative ( const value_type & uh ) const ;
8 };
9 # include " navier_stokes_upw_dg . icc"
Example file 3.16: navier_stokes_upw_dg.icc
1 # include " inertia_upw .icc "
2 navier_stokes_upw_dg :: navier_stokes_upw_dg (
3 Float Re1 , const geo& omega , string approx )
4 : navier_stokes_dg ( Re1 , omega , approx ) {}
5
6 navier_stokes_upw_dg :: value_type
7 navier_stokes_upw_dg :: residue ( const value_type & xh ) const {
8 trial u ( Xh ); test v ( Xh );
9 form a = a0 + Re *( inertia ( xh [0] , u , v , qopt )
10 + inertia_upw ( xh [0] , u , v , qopt ));
11 value_type mrh (2);
12 mrh [0] = a * xh [0] + b . trans_mult ( xh [1]) - lh ;
13 mrh [1] = b * xh [0] - c * xh [1] - kh ;
14 return mrh ;
15 }
16 void navier_stokes_upw_dg :: update_derivative ( const value_type & xh ) const {
17 trial du ( Xh ); test v ( Xh );
18 a1 = a0 + Re *( inertia ( xh [0] , du , v , qopt )
19 + inertia_upw ( xh [0] , du , v , qopt )
20 + inertia ( du , xh [0] , v , qopt )
21 + d_inertia_upw ( xh [0] , du , xh [0] , v , qopt ));
22 stokes1 = solver_abtb ( a1 . uu () , b . uu () , c . uu () , mp . uu ());
23 }
The program navier_stokes_cavity_newton_upw_dg.cc is obtained by replacing in
navier_stokes_taylor_newton_dg.cc the string navier_stokes_dg by navier_stokes_upw_dg
(two occurences: in the includes and then in the definition of F). Also replace the include
taylor.icc by cavity_dg.icc that defines the boundary conditions. The compilation and run
are similar.36 Rheolef version 6.6 update 17 September 2013
make navier_stokes_cavity_newton_upw_dg stream_cavity
mkgeo_grid -t 80 > square.geo
./navier_stokes_cavity_newton_upw_dg square P1d 500 1e-15 100 > square-500.field
field -proj square-500.field -field | ./streamf_cavity | \
field -bw -n-iso 30 -n-iso-negative 20 -mayavi -
Computations for higher Renolds numbers are performed by continuation, starting from a previous
computation at lower Re:
./navier_stokes_cavity_newton_upw_dg square P1d 1000 1e-15 100 square-500.field > square-1000.field
./navier_stokes_cavity_newton_upw_dg square P1d 1500 1e-15 100 square-1000.field > square-1500.field
Re = 0 Re = 400
Re = 1000 Re = 2000
Figure 3.2: The discontinuous Galerkin method for the Navier-Stokes problem on the driven cavity
benchmark when k = 1 (80 × 80 grid): stream function isovalues for various Re.Rheolef version 6.6 update 17 September 2013 37
Re = 3200 Re = 5000
Re = 7500 Re = 10000
Figure 3.3: The discontinuous Galerkin method for the Navier-Stokes problem on the driven cavity
benchmark when k = 1 (80 × 80 grid): stream function isovalues for various Re (cont.).38 Rheolef version 6.6 update 17 September 2013
Re = 15000 Re = 20000
Re = 25000
Figure 3.4: The discontinuous Galerkin method for the Navier-Stokes problem on the driven cavity
benchmark when k = 1 (80 × 80 grid): stream function isovalues for various Re (cont.).Part III
Technical appendices
39Appendix A
GNU Free Documentation License
Version 1.1, March 2000
Copyright c 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing
it is not allowed.
*
Preamble
The purpose of this License is to make a manual, textbook, or other written document “free”
in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially. Secondarily, this License
preserves for the author and publisher a way to get credit for their work, while not being considered
responsible for modifications made by others.
This License is a kind of “copyleft”, which means that derivative works of the document must
themselves be free in the same sense. It complements the GNU General Public License, which is
a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software
needs free documentation: a free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to software manuals; it can be used for
any textual work, regardless of subject matter or whether it is published as a printed book. We
recommend this License principally for works whose purpose is instruction or reference.
Applicability and Definitions
This License applies to any manual or other work that contains a notice placed by the copyright
holder saying it can be distributed under the terms of this License. The “Document”, below, refers
to any such manual or work. Any member of the public is a licensee, and is addressed as “you”.
A “Modified Version” of the Document means any work containing the Document or a portion of
it, either copied verbatim, or with modifications and/or translated into another language.
A “Secondary Section” is a named appendix or a front-matter section of the Document that deals
exclusively with the relationship of the publishers or authors of the Document to the Document’s
overall subject (or to related matters) and contains nothing that could fall directly within that
overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary
4142 Rheolef version 6.6 update 17 September 2013
Section may not explain any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal, commercial, philosophical, ethical
or political position regarding them.
The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those
of Invariant Sections, in the notice that says that the Document is released under this License.
The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or
Back-Cover Texts, in the notice that says that the Document is released under this License.
A “Transparent” copy of the Document means a machine-readable copy, represented in a format
whose specification is available to the general public, whose contents can be viewed and edited
directly and straightforwardly with generic text editors or (for images composed of pixels) generic
paint programs or (for drawings) some widely available drawing editor, and that is suitable for
input to text formatters or for automatic translation to a variety of formats suitable for input to
text formatters. A copy made in an otherwise Transparent file format whose markup has been
designed to thwart or discourage subsequent modification by readers is not Transparent. A copy
that is not “Transparent” is called “Opaque”.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo
input format, LATEX input format, SGML or XML using a publicly available DTD, and standardconforming
simple HTML designed for human modification. Opaque formats include PostScript,
PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML
or XML for which the DTD and/or processing tools are not generally available, and the machinegenerated
HTML produced by some word processors for output purposes only.
The “Title Page” means, for a printed book, the title page itself, plus such following pages as are
needed to hold, legibly, the material this License requires to appear in the title page. For works
in formats which do not have any title page as such, “Title Page” means the text near the most
prominent appearance of the work’s title, preceding the beginning of the body of the text.
Verbatim Copying
You may copy and distribute the Document in any medium, either commercially or noncommercially,
provided that this License, the copyright notices, and the license notice saying this License
applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever
to those of this License. You may not use technical measures to obstruct or control the
reading or further copying of the copies you make or distribute. However, you may accept compensation
in exchange for copies. If you distribute a large enough number of copies you must also
follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display
copies.
Copying in Quantity
If you publish printed copies of the Document numbering more than 100, and the Document’s
license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and
legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify you as the publisher of these
copies. The front cover must present the full title with all words of the title equally prominent
and visible. You may add other material on the covers in addition. Copying with changes limited
to the covers, as long as they preserve the title of the Document and satisfy these conditions, can
be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones
listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.Rheolef version 6.6 update 17 September 2013 43
If you publish or distribute Opaque copies of the Document numbering more than 100, you must
either include a machine-readable Transparent copy along with each Opaque copy, or state in
or with each Opaque copy a publicly-accessible computer-network location containing a complete
Transparent copy of the Document, free of added material, which the general network-using public
has access to download anonymously at no charge using public-standard network protocols. If you
use the latter option, you must take reasonably prudent steps, when you begin distribution of
Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the
stated location until at least one year after the last time you distribute an Opaque copy (directly
or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before
redistributing any large number of copies, to give them a chance to provide you with an updated
version of the Document.
Modifications
You may copy and distribute a Modified Version of the Document under the conditions of sections
2 and 3 above, provided that you release the Modified Version under precisely this License, with
the Modified Version filling the role of the Document, thus licensing distribution and modification
of the Modified Version to whoever possesses a copy of it. In addition, you must do these things
in the Modified Version:
• Use in the Title Page (and on the covers, if any) a title distinct from that of the Document,
and from those of previous versions (which should, if there were any, be listed in the History
section of the Document). You may use the same title as a previous version if the original
publisher of that version gives permission.
• List on the Title Page, as authors, one or more persons or entities responsible for authorship
of the modifications in the Modified Version, together with at least five of the principal
authors of the Document (all of its principal authors, if it has less than five).
• State on the Title page the name of the publisher of the Modified Version, as the publisher.
• Preserve all the copyright notices of the Document.
• Add an appropriate copyright notice for your modifications adjacent to the other copyright
notices.
• Include, immediately after the copyright notices, a license notice giving the public permission
to use the Modified Version under the terms of this License, in the form shown in the
Addendum below.
• Preserve in that license notice the full lists of Invariant Sections and required Cover Texts
given in the Document’s license notice.
• Include an unaltered copy of this License.
• Preserve the section entitled “History”, and its title, and add to it an item stating at least
the title, year, new authors, and publisher of the Modified Version as given on the Title
Page. If there is no section entitled “History” in the Document, create one stating the title,
year, authors, and publisher of the Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous sentence.
• Preserve the network location, if any, given in the Document for public access to a Transparent
copy of the Document, and likewise the network locations given in the Document
for previous versions it was based on. These may be placed in the “History” section. You
may omit a network location for a work that was published at least four years before the
Document itself, or if the original publisher of the version it refers to gives permission.44 Rheolef version 6.6 update 17 September 2013
• In any section entitled “Acknowledgements” or “Dedications”, preserve the section’s title, and
preserve in the section all the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
• Preserve all the Invariant Sections of the Document, unaltered in their text and in their
titles. Section numbers or the equivalent are not considered part of the section titles.
• Delete any section entitled “Endorsements”. Such a section may not be included in the
Modified Version.
• Do not retitle any existing section as “Endorsements” or to conflict in title with any Invariant
Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary
Sections and contain no material copied from the Document, you may at your option designate
some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections
in the Modified Version’s license notice. These titles must be distinct from any other section titles.
You may add a section entitled “Endorsements”, provided it contains nothing but endorsements
of your Modified Version by various parties – for example, statements of peer review or that the
text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as
a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage
of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made
by) any one entity. If the Document already includes a cover text for the same cover, previously
added by you or by arrangement made by the same entity you are acting on behalf of, you may not
add another; but you may replace the old one, on explicit permission from the previous publisher
that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use
their names for publicity for or to assert or imply endorsement of any Modified Version.
Combining Documents
You may combine the Document with other documents released under this License, under the terms
defined in section 4 above for modified versions, provided that you include in the combination all
of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant
Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant
Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same
name but different contents, make the title of each such section unique by adding at the end of
it, in parentheses, the name of the original author or publisher of that section if known, or else a
unique number. Make the same adjustment to the section titles in the list of Invariant Sections in
the license notice of the combined work.
In the combination, you must combine any sections entitled “History” in the various original
documents, forming one section entitled “History”; likewise combine any sections entitled “Acknowledgements”,
and any sections entitled “Dedications”. You must delete all sections entitled
“Endorsements.”
Collections of Documents
You may make a collection consisting of the Document and other documents released under this
License, and replace the individual copies of this License in the various documents with a singleRheolef version 6.6 update 17 September 2013 45
copy that is included in the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under
this License, provided you insert a copy of this License into the extracted document, and follow
this License in all other respects regarding verbatim copying of that document.
Aggregation With Independent Works
A compilation of the Document or its derivatives with other separate and independent documents
or works, in or on a volume of a storage or distribution medium, does not as a whole count
as a Modified Version of the Document, provided no compilation copyright is claimed for the
compilation. Such a compilation is called an “aggregate”, and this License does not apply to
the other self-contained works thus compiled with the Document, on account of their being thus
compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if
the Document is less than one quarter of the entire aggregate, the Document’s Cover Texts may
be placed on covers that surround only the Document within the aggregate. Otherwise they must
appear on covers around the whole aggregate.
Translation
Translation is considered a kind of modification, so you may distribute translations of the Document
under the terms of section 4. Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include translations of some or all Invariant
Sections in addition to the original versions of these Invariant Sections. You may include a translation
of this License provided that you also include the original English version of this License.
In case of a disagreement between the translation and the original English version of this License,
the original English version will prevail.
Termination
You may not copy, modify, sublicense, or distribute the Document except as expressly provided
for under this License. Any other attempt to copy, modify, sublicense or distribute the Document
is void, and will automatically terminate your rights under this License. However, parties who
have received copies, or rights, from you under this License will not have their licenses terminated
so long as such parties remain in full compliance.
Future Revisions of This License
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation
License from time to time. Such new versions will be similar in spirit to the present version, but
may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft.
Each version of the License is given a distinguishing version number. If the Document specifies
that a particular numbered version of this License "or any later version" applies to it, you have the
option of following the terms and conditions either of that specified version or of any later version
that has been published (not as a draft) by the Free Software Foundation. If the Document does
not specify a version number of this License, you may choose any version ever published (not as
a draft) by the Free Software Foundation.46 Rheolef version 6.6 update 17 September 2013
*
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document
and put the following copyright and license notices just after the title page:
Copyright c YEAR YOUR NAME. Permission is granted to copy, distribute and/or
modify this document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation; with the
Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being
LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in
the section entitled “GNU Free Documentation License”.
If you have no Invariant Sections, write “with no Invariant Sections” instead of saying which
ones are invariant. If you have no Front-Cover Texts, write “no Front-Cover Texts” instead of
“Front-Cover Texts being LIST”; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these
examples in parallel under your choice of free software license, such as the GNU General Public
License, to permit their use in free software.Bibliography
[1] P. Castillo. Performance of discontinuous Galerkin methods for elliptic PDEs. SIAM J. Sci.
Comput., 24(2):524–547, 2002. 12
[2] B. Cockburn, B. Dong, J. Guzmán, and J. Qian. Optimal convergence of the original DG
method on special meshes for variable transport velocity. SIAM J. Numer. Anal., 48(1):133–
146, 2010. 9
[3] B. Cockburn, G. Kanschat, and D. Schötzau. A locally conservative LDG method for the
incompressible Navier-Stokes equations. Math. Comput., 74(251):1067–1095, 2005. 29
[4] B. Cockburn, G. Kanschat, D. Schötzau, and C. Schwab. Local discontinuous Galerkin
methods for the Stokes system. SIAM J. Numer. Anal., 40(1):319–343, 2002. 21
[5] D. A. di Pietro and A. Ern. Discrete functional analysis tools for discontinuous Galerkin methods
with application to the incompressible Navier-Stokes equations. Math. Comp., 79:1303–
1330, 2010. 21, 25, 29
[6] D. A. di Pietro and A. Ern. Mathematical aspects of discontinuous Galerkin methods. Springer,
2012. 7, 8, 11, 13, 14, 22, 25, 29, 33
[7] Y. Epshteyn and B. Rivière. Estimation of penalty parameters for symmetric interior penalty
Galerkin methods. J. Comput. Appl. Math., 206(2):843–872, 2007. 11
[8] J. S. Hesthaven and T. Warburton. Nodal discontinuous Galerkin methods. Algorithms, analysis
and applications. Springer, 2008. 7
[9] C. Johnson and J. Pitkäranta. An analysis of the discontinuous Galerkin method for a scalar
hyperbolic equation. Math. Comp., 46(173):1–26, 1986. 9
[10] T. E. Peterson. A note on the convergence of the discontinuous Galerkin method for a scalar
hyperbolic equation. SIAM J. Numer. Anal., 28(1):133–140, 1991. 9
[11] G. R. Richter. An optimal-order error estimate for the discontinuous galerkin method. Math.
Comput., 50(181):75–88, 1988. 9
[12] K. Shahbazi. An explicit expression for the penalty parameter of the interior penalty method.
J. Comput. Phys., 205(2):401–407, 2005. 12
[13] G. I. Taylor. On the decay of vortices in a viscous fluid. Philos. Mag., 46:671–674, 1923. 20
47List of example files
cavity_dg.icc, 33
dirichlet_dg.cc, 12
elasticity_taylor_dg.cc, 20
inertia.icc, 25
inertia_cks.icc, 29
inertia_upw.icc, 34
navier_stokes_dg.h, 31
navier_stokes_dg1.icc, 31
navier_stokes_dg2.icc, 33
navier_stokes_taylor_dg.cc, 26
navier_stokes_taylor_newton_dg.cc, 31
navier_stokes_upw_dg.h, 35
navier_stokes_upw_dg.icc, 35
neumann_dg.cc, 14
sgn.icc, 35
stokes_dirichlet_dg.icc, 22
stokes_taylor_dg.cc, 22
taylor.icc, 20
transport_dg.cc, 8
cosinusprod_error_dg.cc, 13
elasticity_taylor_error_dg.cc, 20
navier_stokes_taylor_error_dg.cc, 27
stokes_taylor_error_dg.cc, 23
taylor.icc, 23, 27
48Index
approximation
P0, 8
P1, 23
P2, 23
discontinuous, 7
benchmark
driven cavity flow, 21, 23
embankment, 19
boundary condition
Dirichlet, 11, 13, 21, 23
weakly imposed, 7, 11
broken Sobolev space H1
(Th), 11
convergence
error
versus mesh, 9, 13
form
[[u]]{{∇hv.n}}, 11, 14
[[u]]{{v}}, 8
[[u]][[v]], 8, 11, 14
internal sides of a mesh, 8
operator
average, accross sides, 8, 11
jump, accross sides, 8, 11
penalty parameter, 12
problem
Navier-Stokes, 23
Poisson, 11, 13
Stokes, 21, 23
elasticity, 19
nonlinear, 23
upstream boundary, 7
upwind scheme, 33
upwinding, 8
49
Une introduction aux (semi-)groupes d’automate
Ines Klimann
To cite this version:
Ines Klimann. Une introduction aux (semi-)groupes d’automate. Master. Une introduction
aux (semi-)groupes d’automate, MPRI, 2013, pp.21.
HAL Id: cel-01058503
https://cel.archives-ouvertes.fr/cel-01058503
Submitted on 27 Aug 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Une introduction aux (semi-)groupes d’automate
Ines Klimann klimann@liafa.univ-paris-diderot.fr
MPRI 2012/2013 - filière “Modélisation par automates finis”
1 Introduction
Les groupes d’automate ont été introduits dans les années 1960-1970 par des mathématiciens spécialistes
de la théorie des groupes. Ils ont permis dans les années qui ont suivi de répondre à des conjectures
importantes de théorie des groupes, notamment le problème de Burnside (exemples d’automates très
simples engendrant des groupes de torsion infinis finiment engendrés, c’est-à-dire des groupes infinis
finiment engendrés dont tous les éléments sont d’ordres finis [stage proposé sur cette thématique, encadré
par Matthieu Picantin]) et le problème de Milnor (existence de groupes à croissance intermédiaire).
Les (semi-)groupes d’automate sont un objet d’étude en soi et, comme pour toute famille de (semi-)groupes,
on peut se poser des questions de décidabilité concernant les (semi-)groupes d’automate. Le but de ce
cours est d’explorer une partie de l’existant sur la décidabilité de la finitude de tels (semi-)groupes. Nous
nous centrerons en particulier sur les résultats liés à la structure de l’automate. Il existe d’autres critères
provenant de la théorie géométrique des groupes, que nous n’aborderons pas ici.
Pierre Gillibert a montré très récemment que le problème de finitude des semi-groupes d’automate est
indécidable [5], tandis que le problème de finitude des groupes sur des automates inversibles-réversibles
sur 2 lettres est décidable [7].
Il y a donc deux directions de recherche concernant la finitude des (semi-)groupes d’automates :
– trouver la frontière entre décidable et indécidable [stage proposé sur ce sujet],
– trouver des semi-algorithmes efficaces en moyenne pour tester la finitude ou l’infinitude.
Dans ce cours, nous allons nous concentrer sur le deuxième point : je donnerai des conditions nécessaires
ou suffisantes de finitude et nous verrons comment accélérer les calculs pour les semi-algorithmes existant
déjà [2, 1, 8].
Pour illustrer la difficulté de l’étude de la finitude des (semi-)groupes d’automates, regardons la figure 1 :
ce petit automate engendre un groupe d’ordre 1 494 186 269 970 473 680 896 = 264
· 3
4 ≈ 1.5 × 1021
.
1 2 3
1|3
2|2
3|1
3|1
1|3
2|2
1|2
2|3
3|1
Figure 1 – Automate de Mealy engendrant un groupe d’ordre 1 494 186 269 970 473 680 896.
12 Premiers éléments
2.1 Automates de Mealy
Soit S un ensemble fini non vide. On note TS l’ensemble des applications de S dans S et SS l’ensemble
des permutations de S.
automate Définition 1. En oubliant les états initiaux et finaux, un automate (fini, déterministe et complet) est la
donnée d’un triplet
A, Σ, δ = (δi
: A → A)i∈Σ
,
où
– l’ensemble des états A est un ensemble fini non vide,
– l’alphabet Σ est un ensemble fini non vide,
– les fonctions de transition δi sont des applicationss : δi ∈ TA.
On identifie cet automate à un élément de T
Σ
A.
automate de Définition 2. Un automate de Mealy est un quadruple
Mealy
A, Σ, δ = (δi
: A → A)i∈Σ, ρ = (ρx : Σ → Σ)x∈A
,
tel que (A, Σ, δ) et (Σ, A, ρ) sont des automates.
Les applications ρx sont les fonctions de production de l’automate.
La terminologie standard vue jusqu’à présent est transducteur lettre-à-lettre séquentiel et complet (avec
même alphabet d’entrée et de sortie).
Un automate de Mealy est identifié à un élément de T
Σ
A × T
A
Σ.
Les transitions d’un automate de Mealy sont les
x
i | ρx(i)
−−−−−→ δi(x).
Un automate de Mealy est identifié à son ensemble de transitions.
On utilise la notation graphique usuelle des automates : un graphe dont les sommets sont les états et les
arcs correspondent aux transitions de l’automate, voir figure 2.
0 1
0|0
1|1
1|0
0|1
Figure 2 – Un automate de Mealy.
2.2 (Semi-)groupe engendré par un automate de Mealy et propriétés structurelles
de certains automates
Soit A = (A, Σ, δ, ρ) un automate de Mealy. Cet automate peut être vu comme un automate à deux
bandes définissant une application de Σ
∗
vers Σ
∗
.
Plus formellement, on construit les fonctions de production étendues ρx : Σ∗ → Σ
∗
à partir des fonctions fcts prod.
étendues
2de production ρx : Σ → Σ. Pour cela, on écrit
x
u|v
−−→ y avec u = u1 · · · un et v = v1 · · · vn
pour décrire l’existence d’un chemin
x
u1|v1 −−−→ x1
u2|v2 −−−→ x2 −→ · · · −→ xn−1
un|vn −−−−→ y
dans A.
Par convention, l’image du mot vide est lui-même. L’application ρx préserve la longueur et les préfixes et
satisfait
∀u ∈ Σ, ∀v ∈ Σ
∗
, ρx(uv) = ρx(u)ρδu(x)(v) . (1)
On peut aussi définir les fonctions de production étendues ρx : Σ∗ → Σ
∗ par récurrence à l’aide de la
formule (1).
Par ailleurs, on peut aussi étendre ces fonctions sur A∗ par composition :
ρu = ρu1···un = ρun ◦ · · · ◦ ρu1
.
On peut bien entendu faire de même avec les applications δi
: A∗ → A∗
.
semi-groupe Définition 3. Le semi-groupe hAi+ engendré par A = (A, Σ, δ, ρ) est le semi-groupe des applications
engendré Σ
∗ → Σ
∗
engendré par les fonctions de production étendues ρx, x ∈ A.
Un semi-groupe est un semi-groupe d’automate s’il existe un automate qui l’engendre.
Exemple 1. L’automate de la figure 2 engendre le semi-groupe N. Soit un mot u ∈ {0, 1}
∗
. On interprète
u comme le miroir de l’écriture en base 2 d’un entier, notons u¯ cet entier. Alors : ρ0(u) = u et ρ1(u) = v,
où v¯ = ¯u + 1. L’application associée à l’état 0 est donc l’identité et l’application associée à l’état 1 est
l’incrémentation. Le semi-groupe engendré est donc isomorphe à N.
Si les fonctions de production sont des permutations de Σ, alors les fonctions de production étendues
sont des permutations de Σ
∗
. Elles sont donc inversibles et on peut envisager d’engendrer un groupe.
automate Définition 4. Un automate de Mealy est inversible si ses fonctions de production sont des permutations.
inversible Un automate inversible est identifié à un élément de T
Σ
A × S
A
Σ.
groupe Définition 5. Le groupe hAi engendré par un automate de Mealy inversible A = (A, Σ, δ, ρ) est le
engendré groupe des permutations de Σ
∗
engendré par les fonctions de production étendues ρx, x ∈ A.
Un groupe est un groupe d’automate s’il existe un automate qui l’engendre.
Exemple 2. L’automate de la figure 2 engendre le groupe Z.
automate Définition 6. Un automate de Mealy est réversible si ses fonctions de transition sont des permutations.
réversible
Un automate réversible est identifié à un élément de S
Σ
A × T
A
Σ. Le terme employé habituellement en
théorie des automates est automate à groupe.
Un automate inversible-réversible est identifié à un élément de S
Σ
A × S
A
Σ.
32.3 Opérations sur les automates et liens entre les (semi-)groupes engendrés
2.3.1 Automate inverse
Définition 7. Soit un automate de Mealy inversible A ∈ T
Σ
A × S
A
Σ. Soit A−1 = {x
−1 automate , x ∈ A} une copie
inverse disjointe de l’ensemble A des états. L’automate (de Mealy) inverse A−1 de A est défini par l’ensemble de
transitions
x
−1
j|i
−→ y
−1 ∈ A−1 ⇐⇒ x
i|j
−→ y ∈ A . (2)
La fonction de production ρx associée à l’état x de A est une bijection de Σ
∗
sur Σ
∗
, on peut donc
considérer son inverse ρ
−1
x
: Σ∗ → Σ
∗
associée à l’état x
−1 de A−1
. On a alors
hAi+ = {ρu, u ∈ A
∗
}, hAi = {ρu, u ∈ (A ⊔ A
−1
)
∗
} .
A noter qu’on peut toujours, à partir d’un automate de Mealy, considérer l’ensemble des transitions
inverses de ses transitions (telles que définies par (2)). On note i cette opération. Par i, on obtient toujours
un transducteur lettre-à-lettre avec même alphabet d’entrée et de sortie, mais ce n’est pas nécessairement
un automate de Mealy : c’est un automate de Mealy si et seulement l’automate de départ est inversible,
dans ce cas bien entendu : i(A) = A−1
.
automate Définition 8. Un automate de Mealy inversible est biréversible si lui et son inverse sont réversibles.
biréversible
En particulier, et de façon immédiate, un automate biréversible est inversible-réversible.
Proposition 1. Soit A un automate inversible-réversible. On a
hAi = hA−1
i = hA ⊔ A−1
i = hA ⊔ A−1
i+,
où A ⊔ A−1
est l’automate de Mealy dont l’ensemble des transitions est l’union des ensembles de
transitions de A et A−1
.
De plus, si hAi ou hAi+ est fini, on a
hAi = hAi+.
Démonstration. Le premier point découle directement des définitions.
Supposons que le semi-groupe hAi+ soit fini et soit x un de ses éléments : il existe deux entiers k et
n tels que x
k+n = x
k
. On a donc x
n = 1 dans le groupe hAi. L’inverse x
n−1 de x appartient donc au
semi-groupe hAi+ et on a égalité entre groupe et semi-groupe.
(À noter que cette démonstration est valable pour tout semi-groupe qui est sous-semi-groupe d’un groupe :
un tel semi-groupe fini est toujours un groupe.)
2.3.2 Automate dual
La définition d’un automate de Mealy introduit une symétrie forte entre l’ensemble des états et l’alphabet
de l’automate. De fait on peut inverser leurs rôles.
automate Définition 9. L’automate dual de A = (A, Σ, δ, ρ) est l’automate de Mealy d(A) dont les transitions
dual sont décrites par
i
x|y
−−→ j ∈ d(A) ⇐⇒ x
i|j
−→ y ∈ A . (3)
4Cette définition est consistante : le dual d’un automate de Mealy est bien toujours un automate de Mealy
(c’est-à-dire un transducteur lettre-à-lettre séquentiel et complet).
Un automate est réversible si et seulement si son dual est inversible.
Les propositions 2 et 3 suivantes sont complémentaires l’une de l’autre et nous donnent nos premières
propriétés liées à la finitude sur les (semi-)groupes d’automate.
Proposition 2 ([1]). Soit deux semi-groupes finis G et H. Il existe un automate de Mealy A tel que
hAi+ = G et hd(A)i+ = H.
On a un énoncé similaire sur les groupes.
Démonstration. La preuve est faite dans le cadre des groupes. Elle est similaire pour les semi-groupes.
Commençons par une preuve avec les mains pour comprendre ce qui se passe.
On construit en parallèle l’automate A qui engendre G et l’automate d(A) qui engendre H. On procède
par étape en s’assurant à chaque instant que A et d(A) sont duaux, que A est bien un automate de
Mealy inversible et bien entendu en s’assurant que A engendre G et d(A) engendre H.
Le groupe G étant fini, il est isomorphe à un sous-groupe de Sm pour un certain m. De même, le groupe
H est isomorphe à un sous-groupe de Sn pour un certain n.
A
ρg ∈ Sm g
d(A)
δh ∈ Sn h
Par dualisation on obtient :
A
ρg ∈ Sm g
i δh(i)
idH
d(A)
δh ∈ Sn h
i ρg(i)
idG
Les états de A agissent tous sur les éléments de H et de même les états de d(A) sur les éléments de G,
donc :
A
g
ρg ∈ Sm
idH
i δh(i)
idH
d(A)
h
δh ∈ Sn
idG
i ρg(i)
idG
Les états de A agissent tous sur les éléments de {1, . . . , m} et de même du côté du dual, donc :
5A
g
ρg ∈ Sm
idH
i δh(i)
id
d(A)
h
δh ∈ Sn
idG
i ρg(i)
id
Formalisons la preuve précédente.
Tout groupe fini est un sous-groupe d’un groupe de permutations. Soit Σ1 et A2 deux ensembles finis tels
que G est un sous-groupe de SΣ1
et H est un sous-groupe de SA2
. Soit A1 ⊆ SΣ1 un ensemble de
générateurs de G et Σ2 ⊆ SA2 un ensemble de générateurs de H.
On pose A = A1 × A2 et Σ = Σ1 × Σ2 et on considère l’automate de Mealy d’ensemble d’états A sur
l’alphabet Σ dont les transitions sont données par
(a, b)
(i,j)|(a(i),j)
−−−−−−−−→ (a, j(b)).
On note δ et ρ les fonctions de transition et de production correspondantes. Clairement pour (a, b) ∈
A1 × A2 et (a, b′
) ∈ A1 × A2, on a ρ(a,b) = ρ(a,b′) et on peut noter cette fonction ρa : Σ∗ → Σ
∗
. On a
alors pour tout a ∈ A1 et tout (i1, j1), . . . ,(in, jn) ∈ Σ
∗
:
ρa
(i1, j1)· · ·(in, jn)
= (a(i1), j1) (a(i2), j2) · · · (a(in), jn) .
Ainsi le groupe engendré par (ρa : Σ∗ → Σ
∗
)a∈A1
est isomorphe au groupe engendré par (a : Σ1 →
Σ1)a∈A1
, c’est-à-dire hAi = G. De la même façon hd(A)i = H.
Proposition 3 ([10, 12, 1]). Le (semi-)groupe engendré par A est fini si et seulement si le (semi-)groupe
engendré par son dual d(A) est fini.
Démonstration. La preuve est faite pour les semi-groupes, elle s’étend aux groupes directement par la
proposition 1.
Soit un automate de Mealy A = (A, Σ, δ, ρ). On suppose que le semi-groupe engendré par son dual est
fini.
Fixons un mot w ∈ A∗
, on a :
ρw(u1u2 · · · un) := ρw(u1)ρδu1
(w)(u2)ρδu1u2
(w)(u3)· · · ρδu1u2···un−1
(w)(un) ,
pour tout u1u2 · · · un ∈ Σ
∗
. La fonction de production ρw peut donc être vue comme la fonction de
production d’un transducteur lettre-à-lettre sur le graphe de Cayley de hd(A)i+ par rapport aux lettres
de Σ :
δu δui δu δui
i i|ρδu(w)(i)
Or il n’y a qu’un nombre fini de tels transducteurs, égal au nombre d’applications de hd(A)i+ vers TΣ.
On en conclut
#hAi+ ≤
#Σ(#Σ) (#hd(A)i+)
.
62.3.3 Automates étendus
Soit A un automate inversible-réversible. On a vu en proposition 1 que hAi = hA ⊔ A−1
i, c’est-à-dire
qu’on ne modifie pas le groupe engendré en considérant les états et leurs inverses.
On peut de même considérer les lettres et leurs inverses.
automate Définition 10. Soit A un automate inversible-réversible. L’automate étendu A˜ de A est son extension à
étendu l’ensemble d’états A ⊔ A−1
et à l’alphabet Σ ⊔ Σ
−1
:
A˜ = A
′ ⊔ (A
′
)
−1
où A
′ = d(d(A) ⊔ d(A)
−1
).
Le corollaire suivant est une conséquence des propositions 1 et 3.
Corollaire 1. Soit A un automate inversible-réversible. Les groupes hAi et hAi˜ sont tous deux finis ou
tous deux infinis.
À noter que ces deux groupes ne sont pas nécessairement isomorphes. Par exemple si on considère
l’automate de la figure 3, il engendre un groupe d’ordre 16 et son automate étendu engendre un groupe
d’ordre 64.
a b
0|1
2|3
0|3
2|1
1|0
3|2
1|0
3|2
Figure 3 – Automate inversible-réversible engendrant le groupe K4 ⋊ Z2 d’ordre 16.
2.3.4 Automates d’ordres supérieurs
Définition 11. Soit un automate de Mealy A = (A, Σ, δ, ρ) ∈ T
Σ
A × T
A aut. d’ordre Σ et deux entiers n, k > 0.
supérieur L’automate de Mealy
An,k =
A
n
, Σ
k
,(δx : A
n → A
n
)x∈Σk ,(ρu : Σk → Σ
k
)u∈An
(4)
est l’automate de Mealy d’ordre (n, k) associé à A.
Il s’identifie à un élément de T
Σ
k
An × T
A
n
Σk .
Dans l’équation (4), ρu : An → An est la restriction de ρu : A∗ → A∗
à An, et de même pour δx. On a
en particulier A1,1 = A.
Graphiquement, An,k est un automate dont les états sont des mots de longueur n sur A dans le semigroupe
engendré par A et les actions de ces états correspondent aux actions des éléments du semi-groupe
sur des mots de longueur k sur Σ.
Le semi-groupe engendré par l’automate d’ordre (n, 1) associé à A est un sous-semi-groupe de hAi+. Le
semi-groupe engendré par l’automate d’ordre (1, k) associé à A est isomorphe à hAi+. Le semi-groupe
engendré par l’automate d’ordre (n, k) associé à A est donc isomorphe à un sous-semi-groupe de hAi+.
L’automate An,1 est parfois noté An et appelé puissance n-ème de A.
puissance
d’un aut.
73 Problème du mot
Le premier problème de décision qu’on aborde avec les (semi-)groupes est le problème du mot : peuton
décider si deux mots représentent le même élément du (semi-)groupe ? Ce problème est en général
indécidable [11].
Ce problème est décidable dans le cadre des semi-groupes d’automate, comme montré en proposition 4,
ce qui rend le problème de finitude semi-décidable par énumération.
Lemme 1. Étant donné un automate de Mealy, on peut décider si les fonctions de production étendues
de deux de ses états sont égales.
Je ne détaille pas la preuve ici, mais il suffit de regarder la procédure de minimisation introduite en
section 4 pour s’en convaincre.
Proposition 4. Le problème du mot est décidable pour les (semi-)groupes d’automate.
Démonstration. Soit un automate de Mealy A = (A, Σ, δ, ρ). Si l’identité de Σ
∗ n’est pas une des fonctions
de production étendues des états de A, on peut ajouter un état qui boucle sur lui-même et dont la fonction
de production est l’identité de Σ. Sans perte de généralité on peut donc supposer qu’un des générateurs
du groupe est l’identité, ce qui permet de considérer le problème du mot sur des mots de même longueur.
Soit les générateurs u1, u2, . . . , un, v1, v2, . . . , vn ∈ A pour lesquels on se demande si
u1u2 · · · un
?= v1v2 · · · vn.
On se place dans l’automate puissance An : u1u2 · · · un et v1v2 · · · vn sont des états de cet automate. On
applique donc le lemme 1 pour obtenir le résultat.
Cependant, même pour de petits automates, les (semi-)groupes engendrés peuvent être grands, comme
montré dans l’introduction avec l’automate de la figure 1.
Dans la suite, on s’intéresse à des constructions permettant de décider de la finitude ou de l’infinitude
d’un (semi-)groupe engendré par automate.
4 Critère de finitude : la md-réduction
On construit ici un critère reposant sur la notion de minimisation d’un automate.
congruence Définition 12. Soit un automate de Mealy A = (A, Σ, δ, ρ). Une équivalence ≡ sur A est une congruence
pour A si
∀x, y ∈ A,
[x ≡ y] =⇒ [∀i ∈ Σ, ρx(i) = ρy(i) et δi(x) ≡ δi(y)]
.
L’équivalence de Nérode sur A est la congruence la plus fine pour A.
équivalence
de Nérode
L’équivalence de Nérode est la limite de la suite d’équivalences de plus en plus fines (≡k) définie par
∀x, y ∈ A, x ≡0 y ⇐⇒ ∀i ∈ Σ, ρx(i) = ρy(i),
∀k > 0, x ≡k+1 y ⇐⇒ x ≡k y et ∀i ∈ Σ, δi(x) ≡k δi(y).
L’ensemble des états A étant fini, cette suite est ultimement constante ; de plus, elle est constante dès que
deux termes consécutifs sont égaux. Sa limite est donc calculable.
On note [x] la classe d’équivalence d’un état x ∈ A pour l’équivalence de Nérode.
8automate Définition 13. Soit un automate de Mealy A = (A, Σ, δ, ρ) et ≡ l’équivalence de Nérode associée à A.
minimisé Le minimisé de A est l’automate de Mealy A/≡ = (A/≡, Σ,
˜δ, ρ˜), où, pour tout état x ∈ A et toute lettre
i ∈ Σ, on a :
˜δi([x]) = [δi(x)] et ρ˜[x](i) = ρx(i).
Un automate est minimal s’il est équivalent à son minimisé.
La définition est consistante avec la définition classique de minimisation sur les automates booléens : la
partition initiale a lieu ici en fonction des fonctions de production ; pour rappel, dans le cas des automates
booléens elle se fait sur le critère états finaux / états non finaux.
Proposition 5. Un automate de Mealy et son minimisé engendrent le même semi-groupe.
Démonstration. On montre par récurrence sur n que ρx et ρ˜[x] sont égaux sur Σ
n.
Laissé en exercice.
On remarque que le dual d’un minimisé n’est pas nécessairement minimal. On introduit ici une notion de
minimalité symétrique entre un automate et son dual.
Définition 14. Une paire d’automates duaux est md-réduite si chacun des deux automates de la paire est
paire / aut.
md-réduit(e)
minimal. Par extension, on dira qu’un automate est md-réduit si la paire qu’il forme avec son dual est
md-réduite.
La md-réduction d’une paire d’automates duaux consiste à réduire alternativement chacun des deux auto- md-réduction
mates jusqu’à ce que la paire soit md-réduite.
Exemple 3. Un exemple de md-réduction est donné en figure 4.
Même si elle ne le semble pas au premier abord, la md-réduction est confluente [1]. Ce fait n’est pas crucial
pour la suite, mais facilitera les tournures de phrase en nous permettant de donner la définition suivante.
Définition 15. La paire d’automates de Mealy obtenue par md-réduction d’un couple d’automates duaux
md-réduit est appelée son md-réduit.
Théorème 1 ([1]). Une paire d’automates duaux engendre des (semi-)groupes finis si et seulement si son
md-réduit engendre des (semi-)groupes finis.
Démonstration. Laissée en exercice.
On note par ailleurs que dmd(A) est un quotient de A. Donc si le groupe engendré par A est fini, celui
engendré par dmd(A) est plus petit.
Le théorème 1 n’est pas en lui-même un critère de finitude puisqu’il faut savoir si le md-réduit obtenu
engendre des groupes finis. Néanmoins il peut être efficacement combiné à d’autres critères de finitude.
On déduit de ce théorème une condition suffisante de finitude effective donnée par le corollaire 2, en
remarquant que l’automate trivial engendre le groupe trivial.
Corollaire 2 ([1]). Si la md-réduction d’une paire d’automates de Mealy duaux aboutit à une paire d’automates
triviaux, les automates de départ engendrent des (semi-)groupes finis.
La démonstration de la proposition 6 ci-dessous est une application directe de ce critère.
Il existe des paires md-réduites non triviales d’automates duaux qui engendrent des (semi-)groupes finis.
Un exemple est donné en figure 5.
9a b
0|1
2|3
0|3
2|1
1|0
3|2
1|0
3|2
d
0 1
3 2
a|a
b | b
a| b
a|a
b | b
a| b
b |a
b |a
m
13 02
a|a
b | b
a| b
b |a
d
a b
02|13
02|13
13|02 13|02
m
ab
13|02
02|13
d
13 02
ab |ab
ab |ab
m
0123
ab |ab
d
ab
0123|0123
Figure 4 – La md-réduction d’une paire d’automates de Mealy duaux.
a b
1|0
0|1
1|1
0|1
Figure 5 – Automate md-réduit (non trivial) qui engendre un semi-groupe de taille 6.
5 Critère structurel de finitude : branchement limité
Antonenko [2] s’est intéressé au problème suivant : quels sont les automates de Mealy tels que pour toutes
les fonctions de production possibles, le semi-groupe engendré est fini ?
Les critères développés dans [2] reposent sur la structure de l’automate. La proposition 7 donne le résultat
général. Il est cependant plus intuitif d’étudier en premier la proposition 6.
état sans Définition 16. Dans un automate de Mealy A = (A, Σ, δ, ρ), l’état x ∈ A est sans branchement si son
branchement image par une fonction de transition ne dépend pas de la lettre lue, c’est-à-dire :
∀i, j ∈ Σ, δi(x) = δj(x).
Graphiquement cela signifie qu’une seule transition part de l’état x, étiquetée par toutes les lettres de
l’alphabet Σ.
10aut. sans Définition 17. Un automate de Mealy A = (A, Σ, δ, ρ) est sans branchement si tous ses états sont sans
branchement branchement.
On pourra alors en abusant légèrement noter δ(x) l’image d’un état x ∈ A par une des fonctions de
transition δi
.
Proposition 6 ([2]). Un automate de Mealy sans branchement engendre un (semi-)groupe fini.
Démonstration. Soit un automate de Mealy sans branchement. Tous les états de son dual sont équivalents,
le md-réduit de la paire est donc une paire d’automates triviaux et on peut conclure par le corollaire 2.
[Ce n’est pas la démonstration donnée dans [2].]
Le résultat de la proposition 6 s’étend aux automates dont aucun branchement n’est suivi d’un cycle.
aut. à branch Définition 18. Un automate de Mealy A = (A, Σ, δ, ρ) est à branchement limité si tous ses états t
limité atteignables à partir d’un cycle sont sans branchement.
Proposition 7 ([2]). Un automate de Mealy à branchement limité engendre un (semi-)groupe fini.
Démonstration. avec les mains
Quitte à dérouler un peu les cycles, on peut supposer que toutes les branches qui précèdent l’entrée dans
un cycle ont même longueur b. En s’autorisant à agrandir ces mêmes cycles (en les parcourant un certain
nombre de fois), on peut également supposer que tous les cycles ont même longueur ℓ.
On découpe alors un mot en ses b premières lettres, puis en paquets de ℓ lettres consécutives. Sur les b
premières lettres, il n’y a qu’un nombre fini d’actions possibles. Sur la suite du mot : sur chaque paquet de
ℓ lettres, il n’y a qu’un nombre fini d’actions possibles et au bout d’un moment on a forcément vu toutes
les actions qui devaient apparaître.
Formalisation laissée en exercice.
Bien entendu ce critère ne couvre pas tous les automates engendrant des (semi-)groupes finis. Par exemple,
l’automate de la figure 1 n’est pas à branchement limité et engendre un semi-groupe fini.
Ce critère est maximal dans le sens où pour tout automate qui n’est pas à branchement limité, il existe
une fonction de production telle que le groupe engendré est infini.
La démonstration se fait en traitant séparément les trois cas suivants :
(i) il existe un cycle C étiqueté uniquement par des 0 et tel qu’un des états de ce cycle branche vers un
état extérieur à C ;
(ii) il existe un cycle C étiqueté uniquement par des 0 et tel qu’un des états de ce cycle branche vers un
état de C ;
(iii) les cycles qui possèdent des états qui branchent ne sont pas uniquement étiquetés par des 0.
Montrons le cas (i) pour donner une idée :
x1
x2
x0
xn−1
xn−2
x
′
0|0
0|0
0|0
0|0
0|0
0|0
i|1 1|0
0|0
11Soit deux entiers k et ℓ tels que k + ℓ soit divisible par n. Alors ρxk
(0ℓ1v) = 0ℓ+11v
′
.
On montre que l’élément suivant du groupe engendré par l’automate est d’ordre infini :
ρ¯ = ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1 ◦ ρx0
.
En effet pour un entier k quelconque, on a
ρ¯(0kn1 · · ·) = ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1 ◦ ρx0
(0kn1 · · ·)
= ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1
(0kn+11 · · ·)
= . . .
= 0(k+1)n
1 · · ·
Donc au final :
ρ¯
k
(1ω
) = 0kn1 · · · .
6 Critère d’infinitude : graphe en hélice
Dans cette partie nous travaillons exclusivement sur des automates inversibles-réversibles. Nous introduisons
de nouvelles représentations d’automates de Mealy permettant de considérer un automate et son dual
simultanément.
graphe en Définition 19. On appelle graphe en hélice d’un automate de Mealy A = (A, Σ, δ, ρ) le graphe de
hélice sommets A × Σ et d’arcs les (x, i) → (δi(x), ρx(i)).
On remarque qu’on peut définir un graphe en hélice pour tout transducteur lettre-à-lettre ayant même
alphabet d’entrée et de sortie. Un tel transducteur est un automate de Mealy si et seulement si de tout
sommet part un unique arc.
Proposition 8. Si le groupe engendré par un automate inversible-réversible est fini, alors son graphe en
hélice est une union de cycles disjoints.
Pour montrer ce résultat, nous avons besoin d’une autre représentation d’une paire d’automates duaux.
La transition x
i | ρx(i)
−−−−−→ δi(x) est notée
i
x δi(x)
ρx(i)
.
Cette notation est appelée transition en croix. Un automate de Mealy est identifié à l’ensemble de ses transition en
croix transitions en croix (de cardinalité |A| × |Σ|).
Un chemin dans un automate de Mealy A (resp. dans son dual d(A)) peut être représenté par un
diagramme en croix horizontal (resp. vertical). On peut également considérer des diagrammes en croix diagramme
en croix rectangulaires de dimension n × k sur lesquels on peut lire les fonctions de production de l’automate
associé An,k d’ordre (n, k) et de son dual.
Par exemple, le diagramme en croix suivant :
i1 ik
x1 . . . y1
.
.
.
.
.
.
xn . . . yn
j1 jk
correspond dans An,k à
ρx1···xn
(i1 · · ·ik) = j1 · · · jk,
δi1···ik
(x1 · · · xn) = y1 · · · yn .
12Démonstration de la proposition 8. Soit A = (A, Σ, δ, ρ) un automate inversible-réversible qui engendre
un groupe fini. La proposition 3 nous permet d’affirmer que l’automate dual d(A) engendre également un
groupe fini.
Si on considère l’application qui va de l’ensemble fini des sommets d’un graphe en hélice dans lui-même
et qui à un sommet associe son unique successeur dans ce graphe, le graphe en hélice est une union de
cycles disjoints si et seulement si cette application est bijective, donc si et seulement si elle est surjective,
c’est-à-dire qu’un graphe en hélice est une union de cycles disjoints si et seulement si chaque sommet de
ce graphe possède un prédécesseur.
Soit un état x ∈ A et une lettre i ∈ Σ. Montrons que le sommet (x, i) du graphe en hélice possède un
prédécesseur. Il existe deux entiers m, n > 0 tels que ρ
m
x = ρxm = idhAi et δ
n
i = δin = idhd(A)i
. Cela
implique l’existence d’une transition x
m i
n|i
n
−−−→ x
m dans l’automate associé d’ordre (m, n). Le diagramme
en croix correspondant s’écrit :
n
i i
x . . . x
m
.
.
.
.
.
.
x . . . x
i i
.
Le coin sud-est donne un prédécesseur à (x, i).
La condition de la proposition 8 n’est pas suffisante : il existe des automates dont le graphe en hélice est
une union de cycles disjoints et dont on sait par ailleurs qu’ils engendrent un groupe infini, comme par
exemple l’automate d’Alešin donné en figure 6.
a
b
c
0|1
1|0
0|1
1|0
0|0
1|1
Figure 6 – L’automate d’Alešin engendre un groupe infini. Son graphe en hélice est un cycle.
De fait, la proposition 9 caractérise de façon très simple l’ensemble des automates inversibles-réversibles
dont le graphe en hélice est une union de cycles disjoints.
Proposition 9. Soit A un automate inversible-réversible. Les propriétés suivantes sont équivalents :
(i) A est biréversible,
(ii) didi(A) est un automate de Mealy,
(iii) le graphe en hélice de A est une union de cycles disjoints.
Démonstration.
(i) ⇒ (ii) A est biréversible, cela signifie qu’il est inversible et i(A) est réversible, ce qui entraîne que
di(A) est inversible. A nouveau, on peut donc prendre l’inverse puis le dual et on obtient que
didi(A) est un automate de Mealy.
13(ii) ⇒ (i) L’automate A étant supposé inversible-réversible, di(A) est bien un automate de Mealy.
Par ailleurs, didi(A) étant un automate de Mealy, idi(A) est également un automate de Mealy.
Comme c’est l’inverse de di(A), on en déduit que di(A) est inversible, donc i(A) réversible. Ce qui
entraîne que A est biréversible.
(ii) ⇔ (iii) Dans le graphe en hélice d’un automate de Mealy, il part exactement un arc de chaque
sommet. Le graphe en hélice d’un automate de Mealy est donc une union de cycles disjoints si et
seulement s’il arrive au plus un arc par sommet.
On définit le graphe G d’ensemble de sommets A−1 × Σ
−1
et d’arcs (y
−1
, j−1
) → (x
−1
, i−1
) si
(x, i) → (y, j) appartient au graphe en hélice H de A.
Le graphe G est le graphe en hélice de didi(A) :
– si didi(A) est un automate de Mealy, chaque sommet de G possède un successeur, donc chaque
sommet de H possède un prédecesseur et H est une union de cycles disjoints,
– si H est une union de cycles disjoints, il en est de même pour G et on déduit de la remarque
qui suit la définition 19 que didi(A) est un automate de Mealy.
On en déduit un critère d’infinitude structurel, très simple à vérifier :
Corollaire 3. Tout automate inversible-réversible qui n’est pas biréversible engendre un groupe infini.
7 Condition nécessaire et suffisante de finitude (non effective)
Dans cette partie nous travaillons exclusivement sur des automates inversibles-réversibles. Le critère pré-
senté ici n’est à ce jour pas effectif, cette section sert donc quelque peu du cadre général de ce cours,
mais les techniques utilisées dans les preuves peuvent s’avérer intéressantes dans d’autres occasions.
graphes en Définition 20. Soit un automate de Mealy A et deux entiers n, k > 0. Le graphe en hélice d’ordre (n, k)
hélice de A est le graphe en hélice de l’automate de Mealy d’ordre (n, k) associé à A.
On parle des graphes en hélice de A pour désigner l’ensemble de ses graphes en hélice d’ordre quelconque.
On peut noter que le graphe en hélice de A tel que défini à la définition 19 est le graphe en hélice
d’ordre (1, 1) de A.
Théorème 2. Le groupe engendré par un automate inversible-réversible est fini si et seulement si les
graphes en hélice de son automate étendu sont des unions de cycles disjoints uniformément bornés.
Pour montrer le théorème 2, nous allons utiliser des résultats intermédiaires.
Lemme 2. Les graphes en hélice d’un automate de Mealy sont des unions de cycles disjoints si et
seulement si son graphe en hélice d’ordre (1, 1) est une union de cycles disjoints.
La démonstration de ce lemme repose sur le même type d’argument que celle de la proposition 8 et est
laissée en exercice.
Proposition 10. Si un automate inversible-réversible engendre un groupe fini, alors les cycles des graphes
en hélices de son automate étendu sont uniformément bornés.
Démonstration. Soit A un automate inversible-réversible engendrant un groupe fini et A˜ son automate
étendu. D’après le corollaire 1, le groupe engendré par A˜ est fini et d’après le lemme 2, ses graphes en
hélices sont des unions de cycles disjoints.
D’après la proposition 3, le groupe hd(A˜)i est également fini.
14Soit C, un cycle d’un graphe en hélice de A˜ et (u, v) ∈ (A ⊔ A−1
)
∗ × (Σ ⊔ Σ
−1
)
∗ un sommet de
ce cycle. Chaque sommet de C est de la forme (h(u), g(v)), où g (resp. h) est un élément de hAi˜
(resp. hd(A˜)i). Comme les sommets sont deux à deux distincts, la longueur du cycle C est bornée par
#hAi × ˜ #hd(A˜)i.
Proposition 11. Si les cycles des graphes en hélice de l’automate étendu d’un automate inversible-réversible
sont uniformément bornés, alors le groupe engendré par cet automate est fini.
Démonstration. La démonstration de cette proposition repose sur un résultat poussé de théorie des groupes
qui permet d’affirmer qu’un groupe d’automate dont les ordres des éléments sont bornés1
est fini.
On dit qu’un mot sur les générateurs d’un groupe est unitaire s’il représente l’identité dans le groupe. mot unitaire
Le groupe hAi˜ étant infini, les ordres de ses éléments ne sont pas bornés : soit il existe un mot x ∈
(A ⊔ A−1
)
∗
tel que ρx est d’ordre infini, soit il existe une suite de mots (xn)n∈N ⊆ (A ⊔ A−1
)
∗
telle
que la suite des ordres des (ρxn
)n∈N est strictement croissante. Nous allons traiter le deuxième cas (le
premier est analogue).
On note kn l’ordre de l’élément ρxn
: pour tout k, 1 ≤ k < kn, il existe un mot uk ∈ (Σ ⊔ Σ
−1
)
∗
tel que
ρ
k
xn
(uk) = u
′
k
6= uk.
Comme hd(A˜)i est un groupe, le mot uk peut être étendu en un mot unitaire ukvk. On pose alors
wn = u1v1 · · · ukn−1vkn−1.
Par construction ρxn
(wn) = u
′
1
· · · 6= wn.
Par ailleurs u1v1 étant unitaire, on a également
ρ
2
xn
(wn) = ρ
2
xn
(u1v1)ρ
2
xn
(u2v2 · · · ukn−1vkn−1)
= ρ
2
xn
(u1v1)u
′
2
· · · 6= wn .
De la même façon, on montre que pour tout k < kn, on a ρ
k
xn
(wn) 6= wn.
Dans le graphe en hélice de A˜ d’ordre (|xn|, |wn|), on considère le cycle contenant le nœud (xn, wn). Le
mot wn étant unitaire, les successeurs de (xn, wn) dans ce cycle sont : (xn, ρxn
(wn)), (xn, ρ2
xn
(wn)),
. . . Ce cycle est donc de longueur kn. Comme (kn)n diverge vers l’infini, les longueurs des cycles des
graphes en hélice de A˜ ne sont pas uniformément bornées.
Le théorème 2 est alors un corollaire des propositions 10 et 11.
8 Accélération des semi-algorithmes existants
Cette section décrit comment la minimisation permet d’accélérer substantiellement les procédures existantes
servant à tester la finitude et à caluler la croissance ou l’ordre d’un (semi-)groupe fini [8].
Notre point de départ sont les deux paquets GAP [4] suivants : FR développé par Bartholdi [3] et automgrp
développé par Muntyan et Savchuk [9].
8.1 Croissance d’un (semi-)groupe d’automate
La croissance d’un (semi-)groupe correspond à la vitesse à laquelle celui-ci va grossir lorsqu’on compose
les éléments au fur et à mesure. Donnons une définition plus formelle. Soient un automate de Mealy
15A = (A, Σ, δ, ρ) et un mot x ∈ A∗
. La longueur de ρx, notée |ρx|, est la longueur minimale d’un mot longueur
équivalent à x :
|ρx| = min{n | ∃y ∈ A
n
, ρx = ρy} .
La fonction de croissance de l’automate A est la série formelle qui énumère les éléments du semigroupe fonction de
croissance en fonction de leur longueur :
X
g∈hAi+
t
|g| =
X
n∈N
#{g ∈ hAi+ ; |g| = n} t
n
.
On s’intéresse au calcul des termes de cette série. Les paquets FR et automgrp utilisent l’énumération ; cette
technique fonctionne pour n’importe quel (semi-)groupe dans lequel le problème du mot est résoluble : on
part des générateurs et on engendre de nouveaux éléments étape par étape, jusqu’à ne plus en obtenir. Le
fait que le groupe soit engendré par un automate ne sert qu’à apporter une solution au problème du mot.
On peut en fait utiliser complètement et en permanence la structure d’automate et la puissance de la
minimisation pour obtenir de manière globale tous les éléments de longueur n à partir des éléments de
longueur n − 1. A chaque entier n, on associe un automate de Mealy An dont les états sont exactement
les éléments de longueur au plus n :
An = m(An−1 × m(A
′
)) et A1 = m(A) ,
où A′ = A si l’identité est un générateur de A, et l’union de A et de l’automate trivial sinon.
AutomatonGrowth := function ( arg )
local aut , radius , growth , sph , curr , next , r;
aut := arg [1]; # automate de Mealy
if Length ( arg ) >1 then radius := arg [2];
else radius := infinity ;
fi;
r := 0;
curr := TrivialMealyMachine ([1]);
next := Minimized ( aut );
aut := Minimized ( next + TrivialMealyMachine ( Alphabet ( aut )));
sph := aut !. nrstates - 1; # nombre d ’ etats non triviaux
growth := [ next !. nrstates - sph ];
while sph >0 and r < radius
do Add ( growth , sph );
r := r +1;
curr := next ;
next := Minimized ( next * aut );
sph := next !. nrstates - curr !. nrstates ;
od;
return growth ;
end;
L’appel AutomatonGrowth(aut) permet de calculer la croissance du semi-groupe hauti+, tandis que l’appel
AutomatonGrowth(aut+aut^-1) calcule la croissance du groupe hauti.
Résultats expérimentaux. Nous commençons par faire tourner AutomatonGrowth et WordGrowth (paquet
FR) sur l’automate de Grigorchuk. Pour un rayon de 10, AutomatonGrowth est nettement plus rapide, 76 ms
contre 9 912 ms 2
. La raison en est simple : WordGrowth appelle la procédure de minimisation 57 577 fois
tandis que AutomatonGrowth ne l’appelle que 12 fois :
1. Il existe des groupes d’automate infinis dont les éléments sont tous d’ordre fini, par exemple le groupe engendré par l’automate
de Grigorchuk [6].
2. Programmes exécutés sur un processeur Intel Core 2 Duo 3,06 GHz.
16gap > aut := GrigorchukMachine ;; f := sgp ( aut );; radius := 10;;
gap > ProfileFunctions ([ Minimized ]);
gap > WordGrowth (f , radius ); time ;
[ 1, 4, 6, 12 , 17 , 28 , 40 , 68 , 95 , 156 , 216 ]
9912
gap > DisplayProfile ();
count self / ms chld / ms function
57577 7712 0 Minimized
7712 TOTAL
gap > ProfileFunctions ([ Minimized ]);
gap > AutomatonGrowth ( aut , radius ); time ;
[ 1, 4, 6, 12 , 17 , 28 , 40 , 68 , 95 , 156 , 216 ]
76
gap > DisplayProfile ();
count self / ms chld / ms function
12 72 0 Minimized
72 TOTAL
Comparons maintenant les temps d’exécution des diverses implémentations pour les premiers termes de
la fonction de croissance des 335 automates de Mealy biréversibles à 3 lettres et 3 états (à isomorphisme
près). Certains résultats n’apparaissent pas dans la table 1 faute d’avoir pu les obtenir en temps raisonnable.
Table 1 – Temps moyen (en ms)
rayon 1 2 3 4 5 6 7
WordGrowth – FR 3,4 29,0 555,0 8 616,5 131 091,4 2 530 170,3 ?
Growth – automgrp 0,7 2,8 16,9 158,9 1 909,0 22 952,8 ?
AutomatonGrowth 0,6 1,8 5,9 28,9 187,3 1 005,9 7 131,4
8.2 Ordre d’un (semi-)groupe
FR et automgrp implémentent des procédures de calcul de l’ordre d’un (semi-)groupe d’automate fini. Ces
deux paquets utilisent des approches tout à fait orthogonales. L’implémentation décrite ici affine l’approche
de FR and reste orthogonale à celle de automgrp.
L’implémentation de automgrp. Le paquet GAP automgrp définit la function LevelOfFaithfulAction
qui permet de calculer—parfois de façon extrêmement efficace—l’ordre du groupe engendré. Le principe
est le suivant : soient A un automate de Mealy inversible sur l’alphabet Σ et Gk le groupe engendré
par les restrictions à Σ
k des fonctions de productions étendues. Si #Gk = #Gk+1 pour un certain k,
alors hAi est fini, d’ordre #Gk. Cette fonction peut être facilement adaptée à un automate de Mealy non
inversible.
LevelOfFaithfulAction n’est pas utilisable pour calculer la fonction de croissance : à chaque étape on
calcule un quotient du semi-groupe. Mais c’est une bonne stratégie pour calculer l’ordre du semi-groupe.
De plus cette méthode profite du fait que GAP a en quelque sorte été écrit pour manipuler des permutations
de groupes finis.
L’implémentation de FR et la nouvelle implémentation. Tout algorithme qui permet de calculer la
fonction de croissance peut être utilisé pour calculer l’ordre d’un (semi-)groupe fini. Il suffit de calculer la
fonction de croissance jusqu’à trouver un coefficient nul. C’est l’approche utilisée dans FR. Comme nous
avons proposé, dans la section précédente, une nouvelle implémentation pour la fonction de croissance,
nous obtenons directement une nouvelle procédure pour calculer l’ordre. Appelons-la AutomSGrOrder.
17Résultats expérimentaux. L’orthogonalité des deux approches précédentes peut être illustrée par l’automate
de la figure 1. Ni la fonction Order de FR, ni AutomSGrOrder ne sont capables de calculer
l’ordre du groupe, alors que automgrp, via LevelOfFaithfulAction, permet d’obtenir le résultat en seulement
14 338 ms. D’un autre côté, AutomSGrOrder calcule l’ordre du semi-groupe engendré par le dual
en 17 ms, alors qu’une adaptation de LevelOfFaithfulAction (aux automates de Mealy non inversibles)
met 2 193 ms (ce semi-groupe est d’ordre 234).
8.3 Finitude
Toute procédure qui calcule l’ordre d’un (semi-)groupe d’automate produit une procédure de semi-décision
pour le problème de finitude. Les deux paquets FR and automgrp appliquent un certain nombre de critères
de finitude ou d’infinitude puis essayent en dernier recours de calculer l’ordre du groupe.
On peut saupoudrer ces procédures de minimisation : on remplace le (semi-)groupe dont on veut dé-
cider s’il est fini ou non successivement par d’autres (semi-)groupes qui sont finis si et seulement si le
(semi-)groupe d’origine l’était. Il est possible d’incorporer cette astuce pour obtenir deux nouvelles implé-
mentations, l’une dans l’esprit de FR et l’autre dans l’esprit de automgrp. Ces nouvelles implémetations
sont plus efficaces que les précédentes, de plusieurs ordres de grandeur. Les deux approches restent utiles
car selon le cas l’une ou l’autre sera la plus rapide.
Les nouvelles impleméntations La conception de la procédure IsFinite1 est consistente avec celle
de AutomatonGrowth. Ainsi IsFinite1 est beaucoup plus proche de FR que de automgrp. La version écrite
ici fonctionne en parallèle sur l’automate et son dual.
IsFinite1 := function ( aut , limit )
local radius , dual , curr1 , next1 , curr2 , next2 ;
radius := 0;
aut := MDReduced ( Prune ( aut )); # automate elague puis md - reduit
dual := DualMachine ( aut );
curr1 := MealyMachine ([[1]] ,[()]);
curr2 := curr1 ;
next1 := aut ;
next2 := dual ;
while curr2 !. nrstates <> next2 !. nrstates and radius < limit
do radius := radius + 1;
curr1 := next1 ;
next1 := Minimized ( next1 * aut );
if curr1 !. nrstates <> next1 !. nrstates
then curr2 := next2 ;
next2 := Minimized ( next2 * dual );
else return true ;
fi;
od;
if curr2 !. nrstates = next2 !. nrstates then return true ; fi;
return fail ;
end;
La procédure IsFinite2 est une amélioration de LevelOfFaithfulAction (automgrp) : la minimisation
est faite sur le dual. Cette procédure peut être améliorée en parallélisant son exécution sur l’automate et
son dual.
IsFinite2 := function ( aut , limit )
local Fonc1 , Fonc2 , next , cs , ns , lev ;
aut := MDReduced ( Prune ( aut ));
if IsInvertible ( aut ) then Fonc1 := Group ;
Fonc2 := PermList ;
18else Fonc1 := Semigroup ;
Fonc2 := Transformation ; fi;
lev := 0;
cs := 1;
ns := Order ( Fonc1 ( List ( aut !. output , Fonc2 )));
aut := DualMachine ( aut );
next := aut ;
while cs < ns and lev < limit
do
lev := lev +1;
cs := ns ;
next := Minimized ( next * aut );
ns := Order ( Fonc1 ( List ( DualMachine ( next )!. output , Fonc2 )));
od;
if cs = ns then return true ; else return fail ; fi;
end;
Table 2 – Temps moyen (en ms) pour détecter la finitude de (semi-)groupes
2 lettres 3 états 2 lettres 4 états 3 lettres 3 états
IsFinite – FR 0,68 36,36 1 342,12
IsFinite – automgrp 0,81 1,79 3,78
IsFinite1 0,49 0,52 0,61
IsFinite2 0,49 0,62 0,70
Résultats expérimentaux. La table 2 présente le temps moyen pour détecter la finitude de (semi-)groupes
engendrés par des automates de Mealy inversibles ou réversibles sur p lettres et q états, avec p+q ∈ {5, 6}.
Pour que ces comparaisons soient équitables, ce qui est donné est le temps minimal pour un automate et
son dual.
9 Cas à deux états
Si on fixe le nombre d’états et la taille de l’alphabet, le nombre d’automates de Mealy correspondant
est potentiellement très grand : il y a q
qp(p!)q
automates de Mealy inversibles à q états et p lettres. Si
on regarde à isomorphisme de structure près, il y a 76 automates de Mealy à 2 états et 2 lettres et
10 766 772 automates de Mealy à 3 états et 3 lettres. Engendrer ces automates est un défi en soi.
L’accélération des calculs permet de faire des tests systématiques sur de grandes familles d’automates. Ces
tests permettent de vérifier et/ou d’élaborer des conjectures. Voici deux conjectures établies par calculs
dans [8] :
Conjecture 1. Tout groupe fini engendré par un automate biréversible sur p lettres et q états est d’ordre
au plus #hBp,qi = p!
q
, où :
y
x
ρx = (1, 2, . . . , p)
ρy = (1, 3, . . . , p)
∀z 6∈ {x, y}, ρz = ( )
Bp,q :
Si cette conjecture se révèle vraie, la problème de finitude serait décidable pour les automates biréversibles.
Une autre conjecture (devenue depuis un résultat) obtenue par expérimentation :
19Théorème 3. Un automate de Mealy réversible à deux états engendre un semi-groupe fini ou libre.
Nous allons montrer ici une partie de ce résultat.
Analysons la structure des composantes connexes des puissances successives de l’automate de Mealy A.
Pour m > 0, u, v ∈ Am et x, y ∈ A, s’il existe un chemin de ux vers vy dans Am+1, alors il existe un
chemin de u vers v dans Am. Donc si An n’est pas connexe, il en est de même de toutes les puissances
suivantes de A. Il existe donc au plus un entier n tel que An est connexe et An+1 ne l’est pas. Appelons-le
degré de connexion de A. Par convention, si A n’est pas connexe, son degré de connexion est nul et il a degré de
connexion un degré de connexion infini si toutes ses puissances sont connexes.
On peut remarquer que l’automate Baby Aleshin (voir figure 7) est réversible, possède trois états et a un
degré de connexion égal à 2 ; il engendre le semi-groupe infini non libre Z
∗3
2 = Z2 ∗ Z2 ∗ Z2 [10]. Ainsi le
théorème 3 ne s’étend pas à des ensembles d’états plus grands.
a
b
c
0|1
1|0
0|0
1|1
0|0
1|1
Figure 7 – L’automate Baby Aleshin engendre le groupe Z
∗3
2 = Z2 ∗ Z2 ∗ Z2 [10].
Proposition 12. Le degré de connexion d’un automate de Mealy réversible à deux états est fini si et
seulement s’il engendre un semi-groupe fini.
Ce résultat se montre par une série de petits résultats.
Lemme 3. Soit un automate de Mealy réversible A ayant au moins deux états. Si A engendre un semigroupe
possédant des éléments de torsion, alors son degré de connexion est fini.
Idée. Notons A l’ensemble des états de A. Si hAi+ possède des éléments de torsion, alors il existe un
mot u ∈ A+ et deux entiers n ≥ 0 et k > 0 tels que u
n et u
n+k
sont équivalents.
On montre que les états de la composante connexe contenant u
n+2k
sont tous de la forme vw2
, où
|v| = |u|
n et |w| = |u|
k
, ce qui entraîne que A(n+2k)|u| n’est pas connexe.
Dans la suite de cette sous-section, A = (A, Σ, δ, ρ) est un automate de Mealy réversible à deux
états (A = {x, y}), de degré de connexion fini n.
Lemme 4. Soit C une composante connexe de Am, pour un certain m et soit u ∈ Am un état de C. La
composante connexe de ux est de taille #C si elle ne contient pas uy et 2#C si elle contient uy.
Démonstration. Soit D la composante connexe contenant ux : v ∈ Am appartient à C si et seulement s’il
existe z ∈ A tel que vz appartienne à D, d’où : N ≤ #D ≤ 2N.
Soient v appartenant à C et z, z¯ ∈ A, z 6= ¯z : ux et vz appartiennent à la même composante connexe si
et seulement si uy et vz¯ appartiennent à la même composante connexe. D’où le résultat.
Lemme 5. Soit un automate de Mealy réversible A, de degré de connexion n. Pour m ≥ n, les composantes
connexes de Am sont toutes de taille 2
n.
20Idée. Par récurrence sur m ≥ n.
Pour m ∈ {n, n + 1}, la propriété est vraie (en utilisant le lemme 4 pour m = n + 1).
Soit m > n + 1. On suppose que les composantes connexes de Am−1
et Am sont de taille 2
n. Si C
est une composante connexe de Am+1, le lemme 4 et l’hypothèse de récurrence permettent de conclure
que C est de taille 2
n ou 2
n+1. On montre ensuite par l’absurde que C n’est pas de taille 2
n+1, car cela
entraînerait, par le lemme 4, l’existence d’une composante connexe de Am−1 de taille 2
n−1
.
Preuve de la proposition 12. Soit A un automate de Mealy réversible à deux états.
Si le degré de connexion de A est nul, hd(A)i+ est le semi-groupe trivial et hAi+ est fini d’après la
proposition 3.
Sinon, soit n ≥ 1 le degré de connexion de A : pour un m ≥ n, les composantes connexes de Am
sont toutes de taille 2
n. A numérotation des états prêt, il ne peut donc y avoir qu’un nombre fini de
composantes connexes distinctes. On en déduit que hAi+ est fini.
La réciproque est un cas particulier du lemme 3.
Références
[1] A. Akhavi, I. Klimann, S. Lombardy, J. Mairesse, and M. Picantin. On the finiteness problem
for automaton (semi)groups. International Journal of Algebra and Computation, (accepted), 2011.
http://arxiv.org/abs/1105.4725.
[2] A. S. Antonenko. On transition functions of Mealy automata of finite growth. Matematychni Studii.,
29(1) :3–17, 2008.
[3] L. Bartholdi. FR Functionally recursive groups, Self-similar groups — a GAP package, Version 1.2.3, 2011.
[4] The GAP Group. GAP – Groups, Algorithms, and Programming, Version 4.4.12, 2008.
[5] P. Gillibert. communication personnelle, 2012.
[6] R. I. Grigorchuk. On Burnside’s problem on periodic groups. Funktsional. Anal. i Prilozhen., 14(1) :53–54,
1980.
[7] I. Klimann. The finiteness of a group generated by a 2-letter invertible-reversible Mealy automaton is
decidable. In STACS, 2013. http ://arxiv.org/abs/1208.6324.
[8] I. Klimann, J. Mairesse, and M. Picantin. Implementing computatioons in automaton (semi)groups. In
N. Moreira and R. Reis, editors, CIAA, number 7381 in LNCS, pages 240–252, 2012.
[9] Y. Muntyan and D. Savchuk. automgrp Automata Groups — a GAP package, Version 1.1.4.1, 2008.
[10] V. Nekrashevych. Self-similar groups, volume 117 of Mathematical Surveys and Monographs. American
Mathematical Society, Providence, RI, 2005.
[11] P.S. Novikov. On the algorithmic unsolvability of the word problem in group theory. Trudy Mat. Inst.
Steklov, 44 :1–143, 1955. in Russian.
[12] D. M Savchuk and Y. Vorobets. Automata generating free produtcs of groups of order 2. J. Algebra,
336(1) :53–66, 2011.
21
Le syst`eme d’information de l’entreprise
Badr Benmammar
To cite this version:
Badr Benmammar. Le syst`eme d’information de l’entreprise. Ecole d’ing´enieur. 2007. ´
HAL Id: cel-00662726
https://cel.archives-ouvertes.fr/cel-00662726
Submitted on 24 Jan 2012
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Le système d’information
de l’entreprise
Badr Benmammar
benmamma@enst.frPlan
Introduction à l’informatique
Domaines d’application de l’informatique
L’informatique industrielle
L’informatique scientifique
L’informatique de gestion
L’informatique communicante
Internet
L’histoire d’Internet
Les services sur Internet
Protocoles et logiciels
Structure de l’ordinateur
Système d’exploitation
Le système d’information de l’entrepriseFormation
En Algérie :
USTO - ORAN
1999
Ingénieur en Informatique - Option Génie Logiciel
Mention : Très bien (Major de la promotion)
2001
Ingénieur Etude et Développement Tlemcen
1994 Tlemcen Baccalauréat Série Sciences Exactes
Mention : Bien
En France :
LaBRI
ENSEIRB
LIPN
2003
2005
2006
Attaché temporaire d’enseignement et de recherche
(demi-service)
Ingénieur de recherche
Doctorat de l’Université Bordeaux 1
Mention : Très honorable
2001
2002
LIPN Master Recherche en Intelligence Artificielle
et Optimisation Combinatoire
Post-Doc : Chargé d’études à l’ENST
2007 ENST
Le routage externe BGP4
Luc Saccavini
To cite this version:
Luc Saccavini. Le routage externe BGP4. 2006.
HAL Id: inria-00108171
https://cel.archives-ouvertes.fr/inria-00108171
Submitted on 19 Oct 2006
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.1
LE ROUTAGE BGP4(+) / septembre 2006 1/56 V2.0
LE ROUTAGE BGP4(+)
Luc.Saccavini@inria.fr
septembre 20062
LE ROUTAGE BGP4(+) / septembre 2006 2/56 V2.0
Classification des protocoles de routage
R Il existe 2 grandes familles de protocoles de routage
R Les protocoles intérieurs (IGP)
R Distance-vecteur : RIP, IGRP
R État des liens : OSPF, IS-IS
R Taille <100 routeurs, 1 autorité d’administration
R Échange de routes, granularité = routeur
R Les protocoles extérieurs (EGP)
R EGP, BGP, IDRP
R Taille = Internet, coopération d’entités indépendantes
R Échange d’informations de routage, granularité = AS
Rappel sommaire sur les types de protocoles de routage :
- distance vecteur : la distance est le nombre de routeurs pour joindre une destination, chaque routeur ne connaît
que son voisinage et propage les routes qu'il connaît à ses voisins (ex. RIP).
- états des liens : chaque routeur connaît la topologie et l'état de l'ensemble des liens du réseau, puis en déduit les
chemins optimaux. À chaque interaction les routeurs s'envoient toute leur table de routage (ex. OSPF).
Le protocole BGP peut être considéré comme à mi-chemin entre les deux types de protocoles précédents. En
effet, l’échange de chemins d’AS permet à chaque routeur de reconstruire une grande partie de la topologie du
réseau, ce qui est caractéristique des protocoles de type «état des liens», mais deux routeurs voisins n’échangent
que les routes qu’ils connaissent, ce qui est caractéristique d’un protocole de type «distance-vecteur».
Références sur les autres protocoles de routage :
IPv4 IPv6 --------------------------------------------------------------------------------------------------------------
RIP (Routing Information Protocol) RFC 2453, 11/98 «RIPv2» RFC2080, 01/97 «RIPng»
IGRP voir manuel IOS de Cisco
EIGRP voir manuel IOS de Cisco
OSPF (Open Shortest Path First) RFC 2328, 04/98 «OSPv2» RFC 2740, 12/99 «OSPv3»
IS-IS (Intermediate System to Intermediate System ISO/IEC 10589, (ou RFC1142, 02/90)
EGP (Exterior Gateway Protoco) RFC 904 04/84 --------
IDRP (Inter Domain Routing Protocol) ISO/IEC IS10747 10/93
BGP (Border Gateway Protocol) RFC 4271, 01/06 «BGP4» RFC 2545, 03/99 «BGP4+»3
LE ROUTAGE BGP4(+) / septembre 2006 3/56 V2.0
Notion de système autonome (AS)
R Ensemble de routeurs sous une même entité administrative
SYSTÈME AUTONOME
R1
R2
R4 R5
Routeurs internes
Routeur de bord
annonceur BGP
R3
Au sein d’un AS plusieurs IGP (et/ou un routage statique) peuvent être utilisés.
Fonctionnellement, on distingue 2 types de Systèmes Autonomes :
- les AS clients : ils sont les producteurs ou les consommateurs de paquets IP
- les AS de transit : ils ne font que transporter les paquets IP qui leurs sont confiés
Un AS n’est à priori pas lié à la localisation géographique des différents routeurs qui le
constituent.4
LE ROUTAGE BGP4(+) / septembre 2006 4/56 V2.0
Objectifs généraux du protocole BGP
R Échanger des routes (du trafic) entre organismes indépendants
R Opérateurs
R Gros sites mono ou multi connectés
R Implémenter la politique de routage de chaque organisme
R Respect des contrats passés entre organismes
R Sûreté de fonctionnement
R Être indépendant des IGP utilisés en interne à un organisme
R Supporter un passage à l’échelle (de l’Internet)
R Minimiser le trafic induit sur les liens
R Donner une bonne stabilité au routage
BGP élimine les boucles de routage en examinant le chemin d’AS associé à une route.
Les RFC1265 et RFC1774 contiennent une étude des propriétés de mise à l’échelle du protocole BGP.
Dans cette étude, si on appelle N le nombre total de préfixes annoncés dans l’Internet, M la distance
moyenne entre les AS (exprimée en nombre d’AS), et A le nombre total d’AS de l’Internet, alors, le
volume d’information échangé lors du premier échange entre deux voisins BGP est proportionnel à :
O(N+M*A). Le volume de mémoire nécessaire dans chaque routeur étant proportionnel à :
O((N+M*A)*K), avec K=nombre moyen de voisins BGP par routeur.
Nombre de Distance moy. Nombre moy. Nombre moy. Volume initial Volume mém.
préfixes (N) inter-AS (M) d’AS (A) de voisins (K) échangé utilisé
--------------------------------------------------------------------------------------------------------------
2100 5 59 3 9000 27000
4000 10 100 6 18000 108000
10000 15 300 10 49000 490000
20000 8 400 86000
40000 15 400 172000
100000 20 3000 20 520000 1040000
La première ligne de ce tableau correspond à la situation de début 1991, la quatrième à celle de fin
1994, la dernière au 1er semestre 2001.5
LE ROUTAGE BGP4(+) / septembre 2006 5/56 V2.0
Principes généraux du protocole BGP
R Protocole de type PATH-vecteur
R Chaque entité est identifiée par un numéro d’AS
R La granularité du routage est le Système Autonome (AS)
R Le support de la session BGP est TCP (port 179)
R Les sessions BGP sont établies entre les routeurs de bord d’AS
R Protocole point à point entre routeurs de bord d’AS
R Protocole symétrique
R (un annonceur BGP n’est pas forcément un routeur)
Le choix de TCP comme support du protocole est important car il le libère du problème de
garantir une bonne transmission des informations.
C'est ce choix qui a permis aux architectes du protocole de ne plus procéder que par mise à jour
des informations modifiées après l'envoi initial de la table complète lors de l'ouverture de la
session entre deux routeurs. Cela permet de minimiser le trafic induit.
La politique de routage se traduit par le filtrage des routes apprises et annoncées (ne jamais
oublier qu’annoncer une route vers un réseau c’est accepter du trafic à destination de ce réseau).
Le filtrage (au sens BGP) peut agir en «tout ou rien» sur la route (annonce, prise en compte), mais
aussi par modification des attributs de la route pour modifier la préférence accordée à la route
comme on le verra plus loin.6
LE ROUTAGE BGP4(+) / septembre 2006 6/56 V2.0
Exemple de connexion BGP (1)
R2
AS 200
AS 100
R1
BGP
R Client connecté à un seul Fournisseur d’Accès Internet (FAI).
Seuls les routeurs de bord de l’AS sont figurés.
Client
Session BGP
AS officiels (enregistrés) : de 1 à 64511
AS privés (non-enregistrés) : de 64512 à 65535
FAI
Lien physique
Les routeurs qui échangent leurs informations en BGP doivent être directement connectés (liaison
point à point ou LAN partagé).
C'est la conséquence logique de la frontière administrative qui les sépare et qui empêche que le
routage à travers un réseau de routeurs puisse être assuré par un IGP.
Exceptionnellement, des routeurs de bord peuvent ne pas être en vis-à-vis (ex. le routeur où arrive
le lien externe à l’AS ne connaît pas le protocole BGP).
L’utilisation de numéros d’AS privés est à éviter pour des AS terminaux (clients) car une
connexion à un deuxième AS de transit (FAI) peut conduire à une configuration illégale.
Les numéros d’AS officiels sont attribués par les mêmes organismes qui sont en charge de
distribuer les réseaux IP :
- RIPE-NCC : zone Europe
- APNIC : zone Asie et Pacifique
- ARIN : zone Amérique du Nord
- AFRINIC : zone Afrique
- LACNIC : zone Amérique Latine et îles Caraïbes
C ’est le même numéro d’AS qui est utilisé pour les échanges de préfixes IPv4 et IPv6 (car BGP
est multi-protocole)..7
LE ROUTAGE BGP4(+) / septembre 2006 7/56 V2.0
Exemple de connexion BGP (2)
R3
AS 300
R2
AS 200
BGP
BGP
R Client connecté à deux fournisseurs :
AS 100
R1
Client
FAI 1
FAI 2
R1 à deux voisins : R2 et R3
L’AS client peut choisir de faire passer tout son trafic par FAI1 (AS 200) et garder sa liaison vers
FAI2 (AS 300) en secours, ou équilibrer son trafic entre FAI1 et FAI2. C’est le cas typique qui
amène à utiliser le protocole de routage BGP pour réagir dynamiquement en cas de défaillance
d’un lien.
Dans le cas précédent, le seul intérêt d ’avoir un protocole de routage dynamique (par rapport à
une simple route par défaut) est de pouvoir avoir une alerte (en provenance de la session BGP) en
cas de défaillance du FAI.8
LE ROUTAGE BGP4(+) / septembre 2006 8/56 V2.0
Exemple de connexion BGP (3)
R3
AS 300
R2
AS 200
R4
AS 100
R1
R Client connecté à 2 fournisseurs par 2 routeurs différents :
E-BGP
E-BGP
I-BGP
FAI 2
FAI 1
BGP Externe
BGP Interne
Client
Ce schéma correspond au cas classique d'un client qui se connecte à deux fournisseurs pour
s'assurer une protection contre la défaillance de l'un d'entre eux ou de l’un de ses routeurs de bord
R1 ou R4.
On notera la présence d’une connexion BGP entre les routeurs de bord de l’AS 100. Cette
connexion BGP «interne» (notée I-BGP) est nécessaire pour maintenir la cohérence entre ces 2
routeurs qui doivent posséder les mêmes informations de routage (se souvenir qu’en BGP la
granularité du routage est l’AS).
L’un des principaux intérêts de l’I-BGP est de permettre la redondance des routeurs de bord d’un
AS.9
LE ROUTAGE BGP4(+) / septembre 2006 9/56 V2.0
Exemple de connexion BGP (4)
R3
AS 300
R2
AS 200
R Client connecté à 3 fournisseurs avec redondance sur l’un :
E-BGP
E-BGP
FAI2
FAI1
BGP Externe
BGP Interne
R7
AS 400
R8
E-BGP
E-BGP
R4
AS 100
R1
I-BGP
R6
R5
FAI3
Client
Noter le maillage complet de sessions I-BGP entre R1, R4, R6, R5 dans l’AS 100. Pour les autres
AS, les 4 routeurs de bord de l’AS 100 sont vus, du point de vue fonctionnel comme un seul
routeur (avec 4 interfaces).
Cet exemple montre aussi une des limitations d'avoir à faire un maillage complet de sessions IBGP
entre les routeurs de bord d'un même AS (nombre de sessions = N*(N+1)/2). On verra à la
fin de l'exposé qu’il existe des solutions (réflecteurs de routes) qui permettent de diminuer le
nombre de sessions I-BGP.
Sauf mention explicite, tout ce qui est exposé dans la suite concerne les sessions BGP externes.
Dans le cas de deux AS multiplement connectés comme AS400 et AS100 et si l’ensemble des
routeurs de bord des deux AS partagent un même LAN, les routeurs de bord ne sont pas
forcément des annonceurs BGP, et vice-versa.10
LE ROUTAGE BGP4(+) / septembre 2006 10/56 V2.0
Règles pour les AS multi-connectés
R Les routeurs de bord d’un même AS échangent leurs informations
de routage en I-BGP
R Les connexions en I-BGP forment un maillage complet sur les
routeurs de bord d’un AS
R Ce sont les IGP internes à l’AS qui assurent et maintiennent la
connectivité entre les routeurs de bord qui échangent des
informations de routage en I-BGP
R Le numéro d’AS est un numéro officiel (si connexions vers 2 AS
différents)
Attention, dans un même AS, c'est bien l'IGP (ou le routage statique) qui est responsable de la
connectivité interne de l'AS. Si un routeur de bord ne peut pas atteindre une route de son AS (qui
lui a été annoncée par un voisin interne par exemple), il ne la propagera pas à ses voisins BGP
(externes ou internes).11
LE ROUTAGE BGP4(+) / septembre 2006 11/56 V2.0
Les composants d’un annonceur BGP
R Une description des politiques de routage (entrée et sortie)
R Des tables où sont stockées les informations de routage
R En entrée : Adj-RIB-in (informations reçues et non traitées)
R En sortie : Adj-RIB-out (informations à annoncer)
R En interne : Loc-RIB (informations locales au routeur)
R Un automate implémentant le processus de décision
R Des sessions avec ses voisins pour échanger les informations de
routage
L’expression ‘routeur BGP’ est très souvent utilisée à la place de ‘annonceur BGP’ car il est peu
fréquent qu’un annonceur ne soit pas aussi un routeur. Le cas pouvant cependant se produire (ex.
serveurs de routes), le standard (RFC4271) utilise systématiquement l’expression ‘annonceur
BGP’.
Concernant les 3 tables où sont stockées les informations de routage, le standard ne spécifie pas
qu'elles doivent être physiquement séparées, ce qui impliquerait un gaspillage de mémoire qui est
une ressource critique sur les routeurs qui doivent connaître toutes les routes de l'Internet (environ
180 000 en septembre 2006).
La spécification de l’expression de la politique de routage dans BGP n'est pas standardisée, elle
dépend donc des implémentations du protocole. Une telle standardisation n’est suggérée que dans
RFC1786 (status Informational) pour les bases des organismes d’allocation (RIPE-NCC, ARIN,
APNIC, LACNIC, AFRINIC).12
LE ROUTAGE BGP4(+) / septembre 2006 12/56 V2.0
Schéma fonctionnel du processus BGP
Politique de
filtrage d‘annonces en entrée
Politique de
filtrage d‘annonces sortie
Adj-RIB-in Loc-RIB Adj-RIB-out
Annonceur BGP
Annonces reçues Annonces émises
Table de
routage locale
Configuration
locale routeur (+IGP)
Processus de décision
Noter la flèche à double sens entre la table Loc-RIB et le processus de décision en bas du schéma.
En effet, si c'est bien la table Loc-RIB qui permet au final de bâtir la table de routage, elle reçoit
aussi des informations sur les routes locales de l'AS à travers des directives du fichier de
configuration (annonces statiques ou redistribution des routes apprises par l'IGP dans BGP).
Ce schéma ne concerne que les annonces reçues et faites en E-BGP. En I-BGP, le schéma est plus
simple (voir fin d’exposé).
Quand l’annonceur BGP est aussi un routeur, sa table de routage locale est construite à partir des
informations de routage produites par le processus BGP, les autres protocoles de routage, et sa
configuration. S’il existe plusieurs routes vers le même réseau, une métrique nouvelle est
introduite (la ‘distance administrative’ dans l’implémentation de Cisco) pour régler le choix de la
route à installer dans la table de routage.13
LE ROUTAGE BGP4(+) / septembre 2006 13/56 V2.0
La vie du processus BGP
R Automate à 6 états, qui réagit sur 13 événements
R Il interagit avec les autres processus BGP par échange de 4 types de
messages :
R OPEN
R KEEPALIVE
R NOTIFICATION
R UPDATE
R Taille des messages de 19 à 4096 octets
R Éventuellement sécurisés par MD5
Les messages étant de longueur variable, ils sont marqués dans le flot d'octets du canal TCP par
une séquence spéciale de trois octets qui repère leur début.14
LE ROUTAGE BGP4(+) / septembre 2006 14/56 V2.0
Le message OPEN
R 1er message envoyé après l’ouverture de la session TCP
R Informe son voisin de :
R Sa version de BGP
R Son numéro d’AS
R D’un numéro identifiant le processus BGP
R Propose une valeur de temps de maintien de la session
R Valeur suggérée : 90 secondes
R Si 0 : maintien sans limite de durée
R Met le processus en attente d’un KEEPALIVE
En cas de démarrage simultané de deux sessions BGP par deux voisins, il faut choisir de ne
conserver que l'une des deux connexions. Pour cela on ne conserve que celle ouverte par le
processus de numéro identifiant le plus petit. Pour déterminer ce numéro identifiant, les
implémentations de Cisco et Zebra choisissent par défaut le plus petit numéro IP de interfaces
connues.15
LE ROUTAGE BGP4(+) / septembre 2006 15/56 V2.0
Le message KEEPALIVE
R Confirme un OPEN
R Réarme le minuteur contrôlant le temps de maintien de la session
R Si temps de maintien non égal à 0
R Est ré-émis toutes les 30 secondes (suggéré)
R Message de taille minimum (19 octets)
En cas d'absence de modification de leur table de routage, les routeurs ne s'échangent plus que des
messages KEEPALIVE toutes les 30 secondes, ce qui génère un trafic limité à environ 5bits/s au
niveau BGP.
L'implémentation BGP de Cisco porte par défaut à 60 secondes l'intervalle entre 2 messages
KEEPALIVE, celle de Zebra à 30 secondes.16
LE ROUTAGE BGP4(+) / septembre 2006 16/56 V2.0
Le message NOTIFICATION
R Ferme la session BGP
R Fournit un code et un sous code renseignants sur l’erreur
R Ferme aussi la session TCP
R Annule toutes les routes apprises par BGP
R Émis sur incidents :
R Pas de KEEPALIVE pendant 90s ()
R Message incorrect
R Problème dans le processus BGP
R ….
Le message NOTIFICATION est envoyé au moindre incident lors du déroulement du processus
BGP. Le fait de supprimer lors de son arrivée toutes les routes apprises par BGP peut provoquer
des instabilités de routage injustifiées (un incident ne veut pas forcément dire que toutes les routes
apprises précédemment sont devenues fausses).
Dans son implémentation de BGP, Cisco donne la possibilité de supprimer cette fonctionnalité,
en conservant telle quelle la table de routage en cas de réception d’un message NOTIFICATION.17
LE ROUTAGE BGP4(+) / septembre 2006 17/56 V2.0
Le message UPDATE
R Sert à échanger les informations de routage
R Routes à éliminer (éventuellement)
R Ensemble des attributs de la route
R Ensemble des réseaux accessibles (NLRI)
R Chaque réseau est défini par (préfixe, longueur)
R Envoyé uniquement si changement
R Active le processus BGP
R Modification des RIB f(Update, politique de routage, conf.)
R Émission d’un message UPDATE vers les autres voisins
C'est le message principal du protocole.
Lors du paramétrage d'un processus BGP il faut aussi faire un choix entre synchroniser ou pas les
annonces de l'IGP et les annonces BGP.18
LE ROUTAGE BGP4(+) / septembre 2006 18/56 V2.0
Le processus BGP
R L’automate à états finis du processus BGP (simplifié au chemin
principal, sans la gestion des incidents)
LIBRE EN
CONNEXION OPEN ENVOYÉ Session TCP ouverte
Envoi OPEN
Envoi KEEPALIVE
Démarrage BGP
Ouverture session
TCP
Réception OPEN
Traitement,
envoi UPDATE SESSION ÉTABLIE OPEN CONFIRMÉ Réception KEEPALIVE
Fin initialisation
Réception UPDATE
Réception
KEEPALIVE
Réception NOTIFICATION,
problème dans UPDATE, etc..
Fermeture session TCP
L’état supplémentaire non figuré (ACTIF) sur le schéma se rapporte à la phase d'initialisation de
la session BGP et concerne la gestion des incidents au niveau TCP pendant cette phase.
La liste complète des événements pouvant arriver est la suivante :
1 : Démarrage BGP
2 : Fin BGP
3 : Session TCP ouverte
4 : Session TCP fermée
5 : Ouverture session TCP échouée
6 : Erreur fatale dans session TCP
7 : Minuteur ConnectRetry expiré
8 : Minuteur Hold Time expiré
9 : Minuteur KeepAlive expiré
10 : Réception d’un message OPEN
11 : Réception d’un message KEEPALIVE
12 : Réception d’un message UPDATE
13 : Réception d’un message NOTIFICATION19
LE ROUTAGE BGP4(+) / septembre 2006 19/56 V2.0
Le message UPDATE : attributs de la route
R Classés en 4 catégories :
R Reconnus, obligatoires
R ORIGIN, AS_PATH, NEXT_HOP
R Reconnus, non-obligatoires
R LOCAL_PREF, ATOMIC_AGGREGATE
R Optionnels, annonçables (transitifs ou non)
R MULTI_EXIT_DISC (MED), AGGREGATOR
R Optionnels, non-annonçables
R WEIGHT (spécifique à Cisco)
Tout ces attributs de route concernent le cas principal qui est l’E-BGP. Un seul est spécifique de
l’I-BGP, c’est le LOCAL_PREF qui n’est annoncé qu’à l'intérieur de l'AS dans les sessions IBGP.
Pour un attribut de route, le fait d’appartenir à la catégorie «reconnu» impose au processus BGP
de savoir le traiter s’il est présent dans une annonce.
Inversement, s’il appartient à la catégorie «optionnel» un processus BGP n’est pas dans
l’obligation de savoir le prendre en compte pour le traiter.
Le caractère «transitif» d’un attribut lui donne une portée illimitée.
Le caractère «non-transitif» d’un attribut limite sa portée à l’AS (ex. LOCAL_PREF) ou à l’AS
voisin (ex. MED).20
LE ROUTAGE BGP4(+) / septembre 2006 20/56 V2.0
Les attributs de route obligatoires (1)
R ORIGIN
R Donne l’origine de la route, peut prendre 3 valeurs :
R IGP : la route est intérieure à l’AS d’origine
R EGP : la route a été apprise par le protocole EGP
R Incomplète : l’origine de la route est inconnue ou apprise par
un autre moyen (redistribution des routes statiques ou
connectées dans BGP par exemple)
On ne voit dans la pratique que les valeurs "IGP" ou "Incomplete" qui sont positionnées. (même
sur des routeurs de points d'échange qui connaissent environ 130 000 routes), le protocole EGP
n’étant plus utilisé.
Dans les implémentations de Cisco ou de Zebra, les valeurs «IGP», «EGP» ou «incomplete», sont
respectivement représentées par les lettres «i», «e» ou «?» dans les représentations des tables
d’informations de routage.
Exemple (Cisco ou Zebra) :
cs7206>sh ip bgp
BGP table version is 28403, local router ID is 194.199.17.59
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 129.88.0.0 193.54.188.1 19 0 64515 i
*> 129.88.1.250/32 193.54.188.1 19 0 64515 ?
*> 129.88.1.254/32 193.54.188.1 11 0 64515 ?
*> 129.88.3.0/24 193.54.188.1 18 0 64515 ?
*> 129.88.100.0/24 194.199.17.35 0 32768 i
*> 129.88.103.0/24 193.54.188.1 20 0 64515 ?
*> 129.88.253.0/24 193.54.188.1 20 0 64515 ?
*> 132.168.0.0 193.54.188.5 0 0 2063 i21
LE ROUTAGE BGP4(+) / septembre 2006 21/56 V2.0
Les attributs de route obligatoires (2)
R AS_PATH
R Donne la route sous forme d’une liste de segments d’AS
R Les segments sont ordonnés ou non (AS_SET)
R Chaque routeur rajoute son numéro d’AS aux AS_PATH des
routes qu’il a apprises avant de les ré-annoncer
R NEXT_HOP
R Donne l’adresse IP du prochain routeur qui devrait être utilisé
(peut éviter un rebond si plusieurs routeurs BGP sont sur un
même réseau local)
Les segments d’AS non ordonnés sont formés par un routeur qui a fait une opération d'agrégation.
Ce dernier regroupe dans cet ensemble non ordonné tous les AS associés aux routes qu'il a
agrégées. Cela permet aux autres routeurs de continuer à détecter d'éventuelles boucles
concernant ces routes.
Dans l’implémentation de Cisco, les segments d’AS dans un AS_PATH sont encadrés par des
accolades {}.22
LE ROUTAGE BGP4(+) / septembre 2006 22/56 V2.0
Exemple 1 : tables Adj-RIB-in
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
NLRI
2001:660:114:0:2::/64
ORIGIN
i
AS_PATH
200
NEXT_HOP
2001:660:114:9:1::2
NLRI
2001:660:114:0:1::/64
ORIGIN
i
AS_PATH
100
NEXT_HOP
2001:660:114:9:1::123
LE ROUTAGE BGP4(+) / septembre 2006 23/56 V2.0
Exemple 1 : configuration sur ZEBRA(*)
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2 router bgp 200
bgp router-id 0.0.0.200
neighbor 2001:660:114:9:1::1 remote-as 100
address-family ipv6 unicast
neighbor 2001:660:114:9:1::1 activate
network 2001:660:114:0:2::/64
exit-address-family
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:1::2 remote-as 200
address-family ipv6 unicast
neighbor 2001:660:114:9:1::2 activate
network 2001:660:114:0:1::/64
exit-address-family
(*) version 0.96a
Noter que l'annonce des réseaux internes de l'AS se fait par une directive "network" qui
positionne aussi l'attribut ORIGIN à la valeur "IGP" (cf. planche précédente).
Attention, cette directive n’a pas du tout le même sens qu’avec certains IGP (ex. OSPF), de plus
les implémentations de Cisco et Zebra diffèrent sensiblement quand à l’effet d’une directive
"network" :
Pour Cisco, cette directive ne fait que positionner l’attribut ORIGIN à IGP, mais ne force pas
l’annonce de la route concernant ce réseau en BGP. Cette annonce est conditionnée au fait que le
routeur sache bien router ce réseau. Ce comportement est normal pour un routeur, mais une
instabilité de l’IGP interne à l’AS se propage hors de l’AS et peut s’avérer pénalisant).
Pour Zebra, cette directive positionne l’attribut ORIGIN à IGP, et provoque l’annonce de la route
concernant ce réseau en BGP. Ce comportement évite les instabilité d’annonces de route, mais
peut provoquer un trafic inutile sur le lien inter-AS.
Noter aussi que la première directive neighbor (ex neighbor 2001:660:114:9:1::2
remote-as 200) identifie le voisin et le protocole IP de transport (IPv6 dans cet exemple). La
deuxième directive neighbor (ex neighbor 2001:660:114:9:1::2 activate) qui est
positionnée dans la séquence spécifique au protocole IPv6 (ex address-family ipv6
unicast) active spécifiquement des échanges d’informations de routage concernant le protocole
IPv6.24
LE ROUTAGE BGP4(+) / septembre 2006 24/56 V2.0
Exemple 2 : tables Adj-RIB-in
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
AS_PATH
100
100, 300
NLRI
2001:660:114:0:1::/64
2001:660:114:0:3::/64
ORIGIN
i
i
NEXT_HOP
2001:660:114:9:1::1
2001:660:114:9:1::1
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
AS_PATH
200
300
NLRI
2001:660:114:0:2::/64
2001:660:114:0:3::/64
ORIGIN
i
i
NEXT_HOP
2001:660:114:9:1::2
2001:660:114:9:2::325
LE ROUTAGE BGP4(+) / septembre 2006 25/56 V2.0
Exemple 2 : configuration sur ZEBRA(*)
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:1::2 remote-as 200
neighbor 2001:660:114:9:2::3 remote-as 300
address-family ipv6 unicast
neighbor 2001:660:114:9:1::2 activate
neighbor 2001:660:114:9:2::3 activate
network 2001:660:114:0:1::/64
exit-address-family
(*) version 0.96a
La configuration de R3 est symétrique de celle de R2.
L’AS 100 qui sert d’AS de transit pour les AS 200 et 300 doit synchroniser les annonces entre
BGP et l’IGP interne à l’AS. Sinon un effet de «trou noir» peut se produire.26
LE ROUTAGE BGP4(+) / septembre 2006 26/56 V2.0
2001:660:114:9:3::2
2001:660:114:9:3::3
Exemple 3 : tables Adj-RIB-in
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
AS_PATH
100
100, 300
300
300, 100
NLRI
2001:660:114:0:1::/64
2001:660:114:0:3::/64
2001:660:114:0:3::/64
2001:660:114:0:1::/64
ORIGIN
i
i
i
i
NEXT_HOP
2001:660:114:9:1::1
2001:660:114:9:1::1
2001:660:114:9:3::3
2001:660:114:9:3::3
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
AS_PATH
200
300
200, 300
300, 200
NLRI
2001:660:114:0:2::/64
2001:660:114:0:3::/64
2001:660:114:0:3::/64
2001:660:114:0:2::/64
ORIGIN
i
i
i
i
NEXT_HOP
2001:660:114:9:1::2
2001:660:114:9:2::3
2001:660:114:9:1::2
2001:660:114:9:2::3
Noter la présence de plusieurs routes pour le même réseau dans les tables des routeurs R1, R2 (et
R3 par symétrie).27
LE ROUTAGE BGP4(+) / septembre 2006 27/56 V2.0
Exemple 3 : configuration sur ZEBRA(*)
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 200
bgp router-id 0.0.0.200
neighbor 2001:660:114:9:1::1 remote-as 100
neighbor 2001:660:114:9:3::3 remote-as 300
address-family ipv6 unicast
neighbor 2001:660:114:9:1::1 activate
neighbor 2001:660:114:9:3::3 activate
network 2001:660:114:0:2::/64
exit-address-family
2001:660:114:9:3::2
2001:660:114:9:3::3
(*) version 0.96a28
LE ROUTAGE BGP4(+) / septembre 2006 28/56 V2.0
Les attributs de route optionnels (1)
R LOCAL_PREF (non transitif, discretionary)
R Pondère la priorité donnée aux routes en interne à l’AS
R Jamais annoncé en E-BGP
R ATOMIC_AGGREGATE (transitif, discretionary)
R Indicateur d’agrégation
R Quand des routes plus précises ne sont pas annoncées
R AGGREGATOR (transitif)
R Donne l’AS qui a formé la route agrégée
R L'adresse IP du routeur qui a fait l’agrégation
L’attribut LOCAL_PREF est un puissant outil d’expression de la politique de routage à l’intérieur
d’un AS car il est pris en compte avant la longueur de l’AS_PATH dans le choix entres des routes
concurrentes.
Noter le caractère non-transitif de l’attribut de route LOCAL_PREF qui n’est donc pas transmis
hors de l’AS.29
LE ROUTAGE BGP4(+) / septembre 2006 29/56 V2.0
Les attributs de route optionnels (2)
R MULTI_EXT_DISC ou MED (non transitif)
R Permet de discriminer les différents points de connexion d’un
AS multi-connecté (plus faible valeur préférée)
R WEIGHT (non transitif, spécifique Cisco)
R Pondère localement (au routeur) la priorité des routes BGP
R COMMUNITY (transitif)
R Pour un ensemble de routeurs ayant une même propriété
RTrois valeurs reconnues
R no-export : pas annoncé aux voisins de la confédération
R no-advertise : pas annoncé aux voisins BGP
R no-export-subconfed : pas annoncé en E-BGP
Dans la version 3 de BGP, l’attribut MED était appelé Inter-AS_Metric, l’implémentation Cisco
de BGP-4 a gardé le terme de Metric pour certaines commandes manipulant le MED. Cette
implémentation permet aussi de comparer des MED d’AS différents (bgp always-compare-med
sur IOS Cisco).
On pourra aussi consulter le RFC4451 ‘BGP MULTI_EXT_DISC (MED) Considerations’ sur
l’usage et la pratique de l’attribut MED.
Pour l’attribut COMMUNITY, le standard (RFC1997) recommande de coder le numéro d’AS
dans les deux premiers octets, les 2 suivants étant laissés à disposition des administrateurs de
l’AS. Une communauté de routeurs peut s’étendre sur plusieurs AS. L’implémentation de Cisco
connaît une valeur prédéfinie égale à «internet».
L’attribut WEIGHT peut varier de 0 à 32768, les plus grandes valeurs sont préférées. Par défaut,
il prend les valeurs suivantes :
- 32768 si la route est initiée par le routeur
- 0 pour les autres routes30
LE ROUTAGE BGP4(+) / septembre 2006 30/56 V2.0
La portée de quelques attributs de route
R1
AS 100
AS 300
R3
AS 200
R2
ORIGIN
(AS_PATH)
NEXT_HOP
LOCAL_PREF
MULTI_EXT_DISC
WEIGHT
ORIGIN
(100, AS_PATH)
NEXT_HOP{R1}
MULTI_EXT_DISC
ORIGIN
(200, 100, AS_PATH)
NEXT_HOP {R2}
ORIGIN
(AS_PATH)
NEXT_HOP
LOCAL_PREF
R1’
L'attribut MED n'est pas annoncé dans l'AS du routeur de bord R1 mais à son voisin extérieur (qui
ne le propage pas).
L'attribut LOCAL_PREF n'est annoncé que dans l'AS du routeur de bord.
L'attribut NEXT_HOP est modifié par chaque traversée d’AS.
L'attribut AS_PATH est préfixé du numéro d’AS à chaque traversée d’AS.
L'attribut ORIGIN n’est jamais modifié.31
LE ROUTAGE BGP4(+) / septembre 2006 31/56 V2.0
Le processus de décision (1)
R Il est enclenché par une annonce de route
R Il se déroule en trois phases
R Calcul du degré de préférence de chaque route apprise
R Choix des meilleures routes à installer dans RIB-Loc
R Choix des routes qui vont être annoncées
R Il applique aux informations de routage un traitement basé sur
RCritères techniques : suppression boucles, optimisations, …
RCritères administratifs : application de la politique de routage de
l’AS.
Pour être prise en compte une annonce de route doit avoir son NEXT_HOP routable.
Une route interne n’est annoncée par un routeur que s’il sait la joindre.
Une route externe n’est annoncée par un routeur que s’il sait joindre le NEXT_HOP.
Une route dont l’attribut NEXT_HOP est l’adresse IP du voisin n’est pas annoncée à ce voisin
(qui la connaît déjà !).32
LE ROUTAGE BGP4(+) / septembre 2006 32/56 V2.0
Le processus de décision (2)
R Critères de choix entre 2 routes (priorités décroissantes) :
RWEIGHT (propriétaire Cisco, plus grand préféré)
RLOCAL_PREF le plus grand
RRoute initiée par le processus BGP local
RAS_PATH minimum
RORIGIN minimum (IGP -> EGP -> Incomplete)
RMULTI_EXT_DISC minimum
RRoute externe préférée à une route interne (à l’AS)
RRoute vers le plus proche voisin local (au sens de l’IGP)
RRoute vers le routeur BGP de plus petite adresse IP
L’installation d’une route dans la table de routage doit prendre en compte le fait qu’une route peut
être apprise par plusieurs protocoles de routage différents. L’implémentation de Cisco utilise la
notion de distance administrative pour cela. Le choix entre 2 routes se fait en prenant celle qui a la
distance administrative la plus faible. Les valeurs par défaut des distances administratives
associées aux origines des routes sont :
Route directement connectée 0
Route statique 1
Route apprise en E-BGP 20
Route apprise en EIGRP (interne) 90
Route apprise en IGRP 100
Route apprise en OSPF 110
Route apprise en ISIS 115
Route apprise en RIP 120
Route apprise en EGP 140
Route apprise en EIGRP (externe) 170
Route apprise en I-BGP 200
Route apprise en BGP (local) 200
Route d’origine inconnue 25533
LE ROUTAGE BGP4(+) / septembre 2006 33/56 V2.0
Différences entre E-BGP et I-BGP
R Une annonce reçue en I-BGP n’est pas ré-annoncée en I-BGP
R L’attribut LOCAL_PREF n’est annoncé qu’en I-BGP
R Seuls les voisins E-BGP doivent être directement connectés
R Les annonces I-BGP ne modifient pas l’AS_PATH
R Les annonces I-BGP ne modifient pas le NEXT_HOP
R Le MED n’est pas annoncé en I-BGP
Le traitement différent appliqué aux attributs de route suivant que le voisin BGP est externe ou interne est
résumé dans le tableau suivant :
ATTRIBUT E-BGP I-BGP
-----------------------------------------------------------------------------------------------------------------
AS_PATH =(local AS+AS_PATH) non modifié si reçu en E-BGP
NEXT_HOP =@IP annonceur non modifié
MED =métrique non annoncé
LOCAL_PREF pas annoncé annoncé
ATOMIC_AGGREGATE
AGGREGATOR
Certains minuteurs (vus plus loin) sont aussi traités différemment :
MINUTEUR E-BGP I-BGP
------------------------------------------------------------------------------------------------------------------
MinRouteAdvertisement pris en compte pas pris en compte (pour accélérer
la convergence dans l’AS)34
LE ROUTAGE BGP4(+) / septembre 2006 34/56 V2.0
L’annonce des routes internes d’un AS
R Statique
R Pas d’instabilité de routage, mais trous noirs possibles
R Exemples en IOS
R redistribute [static|connected] -> ORIGIN: Incomplete
R network -> ORIGIN: IGP
R Dynamique
R Suit au mieux l’état du réseau, nécessite du filtrage
R Exemples en IOS
R redistribute -> ORIGIN: IGP
La redistribution de routes apprises dynamiquement est difficile à contrôler. Il est nécessaire de
faire attention à ne pas faire boucler la redistribution de routes entre l’IGP et BGP (notamment la
route par défaut !).
L’annonce statique est à préférer à priori pour annoncer les routes internes de l’AS par BGP.35
LE ROUTAGE BGP4(+) / septembre 2006 35/56 V2.0
La politique de routage
R Elle peut influencer :
R Le traitement des routes reçues
R Le traitement des routes annoncées
R L'interaction avec les IGP de l’AS
R En pratique elle s’exprime par :
R Du filtrage de réseaux
R Du filtrage de routes (AS_PATH)
R De la manipulation d’attributs de routes36
LE ROUTAGE BGP4(+) / septembre 2006 36/56 V2.0
Politique de routage :
exemple de filtrage de réseaux sur ZEBRA
R Filtrage des réseaux annoncés : AS100 ne veut pas servir d’AS de
transit pour le réseau 2001:660:114:0:3::/64 de l’AS300
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:1::2 remote-as 200
[…..]
neighbor 2001:660:114:9:1::2 distribute-list 1 out
access-list 1 deny 2001:660:114:0:3::/64 le 128
access-list 1 permit ::/0 le 128
Le filtrage BGP s’appuie sur le même mécanisme des access-list qui est utilisé pour le filtrage des
paquets IP. L’application de l’access-list à une session BGP (au lieu d’une interface dans le cas de
filtrage de paquets IP) permet d’éliminer certains réseaux d’une annonce reçue (paramètre ‘in’)
ou faite (paramètre ‘out’).
Dans le cas ci-dessus, l’access-list est à appliquer à toutes les autres sessions BGP que pourrait
avoir le routeur R1.37
LE ROUTAGE BGP4(+) / septembre 2006 37/56 V2.0
Politique de routage :
exemple de filtrage de réseaux sur ZEBRA
R Filtrage des réseaux annoncés : AS100 ne veut pas servir d’AS de
transit pour le réseau 2001:660:114:0:3::/64 de l’AS300 (variante)
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:2::3 remote-as 300
[…..]
neighbor 2001:660:114:9:2::3 distribute-list 1 in
access-list 1 deny 2001:660:114:0:3::/64 le 128
access-list 1 permit ::/0 le 128
Dans cette variante, l’élimination de l’annonce du réseau 2001:660:114:0:3::/64/24 empêche bien
le transit car ce réseau ne sera pas réannoncé, mais en plus, l’AS 100 ne sera pas capable de router
ce réseau.38
LE ROUTAGE BGP4(+) / septembre 2006 38/56 V2.0
Politique de routage :
exemple de filtrage de routes sur ZEBRA
R Filtrage des AS_PATH annoncés : AS100 ne veut pas servir d’AS
de transit pour tous les réseaux internes d’AS300
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:1::2 remote-as 200
[….]
neighbor 2001:660:114:9:1::2 filter-list 1 out
ip as-path access-list 1 deny ^300$
ip as-path access-list 1 permit .*
Les AS_PATH étant des chaînes de caractères, l’identification et la localisation d’un AS ou d’un
ensemble d’AS se fait par des expressions régulières, en utilisant le sous ensemble suivant de
caractères spéciaux :
Caractère Symbole Signification
---------------------------------------------------------------------------------------------------
Point . Représente n’importe quel caractère
Astérisque * Représente 0 ou N fois le caractère précédent
Plus + Représente 1 ou N fois le caractère précédent
Interrogation ? Représente 0 ou 1 fois le caractère précédent
Circonflexe ^ Représente le début de la chaîne de caractères
Dollar $ Représente la fin de la chaîne de caractères
Souligné _ Représente l’un des 5 caractères servant à délimiter
les N° d ’AS soit: ,{}() le début ou fin de chaîne
Crochet ouvrant [ Début d’un intervalle
Crochet fermant ] Fin d’un intervalle
Tiret - Sépare les 2 caractères définissant l’intervalle
Les 3 derniers caractères spéciaux s’utilisent conjointement, par exemple l’intervalle noté [1-6]
représente un chiffre compris entre 1 et 6 inclus.39
LE ROUTAGE BGP4(+) / septembre 2006 39/56 V2.0
Politique de routage :
exemple de manipulation sur ZEBRA
R Filtrage par route map : AS100 veut privilégier la route par défaut
annoncée par AS300
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:2::3 remote-as 300
[…..]
neighbor 194.9.2.3 route MAP_300 in
neighbor 194.9.1.2 route MAP_200 in
Nota : confédération de routeurs dans AS10040
LE ROUTAGE BGP4(+) / septembre 2006 40/56 V2.0
Politique de routage :
exemple de manipulation sur ZEBRA (suite)
R Filtrage par route map : AS100 veut savoir router uniquement
2001:660:114:0:3::/64, mais sans servir d’AS de transit pour AS300
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
route map MAP_300 permit 10
match ip address 1
set LOCAL_PREF 150
route map MAP_300 permit 20
set LOCAL_PREF 100
access-list 1 permit 0.0.0.0 0.0.0.0
route map MAP_200 permit 10
match ip address 1
set LOCAL_PREF 100
route map MAP_200 permit 20
set LOCAL_PREF 15041
LE ROUTAGE BGP4(+) / septembre 2006 41/56 V2.0
Optimisations : stabilité du routage (1)
R Les routes instables sont pénalisées
RÀ chaque instabilité => X points de pénalité
RSi Pénalité > limite L1 => route supprimée
RSi Pénalité < limite L2 => route rétablie
RSi : pas de nouvelle pénalité pendant T1 => Pénalité/2
RSi Pénalité < limite L3 => on oublie tout
R Ne concerne que les annonces E-BGP42
LE ROUTAGE BGP4(+) / septembre 2006 42/56 V2.0
Optimisations : stabilité du routage (2)
R Allure du facteur de mérite associé à une route instable
Facteur de mérite (RFC2439)
0,000
0,500
1,000
1,500
2,000
2,500
3,000
3,500
4,000
4,500
5,000
0,00 0,40 0,80 1,20 1,60 2,00 2,40 2,80 3,20
Temps
Valeur
Fréquence 1/2
Fréquence 1/3
Fréquence 1/4
Fréquence 1/8
Dans l’implémentation IOS de Cisco, on a :
- Pénalité pour une instabilité (X) = 1000 points
- Limite de suppression d’une route (L1) = 2000 points
- Limite de réutilisation d’une route (L2) = 750 points
- Valeur d’oubli des informations de pénalisation (L3) = 350 points
- Demie vie de la pénalisation (T1) = 120 secondes
Cette technique de pénalisation des routes instables est justifiée et standardisée dans le RFC2439.43
LE ROUTAGE BGP4(+) / septembre 2006 43/56 V2.0
Optimisations : contrôle du trafic BGP
R On peut agir sur différents minuteurs
R MinRouteAdvertisementInterval
R MinASOriginationInterval
RLa gigue dans la fréquence des annonces
R On peut réduire le volume des informations annoncées
RNLRI agrégés
RAS_PATH condensés
MinRouteAdvertisementInterval est le temps minimum entre 2 annonces de routes vers des
voisins externes (uniquement).
MinASOriginationInterval est le temps minimum entre 2 annonces résultant d’une mise à jour des
routes internes de l’AS (en provenance de l’IGP par exemple).
Le facteur de gigue est un paramètre global au routeur. C’est un nombre aléatoire à valeur dans
l’intervalle [0,75-1] qui pondère l’ensemble des 5 minuteurs du processus BGP.
Rappel des valeurs (en secondes) des minuteurs d’un processus BGP :
Minuteur Valeur suggérée implémentation implémentation
par le RFC1771 Cisco Zebra ----------------------------------------------------------------------------------------------------
ConnectRetry 120
Hold Time 90 180 180
KeepAlive 30 60 60
MinRouteAdvertisementInterval 30 30 0
MinASOriginationInterval 1544
LE ROUTAGE BGP4(+) / septembre 2006 44/56 V2.0
Optimisation : sécurisation des échanges BGP
R Mesures natives au protocole
RSession BGP = {@IP1,numéro AS1},{@IP2,numéro AS2}
RSignature MD5 de chaque message
R Compléments : mesures standard au niveau TCP ou IP
RFiltrage du port 179
R MAIS : a toutes les vulnérabilités de TCP ou IP
RDéni de service45
LE ROUTAGE BGP4(+) / septembre 2006 45/56 V2.0
Optimisations : les réflecteurs de routes
R Permet d’éviter une croissance en N2 des sessions I-BGP
R Mais rajoute un point de panne singulier
R On met donc plusieurs réflecteurs de route par AS
R4
AS 100
R1
I-BGP
R6
R5
Schéma sans réflecteur de routes Schéma avec 2 réflecteurs de routes (R4 et R5)
R4
AS 100
R1
I-BGP
R6
R5
Introduit à titre expérimental en 1996 par le RFC1966, modifié en 2000 par le RFC2756,
actuellement défini comme standard par le RFC4456 (d’avril 2006).
Si l’on considère un AS avec N routeurs de bord, il aura un nombre de sessions I-BGP qui sera égal à
: N(N-1)/2 sans réflecteur de route. Si certains de ces routeurs de bord sont aussi réflecteurs de route,
le nombre de sessions I-BGP sera plus faible, mais pourra varier entre 2 valeurs suivant le niveau de
redondance que l’on souhaite (noter que tous les réflecteurs de route doivent être complètement
maillés en sessions I-BGP).
Ainsi le nombre de sessions I-BGP sera compris entre :
N-1 et 2N-3 avec 2 réflecteurs de route
N et 3(N-2) avec 3 réflecteurs de route
N-R + R(R-1)/2 et NR - R(R+1)/2 avec R réflecteurs de route
La fonction Fmin(N,R)=N-R + R(R-1)/2 a une valeur minimale pour R=3/2 quel que soit N. Les
valeurs entières de R qui la minimisent sont donc 1 et 2.
La fonction Fmax(N,R)=NR-R(R+1)/2 a une valeur maximale pour R=N-1/2 donc plus R est petit
plus la valeur de Fmax sera faible.
Du point de vue de la minimisation du nombre de sessions I-BGP, la valeur optimale de R est donc
égale à 2 quel que soit N, si l’on veut assurer une redondance des réflecteurs de route. Dans ce cas
on a 2N-3 sessions I-BGP.46
LE ROUTAGE BGP4(+) / septembre 2006 46/56 V2.0
Extensions : les confédérations d’AS
R Permet de réduire le nombre de sessions I-BGP
R En divisant l’AS en mini-AS (ou sous AS)
R Les routeurs de bord d’un mini-AS établissent des sessions
RI-BGP entre eux (maillage complet)
RE-BGP avec leurs voisins d’autres AS
RPseudo E-BGP avec leurs voisins d’autres minis-AS
R Vu de l’extérieur, la confédération d’AS apparaît comme un seul et
unique AS
Pour bien apparaître comme faisant partie d’un même AS vis-à-vis de l’extérieur, les routeurs de
bord de deux mini-AS différents échangent des sessions E-BGP (car leurs numéros d’AS sont
différents), mais ces sessions suivent les mêmes règles de modification des attributs de route que
les sessions I-BGP. Lors de ces sessions, les attributs NEXT_HOP, MED, et LOCAL_PREF ne
sont donc pas modifiés.
Les confédérations d’AS ont été introduites en 1996 à titre expérimental par le RFC1965, puis
standardisées en 2001 par le RFC3065.47
LE ROUTAGE BGP4(+) / septembre 2006 47/56 V2.0
Extensions : les groupements de routeurs
R Les routeurs BGP d’un groupement partagent la même politique de
routage (ex. routes maps, filtres d’annonces, …)
R Cette politique est définie sur l’un des routeurs du groupement
R Elle est propagée automatiquement sur les autres routeurs
R Un routeur du groupement peut modifier localement sa politique de
routage (mais ne la propage pas aux autres)48
LE ROUTAGE BGP4(+) / septembre 2006 48/56 V2.0
Extensions : les serveurs de route
R Sur un grand point d’échange on peut avoir :
R100 fournisseurs d’accès Internet
RPlus de 180 000 routes annoncées (en 2006)
R Ce qui pourrait impliquer :
RJusqu'à 10 000 sessions TCP !
R Solution : les serveurs de route
RRéduit le nombre de sessions (quelques unes par fournisseur
d’accès)
Introduit à titre expérimental en 1995 par le RFC1863, et classé en historique en 2005 par le
RFC4223.49
LE ROUTAGE BGP4(+) / septembre 2006 49/56 V2.0
Extensions : le routage multi-protocole (IPv6)
R Dans BGP, seuls 3 attributs de route de dépendent d’IPv4
RNLRI, NEXT_HOP, (AGGREGATOR)
R Pour rendre BGP multi-protocole, on introduit 2 attributs de route
supplémentaires
R MP_REACH_NLRI (optionnel, non-transitif)
R MP_UNREACH_NLRI (optionnel, non-transitif)
R L’attribut de route MP_REACH_NLRI contient des triplets
RAdress_family (ex. IPv4, IPv6, IPX), NEXT_HOP, NLRI
R Un message UPDATE contient MP_REACH_NLRI et les autres
attributs de route déjà vus (ORIGIN, LOCAL_PREF...)
Introduit comme standard par le RFC2858. Les seules modifications de configurations
correspondent aux format des adresses IPv6.
Exemple de configuration d’une session BGP en IPv6 sous Zebra :
router bgp 65400
bgp router-id 192.108.119.167
ipv6 bgp neighbor 2001:660:281:8::1 remote-as 1938
Exemple d’affichage des informations BGP en IPv6 sous Zebra :
bgpd# sh ipv6 bgp
BGP table version is 0, local router ID is 192.108.119.167
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Metric LocPrf Weight Path
*> ::194.182.135.0/120 0 1938 2200 1103 766 278 6435 i
2001:660:281:8::1(fe80::83fe:c80a)
*> 2001:200::/35 0 1938 2200 3425 2500 i
2001:660:281:8::1(fe80::83fe:c80a)
*> 2001:200:12a::/48 0 1938 2200 5511 3549 ?
2001:660:281:8::1(fe80::83fe:c80a)
[….]50
LE ROUTAGE BGP4(+) / septembre 2006 50/56 V2.0
Exemple de configuration BGP en IPv6 (Zebra)
router bgp 65400
bgp router-id 192.108.119.167
ipv6 bgp neighbor 2001:660:281:8::1 remote-as 1938
ipv6 bgp neighbor 2001:660:281:8::1 prefix-list filtre_nlri in
ipv6 bgp neighbor 2001:660:281:8::1 filter-list filtre_as in
!
ipv6 prefix-list filtre_nlri description Refus des annonces de son préfixe et du 2002::/16
ipv6 prefix-list filtre_nlri seq 5 deny 3ffe:305:1014::/48 le 128
ipv6 prefix-list filtre_nlri seq 10 deny 2002::/16 le 128
ipv6 prefix-list filtre_nlri seq 15 permit any
!
ip as-path access-list filtre_as deny 1938 2200 5511 *
ip as-path access-list filtre_as permit .*
Résultat sous Zebra de la configuration ci-dessus (commande ‘sh ipv6 bgp neighbors’)
BGP neighbor is 2001:660:281:8::1, remote AS 1938, external link
BGP version 4, remote router ID 131.254.200.10
BGP state = Established, up for 00:04:16
Last read 00:00:16, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received(old and new)
[…..]
For address family: IPv6 Unicast
Community attribute sent to this neighbor
Inbound path policy configured
Incoming update prefix filter list is *filtre_nlri
Incoming update AS path filter list is *filtre_as
225 accepted prefixes
Connections established 1; dropped 0
Local host: 2001:660:281:8::2, Local port: 1190
Foreign host: 2001:660:281:8::1, Foreign port: 179
Nexthop: 192.108.119.167
Nexthop global: 2001:660:281:8::2
Nexthop local: ::
BGP connection: non shared network
Read thread: on Write thread: off51
LE ROUTAGE BGP4(+) / septembre 2006 51/56 V2.0
Extensions : le routage multicast (MBGP)
R Vu comme un cas particulier du routage multi-protocole
R Utilisation de la notion de sous famille d’adresse
R Implémentations récentes (IOS, ….)
Introduit comme standard par le RFC2858 en juin 2000.52
LE ROUTAGE BGP4(+) / septembre 2006 52/56 V2.0
Extensions : annonce de capacité
R Standardisé initialement en mai 2000 par le RFC2842 (statut PS)
R Standardisé définitivement en novembre 2002 par le RFC3392 (DS)
R Introduit un paramètre optionnel : capabilities
R Annonce les capacités fonctionnelles d’un routeur lors de l’OPEN
R Permet une mise à niveau automatique des fonctionnalités utilisées
dans cette session BGP
R Permettra des mises à niveau des implémentations de BGP non
synchrones
Exemple sous Ios/Cisco du résultat de la commande ‘sh ipv6 bgp neighbors’ :
BGP neighbor is 2001:660:281:1::1, remote AS 1938, external link
BGP version 4, remote router ID 131.254.200.10
BGP state = Established, up for 16:42:08
Last read 00:00:08, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received
Address family IPv6 Unicast: advertised and received
Received 5601 messages, 0 notifications, 0 in queue
Sent 3785 messages, 0 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 30 seconds
For address family: IPv6 Unicast
BGP table version 3272, neighbor version 3272
Index 1, Offset 0, Mask 0x2
264 accepted prefixes consume 16896 bytes
Prefix advertised 4, suppressed 0, withdrawn 053
LE ROUTAGE BGP4(+) / septembre 2006 53/56 V2.0
Bibliographie : principaux RFC sur BGP
R RFC1772 Application of the Border Gateway Protocol in the Internet. Y
Rekhter, P. Gross. 03/1995. (DS)
R RFC1773 Experience with the BGP-4 protocol. P. Traina. 03/1995. (INFO)
R RFC1774 BGP-4 Protocol Analysis. P. Traina, Editor. 03/1995. (INFO)
R RFC1997 BGP Communities Attribute. R. Chandra, P. Traina & T. Li. 06/1996.
(PS)
R RFC1998 An Application of the BGP Community Attribute in Multi-home Routing.
E. Chen & T. Bates. 06/1996. (INFO)
R RFC2042 Registering New BGP Attribute Types. B. Manning. 01/1997. (INFO)
R RFC2385 Protection of BGP Sessions via the TCP MD5 Signature Option. A.
Heffernan. 08/1998. (PS)
R RFC2439 BGP Route Flap Damping. C.Villamizar, R.Chandra, R.Govindan. 11/1998.
(PS)
R RFC2457 Definitions of Managed Objects for Extended Border Node. B. Clouston,
B. Moore. 11/1998. (PS)
R RFC2545 Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing.
P. Marques, F. Dupont. 03/1999. (PS)
R RFC2858 Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R. Chandra,
D. Katz. 06/2000. (PS)
Bref historique de l’évolution du protocole BGP (voir RFC1773)
BGP-1 : RFC1105, juin 1989
BGP-2 : RFC1163, juin 1990
La hiérarchisation des AS est supprimée (notion de liens inter-AS haut/bas/horizontaux),
introduction des attributs de routes, beaucoup de changements dans les formats des
messages.
BGP-3 : RFC1267, octobre 1991
Détection et gestion des collisions d’ouvertures de sessions BGP, introduction d ’un
identifiant de routeur, le NEXT_HOP peut être situé dans un autre AS que celui du
routeur qui fait l’annonce.
BGP-4 : RFC1771, mars 1995
Ajout des adresses CIDR, introduction des ensembles d’AS (non ordonnés) dans les
AS_PATH, et ajout des attributs de route MED (remplace INTER-AS METRIC),
LOCAL-PRFERENCE, AGGREGATOR.
BGP-4+ : RFC2283 en février 1998, RFC2545 en mars 1999, RFC2858 en juin 2000
Extensions multiprotocoles (RFC2283, remplacé par le RFC2858)
Support d’IPv6 (RFC2545)
Routage multicast
Réflecteurs de routes, RFC2796 en avril 2000
Annonces de capacités, RFC2842 en mai 2000, puis RFC3302 en novembre 2002
Confédérations d’AS RFC3065 en février 2001
Ré-écriture complète du RFC1771 par le RFC4271 en janvier 2006
BGP/MPLS, RFC4364 février 2006
Interaction entre OSPF et BGP/MPLS, RFC4577, juin 200654
LE ROUTAGE BGP4(+) / septembre 2006 54/56 V2.0
Bibliographie : principaux RFC sur BGP
R RFC2918 Route Refresh Capability for BGP-4. E. Chen, 09/2000. (PS)
R RFC3065 Autonomous System Confederations for BGP. P. Traina, D. McPherson, J.
Scudder. 02/2001. (PS)
R RFC3107 Carrying Label Information in BGP-4. Y.Rekhter, E.Rosen. 02/2001.(PS)
R RFC3345 Border Gateway Protocol (BGP) Persistent Route Oscillation Condition.
D. McPherson, V. Gill, D. Walton, A. Retana, 08/2002. (INFO)
R RFC3392 Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder.
11/2002. (DS)
R RFC4271 A Border Gateway Protocol 4 (BGP-4). Y. Rekhter, T. Li., S. Hares.
01/2006. (DS)
R RFC4272 BGP Security Vulnerabilities Analysis. S. Murphy. 01/2006 (INFO)
R RFC4273 Definitions of Managed Objects for BGP-4. J. Haas, Ed., S. Hares,
Ed.. 01/2006. (PS)
R RFC4274 BGP-4 Protocol Analysis. D. Meyer, K. Patel. 01/2006. (INFO)
R RFC4276 BGP-4 Implementation Report. S. Hares, A. Retana. 01/2006. (INFO)
R RFC4364 BGP/MPLS IP Virtual Private Networks (VPNs). E. Rosen, Y. Rekhter.
02/2006. (PS)
R RFC4456 BGP Route Reflection: An Alternative to Full Mesh Internal BGP
(IBGP). T. Bates, E. Chen, R. Chandra. 04/2006. (DS)55
LE ROUTAGE BGP4(+) / septembre 2006 55/56 V2.0
Bibliographie : livres
R Le routage dans l’Internet, C. Huitema, Eyrolles, 1994
R Interconnections with bridges and routers, R, Perlman,
Addison-Wesley, 1996
R Internet Routing Architectures, B.Halabi, Cisco Press,
1997
R BGP4 Inter-Domain Routing in the Internet, J. W. Stewart
III, Addison-Wesley, 199956
LE ROUTAGE BGP4(+) / septembre 2006 56/56 V2.0
Bibliographie : Sites web
R www.rsng.net : Route Server Next generation Project
R www.merit.net : Nombreuses informations sur les points d’échange de trafic entre
opérateurs des USA.
R www.gated.org : Site de distribution du logiciel gated (payant) qui implemente la
plupart des logiciels de routage (dont BGP4)
R www.zebra.org : Site de distribution du logiciel zebra (licence GPL) qui implemente la
plupart des logiciels de routage (dont BGP4)
R www.caida.org : Propose des outils de métrologie réseau, beaucoup de données sur le
trafic.
R www.merit.edu/~ipma/ : outils de mesure de performances, beaucoup d’informations sur
les tables BGP de certains routeurs des points d’échange
R www.ep.net : Liste des points déchange
R www.ra.net : Routing Arbiter Project
R telnet://route-server.cerf.net : Accès en ligne a un routeur BGP
R http://www.cisco.com/univercd/cc/td/doc/cisintwk/ics/icsbgp4.htm : Manuel de référence
des commandes BGP sur IOS de Cisco.
R www.mcvax.org/~jhma/routing/ : nombreuses statistiques sur les tables de routage BGP
Pr´esentation de la radio cognitive
Badr Benmammar
To cite this version:
Badr Benmammar. Pr´esentation de la radio cognitive. 3`eme cycle. 2012.
HAL Id: cel-00680189
https://cel.archives-ouvertes.fr/cel-00680189v2
Submitted on 25 Mar 2012
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Présentation de la radio
cognitive
Badr Benmammar
badr.benmammar@gmail.com2
Plan
Radio logicielle (software radio)
Radio logicielle restreinte (SDR)
Radio cognitive (RC)
Historique
Définition
Relation entre RC et SDR
Architecture
Cycle de cognition
Composantes
Fonctions
Détection du spectre (Spectrum sensing)
Gestion du spectre (Spectrum management)
Mobilité du spectre (Spectrum mobility)3
Radio logicielle (software radio)
Travaux de Joseph Mitola (1991): définir une classe de radio
reprogrammable et reconfigurable.
Définition : La radio logicielle est une radio dans laquelle les fonctions
typiques de l’interface radio généralement réalisées en matériel, telles que la
fréquence porteuse, la largeur de bande du signal, la modulation et l’accès au
réseau sont réalisés sous forme logicielle. La radio logicielle moderne intègre
également l’implantation logicielle des procédés de cryptographie, codage
correcteur d’erreur, codage source de la voix, de la vidéo ou des données.
Le concept de radio logicielle doit également être considéré comme une
manière de rendre les usagers, les fournisseurs de services et les fabricants
plus indépendants des normes. Ainsi, avec cette solution, les interfaces radio
peuvent, en principe, être adaptées aux besoins d’un service particulier pour
un usager particulier dans un environnement donné à un instant donné.4
Radio logicielle restreinte (SDR)
On distingue plusieurs niveaux d’avancement dans le domaine : la radio
logicielle est le but ultime intégrant toute les fonctionnalités en logiciel, mais
elle impose des phases intermédiaires combinant anciennes et nouvelles
techniques, on parle alors de radio logicielle restreinte (software defined
radio). Les contraintes de puissance de calcul, de consommation électrique, de
coûts, etc. imposent actuellement de passer par cette phase intermédiaire.
La radio logicielle restreinte est un système de communication radio qui
peut s’adapter à n’importe quelle bande de fréquence et recevoir n’importe
quelle modulation en utilisant le même matériel.
Les opportunités qu’offre le SDR lui permettent de résoudre des problèmes
de la gestion dynamique du spectre. Les équipements SDR peuvent
fonctionner dans des réseaux sans fil hétérogènes c’est-à-dire qu’un SDR idéal
peut s’adapter automatiquement aux nouvelles fréquences et aux nouvelles
modulations. 5
Radio cognitive
L’idée de la radio cognitive a été présentée officiellement par Joseph Mitola
III à un séminaire à KTH, l'Institut royal de technologie, en 1998, publié plus
tard dans un article de Mitola et Gerald Q. Maguire, Jr en 1999.
Mitola combine son expérience de la radio logicielle ainsi que sa passion pour
l'apprentissage automatique et l'intelligence artificielle pour mettre en place la
technologie de la radio cognitive. D’après lui : Une radio cognitive peut
connaître, percevoir et apprendre de son environnement puis agir pour
simplifier la vie de l'utilisateur.
• Le terme radio cognitive (CR) est utilisé pour décrire un système ayant la
capacité de détecter et de reconnaître son cadre d'utilisation, ceci afin de lui
permettre d’ajuster ses paramètres de fonctionnement radio de façon
dynamique et autonome et d'apprendre des résultats de ses actions et de son
cadre environnemental d'exploitation. 6
Radio cognitive
La radio cognitive est une forme de communication sans fil dans laquelle un
émetteur/récepteur peut détecter intelligemment les canaux de
communication qui sont en cours d'utilisation et ceux qui ne le sont pas, et
peut se déplacer dans les canaux inutilisés. Ceci permet d'optimiser l'utilisation
des fréquences radio disponibles (RF) du spectre tout en minimisant les
interférences avec d'autres utilisateurs.
Cette capacité permet d'adapter chaque appareil aux conditions spectrales du
moment et offre donc aux utilisateurs un accès plus souple, efficace et
complet à cette ressource. Cette approche peut améliorer considérablement le
débit des données et la portée des liaisons sans augmenter la bande passante
ni la puissance de transmissions. La radio cognitive offre également une
solution équilibrée au problème de l'encombrement du spectre en accordant
d'abord l'usage prioritaire au propriétaire du spectre, puis en permettant à
d'autres de se servir des portions inutilisées du spectre.7
Radio cognitive
Le principe de la radio cognitive, repris dans la norme IEEE 802.22, nécessite une
gestion alternative du spectre qui est la suivante : un mobile dit secondaire pourra à
tout moment accéder à des bandes de fréquence qu’il juge libre, c’est-à-dire, non
occupées par l’utilisateur dit primaire possédant une licence sur cette bande.
L’utilisateur secondaire devra les céder une fois le service terminé ou une fois qu’un
utilisateur primaire aura montré des velléités de connexion.
On entreprend actuellement de modifier la norme IEEE 802.16 (WiMAX) par le biais
de la norme IEEE 802.16h afin de prendre en charge la coexistence et la collaboration
dans le même canal. La norme IEEE 802.22, qui vise la coexistence avec les
microphones et les systèmes de télévision, présente des caractéristiques semblables.
Les deux normes mettent en application les techniques de la radio cognitive.
Un Réseau Cognitif coordonne les transmissions suivant différentes bandes de
fréquences et différentes technologies en exploitant les bandes disponibles à un instant
donné et à un endroit donné. Il a besoin d’une station de base capable de travailler sur
une large gamme de fréquences afin de reconnaître différents signaux présents dans le
réseau et se reconfigurer intelligemment.8
Relation entre RC et SDR
L’une des principales caractéristiques de la radio cognitive est la capacité
d’adaptation où les paramètres de la radio (fréquence porteuse, puissance,
modulation, bande passante) peuvent être modifiés en fonction de :
L’environnement radio
La situation
Les besoins de l’utilisateur
L’état du réseau
La géo localisation
…
La radio logicielle est capable d’offrir les fonctionnalités de flexibilité, de
reconfigurabilité et de portabilité inhérentes à l’aspect d’adaptation de la radio
cognitive. Par conséquent, cette dernière doit être mise en œuvre autour d’une
radio logicielle. En d’autres termes, la radio logicielle est une "technologie
habilitante" pour la radio cognitive.9
Relation entre RC et SDR
Chargé de l’optimisation ou du
contrôle du module SDR en se basant
sur quelques paramètres d’entrée tels
que les informations issues de la
perception sensorielle ou de
l’apprentissage de l’environnement
radio, du contexte utilisateur, et de
l’état du réseau.
Figure 1 : Relation entre la radio cognitive et la radio logicielle restreinte10
Architecture de la RC
Mitola a défini l’architecture d’une radio cognitive par un ensemble cohérent
de règles de conception par lequel un ensemble spécifique de composants
réalise une série de fonctions de produits et de services.
Figure 2 : Architecture de la radio cognitive11
Architecture de la RC
Les six composantes fonctionnelles de l’architecture d’une radio cognitive sont:
La perception sensorielle (Sensory Perception : SP) de l'utilisateur qui inclut
l'interface haptique (du toucher), acoustique, la vidéo et les fonctions de détection et
de la perception.
Les capteurs de l'environnement local (emplacement, température, accéléromètre,
etc.).
Les applications système (les services médias indépendants comme un jeu en réseau).
Les fonctions SDR (qui incluent la détection RF et les applications radio de la SDR).
Les fonctions de la cognition (pour les systèmes de contrôle, de planification,
d'apprentissage).
Les fonctions locales effectrices (synthèse de la parole, du texte, des graphiques et
des affiches multimédias). 12
Protocoles utilisés par la radio cognitive
Figure 3 : Protocoles utilisés par la radio cognitive13
Protocoles utilisés par la radio cognitive
Dans la couche physique, le RF est mis en œuvre à base de radio définie par
logiciel. Les protocoles d'adaptation de la couche MAC, réseau, transport, et
applications doivent être conscients des variations de l'environnement radio
cognitif. En particulier, les protocoles d'adaptation devraient envisager
l'activité du trafic des principaux utilisateurs, les exigences de transmission
d'utilisateurs secondaires, et les variations de qualité du canal…
Pour relier tous les modules, un contrôle radio cognitif est utilisé pour établir
des interfaces entre l'émetteur/récepteur SDR et les applications et services
sans fil. Ce module radio cognitif utilise des algorithmes intelligents pour
traiter le signal mesuré à partir de la couche physique, et de recevoir des
informations sur les conditions de transmission à partir des applications pour
contrôler les paramètres de protocole dans les différentes couches. 14
Cycle de cognition
La composante cognitive de l’architecture de la radio cognitive comprend une
organisation temporelle, des flux d'inférences et des états de contrôle.
Ce cycle synthétise cette composante de manière évidente. Les stimuli entrent
dans la radio cognitive comme des interruptions sensorielles envoyées sur le
cycle de la cognition pour une réponse. Une telle radio cognitive observe
l'environnement, s’oriente, crée des plans, décide, et puis agit.
Figure 4 : Cycle de cognition de Mitola Figure 5 : Cycle de cognition simplifié15
Cycle de cognition
Phase d’observation (détecter et percevoir)
La RC observe son environnement par l'analyse du flux de stimuli entrant. Dans la
phase d'observation, la RC associe l’emplacement, la température, le niveau de
lumière des capteurs, et ainsi de suite pour en déduire le contexte de
communication. Cette phase lie ces stimuli à des expériences antérieures pour
discerner les modèles au fil du temps. La radio cognitive rassemble les expériences
en se souvenant de tout.
Phase d’orientation
La phase d'orientation détermine l'importance d'une observation en liant à celle-ci
une série connue de stimuli. Cette phase fonctionne à l'intérieur des structures de
données qui sont analogues à la mémoire à court terme (STM), que les gens
emploient pour s’engager dans un dialogue sans forcément se souvenir de tout à la
même mesure que dans la mémoire à long terme (LTM). Le milieu naturel fournit
la redondance nécessaire pour lancer le transfert de la STM à la LTM. La
correspondance entre les stimuli courants et les expériences stockées se fait par
reconnaissance des stimuli ou par reliure.16
Cycle de cognition
Phase de planification
La plupart des stimuli sont traités avec délibérative plutôt qu’avec réactivité. Un
message entrant du réseau serait normalement traité par la génération d'un plan
(dans la phase de plan, la voie normale). Le plan devrait également inclure la phase
de raisonnement dans le temps. Généralement, les réponses réactives sont
préprogrammées ou apprises en étant dit, tandis que d'autres réactions de
délibération sont prévues.
Phase de décision
La phase de décision sélectionne un plan parmi les plans candidats. La radio peut
alerter l'utilisateur d’un message entrant ou reporter l'interruption à plus tard en
fonction des niveaux de QoI (Quality of Information) statués dans cette phase.
Phase d’action
Cette phase lance les processus sélectionnés qui utilisent les effecteurs
sélectionnés qui accèdent au monde extérieur ou aux états internes de la radio
cognitive. L'accès au monde extérieur consiste principalement à composer des
messages qui doivent être envoyés dans l'environnement en audio ou exprimés
dans différents langages appropriés. 17
Cycle de cognition
Phase d’apprentissage
L’apprentissage dépend de la perception, des observations, des décisions
et des actions. L'apprentissage initial est réalisé à travers la phase
d’observation dans laquelle toutes les perceptions sensorielles sont
continuellement comparées à l'ensemble de l'expérience antérieure pour
continuellement compter les événements et se souvenir du temps écoulé
depuis le dernier événement.
L'apprentissage peut se produire quand un nouveau modèle est créé en
réponse à une action. Par exemple, les états internes antérieurs et courants
peuvent être comparés avec les attentes pour en apprendre davantage sur
l'efficacité d'un mode de communication.18
Composantes de la radio cognitive
Les différentes composantes d'un émetteur/récepteur radio cognitive qui mettent en
œuvre ces fonctionnalités sont présentées dans la figure ci-dessous.
Figure 6 : Composante de la radio cognitive19
Composantes de la radio cognitive
Emetteur / Récepteur: un émetteur/récepteur SDR sans fil est le composant
majeur avec les fonctions du signal de transmission de données et de réception. En
outre, un récepteur sans fil est également utilisé pour observer l'activité sur le spectre
de fréquence (spectre de détection).
Les paramètres émetteur/récepteur dans le nœud de la radio cognitive peuvent
être modifiés dynamiquement comme dicté par les protocoles de couche
supérieure.
Analyseur de spectre (Spectrum analyser): L'analyseur de spectre utilise les signaux
mesurés pour analyser l'utilisation du spectre (par exemple pour détecter la signature
d'un signal provenant d'un utilisateur primaire et trouver les espaces blancs du spectre
pour les utilisateurs secondaires).
L'analyseur de spectre doit s'assurer que la transmission d'un utilisateur primaire
n'est pas perturbée si un utilisateur secondaire décide d'accéder au spectre. Dans
ce cas, diverses techniques de traitement du signal peuvent être utilisées pour
obtenir des informations sur l'utilisation du spectre.20
Composantes de la radio cognitive
Extraction de connaissances et apprentissage (Knowledge
extraction/learning): L'apprentissage et l'extraction de connaissances utilisent les
informations sur l'utilisation du spectre pour comprendre l'environnement ambiant RF
(par exemple le comportement des utilisateurs sous licence). Une base de
connaissances de l'environnement d'accès au spectre est construite et entretenue, qui
est ensuite utilisée pour optimiser et adapter les paramètres de transmission pour
atteindre l'objectif désiré sous diverses contraintes. Les algorithmes d'apprentissage
peuvent être appliqués pour l'apprentissage et l'extraction de connaissances.
Prise de décision (Decision making): Après que la connaissance de l'utilisation du
spectre soit disponible, la décision sur l'accès au spectre doit être faite. La décision
optimale dépend du milieu ambiant, elle dépend du comportement coopératif ou
compétitif des utilisateurs secondaires. Différentes techniques peuvent être utilisées
pour obtenir une solution optimale.21
Fonctions de la radio cognitive
Les principales fonctions de la radio cognitive sont les suivantes:
Détection du spectre (Spectrum sensing)
Détecter le spectre non utilisé et le partager sans interférence avec d'autres
utilisateurs. La détection des utilisateurs primaires est la façon la plus efficace pour
détecter les espaces blancs du spectre.
L'un des objectifs de la détection du spectre, en particulier pour la détection des
interférences, est d'obtenir le statut du spectre (libre /occupé), de sorte que le
spectre peut être consulté par un utilisateur secondaires en vertu de la contrainte
d'interférence. Le défi réside dans le fait de mesurer l'interférence au niveau du
récepteur primaire causée par les transmissions d'utilisateurs secondaires.
Gestion du spectre (Spectrum management)
Capter les meilleures fréquences disponibles pour répondre aux besoins de
communication des utilisateurs.
Les radios cognitives devraient décider de la meilleure bande de spectre pour
répondre aux exigences de qualité de service sur toutes les bandes de fréquences
disponibles, donc les fonctions de gestion du spectre sont nécessaires pour les
radios cognitives. Ces fonctions de gestion peuvent être classées comme suit:22
Fonctions de la radio cognitive
Analyse du spectre :
Les résultats obtenus de la détection du spectre sont analysés pour estimer la qualité
du spectre. Une des questions ici est de savoir comment mesurer la qualité du
spectre qui peut être accédée par un utilisateur secondaire.
Cette qualité peut être caractérisée par le rapport signal/bruit, la durée moyenne et
la corrélation de la disponibilité des espaces blancs du spectre. Les informations sur
cette qualité de spectre disponible à un utilisateur par radio cognitive peuvent être
imprécises et bruyantes.
Des algorithmes d’apprentissage de l’intelligence artificielle sont des techniques qui
peuvent être employées par les utilisateurs de la radio cognitive pour l'analyse du
spectre.
Décision sur le spectre :
Modèle de décision: un modèle de décision est nécessaire pour l'accès au spectre. La
complexité de ce modèle dépend des paramètres considérés lors de l'analyse du spectre.
Le modèle de décision devient plus complexe quand un utilisateur secondaire a des objectifs
multiples. Par exemple, un utilisateur secondaire peut avoir l'intention de maximiser son
rendement tout en minimisant les perturbations causées à l'usager primaire. Les méthodes
d'optimisation stochastique (le processus de décision de Markov) seront un outil intéressant
pour modéliser et résoudre le problème d’accès au spectre dans un environnement radio
cognitif.23
Fonctions de la radio cognitive
Compétition / coopération dans un environnement multi utilisateurs : Lorsque
plusieurs utilisateurs (à la fois primaires et secondaires) sont dans le système, leur préférence
va influer sur la décision du spectre d’accès. Ces utilisateurs peuvent être coopératifs ou non
coopératifs dans l'accès au spectre.
Dans un environnement non-coopératif, chaque utilisateur a son propre objectif, tandis
que dans un environnement coopératif, tous les utilisateurs peuvent collaborer pour atteindre
un seul objectif. Par exemple, plusieurs utilisateurs secondaires peuvent entrer en
compétition les uns avec les autres pour accéder au spectre radio (par exemple, O1, O2, O3,
O4 dans la figure ci-dessous) de sorte que leur débit individuel soit maximisé. Au cours de
cette concurrence entre les utilisateurs secondaires, tous veillent à ce que l’interférence causée
à l'utilisateur primaire est maintenue en dessous de la limite de température de brouillage
correspondante. La théorie des jeux est l'outil le plus approprié pour obtenir la solution
d'équilibre pour le problème du spectre dans un tel scénario.
Dans un environnement coopératif, les radios cognitives coopèrent les unes avec les
autres pour prendre une décision pour accéder au spectre et de maximiser une fonction
objectif commune en tenant compte des contraintes. Dans un tel scénario, un contrôleur
central peut coordonner le spectre de gestion. 24
Fonctions de la radio cognitive
Figure 7 : Accès au spectre Coopératif et non-coopératif 25
Fonctions de la radio cognitive
Mise en œuvre distribuée du contrôle d’accès au spectre : Dans un environnement
multi utilisateur distribué, pour un accès non-coopératif au spectre, chaque utilisateur peut
parvenir à une décision optimale de façon indépendante en observant le comportement
(historique / action) des autres utilisateurs du système. Par conséquent, un algorithme
distribué est nécessaire pour un utilisateur secondaire pour prendre la décision sur l'accès au
spectre de manière autonome.
Mobilité du spectre (Spectrum mobility)
C’est le processus qui permet à l’utilisateur de la RC de changer sa fréquence de
fonctionnement. Les réseaux radio cognitifs essayent d’utiliser le spectre de manière
dynamique en permettant à des terminaux radio de fonctionner dans la meilleure
bande de fréquence disponible, de maintenir les exigences de communication
transparentes au cours de la transition à une meilleure fréquence.
Recherche des meilleures bandes de fréquence : La RC doit garder une trace des bandes
de fréquence disponibles de sorte que si nécessaire (par exemple, un utilisateur autorisé est
détecté), il peut passer immédiatement à d'autres bandes de fréquences. Lors de la
transmission par un utilisateur secondaire, l'état de la bande de fréquences doit être respecté.
Auto-coexistence et synchronisation : Quand un utilisateur secondaire effectue un
transfert du spectre, deux questions doivent être prises en compte. Le canal cible ne doit pas
être actuellement utilisé par un autre utilisateur secondaire (l'exigence d'auto-coexistence), et
le récepteur de la liaison secondaire correspondant doit être informé de la non-intervention
du spectre (la demande de synchronisation). 26
Nos publications dans le domaine de la RC
Asma Amraoui, Fatima zohra Benidris, Badr Benmammar, Francine Krief and Fethi Tarik
Bendimerad. "Toward cognitive radio resource management based on multi-agent systems for
improvement of real-time application performance". Proceedings of the Fifth IFIP International
Conference on New Technologies, Mobility and Security (NTMS'2012). Istanbul, Turkey.7-10
May 2012.
B. Benmammar, A. Amraoui and W. Baghli. "Performance improvement of wireless link
reliability in the context of cognitive radio". IJCSNS International Journal of Computer Science
and Network Security. VOL.12 No.01, January, 2012, pp. 15-22. ISSN : 1738-7906.
A. Amraoui, W. Baghli and B. Benmammar, "Improving video conferencing application quality
for a mobile terminal through cognitive radio", Proceedings of the 14th IEEE International
Conference on Communication Technology (ICCT 2012). Chengdu, China, November 9th-11th,
2012.
A. Amraoui, W. Baghli et B. Benmammar, "Amélioration de la fiabilité du lien sans fil pour un
terminal radio cognitive mobile". Dans les actes du 12 ème Journées Doctorales en Informatique
et Réseau (JDIR'11). Belfort, France, 23-25 Novembre 2011. Pages : 1-6. 27
Publications relatives à nos travaux
Zeina Jrad, Badr Benmammar, Joseph Corréa, Francine Krief, Nader Mbarek. "A User
Assistant for QoS Negotiation in a Dynamic Environment Using Agent Technology".
Proceedings of the Second IEEE and IFIP International Conference on Wireless and Optical
Communications Networks WOCN 2005. March 6 - 8, 2005, Hyatt Regency Hotel, Dubai,
United Arab Emirates UAE, Print ISBN: 0-7803-9019-9.
B. Benmammar and F. Krief. “Resource Management for End-to-End QoS in a Mobile
Environment”. 2nd IEEE INTERNATIONAL CONFERENCE ON Wireless and Mobile
Computing, Networking and Communications (WiMob 2006). Montréal, Canada. June 19-21,
2006.
N. Samaan, B. Benmammar, F. Krief and A. Karmouch. "Prediction-based Advanced
Resource Reservation in a Mobile Environment". 18th IEEE Annual Canadian Conference on
Electrical and Computer Engineering, CCECE05, May 1-4, 2005, Saskatoon Inn, Saskatoon,
Saskatchewan Canada.28
Publications relatives à nos travaux
B. Benmammar and F. Krief. "MQoS NSLP: a mobility profile management based approach
for advance resource reservation in a mobile environment". Proceedings of the 7th IFIP
IEEE International Conference on Mobile and Wireless Communications Networks (MWCN
2005). Marrakech, Morocco. September 19-21, 2005.
Z. Jrad, F. Krief and B. Benmammar. "An Intelligent User Interface for the Dynamic
Negotiation of QoS". Proceedings of the 10th IEEE International Conference on
Telecommunications.ICT'2003. Papeete, Tahiti. February 2003, Print ISBN: 0-7803-7661-7.
B. Benmammar et F. Krief. “La Technologie Agent et les Réseaux Sans Fil”. Congrès Des
Nouvelles Architectures pour les Communications. DNAC’2003. Paris, France. Octobre 2003.
Analyse num´erique
Catherine Bolley
To cite this version:
Catherine Bolley. Analyse num´erique. Ecole d’ing´enieur. Ecole Centrale de Nantes, 2012, ´
pp.97.
HAL Id: cel-01066570
https://cel.archives-ouvertes.fr/cel-01066570
Submitted on 21 Sep 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Catherine Bolley
Analyse numériqueÉcole Centrale de Nantes — 2012
Ce document est sous licence Creative Commons BY-NC-SA 4.0 France :
— attribution ;
— pas d’utilisation commerciale ;
— partage dans les mêmes conditions.
http://creativecommons.org/licenses/by-nc-sa/4.0/deed.frTable des matières
1 Généralités sur les matrices
1.1 Normes matricielles 9
1.2 Suites dans Kn;n 10
2 Résolution numérique de systèmes linéaires
2.1 Méthodes directes 13
2.1.1 Système triangulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Méthodes de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.3 Méthode LU ou algorithme de Crout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.4 Méthode de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Méthodes itératives 18
2.2.1 Résultats généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Principales méthodes itératives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Convergence et comparaison des méthodes itératives 21
2.3.1 Matrices à diagonale strictement dominante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Matrices hermitiennes définies positives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Calcul de valeurs et vecteurs propres
3.1 Vecteurs propres d’une matrice triangulaire 23
3.2 Méthodes de la puissance itérée 24
3.2.1 Itérations simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.2 Méthode d’accélération de convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.3 Méthode de la puissance itérée inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3 Méthodes issues de transformations matricielles 26
3.3.1 Méthode de Rutishauser ou du LU
LR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.2 Matrices réelles symétriques : méthode de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4 Interpolation polynomiale
4.1 Polynôme d’interpolation de Lagrange 31
4.1.1 Existence et unicité du polynôme d’interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . 31
4.1.2 Erreur d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.3 Choix des points d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Construction du polynôme d’interpolation 33
4.2.1 Différences divisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.2 Différences finies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Schéma de Hörner 35
5 Approximation de fonctions
5.1 Approximation hilbertienne 375.2 Approximation au sens des moindres carrés 38
5.2.1 Données dans L
2
w .a I b/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.2 Données dans R
n
: approximation au sens des moindres carrés discret . . . . . . . . . . . . . . . . 39
5.2.3 Convergence des approximations au sens des moindres carrés . . . . . . . . . . . . . . . . . . . . . . 39
5.3 Polynômes orthonormés 40
6 Intégration numérique
6.1 Étude générale 43
6.1.1 Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.1.2 Erreur d’intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.1.3 Convergence des méthodes d’intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2 Formules d’intégration numérique 44
6.2.1 Formules élémentaires de Newton-Côtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2.2 Méthodes d’intégration numérique composées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2.3 Formules de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3 Intégration numérique en deux dimensions 48
7 Équations différentielles du premier ordre à condition initiale
7.1 Problème de Cauchy 51
7.1.1 Condition de Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.1.2 Théorème d’existence et d’unicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2 Méthodes de résolution numériques à un pas 52
7.2.1 Méthode d’Euler-Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2.2 Étude générale des méthodes à un pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.3 Méthodes de résolution numérique à pas multiples 56
7.3.1 Méthodes d’Adams-Bashforth à k C 1 pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.3.2 Méthodes d’Adams-Moulton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.3.3 Formulation générale des méthodes à pas multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8 Systèmes d’équations non linéaires
8.1 Principe de résolution par itérations 61
8.2 Principales méthodes en une dimension 62
8.2.1 Méthode des approximations successives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.2 Méthode de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.3 Méthode de dichotomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3 Principales méthodes dans R
n 64
8.3.1 Méthode des approximations successives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3.2 Méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.4 Application aux racines de polynômes : méthode de Bairstow 65
8.4.1 Principe de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.4.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 Exercices
A Méthode des éléments finis en dimension 1
A.1 Étude de l’erreur d’approximation 79
A.1.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
A.1.2 Majoration de jju
uhjj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
A.1.3 Majoration de ju
uhj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.1.4 Majoration de ju
uhj1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.2 Problème approché avec intégration numérique 81
A.2.1 Majoration de jju
Quhjj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
A.2.2 Majoration de ju
Quhj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
A.2.3 Erreur d’intégration numérique par la méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . 83
A.2.4 Majoration de Rh si on utilise la méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.3 Tests numériques de résolution de problèmes approchés 84
B Méthode de la puissance itérée pour le calcul de valeurs propres
B.1 Itérations simples 85
B.1.1 Résultats généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
B.1.2 Approximation d’un vecteur propre associé à 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
B.1.3 Approximation de la valeur propre 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
B.1.4 Cas où l’itéré initial est orthogonal à l’espace propre à gauche associé à 1 . . . . . . . . . . . . . 86
B.1.5 Amélioration de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
B.1.6 Calcul d’autres éléments propres : méthode de déflation . . . . . . . . . . . . . . . . . . . . . . . . . . 88
B.2 Méthode d’accélération de convergence 88
B.3 Méthode de la puissance itérée inverse 89
C Prérequis d’analyse numérique
C.1 Analyse matricielle 91
C.2 Algèbre linéaire 91
C.3 Valeurs propres 92
C.4 Résolution numérique de systèmes linéaires 93
C.5 Analyse 961
Généralités sur les matrices
Notations et rappels
Dans ce document, l’ensemble K est un corps commutatif, R ou C. Kn
est l’espace vectoriel des
vecteurs (colonnes) à n lignes à coefficients dans K. Si u 2 Kn
, on notera u D .ui/iD1;:::;n où les
ui sont les coefficients de u. Kn;m est l’espace vectoriel des matrices à n lignes et m colonnes à
coefficients dans K. Si A 2 Kn;m a pour coefficients aij , on notera :
A D .aij /
i;j ; i D 1; : : : ; n; j D 1; : : : ; m (1.1)
où i désigne l’indice de ligne et j , l’indice de colonne. La matrice A
> 2 Km;n désigne la
transposée de la matrice A et ses coefficients vérifient :
a
>
ij D aj i; i D 1; : : : ; n; j D 1; : : : ; m (1.2)
La matrice A
2 Kn;m est l’adjointe de la matrice A :
A
D AN> (1.3)
Matrices carrées On s’intéresse au cas m D n et A 2 C
n;n. On note i
, i D 1; : : : ; n les n
valeurs propres dans C de A.
B Définition 1.1 — Rayon spectral. On appelle rayon spectral de A, le réel noté .A/ défini par :
.A/ D max
iD1;:::;n
ji
j (1.4)
B Définition 1.2 — Trace. La trace de la matrice A est donnée par :
tr.A/ D
Xn
iD1
ai i (1.5)
On a en particulier :
tr.A/ D
Xn
iD1
i (1.6)
B Définition 1.3 — Matrice diagonale. Une matrice carrée A 2 Kn;n est dite diagonale lorsque
aij D 0 pour i ¤ j .
CRYPTANALYSE DE RSA
Abderrahmane Nitaj
To cite this version:
Abderrahmane Nitaj. CRYPTANALYSE DE RSA. 3`eme cycle. Oujda (Maroc), 2009, pp.56.
HAL Id: cel-00420490
https://cel.archives-ouvertes.fr/cel-00420490v2
Submitted on 12 Jan 2010
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.CRYPTANALYSE DE RSA
Abderrahmane Nitaj
Laboratoire de Math´ematiques Nicolas Oresme
Universit´e de Caen, France
http://www.math.unicaen.fr/~nitaj
nitaj@math.unicaen.fr
c Version du 28 juin 2009Table des mati`eres
Contenu i
Pr´eface 1
1 Introduction au cryptosyst`eme RSA 3
1.1 Principe de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Le module RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Les cl´es publiques et priv´ees . . . . . . . . . . . . . . . . . . . 5
1.1.3 Envoi d’un message . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.4 D´echiffrement d’un message . . . . . . . . . . . . . . . . . . . 8
1.1.5 Signature d’un message . . . . . . . . . . . . . . . . . . . . . . 9
1.1.6 Preuve de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Un exemple d’utilisation de RSA . . . . . . . . . . . . . . . . . . . . 12
1.2.1 Transformation d’un texte en nombres . . . . . . . . . . . . . 12
1.2.2 L’exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Cryptanalyses ´el´ementaires de RSA . . . . . . . . . . . . . . . . . . 15
1.3.1 Cryptanalyse de RSA connaissant ϕ(N) . . . . . . . . . . . . 15
1.3.2 Utilisation du mˆeme module et deux exposants diff´erents . . . 16
1.3.3 Utilisation de modules diff´erents pour le mˆeme message. . . . 18
1.3.4 Cryptanalyse de RSA si |p − q| < cN1/4
: M´ethode de Fermat 21
2 Cryptanalyse de RSA par les fractions continues 25
2.1 Les fractions continues . . . . . . . . . . . . . . . . . . . . . . . . . . 25
iii TABLE DES MATIERES `
2.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.2 D´efinitions et propri´et´es . . . . . . . . . . . . . . . . . . . . . 26
2.2 Cryptanalyse de RSA par les fractions continues . . . . . . . . . . . . 37
2.2.1 L’attaque de Wiener . . . . . . . . . . . . . . . . . . . . . . . 38
3 Cryptanalyse de RSA par l’algorithme LLL 43
3.1 L’algorithme LLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.1 Introduction aux r´eseaux . . . . . . . . . . . . . . . . . . . . . 43
3.1.2 L’algorithme LLL . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2 Cryptanalyse de RSA par la r´eduction des r´eseaux . . . . . . . . . . . 59
3.2.1 La m´ethode de Coppersmith : polynˆomes `a une variable . . . 59
3.2.2 Factorisation de N . . . . . . . . . . . . . . . . . . . . . . . . 69
Bibliographie 73Pr´eface
Si vous enseignez `a un homme, vous n’enseignez qu’`a une
personne. Si vous enseignez `a une femme, vous enseignez `a toute
une famille.
.
éÊ
K
A
«
IÒ
Ê« Y
®
¯
è
@QÓ@
IÒ
Ê« @
X@
A
Ó
@ , @
XQ
¯
IÒ
Ê« Y
®
¯ C
g.
P
IÒ
Ê« @
X@
La cryptographie moderne est bas´ee sur les math´ematiques pour s´ecuriser l’information.
On distingue deux types de protocoles cryptographiques : la cryptographie
`a cl´e priv´ee et la cryptographie `a cl´e publique. La cryptographie `a cl´e publique `a ´et´e
introduite par Whitfield Diffie et Martin Hellman en 1976, marquant ainsi la naissance
de la cryptographie moderne. Le principe de la cryptographie `a cl´e publique
repose sur deux types de cl´es : une cl´e publique et une cl´e priv´ee. Pour chiffrer un
message, on utilise la cl´e publique de son destinataire. Alors, seul le destinataire peut
d´echiffrer le message re¸cu avec sa propre cl´e priv´ee. En 1978, Ronald Rivest, Adi
Shamir et Leonard Adleman ont propos´e le premier cryptosyst`eme `a cl´e publique,
appel´e RSA. Ce cryptosyst`eme est devenu le plus r´epandu dans le monde car il est
facile `a r´ealiser mais tr`es difficile `a casser. En effet, sa s´ecurit´e repose sur l’un des
probl`emes les plus difficiles en math´ematiques : la factorisation des grand nombres.
Dans ce travail, nous introduisons les principes g´en´eraux du cryptosyst`eme RSA
ainsi que certaines attaques permettant de le casser, si les param`etres de s´ecurit´e sont
mal choisis ou s’il v´erifient des relations permettant `a un attaquant d’en tirer profit.
Dans le chapitre 1, nous donnons les principes g´en´eraux du cryptosyst`eme RSA et
nous pr´esentons quelques attaques ´el´ementaires permettant de le casser. Dans le
chapitre 2, nous pr´esentons une introduction `a la th´eorie des fractions continues
et leur utilisation pour attaquer le cryptosyst`eme RSA dans certains cas. Dans
le chapitre 3, nous pr´esentons quelques aspects de la r´eduction des r´eseaux, plus
pr´ecis´ement l’algorithme LLL et son utilisation pour attaquer le cryptosyst`eme RSA
grˆace `a la m´ethode de Coppersmith.
Dans ce travail, la plupart des r´esultats sont illustr´es par des algorithmes programm´es
`a l’aide des syst`emes de calcul Maple 12 et Magama dont un calculateur
12 TABLE DES MATIERES `
en ligne est `a l’adresse http://magma.maths.usyd.edu.au/calc/.Chapitre 1
Introduction au cryptosyst`eme
RSA
Celui qui n’aime pas gravir les montagnes, vivra toute sa vie dans
les trous.
Abou Al Qasim Achabi
. Q
®
m
Ì'@
á
K
.
Q
ë
YË@
Y
K
.
@
ª
K
È
A
J
.
m
.
Ì'@
Xñ
ª
I
.
m
B
á
Ó
ð
ú
G
.
A
Ë@ Õæ
A
®Ë@ ñ
K
.
@
1.1 Principe de RSA
Toutes les op´eration du cryptosyst`eme RSA se passe dans un ensemble de nombre
entiers. Soient p et q deux nombres premiers assez grands. On note N = pq. Le
nombre N est appel´e module RSA. Supposons que deux personnes A et B veulent
communiquer de fa¸con sˆure en utilisant le cryptosyst`eme RSA. Pour cela, ils doivent,
chacun de son cot´e pr´eparer un module RSA, deux cl´es e et d, ex´ecuter une proc´edure
de chiffrement et de signature et une proc´edure de d´echiffrement et de v´erification
de la signature.
1.1.1 Le module RSA
Avant tout, pour utiliser le cryptosyst`eme RSA, chacun des intervenants A et B doit
fabriquer son propre module RSA. L’algorithme 1 peut ˆetre alors utilis´e.
3
Cours Interconnexion et conception de r´eseaux
(informatiques)
Jean-Luc Archimbaud
To cite this version:
Jean-Luc Archimbaud. Cours Interconnexion et conception de r´eseaux (informatiques). Ecole ´
d’ing´enieur. A Grenoble `a l’ENSIMAG (cours donn´e 2 fois), 2002, pp.322.
HAL Id: cel-00561873
https://cel.archives-ouvertes.fr/cel-00561873
Submitted on 2 Feb 2011
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.1
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 1
Interconnexion et conception de
réseaux
Cours de 24 h pour 3ième année
Ecole d’ingénieurs réseaux
2002
Jean-Luc Archimbaud CNRS/UREC
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 2
Interconnexion et conception de réseaux
• Réseau :
– Qu’est-ce ?
– Plusieurs réseaux interconnectés ? réseau
– Dans le cours : réseau informatique d’entreprise – de
campus
• Concevoir un réseau c’est actuellement :
– Faire évoluer l’existant
– Réfléchir à toutes les couches
• Tranchées ? Applications
– Utiliser les services des opérateurs – sous-traitance
– Travail de puzzle : assemblage de briques
• Matériel - logiciel2
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 3
Concevoir un réseau c’est définir
• L’architecture physique (réseau = câble)
– Carte des sites – bâtiments – salles à connecter
– Les supports physiques
– Les équipements actifs
• L’architecture logique (réseau = réseau IP)
– Les protocoles
– Plan adressage – Routage
• L’administration des équipements - surveillance
• Les services réseaux
– DNS (nommage), Messagerie, Web, …
• Les outils de sécurité
• Les connexions avec l’extérieur : Internet, …
Adaptée aux équipements - besoins des utilisateurs
Stations – Serveurs – Applications
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 4
Plan du cours
• Réseaux locaux - LAN
– Liens physiques - câblage : Coax - TP – FO – sans fil
– Câblage de bâtiment
– Protocoles niveau 1-2 : Ethernets – FDDI
• Rappels : caractéristiques du protocole IP
• Eléments actifs d’interconnexion Eth-IP
– Répéteurs – hubs (Ethernet)
– Ponts (Ethernet)
– Commutateurs Ethernet
– Routeurs (IP)
– Commutateurs-routeurs (Ethernet-IP)3
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 5
Plan du cours
• Liaisons longues distances
– Liaisons physiques
• Commutées RTC, RNIS, ADSL, X25, louées LS
– Modems
• ATM
– Objectifs
– QoS : Qualité de Service
– Couches 1 et 2
– Commutateurs et routage
– Architectures LS et LANE
– Bilan
• Exemples d’architecture
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 6
Plan du cours
• Architecture logique IP
– Adresses IP
– Plan adressage IP
– Routage IP
– Exemples de répartition d’utilisateurs et de services
– Architecture ATM : classical IP
• MPLS
• Intégration voix-données (téléphonie – informatique)
– Pourquoi ?
– Différents niveaux d’intégration
– Téléphonie sur IP
• Services rendus
• H323
• SIP
– Bilan aujourd’hui4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 7
Plan du cours
• Réseaux virtuels
– Pourquoi ?
– VLAN
– Avec ATM
– VPN (PPTP, L2TP, IPsec)
• Services d’interconnexion de France Télécom
– Interconnexion niveau 2 moyen débit
– Interconnexion niveau 2 haut-débit
– Services (entreprises)
• Services à assurer – couche 7
– Noms
– Messagerie
– Annuaire
– Services Web
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 8
Plan de cours
• Qualité de service IP –rappels
– RSVP
– DiffServ
• Fonctions « annexes » de certains équipements actifs
– Rappels
– NAT
– Filtrage
– Multicast
– Gestion des files d’attente
• Administration de réseau
• Quoi ?
– Equipes, standards
– Configuration, surveillance, dépannage
– Stations d’administration
– Métrologie5
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 9
Plan du cours
• Quelques éléments de sécurité
• Accès à l’Internet
• Accès depuis l’Internet
– A l’Intranet
– Aux serveurs Internet
• Construction d’un réseau « solide »
• Etudes de cas
– Réseau de petit laboratoire éclaté
– Réseau de campus
• Gros site d’une entreprise
– Réseau Renater (national)
• Entreprise multi-sites
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 10
Bibliographie
• Computer Networks 3rd edition (Tanenbaum)
• TCP/IP Illustrated, Vol 1 - W. Richard Stevens
• Constructeurs (white papers)
– CISCO : http://www.cisco.com
– …
• Elements d’interconnexion Ethernet
– http://www.unige.ch/dinf/jfl/elem/index.htm
• Pointeurs cours, mémoires
– http://reseau.plisson.org/
• Cours UREC
– http://www.urec.cnrs.fr/cours/
• Moteurs de recherche6
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 11
LAN : dimension
• LAN : Local Area Network
– Un étage
– Un bâtiment
– Diamètre < 2 km
– Un site géographique : domaine privé
– Plusieurs bâtiments (site-campus)
• Interconnexion de LAN
• MAN : Metropolitan Area Network
– Dimension d’une ville
– Diamètre < 10 km
– Domaine public : service d’opérateurs locaux
• WAN : Wide Area Network
– Très longues distances : opérateurs (inter)nationaux
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 12
LAN : Liens physiques : critères choix
• En théorie : propriétés physiques
• En pratique :
– Coût
• Câble (media)
• Connecteurs (connectique)
• Emetteurs et récepteurs
• Installation : pose (tirer des câbles)
– Immunité aux perturbations
• Foudre, électromagnétiques, …
– Longueur maximum possible entre deux équipements
actifs (? minimiser le nb)
• Coût équipement
• Besoin alimentation électrique, …
– Débits possibles (surtout débit max) : bps7
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 13
LAN : liens physiques : câble coaxial
• Bande de base : Baseband
– 50 ohm – transmissions numériques – quelques kms
– Ex : Ethernet câble jaune – bus - prises vampires - 10base5 (500
m)
• Large bande : Broadband (LAN, MAN, WAN)
– 75 ohm – transmissions analogiques – 100 kms
– Plusieurs bandes de fréquences ? plusieurs flux
– Ex : câble télévision
• Bons débits (Gbits/s) et distances, bonne immunité
• Problème : cher
– Equipements - encombrement (Ø = 1 cm)– difficulté de la pose
• N’est plus utilisé pour le LAN informatique
– Il peut rester quelques câbles coaxiaux jaunes Ethernet et
Ethernet fin (Bande de base) : 10base2 (185 m) - Prises en T
• Utilisé dans le réseau câble des villes
– Connexion ordinateur : Carte 10BaseT – Modem – Câble (TV)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 14
LAN : câble coaxial fin et prise en T8
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 15
LAN : Liens physiques : TP
• TP : Twisted Pair : Paire torsadée
• Fil de cuivre isolé de diamètre 1 mm
• Utilisé depuis très longtemps pour le téléphone
• TP catégorie (type de TP mais aussi composants)
– 3 : jusqu’à 16 Mhz : très répandu aux USA
– 4 : jusqu’à 20 Mhz : peu utilisé
– 5 : jusqu’à 125 Mhz : le plus répandu actuellement
• Câbles 4 paires avec des pas de torsades différents
– 5E : amélioration du câblage 5 (Gigabit Ethernet)
– 6 : jusqu’à 250 Mhz
– 7 : jusqu’à 600 Mhz
• Blindage des câbles :
– UTP : Unshielded : pas de blindage
– STP : Shielded : blindage avec tresse métallique
– FTP : Foiled : entourée d’un feuillard d’aluminium
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 16
LAN : Liens physiques : TP
• Nombre de paires utilisées : 2 à 4 suivant l’utilisation
• Connexions point à point : architecture en étoile
• Connecteurs RJ45 : 4 paires
• Avantages :
– Câblage universel : informatique et téléphone
– Débit : plusieurs Mbits/s et Gbits/s sur 100 m (jusqu’à quelques
centaines)
– Câble et pose peu chers
• Désavantages :
– Très sensibles aux perturbations (électromagnétiques, …)
– Courtes distances
– Beaucoup de câbles : pose par professionnels
• C’est le media le plus utilisé à l’intérieur des bâtiments9
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 17
LAN : photos TP et RJ45
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 18
LAN : Liens physiques : FO
• FO : Fiber Optic : Fibre Optique
• 2 types : multimode - monomode
– Multimode : rayons lumineux avec réflexions : dispersion
• Cœur optique : diamètre 50 ou 62.5 microns
• Gaine optique : 125 microns
• Multimode 50 ou 62.5 (le plus courant aujourd’hui)
– Monomode (single mode) : rayons lumineux « en ligne droite »
• Cœur optique avec un diamètre plus petit : 9 microns
• Gaine optique : 125 microns
– Monomode pour de plus longues distances et plus haut débits
• Plusieurs fenêtres de longueurs d’onde possibles pour le
faisceau lumineux émis
– Fenêtres d’émission centrées sur : 850, 1300 et 1550 nm10
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 19
LAN : Liens physiques : FO
• Connectique :
– Epissures (définitif) ~ soudures
– Connecteurs : les plus répandus :
SC (encliquetage) et ST (baionnette)
• Emetteurs :
– Photodiodes (LED) : multimode, débits moyens,
distances courtes-moyennes, peu chers
– Lasers : multi ou monomode , très hauts débits,
longues distances, plus chers
– Plus faciles à installer sur de la fibre multimode
• Unidirectionnel : 2 FO pour une liaison
• Câbles généralement de 2 à 40 fibres
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 20
LAN : Liens physiques : FO
• Budget optique :
– Emetteur-récepteur : quelle « atténuation optique » maximale
possible peut-on avoir ?
• Ex 12 dB
– Affaiblissements dans chaque liaison
• Distance : lg de fibre : 3.5 dB/km pour FO 62.5 - 850 nm
• Connectique : épissure : 0.2 dB, connecteur : 2 dB, …
• Détérioration des éléments
– Affaiblissement total de la liaison < budget optique
• Multiplexage optique
– Multiples longueurs d’ondes sur une même fibre
– Protocole DWDM (Dense Wavelengh Division Multiplexing)
– Mutiplexeurs, démultiplexeurs, commutateurs optiques
– Choix n fibres ou multiplexage optique : coût11
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 21
LAN : Liens physiques : FO
• Avantages-inconvénients
– Débits possibles très élevés (potentiellement
immenses)
– Longues distances (dizaines voir centaines de km)
– Insensible aux perturbations électromagnétiques
– … confidentialité
• Utilisation
– C’est le support maintenant le plus utilisé en
interconnexion de bâtiments, en MAN et WAN
– Quelques fois en câblage de stations : cher
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 22
LAN : photos de FO et connecteurs
Connecteur SC Connecteur ST12
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 23
LAN : sans fil
Liaisons radio LAN (R-LAN - WIFI) : 2.4 GHz
• Architecture étoile
– Carte sur stations (PC, …) avec antenne
– Concentrateur avec antenne : borne
• Connecté au réseau câblé : borne
• Normes IEEE 802.11
• Même rôle que 802.3 pour Ethernet
• Distance max station-borne : entre 50 et 200 m
• Débits max
• 11 Mbits/s partagés (802.11b) : 10 M à 10 m, 1 M à 50 m
• Evolutions : Jusqu’à 54 Mbps (802.11a), 20 Mbps et + (802.11g)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 24
LAN : R-LAN
• Utilisation : intérieur de bâtiment (en R-LAN)
– Liaisons provisoires : portables, conférences, …
– Locaux anciens et protégés (impossible d’effectuer un
câblage)
• Problèmes
– Débit limité
– Sécurité : diffusion
• Contrôle de l’espace de diffusion
• WEP (Wired Equivalent Privacy)
• Fixe les adresses Ethernet
• Considère comme « externe » : ajout IPSec, …
• Se déploie très fortement actuellement
• MAN aussi : boucle locale radio (BLR 8M)13
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 25
LAN : sans fil
Liaisons laser
• Depuis de nombreuses années
• Point à point : interconnexion de réseaux
• Distance : 1 ou 2 km sans obstacle
• Débits : plusieurs Mbits/s
• Utilisation :
– Quand coût tranchées trop élevé ou domaine public
– Liaison provisoire
• Problème : réglage de la direction du faisceau
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 26
LAN-MAN : sans fil
• Faisceaux hertziens : de 2.4 à 40 GHz
– Pas les mêmes fréquences que R-LAN
– Demande une licence à l’ART et une redevance
– Maxima de débit : de l’ordre de
• 2 - 34 voir 155 Mbits/s jusqu’à plusieurs km
– Interconnexion de réseaux (et téléphone)
– Utilisation :
• Plutôt en MAN
• Demande une solide étude préalable (obstacles …)
• Interconnexion de sites distants sans besoin d’opérateur
• Utilisé par les opérateurs (France Télécom …)
• Satellite : pas en LAN !
– Service d’opérateur
– Quand FO non disponible14
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 27
LAN : câblage de bâtiment (TP)
(vocabulaire)
• Construction d’un bâtiment : pré -câblage
• TP : câblage courants faibles : informatique et téléphone
• Répartiteur : local technique
– Nœud de concentration et de brassage
– Arrivées-départ des liaisons, équipements actifs
• Dans un grand bâtiment
– 1 répartiteur général : RG
– n sous-répartiteurs : SR
– Entre RG et SR : câblage primaire : rocades ou colonnes
– Entre SR et prises stations : câblage horizontal
– Structure étoilée
• Câbles - connecteurs – cordons - jarretières – baies de
brassage
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 28
LAN : câblage de bâtiment (TP)
• Chemins de câbles :
– gaines techniques
– faux plafond
– goulottes, …
• Bureaux :
– Prises murales
– Recommandation CNRS : 3 prises (tél + info) par personne
• Tests après installation : cahier de recette
– Certification (classe d’installation : classe D)
– Réflectométrie
– Etiquetage – plans : obligatoire
• Base de données pour le système de câblage ?
• Travail de spécialistes
Sans bon câblage, pas de bons services
Câblage : fondations du réseau15
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 29
LAN : Photo baie de brassage optique
–
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 30
LAN : tous les Ethernets
• Protocoles pour LAN (au départ)
– Gigabit Eth : protocole différent (sauf trame) ? MAN
• Trame
– Adresse destination (MAC address) : 6 octets 08:00:20:06:D4:E8
– Adresse origine (MAC address) : 6 octets
– Type (IP = 0800) ou longueur (IEEE 802.3) : 2 octets
– Données : taille variable < 1500 octets
• Adresses (6 bytes) – MAC address
– Station : unique
• 3 premiers octets : constructeur
– CISCO 00:00:0C
– Sun 08:00:20
– HP 08:00:09
• 3 octets suivants : coupleur
– Broadcast : FF:FF:FF:FF:FF:FF
– Multicast : 1er octet impair16
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 31
LAN : Ethernet 10 M - 10Base5
• Protocole : Ethernet – IEEE802.3
• Début 1980
• Conçu pour 10Base5 : bus : coaxial : diffusion
• Méthode d’accès : CSMA-CD
– Carrier Sense Multiple Access-Collision Detection
– Accès multiple et écoute de porteuse – Détection de
collision
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 32
LAN : Ethernet 10 M - 10Base5
• 10 Mbits/s (partagés)
• CSMA-CD :
– Emet quand le media est libre
– Si autre signal sur le media durant émission : arrête l’émission
• RTD : round trip delay < 51.2 µs ? lg max réseau
• Taille minimum trame envoyée (correcte) : 64 bytes
• Quand trame taille < 64 bytes : collision
• 10Base5 : 5 câbles 500 m avec répéteurs : 2.5 km
• Problèmes 10Base5
– Coût : câble et connectique
– Sensibilité aux perturbations électromagnétiques
– Besoin d’une même terre
• Solution bas prix : 10Base2
– Thin Ethernet - 185 m - stations en coupure
• 10Base5 et 10Base2 ? 10BaseT17
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 33
LAN : Ethernet 10 M - 10BaseT
• CSMA-CD, 10 Mbits/s, RTD < 51.2 µs
• Câble : paire torsadée : UTP 5 – RJ45
• Architecture étoile : centre : hub (multirépéteur)
• Distance max hub-station ou hub-hub : 100 m
• 4 hubs max entre 2 stations : 500 m lg max
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 34
LAN : Ethernet 10 M : 10BaseF
• Pbs 10BaseT : perturbations – distance
– ? 10BaseF
• CSMA-CD, 10 Mbps, RTD < 51.2 µs
• Liaison : 2 FO multimode 50 ou 62.5
• Connecteurs SC ou ST
• Station – Répéteur : 1 km
• Répéteur – Répéteur : 2 km18
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 35
LAN : Ethernet 10 M
• Réseau au sens Ethernet : domaine de broadcast
• Avantage : protocole simple
• Problèmes :
– Débit limité (10 M partagé)
– Distances limitées
– Dépendance vis a vis de son voisin (collisions, charge)
– Broadcast : charge
– Pas de confidentialité (diffusion)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 36
LAN : Ethernet 100 M – 1000 M
• 100BaseT (IEEE802.3U) – Fast Ethernet 1995
– Idem 10BaseT (CSMA/CD, RJ45, …)
avec débit x 10 et taille réseau / 10
– TP (100BaseT) ou FO (100BaseF)
– Distance max : Hub – Station : 100 m (TP) - 412 m (FO)
– Lg max réseau 100BaseTX : 250 m
– Utilisation : serveurs ? stations
– Auto-négociation débit : 10 ou 100
• 1000Base – Gigabit Ethernet
– Idem 100Base avec débit x 10 – Taille min trame : 512 bytes
– Câblage FO ou TP de très bonne qualité
– Point à point, pas de diffusion
– Full duplex possible
– Utilisation : Serveurs - Backbone Campus – MAN
ATTENTION : toutes les distances max Ethernet citées :
réseau uniquement avec répéteurs-hubs19
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 37
LAN : Ethernets
• 10Base5
– 10 Mbits/s - Coax jaune - Lg max rép – station : 500 m
• 10Base2
– 10 Mbits/s – Coax fin – Lg max rép– station : 185 m
• 10BaseT (IEEE802.3 – 1990)
– 10 Mbits/s – 2 paires UTP – Lg max hub-station : 100 m
– 1 paire pour chaque sens de transmission
• 10BaseFL
– 10 Mbits/s – 2 FO (1 pour chaque sens)
– Lg max répet/ou stations : 2 km avec multimode 62.5
• 100BaseTX
– 100Mbits/s - 2 paires UTP catégorie 5
– Lg max hub-station : 100 m (réseau 250 m)
• 100BaseT4 (peu utilisé)
– 100Mbits/s - 4 paires UTP Catégorie 3 ou 4
– Lg max hub-station : 100 m (réseau 250 m)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 38
LAN : Ethernets
• 100 BaseFX
– 100 Mbits/s – 2 FO
– 412 m (HD) ou 2 km (FD) multimode 62.5
– 20 km monomode
• 1000BaseSX (IEEE802.3z)
– Sur 2 FO avec longueurs d’onde 850 nm
– Lg max : multimode 50 550 m – 62.5 220 m
• 1000BaseLX (IEEE802.3z)
– Sur 2 FO avec longueurs d’onde 1300 nm
– Lg max : multimode 50 550 m - monomode 5 km et plus
• 1000BaseT (IEEE802.3ab – 1999)
– Sur 4 paires UTP Cat 5E
– Longueur max 100 m20
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 39
LAN : schéma réseau campus de Jussieu
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 40
LAN : FDDI
• FDDI : Fiber Distributed Data Interface
• Protocole pour réseau local informatique
• Débit 100 Mbits/s (partagé)
• Anneau 2 FO multimode
• Nœud : station (SA/ DA)-concentrateur-routeur
• Réseau max : taille 100 km, 500 stations
C
S S S
S R
S S S S
Ethernet
S
S21
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 41
LAN : FDDI
• Accès au support par jeton (3 octets)
• Un jeton circule sur l’anneau
• Une station qui veut émettre
– Capture le jeton
– Envoie les trames de données
– Libère le jeton
– Retire ses trames au passage suivant
• Une station réceptrice
– Lit les trames qui lui sont adressées
– Modifie un champ des trames (FS) pour indiquer
qu’elle a lu la trame
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 42
LAN : FDDI
• Trame
– Adresse destination (6 octets idem Ethernet)
– Adresse source
– FS (Frame Status)
• Erreur
• Adresse reconnue
• Trame lue
– …
– Données : lg max 4500 octets
• Pb : station FDDI ? station Ethernet
– Taille des trames FDDI jusqu’à 4500 bytes alors que
max Ethernet est 1500
– Solution pour IP : fragmentation IP22
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 43
LAN : FDDI
• Circulation normale : anneau primaire
• Coupure anneau
– Rebouclage de l’anneau
– Mise en fonction : anneau secondaire
C
S S S
S R
S S S S
Ethernet
S
S Anneau primaire
Anneau secondaire
Fonctionnement normal
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 44
LAN : FDDI
C
S S S
S R
S S S S
Ethernet
S
S Anneau primaire
Anneau secondaire
C
S S S
S R
S S S S
Ethernet
S
S Anneau primaire
Anneau secondaire
Coupure de lien
Arrêt de station23
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 45
LAN : FDDI
Possibilité d’avoir des stations prioritaires
CDDI : FDDI sur paire torsadée
Bilan :
FDDI trop cher – pas assez de débit
Maintenant remplacé par Ethernet 100 ou Giga
Bon example de réseau anneau à jeton
C
S S S
S R
S S S S
Ethernet
S
S Anneau primaire
Anneau secondaire
Coupure lien station simple attachement
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 46
Rappels : caractéristiques IPv4
• Protocole réseau : couche 3
• Mode non connecté
• Eléments d’un réseau IP :
– Stations, réseaux (sens niv2), routeurs
• Informations : datagrammes (paquets)
• Entête datagramme :
– Version (4)
– TOS Type of Service : qualité de service
– TTL Time To Live : 60 ? 0 (-1 à chaque routeur)
– Identification protocole de transport (TCP, UDP, ICMP, …)
– Adresse IP de la station origine
– Adresse IP de la station destinataire
– …
• Taille datagramme < 64 Koctets
Souvent de taille d’environ 512 ou 576 bytes24
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 47
IPv4 : couche 4
• Couche 4 :protocole entre stations (pas entre routeurs)
• TCP : Transmission Control Protocol
– Paquet TCP = segment
– Mode connecté
– Transport fiable (contrôle d’erreurs, accusés de réception,
retransmission, …)
– Spécification des applications : numéros de port (origine,
destination) dans le segment
– Fenêtrage – Slow start: s’adapte à tous les débits
• UDP : UserDatagramm Protocol
– Pas de contrôle
– Mode non connecté
– Spécification de l’application : numéros de port (orig, dest)
– Protocole léger, permet multicast-broadcast facilement
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 48
IPv4 : ICMP
• ICMP : Internet Control Message Protocol
• RFC792
• Messages ’de contrôle’ émis par les stations ou
les routeurs
• Messages :
– Ralentir le débit d’émission
– Destination inaccessible
– Demande d’echo
– Réponse echo
– « Time To Live » exceeded
– Redirection
– ….25
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 49
IPv4 : couche 2
• IP / couche 2 : les datagrammes IP peuvent être
transportés par tous les types de réseaux :
– Ethernet RFC894 et RFC1042
– Liaison série : point à point (PPP RFC1331-1332)
– ATM (RFC1577)
– FDDI
– X25
– …
• @ IP ? @ couche 2 ?
– Ethernet, FDDI : broadcast : ARP, RARP
– ATM : serveur ARP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 50
IPv4 : exemple trame Ethernet (TCP)
Une trame Ethernet avec un segment TCP a la forme :
• Entête Ethernet
– @ Ethernet destination
– @ Ethernet origine
– Type = 800
• Entête IP
– …
– Indication TCP
– @ IP origine
– @ IP destination
– …
• Entête TCP
– Numéro de port source
– Numéro de port destination
– …
• Données26
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 51
IPv4 : adresses
• 4 bytes 194.220.156.3
• Chaque coupleur de station ou de routeur a une
adresse
• Partie réseau (IP) : 194.220.156
• Partie station (IP) : 3
• Routeur : sépare (interconnecte) 2 réseaux IP
• Adresses (IP) de broadcast et de multicast
– 194.220.157.255 : broadcast sur réseau IP
194.220.157.0
• Détails dans les cours suivants
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 52
Eléments d’interconnexion
Ethernet - IP
• Pourquoi ? – Problèmes
• Répéteurs – Hubs (Ethernet)
• Ponts (Ethernet)
• Commutateurs Ethernet
• Routeurs (IP)
• Commutateurs-Routeurs (Ethernet-IP)27
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 53
Eléments d’interconnexion : pourquoi ?
• Ré-amplifier les signaux
– Electriques - optiques
– ? Augmenter la distance maximale entre 2 stations
• Connecter des réseaux différents
– Supports : Coax, TP, FO, Radio, Hertzien, …
– Protocoles niveau 2 : Ethernet, FDDI, ATM, … rieur
• « Limiter » la diffusion (Ethernet)
– Diminuer la charge globale
• Limiter les broadcast-multicast Ethernet (inutiles)
– Diminuer la charge entre stations
• Limiter la dépendance / charge des voisins
• Objectif in fine : garantir une bande passante disponible (une qualité de
service) entre 2 stations
– Limiter les problèmes de sécurité
• Diffusion ? écoute possible : pas de confidentialité
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 54
Eléments d’interconnexion : pourquoi ?
• Restreindre le périmètre de la connectivité désirée
– Extérieur ? Intérieur : protection contre attaques (sécurité)
– Intérieur ? Extérieur : droits de connexion limités
• Segmenter le réseau :
– Un sous-réseau / groupe d’utilisateurs : entreprises, directions,
services, …)
– Séparer l’administration de chaque réseau
– Créer des réseaux réseaux virtuels
• S’affranchir de la contrainte géographique
• Pouvoir choisir des chemins différents dans le transport
des données entre 2 points
– Autoriser ou interdire d’emprunter certains réseaux ou liaisons à
certains trafic28
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 55
Eléments d’interconnexion : problèmes
• Eléments conçus pour répondre a des besoins :
– Qui ont évolué au cours du temps
• Durée de vie courte des équipements
• Toujours mieux et moins cher
– Rapidement à moindre coût : pragmatique
• Chaque élément offre certaines fonctions
les « prioritaires » du marché de l’époque
• ? Problèmes :
– Classification, frontières sont un peu complexes
– Terminologie imprécise (dépend du contexte)
• Commerciaux rarement techniciens
• Attention : le choix est un compromis entre les
fonctions désirées et le coût
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 56
Eléments d’interconnexion : répéteur
• Répéteur (Ethernet)
– Boite noire dédiée
– Remise en forme, ré -amplification des signaux
(électroniques ou optiques)
– But augmenter la taille du réseau (au sens Ethernet)
• Exemple : distance maxentre stations A - C : 500 m ? 1000 m
Repeteur
Station A Station B
Station C
Coax 1
Coax 229
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 57
Eléments d’interconnexion : répéteur
• Travaille au niveau de la couche 1
• Ne regarde pas le contenu de la trame
• Il n'a pas d'adresse Ethernet
– Transparent pour les stations Ethernet
• Entre supports coaxiaux, TP et FO
• Avantages
– débit 10 Mb/s
– pas (ou très peu) d'administration
• Désavantages
– Ne diminue pas la charge
– Ne filtre pas les collisions
– N’augmente pas la bande passante
– Pas de possibilité de réseau virtuel (VLAN)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 58
Eléments d’interconnexion : hub
• Hub : muti-répéteur : étoile (obligatoire TP)
• Idem répéteur pour :
– Fonctions, avantages, désavantages
• Pour Eth 10 et 100
• Ex : Hub 8 ports TP
HUB Station
Station
Station
Station
Station Station
Station
d < 100 m
HUB Station
Station
10 M
10 M 10 M
10 M
10 M
10 M
10 M 10 M
10 M30
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 59
Eléments d’interconnexion : hub
• Fonction annexes :
– Affectation d’une @ MAC (@ Eth) à chaque brin : sécurité
– « Auto-negotiation » débit hub 10-100 (IEEE 802.3u)
– Surveillance SNMP
• Nombre maximum sur réseau Ethernet
– 10Base5 : 4 répéteurs
– 10BaseT : 4 hubs
• Distance max entre 2 stations : 500 m
– 100BaseT : 4 hubs
• Mais distance maxentre 2 stations : 250 m
– 1000BaseX : utilise des commutateurs
• Utilisation actuelle
– En « extrémité » de réseau (stations utilisateurs)
– Remplacés par des commutateurs Ethernet
• En cœur de réseau, pour serveurs, et même pour stations
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 60
Eléments d’interconnexion :hub
• Remarque : borne sans fil 802.11b = hub
• Face arrière hub stackable
– 3 x 24 ports TP (prises RJ45)
– 1 port FO (2 FO)31
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 61
• Aussi appelé répéteur filtrant ou "bridge"
• Niveau de la couche 2
– Traitement : valeur @ MAC destinataire ? transmet
ou non : trafic A-D ne va pas sur coax 2
– Localisation des @ MAC des stations par écoute
(auto-learning) ou fixée
– Ignoré des stations (transparent)
Elts d’interconnexion : pont (Ethernet)
Station A Station D
Station C
Coax 1
Coax 2
PONT
Station B
500 m
500 m
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 62
Elts d’interconnexion : pont
• Avantages
– Augmente la distance max entre 2 stations Ethernet
– Diminue la charge des réseaux et limite les collisions
• Le trafic entre A et D ne va pas sur Coax 2
• Remplacés en LAN par les commutateurs
• Fonctions supplémentaires : cf commutateurs
• Ponts distants
– Ethernet – Liaison spécialisée (cuivre ou hertzienne
ou laser)
– Encore utilisés32
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 63
Elts d’interconnexion : commutateur
• Commutateur – Switch Ethernet de niveau 2
– 10, 100, 1000 Mb/s TP ou FO
• Fonction : multi-ponts, cœur d’étoile
• Commute les trames Ethernet sur un port ou un
autre
– Matrice de commutation
COMM Station
Station Station
Station
Station Station
Station
d < 100 m
HUB Station
Station
1 G
10 M
100 M
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 64
Elts d’interconnexion : commutateur
• Mêmes fonctions et avantages que le pont +
augmentation de la bande passante disponible
• Matériels - logiciel
– Chassis ou boitier
– Cartes : 2 ports FO, 8 ports TP … avec débits 10, 100, 1000 Mb/s
– Système d’exploitation
– Configuration : telnet, client Web
– Surveillance : SNMP
• Quelques critères de choix techniques (performances)
– Bus interne avec un débit max : 10 Gb/s
– Vitesse de commutation nb de trames / s
– Bande passante « annoncée » : 24 Gb/s
– Nb d’adresses MAC mémorisable / interface33
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 65
Elts d’interconnexion : commutateur
• Permet : Ethernet Full duplex (TP ou FO)
– Emission et réception en même temps : 2x10 ou 2x100
– « Auto-negotiation» possible (IEEE 802.3u)
• Fonctions supplémentaires
– Auto-sensing débit (IEEE 802.3u)
– Affectation statique d’@ MAC et filtrage au niveau 2
– Spanning Tree : évite les boucles
• Construction d’un arbre
• A un instant : un seul chemin utilisé
– Réseaux virtuels : VLAN
– Port d’écoute qui reçoit tout le trafic des autres ports
• Analyseur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 66
Elts d’interconnexion : commutateur
• Limitations d’un réseau de commutateurs
– Théoriquement pas de distance maximum
– Broadcast et multicast diffusés partout
– 1 seul réseau IP possible
• Très répandu :
– Local : workgroup switch
– Campus : complété par le routeur (plus « lent » et
plus cher)
– Remplacé par le commutateur-routeur (plus cher)
quand besoin34
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 67
Elts interconnexion :
commutateur et hubs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 68
Elts interconnexion : routeur (IP)
• Niveau 3 : aussi appelé commutateur niveau 3
– Il y a des routeurs multi-protocoles
• On ne parlera que de IP
– Interconnecte 2 ou plus réseaux (ou sous-réseaux) IP
Station
Station
Station
hub
Routeur
Ethernet
192.88.32.0
COMM
Eth Station
Station
Station
Station
Ethernet
192.99.40.0
COMM
ATM Station
Station
ATM
129.88.0.035
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 69
Elts interconnexion : routeur (IP)
• Table de routage / @ IP destination
• N’est pas transparent pour les stations
– Chaque station doit connaître l’@ IP du coupleur du
routeur pour « le traverser »
• Pour le protocole Ethernet
– C’est une station Ethernet
– Chaque port possède une adresse Ethernet
• Matériels
– Chassis ou boitier
– Cartes : 2 ports FO, 8/16/24/32/48/64 ports TP … avec
débits 10, 100, 1000 Mb/s, LS, ATM, FDDI …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 70
Elts interconnexion : routeur (IP)
• Logiciel – performances
– Système d’exploitation
• IOS CISCO
– Configuration : avec telnet ou navigateur
– Surveillance : SNMP
– Performances :
• Nb de paquets routés/s
• Routage : ASIC
– Un PC Linux avec 2 cartes Ethernet peut faire
fonction de routeur
• Fonctions annexes : chapitre ultérieur du cours 36
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 71
Elts interconnexion :
Commutateur-routeur (IP)
• Multilayers switch
• Réunion des fonctions commutateur et routeur
dans une seule « boite »
• On peut configurer certains ports en
commutation, d’autres en routage
• L’équipement à tout faire
– Mais pour le configurer il est nécessaire d’avoir défini
l’architecture que l’on veut mettre en place
• Maintenant très performant avec des prix très
compétitifs
– Remplace les routeurs et les commutateurs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 72
Elts interconnexion : commut-routeur
• Exemple de réseau de laboratoire
COMMUTATEUR-ROUTEUR
CAMPUS
FO
1G
FO
Serveur 1
Serveur 2 100 M TP
1 G
100 M TP
S1 S2 S3 S4 Mail WWW 10 M TP 10 M TP 10 M TP 10 M TP 10 M TP37
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 73
Elts interconnexion : commut-routeur
• Peut-être équivalent à :
ROUTEUR
CAMPUS
Serveur 1 Serveur 2
S1
S2 S3
S4
Mail WWW
COMMUT
COMMUT
COMMUT
3 (sous-)réseaux IP :
Serveur 1, Serveur2 – S1, S2, S3, S4 – Mail, WWW
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 74
Elts interconnexion : action /trame
Trame Ethernet contenant un datagramme TCP
• Entête Ethernet
– @ Ethernet destination ? Pont - Commutateur
– …
• Entête IP
– …
– @ IP destination ? Routeur
– …
• Entête TCP
– …
– Numéro de port destination ? Station (choix du service)
– …
• Données ? Application38
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 75
Elts interco : Architecture Eth - IP
Dans une entreprise
• Entre stations utilisateurs d’un service
– Hubs ou commutateurs
• Entre serveurs ou stations demandant du débit
(graphiques, …) d’un service
– Commutateurs
• Entre services
– Commutateurs ou routeurs
• Entre l’entreprise et l’extérieur (Internet)
– Routeurs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 76
Ex interconnexion de réseaux Ethernet
Station M
Station L
Station K
hub
Routeur
COMM
Eth Station F
Station G
Station H
COMM
Eth Station J
Station I
Station E
Station D
hub
Station C
Station A
hub Station B
Pont
Station N
Station O
hub
Pont Station P
Station R Station Q
10 M
10 M
10 M 10 M
10 M
100 M
100 M
100 M
100 M
10 M
10 M
100 M
2 M
100 M
10 M
10 M
10 M
10 M 10 M
10 M
10 M
10 M
10 M
10 M
100 M39
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 77
Ex interconnexion de réseaux Ethernet
• Trame Eth A ? C. Arrive -t- elle à B ? E ? F ?
• Trame Eth P ? O. Arrive -t-elle à N ? M ?
• Trame Eth R ? Q. Arrive -t-elle à I ? J ?
• Trame Eth A ? L. Arrive -t-elle à K ?
• A -> Broadcast Eth. Arrive -t-il à B ? D ? G ? R ?
• L ? Broadcast Eth. Arrive -t-il à K ? O ? D ?
• Collision possible entre les 2 trames :
– A ? B et D ? E ? O ? N et M ? L ?
– G ? H et E ? F ?
• B a un coupleur défectueux (envoie des trames sans écoute ?
collisions). Cette station perturbe –t-elle A ? E ? G ? R ?
• F dans le même cas. G est-elle perturbée ?
• O dans le même cas. M est-elle perturbée ?
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 78
Ex interconnexion de réseaux Ethernet
• B émet un flot de données de 5 M b/s vers A en continu. Quelle
bande passante (théorique) reste-t-il à A ? C ? E ? F ? R ?
• G émet un flot de données de 5 M b/s vers H en continu. Quelle
bande passante (théorique) reste-t-il à F ? E ?
• G émet un flot continu de broadcast à 20 Mbps. Quelle bande
passante (théorique) reste-t-il à H ? E ? B ? R ?
• O émet un flot de broadcast à 2 Mbps. Quelle bande passante reste-til
entre N et M ?
• Les flots de données en parallèle suivants sont ils possibles ?
– 10 Mb/s A-B et 10 Mbps D-E ?
– 100 Mb/s R-Q et 10 Mbps I-J ?
– 10 Mb/s O-N et 10 Mb/s L-M ?
– 10 Mb/s F-G et 10 Mb/s F-H ?40
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 79
Liaisons longues distances - opérateurs
• Liaisons
– Commutées = temporaires ? partagées
• Pb : phase (+ ou - longue) d’établissement de connexion et de
déconnexion ? difficile pour un serveur
– Permanentes : entre 2 points fixes
• LS : Liaisons Spécialisées – Lignes Louées
• Opérateurs
– Opérateurs Telecom traditionnels : FT, Cegetel, …
Mais aussi SNCF, sociétés d’autoroutes, …
– Liaisons : FO, câbles cuivre, liaisons hertziennes, …
– Equipements : (dé)multiplexeur, commutateurs (en tous genres),
…
– Offres « sur mesure » - contrats spécifiques
– Offres « catalogue » : étudiées ici
– Les services « à valeur ajoutée » (d’interconnexion) seront
étudiés dans un chapitre ultérieur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 80
Liaisons longues distances : utilisations
• Entreprises :
– Liaisons inter-sites
– Louent des liaisons spécialisées aux opérateurs
– Coût d’installation + coût de location
• Particuliers ou petites agences :
– Particulier - domicile ? entreprise
– Agence ? siège
– Utilisent les réseaux commutés
– Généralement : coût d’installation + location +
utilisation41
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 81
Liaisons commutées : RTC
Réseau Téléphonique Commuté
• Equipement : modem V90 56.6 Kb/s (réception)
– Emission à 33.6 Kb/s
• Modem micro : interne, externe sur port série …
• Particulier/agence ? LAN Entreprise
– Micro - Modem – RTC – Serveur d’accès RTC (pool
de modems – Concentrateur - Routeur) – LAN
(Ethernet) entreprise
• Fonction de ré-appel : coût et sécurité
• Authentification des utilisateurs : protocole – serveur RADIUS
– Micro – Modem – RTC – Fournisseur d’accès
Internet – Connexion Internet –Routeur – (Garde -
barrière) - LAN entreprise
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 82
Liaisons commutées : RTC
• IP
– Protocole niveau 2
SLIP ? PPP (Point to Point Protocol)
– Micro : @ IP statique ou dynamique (DHCP)
• Liaison non permanente
– Le micro ne peut pas être serveur
• Toujours très utilisé
– Réseau RTC partout
– Toujours plus de débit possible sur la paire torsadée42
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 83
Liaisons commutées : RNIS
Réseau Numérique à Intégration de Service
• ISDN (surtout Europe et Japon)
• Réseau national de FT : Numéris
• Accès de base (particulier-agence) : 144 Kb/s
– 2 canaux B à 64 Kb/s : téléphone + Internet par exemple
– 1 canal D à 14 Kb/s : signalisation
– Utilisation liaison téléphonique classique
– 25,5 E / mois en oct 02 (Numeris Itoo)
• Accès primaire (Entreprise : PABX) : ~ 2 Mb/s
– 30 canaux B à 64 Kb/s + 1 canal D à 64 Kb/s
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 84
Liaisons commutées : RNIS
• Connexion micro (particulier-agence)
– « Modem » RNIS : carte micro ou « modem» externe
sur port série
– Modem RTC - BoitierRNIS avec 2 prises
téléphoniques
– Chemin : Micro – Modem RNIS – Réseau Numéris –
(Modem RNIS) – Serveur d’accès RTC ou PABX -
Entreprise
• Interconnexion de sites : routeurs RNIS (2B + D)
• IP : idem RTC : PPP
• L’utilisation n’a jamais vraiment décollé
– Européen, surtout français : pas USA - Cher
– Encore utilisé en back-up ou pour liaisons provisoires43
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 85
Liaisons longues distance : ADSL
• ADSL : Asymmetric Digital Subscriber Line
• xDSL : technologie pour transmission à haut
débit sur le RTC
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 86
Liaisons longues distances : ADSL
• Modems :
– 512 Kb/s réception - 128 Kb/s émission
– 1 M b/s réception – 256 Kb/s émission (ADSL Pro)
• La liaison reste libre pour le téléphone
– Bande de fréquences utilisée # fréquences vocales
– Filtres : chez particulier et au répartiteur FT
• Contraintes :
– Poste téléphonique < 5 km d’un répartiteur FT
• Le cas de 80 % des foyers français
– Que le répartiteur FT soit connecté à un réseau ADSL
– Abonnement
• ADSL chez FT ou ailleurs
• Chez un fournisseur accès Internet
• Pack qui inclut les 244
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 87
Liaisons longues distances : ADSL
• Liaison particulier – entreprise :
– Micro – coupleur Ethernet ou port USB – Modem ADSL – RTC
– FAI ADSL – Internet – Routeur – LAN Entreprise
• IP : idem Ethernet
• Connexion permanente :
– Coût installation et mensuel (pas à la consommation)
– Possibilité de connecter un routeur côté particulier ou agence
mais fournisseur d’accès obligatoire
• Offre FT :
– Sans Internet : 30 E / mois ou 107 E / mois (ADSL Pro) en oct 02
• De plus en plus utilisé
– Pbs : monopole de FT, disponibilité selon le lieu
– Devrait devenir l’accès standard
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 88
Liaisons longues distances : X25
• Réseau à commutation de paquets :
– Couches 2-3
– Circuits virtuels
– Adresses X25
• Opérateur historique : Transpac
• Accès jusqu’à 64 Kb/s (ou guère plus)
• Les serveurs vidéotex (minitel) ont une
connexion X25
• Remplacé par IP sous toutes ses formes45
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 89
Liaisons spécialisées FT
• Transfix (nationales)
– 2.4 K b/s à 34 Mb/s
– STAS : Spécifications Techniques d’Accès au Service
– 2.4 K à 19.2 K : interfaces : V24, V28
– 64 K à 34 M : interfaces : X24/V11 ou G703-G704
– Modems fournis par opérateur
– Liaisons internationales : idem nationales mais plus difficiles à
mettre en place de bout en bout : sur-mesure
• Connexions :
– Routeurs
– Ponts (distants)
– Commutateurs ATM
– PABX Téléphoniques
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 90
Liaisons longues distances : modems
• MOdulateur DEModulateur
– Convertisseur digital/analogique ou adaptateur
digital/digital destiné à transporter des données sur
des lignes point à point
• Plusieurs types de modems :
– RTC : Liaisons commutées : asynchrones
historiquement
– LS : Liaisons permanentes : synchrones
– RNIS
– Câble
– ADSL
– TV
– …46
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 91
Modems RTC
• Programmation :
– Commandes AT (origine Hayes)
• Fonctions :
– Contrôle de flux XON/XOFF ou RTS-CTS
– Correction d’erreur (MNP 34, V42, ARQ)
– Compression (MNP5, MNP7, V42Bis)
– Adaptation automatique débits et fonctions
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 92
ATM : plan
• Objectifs
• QoS : Qualité de Service
• Couches 1 et 2
• Commutateurs
• Routage
• Architectures LS et LANE
• Bilan
• Exemple47
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 93
ATM : objectifs
• ATM : Asynchronous Transfert Mode
• Origine : CNET (FT R&D)
– Opérateur téléphone à l’origine
• Supporter tout type de communication
Voix – Vidéo - Données informatiques
• Mieux utiliser la bande passante
– Téléphonie longue distance
• Fonctionner à très hauts débits : Gbits/s
• Garantir une qualité de service (QoS) à chaque
utilisateur (application) de bout en bout
• Démarche très théorique
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 94
ATM : objectifs
• Mêmes protocoles et technologies en LAN, MAN
et WAN
• Caractéristiques des réseaux / services attendus
– Bande passante (bps) partagée : garantie si possible
– Temps de latence (délai de transmission) :
minimum et constant si possible
• Dépend distance, éléments actifs, charge (files d’attente)
– Jitter (variation temps de latence) : min si possible
– Taux de pertes : min si possible
– …
ATM veut fournir ces services
? Protocoles et technologies complexes48
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 95
ATM : Exemple de QoS : Téléphonie
• Entendre tous les mots
– Faible taux de pertes
• Contrainte : bit error rate < 10-2
– Débit constant garanti
• Contrainte : 64 Kbits/s sans compression ---> 5 Kbits/s avec
• Recevoir au même rythme que l'émission
– Temps de latence fixe : contrainte :jitter < 400 ms
• Dialogue possible
– Temps de latence faible
– Poste avec annulation d'echo
• Retransmissions : inutiles
• Mode connecté bien adapté
• Exemple d'incompatibilité (théorique)
Téléphone et Ethernet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 96
ATM QoS : classes de service
• Problème : pour supporter toutes les qualités de
service sur tous les réseaux ATM il faudrait surdimensionner
:
– Les liaisons : bande passante et caractéristiques
– Les équipements : performances et fonctionnalités
• Solution ATM :
– On regroupe les applications qui demandent des
qualités de service similaires ? 4 groupes
– On définit 4 classes de services que peuvent offrir les
réseaux (liens et équipements) ATM qui
correspondent aux 4 groupes : UBR, ABR, CBR, VBR 49
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 97
ATM QoS : classes de services
• UBR – Unspecified Bit Rate
– Les applications peuvent émettre un flux variable
jusqu’à un débit maximum
– Réseau : aucune garantie – pas de contrôle de flux
– Service très dégradé
• ABR – Available Bit Rate
– Pour supporter des applications qui peuvent utiliser
toute la bande passante disponible, avec un service
« Best Effort » de type IP
– Exemples : applications qui utilisent TCP (FTP,
HTTP, …), interconnexion d’Ethernets
– Services réseau
• Aucune garantie (bande passante, temps de latence, …)
• Mais mécanisme de contrôle de flux
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 98
ATM QoS : classes de services
• CBR – Constant Bit Rate
– Pour supporter les flux à débit constant de données
– Exemple d’application : téléphone
– Services réseau : bande passante réservée, temps de latence fixe
• VBR – Variable Bit Rate
– Pour supporter les applications à débit variable mais qui
demandent certaines garanties (par exemple une bande passante
minimum garantie à tous les instants)
– Exemple : multimédia : vidéo compressée à débit variable …
– Services réseau :
• Bande passante minimum garantie
• Bande passante maximum garantie pendant un temps maximum fixé
• Temps de latence
• ….
– ? Très complexe à réaliser50
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 99
ATM 1-2 : mode connecté
• Problème : quand demande-t-on une (des)
qualité(s) de service au réseau ?
• Statiquement : à l’abonnement
– (Ou lors de la conception du réseau)
• A chaque session : mode connecté
– Ouverture d’une connexion de bout en bout
• En indiquant ce dont on a besoin
– Transfert d’informations
– Fermeture d’une connexion
• Appel destinataire (ouverture connexion)
– Adresse destinataire ? Numéro de VP et de VC
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 100
ATM 1-2 : les cellules
• Données dans des cellules
• Taille fixe : 53 octets
– Compromis
• Petite (avantage : faible temps de propagation, …)
• Grande (avantage : moins de traitements, …)
– Facilite les implémentations hardware
– Facilite l'allocation de bande passante
• Ni détection, ni récupération d'erreur
En Tête Information (Payload)
53 Octets
5 Octets 48 Octets51
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 101
ATM 1-2 : structure de la cellule
Champ Information
48 octets
GFC VPI
VPI VCI
VCI
VCI PT CLP
8 bits
HEC
GFC Generic Flow Control
VPI Virtual Path Identifier (8 bits : 256)
VCI Virtual Channel Identifier
(16 bits : 64000 possibilités)
PT Payload Type
Message d’administration ou
d’information
Etat de congestion
(MAJ par commutateur)
CLP Cell Loss Priority
"priorité" à la destruction si 1
HEC Header Error Check
sur l'en-tête de la cellule
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 102
ATM 1-2 : UNI (standard)
• UNI : User to Network Interface
– Comment établir une connexion
– Comment la rompre
– Format des paramètres de qualité de service
• Débit, taux d’erreur, temps de latence, …
– Format d’adresse : 20 octets
Emetteur Réseau Récepteur
Début de
l'appel
Setup
Call proceeding
Connect
Connect Ack, facultatif
Setup
Connect
Connect Ack
Call proceeding
Appel
terminé
Appel
accepté
Appel reçu
Etablissement connexion52
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 103
ATM 1-2 : adresses : 3 types
AFI : Identificateur de l'autorité et du format
HO-DSP : High Order Domain Specific Part, utilisé pour supporter des protocoles de routages hiérarchiques.
ESI : End System Identifier, en fait la MAC adresse (idem Ethernet)
1 2 10 6 1
1 2 10 6 1
DCC ATM Format
ICD ATM Format
AFI
39
AFI
47
DCC
ICD
HO-DSP
HO-DSP ESI SEL
ESI SEL
1 8 4 6 1
E.164 ATM Format
AFI
45
E.164 HO-DSP ESI SEL
Data
Country
Code
Code
organisation
IDI
IDP
IDI
IDP
IDI
IDP
Initial domain identifier
Initial Domain Part
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 104
ATM 1-2 : liaisons
• Point à point
• Liaisons spécialisées câble cuivre (longues distances)
– E1 (2 Mbits/s), E2 (34 Mbits/s)
– T1 (1.5 Mbits/s), T3 (45 Mbits/s)
– ….
• Liaisons FO
– FO multimode 155 Mbits/s (OC 3)
– FO multimode ou monomode 622 Mbits/s (OC12)
– ….
• Liaisons TP
– 155 Mbps UTP cat5
– 52 Mbps UTP cat3
– ….53
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 105
ATM : commutateurs ATM
• Eléments d’interconnexion de niveau 2
• Commutateur ATM
– Interconnecte des liaisons ATM (point à point)
– Commute les cellules sur une liaison ou une autre /
table de routage
• Cellule contient les numéros de VP et de VC
– Etablissement des VP et VC
• Statiquement
• Dynamiquement lors de l’ouverture de la connexion
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 106
ATM : commutateurs ATM
• Structure d’un réseau ATM
COMM
ATM
Station
Station
Station
Station
Station
Station
COMM
ATM Station
Station
hub
Routeur
Eth
COMM
ATM54
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 107
ATM : commutateurs
• VP et VC
Chemin de transmission
VP
VP
VP
VC
VC
VC
VC
VC
VC
VC VC
VC
VC
VC
VC
VC
VC
VP
VP
VP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 108
ATM : commutateurs
• Commutateur de VP et de VC
VC Switch
VP Switch
VP 1
VP 6 VP 2
VP 7
VP 5
VC 1
VC 2
VC 1
VC 2
VC 3
VC 4
VC 1
VC 255
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 109
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 110
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 456
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 111
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 4 VCI = 4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 112
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 4 VCI = 4
VCI = 657
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 113
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 114
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 4
VCI = 458
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 115
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 2 VCI = 4
VCI = 4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 116
Tables de routage ATM
Commutateur
port 1
Table de routage
Station VCI
B 2
C 3
Station A
Table de routage port 1
VCI-in Port- out VCI-out
2 2 2
3 3 6
Table de routage
Station VCI
A 2
C 4
Table de routage
Station VCI
A 6
B 8
Station B Station C
port 2
port 3
Table de routage port 2
VCI-in Port- out VCI-out
2 1 2
4 3 8
Table de routage port 3
VCI-in Port- out VCI-out
6 1 3
8 2 459
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 117
Architectures ATM
• On peut bâtir plusieurs types d’architecture sur
un réseau ATM
– Liaisons spécialisées point à point
– Des réseaux LANE : émulation de LAN
– Des réseaux classical IP : architecture IP
• Traité dans la partie « Architecture IP »
• Et on peut mixer l’ensemble
– Ce que font les opérateurs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 118
Architecture ATM : Liaison spécialisée
• Utilisation courante : location de VC ou de VP entre 2
sites à un opérateur qui possède un réseau ATM
– WAN
– Débit demandé pour la liaison
– Certaines qualités de service assurées : ABR, CBR, …
• Connexion des sites aux extrémités :
– Commutateur ATM
• S’il y a un réseau ATM sur le site, permet de garantir certaines qualités
de service jusqu’à l’intérieur du site.
– Routeur IP (fourni par le site) avec une carte ATM
• Sur le site : réseaux Ethernets par exemple
• Routeur fourni ou non par l’opérateur
– Commutateur ou routeur Ethernet
• L’opérateur fournit l’équipement ATM ?? Ethernet
• ATM est « invisible » pour le site60
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 119
Architecture ATM : LANE : buts
• LANE : LAN Emulation
– ELAN : EmulatedLAN
• Objectifs :
– Interconnexions (niveau 2) de réseaux locaux comme
Ethernet à travers un réseau ATM
– Intégration de stations ATM comme « stations
Ethernet »
– But : rendre « invisible » les commutateurs ATM aux
réseaux Ethernet ? LAN emulation
• En LAN mais aussi en MAN
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 120
Architecture ATM : LANE : schéma
Commutateur
ATM
Commutateur
ATM
Commutateur
ATM
Réseau ATM
Station A
ATM
A
T Routeur IP
M
Commutateur
ATM - Eth
Commutateur
ATM - Eth
Commutateur
ATM - Eth
hub Station Eth
Station Eth
Station Eth
hub Station ETH
Station ETH
Station ETH
hub Station Eth
Station Eth
Station Eth
hub Station Eth
Station Eth Station Eth
Station B
ATM
hub
Station Eth
Station Eth
Serveur LANE61
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 121
Architecture ATM : LANE
• Emule un réseau Ethernet (de commutateurs) :
– Stations Eth + Stations ATM A et B
– Stations ETH ne font pas partie de ce réseau
• Sur LANE : interconnexion de niveau 2
– On peut utiliser d’autres protocoles que IP
• Logiciels :
– Stations Eth : pas de logiciel spécifique
• ATM « transparent »
– Stations ATM, routeur IP, Commut ATM-Eth : LEC
• LAN Emulation Client
– Sur réseau ATM : « serveur » LANE
• LECS (Configuration Server)
• LES (LAN Emulation Server)
• BUS (Broadcast and Unknown Server)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 122
Architecture LANE : pbs à résoudre
Transformation @ Eth ? ? @ ATM
• Lorsqu’une station ATM se connecte sur le réseau
(A, B, commutateur ATM-Eth, routeur ATM IP)
– Elle connaît l’adresse ATM du Serveur LANE (config manuelle)
– Elle s’enregistre auprès du Serveur LANE :
• J’ai telle @ ATM
• J’ai, ou je connais les @ Ethernet suivantes …
• Lorsqu’une station ATM veut envoyer une trame
Ethernet à une station X
– Interroge le Serveur LANE : qu’elle est l’adresse ATM de la
station Ethernet X ?
– Le Serveur lui indique l’adresse ATM
– La station ouvre une connexion ATM avec la station ATM
– ….62
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 123
Architecture LANE : pbs à résoudre
Broadcast Eth ? Réseau mode connecté ATM
• Lorsqu’une station ATM veut envoyer un
broadcastEthernet
– Elle envoie la trame vers le Serveur LANE
– Celui-ci ouvre autant de connexions que de stations
ATM sur le LANE
– Il envoie la trame à toutes les stations ATM
• Ouverture-fermeture de connexion ATM
– Mécanismes de time -out pour ne pas trop ouvrir ou
fermer de connexions ATM
• On peut avoir plusieurs ELAN sur un réseau
ATM
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 124
ATM : bilan
• Très complexe :
– Cher
– Très délicat à faire fonctionner
• Utilisé en MAN et WAN par opérateur :
– Location de VC statiques entre 2 points (équivalent de LS)
• Reconfiguration lorsque location de nouvelles liaisons
• Garantit de bande passante
– Création de réseaux virtuels ELAN
• Utilisation en LAN
– Années 1995-2000
– Remplacé par Gigabit Ethernet maintenant
– Avantage restant : peut intégrer le téléphone (PABX)
• Utilisation en MAN et WAN
– Encore très utilisé
– Remplacé par DWDM, IP directement sur FO, …
• Bon exemple de réseau multiservices en mode connecté63
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 125
ATM exemple : réseau MAN (C3I2)
VPs C3I2 à
10 M, 20, 30, 35, …
selon les sites
VPs SAFIR
à 2, 4 ou 10 M
SAFIR
France
C3I2
Grenoble
INRIA
Montbonnot
Domaine
universitaire
INPG
Felix Viallet
CNET
Meylan
CEA
Polygone
CNRS
Paris
Jussieu
Lyon
La Doua
Rouen
Crihan
Toulouse
CICT
CEA
Saclay
Sophia
INRIA
EDF
Clamart
Liaison interne
au site à 155 M
Prise C3I2 à 155 M
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 126
Ex d’architecture : dorsale Jussieu64
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 127
Ex d’architecture : tour
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 128
Ex d’archi : interco 2 bâtiments distants65
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 129
Ex d’archi : interco 2 bâtiments distants
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 130
Ex d’archi : RAP : MAN
• Réseau Académique Parisien
• Universités, CNRS, INSERM, …
– 300 000 étudiants – 40 000 personnels
– 99 sites Paris intra-muros
• Réseau privé : ART …
• 5 POP (Point Of Presence)
– Jussieu (27 sites)
– Odéon (34 sites)
– Auteuil (15 sites)
– Malesherbes (10 sites)
– CNAM (13 sites)
• Ouverture: été 200266
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 131
Ex d’archi : RAP : câbles
• Fibre noire : Single Mode G652
– 69 sites
– Lg totale (liaison) : 356.1 km
– Métro : 312 km
– Egouts : 33 km
– Génie civil : 0.3 km
– Plus petite liaison : 1 km, plus grande : 9.6 km
• BLR (Boucle locale radio)/ S-HDSL (« ADSL »
particulier)
– 23 sites à 2 Mbits/s
• Faisceaux hertziens
– 2 sites proches de Paris
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 132
DWDM
Infrastructure
de transport optique
Ex d’archi : RAP : services réseau
Data, voice, vidéo, multimédia, VPN …
ATM
SDH/SONET
Ethernet
IP
DWDM
Infrastructure
de services
Services67
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 133
Ex d’archi : RAP : Architecture
Odéon
W
W
E
E
Auteuil
Jussieu E
dwdm
dwdm
dwdm
cr
cr
cr
s-atm
s-atm
Site F Eth 100
Gigabit Ethernet
ATM OC12
GigaEthernet
8410 m
3100 m
W W E
E
Malesherbes
dwdm
s-atm
cr
dwdm
cr
s-atm
Site A
Site D
Site C
c
c
NRD
ATM
IP
5082 m
8672 m
5120 m
ATM OC3
Eth 100
10 longueurs d’onde
20 réseaux optiques virtuelsSP SP
Site B
s-atm
s-atm
gw-rap
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 134
Architecture logique IP : plan
Dans ce chapitre : réseau = réseau IP
• Adresses IP
• Affectation statique ou dynamique (DHCP)
• Plan adressage IP
• Routage IP
• Exemple de répartition d’utilisateurs et de
services
• Architecture ATM : classical IP68
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 135
Architecture IP : réseaux IP
Station M
Routeur
COMM
Eth
Station G
Station H
COMM
Eth Station J
Routeur
Station C
Station A
hub Station B
Station N hub Station O
Routeur Station P
Station Q
Station R
LS 1 M
256 Kb/s
Station L
hub
Fournisseur d’accès
Internet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 136
Architecture IP : adresses
• Une adresse IP par coupleur (machine, routeur)
• Format : 4 octets notation décimale A.B.C.D
– Ex : 130.190.5.3 193.32.30.150
• Une adresse doit être unique au monde
– Pour l’accès depuis l’Internet
• ? Surtout pour les serveurs
– Pas obligatoire pour les stations clientes Internet
• ? Intervalles d’adresses locales
• 2 ou 3 parties dans une adresse IP :
– @ de réseau – (@ sous-réseau) - @ machine
• Elément qui sépare 2 (ou +) réseaux ou sousréseaux
IP : routeur (ou commut-routeur)69
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 137
Archi IP : @ (ancienne classification)
• Classe A : A.B.C.D avec A ? 127
– 1er octet : @ de réseau : 126 réseaux possibles
– Reste : 254 x 254 x 254 (16 M) machines adressables
– Ex : DEC : 16.0.0.0 MIT : 18.0.0.0
• Classe B : 128 ? A ? 191
– 2 premiers octets : @ de réseau
• 64 x 254 : 16 000 réseaux possibles
– Reste : 254 x 254 (64 000) machines adressables
– Ex : IMAG : 129.88.0.0 Jussieu : 134.157.0.0
• Classe C : 192 ? A ? 223
– 3 premiers octets : @ de réseau
• 31x 254 x 254 (2 M) de réseaux possibles )
– Dernier octet : 254 adresses de machines
• IBP : 192.33.181.0 CITI2 : 192.70.89.0
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 138
Archi IP : sous-réseaux (subnets)
• Sous-réseaux : découpage d’un réseau IP (classe A, B, C)
• Les sous-réseaux d’un même réseau (subnetté) devaient
avoir une taille identique (contrainte routeurs) :
– Masque de subnetspécifiait le découpage
– Bits qui désignent la partie réseau + sous-réseau = 1
– 192.33.181.0 découpé en 4 sous-réseaux
• Masque 255.255.255.192
• 192.33.181.0-192.33.181.63
• 192.33.181.64-192.33.181.127
• 192.33.181.128-192.33.181.191
• 192.33.181.192-192.33.181.255
• Les routeurs permettent maintenant de créer des sousréseaux
de tailles différentes
• Les sous-réseaux sont connexes
– Non séparés par un autre réseau IP
– Découpage en sous-réseaux n’est connu que du propriétaire du
réseau (site, entreprise, provider, …), pas de l’Internet70
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 139
Archi IP : classless
• Pour obtenir une adresse de réseau (unique)
– Auprès de son fournisseur d’accès à l’Internet
– AFNIC (France) – RIPE (Europe)
– Classe A : impossible
– Classe B : presque impossible (épuisé)
– Classe C ou partie de Classe C : OK
• Nouvelle notation et découpage : classless
– Réseau 129.88.0.0 ? Réseau 129.88/16
– Réseau 192.33.181.0 ? Réseau 192.33.181/24
– Réseaux (sous-réseaux avant)
• 192.33.181.0/26 : 192.33.181.0-192.33.181.63
• 192.33.181.64/26 : 192.33.181.64-192.33.181.127
• 192.33.181.128/26 : 192.33.181.128-192.33.181.191
• 192.33.181.192/27 : 192.33.181.192-192.33.181.223
• 192.33.181.224/27 : 192.33.181.224-192.33.181.255
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 140
Archi IP : @ particulières
• Classe D : 224? A ? 239 : multicast
– 224.10.15.3 : ? groupe de stations sur l’Internet (n’importe où)
• Classe E : 240 ? A ? 254 : utilisation ultérieure
• Adresses locales (ne doivent pas sortir sur l’Internet)
– 10.0.0.0 à 10.255.255.255 : 10/8
– 172.16.0.0 à 172.31.255.255 : 172.16/12
– 192.168.0.0 à 192.168.255.255 : 192.168/16
• Loopback (soi-même) : 127.0.0.1
• 0.0.0.0 : quand station ne connaît pas son adresse
• 130.190.0.0 : le réseau 130.190/16
• 130.190.255.255 : broadcast
– Toutes les machines du réseau 130.190/1671
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 141
Archi IP : Affection @ IP à une station
• Configuration statique
– Unix : commande ifconfig
– Windows (2000 pro) : panneau de conf – connexion réseau –
TCP/IP
• Configuration dynamique : DHCP
– Serveur DHCP (Dynamic Host Configuration Protocol) dans un
réseau IP avec une plage d’adresses à attribuer
– Station sans adresse IP fait une demande DHCPDISCOVER
• @ IP source 0000 @IP dest 255.255.255.255
• Contient @ Ethernet et nom de la station
– Serveur DHCP répond :
• Adresse IP - Masque de sous-réseau – informations de routage
• Adresses DNS – Nom de domaine
• Durée du bail
– Explication simplifiée (plusieurs serveurs DHCP possibles, …)
– Avantage : pas de conf sur stations, portables, économie d’@
– Désavantage : qui est qui ?
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 142
Archi IP : pbs adresses IP
• Adressage ni hiérarchique, ni géographique
– Tables de routages énormes au cœur de l’Internet
– Distribution des adresses
• Au compte-goutte (maintenant bataille commerciale)
• Uniquement 4 bytes (et certaines plages vides)
? Pénurie d’adresses
– FAI : adresses dynamiques aux clients
– Entreprises – FAI :
• Adresses locales sur réseau privé
• NAT : Network Address Translation
– Et PAT : Port Address Translation
– IPv672
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 143
Archi IP : plan d’adressage
• Un routeur sépare 2 (ou plus) réseaux ou sous-réseaux IP
• Il faut construire un plan d’adressage
– Découper l’espace d’adressage dont on dispose en sous-réseaux
et le répartir entre les stations
• Eléments à prendre en compte :
– Les routeurs séparent les sous-réseaux
• Proximité géographique des stations
• Ou non si VLAN
– Dans un sous-réseau on est dépendant de son voisin
• Broadcast Ethernet par exemple
– On regroupe dans un même sous-réseau les stations qui
travaillent entre elles (d’un service par exemple)
• La majorité du trafic reste local au sous-réseau (évite de charger les
autres sous-réseaux
• Profils de connexion et de sécurité identiques
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 144
Archi IP : plan adressage 192.33.181/24
192.33.181.129
Routeur 3
COMM
Eth
192.33.181.141
192.33.181.142
COMM
Eth 192.33.181.200
Routeur 2
192.33.181.67
192.33.181.65 (B)
hub
192.33.181.66 (A)
192.33.181.2 hub 192.33.181.3
Routeur 1
192.33.181.5
192.33.181.201
192.33.181.202 (C)
LS 1 M
256 Kb/s
192.33.181.130
hub
Fournisseur d’accès
Internet
192.33.181.0/26
192.33.181.64/26
192.33.181.128/26
192.33.181.192/27
192.33.181.224/27
Quelles @ manquent ils ?73
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 145
Archi IP : plan adressage 192.33.181/24
192.33.181.129
Routeur 3
COMM
Eth
192.33.181.141
192.33.181.142
COMM
Eth 192.33.181.200
Routeur 2
192.33.181.67
192.33.181.65 (B)
hub
192.33.181.66 (A)
192.33.181.2 hub 192.33.181.3
Routeur 1
192.33.181.5
192.33.181.201
192.33.181.202 (C)
LS 1 M
256 Kb/s
192.33.181.130
hub
Fournisseur d’accès
Internet
192.33.181.0/26
192.33.181.64/26
192.33.181.128/26
192.33.181.192/27
192.33.181.224/27
192.33.181.203
192.33.181.231
192.33.181.10
192.33.181.230
192.33.181.80
192.33.181.150
192.33.181.145
X
Pour l’administration des équipements, il en manque d’autres …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 146
Archi IP : routage IP
• A (192.33.181.66) veut envoyer un datagramme IP à B
(192.33.181.65)
– Pb : A doit envoyer une trame Ethernet mais ne connaît l’@ Eth
B
– Elle envoie un broadcast Ethernet sur le réseau qui demande :
quelle est l’@ eth de B ? (l’@ Eth de A est spécifiée dans la trame
Ethernet : @ Eth origine)
– B répond à l’@ Eth A en disant : je suis 192.33.181.65 et mon
adresse Ethernet est @ Eth B
– A peut alors envoyer alors les datagrammes IP dans des trames
Ethernet (elle connaît l’@ Eth de B)
– Mécanisme : ARP – RARP
• A (192.33.181.66) veut envoyer un datagramme à C
(192.33.181.202)
– Elle doit envoyer une trame Eth au routeur 2 : 192.33.181.80
– Il lui manque cette information ? Information de routage74
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 147
Archi IP : routage IP
• Chaque station doit être configurée pour spécifier
– Son adresse IP (Commande Unix ifconfig)
– L’adresse du sous-réseau sur laquelle elle est (Commande Unix
ifconfig)
– Une table (de routage) qui indique comment atteindre les autres
réseaux (Commande Unix route add)
• Exemple A
– @ IP : 192.33.181.66 - @ Réseau : 192.33.181.64/26
– Routes (numéro IP du prochain routeur destinataire) :
• 192.33.181.128/26 ? 192.33.181.80
• 192.33.181.224/27 ? 192.33.181.80
• 192.33.181.192/27 ? 192.33.181.80
• 192.33.181.0/26 ? 192.33.181.80
• Reste du monde (default route) ? 192.33.181.80
• La route par défaut (default route - default gateway) suffit
• Toutes les stations doivent être configurées
– Ex : mon PC dans panneau de configuration …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 148
Archi IP : routage IP
• Les routeurs aussi doivent être configurés
– Par port : @ IP, @ Réseau (ou sous-réseau)
– Table routage
• Exemple routeur 3 :
– Port 1 : 192.33.181.230 - réseau 192.33.181.224/27
– Port 2 : 192.33.181.145 – réseau 192.33.181.128/26
– Port 3 : 192.33.181.203 – réseau 192.33.181.192/27
– Port 4 : X – réseau Y
– Table routage
• Route 192.33.181.64/26 ? Port 2 : 192.33.181.150
• Route 192.33.181.0/26 ? Port 1 : 192.33.181.231
• Route default ? Port 4 : routeur du fournisseur d’accès
• Exemple : envoi datagramme B ? C75
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 149
Archi IP : routage IP
• Routage statique
– Mise à jour tables de routage : manuelle
– ICMP redirect : Ce n’est pas ici c’est ailleurs
– Problème : intervention manuelle
• Quand le réseau évolue : modification manuel des tables
• Quand plusieurs chemins possibles et coupures
– Utilisé généralement au niveau des stations, dans
certains routeurs d’extrémités
• Routage dynamique
– Protocoles entre routeurs et entre routeurs et stations
pour mettre à jour automatiquement les tables de
routages : annonces de routes
– Ex : RIP, OSPF, BGP
– Cf cours sur le routage
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 150
Archi IP : routage IP
• L’Internet ne fonctionnerait pas sans bons
protocoles de routage et sans experts pour les
faire fonctionner
• C’est une problématique surtout d’opérateurs
Internet
– A laquelle s’ajoutent les accords de peering
• Routeurs doivent être très rapides
– Traitement du routage directement en ASIC
• Routeurs au cœur de l’Internet : doivent
connaître toutes les routes : impossible ?
Agrégation de plages d’adresses de réseaux IP
• On n’est pas obligé d’avoir une route par défaut
sur tous les équipements : sécurité76
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 151
Archi IP : répartition d’utilisateurs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 152
Architecture ATM : classical IP
• Objectif :
– Utiliser un réseau ATM pour transporter des
datagrammes IP
• RFC 1483
– Comment encapsuler (transporter) les datagrammes
IP dans des cellules ATM
• RFC 1577
– Comment construire un réseau IP sur un réseau ATM
– Pb ARP par exemple77
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 153
Architecture ATM : classical IP
Commutateur
ATM
Commutateur
ATM
Commutateur
ATM
Réseau ATM
Station IP A
ATM
A
T Routeur IP
M
ATM
Routeur IP
Routeur IP
ATM
Routeur IP
ATM
hub Station IP Eth
Station IP Eth
Station IP Eth
hub Station IP Eth
Station IP Eth
Station IP Eth
hub Station IP Eth
Station IP Eth
Station IP Eth
hub Station IP Eth
Station IP Eth Station IP Eth
Station IP B
ATM
hub
Station IP Eth
Station IP Eth
Serveur ARP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 154
Architecture ATM : classical IP
• Un sous-réseau IP dans un réseau ATM
– Un serveur ARP
– Gère une table @ IP ? ? @ ATM
• Lorsqu’une station ATM IP se connecte
– Elle connaît l’@ ATM du serveur ARP
• Configuration manuelle
– Elle s’enregistre auprès du serveur ARP
• Indique son adresse ATM et son adresse IP
• Lorsqu’une station ATM-IP veut émettre un
datagramme IP vers une autre station ATM-IP
– Demande au ARP Serveur l’@ ATM de la station IP
– Ouvre un VC avec cette station ATM
– …78
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 155
Architecture ATM : classical IP
• Lacunes :
– Pas de broadcast ou multicast IP
– Un seul serveur ARP : pas de redondance : pb si panne
• On peut avoir plusieurs sous-réseaux IP sur un réseau
ATM :
– Passe par un routeur ATM-IP pour communiquer
• ATM complexe avec IP :
– Mode non connecté (IP) avec techno en mode connecté (ATM)
• Rq : sur un même réseau ATM on peut avoir :
– Des VC ou VP permanents (ouverts en permanence) :
• LS informatique : interconnexions LANs
• Interconnexions PABX
– Des ELAN (plusieurs LANE)
– Des sous-réseaux IP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 156
MPLS : buts
• MPLS : Multi Protocol Label Switching
• Protocole pour opérateurs de WAN IP
• Lacunes d’un réseau WAN IP « classique »
– Travail d’un routeur important
• Il doit étudier chaque datagramme
• Il doit extraire l’@ IP destinatrice du datagramme IP, consulter sa
table de routage et agir en conséquence
– Pas de partage de charge entre plusieurs liaisons
• Il n’y a qu’une route par destination
– Pas de routage qui tiendrait compte de qualités de
service demandées79
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 157
MPLS
• Les routeurs en bordure de réseau ajoutent (et
enlèvent) une étiquette aux datagrammes selon :
– La route que devra emprunter le datagramme
– La classification du datagramme
• Prioritaire ou non, pour application avec QoS, …
• Les routeurs au cœur du réseau routent selon
cette étiquette
– Rapide (plutôt de la commutation que du routage)
• Protocole pour mettre à jour les tables de
routage des routeurs au cœur du réseau :
– Une fois par « flot »
– Choix de route / étiquette donc / origine, QoS, …
– Réservation de bande passante possible
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 158
Intégration téléphonie – informatique
• Intégration voix - données
• Intégration possible car :
– Téléphone et informatique utilisent :
• Mêmes câbles (FO, TP) et ondes (hertziennes ou radio)
• Eléments actifs similaires : les téléphones sont maintenant numériques
– Ordinateurs :
• Equipés de microphone et hauts-parleurs
• Pourraient remplacer les postes téléphoniques : poste « unique »
• Pourquoi intégrer ? : faire des économies
– En réseau d’entreprise
• Infrastructure et matériel : même réseau (plusieurs sens à réseau)
• Même équipe d’administration
– Dans les réseaux des opérateurs : mêmes économies
– Au niveau des utilisateurs : économies sur les communications
téléphoniques longues distances
• Le coût d’une communication téléphonique dépend de la distance
• Le coût d’une « communication » Internet est indépendante de la
distance80
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 159
Intégration voix-données
• Pourquoi intégrer ? : apporter des nouveaux services
– Evolution des services informatiques
• Chat, mail ? mode de communication vocal (téléphonique)
– Evolution des services téléphoniques
• Communication téléphonique ? transfert de documents, vidéo, …
– Intégration des services
• Annuaires : « téléphoniques » et informatiques (LDAP)
• Messageries : vocales et électroniques
• Comment intégrer ?
– Normes existent : H323, SIP
– Solutions techniques (matériels) existent
– Législation s’assouplit : dérégulation du téléphone
– Différents niveaux d’intégration : tranchées ? réseau et services
• Rappel : contraintes téléphone :
– QoS (voir chapitre ATM précédent) difficiles sur réseau IP
– Existant qui fonctionne parfaitement : PABX à faire évoluer
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 160
Voix-Données : niveaux d’intégration
• Mêmes tranchées, fourreaux, goulottes … (chemins de
câbles) sur un site
2 câblages (et équipements actifs) différents
– 2 réseaux physiques donc logiques différents
– 2 administrations différentes
– Fait depuis plusieurs années entre les bâtiments
– Maintenant en pré-câblage de bâtiment
• Câblage courants faibles
• LS longue distance partagée entre 2 sites
– Interconnexion de PABX
– Interconnexion de LAN (routeurs, commutateurs, ponts)
– Ex : LS 2 Mb/s (MIC) ou hertzienne ou laser éclatée
(multiplexeur et dé-multiplexeur)
• 1 M (16 voix téléphoniques) pour PABX
• 1 Mb/s pour interconnexion de LAN81
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 161
Voix-Données : niveaux d’intégration
• Partage d’un réseau ATM
– VP pour PABX
– VP pour informatique (routeurs, commutateurs)
– FT et les autres opérateurs le font
• Utilisation du réseau téléphonique pour les
données
– Externe (RTC national) ou interne à l’entreprise
– Ordinateur (ou routeur) – Modem – Réseau
téléphonique – Modem – Ordinateur (ou
concentrateur ou routeur ou …)
– V90 (56.6 Kb/s), RNIS (2x64 Kb/s), ADSL (… 1 Mb/s)
• Utilisation du réseau IP pour la voix
– Téléphonie sur IP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 162
Voix-Données : Tél / IP : services rendus
• Connexion ordinateur – ordinateur (application voix)
– Ordinateur – Réseau IP (Eth, PPP) – Ordinateur
– Netmeeting par exemple
– Un réseau logique différent du réseau téléphonique
• Pas de communication possible avec postes t éléphoniques classiques
– Intéressant pour longues distances
• Economies en coût de communication
• Connexion PABX – PABX
– Téléphones – PABX – passerelle – Réseau IP (Eth, ATM, PPP) –
passerelle – PABX – Téléphones
– Pas de communication téléphonique possible avec ordinateur
connecté dans le mode précédent
– Intéressant si bonne infrastructure IP (beaucoup de débit)
• Intégration totale : « le tout IP»
– Communications postes téléphoniques - ordinateurs possibles82
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 163
Voix-Données : Tél / IP : H323
• Origine : monde des téléphonistes ITU
• Ensemble complet de standards
– Architecture et fonctions d’un système de vidéo-conférence
– Sur réseaux en mode paquet (sans connexion), sans garantie de
QoS comme IP (mais pas uniquement pour IP)
• IP : RTP
– Real-time Transport Protocol
– Transport flux temps réel : vidéo, audio, … dans UDP
– Ajoute des informations pour que le récepteur compense :
variation latence, arrivée de datagrammes dans le désordre, …
• Type de données transport ées
• Horodatage
• Numéro de séquence
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 164
Voix-Données : Tél / IP : H323
• IP : RTCP
– Real-time Transport Control Protocol
– Permet d’avertir l’émetteur de la qualité de la
transmission :
• Le taux de paquets perdus
• La variation de la latence
• …
– Informations sur l’identité des participants
(applications multicast)
• Eléments (matériels ou logiciels)
– Terminal H323 :
• Ordinateur avec netmeeting
• Téléphone sur IP (H323)
• …83
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 165
Voix-Données : Tél / IP : H323
• Eléments (matériels ou logiciels) suite
– Passerelle : entre réseau IP et RTC (ou RNIS)
• Interfaces :
– Ethernet ? réseau IP
– Ports TP ? téléphones classiques ou PABX
• Codage/décodage voix, mise en paquets, suppression d’écho, …
– Garde-barriè re : administration
• Gestion des @adresses : IP ?? E164 (téléphoniques)
• Contrôle les accès
• Peut refuser des appels si bande passante insuffisante
• Contrôle une zone (H323)
– MCU-Pont : Multicast Control Unit : téléconférence
• Gère Multicast
– Transmet avec adresse IP multicast si le réseau le permet
• Ouvre n « connexions » point à point
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 166
Voix-Données : Tél / IP : H323
• Exemple de réseau H323 (entre 2 sites)
Réseau IP (Internet)
Routeur
Routeur
hub Station (H323)
Station (H323)
Téléphone sur IP
(H323)
Passerelle
PABX
Téléphone
analogique
Téléphone
RTC analogique
hub Station (H323)
Téléphone sur IP
(H323)
Passerelle
PABX
Téléphone
analogique
RTC
Garde-barrière84
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 167
Voix-Données : Tél / IP : SIP
• SIP : Session Invitation Protocol
• Origine : IETF : Informatique
• Gestion de sessions multimedia avec 1 ou n
participants
• Adresses : sip:bob@193.10.3.1
• Utilise RTP au-dessus de UDP ou TCP
• Station IP ?? Station IP : le protocole définit
– Appel – Négociation des paramètres
– Communication
– Fermeture de connexion
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 168
Voix-Données : Tél / IP : SIP
• Autres services
– Location server (registrar)
• Pour qu’un client puisse s’enregistrer quand il change d’adresse
IP (mobile, ISP avec adresse dynamique par exemple)
– Proxy server
• Serveur d’un côté (reçoit les appels)
• Client de l’autre (émet des appels)
• Pourquoi ? : Point de contrôle, de facturation
– Redirect server
• Reçoit des appels
• Indique la bonne destination à laquelle s’adresser : proxy , …
• Peut permettre de gérer la répartition de charge entre plusieurs
serveurs
• SIP beaucoup plus basique que H32385
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 169
Voix-Données : bilan aujourd’hui
• Constat : la téléphonie ce n’est pas simple
– Besoin de QoS et habitude de bonne qualité
– Fonctionnalités des PABX et postes téléphoniques sont
maintenant complexes : numéros abrégés, transfert d’appel,
téléconférence, messagerie vocale, …
– 2 équipes d’exploitation avec des cultures différentes
• Téléphonistes - informaticiens
• ? Intégration prudente
– Années 1999-2000 : on va tout mettre sur IP
– Aujourd’hui : on peut basculer certaines parties
• Elt nouveau : arrivée massive du téléphone portable
– Habitude de communications de moins bonne qualité
• Comme le transport de la voix sur un réseau « Best Effort » IP
– Portabilité sans comparaison avec ordinateur portable
• Ne va pas dans le sens d’un terminal unique : téléphone-ordinateur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 170
Voix-Données : bilan aujourd’hui
• Dans entreprise :
– Dépend de l’historique et de la culture
– Intégration des 2 équipes d’exploitation ?
• Généralement :
– L’utilisateur conserve 2 équipements : téléphone et
ordinateur
– Les infrastructures réseaux d’extrémité (câblage
horizontal) sont différentes mais chemins identiques
• Poste téléphonique : câblage téléphonique ? PABX
• Ordinateur : câblage informatique ? hubs, commutateurs, …
– Interconnexion de PABX sur IP : solution de + en +
déployée
• Car débits du réseau données >> réseau téléphonique
• Avec back-up RNIS par exemple86
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 171
Voix - Video : n participants
• N vers n : réunions avec participants distants :
– Téléconférence (voix uniquement)
• Service FT (équivalent d’un MCU)
• Poste téléphonique habituel ou matériel dédié
– Matériel de visio-conférence (voix + image)
• H323 sur RNIS ? H323 sur IP
• Matériel dédié
• Netmeeting + Webcam
– Multicast IP :
• V IC-RAT + Webcam
• Réseau multicast
• Académique surtout
• 1 vers n : Visio-conférence (sans question de la salle)
– Idem ci-dessus
– Streaming : realplayer
• Unicast ou multicast IP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 172
Réseaux virtuels : plan
• Pourquoi ?
• VLAN :Virtual LAN
• Avec ATM
• VPN : Virtual Private Network
– PPTP
– L2TP
– IPSEC87
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 173
Réseaux virtuels : pourquoi ?
On regroupe dans un même réseau (Ethernet commuté ou
IP) les stations qui travaillent ensemble (groupe de
travail - workgroup). Conséquences :
• Les applications « groupe de travail » :
– Qui ont besoin de découvrir les serveurs (contrôleur de domaine,
voisinage réseau, imprimantes, serveur DHCP, zone Mac, …)
– Et ces serveurs qui ont besoin d’émettre des messages vers toutes
les stations du groupe de travail
Utilisent les broadcasts Ethernet ou IP
• Le groupe qui a les mêmes besoins de sécurité :
– Contrôle l’accès entrant sur le réseau à la frontière du réseau
(routeur d’accès)
– Est assuré de la confidentialité par rapport à l’extérieur du
groupe car il n’y a pas diffusion à l’extérieur du réseau
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 174
Réseaux virtuels : pourquoi ?
• Le groupe qui à les mêmes besoins de connectivité depuis
et vers l’extérieur :
– Effectue un contrôle d’accès sortant à la frontière du réseau (sur
le routeur d’accès)
– Peut mettre en place une limitation de la bande passante utilisée
vers l’extérieur au point de sortie
• Le groupe peut avoir le même adressage IP et des noms
de stations dans le même domaine :
– Réalisé de fait dans un réseau IP
• Problème : comment peut on avoir les mêmes services
avec un groupe géographiquement dispers é ?
• Solution : avec des réseaux virtuels88
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 175
Réseaux virtuels : pourquoi ?
• Exemples de groupes dispersés
– Université UJF sur plusieurs sites à Grenoble et un à Valence
• Besoin de regrouper les sites dans un seul réseau logique
– Entreprise multi sites interconnectés par Internet :
• Même besoin
– Formation d’ingénieurs sur 2 sites ENSIMAG-ENSERG
• Même besoin
– Unité CNRS (UREC) sur 4 villes
• Même besoin
• Exemples de services dispersés
– Services administratifs (DR) du CNRS
– Services comptabilité d’une entreprise multi-sites
• Mais aussi des groupes mobiles
– Ordinateurs mobiles
– Déménagements, réorganisations ? éclatements géographiques
des équipes
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 176
Réseaux virtuels : principes
• Regrouper « logiquement » un groupe de stations
dispersées géographiquement
– Dans un même réseau : Ethernet ou IP ou …
• Buts :
– Utilisation d’applications « groupe de travail »
– Sécurité
– Contrôle de bande passante
– Noms et adresses IP
– Mobilité
• Plusieurs techniques suivant les buts, WAN/LAN, …
– VLAN
– ELAN
– VPN89
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 177
Réseaux virtuels : VLAN
• Virtual LAN
• But : créer un réseau virtuel de niveau 2
– Un domaine de broadcast (Ethernet)
• Possible avec des commutateurs Ethernet
– Pas avec des hubs
– Intelligence dans les commutateurs (et routeurs)
• Différents types de VLANs
– Par ports (de commutateur) : niveau 1
– Par adresse MAC (Ethernet) : niveau 2
– Suivant la valeur d’autres champs : niveau 3
• Protocole, @ IP, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 178
Réseaux virtuels : VLAN par ports
Chaque port de commutateur est affecté à un VLAN
Exemple :
VLAN 1 : A,B,C,D,E,F,I,J
VLAN 2 : G,R,K,M,L
VLAN 3 : H,Q
Station L
Station K
hub
Commutateur
Routeur
COMM
Eth 1 Station F
Station G
Station H
COMM
Eth 2 Station J
Station I
Station E
Station D
hub
Station C
Station A
hub Station B
Station R Station Q
Station M
3 1
2 4
5
1
2
3
4
590
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 179
Réseaux virtuels : VLAN par ports
• Configuration VLAN de Eth 1 : 3 VLANS 1-2-3
– Port 1 = VLAN 1 Port 4 = VLAN 3
– Port 2 = VLAN 1 Port 3 = VLAN 2
– Port 5 = Voir après
– Quand Eth1 reçoit une trame de A (VLAN 1) :
• Envoie vers port 2 (et port 5 : cf après)
• Configuration VLAN de Eth 2 : 3 VLANS 1-2- »
– Port 1 = VLAN 1 Port 3 = VLAN 3
– Port 2 = VLAN 1 Port 4 = VLAN 2
– Port 5 = Voir après
– Quand Eth1 reçoit une trame de I (VLAN 1) :
• Envoie vers port 1 (et port 5, cf après)
• Configuration commutateur de Eth1 (idem Eth2) :
– Port 1 : @ MAC A, B, C, D, E
– …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 180
Réseaux virtuels : VLAN par port
• Diffusion
– Les équipements Eth1, Eth2 et le commutateurrouteur
font en sorte que :
• Quand A envoie un broadcast Ethernet ? A,B,C,D,E,F,I,J
(VLAN1)
mais pas vers les autres stations
• Pour communiquer entre Eth1, Eth2, Eth3
– Trame Ethernet F ? G impossible
• Datagramme IP : F ? Commutateur-routeur ? G
– Passe par routeur ou commutateur-routeur
• Remarque
– Cette segmentation peut aussi être réalisée par
brassage manuel dans le local technique où sont les
commutateurs : dans certains cas91
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 181
Réseaux virtuels : VLAN 802.1Q
• Problème : numéro de VLAN sur les truncks
– Schéma précédent : lorsque le commutateur Eth 2 reçoit une
trame Ethernet venant de A, pour savoir vers quelles stations il
doit la rediffuser il faut qu’il sache le numéro de VLAN dont A
est membre
– ? Il faut qu’il trouve cette information dans la trame
• Il faut que sur chaque lien entre les commutateurs
(truncks) les trames soient marquées (taggées)
– Protocoles propriétaires : ISL (CISCO)
– IEEE802.1Q
• Champ type Eth : 8100
• Champ numéro de VLAN : 12 bits (4096)
• Niveau de priorité : 3 bits ? QoS
• ….
• Informations de la trame initiale
• Schéma précédent : 802.1Q est activé entre Eth 1 –
Commut-Routeur – Eth 2
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 182
Réseaux virtuels : VLAN par @ MAC
Chaque station peut appartenir à un VLAN
suivant son adresse MAC
Exemple :
VLAN 1 : A, C, F, I, J, G
VLAN 2 : B, D, K, R
VLAN 3 : L, M, E, Q, H
Station L
Station M hub
Commutateur
Routeur 3
COMM
Eth 1
Station F
Station G
Station H
COMM
Eth 2 Station J
Station I
Station E
Station D
hub
Station C
Station A
hub Station B
Station K Station R Station Q
1
3 2
4
5
1
2
3 4
592
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 183
Réseaux virtuels : VLAN par @ MAC
• Configuration VLAN de Eth 1 : 3 VLANS 1-2-3
– VLAN 1 : @ MAC de A, C, F, G
– VLAN 2 : @ MAC de B, D, Q, R
– VLAN 3 : @ MAC de E, H
– Quand Eth1 reçoit une trame de A (VLAN 1) :
• Envoie vers port 2 (et port 5 : cf après)
• Configuration VLAN de Eth 2 : 3 VLANS 1-2- »
– Port 1 = VLAN 1 Port 3 = VLAN 3
– Port 2 = VLAN 1 Port 4 = VLAN 2
– Port 5 = Voir après
– Quand Eth1 reçoit une trame de I (VLAN 1) :
• Envoie vers port 1 (et port 5, cf après)
• Configuration commutateur de Eth1 (idem Eth2) :
– Port 1 : @ MAC A, B, C, D, E
– …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 184
VLAN par port ou par @ MAC
• Avantages VLAN @MAC / port
– Des stations sur des hubs peuvent appartenir à différents VLANs
• Mais la diffusion n’est pas sélective selon les branches des hubs
– On peut avoir des stations qui sont déplacées (déménagement
ou mobiles) sans besoin de reconfiguration
– On peut identifier chaque station avec son numéro de carte
Ethernet
• Sécurité accrue
• Si adresse MAC inconnue : appartient au VLAN « visiteurs »
• Désavantages VLAN par @ Mac
– Administration plus lourde
• Répertorier et tenir à jour des tables avec toutes les adresses MAC
– Si utilisateur change sa carte Ethernet : modification de
configuration93
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 185
Réseaux virtuels : VLAN niveau 3
• Affecter les trames Ethernet dans un VLAN
différent selon des champs que l’on trouve dans
la trame :
– Champ type Ethernet : protocole : IP, IPX, Appletalk,
…
– L’adresse IP origine : sous-réseau
• mais ce n’est pas du routage
– …
• Peut être utile quand de nombreux protocoles
sont utilisés sur un même réseau
– Support des « anciennes applications »
– De moins en moins utile
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 186
Réseaux virtuels : VLAN
• Commutateurs :
– Ils conservent leur fonction de base : commutation, sans diffusion
inutile
– Certains peuvent ne pas avoir de fonctionnalité VLAN
– Dans les exemples précédents les commutateurs ont la
fonctionnalité d’accepter plusieurs adresses Ethernet et VLAN
par port : ce n’est pas toujours le cas
• Routeurs :
– Peuvent supporter 802.1Q. Si non, il faut autant de cartes
Ethernet que de VLAN pour que le routeur route les VLAN
• Ex de VLANs dans un laboratoire
– 1 / par équipe de recherche pour stations de travail individuelles
– Administration (peut inclure la station de chaque secrétaire
d’équipe de recherche)
– Test : toutes les machines de test des différentes équipes
– Serveurs locaux
– Serveurs Internet
– Visiteurs94
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 187
Réseaux virtuels : VLAN
• Le travail d’administration de VLAN n’est pas
négligeable !
– Il faut bien connaître le réseau (et être plusieurs à le
connaître : pb absence)
– Il faut un outil d’administration
• Théorie : on peut utiliser des commutateurs de
différents constructeurs : IEEE802.1Q
• En pratique : commutateurs homogènes
– Avec un outil d’administration fourni par le
constructeur
• Les VLAN sont des réseaux virtuels pour LAN
– Pas pour MAN ou WAN
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 188
Réseaux virtuels : ATM
• Interconnexion de réseaux Ethernet
– ELAN : principe LANE (cf chapitre précédent)
• Utilisation de VPs ATM pour interconnecter des
bâtiments (LAN) ou des sites (WAN) :
– Réseaux Ethernet ou ATM
– Réseaux IP
– Fonctions :
• Sécurité : appelé aussi VPN ATM
• Garantie de qualité de service (débit / VP)
– Exemple : service ATM de Renater95
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 189
Réseaux virtuels : VPN : but
• VPN : Virtual Private Network
– Terme générique qui regroupe plusieurs techniques
• Relier 2 réseaux distants (ou une station et un réseau) via
un réseau ouvert (Internet) en garantissant :
• Les services de VLAN pour IP : même réseau logique IP
• Etendre le réseau interne
• Des services des sécurité :
• Confidentialité des informations transmises
• Intégrité des données (données non modifiées par un tiers)
• Authentification de l’émetteur et du destinataire (au sens station ou
routeur)
• Sans rechercher une qualité de service particulière (débit …)
• Eviter des infrastructures dédiées à base de LS
– Réduction de coût en utilisant un réseau partagé
• Utilisation du tunneling (tunnelisation)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 190
Réseaux virtuels : VPN : tunnels
• Un tunnel transporte des données entre 2 points
sans que les éléments entre les points
« perturbent » ce transport
– Réseau de transport : transparent
• Entre 2 réseaux ou entre station-serveur
Réseau 1
Réseau 2
Internet Station A
Serveur 1
Station B 96
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 191
Réseaux virtuels : VPN : tunnels
• Encapsulation
– En entrée de tunnel : données insérées (encapsulées) dans un
paquet du protocole de tunnelisation
– En sortie : données extraites : retrouvent leur forme initiale
– Tunnel IP véhiculant des datagrammes IP
• Entête
– @ IP Origine : @ IP entrée du tunnel
– @ IP Destinatrice : @ IP sortie du tunnel
– Protocole : tunnel : par ex : GRE
• Données : datagramme initial IP
– Entête : @ IP station origine - @ IP station destinatrice
– Données
• Plusieurs méthodes et protocoles
– PPTP (RFC2637)
– L2F (RFC2341)
– L2TP (RFC2661)
– IPSEC
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 192
Réseaux virtuels : VPN : PPP
• PPP : Point to Point Protocol
– Permet de transporter des datagrammes IP sur une
liaison point à point (RTC, LS par exemple)
– Mais aussi d’autres protocoles que IP
– Fonctionnalités supplémentaires :
• Authentification des extrêmités : PAP ou CHAP
– Avant tout transfert de données
• Chiffrement des données (confidentialité et intégrité)
• Adressage IP dynamique
• Compression
• …97
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 193
Réseaux virtuels : VPN : PPTP
• PPTP : Point-to-Point Tunneling Protocol
• Origine Microsoft
• VPN surtout sur réseau commuté pour accès particulier
– Station isolée ? LAN entreprise
• Encapsulation IP, IPX, … ? PPP ? GRE ? IP
– Pas uniquement IP
• La station isolée semble appartenir au LAN de
l’entreprise
– Elle peut avoir une adresse IP dans le sous-réseau IP du LAN,
comme si elle était une station du réseau interne
– Elle voit les autres stations du LAN comme si elle était connectée
sur le LAN
– Elle a les mêmes droits d’accès aux ressources du LAN qu’une
station du LAN (serveurs de fichiers, imprimantes, …)
– Elle utilisera la sortie Internet de l’entreprise pour accéder à
l’Internet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 194
Réseaux virtuels : VPN : PPTP
• Le chemin entre la station et le LAN est sécurisé
– En utilisant les fonctions optionnelles de PPP
– Authentification
– Chiffrement
• Mais il faut bien configurer le serveur PPTP
pour que des stations pirates ne puissent pas se
connecter sur le LAN
• Serveur PPTP
– Serveur NT, Linux, …
– Serveur d’accès PPTP - Routeur
• Client PPTP
– Windows NT, 95/98 …, Linux, Mac, …98
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 195
Réseaux virtuels : VPN : PPTP
2 utilisations
LAN interne
193.51.3/24
Internet
Station
Client PPTP
193.51.3.2
Serveur
193.51.3.5
Serveur
PPTP
Station
Client PPTP
193.51.3.4
LAN interne
193.51.3/24
Internet
Station
Client PPP
193.51.3.2
Serveur
193.51.3.5
Serveur
PPTP
Station
Client PPP
193.51.3.4
Serveur d’accès PPP
Client PPTP
FAI
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 196
Réseaux virtuels : VPN : L2TP
• L2TP : Layer 2 Tunneling Protocol
– Réunion de PPTP et L2F (CISCO)
• Devrait remplacer PPTP
• 3 cas de configuration possibles :
– Tunnels L2TP : clients L2TP et serveur L2TP (idem
PPTP)
– PPP : clients PPP et FAI - Tunnels L2TP : FAI et
serveur L2TP (idem PPTP)
– LAN – Serveur L2TP – Tunnels L2TP – Serveur
L2TP - LAN
• Sécurité
– Utilisation possible des fonctions de PPP
– Pour protéger le tunnel : IPSec 99
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 197
Réseaux virtuels : VPN : IPSec
• IPSec : IP Security Protocol
• IETF : Pour mettre un peu d’ordre dans les différentes
méthodes de tunneling et de sécurisation
• Sécurisation des échanges au niveau IP
– Chaque datagramme est authentifié et/ou chiffré
• Inclus dans IPv6 (intégré dans toutes les piles IPv6)
• Optionnel dans IPv4
• Evolution majeure de IP
• Peut-être mis en œuvre sur tout équipement IP
– Routeur, serveur, station de travail, …
• Peut-être mis en œuvre de bout en bout ou sur un
tronçon du chemin
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 198
Réseaux virtuels : VPN : IPSec
• Entêtes ajoutés :
– AH : Authentication Header
– ESP : Encapsulation Security Payload
• Datagramme avec AH
– Entête IP – AH – (Entête TCP/UDP – Données) en clair
• AH (Authentication Header)
– SPI : Security Parameter Index ? SA (Security Association)
• Index d’une table qui pointe sur tout ce qui est nécessaire au récepteur
pour interpréter cette entête : algorithmes de crypto utilisés …
– Numéro de séquence
• Evite le rejeu du datagramme
– Signature électronique du contenu du datagramme (? entête IP)
• Checksum chiffré
• Garantit intégrité et authentifie l’origine100
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 199
Réseaux virtuels : VPN : IPSec
• Datagramme avec ESP
– Entête IP – Entête ESP – (Entête TCP/UDP – Données) chiffrés –
[Authentication ESP]
• Entête ESP (Encapsulation Security Payload)
– SPI : Security Parameter Index ? SA (Security Association)
– Numéro de séquence
• Authentification ESP
– Optionnelle
– Signature – authentification : checksum chiffré : similaire AH
• AH inclut l’entête IP pas ESP
• Utilisé en mode tunnel pour la signature (pas AH)
• 2 Modes d’utilisation
– Mode transport
– Mode tunnel
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 200
Réseaux virtuels : VPN : modes IPSec
• Mode transport
– L’entête IP d’origine n’est pas contenue dans
l’encapsulation
– Entête IP – AH – Entête TCP – Données
– Entête IP – ESP – (Entête TCP – Données) chiffrées
– Entête IP – AH – ESP – (Entête TCP – Données)
chiffrés
• Mode tunnel
– Entête IP (nouveau) – AH – Entête IP (origine) -
Entête TCP – Données
– Entête IP (nouveau) - ESP - (Entête IP (origine) -
Entête TCP - Données) chiffrées - [Authen ESP]101
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 201
Réseaux virtuels : VPN : IPSec tunnel
• Le mode tunnel permet les fonctionnalités des
VPN que l’on a vues :
– Stations distantes ou sous-réseau distant considérés
comme une partie du LAN (avec le même adressage)
– Sécurité dans le transport
Internet
Routeur
IPSec
Routeur
IPSec 194.21.2/24
194.21.2.3
194.21.2.5
194.21.2.4 IPSec
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 202
Réseaux virtuels : VPN : IPSec-Sécurité
Security associations : SA
• IPSec permet d’utiliser différents algorithmes, clés, … de
cryptographie
– Les 2 extrémités doivent se mettre d’accord
• Pour chaque connexion IPSec : 1 ou 2 SA
– Une SA pour AH
– Une SA pour ESP
• SA
– Algo d’authentification (MD5, …)
– Algo de chiffrement (DES, …)
– Clés de chiffrement
– Clés d’authentification
– Durée de vie des clés
– …102
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 203
Réseaux virtuels : VPN : IPSec
• Gestion des clés
– Manuelle
– IKE Internet Key Exchange (ancien nom : ISAKMP)
• Procédure pour que les 2 extrémités se mettent d’accord :
protocoles, algorithmes, clés
• Management des clés : fourniture de clés de manière sécurisée …
• IPSec
– Très solide, bien conçu et intégré dans toutes les piles
IPv6
– Devrait beaucoup se répandre
– Distinction Auth / Chiff : OK pour les législations
– Mais attention : sécurité IP (pas utilisateur …)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 204
Services de FT : plan
• LS (transfix), RNIS (numeris), ADSL : cf avant
• Interconnexion niveau 2 « traditionnelle » moyen débit
– Frame Relay
– Transrel
• Interconnexion niveau 2 haut-débit
– Turbo DSL
– Intra-Cité
– Inter LAN
– SMHD
– SMHD - Giga
– MultiLAN
• Services IP (pour entreprises)
– Les Classiques Oléane
– Global Intranet
– Global Extranet
– Collecte IP/ADSL103
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 205
Services FT : interconnexion
« traditionnelle » moyen débit
• Frame Relay
– Remplacement de X25 : réseau commuté commuté
avec circuits virtuels
– Débits de 19.2 Kb/s à 8 Mb/s
– Connexion réseaux FR d’entreprise
– Réseau international
• Transrel
– Service point à point
– Interconnexion de réseaux Ethernet, Token Ring
– Interfaces (équipements : ponts)
• Ethernet 10 ou 100 Mb/s
• Token Ring 4 ou 16 Mb/s
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 206
Services FT : interco HD : Turbo DSL
• Même zone (géographique)
• Agences ou particuliers ? Site central
• Liaisons permanentes
• Raccordement site central
– ATM 30, 60, 90 ou 120 Mb/s
• Raccordement extrémités
– ADSL jusqu’à 2 Mb/s – 320 Kb/s104
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 207
Services FT : interco HD : Intra-Cité
• MAN : Voix et données
• Boucle locale FT
• Connexions point à point (LS virtuelles) de 2
sites équivalents à 2 Mb/s, 10 Mb/s ou 100 Mb/s
• Interfaces
– G703 : PABX : 2 Mb/s
– Ethernet 10 ou 100BaseT : 2 Mb/s, 10 Mb/s, 100 Mb/s
• Connexion entreprise
– PABX, routeur IP, commutateur Ethernet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 208
Services FT : interco HD : Inter LAN
• MAN : données
• Client : PME (petit budget)
• Connexions point à point (LS virtuelles) ou multipoint de
sites équivalents à 2, 4, 20, 40, 60, 100 Mb/s
• Interfaces
– Ethernet 10 ou 100BaseT ou GigaEthernet
– ATM
• Différents niveaux de « qualité de débit »
– Débit minimum garanti (on peut avoir plus si réseau peu chargé)
– Débit permanent garanti
– Débit non garanti (?)
• Connexion entreprise
– Routeur IP, commutateur Ethernet, commutateur ATM105
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 209
Services FT : interco HD : SMHD
• MAN : n sites
• SMHD : Service Multisites Haut-débit
– Protocole SMDH
– Boucle FO MAN dédiée à 155, 622 ou 2.5 Gb/s
– Sécurisation : chaque site est raccordé avec 2
parcours différents
• Les sites se partagent la bande passante de la
boucle
• Liaisons permanentes ou temporaires entre sites
– 2, n x 2, 34, 45 ou 155 Mb/s
• Interfaces
– G703, Ethernet 10 et 100 Mb/s
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 210
Services FT : interco HD : SMHD Giga
• Nouveau
• MAN – 3 sites minimum
• Technologie DWDM
– Multiplexage optique
– Ce n’est donc pas le protocole SMHD
• Liaisons (jusqu’à 32 par lien)
– 622 Mbps ? 2.5 Gigabit/s
– Très hauts débits
• Interfaces d’accès
– Fast Eth, Giga Eth, Fiber Channel, ..
• Bientôt 10 Gigabit/s106
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 211
Services FT : interco HD : MultiLAN
• WAN : 92 villes françaises et aussi international
• Raccordements (physiques) : 2, 34 ou 155 Mb/s
• Connexions point à point (LS virtuelles) de débits de 256
Kb/s à 100 Mb/s
• Interfaces
– ATM
– Ethernet 10 ou 100BaseT
– …
• Infrastructure de réseau FT : ATM
• Connexion entreprise : PABX, commutateur ATM,
équipement vidéo, routeur IP, commutateur Ethernet
• Applications : voix (PABX), données (LAN), vidéo
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 212
Services FT : IP : Classiques Oleane
• Connexion Entreprise à Internet
• Types de raccordement
– Lien permanent avec possibilité de back-up Numeris
– Connexion RTC, Numeris, GSM
– ADSL
• Equipement de connexion
– Routeur IP fourni ou non
• Services à valeur ajoutée
– Adresses IP
– Hébergement, gestion DNS, serveur Web
– Boites aux lettres (anti-virus possible)
– Proxy Web
– ….107
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 213
Services FT : IP : Global Intranet
• Créer un réseau privé virtuel pour l’entreprise
– Sites : moyen débit
– Postes utilisateurs fixes ou mobiles : bas débit
• Techniques
– CV ATM
– Filtrage adresses IP
– Tunelling IP
– Authentification des utilisateurs
• Equipements de connexion
– Routeur fourni ou non
– Poste utilisateur
• Accès
– Permanent 64 Kb/s ? 2 Mb/s
– Commuté : RTC, Numeris, GSM
– ADSL
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 214
Services FT : IP : Global Extranet
• Service d’information de l’entreprise (Extranet)
accessible par RTC ou Internet
– Clients, Partenaires, Fournisseurs
• Facture : téléphone particulier
– Numéros d’appel réservés
• Technique : tunnels IP
Réseau
IP de FT
Réseau Routeur
FT
Internet
Serveur
d’accès FT Routeur
Entreprise
Interface du
service FT
Micro
particulier
Micro
particulier
Micro
particulier Serveurs
Numéris
RTC
Serveur
d’accès FT
RTC108
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 215
Services FT : IP : collecte IP/ADSL
• Pour les fournisseurs d’accès Internet (FAI)
• Pour collecter le trafic des abonnés ADSL
• Routeur FT chez le FAI
– Interfaces Ethernet 10, 100 ou 1000 Mb/s
– Débits : 10 Mb/s? 4 Gb/s
• Les routeurs FT sont transparents : tunneling …
Réseau
IP de FT
Réseau Routeur
FT
Internet
Routeur
FT
Routeur
FT
Routeur
FAI
Interface du
service FT
Région Y
Micro Région X
particulier
Micro
particulier
Micro
particulier
Micro
particulier
Concentrateur
ADSL
Concentrateur
ADSL ADSL
ADSL
ADSL
ADSL
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 216
Services à assurer : plan
Services « obligatoires » à assurer (couche 7)
Uniquement aspect architecture – choix -stratégie
• Noms (machines)
– Principes
– Plan de nommage
• Messagerie
• Annuaires
• Services Web109
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 217
Services : noms
• Buts techniques
– Traduction : nom de machine ? adresse IP
– http://www.inpg.fr ? datagramme IP :
• Ouverture connexion TCP sur port 80
• Adresse IP destinataire : ?
• Comment : www.inpg.fr ? 195.83.76.58 ?
– Ping www.inpg.fr
• Datagramme ICMP - @ destination 195.83.76.58
– Dans l’autre sens aussi : @ IP ? nom de machine
• Configurations, contrôles d’accès, fichiers de trace, … explicités
avec des noms
– Mais aussi messagerie électronique
• jla@urec.cnrs.fr ? serveur messagerie SMTP mail.urec.cnrs.fr
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 218
Services : noms
• Pour que cela fonctionne dans l’Internet
– Noms uniques
– Système très solide : des serveurs DNS « direct» et « reverse »
– Dynamique : ajout de noms décentralisé dans les serveurs DNS
• Unicité
– Nommage hiérarchique arborescent avec des domaines
• .com, .edu, .org, …, .fr, .de, .uk, …
– Plan de nommage dans les organismes-entreprises
• Solidité – Dynamique
– N serveurs de noms administrés localement
• Un serveur primaire par zone
• Plusieurs serveurs secondaires
• Copies régulières des informations primaire ? secondaires
– Caches
• Postes de travail
• Serveurs (primaires – secondaires)
– Serveurs DNS : machines dédiées, aux bons emplacements110
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 219
Services : plan de nommage
• Choix du nom de domaine (pour une entreprise)
– Pas technique : image de l’entreprise
• Serveurs Web, …
• Adresses électroniques
• Un nom a maintenant une valeur commerciale
– Sous .com
• Quelques $
• Pas de vérification
– Sous .fr
• Plusieurs dizaines (centaines) d’euros
• Vérifications
• AFNIC : association ? système « sain »
– Dérives
• Réservation de noms tels que cnrs.com pour revente
• Certains pays (en voie de développement) :
– Société à but uniquement lucratif qui gère le top level domain du pays
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 220
Services : plan de nommage machines
• Choix de sous-domaines : technique
– Un sous-domaine
• ? un serveur DNS « direct »
• ? un administrateur
– Un serveur DNS « reverse »
• ? un sous-réseau IP
• ? un administrateur
– On regroupe souvent serveur « direct » et « reverse »
• Quand ajout de machine : MAJ des 2 nécessaire
– En cas de problèmes : facilité de localisation
• Nom ? Où ?
– Possibilité d’alias sur les noms
• Très souple111
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 221
Services : plan de nommage machines
Exemple : UREC (Paris, Grenoble, Lyon, Marseille)
• Domaine urec.cnrs.fr
– Sous-domaines grenoble.urec.cnrs.fr et paris.urec.cnrs.fr
• Un serveur DNS Paris (un administrateur)
– Primaire : urec.cnrs.fr, paris.urec.cnrs.fr, reverse réseau IP
Paris
– Secondaire : grenoble.urec.cnrs.fr, reverse réseau IP Grenoble
• Un serveur DNS Grenoble (un autre administrateur)
– Primaire pour grenoble.urec.cnrs.fr, reverse réseau IP grenoble
– Secondaire : urec.cnrs.fr, paris.urec.cnrs.fr, reverse réseau IP
Paris
• Lyon, Marseille : nommage machines laboratoires locaux
• Alias dans DNS urec.cnrs.fr, …
– www.urec.cnrs.fr ? www.paris.urec.cnrs.fr : visibilité
– Idem autres services : mail, …
– Autres services dans domaine services.cnrs.fr ? urec.cnrs.fr
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 222
Services : plan de nommage machines
• Exemple : IMAG (fédération de 8 laboratoires)
– Domaine imag.fr - pas de sous-domaine
– Un serveur DNS primaire imag.fr
– N serveurs DNS secondaires imag.fr
• Pour l’extérieur (authoritative) : 3
• En interne, au moins un par laboratoire
– Equipe d’administrateurs soudée
• Choix des noms de toutes les machines centralisé
• Bases de données mise à jour par chaque administrateur de labo
– Script de mise à jour automatique du DNS primaire
– Serveurs Web de labo : nom du labo le nom : image
• www.imag.fr, www-id.imag.fr, www-clips.imag.fr, …
– Choix pas de ss-domaine ? visibilité de la fédération
• Une autre possibilité aurait été : un sous domaine par laboratoire112
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 223
Services : plan nommage machines
• Choix
– Divers : image, organisation entreprise, organisation des
administrateurs, histoire, …
– Qu’ils soient clairs : document de référence :
• Comment est-ce organisé ?
• Qui fait quoi ?
• Visibilité / extérieur
– Pour les noms des serveurs
– Pour le nom des stations clientes : intérieur : choix technique
• Adressage privé - NAT
– 2 nommages : 2 DNS : interne – externe
– Les noms de stations internes ne sont plus visibles de l’extérieur
– Mais il faut néanmoins que les stations internes communiquent
entre elles : document de référence toujours utile
• Les FAI offrent des services de DNS
• Pb : quand rachat … entreprise ? changement de nom ?
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 224
Services : messagerie
• Messagerie Internet : protocole SMTP
– Messagerie interne dans l’entreprise peut être
différence : passerelle nécessaire
– Dans ce chapitre : messagerie interne SMTP, logiciel
Sendmail ou Postfix
• Plan
– Choix de la forme des adresses
– Répartition des serveurs
– Méthodes d’accès aux boites aux lettres
– Format des messages113
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 225
Services : messagerie : adresses
Adresses de messagerie : quelle stratégie ?
• De préférence forme canonique : Prénom.Nom@…
– Exemple : Jean-Luc.Archimbaud@urec.cnrs.fr
– Avantages
• Adresse unique (sauf homonymes)
• Adresse « parlante » : peut éviter un annuaire
• Faire apparaître sous-domaines ou non ?
– Pierre.Durant@etudes.edf.fr ou Pierre.Durant@edf.fr ?
– Pérennité de l’adresse et forme simple / centralisation
• Utiliser des adresses génériques
– webmaster@.., postmaster@…, info@…, …
– Peut-être pour des fonctions : direction@…, secrétariat@…, …
– Avantage : pérennité quand la personne change de fonction
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 226
Services : messagerie : adresses
• « Transformation» d’adresses - redirection
– Différents mécanismes peuvent modifier les champs « To» et
« From » sur les messages arrivants ou partants
– Serveurs-relais de messagerie : messages arrivants
• To : Francis.Duval@edf.fr ? Francis.Duval@der.edf.fr
– Serveurs-relais de messagerie : messages partants
• From : jla ? From : Jean-Luc.Archimbaud@urec.cnrs.fr
– Comptes utilisateurs : .forward (messages arrivants)
• To : jla@imag.fr ? To : Jean-Luc.Archimbaud@urec.cnrs.fr
– Ne pas en abuser
• Doit simplement résoudre les cas particuliers
• Différencier adresse professionnelle et personnelle ?
(au travail)
– Probl ème : correspondance privée : débat non tranché
• « Cacher » les adresses pour limiter les SPAM ?114
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 227
Services : messagerie : serveurs
• 2 services à assurer :
– Relais de messages et hébergement de boites aux lettres
• Entrant : un seul serveur relais avec les boites aux lettres
– Accessible depuis l’Internet
– Avec machine back-up quand indisponible
• DNS : plusieurs MX records
– Probl ème de sécurité : attaque des boites aux lettres
• Entrant : un serveur relais sans boite aux lettres
– Accessible depuis l’Internet
– Redirige vers 1 ou plusieurs serveurs internes suivant l’adresse
du destinataire :
• Si adresses avec sous-domaine ? le serveur interne du sous-domaine
• Sinon, base de données : une adresse ? son serveur interne
– Boites aux lettres sur serveurs internes
– Serveurs internes non accessibles depuis l’Internet
• Sortant : préférable de passer par un seul serveur relais
– Canonisation des adresses, surveillance, traces, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 228
Services : messagerie : serveurs relais
• Service à surveiller de près
– Très souvent attaqué
– Trace des abus
• Interdire le relayage : @ externe ? @ externes
– Probl ème SPAM : obligatoire
• Installer un anti-virus
– Evite MAJ sur chaque poste interne
• Lutter contre le SPAM
– Outils avec mots clés et/ou black lists (pas de solution miracle)
– La solution est la signature électronique
• Lutte anti-virus - SPAM : accord du personnel nécessaire
• Exemple IMAG
– Un relais de messagerie externe (reçoit To : X@imag.fr )
– N serveurs de messagerie internes avec boites : 1 / labo
– Table : @ d’une personne ? serveur de messagerie interne
– Gestion idem DNS115
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 229
Services : messagerie : accès aux boites
• Connexion interactive sur le serveur
– Qui contient les boites aux lettres : commande Mail Unix …
– Pb : il faut gérer autant de comptes interactifs que de boites
• POP - Post Office Protocol
– Accès depuis une station personnelle avec outil (navigateur, …)
– Les boites aux lettres sont transférées sur la station personnelle
• IMAP - Internet Message Access Protocol
– Accès depuis une station personnelle (navigateur, …)
– Les boites aux lettres restent sur le serveur
• IMAP/POP ?
– De plus en plus de IMAP
– Dépend de l’utilisation :
• Veut-on garder sur le serveur les messages (place, sauvegarde, …) ?
• Les utilisateurs sont ils connectés lorsqu’ils utilisent la messagerie ?
– Versions sécuris ées : POPS – IMAPS
• Authentification ou non des clients
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 230
Service : messagerie : formats messages
• MIME - Multipurpose Internet Mail Extensions
– Standard pour format de messages contenant tous types de
données : texte, video, voix, …
• S/MIME – Security …
– Version sécurisée de MIME
– Certificats électroniques
– Signature électronique
• Authentification
• Intégrité
– Chiffrement
– Concurrent : PGP
• Principal pb messagerie : pas authentification expéditeur
– SPAM, Virus, pas de valeur juridique, …
• Messagerie : service externalisable116
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 231
Annuaires : un standard
• LDAP - Lightweight Directory Access Protocol
– Communications client-serveur (sécurisées si voulu)
– Modèle de données
• Arborescence hiérarchique
• Classes d’objets
• Nommage
– Modèle fonctionnel
• Recherche, comparaison, ajout, …
– API
– Réplication
– …
• Un annuaire LDAP
– Peut utiliser un logiciel de base de données : oracle …
• LDAP : Interface standard d’accès
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 232
Annuaires LDAP : utilisations
• Classique de personnes : adresses électroniques
– Accès avec navigateur – complétion d’adresse
– Gestionnaire de liste de diffusion, …
• De certificats électroniques
• De droits d’accès
– A des systèmes, des applications, …
– Remplacement de NIS, NIS+
• De ressources
– Grilles de calcul
– Equipements (réseau)
• Besoin d’avoir une réflexion sur l’architecture
– Un seul annuaire ou n / utilisation ou groupe
– Séparer LDAPs publics et privés (internes)
– Sécurisation de l’annuaire, pb de SPAM (limitation du nb
d’accès), …117
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 233
Services Web
• Accès aux serveurs Web externes (Internet)
– Autorisation ou non ?
• Décision de direction, pas d’administrateur réseau
– Proxy ou non ?
– Attention aux problèmes de sécurité
• Virus dans documents récupérés
• Exécution de code localement : javascript, …
• ? Proxy utile
• Serveurs Web de l’entreprise
– Différencier administration technique / contenu
– Définir les droits d’accès et une méthode de mise à jour
– Pour Intranet
• Informations internes
• Serveurs dans un sous-réseau non accessible depuis l’extérieur
– Pour Extranet – Internet
• Information publiques
• Serveurs dans un sous-réseau public
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 234
Fonctions «annexes » équipements actifs
PLAN
• Administration
• Tunnels
• IPSec
• NAT
• Filtrage
• Multicast
• Gestion files d’attente118
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 235
Fonctions «annexes » équipements actifs
• Administration
– Agent SNMP
– Traces ? syslog
– Compteurs : charge, nb de datagrammes, de bytes, …
• Tunneling
– Cf chapitre sur les réseaux virtuels : VPN
– Dans les routeurs, stations IP
– Pour sécurité mais aussi IPv6 dans IPv4, multicast
dans unicast, …
• IPSec
– Cf chapitre sur les réseaux virtuels
– Dans les routeurs, stations IP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 236
Fcts «annexes » éqts actifs : NAT
• NAT – Network Address Translation (traduction)
• Fonction dans routeur d’accès (entre site et Internet)
• Traduit les adresses IP
– Modifie l’entête des datagrammes IP échangés avec l’extérieur
– Dans les sens sortant et entrant
• Une station du site
– Possède une adresse interne 10.1.1.2
• Elle est configurée avec cette adresse
• Les machines internes communiquent avec elle avec cette adresse
– Connue de l’extérieur avec l’adresse 193.96.49.64 (@ externe)
• Les machines de l’Internet communiquent avec elle avec cette adresse
– Le système est transparent pour les stations
• Le routeur entre le site et l’Internet fait la traduction119
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 237
Fcts «annexes » éqts actifs : NAT
Site Extérieur
Station
10.1.1.2
Station
129.88.35.3
Routeur
NAT
Internet Internet LAN
Station
10.1.1.4
@ orig 10.1.1.2
@ dest 129.88.35.3
@ orig 193.96.49.64
@ dest 129.88.35.3
@ orig 129.88.35.3
@ dest 10.1.1.2
@ orig 129.88.35.3
@ dest 193.96.49.64
Table de traduction dans le routeur NAT
@ interne 10.1.1.2 ?? @ externe 193.96.49.64
@ orig 10.1.1.2
@ dest 10.1.1.4
@ orig 10.1.1.4
@ dest 10.1.1.2
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 238
Fcts «annexes » éqts actifs : NAT
• Traduction statique
– 10.1.1.2 ?? 193.96.49.64
– 10.1.1.3 ?? 193.96.49.66
– …
– ? Besoin autant d’adresses IP officielles que de stations
• Traduction dynamique
– Pool d’adresses officielles (externes) pouvant être attribués
• Ex : 193.96.49.0/24
– Attribution d’une adresse externe lors du premier datagramme
reçu par le routeur
– Adresse libérée au bout d’un temps d’inactivité
• Ex : pas de datagramme avec cette adresse reçu depuis 3 heures
– ? On peut avoir plus de stations que d’adresses IP officielles
• On mixte : serveurs : statique - clients : dynamique120
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 239
NAT : PAT Port Address Translation
Site Extérieur
Station
10.1.1.2
Station
129.88.35.3
Routeur
NAT
Internet Internet LAN
Station
10.1.1.4
@ orig 10.1.1.2:1504
@ dest 129.88.35.3:80
@ orig 193.96.49.64:1504
@ dest 129.88.35.3:80
@ orig 129.88.35.3:80
@ dest 10.1.1.2:1504
@ orig 129.88.35.3:80
@ dest 193.96.49.64:1504
Table de traduction dans le routeur NAT (PAT)
@ interne 10.1.1.2:1504 ?? @ externe 193.96.49.64:1504
@ interne 10.1.1.4:1580 ?? @ externe 193.96.49.64:1505
@ orig 10.1.1.4:1580
@ dest 129.88.35.3:80
@ orig 129.88.35.3:80
@ dest 10.1.1.4:1580
@ orig 193.96.49.64:1505
@ dest 129.88.35.3:80
@ orig 129.88.35.3:80
@ dest 193.96.49.64:1505
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 240
Fcts «annexes » éqts actifs : NAT
• Contenu de datagrammes (données) à modifier
– Pour certains services :ICMP, FTP, H323, …
• Besoin de 2 serveurs DNS
– Un interne : non accessible depuis l’extérieur
• Contient toutes les adresses internes
– Un externe : dans la DMZ
• Contient les adresses externes
– Les noms des stations clientes sont « aléatoires »
• Serveurs accédés depuis l’Internet
– Adresses statiques
• L’adressage interne peut s’étendre sur n sites
– Avec un VPN
– Un routeur NAT pour communiquer avec l’extérieur121
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 241
NAT : pourquoi ?
• On manque d’adresses officielles IP (4 bytes)
– On ne peut plus numéroter toutes les stations IP de la planète de
manière unique
– En interne, sur les sites, numérote les stations avec les @ privées
• 10/8, 172.16/12, 192.168/16
• Plusieurs sites peuvent utiliser les mêmes adresses
• Exemple : site avec une @ réseau officielle 193.96.49.0/24
– 5000 machines internes
– Numérote ses stations avec une adresse réseau privée : 10/8
• Peut numéroter des millions de machines
– Quelques adresses 193.96.49.0/24 réservées aux serveurs
• Accédés depuis l’Internet : DNS externe 193.96.49.1, Web externe
193.96.49.2, Mail 193.96.49.3 (avec PAT ce peut être le même numéro)
– Pool d’adresses 193.96.49.[4,254] disponibles (NAT)
• Attribuées dynamiquement aux stations locales quand elles
communiquent avec l’Internet
• 250 machines internes peuvent communiquer avec l’Internet
simultanément : beaucoup plus si on utilise PAT
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 242
NAT : plus et moins
• Avantages
– On dispose d’un espace d’adresses énorme en interne
• Pas de limitation dans l’architecture des sous-réseaux
• Pas de problème quand nouvelles stations à numéroter
– Les stations clientes ont des @ IP dynamiques
• Plus difficiles à attaquer : meilleure sécurité
• Désavantages
– Sécurité : les stations clientes sont « anonymes »
• Difficile de savoir quelle station interne a attaqué un site ext erne
– Contrôle d’accès / @ IP effectué sur certains serveurs
• Impossible sauf si traduction statique
– Rompt le principe IP de connectivité de bout en bout
• Peut avoir des effets de bord sur certaines applications
– Retarde l’arrivée de IPv6122
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 243
NAT : conclusion
• De très nombreux sites l’utilisent
– Peu universitaires car premiers venus sur Internet, ils
disposent de beaucoup d’adresses officielles
– Système très bien huilé maintenant
• NAT / DHCP
– DHCP : autre manière d’économiser des adresses
– Mais beaucoup moins d’économie que NAT
• DHCP : une station a besoin d’une adresse officielle dès qu’elle
communique avec l’extérieur mais aussi avec l’intérieur
• Pas de possibilité de PAT
– On peut faire les 2
• DHCP : pour ses fonctions de configuration dynamique
• NAT : pour ses fonctions de traduction d’adresse
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 244
Fcts «annexes » éqts actifs : filtrage
• Consiste à laisser passer ou non certains flux
selon les informations trouvées dans
– Les entêtes des trames Ethernet
– Les entêtes des datagrammes IP
– Les entêtes des segments TCP, UDP
• Ponts, Commutateurs
– Filtrage de niveau 2
– Sur le contenu des entêtes des trames Ethernet
• Routeurs
– Filtrage de niveau 3
– Sur les entêtes IP, TCP, UDP123
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 245
Filtrage : rappel trame Ethernet – IP
• Entête Ethernet
– @ Ethernet destination
– @ Ethernet origine
– Champ type : protocole : 0800 IP, 0806 ARP, …
• Entête IP
– @ IP origine
– @ IP destination
– Protocole : 1 ICMP, 6 TCP, 17 UDP, …
• Entête TCP ou UDP
– Numéro de port source (application station source)
– Numéro de port destination (application station
destination)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 246
Filtrage : niveau 2
• Ponts – commutateurs / port
– Sur les entêtes Ethernet
• Exemple : filtrer sur un port
– Certains protocoles : Appletalk, IPX, …
• Car il n’y a pas de stations qui utilisent ces procotoles sur ce port
• Diminue la charge du côté du port
– Filtre les trames multicast ou broadcast de ces protocoles
• Evite les erreurs
– Des utilisateurs sans compétence qui pourraient lancer ces
protocoles sur leur station et perturber les autres stations
– Certaines adresses Ethernet origine
• Stations trop bavardes, polluantes
– Certaines adresses Ethernet destination multicast,
broadcast
• But principal : diminuer la charge124
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 247
Filtrage : niveau 3
• Dans les routeurs
– Sur les entêtes IP, TCP, UDP
• But principal
– Sécurité (protection de stations, de services, de serveur)
– Limitation des flux applicatifs (pas de chat, P2P, …)
• Deux politiques :
– Par défaut : tout est autorisé (P1)
• On interdit ce que l’on ne veut pas
– Par défaut : tout est interdit (P2)
• On autorise ce que l’on veut
• Deux types de filtrages
– Sur les adresses IP (de stations ou de (ss-)-réseaux)
– Sur les numéros de ports (applications)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 248
Filtrage : niveau 3
• Filtrage sur @ IP de station ou de (ss-)réseau
– Sens entrant (Internet ? Site) / @ IP destination
• P1 : interdit l’accès à des stations « à protéger »
• P2 : autorise uniquement l’accès à certains serveurs (publics)
– Sens entrant / @ IP origine
• P1 : interdit l’entrée de datagrammes de stations dangereuses
(black-list)
• P2 : autorise l’accès que depuis certaines stations
– Sens sortant (Site ? Internet) / @ IP origine
• P1 : interdit à certaines stations de sortir (sur l’Internet, …)
• P2 : autorise uniquement certaines stations à sortir
– Sens sortant / @ IP destination
• P1 : interdit l’accès à des serveurs à contenu peu recommandable
• P2 : n’autorise l’accès que vers des serveurs répertoriés125
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 249
Filtrage : numéros de port
• Applications IP : mode client –serveur
– Serveur : wellknown ports
• HTTP : 80, Telnet : 23, SMTP : 25, …
– Client
• 1024, 1025, 1026, … pour FTP, Telnet, …
• 1023, 1022, 1021 … pour rexec, rlogin, rsh, rcp, …
• Exemples de filtre sens entrant (Internet ? Site)
– P2 : Laisse passer uniquement les datagrammes avec
port destination = 80 vers @IP destination 194.33.2.5
• Autorise uniquement l’accès HTTP sur le serveur Web 194.33.2.5
• Si un autre utilisateur interne installe un serveur Web, il ne sera pas
accessible depuis l’extérieur
– P1 : Filtre tous les datagrammes avec port destination = 23
• Interdit l’accès en telnet sur toutes les machines internes depuis
l’extérieur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 250
Filtrage : numéros de port
• Exemple de filtre sens sortant (Site ? Internet)
– P2 : laisse passer tous les datagrammes avec numéros
de ports source > 980
?Autorise toutes les stations à être cliente sur des
serveurs Internet
– P2 : laisse passer les datagrammes avec port dest=25
uniquement vers station 129.88.32.2
? Oblige toutes les stations interne à passer par le relais
de messagerie 129.88.32.2 pour envoyer du courrier126
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 251
Filtrage : exemple de politique
Site 192.56.62/24
Extérieur
Routeur Internet Internet LAN
192.56.62.70
Serveur DNS
SMTP, Web
192.56.62.80
Serveur Telnet
192.56.62.90
A isoler
192.56.62.X
Clientes uniquement
Filtres
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 252
Filtrage : ex (simplifié) de politique 2
• Les filtres sont exécutés en séquence (ACL CISCO)
– Pour chaque datagramme
• Si condition remplie : action - exit
• Sinon : continue les filtres
• Si @ IP dest = 192.56.62.90 : filtre
– Isole 192.56.62.90
• Si @ IP dest = 192.56.62.80 et port dest = 23 : laisse
passer
– Ouvre accès au serveur telnet : 192.56.62.80
• Si @ IP dest = 192.56.62.70 et port dest = (53 ou 25 ou 80)
: laisse passer
– Ouvre accès au serveur DNS, SMTP, Web 192.56.62.70
• Si port dest > 980 : laisse passer
– Laisse passer le trafic vers stations clientes internes
• Reste : filtre
– Interdit tous les autres trafics127
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 253
Filtrage : bilan
• Les filtres peuvent être installés à l’intérieur du
site
– Sur les routeurs entre services, équipes, … par
exemple
– Entre sous-réseaux ou VLAN
• Avec l’Internet : politique 2 recommandée
– On interdit tout sauf …
– Si P1 : nouvelle vulnérabilité découverte ? MAJ des
filtres
• Si fonction dans une boité dédiée avec interface
graphique …? Garde-barrière
– Fonction appelé « filtrage statique » dans les gardesbarrières
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 254
Filtrage : bilan
• Filtrage dans les routeurs
– Beaucoup utilisé en entrée de campus, laboratoires
– En entreprise plutôt entre sous-réseaux internes
• En entrée (site-Internet) : garde-barrière
• Limitations techniques
– Basé sur des numéros de port : les applications
peuvent utiliser d’autres numéros que les wellknown
port (pb cheval de Troie)
– Rebonds applicatifs indétectables
– Tunnels applicatifs non détectable (HTTP par
exemple)
– ? filtrage statefull dans garde -barriè re nécessaire128
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 255
Fcts «annexes » éqts actifs : multicast IP
• Applications habituelles : unicast
– Point à point
– 1 émetteur ? 1 récepteur
• Le récepteur devenant ensuite émetteur
– Adresses Ethernet et IP unicast
• Applications multicast
– 1 émetteur ? n récepteurs (diffusion ciblée)
– Radio (plutôt broadcast)
– Télévision
• Non cryptée : broadcast
• Cryptée (Canal + …) : multicast
– Télé-séminaire, télé-réunion, vidéo-conférence, …
• Dans ce cas un récepteur peut aussi devenir émetteur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 256
Multicast IP
• Media idéal de transport : air
– Ondes radio avec émetteurs terrestres, satellites, …
– Pas de problème sauf partage des fréquences
Emetteur
Récepteur 1
Récepteur 2
Récepteur 5
Récepteur 4
Récepteur 3129
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 257
Multicast IP
• Réseau filaire IP avec technique classique
– On transporte n fois les mêmes données
– On utilise beaucoup de bande passante
• Pour ne transporter qu’une fois les données :
– Adresses, protocoles, routages, … multicast
Emetteur
Récepteur 1
Récepteur 2
Récepteur 5
Récepteur 4
R
R Récepteur 3 Internet Internet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 258
Multicast IP
• Participants à une appli multicast : groupe multicast
• Identification du groupe multicast : @ IP
– Une adresse IP de classe D : 224.0.0.0 ? 239.255.255.255
– Emetteur ? groupe : @ IP destination = @ IP multicast
• Choix d’une adresse multicast : statique
• Choix d’une adresse multicast : dynamique
– Annuaire de groupes multicast en cours (ex : application SDR)
– Responsable du groupe ? annuaire
• Je veux ouvrir une session « cours ARR » pour tel créneau horaire
• Fournis moi une adresse multicast
– Annuaire
• Donne une adresse multicast au responsable : 224.2.0.1
• Publie : « cours ARR » a telle @ multicast
– Participants au groupe
• Consultent annuaire et récupère l’adresse multicast du groupe130
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 259
Multicast IP
• Protocoles : UDP, RTP, RTCP (cf H323), …
• L’émetteur émettra ses données
– Avec @ IP destination multicast : 224.2.0.1
– @ IP origine : son @ IP (unicast)
• Les récepteurs se mettront à l’écoute
– Pour recevoir les datagrammes avec cette @ dest
• Emetteur-récepteurs sur même réseau Ethernet
– Utilisation du multicast Ethernet
• Premier octet de l’@ impair
• IEEE a attribué 01.00.5E.X.Y.Z pour applications multicast IP
– @ Destination Ethernet : 01.00.5E.X.Y.Z
• IP : 224.2.0.1 ? Ethernet 01.00.5E.02.00.01
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 260
Multicast IP : routeurs
• Pb : quand il y a des routeurs entre émetteur et récepteurs
• Les routeurs : @ dest 224.2.0.1 : que faire ?
– R3 doit les renvoyer vers R4 et R7 mais pas vers R2
• ? tables de routages et protocoles de routage spécifiques
Emetteur
Récepteur
Récepteur
Récepteur
Récepteur
Récepteur
Récepteur hub
hub
hub
hub
R2
R4
R6
R8
R1
R5
R7
R3131
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 261
Multicast IP : protocoles de routage
Protocole entre stations et premier routeur
• Principe : stations : je veux m’abonner
– Je veux recevoir le flux multicast 224.2.0.1
– R4, R6, R8 vont recevoir ce message
– R2 ne va pas le recevoir
• Exemple : IGMP
– Internet Group Management Protocol
– Le routeur émet un datagramme toutes les minutes
• Qui veut s’abonner à des groupes multicast ?
– Les stations intéressées répondent
– Le routeur le redemande régulièrement
• Pour savoir si de nouvelles stations sont intéressées
• Pour savoir si les anciennes abonnées sont toujours intéressées
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 262
Multicast IP: protocoles de routage
Protocole entre routeurs
Exemple PIM Protocol Independant Multicast
• But : arriver à un arbre de diffusion : 2 principes
• Dense mode
– Les routeurs envoient à tous les routeurs tous les flux multicast
• Au départ. Exemple : R3 vers R4, R7, R2
– Les routeurs non intéressés demandent d’arrêter l’émission
• R2 indique à R3 : il y a personne chez moi d’intéressé par 224.2.0.1
• R3 arrêtera d’émettre vers R2 ce flux : pruning
• Sparse mode
– Le routeur émetteur s’enregistre auprès du RP
• RP : Rendez vous Point
• Je vais diffuser vers 224.2.0.1
• Aucun routeur n’émet encore à ce stade
– Quand station intéressée : s’enregistre auprès du RP
• Celui-ci « avertit » les routeurs concernés d’émettre132
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 263
Multicast IP
• Quand partie du réseau non multicast : tunnels
– Ex : uniquement les routeurs de sites R1, R4, R6 et R8
supporte le multicast (au cœur réseau d’opérateur)
Emetteur
Récepteur
Récepteur
Récepteur
Récepteur
Récepteur
Récepteur hub
hub
hub
hub
R2
R4
R6
R8
R1
R5
R7
R3
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 264
Multicast IP
• Réseaux (routeurs) : complexe
• Travail d’opérateur : très important
– En France uniquement Renater offre réellement ce
service
– On peut faire des tunnels
• Aujourd’hui
– Beaucoup d’expérimentations autour du multicast
– Réseau MBONE (opérationnel)
– Télévision sur Internet : idée abandonnée
– Radio sur Internet : pas multicast
– Vidéoconfé rence : 3 solutions
• Multicast IP
• H323
• RNIS133
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 265
Fcts «annexes » éqts actifs :
gestion des files d’attente
• Dans les routeurs : files d’attente
– En entrée : généralement gérées basiquement
– En sortie, pour chaque interface, choix :
• Taille de la file d’attente
– Important car quand elle est pleine le routeur jette les datagrammes
• La classification
– Permet de faire passer en priorité certains datagrammes (voix / FTP par
exemple)
• Gestion des files d’attente : fondamental dans un réseau
en mode non connecté (IP)
• Différentes techniques implémentées
– FIFO
– WFQ
– PQ
– CQ
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 266
Gestion des files d’attente : FIFO
• FIFO – First In First Out
– Mécanisme simple :
• Une file d’attente / interface de sortie
• Emission par ordre d’arrivée
– Plus : simple donc logiciels performants
– Pas de problème quand réseau peu chargé et files
d’attente de taille suffisante
• Pas de perte de datagramme
• Temps de traitement (latence) court
– Dans le cas contraire
• Temps de traitement peut-être trop long pour certaines sessions
TCP ou autre (par exemple s’il y a un gros transfert FTP en
cours, il va bloquer le flux H323 d’une communication voix)
– Perte de datagrammes (file d’attente pleine)
– Latence trop grande
– TCP ? retransmission, slow start, … : service très dégradé134
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 267
Gestion des files d’attente : PQ
• PQ : Priority Queuing
• Plusieurs files d’attente / interface de sortie
– Une file par priorité
– La file la plus prioritaire est envoyée avant les autres
– Le routeur peut déterminer la priorité selon
• Le protocole niveau 3 : IP/IPX
• Le protocole niveau 4 : TCP/UDP
• Les applications : Telnet/FTP/H323/…
• …
• Pb : certains types de trafic (priorité trop basse)
peuvent ne jamais être émis
– Coupures de session, … : catastrophe
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 268
Gestion des files d’attente : CBQ
• CBQ : Class Based Queuing
– Ou CQ - Custom Queuing
– Amélioration du PQ
• Exemple : 3 files d’attente / interface de sortie
– Haute, moyenne et basse priorité
– A chaque « rotation» le routeur envoie 10
datagrammes de la file haute, 6 de ma moyenne, 3 de
la basse.
• Evite que la basse priorité ne soit jamais émise
• Peut être une méthode pour partager une bande
passante (entre classes de services)
• Pb : nécessite du CPU pour du très haut débit135
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 269
Gestion des files d’attente
• WFQ : Weighted Fair Queuing
– Modification du CBQ en prenant en compte le volume
de données (nb de bytes) dans la répartition
– Evite que les flux avec des gros datagrammes
d’écrasent ceux avec des petits datagrammes
• Exemple d’efficacité de ces mécanismes
– Expérience CISCO sur une liaison surchargée
– Flux Telnet, FTP, Voix combinés sur un routeur
• Sans ces mécanismes : occupation bande passante 57 %
• Avec ces mécanismes : occupation bande passante 98 %
• Pb : réglage de ces mécanismes
– Le constructeur fournit des exemples
– Mais ça dépend de l’environnement : flux, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 270
Fcts «annexes » éqts actifs : bilan
• Les routeurs peuvent être très simples à configurer et
administrer
– Entre 2 Ethernet, avec uniquement la fonction de routage pour
connecter un réseau de classe C avec l’extérieur
– Une dizaine de lignes de configuration
• Mais aussi très complexes
– Si on rajoute : comptabilité, tunnels, IPSec, routage dynamique,
filtrage, NAT, multicast, files d’attente, …
– Plusieurs centaines, voire milliers de lignes de configuration
– Demande des experts : chaque ligne de configuration est
importante
• Choix lors de l’achat d’un nouveau matériel
– Tendance à prendre toujours le même constructeur
• Expérience, habitude des ingénieurs
– Attention au monopole
– Des « Clones » d’OS de routeurs connus existent136
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 271
Qualité de service QoS (IP)
• Internet (IP) de base : best effort
– Le réseau peut avoir une mauvaise qualité (pertes, …) voire
devenir inutilisable
• La QoS repose sur quelques paramètres techniques
– Débit (bande passante)
– Pertes
– Latence (délai de transmission)
– Variation de la latence : gigue ou jitter
Mais impossibles à garantir dans l’Internet entre 2 utilisateurs
• QoS pour l’utilisateur : le réseau doit être transparent
• QoS où ?
– Entre deux sites
– Entre deux utilisateurs
– Pour un type d’application ?
– …
• 2 standards (principes) pour Internet : RSVP et DiffServ
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 272
Qualité de service (IP) : RSVP
• RSVP : Resource Reservation Protocol
• Protocole en // de TCP, UDP
– Comme ICMP et les protocoles de routage
• Principes
– La station (réceptrice) demande une QoS au réseau (bande
passante, …)
– Tous les routeurs le long du chemin
• Prennent en compte cette demande et réservent les ressources
nécessaires : CPU, mémoire, … (ils peuvent refuser)
• Tiennent à jour une table avec toutes les réservations effectuées
• Problème : (trop) complexe
– Adapté au mode connecté, pas à IP
• Que se passe-t-il quand le routage est dissymétrique ou change ? …
• Flux multicast ?137
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 273
Qualité de service (IP) : Diffserv
• Diffserv : Differentiated Services
• Les datagrammessont marqués / contenu
– Champ TOS dans IPv4, Traffic Class dans IPv6
– Par la station / routeur d « entrée »
• Chaque routeur traite différemment les
datagrammes
– Mécanismes dans routeur : gestion files d’attente
adaptée au champ TOS ou Traffic Class
• Simple mais peu précis
– Peut être facilement implémenté
– Là ou cela peut être utile (sur une partie du chemin)
• Liaisons à moyen, bas débits
• Pour certaines applications
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 274
Qualité de service (IP)
• Quand bande passante « à profusion» : QoS inutile
– Le cas généralement des LAN
– La bande passante disponible sur FO devient énorme
• Problème
– Besoin de QoS quand la bande passante est limitée car chère
c’est à dire dans les WAN
– Or c’est le plus difficile car présence d’un opérateur et souvent
même de plusieurs opérateurs
• Comment vérifier que le client respecte le contrat ?
– Non traité dans ce cours : policy
• On ne pourra pas implémenter un mécanisme de qualité
de service global dans tout l’Internet
• Les opérateurs utilisent plutôt des mécanismes « légers »
– Sur certaines portions, pour certains clients/applications
• Entreprises : choisissent des équipements qui supportent
DiffServ, au cas où …138
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 275
Administration de réseau : plan
• Que faut il administrer ?
• Les hommes
– Administrateurs et utilisateurs
• Les standards
– SNMP …
• La configuration des équipements
• La surveillance
– Détection des anomalies
• Le dépannage
• Les stations d’administration
• La sécurité
• La métrologie
– Qui consomme quoi ? ? Comptabilité
– Performances ? Evolution (anticiper)
• Remarques
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 276
Administration de réseau : quoi ?
• Que faut il administrer ?
– Tout ce que l’on a vu, en particulier :
• Le câblage
– Disposer des plans A JOUR
– Garder les cahiers de recette
– Disposer de valises de tests pour les grands réseaux
• Eléments d’interconnexion
– Hubs, ponts, commutateurs, routeurs
– Configuration, surveillance, métrologie
• Services (couche 7)
– DNS
• Configurer, mettre à jour
– Relais et serveurs de messagerie
• Configurer, mettre à jour, surveiller (spool), métrologie
– …
• Sécurité139
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 277
Administration de réseau : les hommes
• Constituer une équipe d’administrateurs
– Qui fait quoi ? Sur quoi ?
– Opérateurs – Techniciens – Ingénieurs – Gourous
• Faut il séparer très strictement les niveaux ?
– Difficile car évolution des réseaux très rapide
• Selon les stades d’installation : besoins différents de compétences
– Exemple entreprise : 3 équipes
• Infrastructure : câblage
• Ingénierie : configuration équipements d’interco, services, routage
• Supervision : surveillance, métrologie, sécurité
– Exemple opérateur Internet
• NOC : Network Operation Center : fait marcher
– Configuration, surveillance, …
– Procédures en cas d’incidents : tickets d’incidents, base de données, …
• NIC : Network Information Center : interface avec les utilisateurs
– Nommage, informations aux utilisateurs, hot line, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 278
Administration de réseau : les hommes
• Où s’arrête le service d’administration réseau ?
– Administration des serveurs Web ?
– Installation des clients de messagerie sur les postes utilisateurs ?
– ….
• Astreinte ?
– Selon les besoins de l’entreprise : cela coûte cher
– Peut être externalisée
• Assistance (hot line) pour les utilisateurs
– Ca ne marche pas !
– Obligatoire
– Centrale puis dispatching
– Locale puis appel à l’assistance centrale si besoin
– Difficile pour un utilisateur de séparer réseau / application
• Il faut une très bonne organisation humaine
– Ne pas hésiter à décentraliser (noms, adresses, …)
– Compétences : formation continue obligatoire140
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 279
Administration de réseau : standards
• ICMP
– Echo, TTL exceeded, Dest unreachable, redirect, …
– Utilisé par les outils ping, traceroute par exemple
– Avantage : supporté par toute station IP (ordi, routeur, …)
– Peut sembler anodin mais en fait très utilisé
• SNMP - Simple Network Management Protocol
– Agent (serveur) dans hub, commut, routeur, station, …
– Manager depuis station d’administration
– MIB : informations (@, …) – standard ou constructeur
– Fonctions : GET – SET – TRAP sur UDP
– Sécurité embryonnaire ? config ne se fait pas avec SNMP
• RMON – RMON2 : MIBs pour sondes
• Les standards permettent d’avoir un même outil pour
administrer des matériels hétérogènes
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 280
Administration de réseau :
configuration des équipements
• Avec telnet ou interface Web
– Pas SNMP
– Telnet est souvent plus précis (pour les spécialistes)
– Attention aux mots de passe : ajouter filtrage / @ IP
• Perte de la configuration quand arrêt de l’équipement ?
• Stockage des différentes configurations
– Généralement : TFTP
• Permet de sauvegarder une configuration sur un serveur
• Inversement de charger cette configuration depuis ce serveur dans
l’équipement actif
– Attention : pas de mot de passe dans TFTP
• Outils de constructeurs qui permettent de gérer plusieurs
versions de configuration et d’OS …141
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 281
Administration de réseau : surveillance
• But : détecter (rapidement) des anomalies
• 2 types d’informations utiles
– Alarmes : lien coupé, élément arrêté, daemon/service inactif, …
– Relevés (courbes, tableaux, …) sur une courte période indiquant
des charges, utilisations anormales (inhabituelles)
• Longue période ? métrologie
• Transport : liens, équipements actifs
– Traps SNMP émis par les équipements
– Outils à base de ping et/ou traceroute depuis un point
– Lors récupération de compteurs SNMP, sondes : courbes
inhabituelles
• Services : messagerie, …
– Daemon (service) inactif, spool plein, …
– Ex d’outil : Big Brother
• Depuis une station interroge un daemon spécifique sur chaque machine
de service
• Détecte si service inactif, remonte des alarmes sur des seuils, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 282
Administration de réseau : surveillance
• Alarmes et relevés
– Arrivent sur ou partent de la station d’administration
– Alarmes peuvent générer des mails … aux admins
• Des éléments de charges, activités anormales
permettent de détecter des problèmes de sécurité
– Brusque trafic vers une station, d’une application, …
• Les construire avec l’expérience
– On peut récupérer énormément d’informations
– Lesquelles sont pertinentes ?
• Les utilisateurs sont souvent plus rapides que les
outils
– Pour avertir : ça ne marche pas !142
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 283
Administration de réseau : dépannage
• Où se situe le problème ? Quand localisé : réponse simple
• Faire preuve de logique
– Première question : qu’est-ce qui a changé ?
– Procéder par élimination
• Ex de démarche : telnet www.inpg.fr ne marche pas
– Est-ce que la machine est accessible : ping www.inpg.fr ?
– Si non, où s’arrête l’accès : traceroute www.inpg.fr ?
• Tout de suite : problème très local
– Ping machine locale ? pb sur routeur sortant ou sur réseau local
– Câblage ? Essai d’une prise voisine …
• Si arrêt à un routeur : lequel ?
– Sur le site distant : téléphone à l’administrateur distant …
– Sur le site local
» Est-ce uniquement vers ce site : essaie d’atteindre un autre site de l’Internet
» …
• …
– Si oui, service arrêté ? Problème de filtrage ?
– …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 284
Administration de réseau : dépannage
• Demande de connaître
– La théorie : protocoles, fonctions des équipements, …
– Son réseau, ses utilisateurs et leurs applications
• Analyseurs de protocoles
– Quand vraiment on ne peut pas faire autrement
– Ex de logiciel du domaine public :TcpDump
– Station portable avec logiciel commercial
– Il faut bien connaître les protocoles
• Problèmes logiciels : d’autres ont eu le même pb
– Ne pas hésiter à utiliser les moteurs de recherche,
news, …143
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 285
Admin réseau : station d’administration
• Objectif : disposer d’UNE station qui
– Permette de configurer tous les équipements et de stocker toutes
les configurations
– Reçoive toutes les alarmes (Traps SNMP, …)
– Permette d’exécuter des scripts de surveillance développés, …
– Dessine (automatiquement) la carte du réseau : liens, stations,
équipements actifs, services
– Affiche en rouge ce qui ne marche pas
– Récupère des données de métrologie, les stocke, les affiche …
• Trois types
– Stations « générales » (Sun, HP, IBM, …)
• Beaucoup de temps pour les maîtriser
– Stations de constructeurs d’équipements (CISCO)
– Stations « artisanales » avec outils du domaine public
• Actuellement personne vise l’unicité (LA station)
– Les grands sites ont les 3 types de stations précédentes
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 286
Administration de réseau : sécurité
• De plus en plus de problèmes de sécurité liés au réseau
– Intrusion depuis l’Internet sur des machines internes
– Attaque de serveurs Internet :Web, messagerie, DNS
– Virus dans les messages électroniques, SPAM
– Vers se propageant par le réseau
– Spoofing d’@ IP, d’@ de messagerie
– Charge de liens (trafic parasite) ? deny de service
– …
• Organisation – coopération étroite entre responsable
sécurité et administrateur réseau
– Surveillance du réseau ? peut indiquer des probl èmes de
sécurité
– Architecture de réseau ? permet d’appliquer facilement une
politique de sécurité
• Maintenant la sécurité est un critère de choix important
dans l’architecture et les équipements144
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 287
Administration de réseau : métrologie
• But : répondre aux questions
– A quoi sert le réseau ? A quelles applications ? A qui ? Quand ?
– Qui l’utilise ? ? comptabilité si nécessaire
– Y-a-t-il des goulots d’étranglement ? Des problèmes de
performances ? ? Qualité de service
– Quelle évolution ? ? Anticiper les besoins
• Commander l’augmentation de débit d’une liaison avant sa saturation
• Ensemble de compteurs ? tableaux, courbes, …
• Qui fournit les informations ?
– Equipements en écoute passive sur le réseau
• Sondes RMON, RMON2
• Logiciel IPTrafic
• Pb : nb d’équipements nécessaires, où les mettre (pb commutation)
– Equipements actifs du réseau : commutateurs, routeurs
• Comptent différentes choses ? compteurs sp écifiques ou MIBs
• Sont interrogés « par telnet » ou SNMP
• Peuvent ne plus compter correctement quand d’autres urgences (charge)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 288
Administration de réseau : métrologie
• Quelles informations ?
– Charge et taux de collisions / interface
– Issues de comptage de différents champs des datagrammes
• @ IP (? numéros de réseaux), ports (? applications)
• Exemples d’informations fournies
– Le graphe journalier, hebdomadaire … de la charge de chaque
brin Ethernet, de chaque liaison, du taux de collision
– La répartition entre HTTP, MAIL, FTP, … sur chaque liaison
– Les 20 stations les plus consommatrices
– Le pourcentage de trafic intra-entreprise et extra-entreprise
– Le pourcentage de bande passante de l’accès Internet consommé
par chaque service de l’entreprise
• MRTG : logiciel graphique
– Visualise le trafic sur les interfaces des commutateurs, routeurs,
stations
– Informations dans MIBs, obtenues par SNMP145
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 289
Administration de réseau : remarques
• Fondamentale quand réseau d’envergure
• Surveillance :
– Confidentialité des relevés
– Respect de la vie privée
• Constats
– Les équipements et les liaisons fonctionnent bien
– IP est très solide
? Conséquence négative sur le besoin d’administration
• Il faut se construire soi-même sa boite à outils
– Pas une seule solution avec un seul produit
– Difficile de conduire une approche théorique globale
• Beaucoup d’outils du domaine public existent
– Mais chaque outil a un but particulier
– Un administrateur doit bien savoir ce qu’il veut obtenir
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 290
Administration de réseau : remarques
Exemple de choix de logiciels du domaine public
• Outil de dépannage : tcpdump
– Analyseur sur station Unix
• Outil de surveillance de liaison : MTR
– Utilise ping et traceroute
– Détecte rapidement une anomalie sur une liaison (coupure, engorgement). Sort des
statistiques.
• Outil de surveillance de trafic : NTOP
– Sonde
– Indique à quoi est utilisé le réseau : charge, stations les plus bavardes, qui dialogue avec qui,
avec quels protocoles, …
– Sur une courte période
• Outil de surveillance de services : Mon
– Services surveillés : messagerie, Web, FTP, SMTP, POP, IMAP, …
– Alerte (mail) quand indisponibles
• Outil de métrologie : Cricket basé sur MRTG
– Interroge des routeurs, commutateurs en SNMP
– Charge, trafic sur une longue période
• Outil de métrologie orienté comptabilité : acct-cisco
– Comptabilité (et répartition de charge) sur un routeur CISCO146
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 291
Eléments de sécurité
• De protection contre les agressions externes en
provenance de l’Internet (donc via le réseau)
• Garde-barrière
– Equipement entre l’extérieur (hostile) et l’intérieur
(de confiance) : routeur, équipement spécifique
– 3 ensembles principaux de contrôle
• Filtrage IP « de base » : cf cours sur les fonctions annexes des
routeurs
• Filtrage IP statefull : analyse des sessions applicatives
• Relais applicatifs
– Ex telnet : login sur garde-barrière puis login sur machine interne
– Permet de concentrer les contrôles sur une machine
– Difficile d’avoir des débits très élevés (Gigabits : non)
– Fiabilité : prévoir un équipement de secours
– Entre réseau interne de l’entreprise et l’Internet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 292
Eléments de sécurité
• Architecture segmentée : un exemple
Internet Internet R
WWW
Relais
Mail
DNS
…
DMZ
Serveurs Internet
G-B
R
Serveurs internes
Mail WWW DNS
Calcul Stockage …
Service administratif
Service R&D
Service X
NAT
Sonde147
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 293
Eléments de sécurité
• Un pb de cette architecture : travail à distance
– Comment consulter son courrier à distance ?
– Comment accéder à l’Intranet à distance ?
– Solutions : cf connexion depuis l’Internet
• Un autre pb : portables
– Où les connecter en interne (peuvent transporter des virus ou
vers) ?
• Garde-barrière
– Ne pas se reposer uniquement sur sa protection
• Sonde de détection d’intrusions
– Sonde avec bibliothèque de signatures d’attaques
• Logiciel de simulation d’intrusions
– Test de vulnérabilités à travers le réseau
• Rq : jamais de sécurité à 100 % (ne pas connecter ?)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 294
Accès à l’Internet (Web)
• Station interne – LAN entreprise ? Internet
• Connexion directe (sans NAT)
– @ IP officielle station ? @ IP serveur Web
• Connexion directe avec NAT
– @ IP privée station ? @ IP serveur Web
– NAT
– @ IP officielle ? @ IP serveur Web
• Proxy-cache Web : serveur dans DMZ
– @ IP station ? @ IP proxy Web
– @ IP proxy Web ? @ IP serveur Web
– 2 sessions TCP (HTTP) : Station–Proxy et Proxy– Serveur Web
– Cache, gain bande passante, filtrage, traces, anti-virus
• Sécurisé : 3ième méthode > 2nde > 1ère
• Accès à l’Internet : autorisation ou non aux salariés ?148
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 295
Accès depuis l’Internet
Serveurs Internet – Extranet de l’entreprise
• Où les mettre ?
– Dans la DMZ
• Zone Démilitarisée, semi-ouverte
– Chez un fournisseur d’accès ou hébergeur
• Stations dédiées
• Serveurs aux CNRS
– Plutôt apache et Linux
– Un peu IIS et Win-NT : bcq trop de pbs de sécurité
• Prévoir un mécanisme de MAJ
• Bien les sécuriser
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 296
Accès depuis l’Internet
au réseau de l’entreprise
• Comment travailler à distance ?
– Consulter sa messagerie et émettre des messages
– Accéder (interactif) aux stations internes
– Transférer des fichiers
– Accéder globalement à toutes les ressources de l’Intranet (réseau
interne)
De manière sécurisée (pas de mot de passe en clair sur le réseau)
• Consulter sa boite aux lettres
– Accès interactif, POP, IMAP trop dangereux
– SSL : POPS, IMAPS, Passerelle Web (HTTPS)
• Chiffrement uniquement
• Chiffrement et authentification du client : certificat client
• Emettre des messages
– Relais « public » ou Sendmail-TLS149
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 297
Accès depuis l’Internet
au réseau de l’entreprise
• Accès interactif et transfert de fichiers
– Sécurisation niveau application : SSH par exemple
– Garde-barrière
• Accéder à toutes les ressources internes
– VPN
– PPT, L2TP, IPSec
• Tous ces mécanismes demandent des
compétences pointues pour ne pas créer des
trous de sécurité
• Personnel très mobile : tout sur le portable ?
– Attention aux vols
– Prévoir sauvegardes
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 298
Construire un réseau « solide »
Fiabilité, disponibilité, tolérance aux pannes, …
• Faire une architecture (physique et logique) simple
– IP est très souple : ne pas abuser des possibilités pointues
• Faire des cahiers des charges (pour chaque évolution)
– Qu’est-ce qu’on veut comme fonctionnalités ?
– Laisser répondre les intégrateurs
• Choisir des équipements spécialisés
– Un PC avec Linux n’est pas un routeur
• Ne pas hésiter à multiplier les machines dédiées /services
– Web – FTP – Mail - DNS - …
• Services réseaux
– Sous Unix ou sous NT ?
– Selon compétences – habitudes – schéma directeur150
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 299
Construire un réseau « solide »
• Faire en fonction des moyens dont on dispose
– Identifier ce qui est vital et non
• Cela va dépendre des applications
• L’expérience est très utile
– De chaque incident on tire une leçon
– Il est difficile de travailler uniquement en théorie
• Ex de question : les équipements et les liaisons sont ils fiables ?
• Comment le savoir sans expérience ?
• Les routeurs par exemple sont jusqu’à présent très fiables
• Faire appel aux entreprises du métier
– Ne pas faire son câblage soi-même
– Utiliser les services des opérateurs
– …
– Mais comprendre et contrôler (le domaine évolue vite)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 300
Réseau « solide » : disponibilité
• Des liaisons
– Chaque contrat avec opérateur garantit :
• Délai d’intervention
• Délai de rétablissement : 4 h par exemple
• …
– Etablir le même principe en interne
• Pb bien connu : « coup de pelleteuse »
• Des équipements d’interconnexion (matériel)
– Spare
– Contrats de maintenance
– Garantie : souvent à vie maintenant
– Dans locaux réservés et protégés (accès, feu, climatisation ?, …)
• Des serveurs
– Classique informatique
• Ces aspects sont très important (pbs engendrés graves)
– Les informaticiens peuvent avoir tendance à le sous-estimé151
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 301
Réseau « solide » : tolérance aux pannes
• Pannes
– Rupture de liens
– Arrêt d’équipements actifs et de services
• Liaisons (niveau 1)
– Réseau maillé sur site
• Câbles mais aussi tranchées
• Bâtiment : deux accès différents ?
– Liaisons externes LS
• 2 LS différentes ? : rare
– Opérateurs : assurent le maillage
• Back up par réseaux commutés : souvent
– Débits inférieurs : est-ce que les applications fonctionnent toujours
? ? Est-ce utile ?
• 2 points d’arrivées des liaisons externes différents ?
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 302
Réseau « solide » : tolérance aux pannes
Niveau 2 : difficulté : Ethernet = bus (? étoile)
• Pas de structure d’anneau ou de maillage : pas
de maillage possible en extrémité
– (dans réseau capillaire : stations)
– Sauf manipulation (changement de prise …)
• Au cœur : réseau maillé de commutateurs
possible
– Algorithme de Spanning Tree
– Mais construction d’un arbre
• Un seul chemin utilis é à un moment
• L’autre inutilis é : « gaspillage »152
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 303
Réseau « solide » : tolérance aux pannes
Niveau 3 IP :
Routage dynamique sur réseau maillé de routeurs
• Fonctionne très bien : permet de basculer d’un chemin à
un autre sans intervention manuelle
• Pb (similaire à Eth) : à un instant une seule route vers
une destination
– On peut avoir 2 chemins différents pour une destination mais
avec des poids différents
• Quand tout va bien : utilise le chemin avec le poids le plus fort
• Bascule sur l’autre quand le premier chemin est coupé
• Pas de répartition de charge / destination
– Mais on peut répartir plusieurs destinations entre des chemins
différents
• Avec des poids différents permettant de basculer tout le trafic sur un
chemin ou l’autre en cas de rupture d’un des chemins
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 304
Réseau « solide » : tolérance aux pannes
Services : serveurs secondaires
• DNS : ce service doit être très fiable
– Bien répartir les serveurs secondaires
– Au moins un sur le même site
• Pas à côté du primaire (en cas de coupure de lien, …)
– 2 autres ailleurs
• Messagerie (relais) : serveurs secondaires
– DNS : MX records / domaine avec poids différents
– Mécanisme supplémentaire de file d’attente sur serveur émetteur
• Reste 4 j par défaut si serveur distant ne répond pas
• Mais c’est moins que la durée des périodes de fermeture des entreprises
• Serveurs Web de l’entreprise
– Si service important : image de marque, source de revenue, outil
de travail (B2B) avec fournisseur/client …
– Réplication de serveurs … : solutions commerciales disponibles153
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 305
Réseau « solide » : sécurité
• Problème sécurité souvent très coûteux
– Serveurs indisponibles, réseau bloqué, vols d’information, …
– Or attaques viennent maintenant du réseau
• Outils imparfaits
– Disparates (un peu à tous les niveaux …)
– Ne colmatent qu’une partie des trous : toujours de nouveaux
• IP et Internet : conçus sans souci de sécurité
– Principe d’un réseau global, égalitaire, sans frontière
• Pas conçu pour modèle réaliste : réseaux internes (entreprises) et un
réseau d’interconnexion
– Pas de limitation de débit / station ou application
– Transport en clair des informations (mot de passe donc)
– Pas garantie émetteur dans messagerie électronique
– …
• Actuellement la sécurité est une partie très importante
du travail d’un administrateur de réseaux
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 306
Réseau « solide » : qualité de service
• Le réseau est vital pour toutes les activités
– On « demande plus » au réseau
• Et à ses administrateurs
– Pas uniquement de garantir la connectivité
• Que le ping marche ne suffit plus
– Mais que les applications fonctionnent correctement
• ? Qualité de service
– Savoir réserver des bandes passantes (avec certaines
qualités) à
• Des utilisateurs (fonctionnellement à des sous-réseaux IP)
• Des applications (fonctionnellement à des numéros de ports)
– Mécanismes
• Cf chapitres : files d’attente routeurs et QoS154
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 307
La conception de réseaux
• Assemblage de briques un peu disparates
• Mais l’architecte doit avoir une vision globale
– Câbles ? applications
– Connaissances dans des domaines très divers
• Le réseau demande un budget conséquent
– Difficile à faire accepter à la direction
– Arguments trop techniques
• Métier difficile
– A risques
• Si le réseau ne marche pas ? catastrophe pour l’entreprise
– Forte évolution des technologies
• Remise à niveau continuel des connaissances
– Sens relationnel obligatoire
• Psychonet parfois
• Mais intéressant …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 308
Etudes de cas : plan
• Réseau de petit laboratoire éclaté : UREC
– Réseau d’une PME sur 2 sites
• Réseau de campus
– Réseau d’un gros site d’une entreprise
• Réseau Renater (national)
– Réseau opérateur télécom
– Réseau grande entreprise multi-sites155
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 309
Réseau UREC : stations Paris-Grenoble
• Paris
– 7 personnes
– 5 bureaux, salle machines (climatisée)
• Grenoble
– 4 personnes + stagiaires
– 6 bureaux, salle machines (climatisée), local technique
• Choix OS
– Stations personnelles : bureautique ? Windows
– Serveur fichiers interne et sauvegarde ? Windows
– Serveurs Internet (DNS, Mail, Web, …) ? Linux
– Développement, tests ? Cela dépend
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 310
Réseaux UREC : câblage
• Câblages effectués par 2 sociétés spécialisées
– Cahier de recette : plans, repérage des prises, résultats tests
• TP catégorie 5 : 100 Mbps OK
– Post-câblage à Grenoble
– Pré-câblage à Paris (nouveaux bureaux)
– Lors du déménagement Paris : abandon de la FO
– 3 prises par personne : 2 informatiques, 1 téléphone
• Cœur étoiles
– Local technique à Grenoble, salle machine à Paris
– Armoires de brassage
• Chemins de câble
– Goulottes dans les bureaux et faux plafonds ailleurs
• Evolution à court terme
– Bornes sans fil : portables, visiteurs156
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 311
Réseaux UREC
• Equipements actifs
– Paris et Grenoble : un commutateur routeur
– 2 ports FO Gbps Ethernet
– 48 ports TP 10-100 Mbps Ethernet
– Contrat de maintenance
– Avant : routeurs, commutateurs Ethernet et ATM,
Hub Ethernet, Stations Eth et/ou ATM
– Connexion extérieure : prise Giga Eth réseau de
campus
• Plan d’adressage
– 1 numéro de classe C officiel à Paris
– 1 numéro de classe C officiel à Grenoble
– Sous-réseaux sur les sites : utilisation des VLAN
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 312
Réseaux UREC sur 2 sites : VLAN
Commut
Routeur
• Autre possibilité : faire des VLAN étendus sur 2
sites
– Pas vraiment de besoin (serveurs mail … dupliqués)
– Trop de dépendance d’un site / l’autre (pb si coupure
Renater par exemple)
FO
Campus
Stations utilisateurs
Serveurs Internet : DNS, mail, Web, …
Serveurs internes : fichiers, log, mail, Web Intranet
Stations visiteurs
Stations tests157
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 313
Réseau UREC : noms machines
(Rappel : déjà expliqué avant)
• Domaine urec.cnrs.fr
– Ss-domaine grenoble.urec.cnrs.fr : toutes machines de Grenoble
– Ss-domaine paris.urec.cnrs.fr : toutes les machines de Paris
• Alias
– www.urec.fr ? elea.paris.urec.cnrs.fr
– mail.urec.cnrs.fr ? thinos.paris.urec.cnrs.fr
– …
– services.cnrs.fr ? kaki.grenoble.urec.cnrs.fr
• Serveur DNS serveur Paris
– Primaire urec.cnrs.fr et paris.urec.cnrs.fr
– Secondaire grenoble.urec.cnrs.fr
• Serveur DNS Grenoble
– Primaire grenoble.urec.cnrs.fr
– Secondaire paris.urec.cnrs.fr et urec.cnrs.fr
• Serveurs DNS secondaires : Jussieu, Grenoble, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 314
UREC : messagerie
• Objectifs architecture
– Adresses standards : Prénom.Nom@urec.cnrs.fr
– Utiliser 2 serveurs (back up) : Paris et Grenoble
• MX urec.cnrs.fr ? Serveurs :
– Mail.paris.urec.cnrs.fr (prioritaire)
– Mail.grenoble.urec.cnrs.fr
• Alias par personne :
– Jean-Luc.Archimbaud@urec.cnrs.fr? JeanLuc.Archimbaud@grenoble.urec.cnrs.fr
• Service accès aux boites aux lettres :
– IMAP en local
– IMAPS avec certificats électroniques à distance158
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 315
UREC : autres services (pour l’UREC)
• Web Intranet :
– Contrôle d’accès par certificat
• Annuaire LDAP : interne
• Service listes de diffusion : SYMPA
• Multicast : routeurs configurés pour le recevoir
• NAT : pas utilisé
• Videoconf (actuellement téléconférence)
– Etude pour l’achat d’un matériel H323 dédié (écran
…)
• Administration
– Un administrateur à Paris, un à Grenoble
– Utilisation de BigBrother
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 316
UREC : sécurité
• Basée sur la segmentation et le filtrage
• Connexion vers l’extérieur
– Tout est possible pour toutes les stations du personnel
– Pour les autres (serveurs, machines tests, …) : limitée au
maximum
• Connexion depuis l’extérieur
– Vers certains serveurs locaux, depuis certains réseaux
• Filtres IP : aucun accès possible :
– Extérieur ? ? machines tests, serveurs internes
– Extérieur ? machines utilisateurs
– Machines tests ? machines utilisateurs
– …
• Filtres IP : accès restreints :
– Extérieur ? serveur Web : uniquement Web
– …159
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 317
UREC : sécurisation accès distants
• Actuellement : n applications
– Telnet, FTP, IMAP, HTTP vers Intranet
– Sécurisation
• Filtrage : uniquement depuis certaines stations
• Mot de passe ? SSL des applications (telnets, ftps, imps, https)
avec utilisation des certificats électroniques
• A l’étude : IPSec avec certificats électroniques
– Station distante considérée comme station locale
– Problèmes :
• Paramétrage de IPSec (fragmentation UDP)
• Plus de débit nécessaire sur la liaison
• Montages en tous sens demande bande passante
• LA STATION NOMADE DOIT ETRE DE CONFIANCE
– Pas d’autres connexions à l’Internet possible depuis cette station
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 318
Réseau de campus
• CNRS Meudon : 10 bâtiments
• Câblage :
– Interconnexion FO
– Intérieur des bâtiments TP Cat5
• Niveau 2-3
– Cœur de réseau : commutateur 100 et GigaEth
– A l’entrée de chaque bâtiment : routeur
– A l’intérieur des bâtiments : commutateurs – hubs
– Sortie vers Renater : routeur
• Adressage IP
– 3 classes C160
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 319
Réseau de campus : services
• Messagerie
• Serveur Web
– Internet
– Intranet : contrôle d’accès par numéro IP
• Sécurité
– Filtres sur les routeurs
– Contrôle d’accès et traces sur les serveurs (tcpwrapper)
• Equipe
– 2 ingénieurs
– Groupe des correspondants de laboratoire
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 320
RENATER : services
• REseau NAtional de la Technologie, de l’Enseignement et
de la Recherche
– GIP : Min Ens Sup, CNRS, INRIA, CEA, …
• Service interconnexion IP
– Réseaux région
– Réseaux métropolitains (MAN)
– Gros sites
– Autres opérateurs français : GIX : SPHINX
– Connexion internationale
• Autres services
– IPv6
– Multicast
– VPN
– CERT161
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 321
RENATER : architecture
• Opérateurs
– N opérateurs pour les liaisons (FO)
– Principaux : TD et FT
– Un opérateur pour l’administration des équipements
actifs (routeurs) : CS
• Architecture
– ATM (VC avec IP) ? IP sur SDH
– VPN : VC ATM ? IPSec
• NRDs : Nœuds de raccordement
– Locaux techniques avec routeurs
– Dans sites en région
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 322
Outils Logiques pour l’Informatique
Roberto M. Amadio
To cite this version:
Roberto M. Amadio. Outils Logiques pour l’Informatique. Ecole d’ing´enieur. 2006, Universit´e ´
Paris 7, 2007, pp.86.
HAL Id: cel-00163821
https://cel.archives-ouvertes.fr/cel-00163821
Submitted on 18 Jul 2007
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Outils Logiques pour l’Informatique∗
Roberto M. Amadio
Universit´e Paris 7
18 juillet 2007
R´esum´e
Ces notes sont une introduction `a la logique math´ematique et aux techniques de
d´eduction automatique dans le cadre du calcul propositionnel classique avec des applications
`a la r´esolution de probl`emes combinatoires et `a la mod´elisation et analyse de
syst`emes informatiques.
1 Introduction
Dans ces notes on aborde les th`emes suivants.
– Calcul propositionnel classique. Interpr´etation. Formes normales. M´ethode de Davis
Putnam. Fonctions d´efinissables. Relation avec les circuits combinatoires.
– Syst`eme de preuve de Gentzen. Correction, compl´etude et compacit´e. M´ethode de
preuve par r´esolution.
– M´ethodes bas´ees sur les diagrammes de d´ecision binaire. Application `a l’analyse de
syst`emes finis.
– Langages formels et automates finis. Non-d´eterminisme et d´eterminisation.
– Notions de calculabilit´e. Machines de Turing. Enum´erations. D´ecidabilit´e. Th´eor`eme de ´
Rice.
– Notions de complexit´e. Classes P et NP. R´eduction en temps polynomial. Le probl`eme
SAT et la notion de NP-compl´etude. Th´eor`eme de Cook-Levin.
– Ordres bien fond´es et principe d’induction.
– M´ethodes de terminaison. Plongement monotone. Ordres produit et lexicographique.
Lemme de K¨onig. Ordre sur les multi-ensembles.
– Travail Pratique. Mise en oeuvre d’une proc´edure de d´eduction automatique type DavisPutnam,
R´esolution,
– Travail Pratique. Utilisation d’un SAT solver type SATO ou CHAFF et application `a
la r´esolution de probl`emes combinatoires type planification, ordonnancement, programmation
lin´eaire sur les entiers,. . .
On pourra se r´ef´erer aux textes suivants pour une pr´esentation plus approfondie.
– J. Barwise, Handbook of mathematical logic (chapitres r´edig´es par J. Barwise et H. Schwichtenberg),
Elsevier.
∗Ces notes sont bas´ees sur un cours que j’ai assur´e `a l’Universit´e de Paris 7 en 2005 et 2006. Elles sont
compl´et´ees par une s´election de travaux dirig´es et pratiques.
1– J. Gallier. Logic for computer science (chapitres 1-4), Harper et Row (disponible en
ligne).
– J. Goubault-Larrecq et I. Mackie. Proof theory and automated deduction (chapitre 1),
Kluwer Academic Publishers.
– M. Sipser. Introduction to the theory of computation (chapitres 3-7), Thomson.
On trouve aussi plusieurs textes d’introduction `a la logique r´edig´es en fran¸cais qui comprennent
un chapitre sur le calcul propositionnel. Par exemple :
– R. Cori, D. Lascar. Logique math´ematique, tome 1 : calcul propositionnel - cours et
exercices, Dunod.
Le texte
– P. Wolper. Introduction `a la calculabilit´e, InterEditions.
comprend une introduction ´el´ementaire aux machines de Turing et `a la complexit´e.
22 Calcul Propositionnel
La logique est `a l’origine une r´eflexion sur le discours (logos) et sur sa coh´erence. En
particulier, la logique math´ematique s’int´eresse `a l’organisation et `a la coh´erence du discours
math´ematique et donc aux notions de validit´e et de preuve. Dans le calcul propositionnel
classique, on dispose d’un certain nombre de propositions qui peuvent ˆetre vraies ou fausses
et d’un certain nombre d’op´erateurs qui permettent de combiner ces propositions.
2.1 Formules
– Soit V = {x1, x2, . . .} un ensemble d´enombrable de variables propositionnelles.
– L’ensemble Form des formules est le plus petit ensemble tel que Form ⊇ V et si A, B ∈
Form alors
¬A (n´egation),
(A ∧ B) (conjonction)
(A ∨ B) (disjonction)
sont des formules.1
– Si A ∈ V on dit que A est une formule atomique.
– Si A ∈ V ou A = ¬B et B ∈ V on dit que A est un litt´eral. Dans le premier cas on dit
que le litt´eral est positif et dans le deuxi`eme qu’il est n´egatif. On d´enote un litt´eral avec
`, `0
, . . .
– L’ensemble Var (A) des variables pr´esentes dans la formule A est d´efini par :
Var (x) = {x}, Var (¬A) = Var (A), Var (A ∧ B) = Var (A ∨ B) = Var (A)∪ Var (B).
2.2 Interpr´etation
– 2 = {0, 1} est l’ensemble des valeurs bool´eennes, d’apr`es George Boole. De fa¸con
´equivalente on peut utiliser B = {faux, vrai} avec la convention que faux correspond `a 0
et vrai `a 1.
– Une affectation est une fonction partielle
v : V * 2
avec domaine de d´efinition dom(v).
– Si v est une affectation, x est une variable propositionnelle et b une valeur bool´eenne
alors v[b/x] est l’affectation d´efinie par
v[b/x](y) = (
b si y = x
v(y) autrement
– L’interpr´etation [[A]]v d’une formule A par rapport `a l’affectation v est d´efinie par
r´ecurrence sur la structure de A en supposant que Var (A) ⊆ dom(v) (autrement l’interpr´etation
n’est pas d´efinie) :
[[x]]v = v(x) [[¬A]]v = NOT([[A]]v)
[[A ∧ B]]v = AND([[A]]v, [[B]]v) [[A ∨ B]]v = OR([[A]]v, [[B]]v).
1
Il s’agit d’un exemple de d´efinition inductive d’un ensemble dont il sera question dans la section 8.
3o`u les fonctions NOT, AND, OR sont d´efinies par :
x NOT(x) x y AND(x, y) x y OR(x, y)
0 1 0 0 0 0 0 0
1 0 0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
Parfois, il est pr´ef´erable d’utiliser une notation plus compacte, `a savoir : x = NOT(x),
x + y = OR(x, y) et x · y = AND(x, y).
– On ´ecrit v |= A si [[A]]v = 1.
– On dit que A est satisfiable s’il existe une affectation v telle que v |= A.
– On dit que A est valide (ou une tautologie) si pour toute affectation v, v |= A.
Exercice 2.1 Montrez que A est valide si et seulement si ¬A n’est pas satisfiable.
Exercice 2.2 Si X est un ensemble de variables et v est une affectation alors v|X est la
restriction de v `a X. Soit A une formule et X ⊇ Var (A). Montrez que si v|X = v
0
|X
alors
[[A]]v = [[A]]v
0
. Donc l’interpr´etation [[A]]v est ind´ependante des valeurs de l’affectation v sur
les variables propositionnelles qui ne sont pas pr´esentes dans A.
2.3 Substitution
La substitution [B/x]A d’une formule B pour une variable propositionnelle x dans la
formule A est d´efinie par :
[B/x](y) = (
B si y = x
y autrement
[B/x](¬A) = ¬[B/x]A,
[B/x](A ∧ A0
) = ([B/x]A ∧ [B/x]A0
) [B/x](A ∨ A0
) = ([B/x]A ∨ [B/x]A0
)
Proposition 2.3 [[[B/x]A]]v = [[A]]v[[[B]]v/x].
Idee de la preuve ´ . Par r´ecurrence sur la structure de A. •
2.4 Equivalence logique ´
On d´efinit les formules :
0 =def x ∨ ¬x 1 =def x ∧ ¬x (A → B) =def ¬A ∨ B (A ↔ B) =def (A → B) ∧ (B → A)
Si |= A ↔ B on dit que A et B sont logiquement ´equivalentes et on ´ecrit aussi A ≡ B.
Exercice 2.4 Montrez que A et B sont logiquement ´equivalentes si et seulement si pour toute
affectation v, [[A]]v = [[B]]v.
Exercice 2.5 Montrez :
(A ∨ 0) ≡ A, (A ∨ 1) ≡ 1, (A ∨ B) ≡ (B ∨ A),
((A ∨ B) ∨ C) ≡ (A ∨ (B ∨ C)), (A ∨ A) ≡ A
(A ∧ 0) ≡ 0, (A ∧ 1) ≡ A, (A ∧ B) ≡ (B ∧ A),
((A ∧ B) ∧ C) ≡ (A ∧ (B ∧ C)), (A ∧ A) ≡ A,
(A ∧ B) ∨ C ≡ (A ∧ C) ∨ (B ∧ C), (A ∨ B) ∧ C ≡ (A ∧ C) ∨ (A ∧ C),
¬¬A ≡ A, ¬(A ∨ B) ≡ ((¬A) ∧ (¬B)), ¬(A ∧ B) ≡ ((¬A) ∨ (¬B)) .
4On appelle les deux derni`eres ´equivalences de l’exercice pr´ec´edent lois de De Morgan.
Si {Ai
| i ∈ I} est une famille de formules index´ees sur l’ensemble I on peut ´ecrire :
V
{Ai
|i∈I} ou V
i∈I Ai
, W
{Ai
|i∈I} ou W
i∈I Ai
.
Comme la disjonction et la conjonction sont associatives et commutatives, cette notation
d´efinit une formule unique `a ´equivalence logique pr`es. Par convention, si I est vide on a :
^
∅ = 1 et _
∅ = 0 .
2.5 Fonctions d´efinissables et formes normales
– Soit x1, . . . , xn une liste de variables distinctes telle que {x1, . . . , xn} ⊇ var (A). Une
formule A d´efinit une fonction fA : 2
n → 2 par
fA(b1, . . . , bn) = [[A]][b1/x1, . . . , bn/xn]
Notez que la fonction fA non seulement d´epend de A mais aussi de la liste de variables
x1, . . . , xn. Par exemple, la formule x d´efinit la premi`ere projection par rapport `a la
liste x, y et la deuxi`eme projection par rapport `a la liste y, x.
– Une formule est en forme normale disjonctive (DNF pour Disjunctive Normal Form) si
elle est une disjonction de conjonctions de litt´eraux.
– On appelle clause une disjonction de litt´eraux. Une formule est en forme normale
conjonctive (CNF pour Conjuctive Normal Form) si elle est une conjonction de clauses.
Th´eor`eme 2.6 Toute fonction f : 2
n → 2 est d´efinissable par une formule A en forme
normale disjonctive telle que Var (A) = {x1, . . . , xn}.
Idee de la preuve ´ . On construit un tableau de v´erit´e avec 2n
entr´ees. Si f(b1, . . . , bn) = 1
avec bi ∈ {0, 1} alors on construit un monˆome (`1 ∧ · · · ∧ `n) o`u `i = xi si bi = 1 et `i = ¬xi
autrement. La formule A est la disjonction de tous les monˆomes obtenus de cette fa¸con. Par
exemple, si f(0, 1) = f(1, 0) = 1 et f(0, 0) = f(1, 1) = 0 alors on obtient A = (¬x1 ∧ x2) ∨
(x1 ∧ ¬x2). •
Corollaire 2.7 Toute fonction f : 2
n → 2 est d´efinissable par une formule A en forme
normale conjonctive telle que Var (A) = {x1, . . . , xn}.
Idee de la preuve ´ . Par le th´eor`eme 2.6 on peut construire une formule A en forme normale
disjonctive pour la fonction NOT ◦ f : 2
n → 2. Donc la formule ¬A d´efinit la fonction f. On
applique maintenant les lois de De Morgan et on obtient :
¬
_
i∈I
(
^
j∈Ji
`i,j ) ≡
^
i∈I
(¬(
^
j∈Ji
`i,j )) ≡
^
i∈I
(
_
j∈Ji
(¬`i,j ) ) ≡
^
i∈I
(
_
j∈Ji
`
0
i,j )
o`u `
0
i,j = ¬xi,j si `i,j = xi,j et `
0
i,j = xi,j si `i,j = ¬xi,j . Bien sˆur, on utilise ici l’´equivalence
logique A ≡ ¬¬A. •
5Remarque 2.8 Tout ensemble fini X peut ˆetre cod´e par les ´el´ements d’un ensemble 2
n
pour n suffisamment grand. Toute fonction f : 2
n → 2
m se d´ecompose en m fonctions
f1 : 2
n → 2, . . . , fm : 2
n → 2. Ainsi toute fonction f : X → Y o`u X et Y sont finis
peut ˆetre d´efinie, modulo codage, par un vecteur de formules du calcul propositionnel. Avec un
peu de r´eflexion, tout objet fini peut ˆetre repr´esent´e par des formules du calcul propositionnel.
Cette puissance de repr´esentation explique en partie la grande vari´et´e d’applications possibles
du calcul propositionnel.
Exercice 2.9 Montrez que toute formule est logiquement ´equivalente `a une formule compos´ee
de n´egations et de conjonctions (ou de n´egations et de disjonctions).
Exercice 2.10 La taille |A| d’une formule A peut se d´efinir par :
|x| = 1, |¬A| = 1 + |A|, |A ∧ B| = 1 + |A| + |B|, |A ∨ B| = 1 + |A| + |B| .
Donnez une borne sup´erieure `a la taille d’une formule qui d´efinit une fonction f : 2
n → 2.
Exercice 2.11 (1) Montrez que :
_
i=1,...,m
(
^
j=1,...,ni
`i,j ) ≡
^
1≤i≤m,1≤ki≤ni
(`1,k1 ∨ · · · ∨ `m,km)
(2) Supposez ni = n pour i = 1, . . . , m. Exprimez la taille des formules dans (1) en fonction
de n et m.
(3) D´erivez une proc´edure pour transformer une formule en CNF.
Exercice 2.12 (1) Montrez l’´equivalence logique :
(A ∧ B) ∨ (¬A ∧ B) ≡ B (1)
(2) On peut appliquer cette ´equivalence logique pour simplifier une forme normale disjonctive.
Par exemple, consid´erez la fonction f(x, y, z) d´efinie par le tableau de v´erit´e :
x\yz 00 01 11 10
0 0 1 1 0
1 1 1 1 1
Calculez la forme normale disjonctive de f et essayez de la simplifier en utilisant l’´equivalence
logique 1.
(3) La pr´esentation du tableau de v´erit´e n’est pas arbitraire. . . Proposez une m´ethode graphique
pour calculer une forme normale disjonctive simplifi´ee.
Exercice 2.13 Soit f une fonction sur les nombres naturels. Dire qu’un probl`eme est d´ecid´e
en O(f), signifie qu’on dispose d’un algorithme A et de n0, k nombres naturels tels que pour
toute entr´ee dont la taille n est sup´erieure `a n0, le temps de calcul de A sur l’entr´ee en
question est inf´erieure `a k · f(n).
(1) Montrez que la satisfaction d’une formule en DNF et la validit´e d’une formule en CNF
peuvent ˆetre d´ecid´ees en O(n).
(2) Soit pair (x1, . . . , xn) = (Σi=1,...,nxi) mod 2 la fonction qui calcule la parit´e d’un vecteur de
bits. Montrez que la repr´esentation en DNF ou CNF de cette fonction est en O(2n
). Peut-on
appliquer (1) pour simplifier la repr´esentation ?
6Exercice 2.14 (if-then-else) La fonction ternaire ITE est d´efinie par ITE(1, x, y) = x et
ITE(0, x, y) = y. Montrez que toute fonction f : 2
n → 2, n ≥ 0 s’exprime par composition de
la fonction ITE et des (fonctions) constantes 0 et 1.
Exercice 2.15 (nand,nor) Les fonctions binaires NAND et NOR sont d´efinies par NAND(x, y) =
NOT(AND(x, y)) et NOR(x, y) = NOT(OR(x, y)). Montrez que toute fonction f : 2
n → 2,
n ≥ 0, s’exprime comme composition de la fonction NAND (ou de la fonction NOR). Montrez
que les 4 fonctions unaires possibles n’ont pas cette propri´et´e et que parmi les 16 fonctions
binaires possibles il n’y en a pas d’autres qui ont cette propri´et´e.
Exercice 2.16 L’or exclusif ⊕ (xor) est d´efini par
A ⊕ B ≡ (A ∧ ¬B) ∨ (¬A ∧ B)
Montrez que :
(1) ⊕ est associatif et commutatif.
(2) x ⊕ 0 ≡ x et x ⊕ x ≡ 0.
(3) Toute fonction bool´eenne f : 2
n → 2 peut ˆetre repr´esent´ee `a partir de 1, ∧ et ⊕.
2.6 M´ethode de Davis-Putnam
La m´ethode de Davis Putnam permet de d´ecider si une formule en forme normale conjonctive
est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement
vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de
litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne
b ∈ {0, 1} dans A comme suit :
[b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1}
[b/x]C =
1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C)
C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C)
C autrement
On d´efinit une fonction DP qui agit r´ecursivement sur une formule A en CNF dans la
repr´esentation d´ecrite ci-dessus :
function DP(A) = case
(1) A = ∅ : true
(2) ∅ ∈ A false
(3) {x,¬x} ⊆ C ∈ A : DP(A\{C})
(4) {x} ∈ A : DP([1/x]A)
(5) {¬x} ∈ A : DP([0/x]A)
(6) else : choisir x dans A;
DP([0/x]A) or DP([1/x]A)
Dans (1), nous avons une conjonction du vide qui par convention est ´equivalente `a true. Dans
(2), A contient une clause vide. La disjonction du vide ´etant ´equivalente `a false, la formule A
est aussi ´equivalente `a false. Dans (3), une clause contient un litt´eral et sa n´egation et elle est
7donc ´equivalente `a true. Dans (4) et (5), A contient une clause qui est constitu´ee uniquement
d’une variable ou de sa n´egation. Ceci permet de connaˆıtre la valeur de la variable dans toute
affectation susceptible de satisfaire la formule. Dans (6), nous sommes oblig´es `a consid´erer les
deux valeurs possibles d’une affectation sur une variable.
Exercice 2.17 (1) Montrez que si A est une fonction en CNF alors la fonction DP termine.
(2) Montrez que DP(A) retourne true (false) si et seulement si A est satisfiable (ne l’est pas).
Exercice 2.18 Expliquez comment utiliser la m´ethode de Davis-Putnam pour d´ecider la validit´e
d’une formule.
Exercice 2.19 Modifiez la fonction DP pour que, si la formule A est satisfiable, elle retourne
une affectation v qui satisfait A.
Exercice 2.20 R´efl´echissez aux structures de donn´ees et aux op´erations n´ecessaires `a la mise
en oeuvre de l’algorithme en Java.
Exercice 2.21 En logique classique, on peut d´efinir l’implication A → B comme ¬A ∨ B.
Analysez la satisfiabilit´e et la validit´e des formules suivantes :
(x → w) → ((y → z) → ((x ∨ y) → w))
(x → y) → ((y → ¬w) → ¬x)
Calculez la CNF des deux formules et de leurs n´egations. Appliquez la m´ethode de DavisPutnam
pour d´eterminer la satisfiabilit´e des formules obtenues.
Exercice 2.22 Une clause de Horn est une clause (c’est-`a-dire une disjonction de litt´eraux)
qui contient au plus un litt´eral positif. Une formule de Horn est une formule en CNF dont les
clauses sont des clauses de Horn.
(1) Montrez que toute formule de Horn est ´equivalente `a la conjonction (´eventuellement vide)
de clauses de Horn de la forme :
(1) x
(2) ¬x1 ∨ · · · ∨ ¬xn
(3) ¬x1 ∨ · · · ∨ ¬xn ∨ xn+1
o`u n ≥ 1 et xi 6= xj si i 6= j. Dans ce cas on dit que la formule de Horn est r´eduite.
(2) Montrez qu’une formule de Horn r´eduite qui ne contient pas de clauses de la forme (1)
ou qui ne contient pas de clauses de la forme (2) est satisfiable.
(3) Donnez une m´ethode efficace (temps polynomial) pour d´eterminer si une formule de Horn
est satisfiable.
2.7 Circuits
Une formule A du calcul propositionnel avec variables x1, . . . , xn peut ˆetre vue comme un
arbre. On a vu que A d´efinit une fonction fA : 2
n → 2. Une fa¸con naturelle de calculer la
fonction fA est de propager les valeurs de v´erit´e des feuilles vers la racine. On peut mesurer
la complexit´e du calcul en comptant le nombre de portes ou en comptant la longueur du
chemin le plus long. Intuitivement, la premi`ere mesure correspond `a l’espace occup´e par le
calcul alors que la deuxi`eme correspond au temps n´ecessaire au calcul.
82.7.1 Circuits bool´eens
Une formule/arbre A peut pr´esenter une certaine redondance. Par exemple, consid´erons
la formule :
(x3 ∧ ¬((x1 ∨ x2) ∧ (¬x1 ∨ ¬x2))) ∨ (¬x3 ∧ (x1 ∨ x2) ∧ (¬x1 ∨ ¬x2))
Les formules x1, x2, x3, (x1 ∨ x2), (¬x1 ∨ ¬x2) paraissent plusieurs fois dans la formule A. On
peut alors envisager de donner une repr´esentation plus compacte de A dans laquelle les sous
formules identiques sont partag´ees. On arrive ainsi `a la notion de circuit bool´een.
Un circuit bool´een est un graphe dirig´e acyclique G = (N, A) o`u on appelle les noeuds dans
N portes logiques. A chaque porte logique on associe une ´etiquette ∧,∨,¬, 0, 1, x1, . . . , xn. Les
noeuds avec ´etiquettes ∧,∨ ont 2 arˆetes entrantes, les noeuds avec ´etiquette ¬ ont 1 arˆete
entrante et les noeuds avec ´etiquettes 0, 1, x1, . . . , xn n’ont pas d’arˆete entrante. Les noeuds
qui n’ont pas d’arˆete entrante correspondent aux entr´ees du circuit. Les noeuds qui n’ont pas
d’arˆete sortante correspondent aux sorties du circuit. Chaque sortie correspond `a une fonction
(avec entr´ees x1, . . . , xn) repr´esent´ee par le circuit.
Les fonctions calcul´ees par le circuit sont obtenues en affectant des valeurs de v´erit´e aux
variables x1, . . . , xn et en propageant ces valeurs de v´erit´e des entr´ees vers les sorties. Le fait
que le graphe est acyclique assure que ce calcule peut toujours ˆetre effectu´e et que le r´esultat
est d´etermin´e de fa¸con unique.
2.7.2 Circuits combinatoires
Les circuits bool´eens sont une abstraction math´ematique de dispositifs ´electroniques qu’on
appelle circuits combinatoires. Dans les circuits combinatoires, les portes logiques sont r´ealis´ees
par des transistors, les arˆetes correspondent `a des interconnexions et les valeurs bool´eennes
correspondent `a des tensions. Typiquement, 0 est repr´esent´e par la masse (tension 0V ) et 1
par 5V .
Dans les circuits combinatoires les boucles sont interdites, ce qui correspond `a la condition
d’acyclicit´e dans les circuits bool´eens. Cette condition permet de garantir que suite `a une
variation des tensions en entr´ee, la tension du circuit en sortie se stabilise sur une valeur
significative (proche de 0V ou de 5V apr`es un temps qui est li´e `a des variables physiques
comme la temp´erature et la longueur des interconnexions).
Remarquons que les mesures de complexit´e que nous avons ´evoqu´ees pour les circuits
logiques ont une interpr´etation imm´ediate en terme de circuits combinatoires. Le nombre de
noeuds du circuit bool´een correspond au nombre de portes logiques, c’est-`a-dire au nombre
de transistors n´ecessaires `a la mise en oeuvre du circuit. Coupl´ee avec la topologie des interconnexions,
cette mesure d´etermine l’espace occup´e par le circuit. La longueur du chemin le
plus long correspond au temps qu’il faut attendre entre une variation du signal en entr´ee et
la stabilisation du signal en sortie.
La notion de circuit bool´een fait abstraction de la notion de temps (le calcul du r´esultat
est instantan´e) et dans une certaine mesure de distance (on compte le nombre de portes mais
on ne compte pas la longueur des interconnexions) et il permet de simplifier grandement la
conception d’un circuit combinatoire. Dans la suite nous allons consid´erer dans un certain
d´etail la conception d’un additionneur.
92.7.3 Additionneur
On consid`ere un vecteur bn, . . . , b0 o`u bi ∈ {0, 1} comme un nombre en base 2. Ainsi le
nombre repr´esent´e est Σi=0,...,nbi2
i qu’on d´enote aussi avec (bn · · · b0)2.
Un multiplexeur est un circuit bool´een avec n + 2n
entr´ees cn−1, . . . , c0, x2n−1, . . . , x0 et
une sortie y tel que
y = x(cn−1···c0)2
Exercice 2.23 Construisez un circuit bool´een qui r´ealise un multiplexeur dont le nombre de
portes est proportionnel `a 2
n
et dont la longueur du chemin le plus long est proportionnelle `a
n.
Un additionneur est un circuit bool´een avec 2n entr´ees xn−1, yn−1, . . . , x0, y0 et n + 1
sorties rn, sn−1, . . . , s0 tel que
(xn−1 · · · x0)2 + (yn−1 · · · y0)2 = (rnsn−1 · · · s0)2
On peut r´ealiser un additionneur en utilisant l’algorithme standard qui propage la retenue de
droite `a gauche.
Exercice 2.24 (1) R´ealisez un circuit A avec 3 entr´ees x, y, r et deux sorties s, r0
tel que
(r
0
s)2 = (x)2 + (y)2 + (r)2
(2) Expliquez comment inter-connecter n circuits A pour obtenir un additionneur sur n bits.
(3) Montrez que dans le circuit en question le nombre de portes et la longueur du chemin le
plus long sont proportionnels `a n.
Exercice 2.25 Le but de cet exercice est de r´ealiser un additionneur dont le nombre de portes
est encore polynomiale en n mais dont la longueur du chemin le plus long est proportionnelle
`a lg(n). Pour ´eviter que la retenue se propage `a travers tout le circuit, l’id´ee est d’anticiper sa
valeur. Ainsi pour additionner 2 vecteurs de longueur n, on additionne les premiers n/2 bits
(ceux de poids faible) et en mˆeme temps on additionne les derniers n/2 bits (ceux de poids
fort) deux fois (en parall`ele) une fois avec retenue initiale 0 et une fois avec retenue initiale
1. On applique cette m´ethode r´ecursivement sur les sous-vecteurs de longueur n/4, n/8, . . .
selon le principe diviser pour r´egner.
(1) Construisez explicitement un tel circuit pour n = 4.
(2) D´eterminez en fonction de n le nombre de portes et la longueur du chemin le plus long
du circuit obtenu.
Exercice 2.26 Un d´ecodeur est un circuit avec n entr´ees xn−1, . . . , x0 et 2
n
sorties y2n−1, . . . , y0
tel que
yi = 1 ssi i = (xn−1 · · · x0)2
R´ealisez un tel circuit.
10Exercice 2.27 On dispose d’un circuit combinatoire CE avec 2 entr´ees x, y et 2 sorties <, =
dont le comportement est sp´ecifi´e par le tableau suivant (bien sˆur, les symboles choisis pour
les sorties ne sont pas arbitraires) :
x y < =
0 0 0 1
0 1 1 0
1 0 0 0
1 1 0 1
Un comparateur n bits est une fonction bool´eenne C avec 2n entr´ees et 1 sortie telle que :
C(xn−1, yn−1, . . . , x0, y0) = 1 ssi (xn−1 · · · x0)2 < (yn−1 · · · y0)2
On remarque que :
(xn−1 · · · x0)2 < (yn−1 · · · y0)2 ssi (xn−1 < yn−1) ou
((xn−1 = yn−1) et (xn−2 · · · x0)2 < (yn−2 · · · y0)2)
Montrez comment construire un circuit combinatoire qui impl´emente un comparateur 4 bits
en disposant de : (i) 4 circuits CE , (ii) 8 portes AND binaires (vous n’ˆetes pas oblig´es de
les utiliser toutes) et 1 porte OR avec 4 entr´ees. Si vous ˆetes bloqu´e, essayez d’abord le
comparateur 2 bits.
113 Syst`emes de preuve
Pour l’instant on a consid´er´e un langage logique (la logique propositionnelle classique)
et une notion de validit´e. Comment s’assurer qu’une formule est valide ? Dans le cas de
la logique propositionnelle, on peut envisager de v´erifier toutes les affectations mais cette
m´ethode demande 2n v´erifications pour une formule qui contient n variables. De plus pour
v´erifier la validit´e de formules en logique du premier ordre on aurait `a consid´erer une infinit´e
de cas car les domaines d’interpr´etation sont infinis. D’o`u l’id´ee de se donner des axiomes
et des r`egles pour d´eduire avec un effort fini de calcul des formules valides. Par exemple, on
pourrait avoir les axiomes :
(A1) A → (B → A)
(A2) (A → (B → C)) → ((A → B) → (A → C))
et on pourrait avoir une r`egle :
(R)
A A → B
B
A partir des axiomes et des r`egles on peut construire des ` preuves. Une preuve est un arbre
dont les feuilles sont ´etiquet´ees par des axiomes et dont les noeuds internes sont ´etiquet´es par
des r`egles d’inf´erence. La formule qui se trouve `a la racine de l’arbre est la formule que l’on
d´emontre. Par exemple, en prenant B = (A → A) et C = A on peut construire une preuve
de A → A par application des axiomes (A1 − 2) et de la r`egle (R) (2 fois). On remarquera
qu’axiomes et r`egles sont toujours donn´es en forme sch´ematique. Par exemple, dans l’axiome
(A1) il est entendu qu’on peut remplacer les formules A et B par des formules arbitraires.
3.1 Correction et compl´etude
On dit qu’un syst`eme de preuve est :
correct s’il permet de d´eduire seulement des formules valides,
complet si toute formule valide peut ˆetre d´eduite.
Il est trivial de construire des syst`emes corrects ou complets mais il est beaucoup plus
d´elicat de construire des syst`emes corrects et complets. On va examiner un syst`eme correct
et complet propos´e par Gerhard Gentzen en 1930. Une id´ee g´en´erale est d’´ecrire des r`egles
d’inf´erence qui permettent de r´eduire la ‘complexit´e structurale (ou logique)’ des formules
jusqu’`a une situation qui peut ˆetre trait´ee directement par un axiome.
Exercice 3.1 Soit A = `1 ∨ · · · ∨ `n une disjonction de litt´eraux. Montrez que A est valide si
et seulement si une variable propositionnelle x et sa n´egation ¬x sont pr´esentes dans A.
Ceci sugg`ere un axiome :
x ∨ ¬x ∨ B
ou plus en g´en´eral
A ∨ ¬A ∨ B
On consid`ere maintenant la situation pour la conjonction et la disjonction.
12Exercice 3.2 Montrez que :
|= A ∧ B ssi |= A et |= B
Ceci sugg`ere une r`egle pour la conjonction :
A B
A ∧ B
Exercice 3.3 Montrez que :
|= A ∨ B si |= A ou |= B
Ceci sugg`ere deux r`egles pour la disjonction :
A
A ∨ B
B
A ∨ B
Comment traiter la n´egation ? L’exercice suivant montre comment r´eduire la n´egation en
faisant passer la formule `a droite ou `a gauche d’une implication.
Exercice 3.4 Montrez que :
|= B → (¬A ∨ C) ssi |= (B ∧ A) → C
|= (B ∧ ¬A) → C ssi |= B → (A ∨ C)
Ce type de consid´erations nous m`enent `a la notion de s´equent.
D´efinition 3.5 Un s´equent est un couple (Γ, ∆) qu’on ´ecrit Γ ` ∆ d’ensembles finis (´eventuellement
vides) de formules. Un s´equent Γ ` ∆ est valide si la formule
(
^
A∈Γ
A) → (
_
B∈∆
B)
est valide.
Par convention, on ´ecrit un s´equent {A1, . . . , An} ` {B1, . . . , Bm} comme A1, . . . , An `
B1, . . . , Bm et un ensemble Γ ∪ {A} comme Γ, A. On remarquera que la virgule ‘,’ est interpr´et´ee
comme une conjonction `a gauche et comme une disjonction `a droite du s´equent. On
va maintenant reformuler nos id´ees sur la simplification des formules en utilisant la notion de
s´equent.
(Ax )
A, Γ ` A, ∆
(∧ `)
A, B, Γ ` ∆
A ∧ B, Γ ` ∆
(` ∧)
Γ ` A, ∆ Γ ` B, ∆
Γ ` A ∧ B, ∆
(∨ `)
A, Γ ` ∆ B, Γ ` ∆
A ∨ B, Γ ` ∆
(` ∨)
Γ ` A, B, ∆
Γ ` A ∨ B, ∆
(¬ `)
Γ ` A, ∆
¬A, Γ ` ∆
(` ¬)
A, Γ ` ∆
Γ ` ¬A, ∆
13Ce syst`eme est remarquable par sa simplicit´e conceptuelle : il comporte un axiome ‘identit´e’
qui dit que de A on peut d´eriver A et des r`egles d’inf´erence. Pour chaque op´erateur de la
logique, on dispose d’une r`egle qui introduit l’op´erateur `a gauche du ` et d’une autre qui
l’introduit `a droite.
Exercice 3.6 Montrez que :
(1) Un s´equent A, Γ ` A, ∆ est valide.
(2) Pour chaque r`egle d’inf´erence la conclusion est valide si et seulement si les hypoth`eses
sont valides.
Th´eor`eme 3.7 Le syst`eme de Gentzen d´erive exactement les s´equents valides.
Idee de la preuve ´ . Par l’exercice 3.6 tout s´equent d´erivable est valide. Donc le syst`eme
est correct. Soit Γ ` ∆ un s´equent valide. On applique les r`egles jusqu’`a ce que toutes les
formules dans les s´equents soient atomiques. Ensuite on remarque qu’un s´equent valide dont
toutes les formules sont atomiques peut ˆetre d´eriv´e par application de l’axiome (Ax ). Cette
remarque est une simple reformulation de l’exercice 3.1. •
D´efinition 3.8 Soit A une formule. L’ensemble sf (A) des sous formules de A est d´efini par
sf (A) =
{A} si A atomique
{A} ∪ sf (B) si A = ¬B
{A} ∪ sf (B1) ∪ sf (B2) si A = B1 ∧ B2 ou A = B1 ∨ B2
Exercice 3.9 (sous-formule) Montrez que si un s´equent est d´erivable alors il y a une preuve
du s´equent qui contient seulement des sous formules de formules dans le s´equent.
Exercice 3.10 (affaiblissement) Montrez que si le s´equent Γ ` ∆ est d´erivable alors le
s´equent Γ ` A, ∆ l’est aussi.
Exercice 3.11 (implication) Dans le syst`eme de Gentzen on peut donner un traitement
direct de l’implication :
(→`)
Γ ` A, ∆ B, Γ ` ∆
A → B, Γ ` ∆
(`→)
Γ, A ` B, ∆
Γ ` A → B, ∆
Red´emontrez le th´eor`eme 3.7 pour le syst`eme de Gentzen ´etendu avec ces r`egles.
Exercice 3.12 Montrez que les r`egles pour la disjonction et l’implication sont d´erivables des
r`egles pour la conjonction et la n´egation en utilisant les ´equivalences : A ∨ B ≡ ¬(¬A ∧ ¬B)
et A → B ≡ ¬A ∨ B.
Exercice 3.13 (1) Ecrire l’axiome et les r`egles d’inf´erence du calcul des s´equents pour les ´
op´erateurs logiques de n´egation ¬ et d’implication →. Rappel : on peut retrouver les r`egles
pour l’implication `a partir des r`egles pour la n´egation et la disjonction.
(2) Utilisez les syst`eme de preuve d´ecrit pour construire une preuve des s´equents suivants :
` (¬¬A → A) et (A → B),(A → ¬B) ` ¬A
14Exercice 3.14 Trouvez les r`egles (` NAND) et (NAND `) pour l’op´erateur logique NAND
en utilisant le fait que NAND(A, B) s’´ecrit comme ¬(A ∧ B).
Exercice 3.15 (coupure) La r`egle de coupure (ou cut) est :
(coupure)
A, Γ ` ∆ Γ ` A, ∆
Γ ` ∆
Montrez que le syst`eme de Gentzen ´etendu avec cette r`egle est toujours correct (et complet).
Exercice 3.16 D´erivez du syst`eme de Gentzen un algorithme pour v´erifier si une formule A
est valide. Quelle est la complexit´e en temps de votre algorithme ?
Exercice 3.17 On consid`ere les formules suivantes :
A = (x ∨ z) ∧ (y ∨ w), B = (¬x ∨ ¬y) ∧ (¬z ∨ ¬w), C = (¬x ∨ ¬z) ∧ (¬y ∨ ¬w)
1. Consid´erez le s´equent A, C ` B. S’il est valide, construisez une preuve du s´equent,
autrement donnez une affectation des variables x, y, z, w qui montre qu’il ne l’est pas.
2. Mˆeme probl`eme pour le s´equent A, B ` C.
3.2 Compacit´e
Un ensemble (´eventuellement infini) de formules T est satisfiable s’il existe une affectation
qui satisfait chaque formule dans T.
Exercice 3.18 Si T est satisfiable alors chaque sous ensemble fini de T est satisfiable.
On va montrer que la r´eciproque est aussi vraie.
D´efinition 3.19 (1) Un ensemble T de formules est finement satisfiable si tout sous ensemble
fini de T est satisfiable.
(2) Un ensemble T de formules finement satisfiable est maximal si pour toute formule A soit
A ∈ T soit ¬A ∈ T.
Exercice 3.20 Montrez que :
(1) Si S est un ensemble finement satisfiable et maximal alors :
A ∈ S ssi ¬A /∈ S
A ∧ B ∈ S ssi A ∈ S et B ∈ S
A ∨ B ∈ S ssi A ∈ S ou B ∈ S
(2) Soit S un ensemble de formules finement satisfiable et maximal. On d´efinit une affectation
vS par :
vS(x) = (
1 si x ∈ S
0 si ¬ ∈ S
Pourquoi cette d´efinition est-elle correcte ?
(3) Soit S finement satisfiable et maximal. Montrez que S est satisfiable.
(4) Soit T un ensemble de formules. Montrez que s’il existe S ⊇ T finement satisfiable et
maximal alors T est satisfiable.
15Exercice 3.21 Soit T un ensemble de formules finement satisfiable et A une formule. Alors,
soit T ∪ {A} est finement satisfiable soit T ∪ {¬A} est finement satisfiable.
Th´eor`eme 3.22 (compacit´e) Si un ensemble de formules T est finement satisfiable alors
il est satisfiable.
Idee de la preuve ´ . Soit {An | n ∈ N} une ´enum´eration de toutes les formules. On d´efinit
T0 = T et
Tn+1 =
(
Tn ∪ {An} si Tn ∪ {An} est finement satisfiable
Tn ∪ {¬An} autrement
S =
S
n∈N Tn
On d´emontre que Tn est finement satisfiable par r´ecurrence sur n en utilisant l’exercice 3.21.
On en d´erive que S est finement satisfiable car si X ⊆ S et X est fini alors ∃ n X ⊆ Tn. On
v´erifie aussi que S est maximal car pour toute formule A il existe n tel que A = An et donc
A ∈ Tn+1 ou ¬A ∈ Tn+1. Donc par l’exercice 3.20, S est satisfiable et donc T l’est aussi. •
Exercice 3.23 Soit T un ensemble de formules. On ´ecrit T |= A si pour toute affectation v,
si v satisfait T alors v satisfait A. Montrez que si T |= A alors il existe T0 sous-ensemble fini
de T tel que T0 |= A. Suggestion : utilisez le th´eor`eme de compacit´e.
3.3 M´ethode de preuve par r´esolution
Exercice 3.24 Montrez que la r`egle d’inf´erence suivante est valide :
A ∨ ¬C B ∨ C
A ∨ B
(2)
Exercice 3.25 Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste
utilis´ee pour d´ecrire la m´ethode de Davis-Putnam.
– Une clause C est un ensemble de litt´eraux.
– Une formule A est un ensemble de clauses.
Nous consid´erons une variante de la r`egle (2) :
A ∪ {C ∪ {x}} ∪ {C
0 ∪ {¬x}} x /∈ C ¬x /∈ C
0
A ∪ {C ∪ {x}} ∪ {C
0 ∪ {¬x}} ∪ {C ∪ C
0}
(3)
Dans la suite on appelle (3) r`egle de r´esolution.
2 L’effet de l’application de la r`egle consiste
`a ajouter une nouvelle clause C ∪ C
0
qu’on appelle r´esolvant des deux clauses C ∪ {x} et
C
0 ∪ {¬x}.
(1) Montrez que l’hypoth`ese est logiquement ´equivalente `a la conclusion.
(2) Conclure que si la conclusion n’est pas satisfiable alors l’hypoth`ese n’est pas satisfiable.
En particulier, si la conclusion contient la clause vide alors l’hypoth`ese n’est pas satisfiable.
2Sans les conditions x /∈ C et ¬x /∈ C
0
on pourrait par exemple ‘simplifier’ les clauses {x} et {¬x} en
{x,¬x}.
16Fait Si une formule A en CNF n’est pas satisfiable alors la r`egle de r´esolution permet de
d´eriver une formule A0 avec une clause vide. On dit que la r`egle de r´esolution est compl`ete
pour la r´efutation, c’est-`a-dire pour la d´erivation de la clause vide. La m´ethode peut ˆetre
impl´ement´ee it´erativement. A chaque it´eration on ajoute toutes les clauses qui sont un
r´esolvant de deux clauses. Cette it´eration termine forc´ement car le nombre de clauses qu’on
peut construire est fini. Parfois, il convient de repr´esenter la d´erivation comme un graphe
dirig´e acyclique (ou DAG pour directed acyclic graph) dont les noeuds sont ´etiquet´es par les
clauses. Initialement on a autant de noeuds que de clauses et pas d’arˆetes. Chaque fois qu’on
applique la r`egle de r´esolution (3) on introduit un nouveau noeud qui est ´etiquet´e avec la
clause r´esolvant C ∪ C
0
et deux nouvelles arˆetes qui vont des noeuds ´etiquet´es avec les clauses
C ∪ {x} et C
0 ∪ {¬x} vers le noeud ´etiquet´e avec la clause C ∪ C
0
.
Exercice 3.26 Construire la formule A en CNF qui correspond au principe du nid de pigeon
avec 2 pigeons et 1 nid. D´erivez la clause vide en utilisant la r`egle de r´esolution. Mˆeme
probl`eme avec 3 pigeons et 2 nids (attention le calcul risque d’ˆetre long).
Exercice 3.27 Soit A une formule en CNF avec m variables et n clauses. Montrez qu’il y a
au plus m · (n · (n − 1)/2) fa¸cons d’appliquer la r`egle de r´esolution.
Exercice 3.28 Soit A une formule en CNF et C une clause. Expliquez comment utiliser la
m´ethode de r´esolution pour ´etablir si l’implication A → C est valide.
Exercice 3.29 Un exercice de r´evision. On consid`ere les formules en CNF suivantes :
1. ¬x ∨ (¬y ∨ x)
2. (x ∨ y ∨ ¬z) ∧ (x ∨ y ∨ z) ∧ (x ∨ ¬y) ∧ ¬x.
3. (x ∨ y) ∧ (z ∨ w) ∧ (¬x ∨ ¬z) ∧ (¬y ∨ ¬w).
Pour chaque formule :
1. Si la formule est valide calculez une preuve de la formule dans le syst`eme de Gentzen.
2. Si la formule est satisfiable mais pas valide calculez une affectation qui satisfait la formule
en utilisant la m´ethode de Davis-Putnam.
3. Si la formule n’est pas satisfiable d´erivez la clause vide en utilisant la m´ethode par
r´esolution.
174 Diagrammes de d´ecision binaire et applications
Les diagrammes de d´ecision binaire (BDD pour Binary Decision Diagrams) sont une
repr´esentation des fonctions bool´eennes. Cette repr´esentation avait d´ej`a ´et´e remarqu´ee par
Lee en 1959 mais son int´erˆet algorithmique a ´et´e r´ealis´e plus r´ecemment par Bryant en 1986.
Les BDD repr´esentent une fonction bool´eenne comme un circuit compos´e de multiplexeurs
(if-then-else) et de constantes 0 et 1. Une propri´et´e importante de cette repr´esentation est
qu’´etant donn´e un ordre sur les variables, le BDD peut ˆetre r´eduit efficacement `a une forme
canonique. On parle alors de diagramme de d´ecision binaire ordonn´e et r´eduit (ROBDD
pour reduced ordered binary decision diagram). En pratique, la repr´esentation canonique est
consid´erablement plus compacte que la repr´esentation explicite dont la taille est exponentielle
dans le nombre de variables de la fonction.
Une deuxi`eme propri´et´e importante est qu’il est possible de manipuler directement les
repr´esentations canoniques pour calculer la conjonction, la disjonction, le compl´ementaire,. . .
La situation est similaire `a celle des langages r´eguliers o`u un langage peut ˆetre repr´esent´e par
un automate et les op´erations d’union, intersection, compl´ementaire sur les langages peuvent
ˆetre calcul´ees directement sur les automates. Aujourd’hui, les BDD sont courrament utilis´es
dans la synth`ese et analyse de circuits.
4.1 OBDD
Soit f : 2
n → 2 une fonction bool´eenne `a n variables x1, . . . , xn. Si b ∈ {0, 1} est une
valeur bool´eenne, on d´enote par [b/xi
]f : 2
(n−1) → 2 la fonction bool´eenne `a n − 1 variables
o`u la variable xi est remplac´ee par b. On appelle restriction cette op´eration sur les fonctions.
En utilisant la restriction, on peut exprimer une fonction `a n variables comme une combinaison
bool´eenne de fonctions `a n − 1 variables.
f = xi
[1/xi
]f + xi
[0/xi
]f
On nomme cette transformation expansion de Shannon. On remarquera que la quantification
universelle et existentielle sur une variable propositionnelle s’exprime aussi par le biais de la
restriction :
∀xi f = ([1/xi
]f)([0/xi
]f) ∃xi f = ([1/xi
]f) + ([0/xi
]f)
Cette transformation entraˆıne un doublement de la taille de la formule pour chaque quantifi-
cation.
On abr`ege l’op´erateur ternaire if then else par → , . Ainsi :
x → f, f0 = (xf) + xf0
o`u x est une variable bool´eenne. On utilise cette notation, pour reformuler l’expansion de
Shannon :
f = xi → [1/xi
]f, [0, xi
]f
On fixe un ordre sur les variables, par exemple x1 < · · · < xn. On d´efinit par r´ecurrence
l’ensemble des expressions qui d´ependent d’un sous-ensemble de variables :
– Les expressions 0 et 1 d´ependent de l’ensemble vide.
– Si les expressions e1 et e2 d´ependent de {xi+1, . . . , xn}, alors l’expression xi → e1, e2
d´epend de {xi
, xi+1, . . . , xn}.
18– Si l’expression e d´epend de X et X ⊆ X0 alors e d´epend de X0
.
A partir de la fonction f on peut it´erer l’expansion de Shannon en commen¸cant par la
variable x1 et en terminant avec les fonctions constantes 0 et 1. Ainsi on construit :
f = x1 → [1/x1]f, [0/x1]f
= x1 → (x2 → [1/x2, 1/x1]f, [0/x2, 1/x1]f),(x2 → [1/x2, 0/x1]f, [0/x2, 0/x1]f)
· · ·
= · · ·
On peut repr´esenter l’expression comme un arbre binaire complet de profondeur n − 1 o`u les
noeuds internes sont ´etiquet´es par les variables et les noeuds terminaux par 0 ou 1, et les deux
arˆetes sortantes d’un noeud interne sont ´etiquet´ees par 0 et 1. Cette repr´esentation d´epend
de l’ordre des variables et pour cette raison on parle de BDD ordonn´es (OBDD).
On remarquera que cette repr´esentation a aussi une taille O(2n
). Cependant, la repr´esentation
d’un OBDD comme un arbre binaire est souvent redondante et une repr´esentation plus
compacte est possible par partage de sous-arbres communs. Dans ce cas, le BDD est repr´esent´e
par un graphe dirig´e acyclique (DAG) connexe et avec une racine.
4.2 Simplification
Soit N un ensemble fini de noeuds et V = {x1, . . . , xn} un ensemble de variables ordonn´e
par x1 < · · · < xn. On peut repr´esenter un OBDD comme suit :
v : N → {0, 1} ∪ V (´etiquette des noeuds)
l : N → (N ∪ {↑}) (arˆete sortant ´etiquet´e par 0)
h : N → (N ∪ {↑}) (arˆete sortant ´etiquet´e par 1)
tel que :
– Le graphe r´esultat est acyclique et tous les noeuds sont accessibles `a partir d’un noeud
identifi´e comme ´etant la racine.
– Les noeuds non-terminaux sont ´etiquet´es par des variables et les noeuds terminaux sont
´etiquet´es par 0 ou 1. En d’autres termes :
v(n) ∈ V ⇒ l(n), h(n) ∈ N v(n) ∈ {0, 1} ⇒ l(n) = h(n) =↑
– L’ordre des variables est respect´e :
v(n) ∈ V and v(l(n)) ∈ V ⇒ v(n) < v(l(n))
v(n) ∈ V and v(h(n)) ∈ V ⇒ v(n) < v(h(n))
A partir d’un OBDD on applique trois r`egles de simplification :
– Soient n et n
0 deux noeuds terminaux distincts avec la mˆeme ´etiquette. Alors tous les
pointeurs `a n
0 peuvent ˆetre redirig´es sur n et n
0 peut ˆetre ´elimin´e.
– Soit n un noeud non-terminal et l(n) = h(n) = n
0
. Alors tous les pointeurs `a n peuvent
ˆetre redirig´es sur n
0
, et n peut ˆetre ´elimin´e.
– Soient n et n
0 deux noeuds non-terminaux distincts tels que v(n) = v(n
0
), l(n) = l(n
0
)
et h(n) = h(n
0
). Alors tous les pointeurs `a n
0 peuvent ˆetre redirig´es sur n et n
0 peut
ˆetre ´elimin´e.
On ´ecrit B 7→ B0
si un OBDD B est transform´e en B0 par une des r`egles de simplification.
On dit que B est un forme normale s’il ne peut pas ˆetre simplifi´e.
19Th´eor`eme 4.1 (1) Si B est un OBDD bien form´e par rapport `a un ordre donn´e et B 7→ B0
alors B0
est un OBDD bien form´e par rapport au mˆeme ordre.
(2) Toute s´equence de simplification termine.
(3) Si B 7→ B0
et B 7→ B00 alors ou bien B0 = B00 ou bien il existe B0
1
et B00
1
tels que B0
7→ B0
1
,
B00 7→ B00
1
et B0
1
et B00
1
sont ´egaux `a renommage des noeuds pr`es.
(4) Tout OBDD peut ˆetre simplifi´e en une forme normale et cette forme est unique `a renommage
des noeuds pr`es.
Exercice 4.2 Calculez le ROBDD pour la fonction f : 2
3 → 2 avec ordre x < y < z.
xyz 000 001 010 011 100 101 110 111
f(x, y, z) 0 0 0 1 0 1 0 1
Exercice 4.3 (1) Calculez le ROBDD pour la fonction (a∧b)∨(c∧d) avec ordre a < b < c.
(2) Calculez le ROBDD pour un comparateur de 2-bits ∧i=1,2(ai = bi) en utilisant les ordres
a1 < b1 < a2 < b2 et a1 < a2 < b1 < b2.
(3) G´en´eraliser `a un comparateur de n-bits et d´eterminez le nombre de noeuds dans le
ROBDD pour les ordres a1 < b1 < · · · < an < bn et a1 < · · · an < b1 < · · · < bn.
Exercice 4.4 Soit p : 2
n → 2 la fonction pour le contrˆole de parit´e, c’est-`a-dire
p(x1, . . . , xn) = (Σi=1,...,nxi) mod 2
Donnez le sch´ema et pr´ecisez le nombre de noeuds du ROBDD (BDD ordonn´e et r´eduit) qui
repr´esente la fonction p par rapport `a l’ordre x1 < · · · < xn.
Exercice 4.5 Montrez que la satisfaction et la validit´e d’une fonction bool´eenne repr´esent´ee
par un ROBDD peut ˆetre d´ecid´ee en O(1).
Exercice 4.6 On sait qu’un langage r´egulier (ou rationnel) ´eventuellement infini peut ˆetre
repr´esent´e par un graphe ´etiquet´e fini. On pourrait repr´esenter une fonction f : 2
n → 2 par
le langage :
Lf = {x1 . . . xn | f(x1, . . . , xn) = 1} ⊂ {0, 1}
∗
Comparez l’automate Mf qui reconnaˆıt le langage Lf avec le ROBDD associ´e `a la fonction
f. Est-ce-que les deux repr´esentations ont la mˆeme taille ?
4.3 Ordre des variables
L’ordre des variables a un effet important sur la taille d’un ROBDD. Par exemple,
consid´erons la fonction Σi=1,...,naibi
. Avec l’ordre a1 < b1 < · · · < an < bn la taille du
ROBDD est O(n) alors qu’avec l’ordre a1 < · · · an < b1 < · · · < bn la taille du ROBDD est
O(2n
).
Une bonne heuristique est de garder proche dans l’ordre les variables qui interagissent
dans le calcul du r´esultat. Il est int´eressant d’´etudier la meilleure et la pire repr´esentation
possible pour certaines classes de fonctions.
– Pour les fonctions sym´etriques, c’est-`a-dire pour les fonctions dont le r´esultat est invariant
par permutation de l’entr´ee, la taille du ROBBD varie entre O(n) et O(n
2
).
– Pour le bit central de la fonction d’addition sur n bits la taille varie entre O(n) et O(2n
).
20– Pour le bit central de la fonction de multiplication sur n bits la taille est toujours O(2n
).
Exercice 4.7 (1) Montrez que f : 2
n → 2 est sym´etrique si et seulement si il y a une
fonction h : {0, . . . , n} → 2 telle que f(x1, . . . , xn) = h(Σi=1,...,nxi).
(2) Conclure qu’une fonction sym´etrique a une repr´esentation comme ROBDD dont la taille
est O(n
2
).
4.4 Restriction
Etant donn´e un OBDD pour la fonction ´ f, le calcul de la restriction, par exemple [0/x]f,
consiste `a rediriger toute arˆete qui pointe au noeud n tel que v(n) = x vers l(n). Le calcul de
[1/x]f est similaire.
Exercice 4.8 Montrez que l’application de l’algorithme de restriction sur un ROBDD peut
ne pas produire un ROBDD.
4.5 Application
On d´efinit un algorithme A pour l’application qui prend l’OBDD de deux fonctions
bool´eennes f, g : 2
n → 2 et une op´eration binaire op : 2
2 → 2, et retourne un OBDD
pour la fonction (f op g) : 2
n → 2 (par rapport au mˆeme ordre).
La remarque fondamentale est que l’op´eration op commute avec l’expansion de Shannon :
f op g = x → ([1/x]f op [1/x]g),([0/x]f op [0/x]g)
L’algorithme visite les deux OBDD en profondeur d’abord. En supposant que nf et ng soient
les racines des deux OBDD, l’appel A(nf , n0
g
, op) retournera la racine de l’OBDD pour f op g.
L’algorithme r´ecursif est d´ecrit dans la table 1, o`u new est une fonction qui retourne un
nouveau noeud.
Cet algorithme peut ˆetre amen´e `a ´evaluer plusieurs fois le mˆeme couple de sous-arbres.
Pour ´eviter cela, on consid`ere une optimisation qui consiste `a garder dans un tableau de
hachage les couples de sous-arbres d´ej`a visit´es. Une deuxi`eme optimisation est d’arrˆeter les
appels r´ecursifs chaque fois qu’on arrive `a une feuille d’un des sous-arbres avec la propri´et´e
que la valeur de la feuille est suffisante pour d´eterminer le r´esultat de l’op´eration op. Enfin,
il est possible de modifier l’algorithme de fa¸con `a ce qu’il recherche `a la vol´ee une des 3
simplifications. De cette fa¸con, on peut g´en´erer directement un ROBDD `a partir de ROBDD.
Quand toutes ces optimisations sont mises en oeuvre et ´etant donn´e un tableau d’hachage
qui garantit un temps d’acc`es constant en moyenne, il est possible de montrer que la
complexit´e de l’op´eration d’application est de l’ordre du produit de la taille des OBDD qui
repr´esentent f et g. En gros, une op´eration logique peut au plus ´elever au carr´e la taille de la
repr´esentation. Bryant appelle cela une propri´et´e de d´egradation gracieuse (bien sˆur l’it´eration
d’un carr´e donne un exponentiel !)
Exercice 4.9 On consid`ere la fonction bool´eenne f : 2
2n → 2 telle que
f(xn−1, . . . , x0, yn−1, . . . , y0) = 1 ssi (xn−1 · · · x0)2 ≤ (yn−1 · · · y0)2
o`u (zn−1 · · · z0)2 est la valeur en base 2 de la suite zn−1 · · · z0. On ordonne les variables de la
fa¸con suivante :
xn−1 < yn−1 < · · · < x0 < y0
21A(n, n0
, op) = case
v(n) = v(n
0
) ∈ V : n
00 := new; v(n
00) := v(n);
l(n
00) := A(l(n), l(n
0
), op); h(n
00) := A(h(n), h(n
0
), op); n
00
v(n) et (iv) les noeuds
qui correspondent aux ´etats finaux ont un double contour.
Dans la suite, on proc`ede en trois ´etapes :
1. On d´efinit la notion de configuration d’un automate.
2. On d´ecrit comment un automate peut se d´eplacer d’une configuration `a une autre.
3. On sp´ecifie quels mots sont accept´es par l’automate.
Une m´ethodologie similaire est utilis´ee dans la suite pour un type d’automate plus g´en´eral
qu’on appelle Machine de Turing.
D´efinition 5.2 Soit M = (Σ, Q, qo, F, δ) un AFD. Une configuration est un couple (w, q) ∈
Σ
∗ × Q. On d´efinit une relation de r´eduction `M par (aw, q) `M (w, δ(a, q)) et on suppose
que `
∗
M est la clˆoture r´eflexive et transitive de `M. Le langage L(M) reconnu (ou accept´e)
par M est d´efini par :
L(M) = {w ∈ Σ
∗
| (w, qo) `
∗
M (, q) and q ∈ F} .
Exemple 5.3 Soit M = ({a, b}, {1, 2}, 1, {2}, δ) avec fonction de transition δ sp´ecifi´ee comme
suit :
Etat ´ Entr´ee
a b
1 1 2
2 1 2
Il n’est pas difficile de montrer que L(M) est l’ensemble des mots qui terminent par b.
Remarque 5.4 Dans la d´efinition de AFD on insiste pour que pour chaque ´etat q et pour
chaque caract`ere a de l’alphabet il y ait exactement une arˆete sortante de q avec ´etiquette a.
En pratique, on peut relˆacher cette condition et demander juste qu’il y ait au plus une arˆete
sortante de q avec ´etiquette a. Un tel automate peut ˆetre transform´e facilement en un AFD
en introduisant un ´etat ‘puits’ qs et en ´etendant la fonction de transition δ de fa¸con telle que
δ(a, qs) = qs pour tout a ∈ Σ et δ(a, q) = qs chaque fois que δ(a, q) n’est pas d´efini.
Remarque 5.5 (minimisation) Il est facile de construire diff´erents AFD qui acceptent le
mˆeme langage. Cependant on peut montrer que parmi ces automates il y en a un qui a un
nombre minimum d’´etats. De plus cet automate est unique `a renommage des ´etats pr`es.
255.3 Automates non-d´eterministes
Nous consid´erons trois extensions de la notion d’AFD qui nous m`enent `a la notion d’automate
fini non-d´eterministe (AFN).
1. On permet de lire plus qu’un caract`ere dans un pas de calcul.
2. On permet de ne pas lire un caract`ere (-transition).
3. Pour un noeud donn´e, on autorise deux ou plus arˆetes sortantes ´etiquet´ees avec le mˆeme
mot.
D´efinition 5.6 (AFN) Un automate fini non-d´eterministe (AFN) N est un vecteur (Σ, Q,
qo, F, δ) o`u Σ est un alphabet, Q est un ensemble fini d’´etats, qo est l’´etat initial, F ⊆ Q est
l’ensemble des ´etats finaux et δ : Q × Σ
∗ → 2
Q est une fonction de transition qui s’´evalue
dans l’ensemble vide presque partout.
Une configuration pour un AFN est un couple (w, q) ∈ Σ
∗ × Q. La relation de r´eduction
`N est d´efinie par :
(w, q) `N (w
0
, q0
) si w = w
00w
0
et q
0 ∈ δ(w
00, q)
et le langage reconnu L(N) est d´efini par
L(N) = {w ∈ Σ
∗
| (w, qo) `
∗
N (, q) et q ∈ F} .
Dans un AFD, ´etant donn´e un mot w on trouve un chemin de calcul unique qui va de (w, qo)
`a (, q), pour un certain q. Par opposition, dans un AFN on peut avoir plusieurs chemins, et
le w est accept´e si au moins un chemin m`ene `a un ´etat final. Un probl`eme fondamental est de
comprendre si et dans quel mesure le calcul non-d´eterministe est plus puissant que le calcul
d´eterministe.
Th´eor`eme 5.7 (d´eterminisation) Pour tout AFN on peut construire un AFD qui accepte
le mˆeme langage.
Proof hint. (1) Si un automate peux ex´ecuter le pas de calcul (a1 · · · an, q) ` (, q0
) avec
n ≥ 2 alors on introduit n−1 nouveaux ´etats non-finaux q1, . . . , qn−1 et on red´efinit la fonction
de transition pour que :
(a1 · · · an, q) ` (a2 · · · an, q1) ` · · · ` (an, qn−1) ` (, q0
) .
(2) On peut donc supposer que dans une transition un automate N = (Σ, Q, qo, F, δ) lit
au plus un caract`ere et que la fonction de transition a le type δ : (Σ ∪ {}) × Q → 2
Q.
Maintenant, l’id´ee est d’´eliminer les -transitions, en ajoutant une transition ´etiquet´ee par a
de q `a q1, chaque fois qu’il y a un chemin de q `a q1 dont toutes les arˆetes sont ´etiquet´ees par
sauf une qui est ´etiquet´ee par a.
Formellement, on introduit une notion de -clˆoture d’un ´etat q comme suit :
E(q) = {q
0
| (, q) `
∗
(, q0
)} .
Ensuite on construit un nouveau automate N0 = (Σ, Q, qo, F0
, δ0
) o`u F
0 = {q ∈ Q | E(q)∩F 6=
∅} et δ
0
: Σ × Q → 2
Q est d´efinie par
δ
0
(a, q) = [
q
0∈E(q)
{E(q
00) | q
00 ∈ δ(a, q0
)} .
26Dans d’autres termes, (a, q) `N0 (, q1) ssi
(a, q) `
∗
N (a, q0
) `N (, q00) `
∗
N (, q1) .
(3) On peut supposer que l’automate N a une fonction de transition δ avec le type suivant
δ : Σ × Q → 2
Q. Supposons que de l’´etat q, en lisant a, l’automate peut aller ou bien dans q1
ou bien dans q2, c.-a.-d., δ(a, q) = {q1, q2}. Pour simuler ce comportement non-d´eterministe
avec un AFD M on dit que M plac´e dans l’´etat q, en lisant a, peut aller dans un ‘nouveau
´etat’ {q1, q2} qui est capable de ‘simuler’ le comportement `a la fois de q1 et q2.
Formellement, on construit un AFD M = (Σ, 2
Q, {qo}, FM, δM) dont les ´etats sont des
sous-ensembles de l’ensemble des ´etats de N et tel que :
FM = {X ⊆ Q | X ∩ F 6= ∅}
δM(a, X) = S
q∈X δ(a, q) .
•
Exemple 5.8 Consid´erons l’AFN N = ({a, b}, {1, 2, 3}, 1, {2}, δ) avec
δ(, 1) = {2} δ(bb, 1) = {3} δ(a, 2) = {2} δ(, 3) = {1} δ(a, 3) = {3} .
On ´elimine la transition ´etiquet´ee par bb en introduisant un ´etat auxiliaire, ensuite on ´elimine
les -transitions, et enfin on d´eterminise l’automate.
Remarque 5.9 (coˆut) Il y a des AFN tels que chaque AFD ´equivalent a un nombre d’´etats
qui est exponentiel dans le nombre d’´etats de l’AFN.
Remarque 5.10 (langages r´eguliers) On dit qu’un langage accept´e par un automate fini
est r´egulier (ou rationnel). La classe des langages r´eguliers a une th´eorie tr`es riche qui sera
l’objet d’un cours au deuxi`eme semestre.
Exercice 5.11 Montrez que pour tout langage L, L
∗ = (L
∗
)
∗
.
Exercice 5.12 Montrez qu’il existe des langages L1 et L2 tels que (L1 ∪ L2)
∗ 6= L
∗
1 ∪ L
∗
2
.
Exercice 5.13 Montrez qu’il existe des langages L1 et L2 tels que (L1 · L2)
∗ 6= L
∗
1
· L
∗
2
.
Exercice 5.14 Consid´erons l’automate fini M = (Q, Σ, δ, q0, F), o`u Q = {q0, q1, q2, q3}, Σ =
{0, 1}, F = {q0} et la fonction δ est d´efinie par le tableau suivant :
Etat ´ Entr´ee
0 1
q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2
V´erifiez si les chaˆınes 1011010 et 101011 sont accept´ees par M. Prouvez que L(M) est l’ensemble
des mots compos´es d’un nombre pair de 0 et d’un nombre pair de 1.
27Exercice 5.15 Pour chacun des langages suivants, construire un automate fini non d´eterministe
qui l’accepte :
1. Les repr´esentations binaires des nombres pairs.
2. Les repr´esentations d´ecimales des multiples de 3.
3. Le langage des mots sur l’alphabet {a, b} contenant ou bien la chaˆıne aab ou bien la
chaˆıne aaab.
4. Le langage des mots sur l’alphabet {0, 1} dont le troisi`eme caract`ere de droite existe et
est ´egale `a 1.
Construire des automates d´eterministes pour les langages d´ecrits ci-dessus.
Exercice 5.16 Soient M un AFD qui accepte un langage L et N1, N2 deux AFN qui acceptent
les langages L1, L2, respectivement (sur un alphabet Σ fix´e).
1. Montrez qu’on peut construire un AFD qui accepte le langage compl´ementaire Σ
∗\L.
2. Montrez qu’on peut construire un AFN qui accepte le langage L1 ∪L2 et le langage it´er´e
(L1)
∗
.
3. Conclure que la classe des langages accept´es par un AFD est stable par union, intersection,
compl´ementaire et it´eration.
Exercice 5.17 Soit l’automate fini non-d´eterministe M = (Q, Σ, δ, q0, F), o`u Q = {q0, q1, q2},
Σ = {0, 1, 2}, F = {q0, q2}, et la fonction de transition δ est d´efinie par le tableau suivant :
Etat ´ Entr´ee
0 1 2
q0 {q0, q1, q2} {q1, q2} {q2}
q1 ∅ {q1, q2} {q2}
q2 ∅ ∅ {q2}
Transformez cet automate en automate fini d´eterministe.
Exercice 5.18 Transformez l’automate M = (Q, Σ, δ, q0, F) suivant en automate fini d´eterministe.
On suppose que Q = {q0, q1, q2}, Σ = {0, 1, 2}, F = {q2}, et la fonction de transition δ est
d´efinie par le tableau suivant :
Etat ´ Entr´ee
0 1 2
q0 {q0} {q1} ∅ {q2}
q1 ∅ {q1} ∅ {q2}
q2 ∅ ∅ {q2} ∅
286 Calculabilit´e
Certains probl`emes calculatoires demandent une m´emoire qui est fonction de la taille de
l’entr´ee (par exemple le tri d’une liste d’´el´ements ou la multiplication de deux matrices). De
tels probl`emes ne peuvent pas ˆetre r´esolus par des automates finis dont la m´emoire est born´ee
a priori. On consid`ere le probl`eme de formaliser un mod`ele de calcul suffisamment g´en´eral
pour calculer tout ce qu’un ‘ordinateur’ pourrait calculer en disposant d’une quantit´e illimit´ee
de temps et de m´emoire. Plusieurs mod`eles ´equivalents ont ´et´e propos´es `a partir des ann´ees
’30. On base la pr´esentation sur les machines de Turing (MdT) qui peuvent ˆetre vues comme
une simple g´en´eralisation des automates finis.
6.1 Machines de Turing
Un automate fini dispose d’un contrˆole fini et d’un ruban sur lequel il peut d´eplacer sa
tˆete de lecture de gauche `a droite. Une machine de Turing a en plus la possibilit´e d’´ecrire sur
le ruban et de d´eplacer la tˆete de lecture de droite `a gauche.
D´efinition 6.1 Une machine de Turing (d´eterministe) M est un vecteur M = (Q, Σ, Γ,t,
q0, qa, qr, δ) o`u :
– Q est un ensemble fini d’´etats.
– Σ est l’alphabet d’entr´ee.
– Γ est l’alphabet du ruban.
– t ∈ Γ\Σ est un symbole sp´ecial,
– q0, qa, qr ∈ Q sont des ´etats. En particulier q0 est l’´etat initial et qa, qr sont deux ´etats
finaux distincts qui entraˆınent l’arrˆet du calcul.
– δ : Q × Γ → Q × Γ × {L, R} est la fonction (d´eterministe) de transition o`u L pour left
et R pour right sont deux symboles.
Une configuration de la machine M est un mot wqw0 o`u w, w0 ∈ Γ
∗
et q ∈ Q. Une configuration
initiale est un mot q0w o`u w ∈ Σ
∗
repr´esente l’entr´ee de la machine.
Une MdT calcule sur un ruban dont la taille n’est pas born´ee `a droite. Soit t
ω
le mot
infini t t t · · · Une configuration wqw0 d´ecrit : (i) le contenu du ruban qui est ww0t
ω
, (ii)
l’´etat q de la machine et (iii) la position de la tˆete de lecture qui lit le premier caract`ere du
mot w
0t
ω
.
4
Un pas de calcul est d´ecrit par la fonction δ. En fonction de l’´etat courant et du symbole
en lecture, la machine se d´eplace dans un nouvel ´etat, ´ecrit un symbole `a la place du symbole
lu et d´eplace la tˆete de lecture `a gauche ou `a droite. Le d´eplacement de la tˆete de lecture `a
gauche est impossible si le mot w de la configuration courante est vide. Dans ce cas la tˆete
de lecture reste sur place.
4Remarquez que les configurations wqw0
, wqw0t, wqw0 t t, · · · sont ´equivalentes dans le sens qu’elles
d´ecrivent la mˆeme situation.
29Pour formaliser ces id´ees, on d´efinit une relation binaire `M. En supposant que q /∈ {qa, qr},
la relation `M est la plus petite relation sur les configurations qui satisfait :
wqaw0 `M wbq0w
0
si δ(q, a) = (q
0
, b, R)
wq `M wbq0
si δ(q, t) = (q
0
, b, R)
wcqaw0 `M wq0
cbw0
si δ(q, a) = (q
0
, b, L)
qaw0 `M q
0
bw0
si δ(q, a) = (q
0
, b, L)
wcq `M wq0
cb si δ(q, t) = (q
0
, b, L)
q `M q
0
b si δ(q, t) = (q
0
, b, L)
On remarque que, la fonction δ ´etant totale, le calcul de M s’arrˆete si et seulement si la
machine arrive `a un ´etat final.
Exercice 6.2 Examinez la d´efinition de machine de Turing et r´epondez aux questions suivantes
:
1. Une MdT peut-elle ´ecrire le symbole t sur le ruban ?
2. L’alphabet d’entr´ee et du ruban peuvent-ils ˆetre ´egaux ?
3. La tˆete de lecture peut-elle rester au mˆeme endroit pendant deux ´etapes cons´ecutives ?
4. Une MdT peut-elle contenir un seul ´etat ?
Un automate fini peut accepter ou refuser un mot, une MdT peut aussi boucler. Dans
la d´efinition de langage accept´e par une MdT il faut prendre en compte cette troisi`eme
possibilit´e.
D´efinition 6.3 (1) Un ensemble L ⊆ Σ
∗
est semi-d´ecidable s’il existe une MdT M telle que
L = {w | q0w `
∗
M w
0
qaw
00}. Dans ce cas on dit que M semi-d´ecide (ou accepte) L.
(2) Un ensemble L est d´ecidable s’il existe une MdT M dont le calcul termine toujours et
qui semi-d´ecide L. Dans ce cas on dit que M d´ecide L.
Exemple 6.4 On construit une MdT qui d´ecide {a
n
b
m | n, m ≥ 0}. On a Σ = {a, b},
Γ = Σ∪ {t} et Q = {q0, qa, qr, q1}. On remarque qu’il est inutile de sp´ecifier le comportement
de la fonction δ sur les ´etats qa et qr car par d´efinition la MdT s’arrˆete quand elle arrive
`a ces ´etats. Par ailleurs, il est aussi inutile de sp´ecifier le caract`ere ´ecrit et le d´eplacement
effectu´e par la tˆete de lecture pour toute transition qui va dans les ´etats finaux. En effet, pour
les probl`emes de d´ecision on s’int´eresse seulement `a l’´etat final et on ignore le contenu du
ruban et la position de la tˆete de lecture. Enfin, on peut interpr´eter l’absence de sp´ecification
comme une transition dans l’´etat qr. Avec ces conventions, on peut d´ecrire le comportement
de la fonction δ par le tableau :
a b t
q0 q0, a, R q1, b, R qa, ,
q1 q1, b, R qa, ,
Comme dans les automates finis, on peut introduire une notation graphique. Par exemple, on
´ecrira :
q
a/b,L → q
0
30pour signifier que la MdT dans l’´etat q et en lisant a, ´ecrit b, se d´eplace `a gauche (L) et va
dans l’´etat q
0
.
On remarquera que dans ce cas notre MdT se comporte comme un automate fini : elle se
d´eplace seulement `a droite et elle ne modifie pas le contenu du ruban.
Exemple 6.5 On construit une MdT qui d´ecide {a
n
b
n
| n ≥ 0}. On a Σ = {a, b}, Γ =
Σ ∪ {X, Y,t} et Q = {q0, qa, qr, q1, q2, q3, q4}. La fonction δ est sp´ecifi´ee comme suit :
a b X Y t
q0 q1, X, R qa, ,
q1 q1, a, R q2, Y, L q1, Y, R
q2 q2, a, L q3, X, R q2, Y, L
q3 q1, X, R q4, Y, R
q4 q4, Y, R qa, ,
Exemple 6.6 Soit Σ = {0, 1, ]} et L = {w]w | w ∈ {0, 1}
∗}. On peut construire une MdT qui
d´ecide L en prenant Γ = Σ ∪ {t, X}. La machine lit le premier caract`ere b de w, le remplace
par X, puis d´eplace sa tˆete de lecture `a droite pour v´erifier que le premier symbole `a droite
de ] est b, le remplace par X, puis revient `a gauche du ] et ainsi de suite. Un observateur qui
regarderait le contenu du ruban verrait par exemple :
01]01t
ω X1]01 t
ω
· · · X1]X1 t
ω
· · · XX]X1 t
ω
· · · XX]XXt
ω
Exercice 6.7 Donnez la description formelle d’une MdT qui d´ecide le langage {w]w | w ∈
{0, 1}
∗}.
Exercice 6.8 (programmation MdT) Pr´esentez le graphe de transition d’une MdT M
d´eterministe avec alphabet d’entr´ee Γ = {0, 1,(0, 0),(0, 1),(1, 0),(1, 1)} qui a la propri´et´e suivante
: `a partir de la configuration initiale q0(xn−1, yn−1)· · ·(x0, y0), M va parcourir l’entr´ee
de gauche `a droite et la remplacer par zn−1 · · · z0 o`u (zn−1 · · · z0)2 = max{(xn−1 · · · x0)2,
(yn−1 · · · y0)2} et s’arreter dans un ´etat accepteur qa. En d’autres termes, M doit calculer le
maximum des entr´ees.
Exercice 6.9 On se propose de programmer une Machine de Turing avec alphabet d’entr´ee
Σ = {0, 1, ]} qui a la propri´et´e suivante : `a partir d’une configuration initiale q0]w o`u w est
un mot fini compos´e de 0 et 1 la machine s’arrˆete dans un ´etat accepteur qa avec un ruban
qui contient le mot ]]w. En d’autres termes, la fonction de la machine est de d´ecaler d’une
case vers la droite le mot w en ins´erant le symbole ] dans la case qui est ainsi lib´er´ee.
1. Donnez la repr´esentation graphique d’une Machine de Turing qui impl´emente la fonction
de d´ecalage d´ecrite ci-dessus.
Suggestion Il est possible de programmer cette tˆache avec une MdT dont la tˆete de lecture se d´eplace
toujours `a droite.
2. Tracez le calcul de la machine de la configuration initiale q0]10 `a la configuration finale.
Exercice 6.10 Donnez la description formelle d’une MdT qui d´ecide le langage des mots sur
l’alphabet {0} dont la longueur est une puissance de 2 : 2
0
, 2
1
, 2
2
, . . .
31Exercice 6.11 D´ecrivez informellement une MdT qui d´ecide le langage :
{a
i
b
j
c
k
| i · j = k et i, j, k ≥ 1} .
Si un calcul termine on peut aussi voir le ‘contenu du ruban’ comme le r´esultat du calcul.
Plus pr´ecis´ement on consid`ere comme ‘r´esultat du calcul’ la concat´enation de tous les symboles
dans l’alphabet d’entr´ee qui sont sur le ruban `a la fin du calcul. Par exemple, si le ruban a
la forme ta t tbat
ω
et a, b sont des symboles de l’alphabet d’entr´ee, le r´esultat du calcul est
aba. On ´ecrit M(w) ↓ si la MdT M avec entr´ee w termine et M(w) = w
0
si M(w) ↓ avec
r´esultat w
0
.
D´efinition 6.12 (1) Une fonction partielle f : Σ∗ * Σ
∗
est une fonction partielle r´ecursive
s’il existe une MdT M avec alphabet d’entr´ee Σ telle que f(w) = w
0
si et seulement si
M(w) = w
0
.
(2) Une fonction r´ecursive est une fonction partielle r´ecursive totale, c’est-`a-dire qui est
d´efinie sur chaque entr´ee.
Exercice 6.13 Soit Σ = {0, 1} et suc : Σ∗ → Σ
∗
la fonction ‘successeur’ en base 2 telle que :
(suc(w))2 = (w)2 + 1
Montrez que suc est r´ecursive.
6.2 Enum´erations ´
Une vari´et´e de structures finies comme arbres, graphes, polynˆomes, grammaires, MdT,. . .
peuvent ˆetre cod´ees comme mots finis d’un alphabet fini.
Exemple 6.14 (probl`emes et langages) Un graphe dirig´e fini est un couple (N, A) o`u N
est un ensemble fini de noeuds et A ⊆ N × N est un ensemble d’arˆetes. Deux graphes dirig´es
(N, A) et (N0
, A0
) sont isomorphes s’il existe une bijection f : N → N0
telle que (n, n0
) ∈ A
ssi (f(n), f(n
0
)) ∈ A0
. Notre objectif est de fixer un alphabet fini Σ et de repr´esenter les
graphes dirig´es comme un langage sur cet alphabet fini. Plus pr´ecis´ement on va repr´esenter les
graphes dirig´es `a ‘isomorphisme pr`es’. Ceci est justifi´e par le fait qu’en g´en´eral on s’int´eresse
aux propri´et´es des graphes qui sont invariantes par isomorphisme (connectivit´e, diam`etre,
isomorphisme,. . .). On suppose que l’ensemble des noeuds N est un segment initial des nombres
naturels cod´es en binaire, par exemple N = 0, 1, 10, 11. En cons´equence, A est maintenant un
ensemble de couples de nombres naturels cod´es en binaire. On peut ajouter un symbole ] qui
agit comme un s´eparateur. Maintenant le graphe ({0, 1, 2, 3}, {(2, 0),(1, 3),(2, 3)}) peut ˆetre
repr´esent´e par le mot fini sur l’alphabet Σ = {0, 1, ]} :
]0]1]10]11]]10]0]1]11]10]11]
Par le biais de ce codage, on peut consid´erer `a isomorphisme pr`es l’ensemble des graphes
dirig´es comme un certain langage de mots finis sur un alphabet fini. Si G est un graphe
dirig´e, on d´enote par hGi son codage. Supposons maintenant qu’on s’int´eresse au probl`eme
de savoir si deux graphes dirig´es sont isomorphes.5 On peut reformuler ce probl`eme comme
le probl`eme de la reconnaissance du langage :
L = {hGi]]]hG
0
i | G et G
0
sont isomorphes}
5Notez qu’on peut avoir plusieurs codages qui repr´esentent le mˆeme graphe `a isomorphisme pr`es.
32Exemple 6.15 (fixer un alphabet) On applique maintenant la mˆeme m´ethode aux MdT.
Une MdT est un programme. Il est clair que le ‘nom’ des ´etats n’affecte pas le comportement
d’une MdT. Ainsi on peut supposer que les ´etats sont cod´es, par exemple, en binaire.
Consid´erons maintenant l’ensemble Γ. Il est possible de simuler le comportement d’une MdT
M qui utilise un alphabet Γ avec une autre MdT M0
qui utilise seulement un alphabet {0, 1,t}.
Si Γ a n ´el´ements on code chaque ´el´ement de Γ par une suite binaire de longueur k = dlg ne.
Pour simuler un pas de calcul de M, M0 doit : (i) lire k symboles cons´ecutifs et en fonction
de ces k symboles et de l’´etat courant (ii) ´ecrire k symboles et (iii) d´eplacer la tˆete de lecture
de k symboles `a droite ou `a gauche. Donc, `a un codage pr`es, le comportement de toute MdT
qui op`ere sur un alphabet arbitraire peut ˆetre simul´e par une MdT qui op`ere sur un alphabet
fini qui est fix´e une fois pour toutes.
Exemple 6.16 (´enum´eration de MdT) On s’int´eresse maintenant `a la repr´esentation comme
mots finis des MdT sur un alphabet donn´e. On peut fixer un codage pour le symbole t, pour
les ´etats q0, qa, qr et pour les symboles L, R. Ensuite, la fonction δ peut ˆetre repr´esent´ee en listant
son graphe (on peut ´eventuellement ajouter un symbole sp´ecial pour s´eparer les diff´erents
´el´ements de la liste comme on l’a fait dans le cas des graphes). En proc´edant de la sorte
toute MdT est repr´esent´ee par un mot fini sur un alphabet fini. Soit MdT(Σ) ⊆ Σ
∗
l’ensemble
des codages de MdT sur l’alphabet Σ choisi. Les mots qui composent cet ensemble doivent
repr´esenter comme une liste la fonction δ d’une MdT. Il est donc d´ecidable de savoir si un
mot appartient `a MdT(Σ). Par ailleurs, on peut d´efinir une fonction r´ecursive et surjective
ϕ : Σ∗ → MdT(Σ). Soit w0 le codage d’une MdT. La fonction ϕ est d´efinie par :
ϕ(w) = (
w si w code une MdT
w0 autrement
Mots ou nombres ? On a ´etudi´e la calculabilit´e de langages de mots finis. Une autre
possibilit´e aurait ´et´e de consid´erer la calculabilit´e de sous-ensembles de nombres naturels. La
th´eorie n’est pas vraiment affect´ee par ce choix car les mots finis peuvent ˆetre cod´es par des
nombres naturels et le codage est effectivement calculable comme on va le montrer dans les
exercices qui suivent.
Exercice 6.17 On peut ´enum´erer les couples de nombres naturels en proc´edant ‘par diagonales’
:
(0, 0), (1, 0),(0, 1), (2, 0),(1, 1),(0, 2), (3, 0). . .
Montrez que la fonction hm, ni = (m + n)(m + n + 1)/2 + n est une bijection entre N × N et
N. D´ecrire un algorithme pour calculer la fonction inverse.
Exercice 6.18 On d´efinit les fonctions h ik : Nk → N pour k ≥ 2 :
hm, ni2 = hm, ni
hn1, . . . , nkik = hhn1, . . . , nk−1ik−1, nki si k ≥ 3
Montrez que les fonctions h ik sont des bijections.
Exercice 6.19 On consid`ere l’ensemble N∗ des mots finis de nombres naturels. Notez que
N∗
est en correspondance bijective avec S
k≥0 Nk
. D´efinissez une bijection entre N∗
et N.
33Exercice 6.20 Soit Σ = {a, b, . . . , z} un alphabet fini. On peut ´enum´erer les ´el´ements de Σ
∗
comme suit :
, a, b, . . . , z, aa, . . . , az, ba, . . . , bz, za, . . . , zz, aaa, . . .
Si Σ contient k ´el´ements on aura k
0 mots de longueur 0, k mots de longueur 1, k
2 mots de
longueur 2, . . . D´efinissez une bijection entre Σ
∗
et N.
MdT universelle Un corollaire de ces exercices est qu’il y a une bijection h , i : Σ∗×Σ
∗ →
Σ. Par le biais de cette bijection, une MdT peut interpr´eter tout mot w comme un couple de
mots hw1, w2i. Par ailleurs, par le biais de la fonction ϕ une MdT peut interpr´eter tout mot
comme le codage d’une MdT.
On peut alors construire une MdT U qu’on appelle MdT universelle telle que
U(hw1, w2i) = ϕ(w1)(w2)
La machine U –dont on omet les d´etails de construction– re¸coit un mot w qui est interpr´et´e
comme un couple de mots w1, w2. Ensuite le mot w2 est interpr´et´e comme l’entr´ee de la MdT
d´ecrite par le premier mot w1. La MdT U simule la MdT ϕ(w1) sur l’entr´ee w2. Ainsi, la
machine U se comporte comme un interpr`ete qui re¸coit en argument un programme et une
entr´ee et calcule le r´esultat du programme sur l’entr´ee.
Exercice 6.21 (1) Montrez qu’un langage est semi-d´ecidable si et seulement si il est le
domaine de d´efinition d’une fonction partielle r´ecursive.
(2) On dit qu’un langage L ⊆ Σ
∗
est r´ecursivement ´enum´erable s’il est l’image d’une fonction
partielle r´ecursive. Montrez qu’un langage L est r´ecursivement ´enum´erable si et seulement si
il est semi-d´ecidable.
Suggestion : Soit M une MdT et w0, w1, w2, . . . une suite d’entr´ees. On peut simuler M
sur w0 pour 0 pas, sur w0 pour 1 pas, sur w1 pour 0 pas, sur w0 pour 2 pas, sur w1 pour 1
pas, sur w2 pour 0 pas,. . .
Exercice 6.22 (1) Rappel : tout nombre naturel n ≥ 2 admet une d´ecomposition unique
comme produit p
n1
1
· · · p
nk
k
o`u k ≥ 1, p1 < · · · < pk sont des nombres premiers et n1, . . . , nk ≥
1. En utilisant ce fait, d´efinissez une fonction surjective de N dans les parties finies de N.
(2) On ne peut pas g´en´eraliser aux parties de N ! Supposez une ´enum´eration e : N → 2
N.
Consid´erez X = {n | n /∈ e(n)}. Comme e est surjective, il existe nX tel que e(nX) = X et
soit nX ∈ X soit nX ∈/ X. Montrez que dans les deux cas on arrive `a une contradiction.
(3) On dit qu’un ensemble X est d´enombrable s’il y a une fonction bijective entre X et les
nombres naturels N.
(3.1) Montrez que l’ensemble des langages sur un alphabet Σ n’est pas d´enombrable.
(3.2) Conclure qu’il y a des langages qui ne sont pas semi-d´ecidables.
On r´esume ces consid´erations comme suit :
– Un probl`eme algorithmique peut ˆetre (souvent) reformul´e comme un probl`eme de reconnaissance
d’un langage.
– Sans perte de g´en´eralit´e, nous pouvons limiter notre attention aux MdT qui op`erent sur
un alphabet Γ fix´e une fois pour toutes.
34– On peut coder une MdT comme un mot fini et on peut ´enum´erer tous les codages de
MdT sur un alphabet donn´e.
– A un codage pr`es, il y a autant de MdT que de nombres naturels alors que l’ensemble
des langages a la cardinalit´e des parties de nombres naturels. Il doit donc y avoir des
langages qui ne sont pas d´ecidables.
– On peut s’int´eresser de fa¸con ´equivalente `a la calculabilit´e de langages de mots finis,
d’ensembles de couples de mots finis, d’ensembles de nombres naturels,. . .
– On peut construire une MdT universelle qui re¸coit en entr´ee le codage d’une MdT M
et une entr´ee w et simule le calcul de M sur w.
6.3 Temps de calcul
Un pas de calcul d’une MdT est une op´eration ´el´ementaire qui demande un effort de
calcul born´e : il s’agit de consulter un tableau fini, d’´ecrire un symbole et de d´eplacer d’une
position la tˆete de lecture. Il semble donc raisonnable de mesurer le temps de calcul d’une
MdT simplement comme le nombre de pas de calcul n´ecessaires pour arriver `a un ´etat final.
D´efinition 6.23 Soit M une MdT qui termine sur toute entr´ee. La complexit´e en temps de
M est une fonction t : N → N o`u t(n) est le nombre maximal de pas de calcul n´ecessaires `a
la machine pour terminer sur une entr´ee de taille n (la taille d’un mot est sa longueur).
Souvent on s’int´eresse seulement `a l’ordre de grandeur de la complexit´e.
D´efinition 6.24 Soient f, g : N → N deux fonctions sur les nombres naturels. On dit que f
est O(g) s’ils existent n0, c ∈ N tels que pour tout n ≥ n0, f(n) ≤ cg(n).
En d’autres termes, f est O(g) si presque partout f est domin´ee par g `a une constante
multiplicative pr`es.
Exercice 6.25 Montrez que : 6n
3 + 2n
2 + 20n + 45 est O(n
3
).
Il est int´eressant d’analyser comment la notation O interagit avec le logarithme et l’exposant.
Une premi`ere remarque est qu’on peut n´egliger la base du logarithme et prendre
toujours le logarithme en base 2. En effet, logbn = log2n/log2
b. En ce qui concerne l’exposant,
on remarquera que la fonction 3n n’est pas O(2n
). Cependant elle est O(2(cn)
) en prenant par
exemple c = 2. Pour cette raison, on introduit la notation 2O(f)
. Par exemple, la notation
2
O(n)
indique une fonction 2cn pour une constante c. Ainsi 745n
est 2O(n)
. Notez cependant
que 2n
2
n’est pas 2O(n)
.
D´efinition 6.26 Soit g : N → N une fonction sur les nombres naturels et M une MdT. On
dit que M est O(g) si la complexit´e en temps t de M est O(g).
Par exemple, dire qu’une machine M est O(n) veut dire qu’ils existent n0, c ∈ N tels que
pour toute entr´ee w de taille n ≥ n0 le temps de calcul de M sur l’entr´ee w est au plus cn.
Exercice 6.27 Montrez qu’il y a une MdT M qui d´ecide le langage L = {w]w | w ∈ {0, 1}
∗}
qui est O(n
2
).
356.4 Variantes de MdT
Plusieurs variantes de MdT ont ´et´e consid´er´ees. Ces variantes n’affectent pas la notion de
langage semi-d´ecidable ou d´ecidable mais peuvent changer de fa¸con significative la complexit´e
du calcul.
Machines multi-rubans Une MdT multi-rubans est une MdT qui dispose d’un nombre
fini k de rubans. Sa d´efinition formelle suit celle d’une MdT standard modulo le fait que le
type de la fonction de transition δ est maintenant
δ : Q × Γ
k → Q × Γ
k × {L, R, S}
k
Un pas de calcul se d´eroule de la fa¸con suivante : en fonction de l’´etat courant et des symboles
lus sur les k rubans, la machine va dans un autre ´etat, remplace les symboles lus par d’autres
symboles et d´eplace les tˆetes de lecture. Avec la directive S pour stay on a la possibilit´e de
garder une tˆete de lecture `a la mˆeme place.
Proposition 6.28 Soit M une MdT multi-rubans. On peut construire une MdT standard M0
qui simule M. Si la complexit´e de M est t(n) ≥ n la complexit´e de M0
est O(t(n)
2
).
Idee de la preuve ´ . Supposons que la MdT M dispose de 3 rubans dont le contenu est
0101t
ω
, aabt
ω
et bat
ω
et dont les tˆetes de lecture sont en deuxi`eme, troisi`eme et premi`ere
position respectivement. La MdT M0 m´emorise les trois rubans sur un seul ruban de la fa¸con
suivante :
]0101]aab]ba]t
ω
On notera que M0 dispose d’un nouveau symbole ] pour s´eparer les rubans et que pour chaque
symbole a de M on introduit un nouveau symbole a. Le symbole soulign´e indique la position
de la tˆete de lecture.
Un pas de calcul de M est simul´e de la fa¸con suivante :
– M0
commence par parcourir son ruban de gauche `a droite pour calculer les symboles en
lecture et d´eterminer les actions `a effectuer.
– Ensuite, M0
effectue un deuxi`eme passage dans lequel elle remplace le symbole en lecture
(les symboles soulign´es) par des nouveaux symboles et ´eventuellement d´eplace la tˆete
de lecture (c’est-`a-dire, remplace un symbole par un symbole soulign´e).
– Si le symbole soulign´e pr´ec`ede le symbole ] et le calcul pr´evoit un d´eplacement `a droite
il est n´ecessaire d’allouer une nouvelle case. A cette fin, la machine M0 d´ecale `a droite
le contenu du ruban.
La borne O(t(n)
2
) sur le temps de calcul de la simulation est obtenue de la fa¸con suivante.
D’abord on observe que si la complexit´e de M est t(n), la taille des rubans manipul´es par
M ne peut jamais d´epasser t(n). Ensuite on d´etermine le nombre d’op´erations n´ecessaires `a
simuler un pas de calcul de M. Le premier passage est O(t(n)). Le deuxi`eme passage est aussi
O(t(n)) car le d´ecalage `a droite peut ˆetre effectu´e au plus k fois si la machine M comporte k
rubans et chaque d´ecalage peut ˆetre effectu´e en O(t(n)). •
Les machines multi-rubans permettent de donner une preuve simple du fait suivant.
Proposition 6.29 Un langage L est d´ecidable si et seulement si L et son compl´ementaire
L
c
sont semi-d´ecidables.
36Idee de la preuve ´ . (⇒) Par d´efinition un langage d´ecidable est semi-d´ecidable. D’une
MdT M qui d´ecide L on obtient une MdT M0 qui d´ecide L
c
simplement en ´echangeant les
´etats finaux qa et qr.
(⇐) Soient M et M0
les MdT qui d´ecident L et L
c
, respectivement. On d´erive une MdT
N avec 2 rubans qui copie d’abord l’entr´ee w du premier au deuxi`eme ruban et qui simule
ensuite alternativement un pas de r´eduction de la machine M et un pas de r´eduction de la
machine M0
. La machine N accepte si M arrive `a l’´etat qa et elle refuse si M0 arrive `a l’´etat
q
0
a
. La machine N termine toujours car tout mot w est accept´e soit par M soit par M0
. •
MdT non-d´eterministes Une MdT non-d´eterministe M est une MdT dont la fonction de
transition δ a le type :
δ : Q × Γ → 2
(Q×Γ×{L,R})
La notion de pas de calcul est adapt´ee imm´ediatement. Par exemple, on ´ecrira
wqaw0 `M wbq0w
0
si (q
0
, b, R) ∈ δ(q, a)
Exercice 6.30 Compl´etez la d´efinition de pas de calcul d’une machine non-d´eterministe.
La d´efinition 6.3 de langage semi-d´ecidable et d´ecidable s’applique directement aux MdT
non-d´eterministes.6 On remarquera que pour qu’une entr´ee w soit accept´ee il suffit qu’il existe
un calcul qui m`ene de la configuration initiale `a l’´etat qa.
Proposition 6.31 Soit N une MdT non-d´eterministe. On peut construire une MdT standard
M qui simule N. Si la complexit´e de N est t(n) ≥ n la complexit´e de M est 2
O(t(n))
.
Idee de la preuve ´ . Dans une MdT non-d´eterministe N il y a une constante k qui borne
le nombre d’alternatives possibles dans la suite du calcul. Ainsi on peut repr´esenter le calcul
d’une MdT non-d´eterministe comme un arbre ´eventuellement infini mais dont le branchement
est born´e par la constante k.
Les noeuds de cet arbre correspondent `a des mots sur {0, . . . , k − 1}
∗
. On peut ´enum´erer
tous les noeuds de l’arbre en explorant l’arbre en largeur d’abord :
, 0, . . . , k − 1, 00, . . . , 0(k − 1), 10, . . . , 1(k − 1), . . .(k − 1)0, . . . ,(k − 1)(k − 1), 000, . . .
Une MdT peut calculer le successeur imm´ediat d’un mot π par rapport `a cette ´enum´eration.
Pour simuler la machine N on utilise une MdT M avec 3 rubans. La proposition 6.28
nous assure qu’on peut toujours remplacer M par une MdT standard. Le premier ruban de
M contient l’entr´ee w, le deuxi`eme contient le chemin de l’arbre π qui est actuellement explor´e
et le troisi`eme contient le ruban de la machine N lorsqu’elle calcule en effectuant les choix
selon le chemin π.
Pour un chemin donn´e π, la machine M copie l’entr´ee du premier ruban au troisi`eme et
effectue ensuite un calcul en simulant l’ex´ecution de N sur le chemin π.
– Le calcul peut bloquer car le chemin π ne correspond pas `a un choix possible. Dans ce
cas on consid`ere le successeur imm´ediat de π et on it`ere.
6Ce n’est pas le cas pour la notion de fonction partielle r´ecursive car il faut d´ecider d’abord quel est le
r´esultat d’une MdT non-d´eterministe. . .
37– Le calcul arrive `a la fin du chemin π mais la machine ne se trouve pas dans l’´etat qa.
Dans ce cas aussi on consid`ere le successeur imm´ediat de π et on it`ere.
– Le calcul arrive `a la fin du chemin π et la machine se trouve dans l’´etat qa. Dans ce cas
on accepte et on arrˆete le calcul.
– La simulation peut aussi noter qu’il ne reste plus de chemins `a explorer et dans ce cas
elle s’arrˆete et refuse.
Si la complexit´e de N est t(n), la taille des chemins `a consid´erer est aussi O(t(n)). Le
nombre de chemins `a simuler est 2O(t(n)). Donc la complexit´e de M est 2O(t(n)). Enfin, la
MdT standard qui simule M est aussi 2O(t(n)) car (2cn)
2
est 2O(n)
. •
Exercice 6.32 (1) Montrez que les langages accept´es par un automate fini sont d´ecidables.
(2) Montrez que la collection des langages d´ecidables est stable par rapport aux op´erations
d’union, compl´ementaire, concat´enation et it´eration.
(3) Montrez que la collection des langages semi-d´ecidables est stable par rapport aux op´erations
d’union et concat´enation.
Suggestion : utilisez le non-d´eterminisme.
Th`ese de Church-Turing Il est ´evident que le calcul d’une MdT est effectif dans le sens
qu’une personne (une machine ´electronique) peut simuler le calcul d’une MdT `a condition
de disposer d’une quantit´e de papier (d’une quantit´e de m´emoire) qui peut ˆetre ´etendue
ind´efiniment. La th`ese de Church-Turing affirme que :
Tout langage semi-d´ecidable par une “proc´edure effective” est semi-d´ecidable par
une MdT.
On ne peut pas d´emontrer cette affirmation tant que la notion de “proc´edure effective”
n’est pas formalis´ee. Le probl`eme est qu’il n’y a pas de d´efinition g´en´erale de “proc´edure
effective”. On dispose seulement d’exemples de “proc´edures effectives” (par exemple les MdT,
les programmes assembleurs, les programmes Java, les syst`emes de preuve,. . .) et ce qu’on
peut faire est de d´emontrer que ces exemples sont ´equivalents au sens o`u ils permettent de
semi-d´ecider le mˆeme ensemble de langages. Nombreuses preuves de ce type ont ´et´e effectu´ees
depuis les ann´ees 30 et ceci nous permet d’avoir un certain niveau de confiance dans la validit´e
de la th`ese.
6.5 Langages ind´ecidables
On rappelle qu’il y a une bijection h , i entre les mots finis et les couples de mots finis et
que tout mot w peut ˆetre vu comme la repr´esentation d’une MdT ϕ(w). En particulier, on
utilise la notation M, M0
, . . . pour des mots qui sont consid´er´es comme des MdT. On ´ecrit
aussi ϕ(M)(w) pour indiquer le r´esultat du calcul de la MdT repr´esent´ee par ϕ(M) sur une
entr´ee w.
D´efinition 6.33 Le langage H est d´efini par
H = {hM, wi | ϕ(M)(w) ↓}
38Le langage H est semi-d´ecidable par la MdT universelle. Le langage H formalise un
probl`eme int´eressant qu’on appelle probl`eme de l’arrˆet : ´etant donn´e une MdT (un programme)
M et une entr´ee w on se demande si le calcul de M sur l’entr´ee w termine.
On peut aussi consid´erer le comportement d’une machine M lorsque elle re¸coit comme
entr´ee le codage d’une machine M0
. En particulier, on peut s’int´eresser au r´esultat de l’application
de la machine M `a son propre codage.
D´efinition 6.34 Le langage K est d´efini par
K = {M | ϕ(M)(M) ↓}
On va montrer que les langages H et K ne sont pas d´ecidables. Au passage, par la proposition
6.29 cela implique que les langages compl´ementaires Hc
et Kc ne sont mˆeme pas
semi-d´ecidables.
Th´eor`eme 6.35 Le langage K n’est pas d´ecidable.
Idee de la preuve ´ . Si K est d´ecidable il devrait y avoir une MdT ϕ(M) telle que
ϕ(M)(M0
) ↓ ssi M0 ∈ Kc
Si on applique ϕ(M) `a M on a deux possibilit´es :
1. Si ϕ(M)(M) ↓ alors M ∈ Kc
et donc ¬ϕ(M)(M) ↓.
2. Si ¬ϕ(M)(M) ↓ alors M /∈ Kc
et donc ϕ(M)(M) ↓.
Les deux possibilit´es m`enent `a une contradiction, donc Kc n’est pas semi-d´ecidable.7 •
Plutˆot que d´emontrer directement que H n’est pas d´ecidable on va introduire une technique
pour r´eduire l’analyse d’un langage `a l’analyse d’un autre langage.
D´efinition 6.36 Soient L, L0 deux langages sur un alphabet Σ. On dit que L se r´eduit `a L
0
et on ´ecrit L ≤ L
0
s’il existe une fonction r´ecursive f : Σ∗ → Σ
∗
telle que
w ∈ L ssi f(w) ∈ L
0
.
Si L ≤ L
0 alors les m´ethodes de d´ecision qu’on d´eveloppe pour L
0 peuvent ˆetre appliqu´ees
`a L aussi.
Proposition 6.37 Si L ≤ L
0
et L
0
est semi-d´ecidable (d´ecidable) alors L est semi-d´ecidable
(d´ecidable).
Idee de la preuve ´ . On sait qu’il existe une fonction r´ecursive f telle que w ∈ L ssi f(w) ∈ L
0
.
Supposons que Mf soit une MdT qui calcule f et M0 une MdT qui semi-d´ecide L
0
. Pour semid´ecider
(d´ecider) L il suffit de composer M0
et Mf . •
Exemple 6.38 On obtient que K ≤ H en utilisant la fonction f(M) = hM, Mi. Comme K
n’est pas d´ecidable, H ne peut pas ˆetre d´ecidable non plus.
7On appelle cette technique de preuve diagonalisation. On l’a d´ej`a utilis´ee dans l’exercice 6.22.
39Le fait que le probl`eme de l’arrˆet soit ind´ecidable n’est que la pointe de l’iceberg. . .
D´efinition 6.39 On dit que deux MdT sont extensionnellement ´equivalentes si elles terminent
sur les mˆemes entr´ees en donnant la mˆeme r´eponse (accepter/refuser).8
D´efinition 6.40 On dit qu’un langage P ⊆ Σ
∗
est une propri´et´e extensionnelle si P ne
distingue pas les codages de deux machines qui sont extensionnellement ´equivalentes.9 On dit
aussi que P est triviale si P ou P
c
est l’ensemble vide.
Th´eor`eme 6.41 (Rice) Toute propri´et´e extensionnelle P non triviale est ind´ecidable.
Idee de la preuve ´ . Soit M∅
le codage d’une MdT qui accepte le langage vide. Supposons que
M∅ ∈/ P (autrement on montre que P
c
est ind´ecidable). Supposons aussi que M1 ∈ P. Soit f
la fonction qui associe au codage d’une MdT M le codage d’une MdT qui re¸coit une entr´ee w,
calcule ϕ(M)(M) et si elle termine calcule M1(w). La machine f(M) est extensionnellement
´equivalente `a M1 (et donc appartient `a P) si et seulement si M ∈ K. Donc la fonction f
montre que K ≤ P. •
Exercice 6.42 En utilisant le th´eor`eme de Rice, montrez que les langages suivants sont
ind´ecidables :
(1) L’ensemble K des codages de MdT qui terminent sur l’entr´ee et acceptent .
(2) L’ensemble Tot des codages de MdT qui terminent sur toute entr´ee.
(3) L’ensemble Eq des codages de couples de MdT qui sont extensionnellement ´equivalentes.
Une cons´equence de (2) est qu’il ne peut pas y avoir un langage de programmation dans
lequel on peut programmer exactement les fonctions totales. Il ne serait pas d´ecidable de savoir
si un programme de ce langage est bien form´e. Il est donc n´ecessaire de donner des crit`eres
d´ecidables qui assurent la terminaison mais qui excluent certains programmes qui terminent.
Une cons´equence de (3) est qu’on ne peut pas automatiser le probl`eme de l’´equivalence de
deux programmes. Dans ce cas aussi on est amen´e `a faire des approximations.
Exercice 6.43 Montrez ou invalidez les assertions suivantes :
1. Il y a une MdT qui accepte les mots sur l’alphabet {0, 1} qui contiennent autant de 0
que de 1 (si la MdT existe, il suffira d’en donner une description informelle).
2. Rappel : si A et B sont deux langages, on ´ecrit A ≤ B s’il existe une r´eduction de A `a
B.
Si A est s´emi-d´ecidable et A ≤ Ac alors A est d´ecidable.
3. L’ensemble des (codages de) MdT qui reconnaissent un langage fini est d´ecidable.
Exercice 6.44 Montrez ou donnez un contre-exemple aux assertions suivantes :
1. L’ensemble des (codages de) MdT qui terminent sur le mot vide est d´ecidable.
2. L’ensemble des (codages de) MdT qui divergent sur le mot vide est semi-d´ecidable.
8
Il y a des variations possibles de cette d´efinition. Par exemple, on peut dire que les machines sont
´equivalentes si elles calculent la mˆeme fonction partielle.
9En d’autres termes, si M et M0
sont extensionnellement ´equivalentes alors soit {M, M0
} ⊆ P soit {M, M0
}∩
P = ∅.
403. L’ensemble des (codages de) MdT qui terminent sur le mot vide en 10100 pas de calcul
est d´ecidable.
Exemple 6.45 On termine en mentionnant (sans preuve) quelques probl`emes ind´ecidables
remarquables.
(1) Soit Σ un alphabet et soit (v1, w1)· · ·(vk, wk) une suite finie de couples de mots dans Σ
∗
.
Le probl`eme de correspondance de Post (PCP) consiste `a d´eterminer s’ils existent n ≥ 1 et
i1, . . . , in ∈ {1, . . . , k} tels que :
vi1
· · · vin = wi1
· · · win
.
Par exemple, consid´erez {(ab, a),(bcc, bb),(c, cc)}. On ne peut pas concevoir un algorithme
qui pour tout PCP d´ecide si le probl`eme a une solution. En d’autres termes, le probl`eme de
correspondance de Post est ind´ecidable.
(2) Soit p(x1, . . . , xn) un polynˆome de degr´e arbitraire avec variables x1, . . . , xn et avec coef-
ficients dans Z. Par exemple, p(x, y, z) = 6x
3yz2 + 3xy2 − x
3 − 10. Le dixi`eme probl`eme de
Hilbert consiste `a d´eterminer si le polynˆome p a des racines dans Z, c’est-`a-dire :
∃ x1, . . . , xn ∈ Z p(x1, . . . , xn) = 0
Ce probl`eme a ´et´e propos´e comme un challenge parmi d’autres en 1900 par D. Hilbert et
il a ´et´e montr´e ind´ecidable par Matijasevich en 1970 (le mˆeme probl`eme sur les r´eels est
d´ecidable).
(3) La logique du premier ordre est l’extension du calcul propositionnel o`u l’on introduit la
quantification. Par exemple, on peut ´ecrire ∀ x ∃ y A(x, y). Une telle formule est valide si
pour tout ensemble U 6= ∅ et pour toute relation binaire RA sur U il est vrai que pour tout
u ∈ U il existe v ∈ V tel que (u, v) ∈ RA. La validit´e d’une formule du premier ordre est
ind´ecidable.
(4) On peut s’int´eresser aux formules du premier ordre sur un alphabet particulier qui
comprend les symboles +,∗ et < qui sont interpr´et´es comme l’addition, la multiplication et
l’in´egalit´e de nombres naturels. De mˆeme, les quantificateurs sont interpr´et´es maintenant sur
les nombres naturels. Par exemple, ∀ x ∃ y x < y est une formule qui dit que pour chaque
nombre naturel x on peut trouver un nombre naturel y qui est strictement plus grand. La validit´e
d’une formule du premier ordre (interpr´et´ee sur les nombres naturels) est (hautement)
ind´ecidable.10
10On peut construire une hi´erarchie qu’on appelle hi´erarchie arithm´etique de probl`emes ind´ecidables et
toujours ‘plus durs’.
417 Complexit´e : les classes P et NP
On s’int´eresse au probl`emes d´ecidables en temps polynomial (d´eterministe ou non-d´eterministe).
D´efinition 7.1 P (NP) est la classe des langages qui sont d´ecidables par une MdT d´eterministe
(non-d´eterministe) en temps O(n
k
) pour un certain k.
Il suit de la d´efinition que tout probl`eme dans P est aussi dans NP. Les classes P et NP
sont suffisamment robustes pour ne pas ˆetre affect´ees par une modification du mod`ele de
calcul. Par exemple, ces classes ne d´ependent pas du fait que les MdT disposent de un ou de
plusieurs rubans. On peut mˆeme enrichir le mod`ele de calcul en supposant que la machine
dispose d’une m´emoire illimit´ee en acc`es direct (RAM pour random access memory). Dans une
telle machine l’acc`es `a une cellule de m´emoire est effectu´e en O(1). On peut d´emontrer qu’une
MdT d´eterministe peut simuler une machine avec RAM avec une d´egradation polynomiale
des performances, c’est-`a-dire qu’il y a un (petit) nombre k tel que si la machine avec RAM
a complexit´e O(t(n)) la MdT qui la simule a complexit´e O(t(n)
k
).
Une grande partie des probl`emes qui sont consid´er´es dans un cours standard d’algorithmique
font partie de la classe P. Par exemple, les probl`emes de tri, la r´esolution de syst`emes
d’´equations lin´eaires, les probl`emes de recherche dans un arbre, le probl`eme de la connectivit´e
d’un graphe,. . . Dans la suite on va consid´erer un certain nombre de probl`emes qui sont dans
la classe NP.
Exemple 7.2 (1) Le probl`eme de savoir si une formule du calcul propositionnel est satisfiable
est dans NP. Il suffit de deviner une affectation et de v´erifier.
(2) Soit G = (V, E) un graphe non-dirig´e. Le probl`eme du circuit hamiltonien consiste `a
d´eterminer s’il existe un parcours du graphe qui contient chaque sommet du graphe une et
une seule fois. Un algorithme dans NP qui r´epond `a la question devine une permutation des
sommets et v´erifie si elle correspond `a un parcours dans le graphe.
(2) Soit V un ensemble de villes et d une fonction qui associe `a chaque paire de villes (v, v0
)
la distance d(v, v0
) ≥ 0 pour aller de v `a v
0
. Le probl`eme du voyageur de commerce11 est
de d´eterminer s’il existe un parcours qui traverse chaque ville exactement une fois dont la
longueur est inf´erieure `a b. En d’autres termes, dans TSP on consid`ere un graphe non-dirig´e,
complet (chaque couple de noeuds est connect´e par une arˆete) et avec une fonction de coˆut sur
les arˆetes et on cherche `a d´eterminer si le graphe contient un circuit hamiltonien dont le coˆut
est inf´erieur `a b. Un algorithme dans NP qui r´epond `a la question devine une permutation
des villes et v´erifie si la somme des distances est inf´erieure `a b.
12
7.1 R´eduction polynomiale
Faute de pouvoir d´emontrer que les probl`emes dans l’exemple 7.2 sont ou ne sont pas
dans P, on va essayer de les comparer. A cette fin, on reprend la notion de r´eduction entre
probl`emes (d´efinition 6.36) en ajoutant la contrainte que la r´eduction est calculable en temps
polynomiale (d´eterministe).
11Aussi connu comme TSP pour Travelling Salesman Problem.
12Ce probl`eme est aussi formul´e comme un probl`eme d’optimisation o`u l’on cherche `a minimiser la longueur
d’un parcours ferm´e.
42D´efinition 7.3 Soient L, L0 deux langages sur un alphabet Σ. On dit que L se r´eduit `a L
0
en temps polynomial et on ´ecrit L ≤P L
0
s’il existe une fonction r´ecursive f : Σ∗ → Σ
∗
calculable en temps polynomial telle que
w ∈ L ssi w ∈ L
0
Exemple 7.4 Il y a une r´eduction polynomiale du probl`eme du circuit hamiltonien au probl`eme
du voyageur de commerce. L’ensemble des noeuds correspond `a l’ensemble des villes. La distance
d est d´efinie par :
d(v, v0
) = (
1 si (v, v0
) arˆete
2 autrement
La constante b est ´egale au nombre des villes. Maintenant, on remarque :
– S’il existe un parcours de longueur b alors ce parcours ne peut contenir que des chemins
entre villes de longueur 1. Donc ce parcours correspond `a un chemin hamiltonien.
– Inversement, s’il y a un chemin hamiltonien alors la r´eponse au probl`eme du voyageur
de commerce est positive.
Exercice 7.5 Une formule est en 3-CNF si elle est en CNF et chaque clause (disjonction de
litt´eraux) comporte exactement 3 litt´eraux. Le probl`eme 3-SAT consiste `a d´eterminer si une
formule en 3-CNF est satisfiable. Montrez que :
(1) 3-SAT est dans NP.
(2) Une clause `1 ∨ · · · ∨ `n avec n > 3 peut ˆetre remplac´ee par
(`1 ∨ `2 ∨ y1) ∧ (¬y1 ∨ `3 ∨ y2) ∧ · · ·(¬yn−3 ∨ `n−1 ∨ `n)
o`u y1, . . . , yn−3 sont des nouvelles variables.
(3) Une clause avec 1 ou 2 litt´eraux peut ˆetre remplac´ee par une clause avec 3 litt´eraux.
(4) Conclure qu’il y a une r´eduction polynomiale de SAT `a 3-SAT.
Exercice 7.6 Montrez que la notion de r´eduction polynomiale est transitive : L1 ≤P L2 et
L2 ≤P L3 implique L1 ≤P L3.
7.2 SAT et NP-compl´etude
D´efinition 7.7 Un probl`eme L (langage) est NP-complet s’il est dans NP et si tout probl`eme
L
0 dans NP admet une r´eduction polynomiale `a L.
Dans un certain sens les probl`emes NP-complets sont les plus durs. Si on trouve un
algorithme polynomial pour un probl`eme NP-complet alors on a un algorithme polynomial
pour tous les probl`emes de la classe NP. Un fait remarquable est que plusieurs probl`emes
naturels sont NP-complets.
Th´eor`eme 7.8 (Cook-Levin 1971) Le probl`eme SAT est NP-complet.
Idee de la preuve ´ . Soit L un langage d´ecid´e par une MdT M non d´eterministe polynomiale
en temps p(n). Donc w ∈ L ssi `a partir de la configuration initiale q0w la machine M peut
arriver `a l’´etat qa. On d´ecrit une r´eduction polynomiale qui associe `a chaque mot w une
43formule en CNF Aw qui est satisfiable si et seulement si w ∈ L. L’id´ee est que la formule
Aw va d´ecrire les calculs possibles (M est non-d´eterministe !) de la machine M sur l’entr´ee
w. La remarque fondamentale est qu’un calcul d’une machine de Turing en temps p(n) sur
un mot w de taille n peut ˆetre repr´esent´e par un tableau de taille p(n) × p(n) dont la case
de coordonn´ees (i, j) contient la valeur du ruban au temps i et `a la position j. Si le calcul
termine avant p(n) on peut toujours recopier le ruban jusqu’au temps p(n).
On peut associer `a chaque case (i, j) et `a chaque symbole a une variable propositionnelle
xi,j,a avec l’id´ee que xi,j,a = 1 si et seulement si la case (i, j) contient le symbole a.
Ensuite on peut construire des formules (de taille polynomiale en n) qui assurent que :
– Exactement un symbole est dans chaque case.
– Les cases (1, j) correspondent `a la configuration initiale.
– Chaque case (i + 1, j) est obtenue des cases (i, j − 1),(i, j),(i, j + 1) selon les r`egles de
la Machine.
– La configuration finale accepte.
Exemple 7.9 On construit une CNF qui correspond au calcul de la MdT M dans l’exemple
6.4 sur l’entr´ee aab.
13 Le calcul de la MdT pourrait ˆetre :
1 2 3 4 5
1 q0 a a b t
2 a q0 a b t
3 a a q0 b t
4 a a b q1 t
5 a a b t qa
Pour repr´esenter le calcul on introduit les variables xi,j,u o`u i, j ∈ {1, . . . , 5} et u ∈ {a, b, q0, q1, qa}.
La configuration initiale est sp´ecifi´ee par :
Ainit = x1,1,q0 ∧ x1,2,a ∧ x1,3,a ∧ x1,4,b ∧ x1,5,t
On doit imposer la contrainte que `a chaque instant exactement un symbole est pr´esent `a
chaque position. Par exemple, pour l’instant i `a la position j on ´ecrira :
Ai,j = (xi,j,a ∨ · · · ∨ xi,j,qa
) ∧ (¬xi,j,a ∨ ¬xi,j,b) ∧ · · · ∧ (¬xi,j,q1 ∨ ¬xi,j,qa
)
L’objectif est d’arriver `a une configuration qui contient l’´etat qa. Cela revient `a demander :
Aaccept = ∨1≤i,j≤5xi,j,qa
Enfin on doit d´ecrire les ‘r`egles de calcul’ de la machine M. Par exemple, on pourrait exprimer
δ(q0, a) = (q0, a, R) par la conjonction de formules de la forme
(xi−1,j−1,q0 ∧ xi−1,j,a) → (xi,j−1,a ∧ xi,j,q0
)
Il est possible de proc´eder d’une fa¸con plus syst´ematique. Une propri´et´e int´eressante des MdT
est qu’`a chaque instant le calcul est localis´e dans une r´egion de taille born´ee. Si w1qw2 `M
w
0
1
q
0w
0
2
la diff´erence entre les deux configurations est localis´ee dans une r´egion de taille 3 qui
13Il s’agit d’un cas tr`es sp´ecial car la MdT en question se comporte comme un automate fini d´eterministe.
Cependant les id´ees se g´en´eralisent.
44comprend l’´etat et les deux symboles contigu¨es. L’id´ee est alors de regarder toutes les fenˆetres
de largeur 3 et de hauteur 2 dans le tableau qui repr´esente le calcul (il y en a un nombre
polynomial) et de s’assurer que le contenu de chaque fenˆetre est conforme aux r`egles de la
machines.
La formule en question peut ˆetre exprim´ee en CNF. Par exemple, on pourrait avoir une
formule de la forme :
((x1 ∧ x2) → (y1 ∧ y2)) ∨ ((x1 ∧ x2) → (w1 ∧ w2)) ∨ ((x1 ∧ x2) → (z1 ∧ z2))
pour dire que si deux cases contiennent les symboles a1, a2 (variables x1, x2) alors deux autres
cases contiennent ou bien les symboles b1, b2 (variables y1, y2) ou bien les symboles c1, c2
(variables w1, w2) ou bien les symboles d1, d2 (variables z1, z2).
Une telle formule peut se r´e-´ecrire en CNF comme suit.
(¬x1 ∨ ¬x2 ∨ y1 ∨ w1 ∨ z1)∧
(¬x1 ∨ ¬x2 ∨ y1 ∨ w1 ∨ z2)∧
(¬x1 ∨ ¬x2 ∨ y1 ∨ w2 ∨ z1)∧
(¬x1 ∨ ¬x2 ∨ y1 ∨ w2 ∨ z2)∧
(¬x1 ∨ ¬x2 ∨ y2 ∨ w1 ∨ z1)∧
(¬x1 ∨ ¬x2 ∨ y2 ∨ w1 ∨ z2)∧
(¬x1 ∨ ¬x2 ∨ y2 ∨ w2 ∨ z1)∧
(¬x1 ∨ ¬x2 ∨ y2 ∨ w2 ∨ z2)
La transformation est exponentielle dans le nombre de possibilit´es (3 dans notre cas), mais
pour une MdT donn´ee, ce nombre est born´e par une constante.
Exercice 7.10 On dispose d’un ensemble P = {1, . . . , m} de pigeons et d’un ensemble N =
{1, . . . , n} de nids. Le principe du nid de pigeon14 est le suivant :
1. Chaque pigeon a un nid.
2. Chaque nid a au plus un pigeon.
D´ecrivez le principe par une formule du calcul propositionnel en CNF qui utilise comme
formules atomiques oi,j pour i = 1, . . . , m et j = 1, . . . , n o`u la validit´e de oi,j repr´esente le
fait que le pigeon i occupe le nid j. La formule en question doit ˆetre satisfiable si et seulement
si m ≤ n. Quelle est la taille de la formule en fonction de m, n ?
Remarque : si on prend m = n+1 on obtient une formule en CNF qui n’est pas satisfiable.
Cette formule est utilis´ee souvent comme un test pour les m´ethodes de preuve (Davis-Putnam,
r´esolution,. . .)
Exercice 7.11 On dispose d’une grille 4 × 4 qui se d´ecompose en 4 sous-grilles 2 × 2. On
d´enote par le couple (i, j), o`u i, j ∈ {1, 2, 3, 4}, les coordonn´ees d’une case de la grille. Chaque
case de la grille contient un ensemble de nombres naturels contenu dans {1, 2, 3, 4}. On introduit
64 variables propositionnelles xi,j,k pour i, j, k ∈ {1, 2, 3, 4} avec l’interpr´etation suivante :
xi,j,k est ‘vrai’ si et seulement si la case de coordonn´ees (i, j) contient le nombre k.
14Traduction approximative de pigeon principle.
45Soit A une formule qui utilise les variables xi,j,k et P une propri´et´e de la grille. On dit
que A exprime P si, dans l’interpr´etation ci-dessus, A est satisfiable si et seulement si P est
v´erifi´ee. Par exemple, par la formule A = x1,1,2 ∨ x1,1,3 on exprime la propri´et´e que la case
de coordonn´ees (1, 1) contient ou bien 2 ou bien 3.
1. D´efinissez des formules en forme normale conjonctive qui expriment les propri´et´es suivantes
:
(a) La case de coordonn´ees (2, 2) contient au moins un num´ero compris entre 1 et 4.
(b) On ne peut pas trouver deux cases sur la premi`ere ligne qui contiennent le num´ero
4.
(c) La case (3, 2) contient au plus un num´ero.
2. Donnez une borne sup´erieure au nombre de litt´eraux contenus dans une formule en
forme normale conjonctive qui exprime la propri´et´e suivante : il n’y a pas deux cases
sur la mˆeme ligne, sur la mˆeme colonne ou sur la mˆeme sous-grille 2×2 qui contiennent
le mˆeme num´ero. Expliquez votre calcul.
Exercice 7.12 Pour n ≥ 1 on introduit n
2
variables propositionnelles xi,j avec 1 ≤ i, j ≤ n.
(1) Construisez une formule An en forme normale conjonctive qui a la propri´et´e suivante :
une affectation v satisfait An exactement quand il existe une permutation π : {1, . . . , n} →
{1, . . . , n} telle que v(xi,j ) = 1 si et seulement si π(i) = j. Par exemple, pour n = 2 il n’y a
que deux affectations qui peuvent satisfaire A2 `a savoir soit (v(x1,1) = v(x2,2) = 1 et v(x1,2) =
v(x2,1) = 0) soit (v(x1,1) = v(x2,2) = 0 et v(x1,2) = v(x2,1) = 1). Ecrivez explicitement ´ An
pour n = 3 et ensuite donnez le sch´ema de la formule An pour un n arbitraire. Suggestion :
une permutation sur un ensemble fini X est la mˆeme chose qu’une fonction injective sur X.
(2) Un graphe fini non-dirig´e G est un couple (N, E) o`u N = {1, . . . , n}, n ≥ 2 est un
ensemble qui repr´esente les noeuds du graphe et E est un ensemble de sous-ensembles de N
de cardinalit´e 2 qui repr´esente les arˆetes du graphe. On dit que G admet un circuit hamiltonien
s’il existe une permutation π : {1, . . . , n} → {1, . . . , n} telle que
{π(1), π(2)} ∈ E, . . . , {π(n − 1), π(n)} ∈ E
Montrez que le probl`eme de savoir si un graphe admet un circuit hamiltonien a une r´eduction
polynomiale au probl`eme de la satisfiabilit´e d’une formule en CNF du calcul propositionnel.
Suggestion : on utilise la formule An de l’exercice 7.12 pour sp´ecifier l’existence d’une permutation
et on ajoute des variables yi,j , i, j = 1, . . . , n, i 6= j pour sp´ecifier les arˆetes du
graphe.
Exercice 7.13 On dispose d’un ´echiquier (une matrice carr´ee) n × n. Une reine qui occupe
une position de l’´echiquier peut attaquer toutes les positions sur la mˆeme ligne, la mˆeme colonne
ou sur les diagonales inclin´ees de 45 d´egr´ees. On cherche `a placer r reines sur l’´echiquier
de fa¸con `a ce qu’elles ne puissent pas s’attaquer mutuellement. A cette fin, ´ecrivez une formule
en CNF qui est satisfiable si et seulement si le probl`eme a une solution. On utilisera des
formules atomiques oi,j pour i = 1, . . . , m et j = 1, . . . , n o`u la validit´e de oi,j repr´esente le
fait qu’une reine occupe la position (i, j).
Remarque : la formule obtenue est aussi un test int´eressant pour les m´ethodes de preuve.
Par exemple, pour n = r = 4 ou n = r = 8 le probl`eme a une solution.
46Exercice 7.14 Soit A une matrice et b un vecteur `a coefficients dans Z. Le probl`eme de
programmation lin´eaire enti`ere (ILP pour integer linear programming) consiste `a d´eterminer
s’il existe un vecteur ~x `a coefficients dans Nm tel que A~x = ~b.
15 Ce probl`eme est dans NP. On
utilise des notions d’alg`ebre lin´eaire pour montrer que si le probl`eme a une solution alors il en
a une dont la taille est polynomiale dans la taille de la matrice A. Ensuite on peut appliquer
la m´ethode standard qui consiste `a deviner un vecteur ~x et `a v´erifier qu’il est une solution.
A partir de ce fait, le but de l’exercice est de montrer que le probl`eme est NP-complet par
r´eduction du probl`eme SAT. Il peut ˆetre utile de consid´erer d’abord les probl`emes suivants.
– Montrez qu’en introduisant des variables auxiliaires on peut exprimer la satisfaction
d’une contrainte d’in´egalit´e comme un probl`eme d’ILP.
– Montrez qu’on peut exprimer la contrainte x ∈ {0, 1}.
– Montrez qu’on peut exprimer la contrainte x = y o`u x, y ∈ {0, 1}, 0 = 1 et 1 = 0.
– Montrez comment coder la validit´e d’une clause (disjonction de litt´eraux).
Exercice 7.15 Soit G un graphe non-dirig´e (cf. exercice 8.6). Un k-clique est un ensemble
de k noeuds de G qui ont la propri´et´e que chaque couple de noeuds est connect´ee par une
arˆete.
Le langage CLIQUE est compos´e de couples hG, ki o`u (i) G est le codage d’un graphe, (ii)
k est un nombre naturel et (iii) G contient comme sous-graphe un k-clique.
Le langage 3-SAT est compos´e de formules en forme normale conjonctive o`u chaque clause
contient 3 litt´eraux.
1. Montrez que le langage CLIQUE est dans NP.
2. On souhaite construire une r´eduction polynomiale de 3-SAT `a CLIQUE. Si la formule
A contient k clauses alors le graphe associ´e GA contient k groupes de noeuds o`u chaque
groupe est compos´e de 3 noeuds et chaque noeud est ´etiquet´e par un litt´eral. Par exemple,
si la clause est (x ∨ ¬y ∨ z) alors on aura un groupe de 3 noeuds ´etiquet´es avec x, ¬y et
z.
(a) D´ecrivez les arˆetes de GA de fa¸con `a ce que le graphe GA contienne une k-clique
si et seulement si la formule A est satisfiable et dessinez le graphe GA dans le cas
o`u
A = (x ∨ y) ∧ (¬x ∨ ¬y) ∧ (¬x ∨ y) ∧ (x ∨ ¬y)
(la formule en question comporte seulement deux litt´eraux par clause mais la
construction du graphe GA s’applique aussi bien `a ce cas).
(b) Quelle conclusion peut-on tirer de la construction pr´ec´edente ? Motivez votre r´eponse :
i. Si 3-SAT est un probl`eme polynomiale d´eterministe alors CLIQUE est un
probl`eme polynomiale d´eterministe.
ii. CLIQUE est un probl`eme NP-complet.
Exercice 7.16 Un graphe (non-dirig´e) G est compos´e d’un ensemble fini non-vide de noeuds
N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un
ensemble {i, j} de noeuds de cardinalit´e 2. On dit que deux noeuds sont adjacents s’il y a une
arˆete qui les connecte.
15Comme pour le probl`eme du voyageur de commerce, le probl`eme ILP est souvent formul´e comme un
probl`eme d’optimisation. Par exemple, il s’agit de minimiser une fonction lin´eaire ~cT
~x sous les contraintes
A~x = ~b et ~x ≥ 0.
47Probl`eme du coloriage Etant donn´e un graphe ´ G = (N, A) et un nombre naturel k ≥ 2
on d´etermine s’il existe une fonction c : N → {1, . . . , k} telle que si i, j sont deux noeuds
adjacents alors c(i) 6= c(j).
16
Probl`eme de l’emploi du temps Etant donn´e (i) un ensemble d’´etudiants ´ E = {1, . . . , n}
(n ≥ 2), (ii) un ensemble de cours C = {1, . . . , m} (m ≥ 2), (iii) un ensemble de plages
horaires P = {1, . . . , p} (p ≥ 2) et (iv) une relations binaire R telle que (i, j) ∈ R si et
seulement si l’´etudiant i suit le cours j on d´etermine s’il existe une fonction emploi du temps
edt : C → P telle que si un ´etudiant suit deux cours diff´erents j 6= j
0 alors edt(j) 6= edt(j
0
).
D´emontrez ou donnez un contre-exemple aux assertions suivantes :
1. Le probl`eme de l’emploi du temps se r´eduit au probl`eme du coloriage.
2. Le probl`eme de l’emploi du temps se r´eduit en temps polynomial au probl`eme du coloriage.
3. Le probl`eme du coloriage est dans NP.
Remarque 7.17 (1) On connaˆıt un bon millier de probl`emes NP-complets. Cependant, certains
probl`emes comme l’isomorphisme de graphes (cf. exemple 6.14) r´esistent `a une classi-
fication. A l’´etat de nos connaissances, il est possible que le probl`eme de l’isomorphisme de
graphes soit ni NP-complet ni dans P.
(2) La question de savoir s’il y a un langage dans NP qui n’est pas dans P est ouverte depuis
1971. C’est un probl`eme naturel de la th´eorie de la complexit´e et il est aussi le probl`eme le
plus m´ediatis´e de l’informatique th´eorique. 17
(3) Une autre fa¸con de mesurer la complexit´e du calcul d’une MdT est de compter l’espace,
c’est-`a-dire le nombre de cellules du ruban qu’elle utilise. La classe PSPACE (NPSPACE) est
la classe des probl`emes qui peuvent ˆetre r´esolus par une MdT d´eterministe (non-d´eterministe)
en utilisant un espace polynomial dans la taille de l’entr´ee. Il n’est pas tr`es difficile de montrer
que PSPACE=NPSPACE. On en d´eduit imm´ediatement que P ⊆ NP ⊆ PSPACE mais on
ne sait pas si une de ces inclusions est stricte.
(4) Nombreuses autres classes de complexit´e ont ´et´e introduites. Par exemple : LOGSPACE,
la classe des probl`emes qui peuvent ˆetre r´esolus en espace logarithmique (LOGSPACE ⊆ P) et
EXPTIME, la classe des probl`emes qui peuvent ˆetre r´esolus en temps exponentiel (PSPACE
⊆ EXPTIME).
16On peut voir les valeurs {1, . . . , k} comme des couleurs qu’on affecte aux noeuds, d’o`u le nom du probl`eme.
17Le probl`eme P vs. NP est cit´e parmi les “7 probl`emes math´ematiques du troisi`eme mill´enaire” par la
Clay Foundation `a cot´e de l’hypoth`ese de Riemann, la conjecture de Poincar´e, la r´esolution des ´equations de
Navier-Stokes,. . . La preuve de la conjecture de Poincar´e a ´et´e annonc´ee r´ecemment, il ne reste donc que 6
probl`emes. . .
488 Preuves par induction
On s’int´eresse d’abord aux d´efinitions inductives. Dans une d´efinition inductive on construit
un ensemble ‘inductif’ par stratifications successives et on dispose d’un principe de r´ecurrence
ainsi que d’un ordre implicite. Les ensembles librement engendr´es constituent un exemple remarquable
d’ensemble inductif. Par ailleurs, on peut g´en´eraliser la notion d’ordre et arriver `a
la notion d’ensemble bien fond´e. Les ensembles bien fond´es admettent un principe d’induction
qui g´en´eralise le principe de r´ecurrence habituel.
8.1 Ensembles inductifs
Soit A un ensemble, X ⊆ A un sous-ensemble, et F = {fi
: Ani → A | i ∈ I} un
ensemble d’op´erations sur A. A partir de (A, X, F) on voudrait d´efinir inductivement un
ensemble Ind(A, X, F) comme le plus petit sous-ensemble de A qui contient X et qui est
stable par rapport aux op´erations dans F, c’est-`a-dire pour tout i ∈ I si y1, . . . yni ∈ Y alors
fi(y1, . . . , yni
) ∈ Y .
Exemple 8.1 Soit Z l’ensemble des nombres entiers et suc et + les op´erations successeur et
addition, respectivement. On pourrait d´efinir :
(1) L’ensemble des nombres naturels comme le plus petit sous-ensemble de Z qui contient
{0} et qui est stable par rapport `a l’op´eration de successeur.
(2) L’ensemble des nombres pairs positifs comme le plus petit sous-ensemble de Z qui contient
{0, 2} et qui est stable par rapport `a l’op´eration d’addition.
Il n’est pas si ´evident qu’une d´efinition inductive d´efinit bien un ensemble. Il faut d’abord
s’assurer que le plus petit ensemble dont parle la d´efinition existe. A partir de (A, X, F) on
peut d´efinir une fonction F : 2A → 2
A comme suit :
F(Z) = X ∪ {fi(z1, . . . , zni
) | i ∈ I, zj ∈ Z, j = 1, . . . , ni}
On remarque que la condition F(Z) ⊆ Z est satisfaite si et seulement si X ⊆ Z et Z est
stable par rapport aux op´erations dans F. Maintenant consid´erons l’intersection de tous les
ensembles Z ⊆ A qui satisfont cette condition :
Y =
\
{Z ⊆ A | F(Z) ⊆ Z} . (5)
Proposition 8.2 Le plus petit ensemble Ind(A, X, F) existe et est ´egale `a Y.
Idee de la preuve ´ . Par d´efinition, si F(Z) ⊆ Z alors Y ⊆ Z. Pour s’assurer de l’existence
du plus petit ensemble tel que. . . il reste `a d´emontrer que F(Y ) ⊆ Y . D’abord on observe que
F est monotone, c’est-`a-dire :
X1 ⊆ X2 ⇒ F(X1) ⊆ F(X2)
Si F(Z) ⊆ Z par d´efinition de Y on d´erive que Y ⊆ Z et par monotonie que F(Y ) ⊆ F(Z).
Donc
F(Y ) ⊆
\
{F(Z) | Z ⊆ A, F(Z) ⊆ Z} ⊆ \
{Z | Z ⊆ A, F(Z) ⊆ Z} = Y .
•
Si F(Z) = Z on dit que Z est un point fixe de F.
49Proposition 8.3 (it´eration) (1) L’ensemble Y d´efini par l’´equation (5) est le plus petit
point fixe de F.
(2) De plus on peut donner une d´efinition it´erative de Y . Si on d´efinit,
F
0 = ∅ Fn+1 = F(F
n
) F
ω =
[
n≥0
F
n
alors F
n ⊆ Fn+1 et F
ω = Y .
Idee de la preuve ´ . (1) On sait F(Y ) ⊆ Y . Par monotonie, F(F(Y )) ⊆ F(Y ). Par d´efinition
de Y , Y ⊆ F(Y ).
(2) On observe, F
n ⊆ Y implique par monotonie F
n+1 ⊆ F(Y ) ⊆ Y . Donc F
ω ⊆ Y . Ensuite,
on v´erifie que F(F
ω
) ⊆ Fω
, ce qui implique Y ⊆ Fω
. •
Proposition 8.4 Tout ensemble Y d´efini inductivement `a partir de (A, X, F) admet le principe
d’induction suivant :
Z ⊆ Y, F(Z) ⊆ Z
Z = Y
(6)
Si on explicite le principe dans le cas des nombres naturels N, on obtient le principe de
r´ecurrence habituel :
Z ⊆ N, 0 ∈ Z, ∀ n n ∈ Z → n + 1 ∈ Z
Z = N
(7)
Exercice 8.5 (transitivit´e) Soit R une relation binaire sur un ensemble. Sa clˆoture r´eflexive
et transitive R∗
est la plus petite relation qui contient la relation identit´e, la relation R et telle
que si (x, y),(y, z) ∈ R∗ alors (x, z) ∈ R∗
. Montrez que R∗ peut ˆetre vu comme un ensemble
d´efini inductivement.
Exercice 8.6 Un graphe non-dirig´e G est compos´e d’un ensemble fini non-vide de noeuds
N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un
ensemble {i, j} de noeuds de cardinalit´e 2. Le degr´e d’un noeud i dans un graphe est le
nombre d’arˆetes qui le contiennent. Par exemple, un noeud isol´e a degr´e 0. D´emontrez en
utilisant le principe de r´ecurrence l’assertion suivante :
Chaque graphe avec au moins 2 noeuds contient 2 noeuds avec le mˆeme degr´e.
8.2 Treillis complets et points fixes
Un ordre partiel (L, ≤) est un ensemble L ´equip´e d’une relation r´eflexive, anti-sym´etrique
et transitive. Soit X ⊆ L (´eventuellement vide). Un ´el´ement y ∈ L est une borne sup´erieure
pour X si ∀ x ∈ X x ≤ y. Un ´el´ement y ∈ L est le sup de X s’il est la plus petite borne
sup´erieure. De fa¸con duale, on d´efinit la notion de borne inf´erieure et de inf.
D´efinition 8.7 Un treillis complet est un ordre partiel (L, ≤) tel que tout sous-ensemble a
un sup.
D´efinition 8.8 Une fonction monotone f sur un ordre partiel L est une fonction qui respecte
l’ordre. On dit que x est point fixe de f si f(x) = x.
50Proposition 8.9 (Tarski) (1) Les parties d’un ensemble ordonn´ees par inclusion forment
un treillis complet.
(2) Tout sous-ensemble d’un treillis complet a un inf.
(3) Toute fonction monotone sur un treillis complet a un plus grand et un plus petit point
fixe qui s’expriment respectivement par sup{x | x ≤ f(x)} et inf {x | f(x) ≤ x}.
Idee de la preuve ´ . (1) Le sup est l’union et l’inf est l’intersection d’ensembles.
(2) Soit X ⊆ L et BI(X) l’ensemble des bornes inf´erieures de X. On consid`ere z =
sup(BI(X)) et on montre que z = inf (X).
(3) On pose z = sup{x | x ≤ f(x)}. Si f(y) = y alors y ≤ z. Donc il reste `a montrer que
z est un point fixe. On montre d’abord que z ≤ sup{f(x) | x ≤ f(x)} ≤ f(z). Ensuite par
monotonie, f(z) ≤ f(f(z)) et par d´efinition de z on arrive `a f(z) ≤ z. •
Exercice 8.10 Soit (N∪{∞}, ≤) l’ensemble des nombres naturels avec un ´el´ement maximum
∞, 0 < 1 < 2 < . . . < ∞. Montrez que toute fonction monotone f sur cet ordre admet un
point fixe, c’est-`a-dire un ´el´ement x tel que f(x) = x.
8.3 Ensembles librement engendr´es
Nous allons consid´erer une forme particuli`erement importante de d´efinition inductive. Soit
L un ensemble de symboles `, `0
, . . . avec arit´e ar (`) ∈ N. On peut d´efinir un ensemble T(L)
par :
T(L)0 = {` ∈ L | ar (`) = 0}
T(L)n+1 = T(L)n ∪ {(`, t1, . . . , tn) | ` ∈ L, ar (`) = n, ti ∈ T(L)n, i = 1, . . . , n}
T(L) = S
n≥0 T(L)n
On peut voir les ´el´ements de T(L) comme des arbres finis ordonn´es dont les noeuds sont
´etiquet´es par des symboles dans L de fa¸con compatible avec leur arit´e. Maintenant, on peut
associer `a chaque symbole ` ∈ L une fonction `a ar (`) arguments sur T(L) qui est d´efinie par :
`(t1, . . . , tn) = (`, t1, . . . , tn) (8)
Supposons maintenant X ⊆ {` ∈ L | ar (`) = 0} et Σ ⊆ L avec X ∩ Σ = ∅. On peut d´efinir un
ensemble inductif Y = Ind(T(L), X, Σ) qui est compos´e d’arbres finis dans T(L) qui utilisent
uniquement les symboles dans X ∪Σ comme ´etiquettes. On dit que l’ensemble Y est librement
engendr´e `a partir de X et Σ.
Exemple 8.11 L’ensemble des formules du calcul propositionnel peut ˆetre vu comme librement
engendr´e `a partir d’un ensemble V de symboles de ‘variables’ d’arit´e 0 et de symboles
‘fonctionnels’ Σ = {¬,∧,∨} o`u ar (¬) = 1 et ar (∧) = ar (∨) = 2. En d’autres termes,
Form = Ind(T(L), V, Σ)
On peut donc formuler un principe d’induction pour les formules du calcul propositionnel qui
s’´enonce de la fa¸con suivante :
F ⊆ Form V ⊆ F (A, B ∈ F implique ¬A, A ∧ B, A ∨ B ∈ F)
F = Form
51et qui correspond `a l’intuition que Form est le plus petit ensemble tel que. . .
18
Exercice 8.12 On consid`ere l’ensemble de symboles fonctionnels
Σ = {, a, b}
o`u ar () = 0 et ar (a) = ar (b) = 1. Calculez l’ensemble librement engendr´e associ´e `a Σ. Cet
ensemble est-il isomorphe `a un ensemble d´ej`a consid´er´e dans le cours ?
8.4 Ensembles bien fond´es
Dans un ensemble inductif on peut d´efinir le rang d’un ´el´ement comme
rang(y) = min{n | y ∈ Fn
}
Ainsi on peut voir un ensemble inductif comme un ensemble stratifi´e (ou ordonn´e) en niveaux
0, 1, 2, . . . On peut imaginer des ensembles avec une structure d’ordre diff´erente. Par exemple,
consid´erons N∪ {∞} avec ∞ > n si n ∈ N. Clairement, le principe de r´ecurrence (7) n’est pas
valide dans cet ensemble car mˆeme si un ensemble Z contient 0 et est stable par successeur
il n’est pas forcement ´egal `a N ∪ {∞}. On va donc consid´erer un principe d’induction plus
g´en´eral qui s’applique aussi `a des structures comme N ∪ {∞}.
D´efinition 8.13 (ensemble bien fond´e) Un ensemble bien fond´e est un couple (W, >) o`u
(1) W est un ensemble, (2) >⊆ W × W est une relation transitive et (3) il n’existe pas de
s´equence infinie w0 > w1 > w2 > · · · dans W.
19
Exemple 8.14 L’ensemble des nombres naturels avec l’ordre usuel est bien fond´e. L’ensemble
des nombres entiers ou l’ensemble des nombres rationnels positifs ne le sont pas. L’ensemble
N ∪ {∞} est bien fond´e.
Exemple 8.15 L’ensemble des formules du calcul propositionnel ordonn´ees selon leur taille
est bien fond´e.
Exercice 8.16 Soient N l’ensemble des nombres naturels, Nk
le produit cart´esien N×· · ·×N
k fois et A =
S
{Nk
| k ≥ 1}. Soit < une relation binaire sur A telle que : (x1, . . . , xn) <
(y1, . . . , ym) ssi il existe k ≤ min(n, m) (x1 = y1, . . . , xk−1 = yk−1, xk < yk) Est-il vrai que <
est un ordre bien fond´e ? Donner soit une preuve soit un contre-exemple.
Si x ∈ W on d´enote par ↓ (x) l’ensemble {y | x > y} des ´el´ements strictement plus petits
que x.
D´efinition 8.17 (principe d’induction) Soit (W, >) un ordre bien fond´e et Z ⊆ W. Chaque
ordre bien fond´e admet le principe de raisonnement par induction suivant :
∀x(↓ (x) ⊆ Z → x ∈ Z)
Z = W
(9)
18Si on est p´edant on devrait ´ecrire (¬, A), (∧, A, B) et (∨, A, B).
19Il en suit que > est un ordre strict, c’est-`a-dire pour tout w ∈ W, w 6> w.
52Par exemple, consid´erons W = N∪ {∞}. Maintenant on ne peut pas appliquer le principe
`a Z = N car ↓ (∞) ⊆ N mais ∞ ∈/ N. Il est instructif d’expliciter le principe quand W est
l’ensemble des nombres naturels avec l’ordre standard >. Dans ce cas la condition ↓ (x) ⊆ Z
s’exprime aussi par : ∀ y < x y ∈ Z. Donc pour montrer que Z = N il suffit de montrer :
∀ x ∀ y < x y ∈ Z → x ∈ Z c’est-`a-dire : pour tout nombre x, il faut montrer que le fait
que les ´el´ements plus petits que x sont dans Z implique que x est dans Z aussi. On peut
reformuler cette condition par :
(indN)
0 ∈ Z ∀ x > 0 ((∀ y < x y ∈ Z) → x ∈ Z)
Z = N
La condition est alors tr`es proche du principe de r´ecurrence standard :
(recN)
0 ∈ Z ∀ x > 0 (x − 1 ∈ Z → x ∈ Z)
Z = N
En effet on peut montrer que les deux principes sont ´equivalents.
Le principe d’induction (9) et la notion de bonne fondation sont deux faces de la mˆeme
m´edaille.
Th´eor`eme 8.18 Soit (W, >) un ordre. (W, >) est bien fond´e si et seulement si le principe
d’induction (9) est valide.
Idee de la preuve ´ . (⇒) Supposons que le principe (9) ne soit pas valide. Donc il y a un
ensemble Z tel que ∀x(↓ (x) ⊆ Z → x ∈ Z) mais x0 ∈/ Z. Mais alors il doit exister x1 ∈↓ (x0)
tel que x1 ∈/ Z. Par le mˆeme argument on trouve x2 ∈↓ (x1) tel que x2 ∈/ Z. Donc on trouve
une s´equence infinie x0 > x1 > x2 > · · · dans W ce qui contredit l’hypoth`ese de bonne
fondation.
(⇐) Soit
Z = {x | il n’y a pas de suite descendante infinie `a partir de x}
L’ensemble Z satisfait la condition
∀x(↓ (x) ⊆ Z → x ∈ Z)
ainsi par le principe d’induction (9), Z = W et donc W est bien fond´e. •
539 M´ethodes de terminaison
Un probl`eme fondamental en informatique consiste `a d´emontrer la terminaison d’un programme
ou d’un syst`eme de r´eduction.
D´efinition 9.1 (syst`eme de r´eduction) Un syst`eme de r´eduction est un couple (A,→) o`u
A est un ensemble et →⊆ A × A.
Exemple 9.2 Un automate fini M = (Σ, Q, q0, F, δ) o`u δ : Σ × Q → 2
Q, d´efinit un syst`eme
de r´eduction sur l’ensemble des configurations (Σ∗ × Q×) par (w, q) → (w
0
, q0
) si w = aw0
et
q
0 ∈ δ(q, a).
Exemple 9.3 Le comportement d’un programme peut ˆetre d´efini par un syst`eme de r´eduction.
Par exemple, consid´erons un langage imp´eratif ´el´ementaire compos´e de :20
Variables v ::= x | y | · · ·
Expressions e ::= v | t | f | · · ·
Programmes P ::= skip | v := e | if e then P else P | while e do P | P; P
Une m´emoire µ est une fonction qui affecte `a chaque variable une valeur (dans notre cas,
true, false, . . .). Maintenant, le comportement d’un programme peut ˆetre d´efini par un syst`eme
de r´eduction sur les couples (P, µ). D’abord on d´efinit la valeur [[e]]µ d’une expression e dans
une m´emoire µ :
21
[[x]]µ = µ(x), [[t]]µ = true, [[f]]µ = false, · · ·
Ensuite, on donne des r`egles pour ´evaluer un couple (P, µ).
(x := e, µ) → (skip, µ[[[e]]µ/x])
(if e then P else Q, µ) → (Q, µ) si [[e]]µ = false
(if e then P else Q, µ) → (P, µ) si [[e]]µ = true
(while e do P, µ) → (skip, µ) si [[e]]µ = false
(while e do P, µ) → (P; (while e do P), µ) si [[e]]µ = true
(skip; P, µ) → (P, µ)
(P; Q, µ) → (P
0
; Q, µ0
) si (P, µ) → (P
0
, µ0
)
Remarque 9.4 La d´efinition de la relation → est aussi de nature inductive. Soit Prog l’ensemble
des programmes et Mem l’ensemble des m´emoires. La relation → est le plus petit
ensemble contenu dans (Prog × Mem)
2
qui contient les couples ((P, µ),(P
0
, µ0
)) qui satisfont
une des premi`ere 6 conditions (r`egles) et qui est stable par rapport `a une famille de fonctions
{fQ | Q ∈ Prog} d´efinie par fQ((P, µ),(P
0
, µ0
)) = ((P; Q, µ),(P
0
; Q, µ0
)).
D´efinition 9.5 (terminaison) Un syst`eme de r´e´ecriture (X, →) termine s’il n’existe pas de
suite infinie x0 → x1 → x2 → · · ·.
20On pr´esente ici la grammaire selon la notation BNF (Backus-Naur Form). Comme dans le cas des formules
du calcul propositionnel, on pourrait voir les programmes comme les ´el´ements d’un ensemble librement
engendr´e.
21On remarquera l’analogie avec l’interpr´etation d’une formule du calcul propositionnel par rapport `a une
affectation.
54Soit →+ la clˆoture transitive de la relation →, `a savoir :
→1=→ →n+1= (→) ◦ (→n
) →+=
[
n≥1
→n
Il y a une relation naturelle entre terminaison et ordres bien fond´es.
D´efinition 9.6 (plongement monotone) Soit (X, →) un syst`eme de r´e´ecriture et (W, >)
un ordre bien fond´e. X admet un plongement monotone dans W s’il existe une fonction
µ : X → W telle que x → y implique µ(x) > µ(y).
Th´eor`eme 9.7 Soit X = (X, →) un syst`eme de r´e´ecriture. Les assertions suivantes sont
´equivalentes :
(1) X termine.
(2) (X, →+) est bien fond´e.
(3) X admet un plongement monotone dans un ordre bien fond´e.
Idee de la preuve ´ . (1) ⇒ (2) Si (X, →+) n’est pas bien fond´e, on a une s´equence x0 →+
x1 →+ x2 →+ · · ·. Donc (X, →) ne termine pas.
(2) ⇒ (3) Il suffit de prendre comme ordre bien fond´e (X, →+) et comme plongement
l’identit´e.
(3) ⇒ (2) Si (X, →) ne termine pas on a une s´equence x0 → x1 → · · · ce qui induit une
s´equence µ(x0) > µ(x1) > · · · dans l’ordre bien fond´e. •
D´efinition 9.8 Soit (X, →) un syst`eme de r´e´ecriture.
(1) L’ensemble des successeurs imm´ediats d’un ´el´ement x ∈ X est d´efini par :
suc(x) = {y | x → y}
(2) L’ensemble des successeurs d’un ´el´ement x ∈ X est d´efini par :
suc+(x) = {y | x →+ y}
(3) On dit que le syst`eme est `a branchement fini si pour tout x ∈ X, suc(x) est fini.
Proposition 9.9 Soit X = (X, →) un syst`eme de r´e´ecriture `a branchement fini.
(1) Si X termine alors pour tout x, suc+(x) est fini.
(2) X termine si et seulement si il admet un plongement dans N.
Idee de la preuve ´ . (1) Si suc+(x0) est infini alors il existe x1 ∈ suc(x0) tel que suc+(x1)
est infini donc il existe x2 ∈ suc(x1) tel que suc+(x2) . . . On obtient ainsi une s´equence
x0 → x1 → x2 → · · · qui contredit l’hypoth`ese que le syst`eme termine.
(2) (⇐) Par le th´eor`eme 9.7. (⇒) On peut d´efinir µ(x) = ]suc+(x). Alternativement, on peut
d´efinir µ(x) comme la longueur de la plus longue s´equence de r´eduction qui commence avec
x. Dans les deux cas on v´erifie que si x → y alors µ(x) > µ(y). •
55Exercice 9.10 On consid`ere des programmes imp´eratifs while dont les variables prennent
comme valeurs des nombres naturels. Montrez que le programme suivant termine o`u l’on sait
que le test Φ termine et n’a pas d’effet de bord (c’est-`a-dire que l’´evaluation du test n’affecte
pas la valeur associ´ee aux variables) :
while u > l + 1 do
(r := (u + l) div 2;
if Φ then u := r else l := r)
9.1 Confluence, terminaison et forme normale
Soit (X, →) un syst`eme de r´e´ecriture. Soit ∗→ la clˆoture r´eflexive et transitive de →, `a
savoir ∗→=→+ ∪Id o`u Id est la relation identit´e.
D´efinition 9.11 On dit que le syst`eme est confluent si pour tout x ∈ X
x
∗→ y1 et x
∗→ y2 implique ∃ z (y1
∗→ z et y2
∗→ z) (10)
On dit que le syst`eme est localement confluent si pour tout x ∈ X
x → y1 et x → y2 implique ∃ z y1
∗→ z et y2
∗→ z
On dit que y est une forme normale de x si x
∗→ y et ¬∃ z y → z.
Proposition 9.12 (Newman) Soit X = (X, →) un syst`eme de r´e´ecriture.
(1) Si X est confluent alors il est localement confluent.
(2) Si X termine et est localement confluent alors il est confluent.
(3) Si X est confluent alors chaque ´el´ement a au plus une forme normale.
(4) Si X termine et est localement confluent alors chaque ´el´ement a exactement une forme
normale.
Idee de la preuve ´ . (1) Par d´efinition.
(2) On montre que tout ´el´ement x est confluent. Si x → x1
∗→ y1 et x → x2
∗→ y2, par
confluence locale x1
∗→ y et x2
∗→ y. Par hypoth`ese inductive x1 et x2 sont confluents et ceci
implique que x est confluent aussi.
(3) Si x
∗→ y1 et x
∗→ y2 et y1, y2 sont des formes normales alors y1 = y2 car autrement on
contredit la confluence.
(4) Par (2) si le syst`eme est localement confluent alors il est confluent et donc si x
∗→ x1, x2
et x1, x2 sont des formes normales alors x1 = x2. •
Exercice 9.13 Soit ({a, b, c, d},→) un syst`eme de r´e´ecriture o`u →= {(c, a),(c, d),(d, c),(d, b)}.
Dire si : le syst`eme termine, est localement confluent, est confluent.
569.2 Ordre lexicographique
Il y a des syst`emes de r´e´ecriture qui ne sont pas `a branchement fini et dont la terminaison
ne peut pas ˆetre d´emontr´ee par un plongement dans N.
Exemple 9.14 On consid`ere le syst`eme de r´e´ecriture (N × N,→) o`u
(i + 1, j) → (i, k) (i, j + 1) → (i, j) pour i, j, k ∈ N
Ce syst`eme n’est pas `a branchement fini `a cause de la premi`ere r`egle et il n’admet pas de
plongement monotone dans N. Si µ : N × N → N est monotone, on devrait avoir :
k = µ(1, 1) > µ(0, k) > µ(0, k − 1) > · · · > µ(0, 0)
mais on a seulement k nombres naturels sous k alors que la chaˆıne qu’on vient de construire
a longueur k + 1. Cependant, on peut montrer sa terminaison par plongement dans un ordre
lexicographique que nous allons construire dans la suite.
D´efinition 9.15 Soient (A, >A) et (B, >B) deux ordres stricts. L’ordre lexicographique >l
sur A × B est d´efini par :
(x, y) >l (x
0
, y0
) si x >A x
0
ou (x = x
0
et y >B y
0
)
Th´eor`eme 9.16 (1) L’ordre lexicographique de deux ordres stricts est encore un ordre strict.
(2) L’ordre lexicographique de deux ordres bien fond´es est encore bien fond´e.
Idee de la preuve ´ . (1) Il est imm´ediat que (x, y) 6>l (x, y). Supposons (x1, y1) >l (x2, y2)
et (x2, y2) >l (x3, y3).
• Si x1 > x2 alors x1 > x3 donc (x1, y1) >l (x3, y3).
• Si x1 = x2 alors y1 > y2. Si x2 > x3 alors (x1, y1) >l (x3, y3). Si par contre x2 = x3 alors
y2 > y3 et donc (x1, y1) >l (x3, y3).
(2) Par contradiction. Supposons (x0, y0) >l (x1, y1) >l
· · · Ceci implique x0 ≥ x1 ≥ · · ·
Comme A est bien fond´e il existe i tel que xj = xi pour j ≥ i. Mais ceci implique yi > yi+1 >
yi+2 > · · · ce qui est impossible si B est bien fond´e. •
Exercice 9.17 (1) Montrez que le syst`eme dans l’exemple 9.14 termine.
(2) Montrez que le syst`eme (N × N,→) o`u
(i, j + 1) → (i, j) et (i + 1, j) → (i, i)
termine.
(3) Trouvez (s’il existe) un plongement monotone du syst`eme pr´ec´edent dans (N, >).
(4) Utilisez le principe d’induction pour d´emontrer l’existence d’une fonction (r´ecursive)
a : N × N → N telle que :
a(0, n) = n + 1
a(m + 1, 0) = a(m, 1)
a(m + 1, n + 1) = a(m, a(m + 1, n))
57(5) Calculez `a l’aide d’un programme autant de valeurs a(n, n) que possible.
(6) On ´etend l’ordre lexicographique `a un produit A = A1 × · · · × An, n ≥ 3, d’ordres bien
fond´es (Ai
, >i) :
(x1, . . . , xn) > (y1, . . . , yn) si ∃ k ≤ n (x1 = y1, . . . , xk−1 = yk−1 et xk >k yk)
Montrez que (A, >) est bien fond´e.
Exercice 9.18 Soit A = {a, b, c}
∗
l’ensemble des mots finis sur l’alphabet {a, b, c}. Soit →
une relation binaire sur A∗
telle que :
w → w
0
ssi (w = w1aaw2 et w
0 = w1bcw2) ou
(w = w1bbw2 et w
0 = w1acw2) ou
(w = w1cccw2 et w
0 = w1acw2)
Donc w se r´eduit `a w
0
si w
0
est obtenu de w en rempla¸cant ou bien un sous-mot aa par bc,
ou bien un sous-mot bb par ac ou bien un sous-mot ccc par ac. Construisez un plongement
monotone dans un ordre bien fond´e qui montre la terminaison de ce syst`eme de r´eduction.
Suggestion : on peut commencer par remarquer que la derni`ere r`egle diminue le nombre de
caract`eres.
Exercice 9.19 Soit A = {0, 1}
∗
l’ensemble des mots finis sur l’alphabet {0, 1}. Si w est un
mot on d´enote par |w| sa longueur. Soit → une relation binaire sur A telle que :
w → w
0
ssi ∃ w1, w2 ∈ A (w = w101w2 et w
0 = w1100w2)
En d’autres termes, un pas de r´e´ecriture revient `a remplacer un sous-mot 01 par le mot 100.
1. Trouvez deux fonctions fi
: N → N, i = 0, 1 sur les nombres naturels N = {0, 1, 2, 3, . . .}
telles que :
A Si n > n0 alors fi(n) > fi(n
0
) pour i = 0, 1.
B Pour tout n, f1(f0(n)) > f0(f0(f1(n))).
2. On d´efinit une fonction µ : A → N par
µ() = 0, µ(wi) = fi(µ(w)) pour i = 0, 1
Montrez que µ est un plongement monotone du syst`eme de r´e´ecriture (A,→) dans l’ordre
bien fond´e (N, >).
Suggestion Montrez par r´ecurrence sur |w2| que µ(w101w2) > µ(w1100w2).
3. Supposons que : w0 → w1 → · · · → wn et |w0| = m. En d’autres termes, il y a n pas de
r´eduction `a partir d’un mot de longueur m.
(a) Utilisez le plongement monotone µ pour donner une borne sup´erieure `a n en fonction
de m.
(b) D´emontrez ou donnez un contre-exemple `a l’assertion suivante : n ≤ 2m3+4m+3.
58Exercice 9.20 (ordre produit) Soient (Ai
, >i) pour i = 1, . . . , n des ordres bien fond´es.
On d´efinit une relation > sur le produit cart´esien A1 × · · · × An par
(a1, . . . , an) > (a
0
1
, . . . , a0
n
) si ai ≥i a
0
i
, i = 1, . . . , n et ∃ i ∈ {1, . . . , n} ai >i a
0
i
(1) La relation > est-elle un ordre bien fond´e ?
(2) Comparez la relation > `a l’ordre lexicographique sur le produit d´efini dans l’exercice 9.17.
Exercice 9.21 Consid´erons les programmes while :
while m 6= n do
if m > n then m := m − n else n := n − m
while m 6= n do
if m > n then m := m − n
else h := m; m := n; n := h
Dire si les programmes terminent quand les variables varient sur les nombres naturels positifs.
Exercice 9.22 Soit A = {a, b}
∗
l’ensemble des mots finis sur l’alphabet {a, b}. Soit → une
relation binaire sur A telle que :
w → w
0
ssi w = w1abw2 et w
0 = w1bbaw2
Donc w se r´eduit `a w
0
si w
0
est obtenu de w en rempla¸cant un sous-mot ab avec bba.
Montrez ou invalidez les assertions suivantes (il est conseill´e de s’appuyer sur les r´esultats
d´emontr´es dans le cours) :
1. Le syst`eme de r´eduction (A,→) est `a branchement fini.
2. Le syst`eme termine.
3. Le syst`eme est localement confluent.
4. Le syst`eme est confluent.
9.3 Lemme de K¨onig
Soit N l’ensemble des nombres naturels et N∗
l’ensemble des mots finis de nombres naturels.
On va repr´esenter un arbre comme l’ensemble des chemins possibles dans l’arbre.
Formellement, on dit qu’un arbre D est un sous-ensemble de N∗ qui satisfait les conditions
suivantes :
(1) Si w ∈ D et w
0
est un pr´efixe de w (c’est-`a-dire ∃ w
00 w = w
0w
00) alors w
0 ∈ D.
(2) Si wi ∈ D et j < i alors wj ∈ D.
On peut ainsi repr´esenter des arbres infinis avec un nombre d´enombrable de noeuds et
mˆeme des arbres avec des noeuds qui ont un nombre d´enombrable de fils. On dit qu’un arbre
est `a branchement fini si chaque noeud a un nombre fini de fils.
Remarque 9.23 Parfois il est commode d’ajouter des symboles L sur les noeuds d’un arbre.
Dans ce cas on d´efinit un arbre ´etiquet´e comme une fonction partielle t : N∗ * L dont le
domaine de d´efinition est un arbre.
59Lemme 9.24 (K¨onig) Tout arbre `a branchement fini qui comporte un nombre infini de
noeuds admet un chemin infini.
Idee de la preuve ´ . On utilise le mˆeme argument mentionn´e dans la preuve de la proposition
9.9(1). Soit π = i1 · · ·ik ∈ D un chemin tel que le sous-arbre de racine π est infini. Comme D
est `a branchement fini il existe un ik+1 tel que πik+1 ∈ D et le sous-arbre de racine πik+1 est
infini. En continuant ainsi on peut construire un chemin infini dans D. •
9.4 Ordre sur les mots
On donne un premier exemple d’application du lemme de K¨onig. Soit (Σ, >) un ensemble
bien fond´e. Soit Σ∗
l’ensemble des mots finis sur Σ. On ´ecrit w w
0
si on peut obtenir w
0 de
w en rempla¸cant un caract`ere a ∈ Σ par un mot w
00 tel que tous les caract`eres dans w
00 sont
plus petits que a dans la relation >. Par exemple, si a > b > c alors on obtient aab abcbcb
en rempla¸cant le deuxi`eme caract`ere a par bcbc.
(1) On remarque que n’est pas transitive. Par exemple, aab()()bac mais aab 6 bac. Soit
donc + la clˆoture transitive de .
(2) Ajoutons `a l’alphabet Σ un caract`ere > qui domine tous les autres et un caract`ere ⊥ qui
est domin´e par tous les autres. Maintenant, toute suite
w0 w1 w2 · · ·
peut ˆetre r´e´ecrite comme
> w0 w1 w2 · · ·
en ajoutant > au d´ebut de la suite. Aussi, en supposant l’ordre alphab´etique sur Σ, la suite
bc defc defg dhifg difg
se r´e´ecrit en
> bc defc defg dhifg d⊥ifg .
Ainsi le caract`ere h qui est remplac´e par le mot vide dans la premi`ere suite est remplac´e par
⊥ dans la deuxi`eme.
(3) On remarquera que le d´eveloppement se repr´esente ais´ement par un arbre ´etiquet´e. En
effet on a ajout´e le caract`ere > pour commencer le calcul `a la racine d’un arbre et le caract`ere
⊥ pour couvrir le cas o`u un caract`ere est remplac´e par le mot vide.
A partir de cette repr´esentation il est facile de voir que l’ordre + est bien fond´e. Il suffit
de montrer que la relation n’admet pas de suite descendante infinie. Si une telle suite
existait, il serait possible de lui associer un arbre comme on vient de le voir. Or cet arbre
est `a branchement fini car un caract`ere est remplac´e par un nombre fini de caract`eres. Par
K¨onig, l’arbre en question doit comporter un chemin infini. Mais dans ce chemin on devrait
trouver une suite infinie de caract`eres a > b > c > · · · ce qui contredit l’hypoth`ese.
Exercice 9.25 Soit N∗
l’ensemble des mots finis sur les nombres naturels avec l’ordre habituel.
Montrez la terminaison du syst`eme :
u(i + 1)v → uiiv pour u, v ∈ N∗
609.5 Ordre sur les multi-ensembles
Un multi-ensemble est un ensemble dont les ´el´ements peuvent apparaˆıtre avec une certaine
multiplicit´e.
D´efinition 9.26 Un multi-ensemble M sur un ensemble A est une fonction M : A → N. Un
multi-ensemble est fini si {x | M(x) 6= 0} est fini.
On utilise la notation {| |} pour les multi-ensembles. Par exemple, {|a, b, a|} est le multiensemble
compos´e de deux occurrences de a et une de b. Certaines notations, op´erations et
relations disponibles sur les ensembles peuvent s’adapter aux multi-ensembles. Par exemple :
x ∈ M si M(x) > 0
M ⊆ N si ∀ x ∈ A M(x) ≤ N(x)
(M ∪ N)(x) = M(x) + N(x)
(M\N)(x) = M(x)
.
− N(x)
o`u n
.
− m = n − m si n − m ≥ 0 et 0 autrement. Si A est un ensemble on d´enote avec M(A)
l’ensemble des multi-ensembles finis sur A.
Remarque 9.27 Un multi-ensemble fini sur A peut ˆetre repr´esent´e par un mot fini sur A.
Cette repr´esentation est unique si l’on suppose que l’op´eration de concat´enation est commutative.
D´efinition 9.28 Soient (A, >) un ordre strict et M, N ∈ M(A). On ´ecrit : M >M(A) N s’ils
existent X, Y ∈ M(A) tels que X 6= ∅, X ⊆ M, N = (M\X) ∪ Y et ∀ y ∈ Y ∃ x ∈ X x > y.
Par exemple, si A = N avec l’ordre usuel alors {|5, 3, 1, 1|} >M(N) {|4, 3, 3, 1|}. Pour v´erifier
l’in´egalit´e on peut choisir X = {|5, 1|} et Y = {|4, 3|} mais on peut aussi choisir X = {|5, 3, 3, 1|}
et Y = {|4, 3, 3, 1|}.
Proposition 9.29 Si > est un ordre strict sur A alors >M(A) est un ordre strict sur M(A).
Idee de la preuve ´ . Il faut v´erifier X 6>M(A) X et que >M(A) est transitif. La deuxi`eme
propri´et´e demande un peu de travail. Supposons que :
X ∪ {|x1, . . . , xm|} >M(A) X ∪ {|y1, . . . , yn|} = X0 ∪ {|w1, . . . , wp|} >M(A) X0 ∪ {|z1, . . . zq|}
On peut d´ecomposer X en X1 ∪ X2 et {|y1, . . . , yn|} en Y1 ∪ Y2 pour que X0 = X1 ∪ Y1 et
{|w1, . . . , wp|} = X2 ∪ Y2. Donc on obtient
X1 ∪ X2 ∪ {|x1, . . . , xm|} >M(A) X1 ∪ X2 ∪ Y1 ∪ Y2 >M(A) X1 ∪ Y1 ∪ {|z1, . . . , zq|}
Maintenant il suffit de v´erifier que chaque ´el´ement dans Y1 ∪ {|z1, . . . , zq|} est domin´e par un
´el´ement dans X2 ∪ {|x1, . . . , xm|}. •
Exercice 9.30 On ´ecrit X >1 Y si Y est obtenu de X en rempla¸cant un ´el´ement de X par
un multi-ensemble d’´el´ements strictement plus petits. Montrez que : (1) la relation >1 n’est
pas transitive (mˆeme si > est total) et (2) la clˆoture transitive de >1 est ´egale `a >M(A)
.
61Proposition 9.31 L’ordre (A, >) est bien fond´e si et seulement si l’ordre (M(A), >M(A)
)
est bien fond´e.
Idee de la preuve ´ . (⇐) Si a0 > a1 > · · · est une suite d´ecroissante dans A alors
{|a0|} >M(A) {|a1|} >M(A)
. . . en est une dans M(A).
(⇒) Il suffit de montrer que >1 est bien fond´e. L’argument est similaire `a celui utilis´e pour
l’ordre sur les mots et il fait aussi appel au lemme de K¨onig. •
Exercice 9.32 Soit N∗
les mots finis de nombres naturels. Montrez la terminaison du syst`eme :
u(i + 1)v → iviui pour u, v ∈ N∗
62A TD : Calcul propositionnel 1 (m´ethode de Davis Putnam)
La m´ethode de Davis Putnam permet de d´ecider si une formule en forme normale conjonctive
est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement
vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de
litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne
b ∈ {0, 1} dans A comme suit :
[b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1}
[b/x]C =
1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C)
C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C)
C autrement
On d´efinit une fonction DP qui agit r´ecursivement sur une formule A en CNF dans la
repr´esentation d´ecrite ci-dessus :
function DP(A) = case
(1) A = ∅ : true
(2) ∅ ∈ A false
(3) {x,¬x} ⊆ C ∈ A : DP(A\{C})
(4) {x} ∈ A : DP([1/x]A)
(5) {¬x} ∈ A : DP([0/x]A)
(6) else : choisir x dans A;
DP([0/x]A) or DP([1/x]A)
Dans (1), nous avons une conjonction du vide qui par convention est ´equivalente `a true. Dans
(2), A contient une clause vide. La disjonction du vide ´etant ´equivalente `a false, la formule A
est aussi ´equivalente `a false. Dans (3), une clause contient un litt´eral et sa n´egation et elle est
donc ´equivalente `a true. Dans (4) et (5), A contient une clause qui est constitu´ee uniquement
d’une variable ou de sa n´egation. Ceci permet de connaˆıtre la valeur de la variable dans toute
affectation susceptible de satisfaire la formule. Dans (6), nous consid´erons les deux valeurs
possibles d’une affectation d’une variable.
Exercice A.1 Appliquez DP aux formules {{x,¬y}, {¬x, y}} et {{x, y}, {¬x, y}, {x,¬y}, {¬x,¬y}}.
Exercice A.2 (1) Montrez que si A est une fonction en CNF alors la fonction DP termine.
(2) Montrez que DP(A) retourne true (false) si et seulement si A est satisfiable (ne l’est pas).
Exercice A.3 Fait : toute formule peut ˆetre transform´ee en CNF. Expliquez comment utiliser
la m´ethode de Davis-Putnam pour d´ecider la validit´e d’une formule.
Exercice A.4 Modifiez la fonction DP pour que, si la formule A est satisfiable, elle retourne
une affectation v qui satisfait A.
Exercice∗ A.5 R´efl´echissez aux structures de donn´ees et aux op´erations n´ecessaires `a la
mise en oeuvre de l’algorithme en Java.
63B TD : Calcul Propositionnel 2 (´equivalence et d´efinissabilit´e)
Exercice B.1 Montrez les ´equivalences logiques :
(A ∨ 0) ≡ A, (A ∨ 1) ≡ 1, (A ∨ B) ≡ (B ∨ A),
((A ∨ B) ∨ C) ≡ (A ∨ (B ∨ C)), (A ∨ A) ≡ A
(A ∧ 0) ≡ 0, (A ∧ 1) ≡ A, (A ∧ B) ≡ (B ∧ A),
((A ∧ B) ∧ C) ≡ (A ∧ (B ∧ C)), (A ∧ A) ≡ A,
(A ∧ B) ∨ C ≡ (A ∨ C) ∧ (B ∨ C), (A ∨ B) ∧ C ≡ (A ∧ C) ∨ (B ∧ C),
¬¬A ≡ A, ¬(A ∨ B) ≡ ((¬A) ∧ (¬B)), ¬(A ∧ B) ≡ ((¬A) ∨ (¬B)) .
Exercice B.2 (1) Montrez l’´equivalence logique :
(A ∧ B) ∨ (¬A ∧ B) ≡ B (11)
(2) On peut appliquer cette ´equivalence logique pour simplifier une forme normale disjonctive.
Par exemple, consid´erez la fonction f(x, y, z) d´efinie par le tableau de v´erit´e :
x\yz 00 01 11 10
0 0 1 1 0
1 1 1 1 1
Calculez la forme normale disjonctive de f et essayez de la simplifier en utilisant l’´equivalence
logique (11).
(3) La pr´esentation du tableau de v´erit´e n’est pas arbitraire. . . Proposez une m´ethode graphique
pour calculer une forme normale disjonctive simplifi´ee.
Exercice B.3 Soit f une fonction sur les nombres naturels. Dire qu’un probl`eme est d´ecid´e
en O(f), signifie qu’on dispose d’un algorithme A et de n0, k nombres naturels tels que pour
toute entr´ee dont la taille n est sup´erieure `a n0, le temps de calcul de A sur l’entr´ee en
question est inf´erieure `a k · f(n).
(1) Montrez que la satisfaction d’une formule en DNF et la validit´e d’une formule en CNF
peuvent ˆetre d´ecid´ees en O(n).
(2) Soit pair (x1, . . . , xn) = (Σi=1,...,nxi) mod 2 la fonction qui calcule la parit´e d’un vecteur de
bits. Montrez que la repr´esentation en DNF ou CNF de cette fonction est en O(2n
). Peut-on
appliquer l’´equivalence logique (11) pour simplifier la repr´esentation ?
Exercice B.4 (if-then-else) La fonction ternaire ITE est d´efinie par ITE(1, x, y) = x et
ITE(0, x, y) = y. Montrez que toute fonction f : 2
n → 2, n ≥ 0 s’exprime par composition de
la fonction ITE et des (fonctions) constantes 0 et 1.
Exercice B.5 L’or exclusif ⊕ (xor) est d´efini par A ⊕ B ≡ (A ∧ ¬B) ∨ (¬A ∧ B). Montrez
que :
(1) ⊕ est associatif et commutatif.
(2) x ⊕ 0 ≡ x et x ⊕ x ≡ 0.
(3) Toute fonction bool´eenne f : 2
n → 2 peut ˆetre repr´esent´ee `a partir de 1, ∧ et ⊕.
64Exercice B.6 (nand,nor) Les fonctions binaires NAND et NOR sont d´efinies par NAND(x, y) =
NOT(AND(x, y)) et NOR(x, y) = NOT(OR(x, y)). Montrez que toute fonction f : 2
n → 2,
n ≥ 0, s’exprime comme composition de la fonction NAND (ou de la fonction NOR). Montrez
que les 4 fonctions unaires possibles n’ont pas cette propri´et´e et que que parmi les 16 fonctions
binaires possibles il n’y en a pas d’autres qui ont cette propri´et´e.
65C TD : Calcul Propositionnel 3 (clauses de Horn et circuits
combinatoires)
Exercice C.1 Une clause de (Alfred) Horn est une clause (c’est-`a-dire une disjonction de
litt´eraux) qui contient au plus un litt´eral positif. Une formule de Horn est une formule en
CNF dont les clauses sont des clauses de Horn.
(1) Montrez que toute formule de Horn est ´equivalente `a la conjonction (´eventuellement vide)
de clauses de Horn de la forme :
(1) x
(2) ¬x1 ∨ · · · ∨ ¬xn
(3) ¬x1 ∨ · · · ∨ ¬xn ∨ xn+1
o`u n ≥ 1 et xi 6= xj si i 6= j. Dans ce cas on dit que la formule de Horn est r´eduite.
(2) Montrez qu’une formule de Horn r´eduite qui ne contient pas de clauses de la forme (1)
ou qui ne contient pas de clauses de la forme (2) est satisfiable.
(3) Donnez une m´ethode efficace (temps polynomial) pour d´eterminer si une formule de Horn
est satisfiable.
Exercice C.2 Un d´ecodeur est un circuit avec n entr´ees xn−1, . . . , x0 et 2
n
sorties y2n−1, . . . , y0
tel que
yi = 1 ssi i = (xn−1 · · · x0)2
R´ealisez un tel circuit.
Exercice C.3 Un additionneur est un circuit bool´een avec 2n entr´ees xn−1, yn−1, . . . , x0, y0
et n + 1 sorties rn, sn−1, . . . , s0 tel que
(xn−1 · · · x0)2 + (yn−1 · · · y0)2 = (rnsn−1 · · · s0)2
On peut r´ealiser un additionneur en utilisant l’algorithme standard qui propage la retenue de
droite `a gauche.
(1) R´ealisez un circuit A avec 3 entr´ees x, y, r et deux sorties s, r0
tel que
(r
0
s)2 = (x)2 + (y)2 + (r)2
(2) Expliquez comment inter-connecter n circuits A pour obtenir un additionneur sur n bits.
(3) Montrez que dans le circuit en question le nombre de portes et la longueur du chemin le
plus long sont proportionnels `a n.
Exercice∗ C.4 Le but de cet exercice est de r´ealiser un additionneur dont le nombre de portes
est encore polynomiale en n mais dont la longueur du chemin le plus long est proportionnelle
`a lg(n). Pour ´eviter que la retenue se propage `a travers tout le circuit, l’id´ee est d’anticiper sa
valeur. Ainsi pour additionner 2 vecteurs de longueur n, on additionne les premiers n/2 bits
(ceux de poids faible) et en mˆeme temps on additionne les derniers n/2 bits (ceux de poids
fort) deux fois (en parall`ele) une fois avec retenue initiale 0 et une fois avec retenue initiale
1. On applique cette m´ethode r´ecursivement sur les sous-vecteurs de longueur n/4, n/8, . . .
selon le principe diviser pour r´egner.
(1) Construisez explicitement un tel circuit pour n = 4.
(2) D´eterminez en fonction de n le nombre de portes et la longueur du chemin le plus long
du circuit obtenu.
66D TD : Syst`eme de preuve de Gentzen et compacit´e
Rappel : voici le syst`eme de preuve de Gentzen.
(Ax )
A, Γ ` A, ∆
(∧ `)
A, B, Γ ` ∆
A ∧ B, Γ ` ∆
(` ∧)
Γ ` A, ∆ Γ ` B, ∆
Γ ` A ∧ B, ∆
(∨ `)
A, Γ ` ∆ B, Γ ` ∆
A ∨ B, Γ ` ∆
(` ∨)
Γ ` A, B, ∆
Γ ` A ∨ B, ∆
(¬ `)
Γ ` A, ∆
¬A, Γ ` ∆
(` ¬)
A, Γ ` ∆
Γ ` ¬A, ∆
Exercice D.1 Montrez que :
(1) Un s´equent A, Γ ` A, ∆ est valide.
(2) Pour chaque r`egle d’inf´erence la conclusion est valide si et seulement si les hypoth`eses
sont valides.
Exercice D.2 (sous-formule) Montrez que si un s´equent est d´erivable alors il y a une
preuve du s´equent qui contient seulement des sous formules de formules dans le s´equent.
Exercice∗ D.3 (affaiblissement) Montrez que si le s´equent Γ ` ∆ est d´erivable alors le
s´equent Γ ` A, ∆ l’est aussi.
Exercice D.4 (implication) Dans le syst`eme de Gentzen on peut donner un traitement
direct de l’implication :
(→`)
Γ ` A, ∆ B, Γ ` ∆
A → B, Γ ` ∆
(`→)
Γ, A ` B, ∆
Γ ` A → B, ∆
D´emontrez la correction et compl´etude du syst`eme de Gentzen ´etendu avec ces r`egles.
Exercice D.5 Montrez que les r`egles pour la disjonction et l’implication sont d´erivables des
r`egles pour la conjonction et la n´egation en utilisant les ´equivalences : A ∨ B ≡ ¬(¬A ∧ ¬B)
et A → B ≡ ¬A ∨ B.
Exercice D.6 (coupure) La r`egle de coupure (ou cut) est :
(coupure)
A, Γ ` ∆ Γ ` A, ∆
Γ ` ∆
Montrez que le syst`eme de Gentzen ´etendu avec cette r`egle est toujours correct (et complet).
Exercice D.7 Soit T un ensemble de formules. On ´ecrit T |= A si pour toute affectation v,
si v satisfait T alors v satisfait A. Montrez que si T |= A alors il existe T0 sous-ensemble fini
de T tel que T0 |= A. Suggestion : utilisez le th´eor`eme de compacit´e.
67E TD : R´esolution
Exercice E.1 Montrez que la r`egle d’inf´erence suivante est valide :
A ∨ ¬C B ∨ C
A ∨ B
(12)
Exercice E.2 Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste
utilis´ee pour d´ecrire la m´ethode de Davis-Putnam.
– Une clause C est un ensemble de litt´eraux.
– Une formule A est un ensemble de clauses.
Nous consid´erons la r`egle :
A ∪ {C ∪ {x}} ∪ {C
0 ∪ {¬x}} x /∈ C ¬x /∈ C
0
A ∪ {C ∪ {x}} ∪ {C
0 ∪ {¬x}} ∪ {C ∪ C
0}
(13)
Dans la suite on appelle (13) r`egle de r´esolution.
22 L’effet de l’application de la r`egle consiste
`a ajouter une nouvelle clause C ∪ C
0
qu’on appelle r´esolvant des deux clauses C ∪ {x} et
C
0 ∪ {¬x}.
(1) Montrez que l’hypoth`ese est logiquement ´equivalente `a la conclusion.
(2) Conclure que si la conclusion n’est pas satisfiable alors l’hypoth`ese n’est pas satisfiable.
En particulier, si la conclusion contient la clause vide alors l’hypoth`ese n’est pas satisfiable.
Fait Si une formule A en CNF n’est pas satisfiable alors la r`egle de r´esolution permet de
d´eriver une formule A0 avec une clause vide. On dit que la r`egle de r´esolution est compl`ete
pour la r´efutation, c’est-`a-dire pour la d´erivation de la clause vide. La m´ethode peut ˆetre
impl´ement´ee it´erativement. A chaque it´eration on ajoute toutes les clauses qui sont un
r´esolvant de deux clauses. Cette it´eration termine forcement car le nombre de clauses qu’on
peut construire est fini. Parfois, il convient de repr´esenter la d´erivation comme un graphe
dirig´e acyclique (ou DAG pour directed acyclic graph) dont les noeuds sont ´etiquet´es par les
clauses. Initialement on a autant de noeuds que de clauses et pas d’arˆetes. Chaque fois qu’on
applique la r`egle de r´esolution (13) on introduit un nouveau noeud qui est ´etiquet´e avec la
clause r´esolvant C ∪ C
0
et deux nouvelles arˆetes qui vont des noeuds ´etiquet´es avec les clauses
C ∪ {x} et C
0 ∪ {¬x} vers le noeud ´etiquet´e avec la clause C ∪ C
0
.
Exercice E.3 Soit A une formule en CNF et C une clause. Expliquez comment utiliser la
m´ethode de r´esolution pour ´etablir si l’implication A → C est valide.
Exercice E.4 Construire la formule A en CNF qui correspond au principe du nid de pigeon
avec 2 pigeons et 1 nid. Appliquez la r`egle de r´esolution. Mˆeme probl`eme avec 2 pigeons et 2
nids.
Exercice E.5 Soit A une formule en CNF avec m variables et n clauses. Montrez qu’il y a
au plus m · (n · (n − 1)/2) fa¸cons d’appliquer la r`egle de r´esolution.
Exercice E.6 Un exercice de r´evision. On consid`ere les formules en CNF suivantes :
22Sans les conditions x /∈ C et ¬x /∈ C
0
on pourrait par exemple ‘simplifier’ les clauses {x} et {¬x} en
{x,¬x}.
681. ¬x ∨ (¬y ∨ x)
2. (x ∨ y ∨ ¬z) ∧ (x ∨ y ∨ z) ∧ (x ∨ ¬y) ∧ ¬x.
3. (x ∨ y) ∧ (z ∨ w) ∧ (¬x ∨ ¬z) ∧ (¬y ∨ ¬w).
Pour chaque formule :
1. Si la formule est valide calculez une preuve de la formule dans le syst`eme de Gentzen.
2. Si la formule est satisfiable mais pas valide calculez une affectation qui satisfait la formule
en utilisant la m´ethode de Davis-Putnam.
3. Si la formule n’est pas satisfiable d´erivez la clause vide en utilisant la m´ethode par
r´esolution.
69F TD : Langages formels et automates finis
Exercice F.1 Montrez que pour tout langage L, L
∗ = (L
∗
)
∗
.
Exercice F.2 Montrez qu’il existe des langages L1 et L2 tels que (L1 ∪ L2)
∗ 6= L
∗
1 ∪ L
∗
2
.
Exercice F.3 Montrez qu’il existe des langages L1 et L2 tels que (L1 · L2)
∗ 6= L
∗
1
· L
∗
2
.
Exercice F.4 Pour chacun des langages suivants, construire un automate fini non d´eterministe
qui l’accepte :
1. Les repr´esentations binaires des nombres pairs.
2. Le langage des mots sur l’alphabet {a, b} contenant ou bien la chaˆıne aab ou bien la
chaˆıne aaab.
3. Le langage des mots sur l’alphabet {0, 1} dont le troisi`eme caract`ere de droite existe et
est ´egale `a 1.
Construire des automates d´eterministes pour les langages d´ecrits ci-dessus.
Exercice∗ F.5 Soient M un AFD qui accepte un langage L et N1, N2 deux AFN qui acceptent
les langages L1, L2, respectivement (sur un alphabet Σ fix´e).
1. Montrez qu’on peut construire un AFD qui accepte le langage compl´ementaire Σ
∗\L.
2. Montrez qu’on peut construire un AFN qui accepte le langage L1 ∪L2 et le langage it´er´e
(L1)
∗
.
3. Conclure que la classe des langages accept´es par un AFD est stable par union, intersection,
compl´ementaire et it´eration.
70G TD : Calculabilit´e 1 (machines de Turing et ´enum´erations)
Exercice G.1 Donnez la description formelle d’une MdT qui d´ecide le langage {w]w | w ∈
{0, 1}
∗}.
Exercice G.2 Donnez la description formelle d’une MdT qui d´ecide le langage des mots sur
l’alphabet {0} dont la longueur est une puissance de 2 : 2
0
, 2
1
, 2
2
, . . .
Exercice G.3 D´ecrivez informellement une MdT qui d´ecide le langage :
{a
i
b
j
c
k
| i · j = k et i, j, k ≥ 1} .
Exercice G.4 Soit Σ = {0, 1} et suc : Σ∗ → Σ
∗
la fonction ‘successeur’ en base 2 telle que :
(suc(w))2 = (w)2 + 1
Montrez que suc est r´ecursive.
Exercice G.5 On peut ´enum´erer les couples de nombres naturels en proc´edant ‘par diagonales’
:
(0, 0), (1, 0),(0, 1), (2, 0),(1, 1),(0, 2), (3, 0). . .
Montrez que la fonction hm, ni = (m + n)(m + n + 1)/2 + n est une bijection entre N × N et
N. D´ecrire un algorithme pour calculer la fonction inverse.
Exercice G.6 On d´efinit les fonctions h ik : Nk → N pour k ≥ 2 :
hm, ni2 = hm, ni
hn1, . . . , nkik = hhn1, . . . , nk−1ik−1, nki si k ≥ 3
Montrez que les fonctions h ik sont des bijections.
71H TD : Calculabilit´e 2 (´enum´erations et ind´ecidabilit´e)
Exercice H.1 On consid`ere l’ensemble N∗ des mots finis de nombres naturels. Notez que
N∗
est en correspondance bijective avec S
k≥0 Nk
. D´efinissez une bijection entre N∗
et N.
Exercice H.2 Soit Σ = {a, b, . . . , z} un alphabet fini. On peut ´enum´erer les ´el´ements de Σ
∗
comme suit :
, a, b, . . . , z, aa, . . . , az, ba, . . . , bz, za, . . . , zz, aaa, . . .
Si Σ contient k ´el´ements on aura k
0 mots de longueur 0, k mots de longueur 1, k
2 mots de
longueur 2, . . . D´efinissez une bijection entre Σ
∗
et N.
Exercice∗ H.3 (1) Montrez qu’un langage est semi-d´ecidable si et seulement si il est le
domaine de d´efinition d’une fonction partielle r´ecursive.
(2) On dit qu’un langage L ⊆ Σ
∗
est r´ecursivement ´enum´erable s’il est l’image d’une fonction
partielle r´ecursive. Montrez qu’un langage L est r´ecursivement ´enum´erable si et seulement si
il est semi-d´ecidable.
Suggestion : Soit M une MdT et w0, w1, w2, . . . une suite d’entr´ees. On peut simuler M
sur w0 pour 0 pas, sur w0 pour 1 pas, sur w1 pour 0 pas, sur w0 pour 2 pas, sur w1 pour 1
pas, sur w2 pour 0 pas,. . .
Exercice∗ H.4 (1) Montrez que les langages accept´es par un AFN sont d´ecidables.
(2) Montrez que la collection des langages d´ecidables est stable par rapport aux op´erations
d’union, compl´ementaire, concat´enation et it´eration.
(3) Montrez que la collection des langages semi-d´ecidables est stable par rapport aux op´erations
d’union et concat´enation.
Suggestion : utilisez le non-d´eterminisme.
Exercice H.5 Montrez ou invalidez les assertions suivantes :
1. Il y a une MdT qui accepte les mots sur l’alphabet {0, 1} qui contiennent autant de 0
que de 1 (si la MdT existe, il suffira d’en donner une description informelle).
2. Rappel : si A et B sont deux langages, on ´ecrit A ≤ B s’il existe une r´eduction de A `a
B.
Si A est semi-d´ecidable et A ≤ Ac alors A est d´ecidable.
3. L’ensemble des (codages de) MdT qui reconnaissent un langage fini est d´ecidable.
Exercice H.6 Montrez ou donnez un contre-exemple aux assertions suivantes :
1. L’ensemble des (codages de) MdT qui terminent sur le mot vide est d´ecidable.
2. L’ensemble des (codages de) MdT qui divergent sur le mot vide est semi-d´ecidable.
3. L’ensemble des (codages de) MdT qui terminent sur le mot vide en 10100 pas de calcul
est d´ecidable.
72I TD : Complexit´e (r´eductions polynomiales)
Exercice I.1 Un graphe (non-dirig´e) G est compos´e d’un ensemble fini non-vide de noeuds
N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un
ensemble {i, j} de noeuds de cardinalit´e 2. On dit que deux noeuds sont adjacents s’il y a une
arˆete qui les connecte.
Probl`eme du coloriage Etant donn´e un graphe ´ G = (N, A) et un nombre naturel k ≥ 2
on d´etermine s’il existe une fonction c : N → {1, . . . , k} telle que si i, j sont deux noeuds
adjacents alors c(i) 6= c(j).
23
Probl`eme de l’emploi du temps Etant donn´e (i) un ensemble d’´etudiants ´ E = {1, . . . , n}
(n ≥ 2), (ii) un ensemble de cours C = {1, . . . , m} (m ≥ 2), (iii) un ensemble de plages
horaires P = {1, . . . , p} (p ≥ 2) et (iv) une relations binaire R telle que (i, j) ∈ R si et
seulement si l’´etudiant i suit le cours j on d´etermine s’il existe une fonction emploi du temps
edt : C → P telle que si un ´etudiant suit deux cours diff´erents j 6= j
0 alors edt(j) 6= edt(j
0
).
D´emontrez ou donnez un contre-exemple aux assertions suivantes :
1. Le probl`eme de l’emploi du temps se r´eduit au probl`eme du coloriage.
2. Le probl`eme de l’emploi du temps se r´eduit en temps polynomial au probl`eme du coloriage.
3. Le probl`eme du coloriage est dans NP.
Exercice I.2 Soit G un graphe non-dirig´e (cf. exercice I.1). Un k-clique est un ensemble de
k noeuds de G qui ont la propri´et´e que chaque couple de noeuds est connect´ee par une arˆete.
Le langage CLIQUE est compos´e de couples hG, ki o`u (i) G est le codage d’un graphe, (ii)
k est un nombre naturel et (iii) G contient comme sous-graphe un k-clique.
Le langage 3-SAT est compos´e de formules en forme normale conjonctive o`u chaque clause
contient 3 litt´eraux.
1. Montrez que le langage CLIQUE est dans NP.
2. On souhaite construire une r´eduction polynomiale de 3-SAT `a CLIQUE. Si la formule
A contient k clauses alors le graphe associ´e GA contient k groupes de noeuds o`u chaque
groupe est compos´e de 3 noeuds et chaque noeud est ´etiquet´e par un litt´eral. Par exemple,
si la clause est (x ∨ ¬y ∨ z) alors on aura un groupe de 3 noeuds ´etiquet´es avec x, ¬y et
z.
(a) D´ecrivez les arˆetes de GA de fa¸con `a ce que le graphe GA contienne une k-clique
si et seulement si la formule A est satisfiable et dessinez le graphe GA dans le cas
o`u
A = (x ∨ y) ∧ (¬x ∨ ¬y) ∧ (¬x ∨ y) ∧ (x ∨ ¬y)
(la formule en question comporte seulement deux litt´eraux par clause mais la
construction du graphe GA s’applique aussi bien `a ce cas).
(b) Quelle conclusion peut-on tirer de la construction pr´ec´edente ? Motivez votre r´eponse :
23On peut voir les valeurs {1, . . . , k} comme des couleurs qu’on affecte aux noeuds, d’o`u le nom du probl`eme.
73i. Si 3-SAT est un probl`eme polynomiale d´eterministe alors CLIQUE est un
probl`eme polynomiale d´eterministe.
ii. CLIQUE est un probl`eme NP-complet.
Exercice I.3 Soit A une matrice et b un vecteur `a coefficients dans Z. Le probl`eme de programmation
lin´eaire enti`ere (ILP pour integer linear programming) consiste `a d´eterminer s’il
existe un vecteur ~x `a coefficients dans Nm tel que A~x = ~b.
24 Ce probl`eme est dans NP. On
utilise des notions d’alg`ebre lin´eaire pour montrer que si le probl`eme a une solution alors il en
a une dont la taille est polynomiale dans la taille de la matrice A. Ensuite on peut appliquer
la m´ethode standard qui consiste `a deviner un vecteur ~x et `a v´erifier qu’il est une solution.
A partir de ce fait, le but de l’exercice est de montrer que le probl`eme est NP-complet par
r´eduction du probl`eme SAT. Il peut ˆetre utile de consid´erer d’abord les probl`emes suivants.
– Montrez qu’en introduisant des variables auxiliaires on peut exprimer la satisfaction
d’une contrainte d’in´egalit´e comme un probl`eme d’ILP.
– Montrez qu’on peut exprimer la contrainte x ∈ {0, 1}.
– Montrez qu’on peut exprimer la contrainte x = y o`u x, y ∈ {0, 1}, 0 = 1 et 1 = 0.
– Montrez comment coder la validit´e d’une clause (disjonction de litt´eraux).
24Comme pour le probl`eme du voyageur de commerce, le probl`eme ILP est souvent formul´e comme un
probl`eme d’optimisation. Par exemple, il s’agit de minimiser une fonction lin´eaire ~cT
~x sous les contraintes
A~x = ~b et ~x ≥ 0.
74J TD : Preuves par induction
Exercice J.1 (transitivit´e) Soit R une relation binaire sur un ensemble. Sa clˆoture r´eflexive
et transitive R∗
est la plus petite relation qui contient la relation identit´e, la relation R et telle
que si (x, y),(y, z) ∈ R∗ alors (x, z) ∈ R∗
. Montrez que R∗ peut ˆetre vu comme un ensemble
d´efini inductivement.
Exercice J.2 Un graphe non-dirig´e G est compos´e d’un ensemble fini non-vide de noeuds
N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un
ensemble {i, j} de noeuds de cardinalit´e 2. Le degr´e d’un noeud i dans un graphe est le
nombre d’arˆetes qui le contiennent. Par exemple, un noeud isol´e a degr´e 0. D´emontrez en
utilisant le principe de r´ecurrence l’assertion suivante :
Chaque graphe avec au moins 2 noeuds contient 2 noeuds avec le mˆeme degr´e.
Exercice J.3 Soit (N∪ {∞}, ≤) l’ensemble des nombres naturels avec un ´el´ement maximum
∞, 0 < 1 < 2 < . . . < ∞. Montrez que toute fonction monotone f sur cet ordre admet un
point fixe, c’est-`a-dire un ´el´ement x tel que f(x) = x.
Exercice J.4 On consid`ere l’ensemble de symboles fonctionnels
Σ = {, a, b}
o`u ar () = 0 et ar (a) = ar (b) = 1. Calculez l’ensemble librement engendr´e associ´e `a Σ. Cet
ensemble est-il isomorphe `a un ensemble d´ej`a consid´er´e dans le cours ?
Exercice J.5 Soient N l’ensemble des nombres naturels, Nk
le produit cart´esien N×· · ·×N
k fois et A =
S
{Nk
| k ≥ 1}. Soit < une relation binaire sur A telle que : (x1, . . . , xn) <
(y1, . . . , ym) ssi il existe k ≤ min(n, m) (x1 = y1, . . . , xk−1 = yk−1, xk < yk) Est-il vrai que <
est un ordre bien fond´e ? Donner soit une preuve soit un contre-exemple.
75K TD : Terminaison 1
Exercice K.1 On consid`ere des programmes imp´eratifs while dont les variables prennent
comme valeurs des nombres naturels. Montrez que le programme suivant termine o`u l’on sait
que le test Φ termine et n’a pas d’effet de bord (c’est-`a-dire que l’´evaluation du test n’affecte
pas la valeur associ´ee aux variables) :
while u > l + 1 do
(r := (u + l) div 2;
if Φ then u := r else l := r)
Exercice K.2 Soit ({a, b, c, d},→) un syst`eme de r´e´ecriture o`u →= {(c, a),(c, d),(d, c),(d, b)}.
Dire si le syst`eme termine, est localement confluent, est confluent.
Exercice K.3 (1) Utilisez le principe d’induction pour d´emontrer la terminaison de la fonction
r´ecursive a telle que :
a(0, n) = n + 1
a(m + 1, 0) = a(m, 1)
a(m + 1, n + 1) = a(m, a(m + 1, n))
(2) Calculez `a l’aide d’un programme autant de valeurs a(n, n) que possible.
Exercice K.4 On ´etend l’ordre lexicographique `a un produit A = A1 × · · · × An, n ≥ 3,
d’ordres bien fond´es (Ai
, >i) :
(x1, . . . , xn) > (y1, . . . , yn) si ∃ k ≤ n (x1 = y1, . . . , xk−1 = yk−1 et xk >k yk)
Montrez que (A, >) est bien fond´e.
Exercice K.5 (ordre produit) Soient (Ai
, >i) pour i = 1, . . . , n des ordres bien fond´es.
On d´efinit une relation > sur le produit cart´esien A1 × · · · × An par
(a1, . . . , an) > (a
0
1
, . . . , a0
n
) si ai ≥i a
0
i
, i = 1, . . . , n et ∃ i ∈ {1, . . . , n} ai >i a
0
i
(1) La relation > est-elle un ordre bien fond´e ?
(2) Comparez la relation > `a l’ordre lexicographique sur le produit d´efini dans l’exercice K.4.
76L TD : Terminaison 2
Exercice L.1 Consid´erons les programmes while :
while m 6= n do
if m > n then m := m − n else n := n − m
while m 6= n do
if m > n then m := m − n
else h := m; m := n; n := h
Dire si les programmes terminent quand les variables varient sur les nombres naturels positifs.
Exercice L.2 Soit A = {a, b}
∗
l’ensemble des mots finis sur l’alphabet {a, b}. Soit → une
relation binaire sur A telle que :
w → w
0
ssi w = w1abw2 et w
0 = w1bbaw2
Donc w se r´eduit `a w
0
si w
0
est obtenu de w en rempla¸cant un sous-mot ab avec bba.
Montrez ou invalidez les assertions suivantes (il est conseill´e de s’appuyer sur les r´esultats
d´emontr´es dans le cours) :
1. Le syst`eme de r´eduction (A,→) est `a branchement fini.
2. Le syst`eme termine.
3. Le syst`eme est localement confluent.
4. Le syst`eme est confluent.
Exercice∗ L.3 Soient X, Y ∈ M(A). On ´ecrit X >1 Y si Y est obtenu de X en rempla¸cant
un ´el´ement de X par un multi-ensemble d’´el´ements strictement plus petits. Montrez que la
clˆoture transitive de >1 est ´egale `a >M(A)
.
Exercice L.4 Soit N∗
les mots finis de nombres naturels. Montrez la terminaison du syst`eme :
u(i + 1)v → iviui pour u, v ∈ N∗
77M TP : M´ethode de Davis-Putnam
M.1 Objectifs
Le but de ce TP est d’implanter en langage Java la proc´edure de Davis-Putnam : vous
devez r´ealiser un programme qui prend en entr´ee une formule A en forme normale conjonctive,
puis d´ecide si cette formule est satisfiable et si c’est le cas, renvoie une interpr´etation qui
satisfait A. Le programme que vous allez r´ealiser va lire les formules `a traiter dans un fichier.
Ce fichier respecte un format particulier : le format DIMACS. Le choix des structures de
donn´ees `a employer est de votre ressort. Il est fortement conseill´e de bien r´efl´echir `a l’int´egralit´e
de l’algorithme avant d’impl´ementer les classes et les m´ethodes dont vous aurez besoin.
M.2 D´efinitions
Rappelons quelques d´efinitions :
– un litt´eral est une variable propositionnelle x ou sa n´egation ¬x ;
– une clause est une disjonction de litt´eraux ;
– une clause est une tautologie si et seulement si elle contient une variable x et sa n´egation
¬x.
– une clause est dite unitaire si elle contient exactement un litt´eral,
– une formule en forme normale conjonctive est une conjonction de clauses,
– une affectation v est une fonction partielle des variables aux valeurs bool´eennes.
M.3 Format DIMACS
(http ://www.satlib.org/Benchmarks/SAT/satformat.ps)
Par exemple, la formule :
(x1 ∨ x3 ∨ ¬x4) ∧ (x4) ∧ (x2 ∨ ¬x3)
peut ˆetre cod´ee par :
c Exemple fichier au format CNF
p cnf 4 3
1 3 -4 0
4 0
2 -3
– la ligne c est une ligne commentaire,
– la ligne p sp´ecifie qu’il s’agit d’une formule en CNF avec 4 variables et 3 clauses,
– les lignes suivantes sp´ecifient les clauses. Le litt´eral xi est cod´e par i et le litt´eral ¬xi
par −i o`u i ≥ 1 (et dans ce cas i ≤ 4),
– les clauses peuvent ˆetre sur plusieurs lignes et elles sont s´epar´ees par 0.
Dans la page du cours, nous fournissons les fonctions afficheDimacs et ecrisDimacs,
qui sont un exemple de lecture et d’´ecriture de fichiers DIMACS. Vous pourrez vous baser sur
ces exemples pour r´ealiser l’interface de votre programme.
La r´ealisation de l’algorithme de Davis-Putnam exige la manipulation de formules, de
clauses et d’affectations. Vous devrez donc d´efinir les classes correspondantes ainsi que les
m´ethodes dont vous aurez besoin. Voici quelques m´ethodes de base (il s’agit de simples suggestions,
certaines m´ethodes pourront ˆetre omises ou ajout´ees selon vos besoins).
78Classe formule :
– un constructeur qui lit une formule CNF en format DIMACS et construit la formule
correspondante,
– vide qui teste si la formule est vide,
– affiche qui ´ecrit une formule dans un fichier au format DIMACS,
– verifie qui prend en argument une affectation et qui renvoie true si la formule est vraie
dans cette affectation.
Classe clause :
– appartient qui prend en argument un litt´eral et qui renvoie true s’il apparaˆıt dans la
clause,
– unitaire qui renvoie true si la clause ne contient qu’un seul litt´eral,
– vide qui renvoie true si la clause est vide,
– verifie qui prend en argument une affectation, et qui renvoie true si la clause est vraie
dans cette affectation.
Classe affectation :
– fixe qui prend en argument un litt´eral et un bool´een et qui ajoute le litt´eral `a l’affectation
avec la valeur du bool´een,
– valeur qui prend en argument un litt´eral et renvoie sa valeur dans l’affectation.
M.4 Davis-Putnam
La m´ethode de Davis-Putnam permet de d´ecider si une formule en forme normale conjonctive
est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement
vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de
litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne
b dans A comme suit :
[b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1}
[b/x]C =
1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C)
C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C)
C autrement
La m´ethode de Davis-Putnam fonctionne comme suit. Au d´epart, A est une formule CNF :
– si A est vide, retourner true.
– si A contient la clause vide, retourner false.
– si A contient une clause C qui contient `a la fois les litt´eraux x et ¬x, appeler la fonction
davis-putnam sur la formule A \ C.
– si A contient une clause {x} (resp. {¬x}), appeler la fonction davis-putnam sur [1/x]A
(resp. [0/x]A).
– sinon, choisir une variable x dans A. Appliquer la proc´edure DP r´ecursivement sur
[1/x]A et [0/x]A. Retourner true si l’un des r´esultats est true, retourner false sinon.
Vous devrez d´efinir des m´ethodes pour chacune de ces op´erations. La derni`ere, en particulier,
doit ˆetre trait´ee avec attention : si la premi`ere affectation choisie ´echoue, il faut pouvoir
revenir `a l’´etat courant pour tester la deuxi`eme ; une forme de sauvegarde ou de duplication
sera donc n´ecessaire.
79Exercice M.1 1- Programmez une m´ethode estSatisfiable qui d´ecide si la formule est satis-
fiable en utilisant la proc´edure de Davis-Putnam
2- Modifiez la fonction estSatisfiable pour que si la formule est satisfiable, elle affiche une
affectation v qui satisfait A.
M.5 Test
Il s’agit maintenant de tester la correction et l’efficacit´e de votre programme.
– Il est facile de v´erifier si une formule A est satisfiable par une affectation v.
Exercice M.2 Programmez une m´ethode permettant ce test.
– Il est plus compliqu´e de v´erifier qu’une formule n’est pas satisfiable. Une possibilit´e est
de g´en´erer de fa¸con al´eatoire un certain nombre d’affectations et de v´erifier qu’elles ne
satisfont pas la formule.
Exercice M.3 Programmez une m´ethode qui r´ealise ce test sur une centaine d’affectations
prises au hasard.
– Sur quelles formules tester votre programme ? Il est pratique de disposer d’un g´en´erateur
de formules. Par exemple, on peut programmer une fonction G(n, m, p) qui g´en`ere une
formule avec n clauses et m variables avec la propri´et´e que :
– le litt´eral xj est pr´esent dans la clause Ci avec probabilit´e p/2 ;
– le litt´eral ¬xj est pr´esent dans la clause Ci avec probabilit´e p/2 ;
– les litt´eraux xj et ¬xj ne sont jamais pr´esents ensemble dans une clause Ci (et donc
ils sont absents avec probabilit´e (1 − p)).
Exercice M.4 Programmez une proc´edure qui prend les param`etres (n, m, p, k), g´en`ere
k formules en utilisant la fonction G(n, m, p), applique la proc´edure DP pour d´eterminer
la satisfiabilit´e et applique les m´ethodes d´evelopp´ees dans les exercices M.2 et M.3 pour
v´erifier le r´esultat.
M.6 Heuristique
Le choix d’une variable x dans la derni`ere ´etape peut avoir beaucoup d’influence sur la
rapidit´e de la proc´edure. Une heuristique possible est de choisir x de sorte que le nombre
de clauses dans lesquelles x apparaˆıt multipli´e par le nombre de clauses dans lesquelles ¬x
apparaˆıt est maximal, et de tester DP([1/x]A) d’abord s’il y a plus de clauses contenant x
que de clauses contenant ¬x, et DP([0/x]A) sinon.
Exercice M.5 1. Implanter cette strat´egie dans la fonction DP . Soit DPH la fonction
obtenue.
2. Modifiez le code de la fonction DP et de la fonction DPH pour qu’elles retournent le
nombre de fois que le pas de ‘choix’ DP([0/x]A) or DP([1/x]A) est ex´ecut´e.
3. Programmez une proc´edure qui prend les param`etres (n, m, p, k), g´en`ere k formules en
utilisant la fonction G(n, m, p), applique les proc´edures DP et DPH aux formules, v´erifie
80qu’elles produisent le mˆeme r´esultat (satisfiable ou pas satisifiable) et pour chaque formule
imprime le nombre de fois que le pas de ‘choix’ est ex´ecut´e par DP et DPH.
M.7 Le principe du pigeonnier (pigeon principle)
On dispose de m pigeons et de n nids. Le probl`eme P(m, n) a une solution si :
– Chaque pigeon a un nid.
– Chaque nid contient au plus un pigeon.
Il est ´evident que le probl`eme n’a de solution que si m est inf´erieur ou ´egal `a n, mais la
v´erification de ce fait par la m´ethode de Davis-Putnam peut s’av´erer tr`es coˆuteuse.
On ´ecrit le probl`eme du pigeonnier en CNF de la fa¸con suivante :
– On introduit les variables oi,j pour i ∈ [1..m], j ∈ [1..n]. On interpr`ete oi,j par le pigeon
i occupe le nid j.
– On introduit la CNF
^
i=1,...,m
(
_
j=1,...,n
oi,j )
qui exprime le fait que chaque pigeon doit se trouver dans un nid.
– On introduit la CNF
^
j=1,...,n, i,k=1,...,m,i tar xvf sato4.2.tgz
– compiler le programme en ex´ecutant dans le dossier de SATO la commande :
> make
Plus d’informations sont disponibles dans le fichier README `a la mˆeme adresse.
Vous pouvez tester le solveur en utilisant par exemple le g´en´erateur programm´e dans
le TP1 et comparer les performances avec votre impl´ementation de l’algorithme de DavisPutnam.
N.3 Le jeu du Sudoku
Le Sudoku est un puzzle en forme de grille. Le but du jeu est de remplir la grille avec des
chiffres allant de 1 `a 9 en respectant certaines contraintes, quelques chiffres ´etant d´ej`a dispos´es
dans la grille. La grille de jeu est un carr´e de neuf cases de cˆot´e, subdivis´e en autant de
carr´es identiques, appel´es r´egions.
5 3 7 9
6 1 9 5
9 8 6
8 6 3
4 8 3 1
7 2 6
6 8
4 1 9 5
8 7 9
La r`egle du jeu est simple : chaque ligne, colonne et r´egion ne doit contenir qu’une seule fois
tous les chiffres de 1 `a 9. Formul´e autrement, chacun de ces ensembles doit contenir tous les
82chiffres de 1 `a 9.
L’entr´ee de votre programme est un fichier qui repr´esente la grille sous la forme d’une
matrice 9×9. Lorsque le chiffre d’une case n’est pas d´efini, on note 0. Ainsi l’exemple pr´ec´edent
est repr´esent´e dans ce fichier sous la forme :
835 3 0 0 7 0 9 0 0
6 0 0 1 9 5 0 0 0
0 9 8 0 0 0 0 6 0
8 0 0 0 6 0 0 0 3
4 0 0 8 0 3 0 0 1
7 0 0 0 2 0 0 0 6
0 6 0 0 0 0 0 8 0
0 0 0 4 1 9 0 0 5
0 0 0 0 8 0 0 7 9
N.4 Interface
La principale tˆache `a effectuer est l’interfa¸cage entre le Sudoku et SATO. Dans une premier
temps on doit traduire le probl`eme du Sudoku vers un probl`eme de satisfiabilit´e. Puis on doit
transformer une affectation qui satisfait la formule g´en´er´ee en une solution du Sudoku.
Notez qu’en Java, on ne peut faire d’appel syst`eme, il faudra donc ex´ecuter le programme
final `a l’aide d’un script de la forme :
java Sudoku2SAT fic entree
./sato fic dimacs > fic sol
java SAT2Sudoku fic sol
O`u fic entree est le fichier qui repr´esente la grille d’entr´ee, fic dimacs est la traduction
du probl`eme en format DIMACS produit par le programme Sudoku2SAT et SAT2Sudoku traduit
l’affectation retourn´ee par SATO en solution du probl`eme initial. Le but du TP est de
programmer Sudoku2SAT et SAT2Sudoku.
N.5 Sudoku → SATO
Pour chaque case (x, y) de la grille (ligne x et colonne y) et chaque valeur z ∈ [1..9] on
introduit une variable propositionnelle sxyz. Le probl`eme du Sudoku peut ˆetre traduit vers
une formule CNF de la fa¸con suivante :
– Tout d’abord on veut que chaque case (x, y) contienne au moins un chiffre entre 1 9.
Par exemple, pour la case (1, 1) la clause g´en´er´ee sera :
s111 ∨ s112 ∨ s113 ∨ . . . ∨ s119.
– Ensuite, chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque ligne. Par exemple,
le fait que le chiffre 1 apparaˆıt au plus une fois dans la ligne 1 correspond `a l’ensemble
de clauses :
(¬s111 ∨ ¬s121) ∧ (¬s111 ∨ ¬s131) ∧ . . . ∧ (¬s111 ∨ ¬s191) ∧ (¬s121 ∨ ¬s131) ∧ . . .
– De mˆeme, chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque colonne.
– Chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque r´egion.
– Enfin, il faut s’occuper des cases pr´e-remplies dans la grille de d´epart. Chacune de ces
cases correspond `a une clause avec un seul litt´eral.
84Notez que si on s’arrˆete l`a le codage est suffisant, mais on peut ajouter les contraintes suivantes
:
– Chaque case (x, y) contient au plus un chiffre entre 1 et 9.
– Chaque chiffre apparaˆıt au moins une fois dans chaque ligne.
– Chaque chiffre apparaˆıt au moins une fois dans chaque colonne.
– Chaque chiffre apparaˆıt au moins une fois dans chaque r´egion.
Exercice N.1 Ecrire un programme qui traduit un probl`eme de Sudoku en une formule CNF ´
sous le format DIMACS. Ce programme prend comme entr´ee un fichier sous la forme d´efinie
dans la partie pr´ec´edente et doit ´ecrire le r´esultat de la traduction dans un fichier de sortie.
N.6 SATO → Sudoku
Il reste `a transformer une affectation renvoy´ee par le solveur en solution pour le Sudoku.
Exercice N.2 Ecrire, une fonction qui transforme une affectation qui satisfait la formule en ´
solution du Sudoku et l’affiche.
Vous pouvez maintenant tester votre programme en essayant de r´esoudre des grilles propos´ees
par exemple aux adresses suivantes :
http ://logiciel.sudoku.free.fr/
http ://www.esudoku.fr/
...
Vous pouvez aussi tester dans quelle mesure l’ajout de contraintes suppl´ementaires am´eliore
les performances du programme.
85O TP : R´esolution
Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste utilis´ee
pour d´ecrire la m´ethode de Davis-Putnam.
– Une clause C est un ensemble de litt´eraux.
– Une formule A en CNF est un ensemble de clauses.
Soient C ∪ {x} et C
0 ∪ {¬x} deux clauses o`u l’on suppose que x /∈ C et ¬x /∈ C
0
.
On dit que C ∪ C
0
est un r´esolvant des deux clauses.
La m´ethode de r´esolution peut ˆetre formul´ee de la fa¸con suivante. Soit A un ensemble fini
de clauses. Si X est un ensemble de clauses, on pose
FA(X) = A ∪ X ∪ {C | C est un r´esolvant de deux clauses dans X}
Soit Res(A) le plus petit point fixe de FA. On peut montrer que la formule A est insatisfiable
si et seulement si Res(A) contient la clause vide.
Exercice O.1 Montrez (sur papier) que Res(A) est fini et peut ˆetre calcul´e.
On rappelle qu’une clause de Horn est une clause qui contient au plus un litt´eral positif.
Par ailleurs, une clause unitaire est une clause qui contient un litt´eral. Dans la m´ethode de
r´esolution unitaire on se limite `a calculer les r´esolvants de couples de clauses dont au moins
une est unitaire. On peut montrer qu’une conjonction de clauses de Horn n’est pas satisfiable
si et seulement si la m´ethode de r´esolution unitaire d´erive la clause vide.
Exercice O.2 Construire un programme qui re¸coit en entr´ee une formule A qui est une
conjonction de clauses de Horn au format dimacs et v´erifie si A est insatisfiable en utilisant
la m´ethode de r´esolution unitaire. Le programme imprime Res(A) (adapt´e pour la r´esolution
unitaire) s’il n’arrive pas `a g´en´erer la clause vide.
Exercice O.3 Estimez (sur papier) la complexit´e de votre programme en fonction de la taille
de la formule A.
86
Robotique Mobile
David Filliat
To cite this version:
David Filliat. Robotique Mobile. Ecole d’ing´enieur. Robotique Mobile, ENSTA ParisTech, ´
2011, pp.175.
HAL Id: cel-00655005
https://cel.archives-ouvertes.fr/cel-00655005
Submitted on 24 Dec 2011
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.David FILLIAT
École Nationale Supérieure de Techniques Avancées ParisTech
Robotique Mobile2Cette création est mise à disposition selon le Contrat Paternité-Pas d’Utilisation CommercialePartage
des Conditions Initiales à l’Identique 2.0 France disponible en ligne :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
ou par courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco,
California 94105, USA.
Ce document évolue régulièrement. La dernière version se trouve sur ma page personnelle
: http://www.ensta-paristech.fr/~filliat/
Si vous avez des remarques ou des suggestions pour m’aider à le faire progresser, ou simplement
si il vous a été utile, n’hésitez pas à m’écrire : david.filliat@ensta-paristech.fr
Dernière mise à jour : 5 octobre 2011Robotique Mobile - david.filliat@ensta-paristech.fr 4TABLE DES MATIÈRES
Table des matières
1 Introduction 9
1.1 Robot Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 (Très) Bref aperçu historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Exemples d’applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
I Les bases de la navigation 15
2 Les différents types de navigation 19
2.1 Les stratégies de navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Les architectures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Contrôleurs Hiérarchiques . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Contrôleurs réactifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 Contrôleurs hybrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.4 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Les sources d’information 27
3.1 Informations proprioceptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Informations extéroceptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Variabilité perceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.2 Perceptual aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.3 Utilisation directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.4 Utilisation d’un modèle métrique . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Fusion d’informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Matériels courants en robotique mobile 35
4.1 Les bases mobiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1 Holonomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.2 Les plates-formes différentielles . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.3 Les plates-formes omnidirectionnelles . . . . . . . . . . . . . . . . . . . . 36
4.1.4 Les plates-formes non holonomes . . . . . . . . . . . . . . . . . . . . . . 37
4.1.5 Les plates-formes à pattes . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5 Robotique Mobile - david.filliat@ensta-paristech.frTABLE DES MATIÈRES
4.2 Les capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.1 Les capteurs proprioceptifs . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.2 Les télémètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.3 Les caméras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.4 Autres capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
II Navigation réactive 53
5 Navigation vers un but 57
5.1 Véhicules de Braitenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 Modèle de Cartwright et Collet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3 Asservissement visuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6 Évitement d’obstacles 61
6.1 Méthode des champs de potentiel . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.2 Méthode Vector Field Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.3 Méthode de la fenêtre dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7 Apprentissage par renforcement 67
7.1 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.2 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.2.1 Évaluation d’une politique . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.2.2 Amélioration d’une politique . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.2.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.3 Méthodes de Monte-Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.3.1 Évaluation d’un politique . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.3.2 Besoin d’exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.3.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.4 Apprentissage par différences temporelles . . . . . . . . . . . . . . . . . . . . . 74
7.5 Traces d’éligibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.6 Application pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.7 Exemple de mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.8 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
III Navigation utilisant une carte 81
8 Localisation, Cartographie et Planification 85
8.1 Les trois problèmes de la navigation par carte . . . . . . . . . . . . . . . . . . . . 85
8.2 Quelques hypothèses de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.2.1 Estimation de la position et de la direction . . . . . . . . . . . . . . . . . . 86
8.2.2 Environnements statiques et dynamiques . . . . . . . . . . . . . . . . . . 87
Robotique Mobile - david.filliat@ensta-paristech.fr 6TABLE DES MATIÈRES
9 Les représentations de l’environnement 89
9.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.1.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
9.1.3 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
9.1.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
9.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.2.3 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.2.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
9.3 Représentations hybrides et hiérarchiques . . . . . . . . . . . . . . . . . . . . . . 100
10 Localisation 103
10.1 Différentes capacités de localisation . . . . . . . . . . . . . . . . . . . . . . . . . 103
10.2 Estimation de la position par les perceptions . . . . . . . . . . . . . . . . . . . . 105
10.2.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
10.2.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.2.3 Corrélation de cartes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.2.4 Limitations de l’estimation de la position par les perceptions . . . . . . . . 110
10.3 Suivi d’une hypothèse unique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.3.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.3.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.3.3 Le filtrage de Kalman pour la localisation . . . . . . . . . . . . . . . . . . . 112
10.3.4 Limitations du suivi de position . . . . . . . . . . . . . . . . . . . . . . . . 119
10.4 Suivi de plusieurs hypothèses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
10.4.1 Suivi explicite de plusieurs hypothèses . . . . . . . . . . . . . . . . . . . . 120
10.4.2 Le filtrage Bayésien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
10.4.3 Filtrage Bayésien dans le cas discret . . . . . . . . . . . . . . . . . . . . . 126
10.4.4 Filtrage particulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
10.5 Comparaison des méthodes de localisation . . . . . . . . . . . . . . . . . . . . . 133
11 Cartographie 135
11.1 Les problèmes de la cartographie . . . . . . . . . . . . . . . . . . . . . . . . . . 135
11.1.1 Limitation des méthodes de localisation . . . . . . . . . . . . . . . . . . . 135
11.1.2 Fermetures de boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
11.1.3 Cartographie incrémentale et retour en arrière . . . . . . . . . . . . . . . . 136
11.2 Cartographie incrémentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
11.2.1 Cartes Topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
11.2.2 Cartes métriques : corrélation de scan . . . . . . . . . . . . . . . . . . . . 140
11.2.3 Cartes métriques : grilles d’occupation . . . . . . . . . . . . . . . . . . . . 141
11.2.4 Stratégies d’exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
11.3 Retour sur les modifications passées . . . . . . . . . . . . . . . . . . . . . . . . 144
7 Robotique Mobile - david.filliat@ensta-paristech.frTABLE DES MATIÈRES
11.3.1 Méthodes de relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
11.3.2 Cartographie par filtrage de Kalman étendu . . . . . . . . . . . . . . . . . 147
11.3.3 Fast SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
11.4 Comparaison des méthodes de cartographie . . . . . . . . . . . . . . . . . . . . 154
11.5 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
12 Planification 155
12.1 Espace des configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
12.2 Discrétisation de l’espace de recherche . . . . . . . . . . . . . . . . . . . . . . . 156
12.3 Recherche de chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
12.3.1 Deux types de plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
12.3.2 Calcul de politique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
12.3.3 Calcul d’un chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
12.4 Exemples de politiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
12.5 Choix de l’action avec une position incertaine . . . . . . . . . . . . . . . . . . . . 162
12.6 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Index 164
Bibliographie 165
Robotique Mobile - david.filliat@ensta-paristech.fr 8CHAPITRE 1. INTRODUCTION
Chapitre 1
Introduction
1.1 Robot Mobile
La robotique est un très bon exemple de domaine pluri-disciplinaire qui implique de nombreuses
thématiques telles que la mécanique, la mécatronique, l’électronique, l’automatique, l’informatique
ou l’intelligence artificielle. En fonction du domaine d’origine des auteurs, il existe donc
diverses définitions du terme robot, mais elles tournent en général autour de celle-ci :
Un robot est une machine équipée de capacités de perception, de décision et d’action
qui lui permettent d’agir de manière autonome dans son environnement
en fonction de la perception qu’il en a.
FIGURE 1.1 – Schéma des interactions d’un robot avec son environnement. Selon les approches,
un modèle interne de l’environnement peut être utilisé ou non.
Cette définition s’illustre par un schéma classique des interactions d’un robot avec son environnement
(Figure 1.1). Les différentes notions que nous présenterons dans ce cours sont essentiellement
issues de cette vision de la robotique, très orientée sur l’Intelligence Artificielle, qui
9 Robotique Mobile - david.filliat@ensta-paristech.fr1.2. OBJECTIFS DU COURS
place au centre des préoccupations l’enchaînement de ce cycle Perception/Décision/Action . La
manière dont un robot gère ces différents éléments est définie par son architecture de contrôle,
qui la plupart du temps va faire appel à un modèle interne de l’environnement qui lui permettra de
planifier ses actions à long terme.
1.2 Objectifs du cours
L’objectif de ce cours est de fournir un aperçu des problèmes de la robotique mobile et des
solutions actuelles. Ce cours se veut proche de la recherche, en présentant des méthodes apparues
dans les dernières années, mais présente également les notions de base nécessaires à
leur compréhension, ainsi qu’un panorama de techniques classiques dont la portée va au delà de
leur application en robotique mobile. La lecture des nombreuses références à des articles scienti-
fiques ou à des ouvrages de référence (la plupart du temps en anglais) n’est évidement pas utile
pour la compréhension du cours, mais doit permettre d’approfondir des points particuliers hors
de la portée de ce cours.
La robotique mobile est un domaine dans lequel l’expérience pratique est particulièrement
illustratrice et importante pour la compréhension des problèmes. Au delà des méthodes présentée
dans ce texte, les travaux dirigés ou le projet pratique associés que réalisent les étudiants
apporteront également leur lot de connaissances irremplaçables.
1.3 (Très) Bref aperçu historique
FIGURE 1.2 – La tortue de Grey Walter (nommée “machina speculatrix” et surnommée Elsie)
et une illustration de sa trajectoire pour rejoindre sa niche.
Le terme de robot apparaît pour la première fois dans une pièce de Karel Capek en 1920 :
Rossum’s Universal Robots. Il vient du tchèque ’robota’ (∼ servitude) et présente une vision des
robots comme serviteurs dociles et efficaces pour réaliser les taches pénibles mais qui déjà vont
se rebeller contre leurs créateurs.
Robotique Mobile - david.filliat@ensta-paristech.fr 10CHAPITRE 1. INTRODUCTION
La Tortue construite par Grey Walter dans les année 1950 (Figure 1.2), est l’un des premiers
robots mobiles autonomes. Grey Walter n’utilise que quelques composants analogiques, dont
des tubes à vide, mais son robot est capable de se diriger vers une lumière qui marque un
but, de s’arrêter face à des obstacles et de recharger ses batteries lorsqu’il arrive dans sa niche.
Toutes ces fonctions sont réalisées dans un environnement entièrement préparé, mais restent des
fonctions de base qui sont toujours des sujets de recherche et de développement technologiques
pour les rendre de plus en plus génériques et robustes.
FIGURE 1.3 – A gauche : Robot "Beast" de l’université John Hopkins dans les années 1960.
A droite : Le robot Shakey de Stanford en 1969 a été une plate-forme de démonstration des
recherches en intelligence artificielle.
Dans les années 60, les recherches en électronique vont conduire, avec l’apparition du transistor,
à des robots plus complexes mais qui vont réaliser des tâches similaires. Ainsi le robot
"Beast" (Figure 1.3) de l’université John Hopkins est capable de se déplacer au centre des couloirs
en utilisant des capteurs ultrason, de chercher des prises électriques (noires sur des murs
blanc) en utilisant des photo-diodes et de s’y recharger.
Les premier liens entre la recherche en intelligence artificielle et la robotique apparaissent
à Stanford en 1969 avec Shakey (Figure 1.3). Ce robot utilise des télémètres à ultrason et une
caméra et sert de plate-forme pour la recherche en intelligence artificielle, qui à l’époque travaille
essentiellement sur des approches symboliques de la planification. La perception de l’environnement,
qui à l’époque est considérée comme un problème séparé, voire secondaire, se révèle
particulièrement complexe et conduit là aussi à de fortes contraintes sur l’environnement. Ces
développements de poursuivent avec le Stanford Cart dans la fin des années 1970, avec notamment
les premières utilisations de la stéréo-vision pour la détection d’obstacles et la modélisation
11 Robotique Mobile - david.filliat@ensta-paristech.fr1.3. (TRÈS) BREF APERÇU HISTORIQUE
FIGURE 1.4 – Le Stanford Cart date de la fin des années 1970. Le robot Hilare du LAAS a été
construit en 1977.
de l’environnement. En France, le robot Hilare est le premier robot construit au LAAS, à Toulouse
(Figure 1.4).
Une étape importante est à signaler au début des années 1990 avec la mise en avant de
la robotique réactive, représentée notamment par Rodney Brooks. Cette nouvelle approche de la
robotique, qui met la perception au centre de la problématique, a permis de passer de gros robots
très lents à de petits robots (Figure 1.5), beaucoup plus réactifs et adaptés à leur environnement.
Ces robots n’utilisent pas ou peu de modélisation du monde, problématique qui s’est avérée être
extrêmement complexe.
FIGURE 1.5 – Genghis, développé par Rodney Brooks au MIT au début des années 1990.
Ces développements ont continué et l’arrivée sur le marché depuis les années 1990 de platesformes
intégrées telles que le pioneer de la société Mobile Robots a permis à de très nombreux
laboratoires de travailler sur la robotique mobile et à conduit à une explosion de la diversité des
thèmes de recherche. Ainsi, même si les problèmes de déplacement dans l’espace et de moRobotique
Mobile - david.filliat@ensta-paristech.fr 12CHAPITRE 1. INTRODUCTION
délisation de l’environnement restent difficiles et cruciaux, des laboratoires ont pu par exemple
travailler sur des approches multi-robot, la problématique de l’apprentissage ou sur les problèmes
d’interactions entre les hommes et les robots.
1.4 Exemples d’applications
Aujourd’hui, le marché commercial de la robotique mobile est toujours relativement restreint
en dehors des robots aspirateurs vendus à plusieurs millions d’exemplaires. Cependant, il existe
de nombreuses perspectives de développement qui en feront probablement un domaine important
dans le futur. Les applications des robots peuvent se trouver dans de nombreuses activités
"ennuyeuses, salissantes ou dangereuses" (3 D’s en anglais pour Dull, Dirty, Dangerous),
mais également pour des applications ludiques ou de service, comme l’assistance aux personnes
âgées ou handicapées.
FIGURE 1.6 – Exemples de robots commerciaux ou de recherche.
13 Robotique Mobile - david.filliat@ensta-paristech.fr1.5. POUR ALLER PLUS LOIN
Parmi les domaines d’applications possibles de la robotique, citons :
– La robotique de service (hôpital, bureaux, maison),
– La robotique de loisir (jouets, robot ’compagnon’),
– La robotique industrielle ou agricole (entrepôts logistiques, récolte de productions agricoles,
mines),
– La robotique en environnement dangereux (spatial, industriel, militaire, catastrophes naturelles).
A cela, s’ajoute a l’heure actuelle des nombreuses plates-formes conçues essentiellement
pour les laboratoires de recherche. La figure 1.6 montre quelques exemples de robots existants.
1.5 Pour aller plus loin
Les illustrations de ce chapitre sont, entre autre, tirées du livre "ROBOT : mere machine to
transcendent mind" de Hans Moravec [102], dont les illustrations sont disponibles en ligne 1
.
Le livre de Daniel Ichbiah "Robots, Genèse d’un peuple artificiel" [71] donne également un
bon aperçu "grand public" de la robotique et de sont histoire 2
.
1. http ://www.frc.ri.cmu.edu/ hpm/book98/
2. http ://ichbiah.online.fr/pagerobots.htm
Robotique Mobile - david.filliat@ensta-paristech.fr 14Première partie
Les bases de la navigation
15 Robotique Mobile - david.filliat@ensta-paristech.frDans cette partie, nous présentons les différentes catégories de méthodes de navigation utilisables
pour un robot mobile et les architectures de contrôle associées. Nous présentons ensuite
les informations qu’un robot pourra utiliser pour se déplacer, ainsi que les capteurs et les platesformes
couramment utilisées en robotique.
17 Robotique Mobile - david.filliat@ensta-paristech.frRobotique Mobile - david.filliat@ensta-paristech.fr 18CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION
Chapitre 2
Les différents types de navigation
2.1 Les stratégies de navigation
Les stratégies de navigation permettant à un robot mobile de se déplacer pour rejoindre un
but sont extrêmement diverses, de même que les classifications qui peuvent en être faites. Afin
de situer les différentes méthodes de navigation que nous allons étudier dans un contexte géné-
ral, nous reprenons ici une classification établie par Trullier et al. [138, 140]. Cette classification
a été établie en prenant en compte à la fois les stratégies des robots et des animaux. Elle pré-
sente l’avantage de distinguer les stratégies sans modèles internes et les stratégies avec modèle
interne.
Cette classification comporte cinq catégories, de la plus simple à la plus complexe :
– Approche d’un objet : cette capacité de base permet de se diriger vers un objet visible
depuis la position courante du robot. Elle est en général réalisée par une remontée de
gradient basée sur la perception de l’objet, comme dans l’exemple célèbre des véhicules
de Valentino Braitenberg [19] (voir section 5.1) qui utilisent deux capteurs de lumière pour
atteindre ou fuir une source lumineuse. Cette stratégie utilise des actions réflexes, dans
lesquelles chaque perception est directement associée à une action. C’est une stratégie
locale, c’est-à-dire fonctionnelle uniquement dans la zone de l’environnement pour laquelle
le but est visible.
– Guidage : cette capacité permet d’atteindre un but qui n’est pas un objet matériel directement
visible, mais un point de l’espace caractérisé par la configuration spatiale d’un ensemble
d’objets remarquables, ou amers, qui l’entourent ou qui en sont voisins. La straté-
gie de navigation, souvent une descente de gradient également, consiste alors à se diriger
dans la direction qui permet de reproduire cette configuration. Cette capacité semble
utilisée par certains insectes, comme les abeilles [26], et a été utilisée sur divers robots
[54, 86, 58, 114] (voir sections 5.2 et 5.3). Cette stratégie utilise également des actions ré-
flexes et réalise une navigation locale qui requiert que les amers caractérisant le but soient
visibles.
– Action associée à un lieu : cette capacité est la première capacité réalisant une navigation
globale, c’est-à-dire qui permette de rejoindre un but depuis des positions pour lesquelles
19 Robotique Mobile - david.filliat@ensta-paristech.fr2.1. LES STRATÉGIES DE NAVIGATION
a
D
A
a
a a a
a
a
a
a a
a
Direction à prendre pour atteindre le lieu A
Trajectoire suivie par l’animat
Obstacles
Lieux mémorisés
Zone inexplorée
FIGURE 2.1 – Action associée à un lieu. En chaque lieu, représenté par un cercle, l’action à
accomplir pour rejoindre le but A est représentée par une flèche indiquant la direction à suivre
à partir de ce lieu. Cette stratégie permet de rejoindre un but distant dans l’environnement
mais repose sur des chemins figés. Dans cet exemple, le chemin joignant le lieu D au lieu
A et passant par la droite de l’obstacle a été appris. Rejoindre le lieu A depuis le lieu D ne
pourra alors être réalisé que par ce chemin. Le raccourci empruntant le chemin de gauche,
par exemple, est inutilisable.
ce but ou les amers qui caractérisent son emplacement sont invisibles (par exemple [114].
Elle requiert une représentation interne de l’environnement qui consiste à définir des lieux
comme des zones de l’espace dans lesquelles les perceptions restent similaires, et à associer
une action à effectuer à chacun de ces lieux (cf. figure 2.1). L’enchaînement des
actions associées à chacun des lieux reconnus définit une route qui permet de rejoindre le
but. Ces modèles permettent donc une autonomie plus importante mais sont limités à un
but fixé. Une route qui permet de rejoindre un but ne pourra en effet pas être utilisée pour
rejoindre un but différent. Changer de but entraînera l’apprentissage d’une nouvelle route,
indépendante des routes permettant de rejoindre les autres buts.
B
D
A
Possibilité de passer d’un lieu à un autre
Trajectoire suivie par l’animat
Obstacles
Lieux mémorisés
Zone inexplorée
FIGURE 2.2 – Navigation topologique. Cette stratégie permet de mémoriser un ensemble
de lieux et les possibilités de passer de l’un à l’autre, indépendamment de tout but. Pour
rejoindre un but, il faut alors une étape de planification qui permet de rechercher, parmi tous
les chemins possibles, le chemin rejoignant le but. Dans notre exemple, le chemin le plus
court entre D et A peut alors être calculé, mais uniquement parmi les lieux et les chemins
déjà connus. Cette stratégie permet, par exemple, de contourner l’obstacle par la gauche
mais ne permet pas de le traverser en ligne droite de D à A.
Robotique Mobile - david.filliat@ensta-paristech.fr 20CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION
– Navigation topologique : cette capacité est une extension de la précédente qui mémorise
dans le modèle interne les relations spatiales entre les différents lieux. Ces relations
indiquent la possibilité de se déplacer d’un lieu à un autre, mais ne sont plus associées à
un but particulier. Ainsi le modèle interne est un graphe qui permet de calculer différents
chemins entre deux lieux arbitraires. Ce modèle ne permet toutefois que la planification de
déplacements parmi les lieux connus et suivant les chemins connus (cf. figure 2.2).
B
D
A
Trajectoire suivie par l’animat
Possibilité de passer d’un lieu à un autre
déduite de leur position relative
x
y
Obstacles
Lieux mémorisés
Possibilité de passer d’un lieu à un autre
Zone inexplorée
FIGURE 2.3 – Navigation métrique. Cette stratégie permet de calculer le chemin le plus court
entre deux lieux mémorisés, permettant même de planifier des raccourcis au sein de zones
inexplorées de l’environnement. Pour cela, la carte mémorise la position métrique relative de
chacun des lieux visités par le robot. Ainsi il est possible de prévoir un déplacement entre
deux lieux, même si la possibilité de ce déplacement n’est pas enregistrée dans la carte.
Dans cet exemple, cette stratégie permet de d’aller du lieu A au lieu D en traversant la zone
inexplorée.
– Navigation métrique : cette capacité est une extension de la précédente car elle permet
au robot de planifier des chemins au sein de zones inexplorées de son environnement.
Elle mémorise pour cela les positions métriques relatives des différents lieux, en plus de
la possibilité de passer de l’un à l’autre. Ces positions relatives permettent, par simple
composition de vecteurs, de calculer une trajectoire allant d’un lieu à un autre, même si la
possibilité de ce déplacement n’a pas été mémorisée sous forme d’un lien (cf. figure 2.3).
Les modèles des trois premières catégories utilisent des actions réflexes pour guider le robot
et se différencient essentiellement par le type de perceptions utilisées pour déclencher ces actions.
Ils se regroupent sous le terme générique de navigation réactive dont nous parlerons dans
la partie II. Ils peuvent être très simple, ne nécessitent pas de modèle global de l’environnement
mais ont un domaine d’application souvent restreint. Dans le monde vivant, ces stratégies sont
très répandues, notamment chez les insectes. Les comportements de ce type restent toutefois
essentiels dans les robots modernes car, du fait de leur simplicité, il sont généralement exécutés
très rapidement et ils permettent de réaliser des taches de bas-niveau, comme l’évitement des
obstacles imprévus, essentielles à la sécurité d’un robot.
Les modèles des deux dernières catégories autorisent pour leur part une navigation globale
et permettent de rejoindre un but arbitraire au sein de l’environnement. Ils s’appuient pour cela
sur un modèle interne du monde, une carte, qui supporte une planification. Ce modèle interne
mémorise donc la structure spatiale de l’environnement, indépendamment d’un but précis. Cha-
21 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE
cune des positions mémorisées dans ce modèle interne peut alors être utilisée comme but par
le processus de planification dont le rôle est de calculer une route vers ce but. Ce sont ces deux
stratégies qui sont regroupées sous le terme de navigation par carte, objet du chapitre III .
Une telle représentation interne est naturelle pour les êtres humains, pour lesquels des processus
cognitifs de haut niveau sont utilisés pour créer et utiliser une carte. Ces processus de
haut niveau sont toutefois très difficile à copier pour un robot réel qui ne dispose que de systèmes
rudimentaires de perception et de traitement des informations en comparaison avec un
homme. Par exemple, en environnement urbain, le processus de mise en correspondance de la
carte avec l’environnement réel afin de déterminer sa position fait souvent appel, pour l’homme,
à la lecture du nom des rues inscrit sur les bâtiments, ce qui est relativement difficile à automatiser,
à cause de la diversité des configurations dans lesquelles peuvent ce trouver ces noms.
On notera au passage que l’homme a quasiment toujours recours à des aménagements particuliers
de l’environnement pour connaitre sa position, par exemple celui qui consiste à nommer les
rues ou à lancer des satellites dans l’espace pour bénéficier du GPS. Le système de navigation
idéal pour un robot mobile sera probablement celui qui sera capable de tirer partie de toutes ces
informations, qui ne lui étaient pas destinées à l’origine.
L’utilisation de cartes par un robot mobile comme le font les hommes est probablement hors de
notre portée pendant quelques années, cependant il existe également des preuves de l’existence
de représentations internes similaires à de telles cartes chez les animaux, par exemple chez les
rats. Ces représentations sont identifiables au niveau neurologiques dans certaines parties de
leur cerveau, notamment dans l’hippocampe. Cela montre que des cartes sont utilisée par des
êtres vivants, sans le support de concept abstraits tels que les utilisent les humains. Ce type de
carte qui fait appel à des structures neurologiques de base et probablement à des perceptions
relativement simples, est un paradigme intéressant pour les robots mobiles.
En robotique mobile, comme pour l’homme ou certains animaux, l’utilisation de cartes est
quasiment indispensable pour permettre d’effectuer des tâches de navigation dans des conditions
environnementales complexes, qui ne sont pas spécialement adaptées pour le robot. La
construction et l’utilisation de telles cartes posent cependant de nombreux problèmes, notamment
pour garantir l’adéquation entre la carte et le monde réel. Pour cette raison, la plupart des
robots trouvent aujourd’hui un compromis entre une approche réactive et une approche utilisant
une carte afin de bénéficier de la rapidité et de la robustesse de la première et de la capacité de
déplacement à long terme de la seconde.
2.2 Les architectures de contrôle
Un robot est un système complexe qui doit satisfaire à des exigences variées et parfois contradictoires.
Un exemple typique pour un robot mobile est l’arbitrage qui doit être fait entre l’exécution
la plus précise possible d’un plan préétabli pour atteindre un but et la prise en compte d’éléments
imprévus, tels que les obstacles mobiles. Ces arbitrages, que ce soit au niveau du choix de stratégie,
ou au niveau de l’utilisation des capteurs, des effecteurs ou des ressources de calcul, sont
réglés par un ensemble logiciel appelé architecture de contrôle du robot. Cette architecture permet
donc d’organiser les relations entre les trois grandes fonctions que sont la perception, la
Robotique Mobile - david.filliat@ensta-paristech.fr 22CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION
décision et l’action .
Nous pouvons reprendre la définition de Ronald Arkin [4] de l’art de concevoir de telles architectures
:
Robotic architecture is the discipline devoted to the design of highly specific and individual robots
from a collection of common software building blocks.
Selon cette définition une architecture doit donc être conçue pour un robot précis, mais en
utilisant des modules génériques. De manière plus générale il existe également des règles de
conception relativement générales qui permettent de réaliser ces implémentations. En fonction
de ces règles, les architectures de contrôle peuvent être classées en trois grandes catégories
que nous détaillerons par la suite : les contrôleurs hiérarchiques, les contrôleurs réactifs et les
contrôleurs hybrides (Figure 2.4). Comme le précise cette définition, toutes ces architectures ne
diffèrent pas forcement par les méthodes élémentaires employées mais plutôt par leur agencement
et leur relations.
A B C
PERCEPTION
PLANIFICATION
ACTION
PERCEPTION ACTION
PLANIFICATION
PERCEPTION ACTION
FIGURE 2.4 – Illustration des architectures classiques des contrôleurs pour les robots mobiles
: Hiérarchique (A), Réactive (B) et Hybride (C) (Voir le texte pour la description détaillée).
2.2.1 Contrôleurs Hiérarchiques
Historiquement, les premiers robots mobiles dérivés des recherches en intelligence artificielle
utilisaient des contrôleurs hiérarchiques (cf. figure 2.4 A) dont le fonctionnement repose essentiellement
sur la capacité de décision travaillant sur un modèle du monde supposé quasiment-parfait.
Ces architectures fonctionnent selon un cycle rigide de modélisation de l’environnement, planifi-
cation des actions au sein de cette représentation, puis exécution du plan. La capacité de décision
était issue des premiers travaux en intelligence artificielle et reposait essentiellement sur des traitements
de données symboliques. Ces architectures ont rapidement montré leurs limites et leur
incapacité à fonctionner dans un environnement qui ne soit pas statique et simplifié à l’extrême.
L’essentiel des problèmes de ces architectures provient de l’utilisation d’un modèle interne
central qui est le seul pris en compte pour guider le robot. Elles se trouvent confrontées à tout les
problèmes des premiers développements de l’intelligence artificielle symbolique.
23 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE
Ces architectures supposent premièrement qu’un modèle informatique du monde puisse représenter
toutes les informations pertinentes pour le déplacement du robot. Or un tel modèle ne
peut être suffisant dans un environnement dynamique car au moment de la réalisation de l’action
l’environnement peut avoir suffisamment changé pour que la décision ne soit plus valide. Ce
problème était particulièrement crucial au début de la robotique mobile ou les capacités de calcul
limitées entraînaient des temps de planification de l’ordre de plusieurs dizaines de minutes. Mais
l’augmentation des capacités de calcul ne suffit pas à résoudre ce problème qui ne permet pas
de gérer un environnement de travail réaliste. C’est un problème intrinsèque lié d’une part à la
trop grande longueur de la boucle qui relie la perception à l’action et d’autre part à l’invalidité de
l’hypothèse de monde clos faite en intelligence artificielle 1
.
De plus, ces architectures permettent peu de contrôle sur l’exécution des actions. En effet,
une fois l’action choisie, elle est exécutée en supposant le modèle du monde correct et il n’y a pas
de retour direct de la perception sur l’exécution de l’action. Les écarts modèles/environnement ne
peuvent être pris en compte que via un nouveau cycle perception/modélisation/planification, ce
qui, par définition, est très peu réactif et conduit rapidement à de graves problèmes.
2.2.2 Contrôleurs réactifs
Rodney Brooks [20] a proposé une solution radicale à tous ces problèmes sous la forme d’une
architecture réactive (cf. figure 2.4 B). Dans cette architecture, un ensemble de comportements
réactifs, fonctionnant en parallèle, contrôle le robot sans utiliser de modèle du monde. Cette architecture
supprime évidemment les problèmes dûs aux différences entre la réalité, d’une part,
et le modèle de l’environnement du robot, d’autre part, mais limite clairement les tâches que peut
effectuer le robot (cf. [77] pour une critique). En effet, sans représentation interne de l’état de
l’environnement, il est très difficile de planifier une suite d’actions en fonction d’un but à atteindre.
Les robots utilisant cette architecture sont donc en général efficaces pour la tâche précise pour
laquelle ils ont été conçus, dans l’environnement pour lequel ils ont été prévus, mais sont souvent
difficiles à adapter à une tâche différente.
Les réussites de ces architectures sont liées au couplage direct entre la perception et l’action
qui permet une prise en compte très rapide des phénomènes dynamiques de l’environnement.
En donc une bonne robustesse dans des environnements complexes.
Comme nous l’avons mentionné, ces architectures sont en général basées sur plusieurs comportements
: évitement d’obstacles, déplacement aléatoire, déplacement vers un but, fuite d’un
point... Pour guider le robot, il faut donc choisir à chaque instant lequel de ces comportements
activer. Ce problème est connu dans la litérature scientifique sous le nom de sélection de l’action.
La solution proposée par Brooks, l’architecture de subsomption [21] est devenue un classique et
utilise une hiérarchie des comportements qui se déclenchent donc selon un ordre de priorité en
fonction des perceptions du robot.
1. L’hypothèse de monde clos dit que la représentation symbolique d’un problème va être suffisante pour pouvoir
représenter toutes les conséquences des actions réalisées dans ce monde. Cela s’avère impossible en pratique pour
des problèmes autre que des problèmes jouets (par exemple un monde de cubes posés sur une table).
Robotique Mobile - david.filliat@ensta-paristech.fr 24CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION
2.2.3 Contrôleurs hybrides
La plupart des contrôleurs actuellement utilisés choisissent une solution intermédiaire entre
ces deux approches sous la forme d’une architecture hybride [104, 3] (cf. figure 2.4 C). Cette
architecture se compose de deux niveaux. Le premier est chargé des tâches de navigation de
haut niveau, telles que la localisation, la cartographie et la planification. Pour cela, il s’appuie sur
un second niveau réactif qui est chargé d’exécuter les commandes avec le plus de précision possible
et de gérer les éléments non modélisés de l’environnement tels que les obstacles inconnus
ou dynamiques. L’action conjointe de ces deux niveaux permet de réagir rapidement face aux
variations imprévues de l’environnement, tout en permettant la réalisation d’actions planifiées à
plus long terme.
Le bas niveau de ces architectures peut être réalisé sous forme de comportements, tels que
ceux utilisés dans les architectures réactives. Ces comportements sont des boucles sensorimotrices
qui relient les action aux perceptions avec un phase de décision très courte, qui assure la
réactivité. Dans le même temps, les informations sensorielles sont utilisées par le haut niveau
dans une boucle sensorimotrice à une échelle de temps beaucoup plus longue. C’est la mise en
parallèles de ces deux échelles de temps qui fait la force de ces architectures.
Les exemples d’architectures hybrides foisonnent (4D/RCS, 3T, Harpic...) car de très nombreux
laboratoires et organismes travaillant sur la robotique ont développé leur architecture de ce
type.
2.2.4 Pour aller plus loin
Deux livres intéressants sur le sujet :
– Introduction to AI Robotics de Robin Murphy, MIT Press
– Behavior based robotics de Ronald C. Arkin, MIT Press
25 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE
Robotique Mobile - david.filliat@ensta-paristech.fr 26CHAPITRE 3. LES SOURCES D’INFORMATION
Chapitre 3
Les sources d’information
Tous les capteurs utilisés en robotique mobile fournissent des informations appartenant à l’une
de deux grandes catégories d’informations : les informations proprioceptives et les informations
extéroceptives.
– Les informations proprioceptives sont des informations internes au robot qui le renseignent,
dans le cas de la navigation, sur son déplacement dans l’espace. Ces informations peuvent
provenir de la mesure de la rotation de ses roues ou de la mesure de l’accélération grâce
à une centrale inertielle. Un processus d’intégration permet alors, en accumulant ces informations
au cours du temps, d’estimer la position relative de deux points par lesquels le
robot est passé.
– Les informations extéroceptives ou plus simplement les perceptions, sont des informations
caractéristiques d’une position que le robot peut acquérir dans son environnement. Ces
informations peuvent être de nature très variée. Par exemple, un robot peut mesurer la
distance des obstacles avec des capteurs infrarouges ou utiliser une caméra.
Ces deux sources d’information ont des propriétés opposées que nous détaillons dans les
deux sections suivantes.
3.1 Informations proprioceptives
Les informations proprioceptives renseignent sur le déplacement du robot dans l’espace. Elles
constituent donc une source d’information très importante pour la navigation. Cependant, la pré-
cision de cette information se dégrade continuellement au cours du temps, la rendant inutilisable
comme seule référence à long terme. Cette dégradation continuelle provient de l’intégration temporelle
des mesures effectuées par les capteurs internes. En effet, chaque capteur produit une
mesure bruitée du déplacement instantané, de la vitesse ou de l’accélération du robot. Ce bruit,
via le processus d’intégration qui a pour but d’estimer le déplacement, conduit inévitablement à
une erreur croissante.
Malgré ce défaut important, les informations proprioceptives ont l’avantage de dépendre assez
peu des conditions environnementales qui perturbent fortement les informations perceptives. La
vision, par exemple sera fortement perturbée si l’environnement est plongé dans le noir, mais
27 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES
les informations proprioceptives fourniront une information identique, que l’environnement soit
éclairé ou non. De plus, comme nous le verrons dans la section suivante, si deux lieux identiques
du point de vue des perceptions se trouvent dans l’environnement, les informations perceptives
ne permettent pas de les différencier. Les informations proprioceptives sont alors le seul moyen
de les distinguer.
En robotique, cette information a de plus l’avantage de la simplicité de manipulation. En effet,
le processus d’intégration fournit directement une estimation de la position du robot dans un
espace euclidien doté d’un repère cartésien. Dans ce type de repère, tous les outils de la géomé-
trie mathématique sont utilisables. Ils permettent, par exemple, d’effectuer des calculs de chemin
relativement simples lorsque l’on connaît la position du but et des obstacles.
3.2 Informations extéroceptives
Les informations extéroceptives, ou plus simplement les perceptions , fournissent un lien
beaucoup plus fort entre le robot et son environnement. En effet, les informations proprioceptives
fournissent des informations sur le déplacement du robot, alors que les informations perceptives
fournissent des informations directement sur la position du robot dans l’environnement. Ces
informations assurent un ancrage dans l’environnement, en permettant de choisir des perceptions
qui peuvent être utilisées comme points de repère. Ces points de repère sont indépendants
des déplacements du robot et pourront être reconnus quelle que soit l’erreur accumulée par les
données proprioceptives. La reconnaissance de ces points est évidemment soumise à une incertitude,
mais pas à une erreur cumulative, ce qui les rend utilisables comme référence à long
terme.
3.2.1 Variabilité perceptuelle
Pour être utile, un système de perception doit donc permettre de distinguer le plus de lieux
possible. Pour cela, il doit être capable de distinguer le plus de détails possibles, afin de faire la
différence entre deux lieux différents mais d’apparences similaires. Or l’augmentation de cette
capacité à distinguer de petites variations dans l’environnement rend le système sensible au
problème de la variabilité perceptuelle , c’est à dire au changement de perception au cours du
temps pour un lieu donné. Cette variabilité peut être due au bruit inhérent au processus de mesure
où à des variations de l’environnement non significatives pour le problème de navigation qui nous
concerne, par exemple le changement de luminosité. Pour s’affranchir de ce problème, il faut en
général mettre en place des processus de traitement des perceptions qui permettront de ne pas
dépendre de ces variations et de correctement identifier un lieu donné.
3.2.2 Perceptual aliasing
En cherchant à limiter la dépendance aux variations de l’environnement, le concepteur de
robot aboutit en général au problème du perceptual aliasing ou d’Ambiguïté des perceptions. Ce
problème désigne l’incapacité d’un système de perception à distinguer de manière unique tous
Robotique Mobile - david.filliat@ensta-paristech.fr 28CHAPITRE 3. LES SOURCES D’INFORMATION
les lieux d’un environnement. Cette situation est très courante lorsque les robots utilisent des
capteurs de distance aux obstacles tels que les capteurs à ultrasons. Dans un environnement
intérieur de tels capteurs sont, par exemple, capables de mesurer la position du robot par rapport
à un coin, mais ne fournissent aucune information sur la position le long d’un couloir rectiligne.
Toutes les positions le long d’un couloir correspondent alors à des perceptions identiques.
Il est possible d’utiliser des capteurs qui fournissent des données plus précises ou plus discriminantes.
Dans le cas des capteurs de distance, il est, par exemple, possible d’utiliser un
télémètre laser qui pourra distinguer les renfoncements des portes et sera ainsi plus précis. Mais
même en utilisant des capteurs plus informatifs, comme une caméra, ce problème finit par apparaitre
lorsque la taille de l’environnement augmente. Il existe toujours une limite matérielle ou
logicielle au delà de laquelle l’identification unique de toutes les positions d’un environnement
est impossible. Il n’est donc pas possible, en général, de régler complètement le problème du
perceptual aliasing, mais seulement d’en repousser l’apparition. Il faut donc bien étudier les capteurs
nécessaires en fonction des traitements réalisables et de l’environnement visé pour limiter
ce problème.
3.2.3 Utilisation directe
Les capteurs sur un robot mobile peuvent être de nature très variée et être utilisés de nombreuses
façons différentes. Il est toutefois possible de distinguer deux utilisations distinctes de
leurs données pour la navigation. Ces deux utilisations dépendent de l’utilisation ou non d’un modèle
métrique associé au capteur, modèle qui permet de traduire les valeurs brutes du capteur
en informations sur la géométrie de l’environnement. Ce modèle permet notamment de prévoir la
variation des mesures renvoyées par ce capteur en fonction du déplacement du robot.
Les perceptions peuvent être utilisées de manière directe, sans aucun modèle métrique, pour
comparer directement deux positions en examinant les perceptions recueillies en ces lieux. Cette
méthode ne permet cependant que de reconnaître des lieux de l’environnement préalablement
explorés par le robot. Sans modèle de la variation des capteurs, il est en effet impossible de
prévoir les valeurs que les capteurs relèveront dans un lieu inexploré, même s’il est proche ou
entouré de lieux connus.
Pour une telle utilisation directe, seules deux procédures permettant, d’une part, de mémoriser
une perception et, d’autre part, de comparer deux perceptions, sont alors nécessaires. Ces procédures
peuvent être mises en œuvre à partir de tous les types de capteurs existants. Il est, par
exemple, possible d’utiliser la couleur dominante de l’environnement autour du robot, la température
(en supposant qu’elle caractérise une zone de l’environnement, comme pour une chambre
froide), la force du signal wifi ou le temps de retour d’une onde sonore quand elle est envoyée
dans une direction donnée. La seule propriété utilisée est la constance des valeurs mesurées
par un capteur pour un lieu donné. Cette constance permet de reconnaître un lieu déjà visité ou
d’identifier un lieu nouveau dans l’environnement.
29 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES
3.2.4 Utilisation d’un modèle métrique
La seconde méthode d’utilisation d’un capteur consiste à utiliser un modèle métrique associé
. Un tel modèle permet de traduire les informations données par le capteur dans un espace
métrique qui est en général le même que celui utilisé pour estimer la position du robot grâce à
l’odométrie. Il est ainsi possible d’estimer la position d’objets de l’environnement par rapport au
robot, et ainsi de prévoir les données que ce capteur relèvera pour des positions différentes du
robot. L’utilisation d’un tel modèle n’est toutefois possible que pour certains capteurs. Il est, par
exemple, possible d’utiliser un tel modèle associé à un capteur à ultrasons, à un télémètre laser
ou à une paire de caméras stéréoscopique, mais pas à un capteur d’odeur.
a b
FIGURE 3.1 – Un modèle métrique pour un capteur permet deux utilisations de ses données.
La première est similaire à celle qui traite de telles données sans modèle métrique et requiert
la simple mémorisation de ce qui est perçu en un lieu donné (Partie a). La seconde utilise ces
données pour reconstituer les objets rencontrés dans l’environnement, objets qui pourront
tous être mémorisés dans un cadre de référence commun, indépendamment de la position
depuis laquelle ils ont été perçus (Partie b).
Avec un tel modèle, les valeurs des capteurs peuvent être utilisées simplement pour caractériser
chaque lieu atteint par le robot (cf. figure 3.1a). La méthode est alors la même que celle mise
en place quand les capteurs sont utilisés sans modèle métrique. L’utilisation d’un modèle mé-
trique présente toutefois l’avantage que les informations recueillies ont une sémantique plus forte
et une certaine indépendance au point de vue du robot. En effet, ces informations caractérisent la
structure spatiale locale de l’environnement, en plus de la simple apparence de l’environnement
depuis la position du robot. Cette structure spatiale peut alors être utilisée lors de la comparaison
de différents lieux. Il est par exemple possible de reconnaître un couloir en fonction de sa largeur,
indépendamment de la position du robot dans ce couloir. En effet, sans utilisation de modèles
métriques, deux perceptions recueillies en des positions différentes du couloir seront simplement
différentes. En utilisant un modèle métrique, il est possible de calculer la largeur du couloir, par
exemple, à partir des données recueillies et ainsi de déterminer si ces deux positions peuvent
correspondre au même couloir.
Cependant, grâce à un modèle métrique, les perceptions peuvent être utilisées de manière
différente. En effet, dans l’utilisation précédente, sans modèle métrique, elles sont utilisées pour
Robotique Mobile - david.filliat@ensta-paristech.fr 30CHAPITRE 3. LES SOURCES D’INFORMATION
y
x
a b c
A1
I1
A2
A3 ?
I2
A3 ?
A3
I1
A1 A2
I2
?
?
Environnement
Odométrie
Modèle métrique
Pas de modèle métrique
Odométrie
Mémorisation directe
Modèle métrique
Cadre de référence commun
FIGURE 3.2 – Un modèle métrique des perceptions permettent d’inférer les valeurs qui devraient
être perçues pour des positions encore non visitées. Dans cet exemple, les données
A1 et A2 sont perçues en deux positions reliées par des données proprioceptives I1 (partie
a). L’utilisation d’un modèle métrique permet de fusionner ces informations dans un cadre de
référence commun où des objets sont représentés, ici deux murs orthogonaux (partie b, haut).
Sans modèle métrique, ces données peuvent seulement être mémorisées de manière séparée
(partie b, bas). Dans le cas de l’utilisation d’un modèle métrique, les données peuvent
ensuite être utilisées pour estimer la perception A3 pour une nouvelle position reliée à la pré-
cédente par les données proprioceptives I2. Ici, le modèle permet d’inférer que les données
A3 correspondent à un coin de murs (partie c, haut). Sans un tel modèle, seules les positions
visitées peuvent être reconnues, et aucune inférence ne peut être faite pour les positions non
visitées (partie c, bas).
caractériser l’apparence de l’environnement depuis un lieu. Cette caractérisation ne permet pas
d’identifier individuellement des objets distants du robot qui pourraient servir de points de repères,
les amers. L’utilisation d’un modèle métrique permet l’identification de tels points (cf. figure 3.1b).
La perception de ces amers permet alors, en retour, d’obtenir des informations sur la position
du robot. Cette utilisation des perceptions offre l’avantage supplémentaire de permettre au robot
d’inférer les valeurs que mesureront les capteurs dans des positions différentes, mais voisines de
sa position courante (cf. figure 3.2). Par exemple, si un robot perçoit un mur à cinq mètres devant
lui, il peut prédire qu’en avançant d’un mètre, il percevra le mur à quatre mètres. Un autre moyen
de présenter cette propriété est de dire que les perceptions seules permettent d’estimer la position
métrique relative de deux lieux (cf. figure 3.3). Ainsi, si un robot perçoit deux fois un mur devant
lui, d’abord à cinq mètres puis à quatre mètres, il pourra en déduire qu’il a avancé d’un mètre.
Cette propriété permet au robot d’estimer sa position avec précision sur une part plus importante
de son environnement et ne limite plus la localisation aux lieux déjà visités. Cet avantage est une
conséquence directe de la fusion des informations proprioceptives et des perceptions au sein
31 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES
d’une même représentation, qui permet le passage d’un type d’information à l’autre.
A1
A2
I1 = 0
A1 A2 I1?
A2
A1
a b c
Environnement
Modèle métrique
Pas de modèle métrique
Correspondance
Correspondance
DIFFERENT
I1 I1
FIGURE 3.3 – Un modèle métrique des capteurs permet d’inférer la position relative I1 de deux
lieux depuis lesquelles des perceptions A1 et A2 ont été réalisées (partie a). Cette estimation
requiert d’abord la recherche d’un objet de l’environnement commun aux deux perceptions
(partie b, haut). L’utilisation de cet objet commun rend alors possible l’estimation de la position
relative I1 des deux lieux (partie c, haut). Sans modèle métrique, seule la similarité de deux
perceptions peut être mesurée (partie b, bas). Il est alors seulement possible d’estimer si ces
deux situations peuvent correspondre au même lieu ou non, c’est-à-dire si I1 est nulle ou non
(partie c, bas).
Toutefois, la mise au point d’un tel modèle métrique peut être difficile. La relation qui lie la
valeur mesurée par un capteur à la position des objets du monde réel peut être, en effet, très
complexe. Dans le cas des capteurs à ultrasons, par exemple, si un mur se trouve juste dans l’axe
du capteur, sa distance est simplement mesurée par le temps mis par l’onde sonore pour revenir
au capteur. Mais, dans le cas où le mur est fortement incliné par rapport au capteur, l’écho peut ne
pas revenir en direction du capteur qui ne détectera alors aucun obstacle. Un autre problème vient
de la texture des murs. Un mur recouvert de textile ou d’un matériau souple renverra les échos
très différemment d’un mur de béton. En conséquence, pour une distance donnée, le capteur
percevra des distances différentes suivant le matériau des murs. Ces deux exemples montrent
que le modèle métrique associé à un capteur ne dépend pas que du capteur. Il dépend aussi
fortement de propriétés locales de l’environnement qui sont difficiles ou impossibles à prendre en
compte dans un modèle du capteur seul.
Robotique Mobile - david.filliat@ensta-paristech.fr 32CHAPITRE 3. LES SOURCES D’INFORMATION
3.3 Fusion d’informations
En résumé, les informations proprioceptives sont simples à utiliser, mais dérivent au cours du
temps, tandis que les perceptions ne dérivent pas, mais souffrent des problèmes de variabilité
perceptuelle et d’Ambiguïté.
La solution pour résoudre ces problèmes est de fusionner ces deux types d’information. Il est
par exemple possible d’utiliser les informations proprioceptives afin de distinguer deux positions
physiquement différentes mais similaires pour le système perceptif. Ainsi deux lieux, dont la position
relative mesurée par les données proprioceptives est non nulle, ne seront pas confondus.
Cette solution est celle qui est mise en œuvre dans la majorité des systèmes de navigation, car
elle permet d’utiliser les deux sources d’informations en limitant les défauts inhérents à chacune.
Ainsi la dégradation progressive des informations proprioceptives est compensée par la reconnaissance
de positions de l’environnement grâce aux perceptions. Inversement, le problème de
perceptual aliasing est réglé par l’utilisation des données proprioceptives.
Comme nous le verrons dans ce cours, il existe de nombreuses méthodes pour utiliser conjointement
les deux sources d’informations. Ces méthodes diffèrent par leur capacité à utiliser de
manière plus ou moins efficace les avantages des deux types d’informations. D’une manière gé-
nérale, la qualité d’un système de navigation dépend fortement de cette capacité.
33 Robotique Mobile - david.filliat@ensta-paristech.fr3.3. FUSION D’INFORMATIONS
Robotique Mobile - david.filliat@ensta-paristech.fr 34CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
Chapitre 4
Matériels courants en robotique mobile
4.1 Les bases mobiles
Nous présentons rapidement les différents types de bases mobiles utilisées en robotique,
en nous focalisant sur les plateformes mobiles terrestres pour le milieu intérieur. Ce cours ne
portant pas sur les méthodes de commande, nous ne rentrerons pas en détails dans les modèles
cinématiques ou dynamiques associés. Nous ne parlerons pas non plus des effecteurs permettant
au robot d’agir sur son environnement, tels que les bras articulés.
4.1.1 Holonomie
En robotique, une plateforme est dite holonome lorsque que le nombre de degrés de libertés
contrôlables est égal au nombre total de degrés de liberté.
Pour un robot se déplaçant sur un plan, il y a 3 degrés de liberté (deux translations et une rotation).
A partir d’une position donnée, une plateforme holonome devra donc pouvoir se déplacer
en avant, sur le coté et tourner sur elle-même. Cette capacité permet de contrôler très simplement
le robot car tous les déplacements imaginables sont réalisables, ce qui simplifie le problème de
planification de trajectoire.
De nombreuses plateformes simples ne sont pas holonomes. C’est par exemple le cas des
voitures, ce qui oblige à manœuvrer pour réaliser certaines trajectoires. Par exemple, il est né-
cessaire de faire un créneau pour réaliser un déplacement latéral. Ces contraintes devront donc
être prises en compte lors de la planification de trajectoires. Nous allons cependant voir quelques
mécanismes permettant d’obtenir des plateformes holonomes, ou s’en approchant.
4.1.2 Les plates-formes différentielles
Une des configurations les plus utilisées pour les robots mobiles d’intérieur est la configuration
différentielle qui comporte deux roues commandées indépendamment. Une ou plusieurs roues
folles sont ajoutées à l’avant ou à l’arrière du robot pour assurer sa stabilité (Figure 4.1). Cette
plate-forme est très simple à commander, puisqu’il suffit de spécifier les vitesses des deux roues,
35 Robotique Mobile - david.filliat@ensta-paristech.fr4.1. LES BASES MOBILES
et permet de plus au robot de tourner sur place. Cette possibilité permet de traiter dans certains
cas le robot comme un robot holonome, ce qui va simplifier la planification de déplacement et la
commande du robot.
r
l
v
ω ω1
FIGURE 4.1 – Exemple de plate-forme différentielle. Pioneer 2 DX de la société MobileRobots.
Urban Robot de la société iRobot.
L’estimation du déplacement par odométrie est également très simple à partir de la mesure
des vitesses de rotation des deux roues ω1 et ω2. Les vitesses de translation v et de rotation ω
sont en effet données par :
v =
ω1r +ω2r
2
ω =
ω1r −ω2r
2l
Ce type de plate-forme peut également être utilisé avec des chenilles ce qui fournit une capacité
de franchissement de petits obstacles intéressante (Figure 4.1). Ces plates-formes peuvent
ainsi être utilisées en extérieur ou dans des décombres. L’utilisation de chenilles conduit cependant
à une odométrie très bruitée à cause du contact mal défini entre les chenilles et le sol qui
glissent beaucoup, notamment lors des rotations. L’estimation de la direction par l’odométrie sur
ce type de plates-formes est donc en général rapidement inutilisable.
4.1.3 Les plates-formes omnidirectionnelles
Les plates-formes omnidirectionnelles permettent de découpler de manière plus nette le contrôle
de la rotation et de la translation d’un robot et sont donc quasiment holonomes.
Il existe différents types de plateformes omnidirectionnelles. Le premier utilise trois ou quatre
roues qui tournent à la même vitesse pour fournir une translation et un mécanisme qui permet
d’orienter simultanément ces roues dans la direction du déplacement souhaitée (Figure 4.2).
Le corps du robot lui-même n’effectue pas de rotation mais uniquement des translations. Ce
système permet un contrôle très simple et relativement rapide car les changement de direction
ne concernent que les roues et peuvent donc se faire très vite. Par contre ces plates-formes sont
relativement limitées en capacité de franchissement et requièrent un sol très plan.
Une deuxième catégorie de plateformes utilise des roues dites "suédoises", qui n’offrent pas
de résistance au déplacement latéral (Figure 4.3). La plateforme comporte trois roues dont les
axes sont fixes. Les déplacements dans toutes les directions et en rotation sont obtenus en faisant
varier individuellement les vitesses des roues. La plateforme tourne sur place lorsque les trois
Robotique Mobile - david.filliat@ensta-paristech.fr 36CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
FIGURE 4.2 – Exemple de plate-forme omnidirectionnelle à roues orientables.
FIGURE 4.3 – Exemple de plate-forme omnidirectionnelle à roues suédoises.
roues tournent dans le même sens, à la même vitesse. Lorsque une roue est fixe, et que les deux
autres tournent en sens opposé, la plateforme avance en direction de la roue fixe. Différentes
combinaisons de vitesses permettent d’obtenir des déplacements quelconques.
4.1.4 Les plates-formes non holonomes
Des plates-formes non holonomes, telles que les voitures, sont également utilisées en robotique
mobile (Figure 4.4). C’est plus particulièrement le cas dans le domaine des véhicules
intelligents. Ces plates-formes sont toutefois plus difficile à commander car elle ne peuvent pas
tourner sur place et doivent manœuvrer, ce qui peut être difficile dans des environnements encombrés.
La commande de ces plates-formes pour réaliser un déplacement particulier est un
problème à part entière que nous n’aborderons pas dans ce cours. Par contre, il est possible
de prendre en compte ces contraintes de manière relativement simple dans la planification (voir
chapitre III).
37 Robotique Mobile - david.filliat@ensta-paristech.fr4.1. LES BASES MOBILES
FIGURE 4.4 – Exemple de plate-forme non holonome de type Ackerman.
4.1.5 Les plates-formes à pattes
FIGURE 4.5 – Exemples de robots à pattes. Hexapode de AAI Canada, Aibo de Sony, Nao de
Aldebarran Robotics.
Des plates-formes à deux, quatre ou six pattes peuvent également être utilisée. Elle ont l’avantage
théorique de pouvoir se déplacer sur des terrains assez complexes, même si en pratique la
plupart de ces plates-formes ne fonctionnent que sur des sols plans.
Les plates-formes à six pattes sont relativement pratiques car le robot peut être en équilibre
permanent sur au moins 3 pattes, ce qui facilite le contrôle. Les plates-formes à deux ou quatre
pattes sont plus complexes à commander et le simple contrôle de la stabilité et d’une allure de
marche correcte reste aujourd’hui difficile, ce qui les rend en général relativement lentes. L’odométrie
de ce type de plates-formes est de plus généralement d’assez faible qualité. Ces différents
facteurs font que ces plates-formes sont rarement utilisées quand l’application visée a un besoin
précis de positionnement et de navigation. De telles plates-formes commencent cependant à
apparaître à relativement grande échelle (par exemple le robot Nao de Aldebarran Robotics).
Robotique Mobile - david.filliat@ensta-paristech.fr 38CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
4.2 Les capteurs
Nous présentons dans cette section les capteurs les plus couramment utilisés en robotique
mobile pour les besoins de la navigation ainsi que des modèles probabilistes associés qui seront
utilisés dans plusieurs méthodes de navigation.
4.2.1 Les capteurs proprioceptifs
Les capteurs proprioceptifs permettent une mesure du déplacement du robot. Ce sont les
capteurs que l’on peut utiliser le plus directement pour la localisation, mais ils souffrent d’une
dérive au cours du temps qui ne permet pas en général de les utiliser seuls.
Odométrie
L’odométrie permet d’estimer le déplacement de la plateforme à partir de la mesure de rotation
des roues (ou du déplacement des pattes). La mesure de rotation est en général effectuée par
un codeur optique disposé sur l’axe de la roue, ou sur le système de transmission (par exemple
sur la sortie de la boite de vitesse pour une voiture). Le problème majeur de cette mesure est
que l’estimation du déplacement fournie dépend très fortement de la qualité du contact entre la
roue (ou la patte) et le sol. Elle peut être relativement correcte pour une plate-forme à deux roues
motrices sur un sol plan de qualité uniforme, mais est en général quasiment inutilisable seule pour
un robot à chenille par exemple. Pour limiter ce problème, il peut être intéressant de positionner
le codeur optique sur une roue non motrice qui glissera moins. Notons cependant que l’erreur
de ces méthodes se retrouve en général principalement sur l’estimation de la direction du robot,
tandis que la mesure de la distance parcourue est souvent de meilleure qualité.
Modèle probabiliste
La majorité des modèles de localisation et de cartographie présentés dans ce cours (voir
chapitre III) vont faire appel à un modèle probabiliste de cette mesure. Il existe deux types de modèles
: les modèles directs (donnant la probabilité de la mesure en fonction du déplacement réel)
et les modèles inverses (donnant la probabilité du déplacement réel en fonction de la mesure).
Dans le cas de l’odométrie, la plupart des méthodes utilisent un modèle inverse afin d’interpréter
les mesures réalisées.
Il existe divers types de modèles, mais les plus simples et les plus utilisés sont des modèles
supposant que les paramètres du mouvement (direction θ et longueur d du déplacement, changement
de direction φ du robot, cf Figure 4.6, gauche) sont statistiquement indépendants et soumis
à un bruit Gaussien :
P(d,θ,φ|do,θo,φo) = e
−
d−do
σd
2
×e
−
θ−θo
σθ
2
×e
−
φ−φo
σφ
2
où d,θ,φ sont les valeurs réelles et do,θo,φo les valeurs observées.
39 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
FIGURE 4.6 – Modèle probabiliste de l’odométrie. Paramètres du déplacement à gauche.
Exemple de densité de probabilité après un déplacement rectiligne à droite.
En général, les écarts types de ces différentes gaussiennes (σd,σθ,σφ) dépendent de la
valeur de la mesure : l’erreur sur la longueur du déplacement pourra par exemple être proportionnelle
à cette longueur :
σd = γ×d
Il est possible d’utiliser des modèles beaucoup plus fins de l’odométrie reposant sur le processus
physique utilisé pour la mesure du déplacement. Il est par exemple possible de faire une
hypothèse de bruit gaussien sur le capteur réalisant la mesure de rotation de chaque roue puis,
par calcul, d’en déduire l’erreur sur l’estimation du déplacement du robot. Cependant, une telle
précision n’est souvent pas nécessaire dans de nombreux algorithmes.
Comme nous le verrons au chapitre sur la localisation, ces modèles probabilistes peuvent être
utilisés pour générer des positions possibles du robot selon la distribution de probabilité déduite
de la mesure de l’odométrie.
Les systèmes radar doppler et optiques
Au lieu de mesurer le déplacement par des mesures sur les roues, il est possible d’utiliser
un radar pointé vers le sol qui permet de mesurer la vitesse du véhicule par effet Doppler. Il
existe aussi des systèmes optiques, basés sur le même principe que les souris d’ordinateur,
qui mesurent le déplacement du véhicule en analysant le mouvement relatif du sol (figure 4.7).
Ces systèmes présentent l’avantage d’être plus précis que la mesure passant par les roues,
notamment car ils sont indépendants des dérapages possible de ces roues. Il sont cependant en
général relativement chers et encombrants et sont assez rares sur les petites plates-formes.
Robotique Mobile - david.filliat@ensta-paristech.fr 40CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
FIGURE 4.7 – Exemple d’odomètre optique Correvit L-CE de CORRSYS- DARTON Sensorsysteme
GmbH.
Les systèmes inertiels
La mesure de déplacement potentiellement la plus fiable provient de la mesure des accélé-
rations de la plate-forme par des capteurs inertiels. Cette mesure est potentiellement fiable car
elle ne dépend pas de la nature locale de l’environnement, cependant les capteurs inertiels sont
tous entachés de bruit de mesure qui produit une dérive de l’estimation de la position au cours du
temps.
La qualité des mesures inertielles dépend très fortement du type de capteurs utilisées. Historiquement,
les premiers capteurs ont été réalisés à base de systèmes mécaniques et peuvent
fournir des mesures extrêmement précise, au prix d’un coût et d’une masse très élevés. Ces dernières
années ont vu apparaître de nouvelles technologies de capteurs, notamment basés sur
les techniques de micro-électronique, qui ont permis la réalisation de capteurs inertiels “bas coût”
et l’apparition de ces capteurs dans des produits grand public. La précision de ces capteurs est
toutefois de quelques ordres de grandeur plus faible, ce qui rend leur utilisation isolée quasiment
impossible. Ces capteurs fournissent toutefois un très bon complément à l’odométrie, notamment
pour l’estimation de la direction.
L’accélération en translation de la plate-forme est mesurée par des accéléromètres. On dispose
en général deux accéléromètres pour prendre des mesures dans deux directions perpendiculaires
du plan de déplacement du robot. Un troisième peut être disposé verticalement afin de
mesurer l’accélération en trois dimensions.
L’accélération angulaire est mesurée par des gyromètres. On dispose en général un gyromètre
selon l’axe vertical, qui permet ainsi de mesurer l’angle de lacet du robot. Deux autres
gyromètres peuvent être positionnés selon deux axes du plan de déplacement afin d’estimer la
direction en trois dimensions.
Il est également possible de mesurer la rotation du robot par rapport à un axe de référence en
utilisant un gyroscope. Cette mesure s’effectue en général par rapport à un axe de référence mis
en rotation et isolé mécaniquement le plus possible du robot, ce qui rend sa direction indépendante
de la direction du robot. Cette mesure peut être moins bruitée que l’intégration du signal
d’accélération mais dépend très fortement de la qualité de la réalisation mécanique du système,
41 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
qui dépend très directement du prix du gyroscope.
Enfin, les magnétomètres permettent, par la mesure du champ magnétique terrestre, de dé-
duire la direction du nord. Ces capteurs peuvent utiliser différentes technologies et ont l’avantage
de fournir une direction de référence stable au cours du temps (au contraire des gyroscopes qui
dérivent). Ces capteurs sont toutefois très délicats à utiliser en intérieur car ils sont très sensibles
aux masses métalliques présentes dans les bâtiments et leur structure. En pratique, on les utilise
donc principalement en extérieur en apportant le plus grand soin à leur positionnement sur le
robot pour éviter les influences des composants du robot, notamment les moteurs électriques.
FIGURE 4.8 – Centrale intertielle Crista de Cloud Cap Technology.
L’ensemble de ces éléments (accéléromètres, gyromètres, magnétomètres) peut être réuni
pour former une centrale inertielle qui permet d’estimer complètement les six degrés de libertés
de la position dans un espace à 3 dimensions. Les centrales inertielles “bas coût” sont cependant
aujourd’hui de qualité insuffisante pour une utilisation isolée, tandis que les centrales de qualité
correcte restent très chères. Ce domaine est cependant en évolution rapide avec l’arrivée de
nouvelles technologies et l’apparition de centrales “bas coût” de bonne qualité devrait se faire
dans les prochaines années.
L’utilisation des données fournies par ce type de senseurs passe aussi en général par un modèle
probabiliste, qui peut être du type de celui présenté pour l’odométrie. Cependant, la gestion
du bruit interne de ces capteurs demande en général des modèles beaucoup plus précis, qui
estiment explicitement la dérive des capteurs afin de la corriger. Ceci permet de bénéficier de
modèles plus précis en sortie également.
4.2.2 Les télémètres
Il existe différents types de télémètres, qui permettent de mesurer la distance aux éléments
de l’environnement, utilisant divers principes physiques.
Télémètres à ultrason
Les télémètres à ultrason sont historiquement les premiers à avoir été utilisés. Il utilisent la
mesure du temps de vol d’une onde sonore réfléchie par les obstacles pour estimer la distance
Robotique Mobile - david.filliat@ensta-paristech.fr 42CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
Zone aveugle
Obstacle Télémètre
Distance mesurée
cone de diffusion de l’onde sonore
FIGURE 4.9 – Principe du télémètre à ultrasons et exemple de télémètre réel.
(Figure 4.9). Ces télémètres sont très simple et peu cher, et sont donc très répandus, mais possèdent
de nombreux inconvénients.
En premier lieu, deux télémètres voisins ne peuvent être utilisés simultanément, car il est
impossible de savoir par lequel des deux télémètres une onde réfléchie a été émise (phénomène
de “crosstalk”). Un robot possédant plusieurs télémètres doit donc les activer l’un après l’autre,
ce qui entraîne un taux de rafraîchissement global des mesures relativement faible.
Ces télémètres possèdent une “zone aveugle”, de quelques centimètres, en dessous de laquelle
ils ne peuvent détecter les obstacles. Cette zone est due a une temporisation entre l’émission
de l’onde sonore et le début de la détection de l’onde réfléchie qui est nécessaire pour ne
pas perturber cette mesure.
De plus, l’onde réfléchie est très sensible aux conditions environnementales locales. Ainsi, si
l’angle entre l’obstacle et la direction de l’onde sonore est trop faible, il n’y aura pas de retour de
l’onde sonore et l’obstacle ne sera pas perçu. L’onde de retour dépend également de la texture
de l’obstacle. Un mur couvert de moquette pourra par exemple ne pas être détecté.
Les télémètres ultrason détectent les obstacles se situant dans un cône relativement large
(d’angle au sommet d’environ 30 degrés). Cette caractéristique peut être à la fois un avantage
et un inconvénient. C’est un inconvénient car un obstacle détecté n’est pas localisé en angle
à l’intérieur du cône de détection, et on obtient donc une mesure de la position relativement
imprécise. C’est par contre un avantage car des éléments relativement fins (les pieds de table ou
de chaise par exemple) sont détectés dans ce cône, alors qu’il pourraient ne pas être détectés
par des télémètres ayant un angle d’ouverture très fin.
Télémètres à infrarouge
Les télémètres infrarouges possèdent l’avantage d’avoir un cône de détection beaucoup plus
restreint. Il utilisent une lumière infrarouge au lieu d’une onde sonore pour la détection et peuvent
être basés sur différentes techniques qui permettent de recueillir plus ou moins d’information.
Il est possible de mesurer simplement le retour ou le non-retour d’une impulsion codée, ce
43 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
FIGURE 4.10 – Principe du télémètre infrarouge à triangulation et exemple de télémètre réel
(Sharp).
qui permet de détecter la présence ou l’absence d’un obstacle dans une certaine portion de
l’espace. Il est également possible de réaliser une triangulation sur le faisceau de retour de l’onde
lumineuse, ce qui permet d’avoir une mesure de la distance de l’obstacle (figure 4.10).
Les inconvénients de ces télémètres sont liés à leur portée, en général relativement restreinte,
et à leur sensibilité aux sources de lumières qui contiennent un fort rayonnement infrarouge. Un
projecteur du type de ceux utilisés pour la télévision pointé sur le robot, par exemple, sature en
général complètement le récepteur et empêche toute détection d’obstacle. Ils sont également
très sensibles à la couleur et à la nature de la surface de l’obstacle (par exemple, ils détectent
difficilement les vitres et les obstacles noir mats).
Télémètres laser
Les télémètres les plus utilisés à l’heure actuelle pour des applications de cartographie et de
localisation sont les télémètres laser à balayage. Ils utilisent un faisceau laser mis en rotation afin
de balayer un plan, en général horizontal, et qui permet de mesurer la distance des objets qui
coupent ce plan (Figure 4.11, 4.11). Cette mesure peut être réalisée selon différentes techniques
soit en mesurant le temps de vol d’une impulsion laser, soit par triangulation.
Les télémètres courants ont une bonne résolution angulaire car ils permettent d’obtenir une
mesure de distance tout les demi degrés, sur une zone de 180 ou 360 degrés selon les modèles.
La mesure est de plus relativement précise (avec un bruit de l’ordre de quelques centimètres) à
une distance relativement grande (plusieurs dizaines de mètres). La fréquence d’acquisition est
en général de l’ordre de la dizaine de Hertz, voire proche de la centaine pour certains modèles.
Ces télémètres sont très utilisés en environnement intérieur car il fournissent des données
abondantes et précises sur la position des objets caractéristiques de l’environnement tels que
les murs. Ils possèdent toutefois un certain nombre d’inconvénients. En premier lieu, leur zone
de perception est restreinte à un plan et ne permet donc pas de détecter les obstacles situés
hors de ce plan (un petit objet posé au sol par exemple). Ils ne peuvent pas non plus détecter les
objets ne réfléchissant pas correctement la lumière du laser (en premier lieu les vitres, mais aussi
certains objets très réfléchissants, tels que les objets chromés). Pour limiter ces inconvénients,
il est possible de les utiliser en conjonction avec des capteurs à ultrason qui ont un cône de
Robotique Mobile - david.filliat@ensta-paristech.fr 44CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
Télémètre
Mesure obtenue
FIGURE 4.11 – Illustration du principe de fonctionnement d’un télémètre Laser et un exemple
de Télémètre Laser à balayage, fournissant 720 mesure réparties sur 360 degrés, à 5 Hz
(marque Ibeo).
détection plus large et qui peuvent détecter les vitres.
Enfin, la plupart des algorithmes de cartographie et de localisation existants supposent que
le plan de mesure du télémètre laser reste horizontal et à hauteur constante, ce qui n’est plus
vrai en cas de sol irrégulier ou, dans la majorité des cas, en extérieur. Il est alors nécessaire de
passer à une localisation et une cartographie en 3D.
FIGURE 4.12 – Un exemple de télémètre laser à balayage selon 2 axes (à gauche) et de
camera permettant d’obtenir une image de profondeur de 320x240 pixels (à droite).
Il existe des télémètres laser balayant l’espace selon deux axes 4.12. Ils permettent ainsi
d’obtenir une image de distance selon un angle solide de l’ordre de quelques dizaines de degrés
dans les deux dimensions. Ces télémètres restent toutefois cher et fragile du fait de la mécanique
nécessaire au balayage. De plus, la fréquence d’acquisition est relativement faible (de l’ordre de
45 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
quelques Hertz), ce qui pose problème lorsque le robot est en mouvement. Ces télémètres sont
donc plutôt destinés à des applications relativement statiques comme la création de modèles 3D.
Il existe également des systèmes sans balayage permettant d’obtenir une image de profondeur
de la même manière qu’une caméra couleur standard. Plusieurs technologies sont utilisées,
soit par mesure de temps de vol d’une impulsion laser ou infrarouge, soit par triangulation à partir
de projecteurs infrarouges. Ces capteurs sont récents, mais sont très intéressants pour la robotique
mobile car ils permettent d’obtenir une information dense à une fréquence assez élevée
(image de profondeur de 320x240 à 30 Hz pour la caméra Kinect par exemple, figure 4.12). Ces
informations peuvent être couplées à une image couleur, on parle alors de caméra RGBD (D pour
Depth). Il reste cependant certaines limitations, notamment pour l’emploi en extérieur où l’information
de profondeur peut être perdue à cause de la lumière du soleil qui masque la lumière
infrarouge.
FIGURE 4.13 – Un exemple de télémètre laser à balayage a 64 nappes conçu par Velodyne.
Enfin, principalement pour les véhicules intelligents, il existe un compromis qui consiste à
utiliser plusieurs nappes laser avec différentes inclinaisons afin d’avoir des modèles assez précis
de l’environnement sur 360 degrés (figure 4.13). Ces capteurs restent assez lourds et chers, mais
permettent de réaliser quasiment l’ensemble des tâches nécessaires pour un véhicule comme la
localisation, la cartographie et la détection de piétons ou de véhicules.
Modèle probabiliste
Les modèles probabilistes associés aux télémètres permettent de donner la probabilité de la
mesure en fonction de la distance réelle de l’obstacle. Pour les capteurs réalisant plusieurs mesures,
les probabilités sont en général estimées pour chacune des mesures individuelles prises
depuis une position, puis agglomérées par produit en supposant les mesures indépendantes :
P(Scan|Obstacles) =
M
∏
i=1
P(mesurei
|Obstacles)
Robotique Mobile - david.filliat@ensta-paristech.fr 46CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
FIGURE 4.14 – Modèle probabiliste de télémètre par composition d’évènements élémentaires
et exemple d’application sur des données réelles de sonars ou de télémètres laser (tiré de
[135]).
Pour estimer la probabilité d’une mesure individuelle, il est possible d’utiliser une simple loi
gaussienne autour de la distance réelle comme modèle probabiliste, mais les modèles sont en
général un peu plus évolués et utilisent une combinaison de lois qui modélisent plusieurs phénomènes
qui peuvent être responsables de la mesure (Figure 4.14) :
– la mesure effective de l’obstacle visé, modélisé par une gaussienne en général
– la perception d’un obstacle imprévu, par exemple une personne ou un objet dynamique non
présent dans la représentation du monde, modélisé par une loi décroissante telle qu’une
exponentielle
– la non détection d’un écho, qui donne une mesure à la distance maximale du télémètre,
modélisé par un pic.
Les paramètres de cette combinaison de lois peuvent être réglés manuellement ou estimés
à partir d’un ensemble de mesures, par exemple en utilisant un algorithme de maximisation de
l’espérance. Ces modèles peuvent être adaptés à tout les types de télémètres (figure 4.14).
47 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
4.2.3 Les caméras
L’utilisation d’une caméra pour percevoir l’environnement est une méthode attractive car elle
semble proche des méthodes utilisées par les humains et fournit un grande quantité d’information
sur l’environnement. Le traitement des données volumineuses et complexes fournies par
ces capteurs est cependant souvent difficile, mais c’est une voie de recherche très explorée et
prometteuse pour la robotique.
Caméras simples
Une caméra standard peut être utilisée de différentes manières pour la navigation d’un robot
mobile. Elle peut être utilisée pour détecter des amers visuels (des points particuliers qui servent
de repère, tels que des portes ou des affiches) à partir desquels il sera possible de calculer la
position du robot. Si ces amers sont simplement ponctuels, ou de petite taille, il sera en général
simplement possible d’estimer leur direction. Dans le cas ou les amers sont des objets connus
en 2 ou 3 dimensions, il sera en général possible d’estimer complètement la position du robot par
rapport à la leur. Elle peut également être utilisée pour détecter des “guides” de navigation pour
le robot, tels que des routes ou des couloirs.
FIGURE 4.15 – Illustration du principe de base du flot optique.
Il est également possible d’utiliser globalement une image pour caractériser une position ou
un point de vue dans l’environnement. Il faudra alors comparer cette image aux nouvelles images
acquises par le robot pour savoir si le robot est revenu à cette position. Cette comparaison peut
faire appel à différentes techniques, notamment celles utilisées dans le domaine de l’indexation
d’image.
Lorsque le robot est en mouvement, il est également possible de tirer parti du flot optique
(le mouvement apparent des objets dans l’image, voir figure 4.15), afin d’avoir une estimation de
la distance des objets. En effet, les objets les plus proches ont un déplacement apparent plus
important que les objets lointains. Cette méthode permet notamment de réaliser un évitement
d’obstacles ou de réaliser une reconstruction tridimensionnelle de l’environnement (par des techniques
connues sous le nom de structure from motion, voir section 4.2.3).
Robotique Mobile - david.filliat@ensta-paristech.fr 48CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
Caméras stéréoscopiques
FIGURE 4.16 – Exemple de données fournies par des caméras stéréoscopiques.
Lorsque l’on dispose de deux caméras observant la même partie de l’environnement à partir
de deux points de vue différents, il est possible d’estimer la distance des objets et d’avoir ainsi
une image de profondeur (Figure 4.16), qui peut être utilisée pour l’évitement d’obstacles ou la
cartographie. Cette méthode suppose toutefois un minimum d’éléments saillants dans l’environnement
(ou un minimum de texture) et peut être limitée, par exemple dans un environnement dont
les murs sont peint de couleurs uniformes. La qualité de la reconstruction risque également de
dépendre fortement des conditions de luminosité. La résolution et l’écartement des deux caméras
impose également les profondeurs minimum et maximum qui peuvent être perçues, ce qui peut
être limitatif pour la vitesse de déplacement du robot.
Des techniques similaires peuvent également être utilisées pour estimer la profondeur à partir
d’une caméra en mouvement (méthodes de structure from motion, voir par exemple [67]), la
difficulté étant alors d’estimer à la fois la profondeur et les positions relatives de la caméra lors de
la prise des deux images.
Caméras panoramiques
Les caméras panoramiques (catadioptriques) sont constituées d’une caméra standard pointant
vers un miroir de révolution (par exemple un simple cône, ou un profil plus complexe qui
peut s’adapter à la résolution exacte que l’on veut obtenir sur le panorama) (figure 4.17). L’image
recueillie permet d’avoir une vision de l’environnement sur 360 degrés autour de la camera. Le
secteur angulaire vertical observé dépend de la forme du miroir et peut être adapté aux besoins
de chaque application (Figure 4.17).
Ce type de caméra est très pratique pour la navigation car une image prise par une camera
panoramique orientée verticalement permet de caractériser une position, indépendamment de la
direction du robot. En effet, pour une position donnée et pour deux orientations différentes, la
même image sera formée par la caméra, à une rotation autour du centre près, tandis que pour
une caméra standard, orientée horizontalement, la scène serait différente.
Ces caméras sont donc très pratiques lorsque l’on caractérise une position de manière globale,
mais peuvent aussi être utilisées pour détecter des amers ou pour estimer le flux optique.
Dans ce cas, toutefois, comme la géométrie de l’image formée est relativement complexe et
49 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
FIGURE 4.17 – Principe des caméras panoramiques catadioptriques, exemple d’image obtenue
et illustration du flux optique.
comme la résolution obtenue varie énormément selon la direction observée, les algorithmes
doivent être adaptés, ce qui pose un certain nombre de problèmes.
Concernant le flux optique, cependant, les caméras panoramiques possèdent l’avantage de
contenir toujours le point d’expansion et le point de contraction dans l’image, ce qui rend l’estimation
du mouvement beaucoup plus aisée (figure 4.17).
4.2.4 Autres capteurs
Les capteurs tactiles
Les robots peuvent être équipés de capteurs tactiles, qui sont le plus souvent utilisés pour
des arrêts d’urgence lorsqu’il rencontre un obstacle qui n’avait pas été détecté par le reste du
système de perception.
Ces capteurs peuvent être de simples contacteurs répartis sur le pourtour du robot. Il ne
détectent alors le contact qu’au dernier moment. Il est également possible d’utiliser des petites
tiges arquées autour du robot pour servir d’intermédiaire à ces contacteurs, ce qui permet une
Robotique Mobile - david.filliat@ensta-paristech.fr 50CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
détection un peu plus précoce et donne ainsi plus de marge pour arrêter le robot.
Les balises
Dans certaines applications, il est également possible d’utiliser des balises dont on connaît la
position, et qui pourront être facilement détectées par le robot, afin de faciliter sa localisation.
Des techniques très diverses peuvent être utilisées pour ces balises. On peut par exemple
utiliser un signal radio, émis de manière omnidirectionnel par la balise. Le robot sera alors équipé
d’une antenne directionnelle qui lui permettra de détecter la direction des différentes balises, afin
de déduire sa position par triangulation.
On peut également utiliser des codes couleurs ou des codes barres qui pourront être détectés
par une caméra.
Le GPS
Les besoins de localisation étant omniprésents dans de très nombreux secteurs de la vie
actuelle, l’idée d’avoir un système de localisation le plus universel possible à donné lieu à l’apparition
du Global Positionning System (GPS). C’est un système de balises dont on a placé les
balises sur des satellites en orbite terrestre et qui est par conséquent accessible de quasiment
partout à la surface du globe. Ce système permet donc d’avoir une mesure de sa position dans
un repère global couvrant la terre avec une précision variant de quelques dizaines de mètres à
quelques centimètres suivant les équipements.
Ce système est cependant loin de résoudre tous les problèmes de localisation des robots mobiles.
Il fonctionne en effet difficilement dans des environnements urbains, et n’est pas utilisable
à l’intérieur des bâtiments. Sa précision est de plus souvent trop faible pour qu’un robot terrestre
puissent utiliser ces informations seules. En pratique, il est souvent couplé à un système inertiel
qui permet de palier aux pertes du signal GPS et il ne remplace de toute façon pas les capteurs
du robot qui lui permettent de percevoir son environnement immédiat, qui constitue la source
d’information principale pour la navigation à court terme (par exemple l’évitement d’obstacles, par
opposition à la navigation à long terme qui consiste à rejoindre un but distant).
4.3 Pour aller plus loin
Sensors for Mobile Robots : Theory and Application, Everett
Une version en ligne est disponible :
http://www-personal.engin.umich.edu/~johannb/my_book.htm
51 Robotique Mobile - david.filliat@ensta-paristech.fr4.3. POUR ALLER PLUS LOIN
Robotique Mobile - david.filliat@ensta-paristech.fr 52Deuxième partie
Navigation réactive
53 Robotique Mobile - david.filliat@ensta-paristech.frDans cette partie, nous présentons différentes stratégies de navigation réactive. Ces stratégies
peuvent être utilisées dans des architectures de contrôle purement réactives, mais aussi
comme modules de bas-niveau dans une architecture hybride. Par définition, les stratégies de
navigation réactives n’utilisent que les valeurs courantes des capteurs (ou des valeurs sur une
petite fenêtre temporelle), et non des données provenant d’un modèle interne, pour décider de
l’action à effectuer.
55 Robotique Mobile - david.filliat@ensta-paristech.frRobotique Mobile - david.filliat@ensta-paristech.fr 56CHAPITRE 5. NAVIGATION VERS UN BUT
Chapitre 5
Navigation vers un but
Nous commençons ici par des méthodes de navigation correspondant aux deux premières
catégories de stratégies de navigation définies dans le chapitre 2, c’est à dire l’approche d’un but
défini par un objet ou une configuration d’amers.
5.1 Véhicules de Braitenberg
Dans son livre “Vehicles : Experiments in Synthetic Psychology”, Valentino Braitenberg [19]
décrit une série d’expériences dans lesquelles des robots extrêmement simples peuvent montrer
des comportements complexes, qu’un observateur humain associe en général à différents types
d’émotions telles que la peur ou l’agression. Nous nous intéressons ici simplement à la structure
de ces robots, qui permet de réaliser simplement des comportements pour rejoindre un but visible.
Cette structure est devenue l’archétype des méthodes réactives simples.
But
M1
M2
C1
C2
FIGURE 5.1 – Dans les véhicules de Braitenberg, la vitesse de chacun des deux moteurs du
robot dépend de la valeurs de deux capteurs qui détectent la lumière émise par le but.
Dans le livre de Braitenberg, le but est matérialisé par une lumière, visible depuis tout l’environnement.
Le robot est simplement une plate-forme différentielle, constituée de deux roues dont
57 Robotique Mobile - david.filliat@ensta-paristech.fr5.2. MODÈLE DE CARTWRIGHT ET COLLET
on commande les vitesses de rotation et munie de deux capteurs de lumière situés de part et
d’autre de l’avant du robot (Figure 5.1). L’architecture interne du robot est simplement constituée
de liens entre ces capteurs et les moteurs qui permettent de calculer la vitesse des moteurs en
fonction des valeurs des capteurs.
En faisant varier les paramètres des connexions, il est alors possible de définir différents
comportements du robot. Si la vitesse de chaque moteur est reliée à la valeur du capteur du coté
opposé avec un coefficient positif, le robot se dirigera naturellement vers le but. Si, par contre,
la vitesse de chaque moteur est reliée à la valeur du capteur du même coté avec un coefficient
positif, le robot fuira le but.
Ces véhicules réalisent simplement une remontée ou une descente de gradient sur l’intensité
de la lumière. Ils correspondent à un simple contrôleur proportionnel en automatique et sont donc
relativement sujets à des oscillations dans le comportement du robot. Ils supposent de plus que
le but est visible depuis tout l’environnement, ce qui est rarement le cas en pratique. Ce modèle
est donc intéressant car c’est la méthode la plus simple possible pour réaliser un déplacement
vers un but, mais est difficile à utiliser dans une application réelle.
5.2 Modèle de Cartwright et Collet
Le “snapshot model” a été conçu pour expliquer comment des abeilles peuvent utiliser des
informations visuelles pour rejoindre un point donné de l’environnement. Il permet à un robot de
rejoindre un but dont la position est définie par la configuration d’amers de l’environnement autour
de ce but.
Amer
Amer
Amer
FIGURE 5.2 – Exemple de snapshot caractérisant la position du but. Le robot mémorise un
panorama contenant la position et la taille apparente des amers.
Le système perceptif du robot doit lui permettre de détecter la direction et la taille des amers
autour de lui. Le robot commence par mémoriser le but en enregistrant la configuration des amers
vus depuis la position de ce but (un snapshot, Figure 5.2).
Robotique Mobile - david.filliat@ensta-paristech.fr 58CHAPITRE 5. NAVIGATION VERS UN BUT
Perception courantes
Perceptions depuis le but
FIGURE 5.3 – Pour atteindre le but, chaque amer perçu est associé à un des amers mémorisés.
Pour chaque appariement, on déduit un vecteur tangentiel dont la norme augmente
avec l’écart entre amer perçus et mémorisés. La somme de ces vecteurs donne la direction à
prendre pour atteindre le but.
Lorsque, par la suite, le robot veut rejoindre ce but, il prend une nouvelle image des amers
et, par comparaison entre la configuration courante et la configuration mémorisée au but, il peut
déduire de manière très simple la direction dans laquelle se déplacer pour atteindre le but. Cette
comparaison est basée sur un appariement entre les amers perçus et les amers mémorisés,
chaque appariement permettant de calculer un vecteur dont la somme, pour tous les appariements
d’amers, donne la direction à prendre pour rejoindre le but (Figure 5.3). Le robot effectue
alors un déplacement de longueur fixée dans cette direction puis recommence le processus tant
que le but n’est pas atteint.
Là encore, le système est très simple et réalise une descente de gradient sur la configuration
des amers afin d’atteindre le but. Il ne fonctionne cependant pas sur l’ensemble de l’environnement
et la qualité du comportement obtenu dépend beaucoup de la configuration des amers
qui sont utilisés, un ensemble d’amers lointains et bien répartis tout autour du robot donnant les
meilleurs résultats. La qualité de l’appariement entre les amers est également primordiale, en
effet, si un amer perçu est associé au mauvais amer mémorisé, le vecteur de déplacement déduit
sera faux. Le modèle original supposait des amers noirs sur fond blanc, sans identité particulière,
pour lequel l’appariement est relativement hasardeux. Il n’est donc pas applicable en pratique.
D’autres travaux ont utilisé des amers colorés et différentes contraintes sur l’appariement qui
permettent une meilleur robustesse et sont donc applicables à des robots réels [58].
La plupart des implantations de ce modèles supposent de plus que la direction du robot est
connue afin de faciliter l’appariement. Avoir une estimation correcte de cette direction peut se
révéler difficile en pratique.
59 Robotique Mobile - david.filliat@ensta-paristech.fr5.3. ASSERVISSEMENT VISUEL
5.3 Asservissement visuel
L’asservissement visuel [30] (document disponible en ligne 1
) est une technique d’asservissement
de la position d’un robot qui est basée directement sur l’information extraite d’une image,
sans modélisation intermédiaire de l’environnement. Développées à l’origine pour la commande
des robots manipulateurs, ces techniques permettent également la commande de robots mobiles.
FIGURE 5.4 – Illustration du principe de l’asservissement visuel : l’erreur entre une image
courante et une image but (écart entre les croix rouges et vertes ici) est utilisée pour calculer
une commande qui permettra au robot d’atteindre la position correspondant à l’image but.
Dans ces approches, le but à atteindre est spécifié par l’image que le robot devra percevoir
depuis cette position. Différentes mesures sont réalisées sur cette image (par exemple la détection
de points d’intérêts) et la commande du robot est conçue pour amener à 0 l’écart entre la
mesure réalisée sur l’image courante et la mesure réalisée sur l’image cible (figure 5.4). Les choix
de mesures dans l’image et de la loi de commande peuvent être très variés, et vont conditionner
les trajectoires obtenues par le robot, leur stabilité, leur robustesse aux mauvaises perceptions
ou aux mauvaises modélisations du système, etc...
Nous ne détaillerons pas ici ces approches, mais il existe plusieurs applications intéressantes
en robotique mobile [15, 123, 34]. Notons que ces modèles sont souvent étendus pour fournir une
navigation à long terme en enchainant des tâches de contrôle local sur des séquences d’images.
Par exemple, [15] présente un système permettant de guider un robot en environnement intérieur
à partir du suivi de motifs détectés sur le plafond par une caméra pointée à la verticale. En
enchaînant des asservissements sur une séquence d’images, ce système permet au robot de
refaire une trajectoire qui a été montrée au préalable par un opérateur. De même, [123] et [34]
réalisent le guidage d’un véhicule en extérieur à l’aide d’une caméra pointée vers l’avant.
1. http://www.irisa.fr/lagadic/pdf/2002_hermes_chaumette.pdf
Robotique Mobile - david.filliat@ensta-paristech.fr 60CHAPITRE 6. ÉVITEMENT D’OBSTACLES
Chapitre 6
Évitement d’obstacles
L’évitement d’obstacles est un comportement de base présent dans quasiment tous les robots
mobiles. Il est indispensable pour permettre au robot de fonctionner dans un environnement
dynamique et pour gérer les écarts entre le modèle interne et le monde réel.
Les méthodes que nous présentons sont efficaces à condition d’avoir une perception correcte
de l’environnement. Elles seront par exemple très efficaces avec un télémètre laser, mais donneront
des résultats plus bruités avec des sonars. Pour limiter ce problème, il est possible d’appliquer
ces méthodes sur une représentation locale (c’est-à-dire de l’environnement proche du robot et
centrée sur le robot) de l’environnement qui sera construite en fonction des données de quelques
instants précédents. Cette représentation intermédiaire permettra de filtrer une grande partie du
bruit des données individuelles (en particulier pour les sonars).
Il faut également faire attention à ce que les capteurs détectent tous les obstacles. Par
exemple un laser à balayage ne verra pas les objets au dessous ou au dessus de son plan
de balayage, et pourra voir du mal à percevoir les vitres. Pour cette raison, on utilise souvent une
nappe laser couplée à des sonars, ou un système de plusieurs nappes laser inclinées.
6.1 Méthode des champs de potentiel
Dans la méthode d’évitement d’obstacles par champs de potentiels, on assimile le robot à une
particule se déplaçant suivant les lignes de courant d’un potentiel créé en fonction de l’environnement
perçu par le robot. Ce potentiel traduit différents objectifs tels que l’évitement d’obstacles ou
une direction de déplacement préférée. Il est calculé par sommation de différentes primitives de
potentiels traduisant chacun de ces objectifs (Figure 6.1). Ces différents potentiels peuvent avoir
une étendue spatiale limitée ou non (par exemple, n’avoir une influence que près des obstacles)
et leur intensité peut dépendre ou non de la distance.
Le gradient de ce potentiel donne, en chaque point de l’espace, la direction de déplacement
du robot (Figure 6.1). Comme c’est ce gradient, et non la valeur absolue du potentiel, qui nous
intéresse, il est possible de calculer directement en chaque point sa valeur par une simple somme
vectorielle en ajoutant les valeurs issues des différents potentiels primitifs. Ainsi, pour un robot
se déplaçant en ligne droite en espace ouvert et évitant les obstacles qu’il peut rencontrer, nous
61 Robotique Mobile - david.filliat@ensta-paristech.fr6.1. MÉTHODE DES CHAMPS DE POTENTIEL
Déplacement selon
une direction
Eloignement d’une
paroi
Répulsion
d’un point
Attraction
vers un point
Potentiel
Ligne de
courant
FIGURE 6.1 – Illustration de potentiels primitifs dont la combinaison guide les déplacements
du robot. Le robot se déplacera selon les lignes de courant.
FIGURE 6.2 – Illustration de la combinaison de différents potentiels primitifs.
obtenons par exemple les lignes de courant illustrées figure 6.2.
De plus, dans la pratique, pour l’évitement d’obstacles, le potentiel est en général calculé dans
l’espace relatif au robot et ne sert qu’a décider de la vitesse et de la direction courante. Il n’est
donc nécessaire de l’estimer que pour la position courante du robot, en sommant simplement la
contribution des différents éléments perçus (Figure 6.3).
Le principal inconvénient de cette méthode d’évitement d’obstacles est l’existence, pour certaines
configurations d’obstacles (relativement courantes) de minimum locaux du potentiel qui ne
permettent pas de décider de la direction à prendre (Figure 6.3). Ce problème peut être traité de
différentes façons. Il est par exemple possible de déclencher un comportement particulier lorsque
l’on rencontre un tel minimum (déplacement aléatoire, suivi de murs ....). Il est aussi possible
d’imposer que le potentiel calculé soit une fonction harmonique, ce qui garanti qu’il n’ait pas de
minima, mais rend son estimation beaucoup plus lourde en calcul.
Le principe de ces champs de potentiels est formalisé sous le nom de schéma moteur par R.
Arkin [4]. Pour lui, un schéma moteur est une action définie sous forme de potentiel en fonction
des perceptions du robot. Ces schémas sont utilisés comme contrôleur de bas niveau dans une
architecture hybride.
Robotique Mobile - david.filliat@ensta-paristech.fr 62CHAPITRE 6. ÉVITEMENT D’OBSTACLES
FIGURE 6.3 – Gauche : Illustration de la combinaison de différents potentiels primitifs dans
l’espace relatif au robot. Droite : Exemple de minimum local dans un champ de potentiel.
6.2 Méthode Vector Field Histogram
La méthode "Vector Field Histogram" [17] a été conçue spécifiquement pour utiliser une grille
d’occupation locale construite a partir de capteurs à ultrasons. Cette grille est construite de manière
très rapide par la méthode "Histogrammic in motion mapping" (voir section 11.2.3) qui produit
une grille dont chaque cellule contient un nombre d’autant plus élevé qu’elle a souvent été
perçue comme contenant un obstacle (Figure 6.4 haut).
Un histogramme représentant l’occupation de l’environnement autour du robot est ensuite
construit à partir de cette grille d’occupation locale. Pour cela, l’environnement est discrétisé en
secteurs angulaires pour lesquels la somme des valeurs des cellules est calculée (figure 6.4 bas).
Un seuil permettant de tolérer un certain bruit est ensuite utilisé pour déterminer les directions
possibles pour le robot : toutes les directions dont la valeur est inférieure au seuil sont considé-
rées. Le choix de la direction est finalement réalisé parmi les directions possibles en fonction de
contraintes externes (par exemple la direction la plus proche de la direction du but).
Cette méthode est extrêmement rapide (elle fonctionne sur un PC 386 à 20MHz !) et a permis
historiquement un déplacement réactif à des vitesses assez élevées (environ 1 m/s). Diverses
améliorations pour permettre le réglage de la vitesse du robot en fonction de la densité des
obstacles ou de la largeur de l’espace angulaire libre sont possibles.
6.3 Méthode de la fenêtre dynamique
La méthode de la fenêtre dynamique [47] permet de sélectionner une trajectoire locale du robot
qui va éviter les obstacles et dont les variations dans le temps vont respecter des contraintes
telles que les capacités de freinage maximales du robot. Pour appliquer l’algorithme, les trajectoires
locales sont paramétrées et peuvent prendre des formes différentes en fonction des
contraintes d’holonomie du robot par exemple. Une méthode simple applicable à de nombreuses
plateformes est d’utiliser les vitesses de translation et de rotation du robot.
La méthode de la fenêtre dynamique permet donc, à partir de la perception locale de l’environnement,
de sélectionner un couple (v,ω) de vitesses de translation et de rotation du robot
qui répond à différentes contraintes, dont celle d’éviter les obstacles. Un tel couple de vitesses,
63 Robotique Mobile - david.filliat@ensta-paristech.fr6.3. MÉTHODE DE LA FENÊTRE DYNAMIQUE
Obstacle
+1
+1
2
6 5
5 3 8
5 3
6 8
1
1
2
6 5
5 3 8
5 3
6 8
1
1
0
1
...
11
...
0 11
Seuil
Secteur
Somme des cellules
FIGURE 6.4 – Partie supérieure : Grille d’occupation locale construite par la méthode "Histogrammic
in motion mapping". La grille est construite dans le référentiel du robot : un compteur
est incrémenté pour chaque cellule appartenant au secteur angulaire dans lequel un obstacle
a été détecté et les valeurs sont déplacées d’une cellule à l’autre en fonction des déplacements
du robot. Partie Inférieure : Utilisation de l’histogramme des obstacles pour déterminer
la direction de déplacement du robot.
Robotique Mobile - david.filliat@ensta-paristech.fr 64CHAPITRE 6. ÉVITEMENT D’OBSTACLES
lorsqu’il est appliqué au robot, produit une trajectoire circulaire, pour laquelle la satisfaction des
différentes contraintes peut être évaluée. A l’issu de l’évaluation de toutes les contraintes pour
tous les couples de vitesses possibles, la méthode de la fenêtre dynamique permet de sélectionner
le couple le plus pertinent (qui répond le mieux aux contraintes).
v2,ω2 = succès
v1,ω1 = échec
Environnement réel Perceptions du robot
v2,ω2
v1,ω1
FIGURE 6.5 – Contrainte d’évitement d’obstacles pour la méthode de la fenêtre dynamique.
La première contrainte est la contrainte d’évitement d’obstacles. C’est une contrainte dure au
sens ou elle est binaire (succès / échec) et doit obligatoirement être satisfaite. Elle est évaluée
pour chacune des trajectoires possibles à partir de la perception locale de l’environnement à
un instant donné et de la position estimée du robot à un pas de temps fixé dans le futur pour
la trajectoire courante. Si le robot n’a pas rencontré d’obstacles à cet horizon, la contrainte est
respectée ; dans le cas contraire, elle ne l’est pas (Figure 6.5).
ω
v
ωmin ωmax
vmax
Vitesses conduisant
à percuter un obstacle
Vitesses conduisant
à un déplacement sur
Vitesses courantes Vitesses accessibles au
prochain pas de temps
FIGURE 6.6 – Fenêtre de sélection des vitesses tenant compte de la dynamique du robot.
Le respect ou le non respect de cette contrainte est reporté dans un graphe des vitesses qui
indique, pour chaque couple de vitesses possible (donc chaque trajectoire), si le robot va ou ne va
pas rencontrer un obstacle (Figure 6.6). Dans ce graphe, il est alors possible de tracer la fenêtre
des vitesses accessibles au prochain pas de temps à partir des vitesses courantes du robot et
65 Robotique Mobile - david.filliat@ensta-paristech.fr6.3. MÉTHODE DE LA FENÊTRE DYNAMIQUE
des valeurs d’accélération et décélération maximales. C’est cette fenêtre qui donne son nom à la
méthode car elle permet de prendre en compte la dynamique du robot (à travers la capacité de
freinage et d’accélération). Il reste alors à choisir, au sein de cette fenêtre, un couple de vitesses
qui ne conduise pas à percuter un obstacle pour garantir un déplacement sûr du robot.
ω
v
ωmin ωmax
vmax
Direction préférentielle
FIGURE 6.7 – Contrainte “souple” exprimant une préférence sur la direction à prendre.
Pour faire le choix parmi toutes les vitesses possibles au sein de cette fenêtre, il est possible
d’utiliser des contraintes “souples” supplémentaires pour exprimer des préférences au sein de cet
espace des vitesses accessibles. Ces contraintes s’expriment par une fonction de coût G(v,ω)
qui est en général la somme de plusieurs termes. Ces termes peuvent exprimer une préférence
a priori sur les vitesses, une préférence pour les trajectoires s’éloignant le plus des obstacles, ou
une préférence de direction si l’on dispose par exemple d’une estimation de la direction d’un but
à long terme (Figure 6.7). Le couple de vitesses minimisant ce coût au sein de la fenêtre est alors
sélectionné. Il garantit un déplacement sans rencontrer d’obstacles et le meilleur respect possible
des contraintes souples dans ce cadre.
Dans la pratique, les valeurs des différentes contraintes sont évaluées en différents points du
graphe des vitesses, le nombre de points dépendant notamment de la puissance de calcul disponible
et de la complexité de l’évaluation de chaque contrainte. L’utilisation de la fenêtre dynamique
est très intéressante pour un robot se déplaçant rapidement, ou pour un robot ayant des capacités
d’accélération et de ralentissement limitées. Elle permet alors de produire un déplacement du
robot sûr et régulier. Pour des robots qui ont une forte capacité d’accélération et de décélération
(par exemple un robot léger avec de bons moteurs électriques), on peut considérer que toutes les
vitesses sont accessibles presque instantanément. Il peut alors être suffisant de ne considérer
que la cinématique, et non la dynamique, ce qui se traduit par la prise en compte d’un seul point
du graphe, et non d’une fenêtre. La recherche du couple de vitesse est ainsi simplifiée.
Robotique Mobile - david.filliat@ensta-paristech.fr 66CHAPITRE 7. APPRENTISSAGE PAR RENFORCEMENT
Chapitre 7
Apprentissage par renforcement
Les méthodes que nous avons vu jusqu’à présent sont des associations entre perceptions
et actions conçues par des ingénieurs. Or il existe des techniques d’apprentissage (notamment
l’apprentissage par renforcement) permettant de créer des associations de ce type à partir d’informations
d’assez haut niveau sur la tâche à réaliser.
L’apprentissage par renforcement est une méthode qui permet de trouver, par un processus
d’essais et d’erreurs, l’action optimale à effectuer pour chacune des situations que le robot va
percevoir afin de maximiser une récompense. C’est une méthode d’apprentissage orientée objectif
qui va conduire à un contrôleur optimal pour la tâche spécifiée par les récompenses. Cette
méthode est de plus non supervisée car la récompense ne donne pas l’action optimale à réaliser
mais simplement une évaluation de la qualité de l’action choisie. Elle permet enfin de résoudre les
problèmes de récompense retardée pour lesquels il faut apprendre a sacrifier une récompense à
court terme pour obtenir une plus forte récompense à long terme et donc apprendre de bonnes
séquences d’actions qui permettront de maximiser la récompense à long terme.
Du fait de toutes ces caractéristiques, l’apprentissage par renforcement est une méthode
particulièrement adaptée à la robotique.
7.1 Formalisation
Le problème de l’apprentissage par renforcement pour un agent se formalise à partir des
éléments suivants :
– Un ensemble d’états S correspondant à la perception que l’agent a de l’environnement,
– Un ensemble d’actions possibles A ,
– Une fonction de récompense R : {S,A} → R.
L’agent va interagir avec son environnement par pas de temps discrets, en percevant l’état
de l’environnement st
, en choisissant une action at en fonction de cet état et en recevant la
récompense rt+1 associée (Figure 7.1).
L’évolution du robot dans son environnement est régi par un Processus de Décision Markovien
(MDP en anglais) qui décrit l’évolution de l’état et de la récompense en fonction des actions du
robot. Ce MDP (7.2), qui spécifie complètement la tâche du robot par le jeu des récompenses, se
67 Robotique Mobile - david.filliat@ensta-paristech.fr7.1. FORMALISATION
Environnement
état S
récompense R
action A
FIGURE 7.1 – Formalisation du problème d’apprentissage par renforcement.
décrit simplement à l’aide de deux fonctions :
– Une fonction de transition P
a
ss0 = P(st+1 = s
0
|st = s,at = a) qui donne la probabilité de
passer dans l’état s
0
lorsque l’agent effectue l’action a dans l’état s,
– Une fonction de récompense R
a
ss0 = E(rt+1|st = s,at = a,st+1 = s
0
) qui donne la récompense
moyenne lorsque l’agent passe de l’état s à s
0 en faisant l’action a.
FIGURE 7.2 – Exemple de MDP très simple. Chaque case correspond à un état et, pour
chaque état, 4 actions sont possibles qui conduisent aux cases voisines. La récompense est
nulle partout, sauf pour les actions qui mènent à la case "S", pour lesquelles la récompense
est 1.
Le comportement de l’agent est défini par une politique π : {S,A} → [0,1], qui guide l’agent
de manière probabiliste en spécifiant, pour chaque état s la probabilité de réaliser l’action a (et
donc ∑a π(s,a) = 1). Le but de l’apprentissage par renforcement va être de trouver la politique
optimale π
∗ maximisant la récompense à long terme 1
.
1. L’apprentissage par renforcement n’utilise que l’état courant pour prendre une décision, il suppose donc que
toute l’information nécessaire est contenue dans cet état. Le problème est donc considéré comme étant Markovien,
ce qui est rarement le cas en pratique en robotique. Si le problème est non markovien, c’est a dire si pour un
même état deux actions différentes sont optimales en fonction d’une variable inconnue au robot, l’apprentissage par
Robotique Mobile - david.filliat@ensta-paristech.fr 68CHAPITRE 7. APPRENTISSAGE PAR RENFORCEMENT
La récompense à long terme, que nous appellerons revenu Rt
, peut être définie de différentes
manières en fonction de la tâche considérée. Si la tâche consiste à répéter des épisodes qui
durent un nombre de pas de temps fixe, le revenu pourra être la somme des récompenses instantanées
pendant un épisode. Si au contraire la tâche se déroule de manière continue, le revenu
pourra se définir comme la somme des récompenses futures pondérées par une exponentielle
décroissante :
Rt =
∞
∑
k=0
γ
k
rt+k+1
où γ ∈ [0,1] est un facteur indiquant l’importance que l’on accorde aux récompenses futures.
Les algorithmes d’apprentissage par renforcement que nous verrons plus loin utilisent quasiment
tous une fonction de valeur V
π
(Figure 7.3) qui permet, pour une politique π donnée,
d’estimer le revenu moyen (les récompenses futures) pour un état donné si l’on suit la politique
considérée :
V
π
(s) = Eπ(Rt
|st = s)
FIGURE 7.3 – La fonction de valeur optimale dans notre exemple : pour chaque état, le niveau
de gris indique la récompense à long terme qui sera obtenue en prenant le chemin le plus
court vers le but.
Ces fonctions de valeurs peuvent aussi se définir non pas pour un état mais pour un état et
une action réalisée dans cet état :
Q
π
(s,a) = Eπ(Rt
|st = s,at = a)
La fonction de valeur pour un état s étant la moyenne des Q
π
(s,a), pondérées par la probabilité
de chaque action :
V
π
(s) = ∑a
π(s,a)Q
π
(s,a)
renforcement fournira la politique optimale, mais seulement dans l’ensemble des politiques “myopes”, n’ayant pas
toutes les informations pour une décision optimale.
69 Robotique Mobile - david.filliat@ensta-paristech.fr7.1. FORMALISATION
Une propriété essentielle de ces fonctions de valeur va permettre de créer les différents algorithmes
d’apprentissage, il s’agit de la relation de récurrence connue sous le nom d’équation de
Bellman :
V
π
(s) = ∑a
π(s,a)∑
s
0
P
a
ss0
R
a
ss0 +γV
π
(s
0
)
Cette équation traduit une cohérence de la fonction de valeur en reliant la valeur d’un état à
la valeur de tous les état qui peuvent lui succéder . Elle se déduit simplement de la définition de
v
π de la manière suivante :
V
π
(s) = Eπ(Rt
|st = s)
= Eπ(
∞
∑
k=0
γ
k
rt+k+1|st = s)
= Eπ(rt+1 +γ
∞
∑
k=0
γ
k
rt+k+2|st = s)
= ∑a
π(s,a)∑
s
0
P
a
ss0
"
R
a
ss0 +γEπ
∞
∑
k=0
γ
k
rt+k+2|st+1 = s
0
!#
= ∑a
π(s,a)∑
s
0
P
a
ss0
R
a
ss0 +γV
π
(s
0
)
La fonction de valeur permet de caractériser la qualité d’une politique, elle donne, pour chaque
état, le revenu futur si l’on suit cette politique. Elle permet également de comparer les politiques
en définissant un ordre partiel :
π ≥ π
0 ⇔ ∀s,V
π
(s) ≥ V
π
0
(s)
Cet ordre permet de définir la fonction de valeur de la politique optimale (Figure 7.3) que
l’apprentissage par renforcement va chercher à estimer :
V
?
(s) = max
π
V
π
(s)
fonction qui peut aussi s’exprimer pour un couple état-action :
Q
?
(s,a) = max
π
Q
π
(s,a)
avec la relation suivante :
Q
?
(s,a) = E(rt+1 +γV
?
(st+1)|st = a,at = a)
Il est également possible d’écrire une relation de récurrence pour la fonction de valeur optimale
qui sera légèrement différente de l’équation de Bellman. On parle alors d’équation d’optimalité
de Bellman, qui peut s’écrire :
V
∗
(s) = max
a
E (rt+1 +γV
∗
(st+1)|st = s,at = a)
= max
a ∑
s
0
P
a
ss0
R
a
ss0 +γV
∗
(s
0
)
Robotique Mobile - david.filliat@ensta-paristech.fr 70
Intelligence Artificielle et Syst`emes Multi-Agents
Badr Benmammar
To cite this version:
Badr Benmammar. Intelligence Artificielle et Syst`emes Multi-Agents. Ecole d’ing´enieur. 2009. ´
HAL Id: cel-00660507
https://cel.archives-ouvertes.fr/cel-00660507
Submitted on 16 Jan 2012
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Intelligence Artificielle
et
Systèmes Multi-Agents
Badr Benmammar
bbm@badr-benmammar.comPlan
La première partie : L’intelligence artificielle (IA)
Définition de l’intelligence artificielle (IA)
Domaines d’application de l’IA
La reconnaissance de formes
Le traitement automatique des langues
Les systèmes experts
L’apprentissage automatique
L’intelligence artificielle distribuée (IAD)Plan
La deuxième partie : La technologie Agent
Définition d’un agent
Les agents intelligents et les agents mobiles
Les caractéristiques multidimensionnelles d’un agent
Architecture concrète pour un agent
Les agents logiques
Les agents réactifs
Les agents BDI
Les agents multi-niveaux
Modèle type d’un agentLa première partie :
L’intelligence artificielle (IA)Définition de l’intelligence artificielle (IA)
L’IA Désigne la simulation des mécanismes de la pensée par un
ordinateur
La faculté de reproduire un raisonnement par des moyens informatiques
Un ensemble de réalisations et de recherches qui essaient d'imiter
artificiellement les performances humaines
L'émergence des systèmes ''adaptatifs''Domaines d’application de l’IA
Systèmes
experts
Apprentissage
automatique
Traitement
automatique des
langues
Reconnaissance des
formes, des visages et la
vision en généralLa reconnaissance de formesLa reconnaissance de formes RdF
La reconnaissance de formes (ou parfois reconnaissance de
motifs) est un ensemble de techniques et méthodes visant à
identifier des motifs à partir de données brutes afin de prendre
une décision dépendant de la catégorie attribuée à ce motif.Définition
L’homme est le plus parfait des systèmes de RdF.
Reconstitution sur «machine» des fonctions typiquement
humaines:
Perception ;
Analyse et représentation ;
Interprétation.Analogies Système de RdF
Composantes d’un système de RdF :
Mécanique (satellite, bras d’un robot, …)
Saisie (caméra, scanner, micro, …)
Electronique (carte mémoire, CPU, …)
ALGORITHMIQUEProcessus de RdF
Les informations issues du monde réel sont généralement :
trop volumineuses
peu pertinentes
Le processus de RdF est un processus de réduction progressive et sélective
de l’informationProcessus de RdF
Etapes de traitement d’un processus de RdF:
Prétraitements
binarisation, segmentation, élimination du bruit, normalisation, …
Extraction des informations pertinentes
parole: fréquence, …
image: contours, …
Représentation de ces informations en vue de leur classification
vecteur, graphe,
Classification de la forme
apprentissage/décision,
+_ Quantité d’informationsLe traitement automatique des
languesLe traitement automatique des langues
Le Traitement automatique des langues est une discipline à
la frontière de :
La linguistique ;
L’informatique ;
L’intelligence artificielle.
Concerne l’application de programmes et techniques
informatiques à tous les aspects du langage humain. Applications
La traduction automatique ;
La correction orthographique ;
La recherche d'information et la fouille de textes ;
Le résumé automatique de texte ;
La génération automatique de textes ; Fouille de Texte (Text Mining)Qu’est-ce que le Text Mining ?
Le Text Mining est l’ensemble des :
Technologies et méthodes
… destinées au traitement automatique
… de données textuelles
… disponibles sous forme informatique,
… en assez grande quantité
… en vue d’en dégager et structurer le contenu, les thèmes dans une
perspective d’analyse rapide de découverte d’informations cachées ou de
prise automatique de décisionDéfinition
Text Mining
Procédé consistant à synthétiser (classer, structurer, résumer, …) les
textes en analysant les relations et les règles entre unités textuelles
(mots, groupes, phrases, documents) Processus de Text Mining: Vue simplifiée
Produit des vecteurs de fréquence
des mots importantsAnalyse et Préparation
Corriger l'orthographe
Eliminer les mots vides
Découper les textes en unités
Associer des termes à une catégorie
grammaticale ou sémantique
Réduire le nombre de termes à traiterCalculs de fréquence des termesRéduction des dimensions
Réduire les dimensions de la table de fréquences
En déterminant les termes les plus significatifs
En groupant les termes par affinité (profile)Domaines d’application
Exploration du contenu des documents
Questions ouvertes dans une enquête
Commentaires et plaintes des clients
Analyse des réclamations de garantie
Affectation de documents à des thèmes prédéfinis
Traitement des e-mails (redirection, filtrage)
Recherche d’information
Interrogation de textes par concepts, mots-clés, sujets, phrases visant à
obtenir des résultats triés par ordre de pertinence, à la GoogleEtapes de la fouille de textes
Sélection de textes
Extraction des termes
Analyse grammaticale
Filtrage des termes extraits
Transformation
Réduction des dimensions
Classification
Visualisation des résultats
Interprétation des résultatsLes systèmes expertsLes systèmes experts
Un système expert est un logiciel capable de répondre à
des questions, en effectuant un raisonnement à partir de
faits et de règles connus. Il peut servir notamment
comme outil d’aide à la décision. Les systèmes experts
Un système expert se compose de 3 parties :
Une base de faits ;
Une base de règles ;
Un moteur d’inférence.Faits et règles
Faits
Ensemble de vérités connues
Règles
Partie condition : prémisses
Partie action : conclusion, calcul, affichage ...
Éventuellement : coefficient de confiance
SI condition ALORS action [coefficient]Les systèmes experts
Pour l’essentiel, ils utilisent la règle d'inférence suivante :
Si P est vrai
(fait ou prémisse) et si on sait que P implique Q
(règle) alors, Q est vrai
(nouveau fait ou conclusion). Le moteur d’inférence
Le moteur d’inférence est capable d’utiliser faits et règles pour produire de
nouveaux faits, jusqu’à parvenir à la réponse à la question experte posée.
La plupart des systèmes experts existants reposent sur des mécanismes de
logique formelle et utilisent le raisonnement déductif. Pourquoi un SE ?
Problèmes mal formalisés ou dont la formulation évolue
Médecine : nouveaux examens, nouvelles connaissances, nouvelles
thérapies
Pas d’algorithme connu (ou algorithme trop complexe)
Reconnaissance de l’écriture
Jeu d’échecs
Affectation des ressources, ordonnancementLes systèmes expertsArchitecture
Base
de faits
Moteur d’inférence
Filtrage
Sélection
Assertion Exécution
Base de
règlesMode de raisonnements
Il existe de nombreux types de moteurs, capables de traiter différentes
formes de règles logiques pour déduire de nouveaux faits à partir de la base
de connaissance.
On distingue souvent trois catégories, basées sur la manière dont les
problèmes sont résolus :
Les moteurs - dit à
« chaînage avant
» - qui partent des faits et règles
de la base de connaissance, et tentent de s’approcher des faits
recherchés par le problème.
Les moteurs - dits à
« chaînage arrière
» - qui partent des faits
recherchés par le problème, et tentent par l’intermédiaire des règles, de
« remonter » à des faits connus,
Les moteurs - dits à
« chaînage mixte
» - qui utilisent une combinaison
de ces deux approches chaînage avant et chaînage arrière. Chaînage avant
Raisonnement guidé par les données :
Détecter les règles dont les prémisses sont vérifiées (filtrage)
Sélectionner la règle à appliquer
Appliquer la règle
Recommencer jusqu'à ce qu'il n'y ait plus de règle applicableChaînage arrière
But initial placé au sommet d’une pile
Détection des règles qui concluent à ce but
Résolution de conflits
Application de la règles, i.e, les éléments des prémisses deviennent de
nouveau sous- buts à atteindre.
Arrêt : pile vide ou aucune règle applicableExercice
Exercice 1
Soit la base de règles suivantes :
R1 : (┐A B) P
R2 : (P et Q) F
R3 : (C A) Q
R4 : F (D K)
R5 : K (M et L)
La base initiale de faits est : (A, D).
Prouvez le fait M par chaînage avant.
Projet IP-SIG : Signalisation g´en´erique du monde IP
Badr Benmammar
To cite this version:
Badr Benmammar. Projet IP-SIG : Signalisation g´en´erique du monde IP. 3`eme cycle. 2005.
HAL Id: cel-00682308
https://cel.archives-ouvertes.fr/cel-00682308
Submitted on 26 Mar 2012
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Projet IP-SIG
Signalisation générique du monde IP
21 Juillet 2005
Badr BENMAMMAR
Université Bordeaux 12
PLAN
• Présentation du projet
– Objectif du projet et motivations
– Organisation du projet
• Partenaires et durée
• Les sous-projets • Échéances et livrables
– Rappels sur la signalisation IPSIG
• Présentation des travaux
– Sous-projet 3
• Réalisation du protocole GiSP
• Tests du protocole GiSP
• Démonstration – Sous-projet 4
• Définition d’un SLS dynamique
• Réalisation de l’environnement dynamique
• Démonstration
– Etude des travaux en cours à l’IETF
• Démonstration 3
Motivations et Objectif
• Motivations
– Plusieurs protocoles de signalisation existants
• RSVP, RSVP-TE, CR-LDP, Radius, Diameter
– Support des besoins de QoS, sécurité et mobilité
• Objectif
– Définition d’une signalisation Universelle
• Unifier le processus de signalisation
• Définition de SLS et de SLS dynamique 4
Organisation du projet
• Projet Exploratoire – 24 mois + 6 mois
• Partenaires :
• ALCATEL, ENST, ISEP, LIP6, LIPN, UTT et THALES
• Quatre sous-projets
– SP1 : SLS et protocoles de signalisation
• Livrable 1.1 : Définition d'un SLS
• Livrable 1.2 : Comparaison des protocoles de signalisation
– SP2 : Les briques de base et l'architecture globale
• Livrable 2.1 : Architecture du système de signalisation
• Livrable 2.2 : Spécification des briques de base
– SP3 : Le protocole GiSP (Generic Signaling Protocol)
• Livrable 3.1 : Réalisation du démonstrateur
• Livrable 3.2 : Tests du démonstrateur
– SP4 : Dynamique de l’environnement
• Livrable 4.1 : Définition d’un SLS dynamique
• Livrable 4.2 : Maquette de l'environnement dynamique5
Livrables et échéances
Livrable 3.1
Réalisation
T0+20
Septembre 04
Livrable 4.2
Maquette
Livrable 3.2
Tests
T0+24
Janvier 05
Livrable 4.1
Déf. d’un SLS
dynamique
Livrable 2.2
Spec des briques
de base
T0+18
Juillet 04
Livrable 2.1
Arch. du système
de signalisation
Livrable 1.2
Étude des
protocoles
T0+12
Livrable 1.1
déf. D’un SLS
T0+9
SP4
Dynamique de
l’environnement
SP3
Le protocole
GSP
SP2
Architecture
globale
SP1
Définition d’un
SLS et
protocoles de
signalisation6
Livrables et échéances - Nouvelle planification
Livrable 3.1.1 :
Réalisation
Livrable 3.1.3 : QoS NSLP
(NSIS WG)
T0+26
Mars 05
Livrable 4.2 :
Maquette
Livrable 3.1.2 : Emulation
GIMPS (NSIS WG)
Livrable 3.2 :Tests
T0+30
Juillet 05
Livrable 4.1
Déf. d’un SLS
dynamique
Livrable 2.2
Spec des
briques de
base
T0+18
Juillet 04
Livrable 2.1
Arch. du
système de
signalisation
Livrable 1.2
Étude des
protocoles
T0+12
Livrable 1.1
déf. D’un SLS
T0+9
SP4
Dynamique de
l’environnement
SP3
Le protocole GSP
SP2
Architecture
globale
SP1
Définition
d’un SLS et
protocoles de
signalisation7
Rappels - Architecture protocolaire
• Architecture protocolaire de NSIS
NSIS Signaling
Layer Protocol
“NSLP”
NSIS Transport
Layer Protocol
“NTLP”
NSLP pour QoS
NSLP pour
middlebox
NSLP pour …
IP layer
NSIS Transport
Layer Protocol
“NTLP”
Signalisation IPSIG
(GiSP : Generic Service Signaling Protocol)8
Rappels - Besoins du protocole GiSP
• Fonctionnalités de signalisation
• Deux modes de fonctionnement
– Path coupled
– Path decoupled
• Gestion des états
– Installer/modifier/supprimer un état
• Sensibilité au changement de routage
• Sensibilité à la mobilité
• Fonctionnalités de transport
• Transport fiable et non fiable
• Transport sécurisé
• Contrôle de congestion
• Fragmentation
• Bundling9
Rappels – Le protocole GiSP (Rappels)
• Définition d’un format de message
– ::=
• Définition de l’en-tête
– SM Flag : Mode de fonctionnement
– M_Type : Type de message
– New
• Permet d’installer une nouvelle session (rapidement sans vérifier si la session est déjà établie)
– Mod
• Établit une session dans le sens inverse du flux de données (de New)
• Modifier une session établie (sens forward et Backward) • Établit une session dans un nouveau chemin suite à un changement de route
– Info
• Échange de l’information entre éléments de signalisation
– Notification des erreurs
• Supporter le management d’état
– Rafraîchissement des états
– Suppression des états
• Définition d’un ensemble d’objets
– Transportant les informations nécessaires pour réaliser les fonctionnalités
du protocole GiSP10
Rappels
– Le protocole GiSP (Rappels)
• Caractéristiques
– Etablissement rapide d’un état dans un nœud en ½ RTT:
• Un message New (ou Mod) contient toute l’information pour établir un état
– Réduction du trafic de détection du changement de routage
• Au lieu d’envoyer un message complet, GISP envoie seulement l’identification de
session
– Mobilité: changement de la CoA (Care of Address)
• Utiliser l’identification de session et non l’identification de flux pour identifier une session de bout en bout
• Mécanismes développés
– Proposition d’un mécanisme de rafraîchissement performant
• Réduction du trafic de rafraîchissement
• Optimisation la gestion des timers
– Mise en place d’un transport fiable et non fiable
• Les messages sont explicitement acquittés ou non selon le besoin
– Mise en place d’un contrôle de congestion
• Dans le cas où GISP ne connaît pas le nœud suivant (mode non-connecté) GISP limite le trafic de signalisation traversant une interface
• Dans le cas où GISP connaît le nœud suivant (mode connecté) GISP applique un mécanisme de contrôle de congestion qui s’inspire des mécanismes de TCP, SCTP et DDCP (contrôle de congestion par fenêtre en supportant le mode fiable et non fiable).Le projet IPSIG
Dynamique de l’environnement12
Dynamique de l’environnement
Deux Aspects :
I. Négociation dynamique de SLA/SLS
II. Impact de la mobilité du terminal sur la
QoS13
Introduction
I. Négociation dynamique de SLA/SLS
– Identification des besoins de l’utilisateur
– Agents pour la négociation de SLA/SLS
– Protocole de négociation de paramètres de SLS14
Protocole SLN NSLP
• Protocole de négociation de paramètres de
SLS
– Environnement NSIS
NSIS Signaling
Layer Protocol
“NSLP”
NSIS Transport Layer
Protocol “NTLP”
NSLP pour QoS
NSLP pour
middlebox
NSIS Transport Layer
Protocol “NTLP”
NSLP pour la négociation15
Protocole SLN NSLP
- Négociation intra ou inter domaines.
• Entités de négociation16
Protocole SLN NSLP
• Architecture globale17
Protocole SLN NSLP - Temps de service : période de garantie du niveau de service - Scope : point d’entrée et de sortie d’un domaine - Identification du trafic : @IP, Port source/destination... - Garantie de performance : délai, gigue, taux de perte, bande
passante - Description et conformité du trafic : taille des paquets, débit
crête, paramètres du Token Bucket. - Traitement d’excès : lissage, marquage, élimination - Mode de négociation : SLS prédéfini ou non - Intervalle de renégociation : dépend du type de négociation. - Priorité et fiabilité : MDT, MTTR
• Paramètres du SLS de QoS18
Protocole Messages SLN NSLP
- Negotiate : Emis du SNI vers le SNR, permet de spécifier les
attributs sur lesquels on veut négocier ainsi que leurs valeurs.
- Revision : Emis par le SNR vers le SNI pour proposer une
alternative aux attributs et valeurs reçus dans le message
Negotiate.
- Response : Emis par le SNR ou SNI suite a un message
précèdent contenant un objet Response Request.
- Modify : Emis par le SNI vers le SNR en spécifiant le SLS ID
sur le quel la modification va porter
- Notify : Emis par le SNR (ou SNF) pour demander au SNI de
dégrader ou rétablir un niveau de service qui a été déjà
négocié.
- Release : Emis par le SNI vers le SNR pour résilier un SLS déjà
négocié.
• Messages SLN NSLP19
Protocole SLN NSLP
00 /
30 ms
D=100ms ; G=20ms ;
P=0,1% ; D= 704
Kbit/s
9h17h
LundiJeudi
@IP SNI
@IP SNR
@IP Host A
@IP Host B
Mode /interv
alle
Temps de Garantie de Performance
Service
Identification du Scope
trafic
00 /
30 ms
D<150ms ; G<30ms ;
P<1% ; D= 696 Kbit/s
9h17h
LundiJeudi
@IP SNI
@IP SNR
@IP Host A
@IP Host B
Mode /
intervalle
Temps de Garantie de Performance
Service
Identification du Scope
trafic
SLS Demandé pour la visioconférence
SLS accepté par le SNR
• Exemples de négociation20
Cas d’une Visioconférence
SNI / SIP
PROXY SNF SNR Host
Negotiate
B
Communication
Host
A
Negotiate
Revision
Revision
Response {Ack}
Response {Ack}
Reserve {Qspec}
Reserve {Qspec}
Reserve {Qspec}
Reserve {Qspec}
Invite
Invite
180 Ringing
180 Ringing
ACK
200 OK
200 OK
SLN NSLP QoS NSLP SIP21
Cas de la téléphonie IP
SNI / SIP
PROXY SNF Host B SNR
Negotiate
Communication
Host A
Negotiate
Response {Ack}
Response {Ack}
Reserve {Qspec}
Reserve {Qspec}
Reserve {Qspec}
Reserve {Qspec}
Invite
Invite
180 Ringing
180 Ringing
ACK
200 OK
200 OK
SLN NSLP QoS NSLP SIP
183 Progress
Bye
OK
Release {SLS ID}
Release {SLS ID} 22
Conclusion
• SLN NSLP est une proposition de protocole de
signalisation dans la bande pour la négociation de
niveau de service.
• SLN NSLP est indépendant du modèle de QoS grâce a
l’architecture de signalisation générique définie dans
NSIS.
• SLN NSLP est indépendant des objets de négociation
donc il est réutilisable.23
Dynamique de l’environnement
2. Impact de la mobilité du terminal sur QoS
– Réservation de ressources à l’avance
• Messages de QoS NSLP
• Profil de mobilité fourni par l’interface utilisateur
MSpec =
» : the MSpec identifier
» : ,
» : ,, etc.
– Procédure de handover
• Protocole CTP (Context Transfer Protocol)24
∑ Pij = 1
=
n
j 1
∑
=
n
i 1
Pi (tr) * Pij Pj (tr+1) =
Cj
Cn
Cn-1
Ci
C2
C1
tr+1
tr
P1j
P2j
Pij
Pnj
Pn-1j
P1
Pn
Pn-1
Pi
P2
Détermination du MSpec
• Basée sur les chaînes de Markov en temps continu
• Le système est dans l’état i si le terminal mobile est dans la
cellule Ci
Pij : probabilité de transition
de la cellule Ci vers la cellule Cj
Pi (tr) : probabilité de localisation
du terminal mobile dans la
cellule Ci à l’instant tr 25
∑
=
m
d 1
Pij Pij = (d) /m
Profil de mobilité du terminal - La matrice de transition contenant les Pij
M = [Pij] [N*N]
Pij(d): probabilité de transition de la cellule i vers la cellule j
durant d associations
m: nombre d’associations
-Le vecteur contenant les Pi (to)
V = [Pi(to)] [N]
Pi (to): probabilité de localisation du terminal mobile dans la
cellule Ci à l’instant to26
{ 0: no handover 1: vertical handover UMTS HD [Cell ID, App ID] =
Profil de mobilité du terminal - Les futures localisations du terminal mobile
MSpec (tr) = {Cj / Pj (tr+1) ≥ x }
x : un seuil fixe ou variable utilisé pour sélectionner
les cellules
- La décision de handover27
• Procédure de réservation de ressources à
l’avance
- Extension de QoS NSLP
• Différents scénarios (environnement HMIPv6) - Réservation à l’initiative du demandeur ou du
récepteur - Entre un terminal fixe et un terminal mobile - Entre terminaux mobiles
• Procédure de handover - Horizontal - Vertical
Protocole MQoS NSLP28
• Impact du seuil x
Simulations29
• Protocole de réservation de ressources à l’avance - Dans un environnement NSIS - Extension de QoS NSLP
• Réservations basées sur l’objet MSpec - Déterminé par le terminal mobile - Utilisation des chaînes de Markov en continu
• Méthode hybride
• Validation
Conclusion30
Maquette
Utilisateur Fournisseur
Jade
Négociation
Gold | prix
Silver | prix
Bronze | prix
Best effort | prix
• (Re)négociation à l’initiative de l’utilisateur31
Maquette
• (Re)négociation à l’initiative du fournisseur
Réseau
DiffServ
EndUserGenerator
New EndUser
Utilisateur Fournisseur
data Traffic Sender
Jade
J-Sim
Négociation
Nouveau
Prix fonction
de la charge
du réseau
Decision
finale
Gold | prix
Silver | prix
Bronze | prix
Best effort | prix32
Architecture de l’interface proposée
Fournisseur Réseau
Terminal Utilisateur
Interface graphique/Messages/Capteurs
Couche Gestion de profil
Apprentissage (SOM)
Couche de Contrôle
Couche de négociation Couche protocolaire
Profils Propriétés
Paramètres de
performance SLS33
Identité des personnes : rôles, préférences, permissions, etc.
Localisation des personnes : domicile, gare, travail, etc.
Période : l’heure, le jour, le mois, etc.
Contraintes : des utilisateurs, des applications, etc.
Active device : Laptop, PC, cellular
Connectivité : LAN, WLAN, cellular network
Informations contextuelles
Les r´eseaux sans fil et la nouvelle signalisation IP
Badr Benmammar
To cite this version:
Badr Benmammar. Les r´eseaux sans fil et la nouvelle signalisation IP. 3`eme cycle. 2004.
HAL Id: cel-00660842
https://cel.archives-ouvertes.fr/cel-00660842
Submitted on 17 Jan 2012
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Les réseaux sans fil et la nouvelle
signalisation IP
Badr BENMAMMAR
Université Bordeaux 1
1
École DNAC d'hiver
Sur le Nil, Égypte,
du 11 au 18 décembre 20041
PLAN
• Introduction
• QoS NSLP
• Réservation de ressources à l’avance
• Format du MSpec
• Réservation de ressources à l’avance avec QoS NSLP
• Le transfert de contexte
• La procédure de handover
• Méthodes de prédiction
• Conclusion
22
IP-SIG (1/2)
Les objectifs de ce projet sont :
La définition d'une architecture de signalisation universelle (les besoins de QoS, de
mobilité et de sécurité)
La définition d'un SLS standard
Une étude prospective sur la dynamisation du SLS
1. ENST
2. ALCATEL
3. UTT
4. Université de Paris 13
5. ISEP
6. LIP6
7. THALES
Partenaires du projet
33
Quatre sous-projets:
Sous-projet 1 – SLA-SLS et protocoles de signalisation (Responsable ALCATEL)
Sous-projet 2 – Les briques de base et l'architecture globale (Responsable LIP6)
Sous-projet 3 – Le protocole GSP (Generic Signaling Protocol) (Responsable ISEP)
Sous-projet 4 – Dynamique de l’environnement (Responsable LIPN)
IP-SIG (2/2)
Négociation dynamique
de SLA/SLS
Impact de la mobilité
sur la signalisation
44
NSIS (Next Steps In Signaling)
• Standardiser une architecture comprenant deux couches:
- NTLP : NSIS Transport Layer Protocol
- NSLP : NSIS signaling Layer Protocol
IP
IP Layer Security
UDP TCP SCTP DCCP
Transport Layer Security
GIMPS: Messaging Layer
GIMPS Encapsulation GIMPS State Maintenance
NTLP
Signaling Application 1
Signaling Application 2
Signaling Application 3
NSLP
55
QoS NSLP
• QoS NSLP permet de générer une signalisation pour
fournir un certain niveau de QoS indépendamment du modèle
de QoS (Diffserv, Intserv,...)
• QoS NSLP + NTLP RSVP
6
• La création d’un état
• Le rafraîchissement d’un état
• La modification d’un état
• L’élimination d’un état6
Les messages de QoS NSLP
• Reserve : le seul à manipuler l’état de la réservation (rafraîchir,
créer, supprimer).
• Query : demande des informations aux nœuds QNE (les ressources
disponibles)
• Response : permet d’envoyer un résultat associé à un message
antérieur
• Notify : permet d’informer un nœud sans demande préalable
77
• Sender Initiated Reservation
Réservation de ressources avec QoS NSLP (1/2)
RESPONSE
NI NF NF NR
RESERVE
RESERVE
RESERVE
RESPONSE
RESPONSE
88
Réservation de ressources avec QoS NSLP (2/2)
• Receiver Initiated Reservation
NR NF NF NI
RESERVE
RESERVE
RESERVE
RESPONSE
RESPONSE
RESPONSE
QUERY
QUERY
QUERY
99
• NSIS (Next Steps In Signaling): fournir une signalisation
universelle
• Objectif: étudier l’impact de la mobilité sur la signalisation
NSIS
• Proposition : utiliser les messages de QoS NSLP afin de faire
des réservations à l’avance
• La QoS
• La sécurité
• La mobilité
10
Proposition10
Réservation de ressources à l’avance
• Réservation à l'avance dans tous les endroits que l'utilisateur
peut visiter
• Un profil de mobilité est déterminée soit par le réseau, soit par
le terminal mobile
• L’objet MSpec (Mobility Specification) détermine les futures
localisations du MH (Mobile Host)
• L’objet MSpec est inclus dans les messages de QoS NSLP
1111
Travaux réalisés dans les réseaux mobiles (1/2)
• Anup Kumar Talukdar, B. R. Badrinath, Arup Acharya. MRSVP: a
resource reservation protocol for an integrated services network
with mobile hosts, ACM Journal of Wireless Networks, vol. 7, 2001
12
• MSPEC (Mobility Specification): pas de format, les futures localisations
• La réservation active: si les paquets de ce flux passent par ce lien afin d’arriver au récepteur
• La réservation passive: si les ressources sont réservées pour ce flux sur le lien, mais les
paquets actuels pour ce flux ne sont pas transmis sur ce lien12
• Min-Sun Kim, Young-Joo Suh, Young-Jae Kim, Young Choi. A
Resource Reservation Protocol in Wireless Mobile Networks.
ICPP Workshops, Valencia, Spain September 03 - 07, 2001
Travaux réalisés dans les réseaux mobiles (2/2)
• La classe Free : elle représente les ressources utilisées en BE
• La classe Reserved : elle représente les ressources réservées et actuellement
utilisées, pour un flux spécifique
• La classe Prepared : elle représente les ressources réservées pour un flux spécifique
et qui ne sont pas actuellement utilisées
1313
Inconvénients
• Le nombre de flux qui peut être supporté par le routeur est
réduit
• Le MSPEC est très difficile à déterminer à l’avance
Avantages
• Meilleure QoS (délai et pertes de paquets)
• Application en temps réel.
1414
Format du MSpec
MSpec =
• : identificateur unique du MSpec
• : ,
• : ,,, etc.
1515
Procédure de réservation de ressources à l’avance
avec QoS NSLP (fixe,mobile)
-1 : Router Advertissement, un bit Q
0 : Registration Request, bit Q, QSpec et MSpec
1 : NOTIFY: QSpec et MSpec
2 : RESERVE: QSpec
3 : RESERVE
4 : RESPONSE
5 : RESPONSE
Réservation de ressources à l’avance avec
QoS NSLP
CN
HA Internet
HN
MAP
AR AR AR
MH
FN
2
4
5
5
0 -1
3 1 3
NI
NF NF NF
NF
NR
1616
Le Protocole CTP Context Transfer Protocol
(WG Seamoby)
17
• Contexte: l'information nécessaire sur l'état actuel d'un service afin de le
rétablir sur un nouveau sous-réseau
• les services candidats:
• Authentication, Authorization et Accounting (AAA)
• Header Compression
• Quality de Service (QoS)
• Point to point protocol (PPP)
• Politiques17
Le déclenchement de transfert
de contexte (1/3)
• Déclenché à l’initiative du :
– nœud mobile (mobile controlled).
– pAR ou nAR (network controlled).
• Exemple : mobile controlled, initié par le nœud mobile
MN nAR pAR
CT trigger
CTAR
CT Request
CTD
1818
Le déclenchement de transfert
de contexte (2/3)
MN nAR pAR
CT trigger
CTAR
CTD
CTDR
• Exemple : network controlled, initié par le pAR
1919
Le déclenchement de transfert
de contexte (3/3)
MN nAR pAR
CT trigger
CT Request
CTAR
CTD
CTDR
• Exemple : network controlled, initié par le nAR
2020
La procédure de handover
21
La procédure de handover
CN
HA Internet
HN
MAP
AR AR AR
MH
FN
MH
MIPv6
NOTIFY : en incluant le nouveau MSpec
RESERVE
1
2 CTD
CT Request
Analyse le nouveau MSpec21
Exemple
22
AR1
MAP
AR2 AR3 AR4
Cell1 Cell2 Cell3 Cell4
MH
MSpec1 = {Cell1, Cell3}22
Exemple
23
AR1
MAP
AR2 AR3 AR4
Cell1 Cell2 Cell3 Cell4
MSpec1 = {Cell1, Cell3}
MH
MSpec2 = {Cell2, Cell4}23
Exemple
24
AR1
MAP
AR2 AR3 AR4
Cell1 Cell2 Cell3 Cell4
MSpec1 = {Cell1, Cell3}
MH
MSpec2 = {Cell2, Cell4}24
Exemple
25
AR1
MAP
AR2 AR3 AR4
Cell1 Cell2 Cell3 Cell4
MSpec1 = {Cell1, Cell3}
MH
MSpec2 = {Cell2, Cell4}25
26
i = 1
Ci : cellule courante
MSpeci
i = 1
∀ C ∈ MSpec1 : créer une
réservation passive pour la
cellule C
Oui
handover après une période
t1 passée dans la cellule C1
i = i+1
Non
La réservation dans la cellule Ci devient
active
∀C∈{MSpeci-MSpeci-1-Ci-1} : créer une
nouvelle réservation pour la cellule C
∀C∈{ MSpeci-1- MSpeci-Ci}: supprimer
la réservation pour la cellule C
Oui
La réservation devient
passive pour la cellule Ci-1
Supprimer la
réservation pour la
cellule Ci-1
handover après une période
ti passée dans la cellule Ci
Non Ci-1∈ MSpeci
Les actions réalisées par le MAP dans le cas d’une communication
fixe-mobile26
Procédure de réservation de ressources à l’avance avec
QoS NSLP (mobile-mobile)
27
Internet
HA
HN
AR
AR
MAP2
AR
AR AR
MH1
MAP1
0
MH2
2
AR
1
3
4
5
6
7
7
8
8
9
9
Réservation de ressources à l’avance avec
QoS NSLP
0 : Router Advertissement , le bit Q.
1 : Registration Request, QSpec et MSpec2
2 : NOTIFY, QSpec et MSpec2
3 : Router Advertissement, le bit Q
4 : Registration Request, QSpec et MSpec1
5 : NOTIFY, QSpec et MSpec1
6 : RESERVE, QSpec
7 : NOTIFY
8 : RESERVE
9 : RESERVE27
La procédure de handover
28
Internet
HA
HN
AR
MAP2
AR
MH1
MAP1
4
5
5
6
6
AR AR
MH1
MH2
AR
3
CT Request
CTD
2
MH2
1
AR
MIPv6
MIPv6
La procédure de handover
1 : RESERVE
2 : RESPONSE
3 : NOTIFY
4 : RESERVE
5: NOTIFY, l’ancien MSpec1 et le
nouveau MSpec1
6 : RESERVE
Analyse le nouveau
MSpec228
Modélisation par les chaînes de Markov
• Le système est un modèle pouvant évoluer entre n états définis par
l’ensemble: C = (C1, C
2, ........Ci........
Cn)
• Le système est à l’état i = le terminal mobile se trouve dans la cellule Ci
• Pij : la probabilité de transition de la cellule Ci vers la cellule Cj
• Pi (t) : la probabilité pour que le terminal mobile se trouve dans la cellule
Ci à l’instant t
∑
Pij = 1, i = 1 à n et 0 ≤ Pij ≤ 1
=
n
j 1
∑=
n
i 1
Pi (t) * Pij
Pj (t+1) =
Cj
Cn
Cn-1
Ci
C
2
C1
t+1
t
P1j
P2j
Pij
Pnj
Pn-1j
P1
Pn
Pn-1
Pi
P
2
2929
Le profil de mobilité (1/2)
• Construire un modèle comportemental pour l’utilisateur
• il contient les informations suivantes :
- Un identificateur unique de l’utilisateur : user_id
- Les informations personnelles de l’utilisateur
- nom
- prénom
- age
- adresse
- ...
- Les préférences de l’utilisateur
Exemple : quand l’utilisateur se déplace vers la cellule1, qui couvre le Forum,
il commence toujours par le lancement d’un jeu vidéo durant 1h.
3030
Le profil de mobilité (2/2)
- M = [Pij] [N*N] : une matrice de transition qui contient les Pij
- V = [Pi(0)] [N] : un vecteur qui contient les Pi(0). (Pi (0): la probabilité
pour que le terminal mobile se trouve dans la cellule Ci à l’instant 0)
- Le MSpec (Mobility Specification): un ensemble dynamique, il est
modifié après chaque handover
3131
Calculer la matrice M et le vecteur V (1/2)
• Besoin de m connexions afin de déterminer les Pi(0) et les Pij
• l(d) : le nombre de transitions dans le système pour la dème connexion (1≤ d ≤ m)
• tij(d) : le nombre de transition de la cellule i à la cellule j pendant la dème connexion
• li(d) : le nombre de transitions sortantes de la cellule i pendant la dème connexion
32
• M = [Pij] [N*N]
• On le calcule de la manière suivante : l
i(d) =
∑=
n
j 1
tij(d)
∑=
n
i 1
li(d) = l(d)32
Calculer la matrice M et le vecteur V (2/2)
33
• La probabilité de transition de la cellule i à la cellule j pendant la dème connexion
(Pij(d)) est calculée de la manière suivante :
Pij(d) = tij(d)/l
i(d)
• Après m connexions, la probabilité de transition de la cellule i à la cellule j
est calculée de la manière suivante :
∑=
m
d 1
Pij Pij = (d) /m. i,j = 1,n
• Si à l’instant t = 0, l’utilisateur se connecte k fois dans la cellule i durant les m
•connexions alors :
Pi(0) = k/m ou (k*100/m)%
• V = [Pi(0)] [N]33
Prédire le MSpec à l’aide des chaînes de Markov
•Le MSpec est un sous ensemble de C
MSpec = {a1 C1, a2 C2,..........., ai Ci,.........., an Cn} / ai = {0, 1}
∑=
n
i 1
ai Ci / ai MSpec = = {0,1}
• On définit
θ (0 ≤
θ ≤ 1) : un seuil fixe ou variable, pour sélectionner les
cellules de plus grandes probabilités.
Le MSpec est défini comme suit : MSpec = {Cj / Pj (t+1) ≥
θ
}
3434
Non
Fin
Consulter le profil de
mobilité de l’utilisateur
Début
Identifier l’utilisateur
t = 0, MSpec = { }
C = (C1, C2, ........Ci........Cn)
Non Utilisateur Oui
= ancien
Initier la matrice de transition: M = [Pij], {i, j} =1, 2, ..... n
Initier Pi (0) i =1, 2, ….. n
J=1 ; 0 ≤ θ ≤ 1
MSpec = MSpec ∪ Cj
j = j+1
Oui
Non Oui j ≤ N
Pj (t+1) ≥ θ
∑
=
n
i 1
Pj (t+1) = Pi (t) * Pij
Prédiction du MSpec à l’aide des chaînes de Markov 3535
t0 t1 s0 s1 f1 f0
Temps du handover de la
cellule Ci-1 à la cellule Ci Temps du handover de la cellule Ci à la cellule Ci+1
Le temps passé dans la cellule Ci
Temps du lancement de la
méthode de prédiction
Temps de la
détermination du
MSpec
Temps de la détermination du MSpec
Temps de la procédure de réservation
de ressources à l’avance
temps
La cellule Ci-1 La cellule Ci La cellule Ci+1
Le temps d’attente dans la cellule Ci ≥ le temps de la détermination du MSpec +
le temps de la réservation de ressources à l’avance
Simulation
36
Systeme informatique de commande du robot V 80
V. Dupourque
To cite this version:
V. Dupourque. Systeme informatique de commande du robot V 80. RT-0035, 1984, pp.93.
HAL Id: inria-00070123
https://hal.inria.fr/inria-00070123
Submitted on 19 May 2006
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.
Lecture 10: Robust outlier detection with L0-SVDD
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
February 28, 2014Roadmap
1 Robust outlier detection with L0-SVDD
L0 SVDD
4 iterations of Adaptive L0 SVDDRecall SVDD
min
R,c,ξ
R + C
Xn
i=1
ξi
with kxi − ck
2 ≤ R + ξi
, i = 1, . . . , n
and ξi ≥ 0, i = 1, . . . , n
(1)
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 3 / 11SVDD + outlier
C =1/16 C =1/8 C =1/4 C = 1/2 (¾')
Figure: Example of SVDD solutions with different C values, m = 0 (red) and
m = 5 (magenta). The circled data points represent support vectors for both m.
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 4 / 11The L0 norm
kξk0 ≤ t
min
c∈IRp
,R∈IR,ξ∈IRn
R + Ckξk0
with kxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, n
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 5 / 11L0 relaxations
p norm
exponenetial
piecewise linear
log
min
c∈IRp
,R∈IR,ξ∈IRn
R + C
Xn
i=1
log(γ + ξi)
with kxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, n .
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 6 / 11DC programing
log(γ + t) = f (t) − g(t) with f (t) = t and g(t) = t − log(γ + t),
both functions f and g being convex. The DC framework consists in
minimizing iteratively (R plus a sum of) the following convex term:
f (ξ) − g
′
(ξ)ξ = ξ −
1 −
1
γ + ξ
old
ξ =
ξ
γ + ξ
old ,
where ξ
old
i
denotes the solution at the previous iteration.
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 7 / 11The DC idea applied to our L0 SVDD approximation consists in building a
sequence of solutions of the following adaptive SVDD:
min
c∈IRp
,R∈IR,ξ∈IRn
R + C
Xn
i=1
wi ξi
with kxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, n
with wi =
1
γ + ξ
old
i
.
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 8 / 11Stationary conditions of the KKT give: c =
Pn
i=1 αi xi and Pn
i=1 αi = 1
where the αi are the Lagrange multipliers associated with the inequality
constraints kxi − ck
2 ≤ R+ξi
. The dual of this problem is
(
min
α∈IRn
α
⊤XX ⊤α − α
⊤diag(XX ⊤)
with Pn
i=1 αi = 1 0 ≤ αi ≤ Cwi
i = 1, n
(2)
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 9 / 11Algorithm 1 L0 SVDD for the linear kernel
Data: X, y, C , γ
Result: R , c, ξ , α
wi = 1; i = 1, n
while not converged do
(α, λ) ← solve_QP(X, C,w) % solve problem (2)
c ← X
⊤α
R ← λ + c
⊤c
ξi ← max(0, kxi − ck
2 − R) i = 1, n
wi ← 1/(γ + ξi) i = 1, n
end
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 10 / 11Bibliography
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 11 / 11
Lecture 9: Multi Kernel SVM
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
April 16, 2014Roadmap
1 Tuning the kernel: MKL
The multiple kernel problem
Sparse kernel machines for regression: SVR
SimpleMKL: the multiple kernel solutionStandard Learning with Kernels
User
Learning Machine
kernel k data
f
http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 3 / 21Learning Kernel framework
User
Learning Machine
kernel
family
km
data
f , k(., .)
http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 3 / 21from SVM
SVM: single kernel k
f (x) = Xn
i=1
αi k (x, xi) + b
=
http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21from SVM → to Multiple Kernel Learning (MKL)
SVM: single kernel k
MKL: set of M kernels k1, . . . , km, . . . , kM
◮ learn classier and combination weights
◮ can be cast as a convex optimization problem
f (x) = Xn
i=1
αi
X
M
m=1
dm km(x, xi) + b
X
M
m=1
dm = 1 and 0 ≤ dm
=
http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21from SVM → to Multiple Kernel Learning (MKL)
SVM: single kernel k
MKL: set of M kernels k1, . . . , km, . . . , kM
◮ learn classier and combination weights
◮ can be cast as a convex optimization problem
f (x) = Xn
i=1
αi
X
M
m=1
dm km(x, xi) + b
X
M
m=1
dm = 1 and 0 ≤ dm
=
Xn
i=1
αiK(x, xi) + b with K(x, xi) = X
M
m=1
dm km(x, xi)
http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21Multiple Kernel
The model
f (x) = Xn
i=1
αi
X
M
m=1
dmkm(x, xi) + b,
X
M
m=1
dm = 1 and 0 ≤ dm
Given M kernel functions k1, . . . , kM that are potentially well suited for a
given problem, find a positive linear combination of these kernels such that
the resulting kernel k is “optimal”
k(x, x
′
) = X
M
m=1
dmkm(x, x
′
), with dm ≥ 0,
X
m
dm = 1
Learning together
The kernel coefficients dm and the SVM parameters αi
, b.
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 5 / 21Multiple Kernel: illustration
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 6 / 21Multiple Kernel Strategies
Wrapper method (Weston et al., 2000; Chapelle et al., 2002)
◮ solve SVM
◮ gradient descent on dm on criterion:
⋆ margin criterion
⋆ span criterion
Kernel Learning & Feature Selection
◮ use Kernels as dictionary
Embedded Multi Kernel Learning (MKL)
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 7 / 21Multiple Kernel functional Learning
The problem (for given C)
min
f ∈H,b,ξ,d
1
2
kf k
2
H + C
X
i
ξi
with yi
f (xi) + b
≥ 1 + ξi
; ξi ≥ 0 ∀i
X
M
m=1
dm = 1 , dm ≥ 0 ∀m ,
f =
X
m
fm and k(x, x
′
) = X
M
m=1
dmkm(x, x
′
), with dm ≥ 0
The functional framework
H =
M
M
m=1
H′
m hf , giH′
m =
1
dm
hf , giHm
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 8 / 21Multiple Kernel functional Learning
The problem (for given C)
min
{fm},b,ξ,d
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
with yi
X
m
fm(xi) + b
≥ 1 + ξi
; ξi ≥ 0 ∀i
X
m
dm = 1 , dm ≥ 0 ∀m ,
Treated as a bi-level optimization task
min
d∈IRM
min
{fm},b,ξ
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
with yi
X
m
fm(xi) + b
≥ 1 + ξi
; ξi ≥ 0 ∀i
s.t. X
m
dm = 1 , dm ≥ 0 ∀m ,
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 9 / 21Multiple Kernel representer theorem and dual
The Lagrangian:
L =
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi −
X
i
αi
yi
X
m
fm(xi) + b
− 1 − ξi
−
X
i
βi ξi
Associated KKT stationarity conditions:
∇mL = 0 ⇔
1
dm
fm(•) = Xn
i=1
αi yikm(•, xi) m = 1, M
Representer theorem
f (•) = X
m
fm(•) = Xn
i=1
αi yi
X
m
dmkm(•, xi)
| {z }
K(•,xi )
We have a standard SVM problem with respect to function f and kernel K.
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 10 / 21Multiple Kernel Algorithm
Use a Reduced Gradient Algorithm1
min
d∈IRM
J(d)
s.t. X
m
dm = 1 , dm ≥ 0 ∀m ,
SimpleMKL algorithm
set dm =
1
M
for m = 1, . . . , M
while stopping criterion not met do
compute J(d) using an QP solver with K =
P
m dmKm
compute ∂J
∂dm
, and projected gradient as a descent direction D
γ ← compute optimal stepsize
d ← d + γD
end while
−→ Improvement reported using the Hessian
1Rakotomamonjy et al. JMLR 08
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 11 / 21Computing the reduced gradient
At the optimal the primal cost = dual cost
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
| {z }
primal cost
=
1
2
α
⊤Gα − e
⊤α
| {z }
dual cost
with G =
P
m dmGm where Gm,ij = km(xi
, xj)
Dual cost is easier for the gradient
∇dm J(d) = 1
2
α
⊤Gmα
Reduce (or project) to check the constraints P
m dm = 1 →
P
m Dm = 0
Dm = ∇dm J(d) − ∇d1
J(d) and D1 = −
X
M
m=2
Dm
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 12 / 21Complexity
For each iteration:
SVM training: O(nnsv + n
3
sv).
Inverting Ksv,sv is O(n
3
sv), but might already be available as a
by-product of the SVM training.
Computing H: O(Mn2
sv)
Finding d: O(M3
).
The number of iterations is usually less than 10.
−→ When M < nsv, computing d is not more expensive than QP.
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 13 / 21MKL on the 101-caltech dataset
http://www.robots.ox.ac.uk/~vgg/software/MKL/
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 14 / 21Support vector regression (SVR)
the t-insensitive loss
(
min
f ∈H
1
2
kf k
2
H
with |f (xi) − yi
| ≤ t, i = 1, n
The support vector regression introduce slack variables
(SVR)
(
min
f ∈H
1
2
kf k
2
H + C
P|ξi
|
with |f (xi) − yi
| ≤ t + ξi 0 ≤ ξi
i = 1, n
a typical multi parametric quadratic program (mpQP)
piecewise linear regularization path
α(C,t) = α(C0,t0) + ( 1
C
−
1
C0
)u +
1
C0
(t − t0)v
2d Pareto’s front (the tube width and the regularity)Support vector regression illustration
0 1 2 3 4 5 6 7 8
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Support Vector Machine Regression
x
y
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
−1.5
−1
−0.5
0
0.5
1
1.5
Support Vector Machine Regression
x
y
C large C small
there exists other formulations such as LP SVR...Multiple Kernel Learning for regression
The problem (for given C and t)
min
{fm},b,ξ,d
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
s.t.
X
m
fm(xi) + b − yi
≤ t + ξi ∀iξi ≥ 0 ∀i
X
m
dm = 1 , dm ≥ 0 ∀m ,
regularization formulation
min
{fm},b,d
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
max(
X
m
fm(xi) + b − yi
− t, 0)
X
m
dm = 1 , dm ≥ 0 ∀m ,
Equivalently
min
fm},b,ξ,d
X
i
max
X
m
fm(xi) + b − yi
− t, 0
+
1
2C
X
m
1
dm
kfmk
2
Hm + µ
X
m
|dm|
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 17 / 21Multiple Kernel functional Learning
The problem (for given C and t)
min
{fm},b,ξ,d
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
s.t.
X
m
fm(xi) + b − yi
≤ t + ξi ∀iξi ≥ 0 ∀i
X
m
dm = 1 , dm ≥ 0 ∀m ,
Treated as a bi-level optimization task
min
d∈IRM
min
{fm},b,ξ
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
s.t.
X
m
fm(xi) + b − yi
≥ t + ξi ∀i
ξi ≥ 0 ∀i
s.t. X
m
dm = 1 , dm ≥ 0 ∀m ,
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 18 / 21Multiple Kernel experiments
0 0.2 0.4 0.6 0.8 1
−1
−0.5
0
0.5
1
LinChirp
0 0.2 0.4 0.6 0.8 1
−2
−1
0
1
2
x
0 0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
Wave
0 0.2 0.4 0.6 0.8 1
0
0.5
1
x
0 0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
Blocks
0 0.2 0.4 0.6 0.8 1
0
0.2
0.4
0.6
0.8
x
0 0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
Spikes
0 0.2 0.4 0.6 0.8 1
0
0.5
1
x
Single Kernel Kernel Dil Kernel Dil-Trans
Data Set Norm. MSE (%) #Kernel Norm. MSE #Kernel Norm. MSE
LinChirp 1.46 ± 0.28 7.0 1.00 ± 0.15 21.5 0.92 ± 0.20
Wave 0.98 ± 0.06 5.5 0.73 ± 0.10 20.6 0.79 ± 0.07
Blocks 1.96 ± 0.14 6.0 2.11 ± 0.12 19.4 1.94 ± 0.13
Spike 6.85 ± 0.68 6.1 6.97 ± 0.84 12.8 5.58 ± 0.84
Table: Normalized Mean Square error averaged over 20 runs.
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 19 / 21Conclusion on multiple kernel (MKL)
MKL: Kernel tuning, variable selection. . .
◮ extention to classification and one class SVM
SVM KM: an efficient Matlab toolbox (available at MLOSS)2
Multiple Kernels for Image Classification: Software and Experiments
on Caltech-1013
new trend: Multi kernel, Multi task and ∞ number of kernels
2
http://mloss.org/software/view/33/
3
http://www.robots.ox.ac.uk/~vgg/software/MKL/Bibliography
A. Rakotomamonjy, F. Bach, S. Canu & Y. Grandvalet. SimpleMKL. J.
Mach. Learn. Res. 2008, 9:2491–2521.
M. Gönen & E. Alpaydin Multiple kernel learning algorithms. J. Mach.
Learn. Res. 2008;12:2211-2268.
http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf
http://www.robots.ox.ac.uk/~vgg/software/MKL/
http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 21 / 21
Lecture 7: Tuning hyperparameters using cross validation
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
April 4, 2014Roadmap
1 Tuning hyperparameters
Motivation
Machine learning without data
Assessing the quality of a trained SVM
Model selection
log of the bandwith
log of C
1.5 2 2.5 3 3.5 4 4.5
ï1
0
1
2
3
4
“Evaluation is the key to making real progress in data mining”, [Witten &
Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Motivation: the influence of C on SVM
0 0.5 1 1.5 2 2.5 3 3.5 4
0.22
0.24
0.26
0.28
0.3
error
C (log. scale)
0
0
1
−1
C too small
0
0
0
1
1
1
−1 −1
−1
−1
−1
nice C
0
0
0
0
0
1
1
1
1
1
1
−1
−1
−1
−1
−1
C too largeMotivation:
Need for model selection (tuning the hyper parameters)
Require a good estimation of the performance on future data Choose a
relevant performance measureRoadmap
1 Tuning hyperparameters
Motivation
Machine learning without data
Assessing the quality of a trained SVM
Model selection
log of the bandwith
log of C
1.5 2 2.5 3 3.5 4 4.5
ï1
0
1
2
3
4
“Evaluation is the key to making real progress in data mining”, [Witten &
Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Machine learning without data
minimizing IP(error)Roadmap
1 Tuning hyperparameters
Motivation
Machine learning without data
Assessing the quality of a trained SVM
Model selection
log of the bandwith
log of C
1.5 2 2.5 3 3.5 4 4.5
ï1
0
1
2
3
4
“Evaluation is the key to making real progress in data mining”, [Witten &
Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Training and test data
Split dataset into two groups randomly picked (hold out strategy)
Training set: used to train the classifier
Test set: used to estimate the error rate of the trained classifier
(X,y) total available data
(Xa,ya) training data (Xt,yt) test data
(Xa, ya, Xt, yt) ← split(X, y, option =
1
3
)
Generally, the larger the training data the better the classifier
The larger the test data the more accurate the error estimateAssessing the quality of a trained SVM: minimum error rate
Definition (The confusion matrix)
A matrix showing the predicted and actual classifications. A confusion
matrix is of size L × L, where L is the number of different classes.
Observed / predicted Positive Negative
positive a b
negative c d
Error rate = 1 - Accuracy =
b + c
a + b + c + d
=
b + c
n
= 1 −
a + d
n
True positive rate (Recall, Sensitivity) d/(c+d).
True negative rate (Specificity) a/(a+b).
Precision, False positive rate, False negative rate...Other performances measures
N. Japkowicz & M. Shah, "Evaluating Learning Algorithms: A Classification Perspective", Cambridge University Press, 2011The learning equation
Learning = training + testing + tuning
Table: my experimental error rates
State of the art my new method Bayes error
problem 1 10% ± 1.25 8.5% ± .5
problem 2 5 % (.25) 4 % (.5)
is my new method good for problem 1?The learning equation
Learning = training + testing + tuning
Table: my experimental error rates
State of the art my new method Bayes error
problem 1 10% ± 1.25 8.5% ± .5 11 %
problem 2 5 % (.25) 4 % (.5) 2 %
is my new method good for problem 1?Error bars on Bernouilli trials
Error rate = bp B(p)
with confidence α: (Normal approximation interval)
p = IP(error) in bp ± u1−α/2
s
bp (1 − bp)
nt
with confidence α: (improved approximation)
p = IP(error) in 1
1 +
1
K
u
2
1−α/2
bp ± u1−α/2
s
bp (1 − bp)
nt
what if bp = 0?
http://en.wikipedia.org/wiki/Binomial_proportion_confidence_intervalTo improve the estimate
Random Subsampling (The repeated holdout method)
K-Fold Cross-Validation (K = 10 or K = 2 or k = n)
Leave-one-out Cross-Validation (k = 1)
BootstrapError bars: the gaussian approximation
... and to stabilize: iterate K times - do it say K = 10 times
The repeated holdout method
Holdout estimate can be made more reliable by repeating the process
with different subsamples
In each iteration, use a different random splitting
Average the error rates on the different iterations
mean error rate e =
1
K
X
K
k=1
ek variance σb
2 =
1
K − 1
X
K
k=1
(ek − e)
2
.
e + tα/2,K−1
r
σb
2
K
t0.025,9 = 2.262Cross validation
Definition (Cross-validation)
A method for estimating the accuracy of an inducer by dividing the data
into K mutually exclusive subsets (the “folds”) of approximately equal size.
Exemple of K = 3-Fold Cross-Validation
training data
test data
How many folds are needed (K =?)
large: small bias, large variance as well as computational time
small: computation time reduced, small variance, large bias
A common choice for K-Fold Cross Validation is K=5Leave one out cross validation
Theoretical guaranteesThe bootstrapComparing results
Two different issues
what is the best method for my problem?
how good is my learning algorithm?Comparing two algorithms: Mc Nemar’s test
build the confusion matrix of the two algorithms
Algo 1 / Algo 2 right wrong
right number of examples well
classified by both
e01 number of examples
well classified by 1 but not
by 2
wrong e10 number of examples
missclassified by 1 but not
by 2
number of examples missclassified
by both
H0: if the two algorithms are the same (we expect e10 = e01 =
e10+e01
2
)
(|e10 − e01| − 1)
2
e10 + e01
∼ χ
2
1
Beware: if e10 + e01 < 20 better use the sign test
Matlab function:
http://www.mathworks.com/matlabcentral/fileexchange/189-discrim/content/discrim/
mcnemar.m
J. L. Fleiss (1981) Statistical Methods for Rates and Proportions. Second Edition. Wiley.Roadmap
1 Tuning hyperparameters
Motivation
Machine learning without data
Assessing the quality of a trained SVM
Model selection
log of the bandwith
log of C
1.5 2 2.5 3 3.5 4 4.5
ï1
0
1
2
3
4
“Evaluation is the key to making real progress in data mining”, [Witten &
Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Model selection strategy
Model selection criteria attempt to find a good compromise between
The complexity of a model
Its prediction accuracy on the training data
1 (Xa, ya, Xt, yt) ← split(X, y, options)
2 (C, b) ← tune(Xa, ya, options)
3 model ← train(Xa, ya, C, b, options)
4 error ← test(Xt, yt, C, b, options)
Occam’s Razor:
the best theory is the smallest one that describes all the factsModel selection: the tuning function
function (C, b) ← tune(Xa, ya, options)
1 (Xℓ, yℓ, Xv, yv) ← split(Xa, ya, options)
2 loop on a grid for C
3 loop on a grid for b
1 model ← train(Xℓ, yℓ, C, b, options)
2 error ← test(Xv, yv, C, b, options)
The three sets
Training set: a set of examples used for learning: to fit the parameters
Validation set: a set of examples used to tune the hyper parameters
Test set: independent instances that have played no part in formation
of classifierhow to design the grids
A grid on b
A much simpler trick is to pick, say 1000 pairs (x,x’) at random from your
dataset, compute the distance of all such pairs and take the median, the
0.1 and the 0.9 quantile. Now pick b to be the inverse any of these three
numbers.
http://blog.smola.org/post/940859888/easy-kernel-width-choice
A grid on C
from Cmin to ∞
to much!The coarse to fine strategy
1 use a large coarse grid on a few data to localize interesting values
2 fine tuning on all data in this zone
1 (Xa, ya, Xt, yt) ← split(X, y)
2 (C, b) ← tune(Xa, ya, coarsegrids,smalltrainingset)
3 finegrids ← fit_grid(C, b)
4 (C, b) ← tune(Xa, ya, finegrids, largetrainingset)
5 model ← train(Xa, ya, C, b, options)
6 error ← test(Xt, yt, C, b, options)
The computing time is the key issueEvaluation measures
the span boundBibliography
http://research.cs.tamu.edu/prism/lectures/iss/iss_l13.pdf
http://www.cs.odu.edu/~mukka/cs795sum13dm/Lecturenotes/Day3/Chapter5.pdf
http://www.cs.cmu.edu/~epxing/Class/10701-10s/Lecture/lecture8.pdf
http://www.mohakshah.com/tutorials/icml2012/Tutorial-ICML2012/Tutorial_at_ICML_
2012_files/ICML2012-Tutorial.pdf
Stéphane Canu (INSA Rouen - LITIS) April 4, 2014 26 / 26
Lecture 6: Minimum encoding ball and Support vector
data description (SVDD)
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
May 12, 2014Plan
1 Support Vector Data Description (SVDD)
SVDD, the smallest enclosing ball problem
The minimum enclosing ball problem with errors
The minimum enclosing ball problem in a RKHS
The two class Support vector data description (SVDD)The minimum enclosing ball problem [Tax and Duin, 2004]
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The minimum enclosing ball problem [Tax and Duin, 2004]
the center
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The minimum enclosing ball problem [Tax and Duin, 2004]
the radius
Given n points, {xi
, i = 1, n} .
(
min
R∈IR,c∈IRd
R
2
with kxi − ck
2 ≤ R
2
, i = 1, . . . , n
What is that in the convex programming hierarchy?
LP, QP, QCQP, SOCP and SDP
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The convex programming hierarchy (part of)
LP
min
x
f
⊤x
with Ax ≤ d
and 0 ≤ x
QP
(
min
x
1
2
x
⊤Gx + f
⊤x
with Ax ≤ d
QCQP
min
x
1
2
x
⊤Gx + f
⊤x
with x
⊤Bix + a
⊤
i
x ≤ di
i = 1, n
SOCP
min
x
f
⊤x
with kx − aik ≤ b
⊤
i
x + di
i = 1, n
The convex programming hierarchy?
Model generality: LP < QP < QCQP < SOCP < SDP
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 4 / 35MEB as a QP in the primal
Theorem (MEB as a QP)
The two following problems are equivalent,
(
min
R∈IR,c∈IRd
R
2
with kxi − ck
2 ≤ R
2
, i = 1, . . . , n
(
min
w,ρ
1
2
kwk
2 − ρ
with w⊤xi ≥ ρ +
1
2
kxik
2
with ρ =
1
2
(kck
2 − R
2
) and w = c.
Proof:
kxi − ck
2 ≤ R
2
kxik
2 − 2x
⊤
i
c + kck
2 ≤ R
2
−2x
⊤
i
c ≤ R
2 − kxik
2 − kck
2
2x
⊤
i
c ≥ −R
2 + kxik
2 + kck
2
x
⊤
i
c ≥
1
2
(kck
2 − R
2
)
| {z }
ρ
+
1
2
kxik
2
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 5 / 35MEB and the one class SVM
SVDD: (
min
w,ρ
1
2
kwk
2 − ρ
with w⊤xi ≥ ρ +
1
2
kxik
2
SVDD and linear OCSVM (Supporting Hyperplane)
if ∀i = 1, n, kxik
2 = constant, it is the the linear one class SVM (OC SVM)
The linear one class SVM [Schölkopf and Smola, 2002]
(
min
w,ρ′
1
2
kwk
2 − ρ
′
with w⊤xi ≥ ρ
′
with ρ
′ = ρ +
1
2
kxik
2 ⇒ OC SVM is a particular case of SVDD
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 6 / 35When ∀i = 1, n, kxik
2 = 1
0
c
kxi − ck
2 ≤ R
2 ⇔ w
⊤xi ≥ ρ
with
ρ =
1
2
(kck
2 − R + 1)
SVDD and OCSVM
"Belonging to the ball" is also "being above" an hyperplane
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 7 / 35MEB: KKT
L(c, R, α) = R
2 +
Xn
i=1
αi
kxi − ck
2 − R
2
KKT conditionns :
stationarty ◮ 2c
Pn
i=1
αi − 2
Pn
i=1
αixi = 0 ← The representer theorem
◮ 1 −
Pn
i=1
αi = 0
primal admiss. kxi − ck
2 ≤ R
2
dual admiss. αi ≥ 0 i = 1, n
complementarity αi
kxi − ck
2 − R
2
= 0 i = 1, n
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 8 / 35MEB: KKT
the radius L(c, R, α) = R
2 +
Xn
i=1
αi
kxi − ck
2 − R
2
KKT conditionns :
stationarty ◮ 2c
Pn
i=1
αi − 2
Pn
i=1
αixi = 0 ← The representer theorem
◮ 1 −
Pn
i=1
αi = 0
primal admiss. kxi − ck
2 ≤ R
2
dual admiss. αi ≥ 0 i = 1, n
complementarity αi
kxi − ck
2 − R
2
= 0 i = 1, n
Complementarity tells us: two groups of points
the support vectors kxi − ck
2 = R
2 and the insiders αi = 0
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 8 / 35MEB: Dual
The representer theorem:
c =
Pn
i=1
αixi
Pn
i=1
αi
=
Xn
i=1
αixi
L(α) = Xn
i=1
αi
kxi −
Xn
j=1
αjxjk
2
Xn
i=1
Xn
j=1
αiαjx
⊤
i
xj = α
⊤Gα and Xn
i=1
αi x
⊤
i
xi = α
⊤diag(G)
with G = XX⊤ the Gram matrix: Gij = x
⊤
i
xj ,
min
α∈IRn
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi
, i = 1 . . . n
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 9 / 35SVDD primal vs. dual
Primal
min
R∈IR,c∈IRd
R
2
with kxi − ck
2 ≤ R
2
,
i = 1, . . . , n
d + 1 unknown
n constraints
can be recast as a QP
perfect when d << n
Dual
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi
,
i = 1 . . . n
n unknown with G the pairwise
influence Gram matrix
n box constraints
easy to solve
to be used when d > nSVDD primal vs. dual
Primal
min
R∈IR,c∈IRd
R
2
with kxi − ck
2 ≤ R
2
,
i = 1, . . . , n
d + 1 unknown
n constraints
can be recast as a QP
perfect when d << n
Dual
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi
,
i = 1 . . . n
n unknown with G the pairwise
influence Gram matrix
n box constraints
easy to solve
to be used when d > n
But where is R
2
?Looking for R
2
(
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1, 0 ≤ αi
, i = 1, n
The Lagrangian: L(α, µ, β) = α
⊤Gα − α
⊤diag(G) + µ(e
⊤α − 1) − β
⊤α
Stationarity cond.: ∇αL(α, µ, β) = 2Gα − diag(G) + µe − β = 0
The bi dual
(
min
α
α
⊤Gα + µ
with −2Gα + diag(G) ≤ µe
by identification
R
2 = µ + α
⊤Gα = µ + kck
2
µ is the Lagrange multiplier associated with the equality constraint Xn
i=1
αi = 1
Also, because of the complementarity condition, if xi
is a support vector, then
βi = 0 implies αi > 0 and R
2 = kxi − ck
2
.Plan
1 Support Vector Data Description (SVDD)
SVDD, the smallest enclosing ball problem
The minimum enclosing ball problem with errors
The minimum enclosing ball problem in a RKHS
The two class Support vector data description (SVDD)
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 12 / 35The minimum enclosing ball problem with errors
the slack
The same road map:
initial formuation
reformulation (as a QP)
Lagrangian, KKT
dual formulation
bi dual
Initial formulation: for a given C
min
R,a,ξ
R
2 + C
Xn
i=1
ξi
with kxi − ck
2 ≤ R
2 + ξi
, i = 1, . . . , n
and ξi ≥ 0, i = 1, . . . , n
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 13 / 35The MEB with slack: QP, KKT, dual and R
2
SVDD as a QP:
min
w,ρ
1
2
kwk
2 − ρ +
C
2
Xn
i=1
ξi
with w⊤xi ≥ ρ +
1
2
kxik
2 −
1
2
ξi
and ξi ≥ 0,
i = 1, n
again with OC SVM as a particular case.
With G = XX ⊤
Dual SVDD:
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi ≤ C,
i = 1, n
for a given C ≤ 1. If C is larger than one it is useless (it’s the no slack case)
R
2 = µ + c
⊤c
with µ denoting the Lagrange multiplier associated with the equality
constraint Pn
i=1 αi = 1.Variations over SVDD
Adaptive SVDD: the weighted error case for given wi
, i = 1, n
min
c∈IRp,R∈IR,ξ∈IRn
R + C
Xn
i=1
wi ξi
with kxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, n
The dual of this problem is a QP [see for instance Liu et al., 2013]
(
min
α∈IRn
α
⊤XX ⊤α − α
⊤diag(XX ⊤)
with Pn
i=1 αi = 1 0 ≤ αi ≤ Cwi
i = 1, n
Density induced SVDD (D-SVDD):
min
c∈IRp,R∈IR,ξ∈IRn
R + C
Xn
i=1
ξi
with wikxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, nPlan
1 Support Vector Data Description (SVDD)
SVDD, the smallest enclosing ball problem
The minimum enclosing ball problem with errors
The minimum enclosing ball problem in a RKHS
The two class Support vector data description (SVDD)
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 16 / 35SVDD in a RKHS
The feature map: IRp −→ H
c −→ f (•)
xi −→ k(xi
, •)
kxi − ckIRp ≤ R
2 −→ kk(xi
, •) − f (•)k
2
H ≤ R
2
Kernelized SVDD (in a RKHS) is also a QP
min
f ∈H,R∈IR,ξ∈IRn
R
2 + C
Xn
i=1
ξi
with kk(xi
, •) − f (•)k
2
H ≤ R
2+ξi
i = 1, n
ξi ≥ 0 i = 1, nSVDD in a RKHS: KKT, Dual and R
2
L = R
2 + C
Xn
i=1
ξi +
Xn
i=1
αi
kk(xi
, .) − f (.)k
2
H − R
2−ξi
−
Xn
i=1
βi ξi
= R
2 + C
Xn
i=1
ξi +
Xn
i=1
αi
k(xi
, xi) − 2f (xi) + kf k
2
H − R
2−ξi
−
Xn
i=1
βi ξi
KKT conditions
Stationarity
◮ 2f (.)
Pn
i=1 αi − 2
Pn
i=1 αik(., xi) = 0 ← The representer theorem
◮ 1 −
Pn
i=1 αi = 0
◮ C − αi − βi = 0
Primal admissibility: kk(xi
, .) − f (.)k
2 ≤ R
2 + ξi
, ξi ≥ 0
Dual admissibility: αi ≥ 0 , βi ≥ 0
Complementarity
◮ αi
kk(xi
, .) − f (.)k
2 − R
2 − ξi
= 0
◮ βi ξi = 0SVDD in a RKHS: Dual and R
2
L(α) = Xn
i=1
αik(xi
, xi) − 2
Xn
i=1
f (xi) + kf k
2
H with f (.) = Xn
j=1
αjk(., xj)
=
Xn
i=1
αik(xi
, xi) −
Xn
i=1
Xn
j=1
αiαj k(xi
, xj)
| {z }
Gij
Gij = k(xi
, xj)
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi≤ C, i = 1 . . . n
As it is in the linear case:
R
2 = µ + kf k
2
H
with µ denoting the Lagrange multiplier associated with the equality
constraint Pn
i=1 αi = 1.SVDD train and val in a RKHS
Train using the dual form (in: G, C; out: α, µ)
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi≤ C, i = 1 . . . n
Val with the center in the RKHS: f (.) = Pn
i=1 αik(., xi)
φ(x) = kk(x, .) − f (.)k
2
H − R
2
= kk(x, .)k
2
H − 2hk(x, .), f (.)iH + kf (.)k
2
H − R
2
= k(x, x) − 2f (x) + R
2 − µ − R
2
= −2f (x) + k(x, x) − µ
= −2
Xn
i=1
αik(x, xi) + k(x, x) − µ
φ(x) = 0 is the decision border
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 20 / 35An important theoretical result
For a well-calibrated bandwidth,
The SVDD estimates the underlying distribution level set [Vert and Vert,
2006]
The level sets of a probability density function IP(x) are the set
Cp = {x ∈ IRd
| IP(x) ≥ p}
It is well estimated by the empirical minimum volume set
Vp = {x ∈ IRd
| kk(x, .) − f (.)k
2
H − R
2 ≥ 0}
The frontiers coincidesSVDD: the generalization error
For a well-calibrated bandwidth,
(x1, . . . , xn) i.i.d. from some fixed but unknown IP(x)
Then [Shawe-Taylor and Cristianini, 2004] with probability at least 1 − δ,
(∀δ ∈]0, 1[), for any margin m > 0
IP
kk(x, .) − f (.)k
2
H ≥ R
2 + m
≤
1
mn
Xn
i=1
ξi +
6R
2
m
√
n
+ 3
r
ln(2/δ)
2nEquivalence between SVDD and OCSVM for translation
invariant kernels (diagonal constant kernels)
Theorem
Let H be a RKHS on some domain X endowed with kernel k. If there
exists some constant c such that ∀x ∈ X , k(x, x) = c, then the two
following problems are equivalent,
min
f ,R,ξ
R + C
Xn
i=1
ξi
with kk(xi
, .) − f (.)k
2
H ≤ R+ξi
ξi ≥ 0 i = 1, n
min
f ,ρ,ξ
1
2
kf k
2
H − ρ + C
Xn
i=1
εi
with f (xi) ≥ ρ − εi
εi ≥ 0 i = 1, n
with ρ =
1
2
(c + kf k
2
H − R) and εi =
1
2
ξi
.Proof of the Equivalence between SVDD and OCSVM
min
f ∈H,R∈IR,ξ∈IRn
R + C
Xn
i=1
ξi
with kk(xi
, .) − f (.)k
2
H ≤ R+ξi
, ξi ≥ 0 i = 1, n
since kk(xi
, .) − f (.)k
2
H = k(xi
, xi) + kf k
2
H − 2f (xi)
min
f ∈H,R∈IR,ξ∈IRn
R + C
Xn
i=1
ξi
with 2f (xi) ≥ k(xi
, xi) + kf k
2
H − R−ξi
, ξi ≥ 0 i = 1, n.
Introducing ρ =
1
2
(c + kf k
2
H − R) that is R = c + kf k
2
H − 2ρ, and since k(xi
, xi)
is constant and equals to c the SVDD problem becomes
min
f ∈H,ρ∈IR,ξ∈IRn
1
2
kf k
2
H − ρ +
C
2
Xn
i=1
ξi
with f (xi) ≥ ρ−
1
2
ξi
, ξi ≥ 0 i = 1, nleading to the classical one class SVM formulation (OCSVM)
min
f ∈H,ρ∈IR,ξ∈IRn
1
2
kf k
2
H − ρ + C
Xn
i=1
εi
with f (xi) ≥ ρ − εi
, εi ≥ 0 i = 1, n
with εi =
1
2
ξi
. Note that by putting ν =
1
nC we can get the so called ν
formulation of the OCSVM
min
f
′∈H,ρ′∈IR,ξ′∈IRn
1
2
kf
′k
2
H − nνρ′ +
Xn
i=1
ξ
′
i
with f
′
(xi) ≥ ρ
′ − ξ
′
i
, ξ′
i ≥ 0 i = 1, n
with f
′ = Cf , ρ
′ = Cρ, and ξ
′ = Cξ.Duality
Note that the dual of the SVDD is
(
min
α∈IRn
α
⊤Gα − α
⊤g
with Pn
i=1 αi = 1 0 ≤ αi ≤ C i = 1, n
where G is the kernel matrix of general term Gi,j = k(xi
, xj) and g the
diagonal vector such that gi = k(xi
, xi) = c. The dual of the OCSVM is
the following equivalent QP
(
min
α∈IRn
1
2
α
⊤Gα
with Pn
i=1 αi = 1 0 ≤ αi ≤ C i = 1, n
Both dual forms provide the same solution α, but not the same Lagrange
multipliers. ρ is the Lagrange multiplier of the equality constraint of the
dual of the OCSVM and R = c + α
⊤Gα − 2ρ. Using the SVDD dual, it
turns out that R = λeq + α
⊤Gα where λeq is the Lagrange multiplier of
the equality constraint of the SVDD dual form.Plan
1 Support Vector Data Description (SVDD)
SVDD, the smallest enclosing ball problem
The minimum enclosing ball problem with errors
The minimum enclosing ball problem in a RKHS
The two class Support vector data description (SVDD)
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 27 / 35The two class Support vector data description (SVDD)
−4 −3 −2 −1 0 1 2 3
−3
−2
−1
0
1
2
3
4
−4 −3 −2 −1 0 1 2 3
−3
−2
−1
0
1
2
3
4
.
min
c,R,ξ+,ξ−
R
2+C
X
yi =1
ξ
+
i +
X
yi =−1
ξ
−
i
with kxi − ck
2 ≤ R
2+ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
and kxi − ck
2 ≥ R
2−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 28 / 35The two class SVDD as a QP
min
c,R,ξ+,ξ−
R
2+C
X
yi =1
ξ
+
i +
X
yi =−1
ξ
−
i
with kxi − ck
2 ≤ R
2+ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
and kxi − ck
2 ≥ R
2−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
kxik
2 − 2x
⊤
i
c + kck
2 ≤ R
2+ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
kxik
2 − 2x
⊤
i
c + kck
2 ≥ R
2−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
2x
⊤
i
c ≥ kck
2 − R
2 + kxik
2−ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
−2x
⊤
i
c ≥ −kck
2 + R
2 − kxik
2−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
2yix
⊤
i
c ≥ yi(kck
2 − R
2 + kxik
2
)−ξi
, ξi ≥ 0 i = 1, n
change variable: ρ = kck
2 − R
2
min
c,ρ,ξ
kck
2 − ρ + C
Pn
i=1
ξi
with 2yixi
⊤c ≥ yi(ρ − kxik
2
)−ξi
i = 1, n
and ξi ≥ 0 i = 1, nThe dual of the two class SVDD
Gij = yi yjxix
⊤
j
The dual formulation:
min
α∈IRn
α
⊤Gα −
Pn
i=1 αi yikxik
2
with Xn
i=1
yiαi = 1
0 ≤ αi ≤ C i = 1, n
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 30 / 35The two class SVDD vs. one class SVDD
The two class SVDD (left) vs. the one class SVDD (right)
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 31 / 35Small Sphere and Large Margin (SSLM) approach
Support vector data description with margin [Wu and Ye, 2009]
min
w,R,ξ∈IRn
R
2+C
X
yi =1
ξ
+
i +
X
yi =−1
ξ
−
i
with kxi − ck
2 ≤ R
2 − 1+ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
and kxi − ck
2 ≥ R
2 + 1−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
kxi − ck
2 ≥ R
2 + 1−ξ
−
i
and yi = −1 ⇐⇒ yi kxi − ck
2 ≤ yiR
2 − 1+ξ
−
i
L(c, R, ξ, α, β) = R
2+C
Xn
i=1
ξi +
Xn
i=1
αi
yikxi − ck
2 − yiR
2 + 1−ξi
−
Xn
i=1
βi ξi
−4 −3 −2 −1 0 1 2 3
−3
−2
−1
0
1
2
3
4SVDD with margin – dual formulation
L(c, R, ξ, α, β) = R
2+C
Xn
i=1
ξi +
Xn
i=1
αi
yikxi − ck
2 − yiR
2 + 1−ξi
−
Xn
i=1
βi ξi
Optimality: c =
Xn
i=1
αi yixi
;
Xn
i=1
αi yi = 1 ; 0 ≤ αi ≤ C
L(α) = Xn
i=1
αi
yikxi −
Xn
j=1
αi yjxjk
2
+
Xn
i=1
αi
= −
Xn
i=1
Xn
j=1
αjαi yi yjx
⊤
j xi +
Xn
i=1
kxik
2
yiαi +
Xn
i=1
αi
Dual SVDD is also a quadratic program
problem D
min
α∈IRn
α
⊤Gα − e
⊤α − f
⊤α
with y
⊤α = 1
and 0 ≤ αi ≤ C i = 1, n
with G a symmetric matrix n × n such that Gij = yi yjx
⊤
j
xi and fi = kxik
2
yiConclusion
Applications
◮ outlier detection
◮ change detection
◮ clustering
◮ large number of classes
◮ variable selection, . . .
A clear path
◮ reformulation (to a standart problem)
◮ KKT
◮ Dual
◮ Bidual
a lot of variations
◮ L
2 SVDD
◮ two classes non symmetric
◮ two classes in the symmetric classes (SVM)
◮ the multi classes issue
practical problems with translation invariant
kernels
.Bibliography
Bo Liu, Yanshan Xiao, Longbing Cao, Zhifeng Hao, and Feiqi Deng.
Svdd-based outlier detection on uncertain data. Knowledge and
information systems, 34(3):597–618, 2013.
B. Schölkopf and A. J. Smola. Learning with Kernels. MIT Press, 2002.
John Shawe-Taylor and Nello Cristianini. Kernel methods for pattern
analysis. Cambridge university press, 2004.
David MJ Tax and Robert PW Duin. Support vector data description.
Machine learning, 54(1):45–66, 2004.
Régis Vert and Jean-Philippe Vert. Consistency and convergence rates of
one-class svms and related algorithms. The Journal of Machine Learning
Research, 7:817–854, 2006.
Mingrui Wu and Jieping Ye. A small sphere and large margin approach for
novelty detection using training data with outliers. Pattern Analysis and
Machine Intelligence, IEEE Transactions on, 31(11):2088–2092, 2009.
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 35 / 35
Lecture 5: SVM as a kernel machine
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
April 26, 2014Plan
1 Kernel machines
Non sparse kernel machines
Sparse kernel machines: SVM
SVM: variations on a theme
Sparse kernel machines for regression: SVR
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1
1Interpolation splines
find out f ∈ H such that f (xi) = yi
, i = 1, ..., n
It is an ill posed problemInterpolation splines: minimum norm interpolation
(
min
f ∈H
1
2
kf k
2
H
such that f (xi) = yi
, i = 1, ..., n
The lagrangian (αi Lagrange multipliers)
L(f , α) = 1
2
kf k
2 −
Xn
i=1
αi
f (xi) − yi
Interpolation splines: minimum norm interpolation
(
min
f ∈H
1
2
kf k
2
H
such that f (xi) = yi
, i = 1, ..., n
The lagrangian (αi Lagrange multipliers)
L(f , α) = 1
2
kf k
2 −
Xn
i=1
αi
f (xi) − yi
optimality for f : ∇f L(f , α) = 0 ⇔ f (x) = Xn
i=1
αik(xi
, x)Interpolation splines: minimum norm interpolation
(
min
f ∈H
1
2
kf k
2
H
such that f (xi) = yi
, i = 1, ..., n
The lagrangian (αi Lagrange multipliers)
L(f , α) = 1
2
kf k
2 −
Xn
i=1
αi
f (xi) − yi
optimality for f : ∇f L(f , α) = 0 ⇔ f (x) = Xn
i=1
αik(xi
, x)
dual formulation (remove f from the lagrangian):
Q(α) = −
1
2
Xn
i=1
Xn
j=1
αiαjk(xi
, xj) +Xn
i=1
αi yi solution: max
α∈IRn
Q(α)
Kα = yRepresenter theorem
Theorem (Representer theorem)
Let H be a RKHS with kernel k(s,t). Let ℓ be a function from X to IR
(loss function) and Φ a non decreasing function from IR to IR. If there
exists a function f ∗minimizing:
f
∗ = argmin
f ∈H
Xn
i=1
ℓ
yi
, f (xi)
+ Φ
kf k
2
H
then there exists a vector α ∈ IRn
such that:
f
∗
(x) = Xn
i=1
αik(x, xi)
it can be generalized to the semi parametric case: +
Pm
j=1
βjφj(x)Elements of a proof
1 Hs = span{k(., x1), ..., k(., xi), ..., k(., xn)}
2 orthogonal decomposition: H = Hs ⊕ H⊥ ⇒ ∀f ∈ H; f = fs + f⊥
3 pointwise evaluation decomposition
f (xi) = fs (xi) + f⊥(xi)
= hfs (.), k(., xi)iH + hf⊥(.), k(., xi)iH
| {z }
=0
= fs (xi)
4 norm decomposition kf k
2
H = kfsk
2
H + kf⊥k
2
H | {z }
≥0
≥ kfsk
2
H
5 decompose the global cost
Xn
i=1
ℓ
yi
, f (xi)
+ Φ
kf k
2
H
=
Xn
i=1
ℓ
yi
, fs (xi)
+ Φ
kfsk
2
H + kf⊥k
2
H
≥
Xn
i=1
ℓ
yi
, fs (xi)
+ Φ
kfsk
2
H
6 argmin
f ∈H
= argmin
f ∈Hs
.Smooting splines
introducing the error (the slack) ξ = f (xi) − yi
(S)
min
f ∈H
1
2
kf k
2
H +
1
2λ
Xn
i=1
ξ
2
i
such that f (xi) = yi + ξi
, i = 1, n
3 equivalent definitions
(S
′
) min
f ∈H
1
2
Xn
i=1
f (xi ) − yi
2 +
λ
2
kf k
2
H
min
f ∈H
1
2
kf k
2
H
such that Xn
i=1
f (xi ) − yi
2 ≤ C
′
min
f ∈H
Xn
i=1
f (xi ) − yi
2
such that kf k
2
H ≤ C
′′
using the representer theorem
(S
′′) min
α∈IRn
1
2
kKα − yk
2 +
λ
2
α
⊤Kα
solution: (S) ⇔ (S
′
) ⇔ (S
′′) ⇔ α = (K + λI)
−1
y
6= ridge regression:
min
α∈IRn
1
2
kKα − yk
2 +
λ
2
α
⊤α with α = (K
⊤K + λI)
−1K
⊤yKernel logistic regression
inspiration: the Bayes rule
D(x) = sign
f (x) + α0
=⇒ log
IP(Y =1|x)
IP(Y =−1|x)
= f (x) + α0
probabilities:
IP(Y = 1|x) = expf (x)+α0
1 + expf (x)+α0
IP(Y = −1|x) = 1
1 + expf (x)+α0
Rademacher distribution
L(xi
, yi
, f , α0) = IP(Y = 1|xi)
yi +1
2 (1 − IP(Y = 1|xi))
1−yi
2
penalized likelihood
J(f , α0) = −
Xn
i=1
log
L(xi
, yi
, f , α0)
+
λ
2
kf k
2
H
=
Xn
i=1
log
1 + exp−yi (f (xi )+α0)
+
λ
2
kf k
2
HKernel logistic regression (2)
(R)
min
f ∈H
1
2
kf k
2
H +
1
λ
Xn
i=1
log
1 + exp−ξi
with ξi = yi (f (xi) + α0), i = 1, n
Representer theorem
J(α, α0) = 1I⊤ log
1I + expdiag(y)Kα+α0y
+
λ
2
α
⊤Kα
gradient vector anf Hessian matrix:
∇αJ(α, α0) = K
y − (2p − 1I)
+ λKα
HαJ(α, α0) = Kdiag
p(1I − p)
K + λK
solve the problem using Newton iterations
α
new = α
old+
Kdiag
p(1I − p)
K + λK
−1
K
y − (2p − 1I) + λαLet’s summarize
pros
◮ Universality
◮ from H to IRn
using the representer theorem
◮ no (explicit) curse of dimensionality
splines O(n
3
) (can be reduced to O(n
2
))
logistic regression O(kn3
) (can be reduced to O(kn2
)
no scalability!
sparsity comes to the rescue!Roadmap
1 Kernel machines
Non sparse kernel machines
Sparse kernel machines: SVM
SVM: variations on a theme
Sparse kernel machines for regression: SVR
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1
1
Stéphane Canu (INSA Rouen - LITIS) April 26, 2014 11 / 38SVM in a RKHS: the separable case (no noise)
max
f ,b
m
with yi
f (xi) + b
≥ m
and kf k
2
H = 1
⇔
(
min
f ,b
1
2
kf k
2
H
with yi
f (xi) + b
≥ 1
3 ways to represent function f
f (x)
| {z }
in the RKHS H
=
X
d
j=1
wj φj(x)
| {z }
d features
=
Xn
i=1
αi yi k(x, xi)
| {z }
n data points
(
min
w,b
1
2
kwk
2
IRd =
1
2 w⊤w
with yi
w⊤φ(xi) + b
≥ 1
⇔
(
min
α,b
1
2
α
⊤Kα
with yi
α
⊤K(:, i) + b
≥ 1using relevant features...
a data point becomes a function x −→ k(x, •)Representer theorem for SVM
(
min
f ,b
1
2
kf k
2
H
with yi
f (xi) + b
≥ 1
Lagrangian
L(f , b, α) = 1
2
kf k
2
H −
Xn
i=1
αi
yi(f (xi) + b) − 1
α ≥ 0
optimility condition: ∇f L(f , b, α) = 0 ⇔ f (x) = Xn
i=1
αi yik(xi
, x)
Eliminate f from L:
kf k
2
H =
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj)
Xn
i=1
αi yif (xi) = Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj)
Q(b, α) = −
1
2
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj) −
Xn
i=1
αi
yib − 1
Dual formulation for SVM
the intermediate function
Q(b, α) = −
1
2
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj) − b
Xn
i=1
αi yi
+
Xn
i=1
αi
max
α
min
b
Q(b, α)
b can be seen as the Lagrange multiplier of the following (balanced)
constaint Pn
i=1 αi yi = 0 which is also the optimality KKT condition on b
Dual formulation
max
α∈IRn
−
1
2
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj) +Xn
i=1
αi
such that Xn
i=1
αi yi = 0
and 0 ≤ αi
, i = 1, nSVM dual formulation
Dual formulation
max
α∈IRn
−
1
2
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj) +Xn
i=1
αi
with Xn
i=1
αi yi = 0 and 0 ≤ αi
, i = 1, n
The dual formulation gives a quadratic program (QP)
(
min
α∈IRn
1
2
α
⊤Gα − I1
⊤α
with α
⊤y = 0 and 0 ≤ α
with Gij = yi yjk(xi
, xj)
with the linear kernel f (x) = Pn
i=1 αi yi(x
⊤xi) = Pd
j=1
βjxj
when d is small wrt. n primal may be interesting.the general case: C-SVM
Primal formulation
(P)
min
f ∈H,b,ξ∈IRn
1
2
kf k
2 +
C
p
Xn
i=1
ξ
p
i
such that yi
f (xi) + b
≥ 1 − ξi
, ξi ≥ 0, i = 1, n
C is the regularization path parameter (to be tuned)
p = 1 , L1 SVM
(
max
α∈IRn
−
1
2
α
⊤Gα + α
⊤1I
such that α
⊤y = 0 and 0 ≤ αi ≤ C i = 1, n
p = 2, L2 SVM
(
max
α∈IRn
−
1
2
α
⊤
G +
1
C
I
α + α
⊤1I
such that α
⊤y = 0 and 0 ≤ αi
i = 1, n
the regularization path: is the set of solutions α(C) when C variesData groups: illustration
f (x) = Xn
i=1
αi k(x, xi )
D(x) = sign
f (x) + b
useless data important data suspicious data
well classified support
α = 0 0 < α < C α = C
the regularization path: is the set of solutions α(C) when C variesThe importance of being support
f (x) = Xn
i=1
αi yik(xi
, x)
data
point α
constraint
value set
xi useless αi = 0 yi
f (xi) + b
> 1 I0
xi support 0 < αi < C yi
f (xi) + b
= 1 Iα
xi suspicious αi = C yi
f (xi) + b
< 1 IC
Table : When a data point is « support » it lies exactly on the margin.
here lies the efficiency of the algorithm (and its complexity)!
sparsity: αi = 0The active set method for SVM (1)
min
α∈IRn
1
2
α
⊤Gα − α
⊤1I
such that α
⊤y = 0 i = 1, n
and 0 ≤ αi
i = 1, n
Gα − 1I − β + by = 0
α
⊤y = 0
0 ≤ αi
i = 1, n
0 ≤ βi
i = 1, n
αiβi = 0 i = 1, n
αa
0
− − + b
1
1
0
β0
ya
y0
=
0
0
G α − − 1I β + b y = 0
Ga
Gi G0
G
⊤
i
(1) Gaαa − 1Ia + bya = 0
(2) Giαa − 1I0 − β0 + by0 = 0
1 solve (1) (find α together with b)
2 if α < 0 move it from Iα to I0
goto 1
3 else solve (2)
if β < 0 move it from I0 to Iα
goto 1The active set method for SVM (2)
Function (α, b, Iα) ←Solve_QP_Active_Set(G, y)
% Solve minα 1/2α⊤Gα − 1I⊤α
% s.t. 0 ≤ α and y⊤α = 0
(Iα, I0, α) ← initialization
while The_optimal_is_not_reached do
(α, b) ← solve
Gaαa − 1Ia + bya
y⊤
a αa
= 0
if ∃i ∈ Iα such that αi < 0 then
α ← projection( αa, α)
move i from Iα to I0
else if ∃j ∈ I0 such that βj < 0 then
use β0 = y0(Kiαa + b1I0) − 1I0
move j from I0 to Iα
else
The_optimal_is_not_reached ← FALSE
end if
end while
α
α
old
α
new
Projection step of the active
constraints algorithm
d = alpha - alphaold;
alpha = alpha + t * d;
Caching Strategy
Save space and computing time by computing only the needed parts of kernel matrix GTwo more ways to derivate SVM
Using the hinge loss
min
f ∈H,b∈IR
1
p
Xn
i=1
max
0, 1 − yi(f (xi) + b)
p
+
1
2C
kf k
2
Minimizing the distance between the convex hulls
min
α
ku − vk
2
H
with u(x) = X
{i|yi =1}
αik(xi
, x), v(x) = X
{i|yi =−1}
αik(xi
, x)
and X
{i|yi =1}
αi = 1,
X
{i|yi =−1}
αi = 1, 0 ≤ αi
i = 1, n
f (x) = 2
ku − vk
2
H
u(x) − v(x)
and b =
kuk
2
H − kvk
2
H
ku − vk
2
H
the regularization path: is the set of solutions α(C) when C variesRegularization path for SVM
min
f ∈H
Xn
i=1
max(1 − yif (xi), 0) + λo
2
kf k
2
H
Iα is the set of support vectors s.t. yi
f (xi) = 1;
∂f J(f ) = X
i∈Iα
γi yiK(xi
, •) −
X
i∈I1
yiK(xi
, •) + λo f (•) with γi ∈ ∂H(1) =] − 1, 0[Regularization path for SVM
min
f ∈H
Xn
i=1
max(1 − yif (xi), 0) + λo
2
kf k
2
H
Iα is the set of support vectors s.t. yi
f (xi) = 1;
∂f J(f ) = X
i∈Iα
γi yiK(xi
, •) −
X
i∈I1
yiK(xi
, •) + λo f (•) with γi ∈ ∂H(1) =] − 1, 0[
Let λn a value close enough to λo to keep the sets I0, Iα and IC unchanged
In particular at point xj ∈ Iα (fo (xj) = fn(xj) = yj) : ∂f J(f )(xj) = 0
P
i∈Iα
γioyiK(xi
, xj) = P
i∈I1
yiK(xi
P , xj) − λo yj
i∈Iα
γinyiK(xi
, xj) = P
i∈I1
yiK(xi
, xj) − λn yj
G(γn − γo) = (λo − λn)y avec Gij = yiK(xi
, xj)
γn = γo + (λo − λn)w
w = (G)
−1
yExample of regularization path
γi ∈] − 1, 0[ yiγi ∈] − 1, −1[ λ =
1
C
γi = −
1
C
αi
; performing together estimation and data selectionHow to choose ℓ and P to get linear regularization path?
the path is piecewise linear ⇔
one is piecewise quadratic
and the other is piecewise linear
the convex case [Rosset & Zhu, 07]
min
β∈IRd
ℓ(β) + λP(β)
1 piecewise linearity: lim
ε→0
β(λ + ε) − β(λ)
ε
= constant
2 optimality
∇ℓ(β(λ)) + λ∇P(β(λ)) = 0
∇ℓ(β(λ + ε)) + (λ + ε)∇P(β(λ + ε)) = 0
3 Taylor expension
lim
ε→0
β(λ + ε) − β(λ)
ε
=
∇2
ℓ(β(λ)) + λ∇2P(β(λ))−1∇P(β(λ))
∇2
ℓ(β(λ)) = constant and ∇2P(β(λ)) = 0
Lecture 4: kernels and associated functions
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
March 4, 2014Plan
1 Statistical learning and kernels
Kernel machines
Kernels
Kernel and hypothesis set
Functional differentiation in RKHSIntroducing non linearities through the feature map
SVM Val
f (x) = X
d
j=1
xjwj + b =
Xn
i=1
αi(x
⊤
i x) + b
t1
t2
∈ IR2
x1
x2
x3
x4
x5
linear in x ∈ IR5
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 3 / 37Introducing non linearities through the feature map
SVM Val
f (x) = X
d
j=1
xjwj + b =
Xn
i=1
αi(x
⊤
i x) + b
t1
t2
∈ IR2 φ(t) =
t1 x1
t
2
1
x2
t2 x3
t
2
2
x4
t1t2 x5
linear in x ∈ IR5
quadratic in t ∈ IR2
The feature map
φ : IR2 −→ IR5
t 7−→ φ(t) = x
x
⊤
i x = φ(ti)
⊤φ(t)
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 3 / 37Introducing non linearities through the feature map
A. Lorena & A. de Carvalho, Uma Introducão às Support Vector Machines, 2007
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 4 / 37Non linear case: dictionnary vs. kernel
in the non linear case: use a dictionary of functions
φj(x), j = 1, p with possibly p = ∞
for instance polynomials, wavelets...
f (x) = X
p
j=1
wjφj(x) with wj =
Xn
i=1
αi yiφj(xi)
so that
f (x) = Xn
i=1
αi yi
X
p
j=1
φj(xi)φj(x)
| {z }
k(xi
,x)
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 5 / 37Non linear case: dictionnary vs. kernel
in the non linear case: use a dictionary of functions
φj(x), j = 1, p with possibly p = ∞
for instance polynomials, wavelets...
f (x) = X
p
j=1
wjφj(x) with wj =
Xn
i=1
αi yiφj(xi)
so that
f (x) = Xn
i=1
αi yi
X
p
j=1
φj(xi)φj(x)
| {z }
k(xi
,x)
p ≥ n so what since k(xi
, x) = Pp
j=1
φj(xi)φj(x)
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 5 / 37closed form kernel: the quadratic kernel
The quadratic dictionary in IRd
:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,s1,s2, ...,sd ,s
2
1
,s
2
2
, ...,s
2
d
, ...,sisj
, ...
in this case
Φ(s)
⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s
2
1
t
2
1 + ... + s
2
d
t
2
d + ... + sisjtitj + ...
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37closed form kernel: the quadratic kernel
The quadratic dictionary in IRd
:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,s1,s2, ...,sd ,s
2
1
,s
2
2
, ...,s
2
d
, ...,sisj
, ...
in this case
Φ(s)
⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s
2
1
t
2
1 + ... + s
2
d
t
2
d + ... + sisjtitj + ...
The quadratic kenrel: s, t ∈ IRd
, k(s, t) =
s
⊤t + 1
2
= 1 + 2s
⊤t +
s
⊤t
2
computes the dot product of the reweighted dictionary:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,
√
2s1,
√
2s2, ..., √
2sd ,s
2
1
,s
2
2
, ...,s
2
d
, ..., √
2sisj
, ...
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37closed form kernel: the quadratic kernel
The quadratic dictionary in IRd
:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,s1,s2, ...,sd ,s
2
1
,s
2
2
, ...,s
2
d
, ...,sisj
, ...
in this case
Φ(s)
⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s
2
1
t
2
1 + ... + s
2
d
t
2
d + ... + sisjtitj + ...
The quadratic kenrel: s, t ∈ IRd
, k(s, t) =
s
⊤t + 1
2
= 1 + 2s
⊤t +
s
⊤t
2
computes the dot product of the reweighted dictionary:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,
√
2s1,
√
2s2, ..., √
2sd ,s
2
1
,s
2
2
, ...,s
2
d
, ..., √
2sisj
, ...
p = 1 + d +
d(d+1)
2 multiplications vs. d + 1
use kernel to save computration
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37kernel: features throught pairwise comparizons
x φ(x)
e.g. a text e.g. BOW
K
n examples
n examples
Φ
p features
n examples
k(xi
, xj) = X
p
j=1
φj(xi)φj(xj)
K The matrix of pairwise comparizons (O(n
2
))
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 7 / 37Kenrel machine
kernel as a dictionary
f (x) = Xn
i=1
αik(x, xi)
αi
influence of example i depends on yi
k(x, xi) the kernel do NOT depend on yi
Definition (Kernel)
Let X be a non empty set (the input space).
A kernel is a function k from X × X onto IR.
k : X × X 7−→ IR
s, t −→ k(s, t)Kenrel machine
kernel as a dictionary
f (x) = Xn
i=1
αik(x, xi)
αi
influence of example i depends on yi
k(x, xi) the kernel do NOT depend on yi
Definition (Kernel)
Let X be a non empty set (the input space).
A kernel is a function k from X × X onto IR.
k : X × X 7−→ IR
s, t −→ k(s, t)
semi-parametric version: given the family qj(x), j = 1, p
f (x) = Xn
i=1
αik(x, xi)+
X
p
j=1
βjqj(x)Kernel Machine
Definition (Kernel machines)
A
(xi
, yi)i=1,n
(x) = ψ
Xn
i=1
αik(x, xi) +X
p
j=1
βjqj(x)
α et β: parameters to be estimated.
Exemples
A(x) = Xn
i=1
αi(x − xi)
3
+ + β0 + β1x splines
A(x) = signX
i∈I
αi exp−
kx−xi
k
2
b +β0
SVM
IP(y|x) = 1
Z
expX
i∈I
αi1I{y=yi }(x
⊤xi + b)
2
exponential familyPlan
1 Statistical learning and kernels
Kernel machines
Kernels
Kernel and hypothesis set
Functional differentiation in RKHS
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 10 / 37In the beginning was the kernel...
Definition (Kernel)
a function of two variable k from X × X to IR
Definition (Positive kernel)
A kernel k(s,t) on X is said to be positive
if it is symetric: k(s,t) = k(t,s)
an if for any finite positive interger n:
∀{αi}i=1,n ∈ IR, ∀{xi}i=1,n ∈ X ,
Xn
i=1
Xn
j=1
αiαjk(xi
, xj) ≥ 0
it is strictly positive if for αi 6= 0
Xn
i=1
Xn
j=1
αiαjk(xi
, xj) > 0Examples of positive kernels
the linear kernel: s, t ∈ IRd
, k(s, t) = s
⊤t
symetric: s
⊤t = t
⊤s
positive: Xn
i=1
Xn
j=1
αiαj k(xi
, xj ) = Xn
i=1
Xn
j=1
αiαj x
⊤
i
xj
=
Xn
i=1
αi xi
!⊤
Xn
j=1
αj xj
=
Xn
i=1
αi xi
2
the product kernel: k(s, t) = g(s)g(t) for some g : IRd → IR,
symetric by construction
positive: Xn
i=1
Xn
j=1
αiαj k(xi
, xj ) = Xn
i=1
Xn
j=1
αiαj g(xi )g(xj )
=
Xn
i=1
αi g(xi )
!
Xn
j=1
αj g(xj )
=
Xn
i=1
αi g(xi )
!2
k is positive ⇔ (its square root exists) ⇔ k(s, t) = hφs, φti
J.P. Vert, 2006Example: finite kernel
let φj
, j = 1, p be a finite dictionary of functions from X to IR (polynomials,
wavelets...)
the feature map and linear kernel
feature map: Φ : X → IRp
s 7→ Φ =
φ1(s), ..., φp(s)
Linear kernel in the feature space:
k(s, t) =
φ1(s), ..., φp(s)
⊤
φ1(t), ..., φp(t)
e.g. the quadratic kernel: s, t ∈ IRd
, k(s, t) =
s
⊤t + b
2
feature map:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,
√
2s1, ..., √
2sj
, ..., √
2sd ,s
2
1
, ...,s
2
j
, ...,s
2
d
, ..., √
2sisj
, ...Positive definite Kernel (PDK) algebra (closure)
if k1(s,t) and k2(s,t) are two positive kernels
DPK are a convex cone: ∀a1 ∈ IR+
a1k1(s, t) + k2(s, t)
product kernel k1(s, t)k2(s, t)
proofs
by linearity:
Xn
i=1
Xn
j=1
αiαj
a1k1(i, j) + k2(i, j)
= a1
Xn
i=1
Xn
j=1
αiαj k1(i, j) +Xn
i=1
Xn
j=1
αiαj k2(i, j)
assuming ∃ψℓ s.t. k1(s, t) = X
ℓ
ψℓ(s)ψℓ(t)
Xn
i=1
Xn
j=1
αiαj k1(xi
, xj )k2(xi
, xj ) = Xn
i=1
Xn
j=1
αiαj
X
ℓ
ψℓ(xi )ψℓ(xj )k2(xi
, xj )
=
X
ℓ
Xn
i=1
Xn
j=1
αiψℓ(xi )
αjψℓ(xj
)
k2(xi
, xj )
N. Cristianini and J. Shawe Taylor, kernel methods for pattern analysis, 2004Kernel engineering: building PDK
for any polynomial with positive coef. φ from IR to IR
φ
k(s,t)
if Ψis a function from IRd
to IRd
k
Ψ(s), Ψ(t)
if ϕ from IRd
to IR+, is minimum in 0
k(s,t) = ϕ(s + t) − ϕ(s − t)
convolution of two positive kernels is a positive kernel
K1 ⋆ K2
Example : the Gaussian kernel is a PDK
exp(−ks − tk
2
) = exp(−ksk
2 − ktk
2 + 2s
⊤t)
= exp(−ksk
2
) exp(−ktk
2
) exp(2s
⊤t)
s
⊤t is a PDK and function exp as the limit of positive series expansion, so
exp(2s
⊤t) is a PDK
exp(−ksk
2
) exp(−ktk
2
) is a PDK as a product kernel
the product of two PDK is a PDK
O. Catoni, master lecture, 2005an attempt at classifying PD kernels
stationary kernels, (also called translation invariant):
k(s,t) = ks (s − t)
◮ radial (isotropic) gaussian: exp
− r
2
b
, r = ks − tk
◮ with compact support
c.s. Matèrn : max
0, 1 −
r
b
κ
r
b
kBk
r
b
, κ ≥ (d + 1)/2
◮ locally stationary kernels: k(s,t) = k1(s + t)ks (s − t)
K1 is a non negative function and K2 a radial kernel.
non stationary (projective kernels):
k(s,t) = kp(s
⊤t)
◮ separable kernels k(s,t) = k1(s)k2(t) with k1 and k2(t) PDK
in this case K = k1k
⊤
2 where k1 = (k1(x1), ..., k1(xn))
MG Genton, Classes of Kernels for Machine Learning: A Statistics Perspective - JMLR, 2002some examples of PD kernels...
type name k(s,t)
radial gaussian exp
−
r
2
b
, r = ks − tk
radial laplacian exp(−r/b)
radial rationnal 1 −
r
2
r
2+b
radial loc. gauss. max
0, 1 −
r
3b
d
exp(−
r
2
b
)
non stat. χ
2
exp(−r/b), r =
P
k
(sk−tk )
2
sk+tk
projective polynomial (s
⊤t)
p
projective affine (s
⊤t + b)
p
projective cosine s
⊤t/kskktk
projective correlation exp
s⊤t
kskktk − b
Most of the kernels depends on a quantity b called the bandwidththe importance of the Kernel bandwidth
for the affine Kernel: Bandwidth = biais
k(s, t) = (s
⊤t + b)
p = b
p
s
⊤t
b
+ 1
p
for the gaussian Kernel: Bandwidth = influence zone
k(s, t) = 1
Z
exp
−
ks − tk
2
2σ
2
b = 2σ
2the importance of the Kernel bandwidth
for the affine Kernel: Bandwidth = biais
k(s, t) = (s
⊤t + b)
p = b
p
s
⊤t
b
+ 1
p
for the gaussian Kernel: Bandwidth = influence zone
k(s, t) = 1
Z
exp
−
ks − tk
2
2σ
2
b = 2σ
2
Illustration
1 d density estimation b =
1
2
b = 2
+ data
(x1, x2, ..., xn)
– Parzen estimate
IPb(x) = 1
Z
Xn
i=1
k(x, xi)kernels for objects and structures
kernels on histograms and probability distributions
kernel on strings
spectral string kernel k(s, t) = P
u φu(s)φu(t)
using sub sequences
similarities by alignements k(s, t) = P
π
exp(β(s, t, π))
kernels on graphs
the pseudo inverse of the (regularized) graph Laplacian
L = D − A A is the adjency matrixD the degree matrix
diffusion kernels 1
Z(b)
expbL
subgraph kernel convolution (using random walks)
and kernels on HMM, automata, dynamical system...
Shawe-Taylor & Cristianini’s Book, 2004 ; JP Vert, 2006Multiple kernel
M. Cuturi, Positive Definite Kernels in Machine Learning, 2009Gram matrix
Definition (Gram matrix)
let k(s,t) be a positive kernel on X and (xi)i=1,n a sequence on X . the
Gram matrix is the square K of dimension n and of general term
Kij = k(xi
, xj).
practical trick to check kernel positivity:
K is positive ⇔ λi > 0 its eigenvalues are posivies: if Kui = λiui
; i = 1, n
u
⊤
i Kui = λiu
⊤
i ui = λi
matrix K is the one to be usedExamples of Gram matrices with different bandwidth
raw data Gram matrix for b = 2
b = .5 b = 10different point of view about kernels
kernel and scalar product
k(s, t) = hφ(s), φ(t)iH
kernel and distance
d(s, t)
2 = k(s, s) + k(t, t) − 2k(s, t)
kernel and covariance: a positive matrix is a covariance matrix
IP(f) = 1
Z
exp
−
1
2
(f − f0)
⊤K
−1
(f − f0)
if f0 = 0 and f = Kα, IP(α) = 1
Z
exp − 1
2
α⊤Kα
Kernel and regularity (green’s function)
k(s, t) = P
∗Pδs−t for some operator P (e.g. some differential)Let’s summarize
positive kernels
there is a lot of them
can be rather complex
2 classes: radial / projective
the bandwith matters (more than the kernel itself)
the Gram matrix summarize the pairwise comparizonsRoadmap
1 Statistical learning and kernels
Kernel machines
Kernels
Kernel and hypothesis set
Functional differentiation in RKHS
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 25 / 37From kernel to functions
H0 =
f
mf < ∞; fj ∈ IR;tj ∈ X , f (x) = Xmf
j=1
fjk(x,tj)
let define the bilinear form (g(x) = Pmg
i=1
gi k(x, si )) :
∀f , g ∈ H0, hf , giH0 =
Xmf
j=1
Xmg
i=1
fj gi k(tj
,si)
Evaluation functional: ∀x ∈ X
f (x) = hf (•), k(x, •)iH0
from k to H
for any positive kernel, a hypothesis set can be constructed H = H0 with
its metricRKHS
Definition (reproducing kernel Hibert space (RKHS))
a Hilbert space H embeded with the inner product h•, •iH is said to be
with reproducing kernel if it exists a positive kernel k such that
∀s ∈ X , k(•,s) ∈ H
∀f ∈ H, f (s) = hf (•), k(s, •)iH
Beware: f = f (•) is a function while f (s) is the real value of f at point s
positive kernel ⇔ RKHS
any function in H is pointwise defined
defines the inner product
it defines the regularity (smoothness) of the hypothesis set
Exercice: let f (•) = Pn
i=1 αik(•, xi). Show that kf k
2
H = α
⊤KαOther kernels (what really matters)
finite kernels
k(s, t) =
φ1(s), ..., φp(s)
⊤
φ1(t), ..., φp(t)
Mercer kernels
positive on a compact set ⇔ k(s, t) = Pp
j=1
λjφj(s)φj(t)
positive kernels
positive semi-definite
conditionnaly positive (for some functions pj)
∀{xi}i=1,n, ∀αi
,
Xn
i
αipj(xi) = 0; j = 1, p,
Xn
i=1
Xn
j=1
αiαjk(xi
, xj) ≥ 0
symetric non positive
k(s, t) = tanh(s
⊤t + α0)
non symetric – non positive
the key property: ∇Jt
(f ) = k(t, .) holds
C. Ong et al, ICML , 2004The kernel map
observation: x = (x1, . . . , xj
, . . . , xd )
⊤
◮ f (x) = w⊤x = hw, xi
IRd
feature map: x −→ Φ(x) = (φ1(x), . . . , φj(x), . . . , φp(x))⊤
◮ Φ : IRd
7−→ IRp
◮ f (x) = w⊤Φ(x) = hw, Φ(x)iIRp
kernel dictionary: x −→ k(x) = (k(x, x1), . . . , k(x, xi), . . . , k(x, xn))⊤
◮ k : IRd
7−→ IRn
◮ f (x) = Xn
i=1
αik(x, xi) = hα, k(x)iIRn
kernel map: x −→ k(•, x) p = ∞
◮ f (x) = hf (•),K(•, x)iHRoadmap
1 Statistical learning and kernels
Kernel machines
Kernels
Kernel and hypothesis set
Functional differentiation in RKHSFunctional differentiation in RKHS
Let J be a functional
J : H → IR
f 7→ J(f )
examples: J1(f ) = kf k
2
H, J2(f ) = f (x),
J directional derivative in direction g at point f
dJ(f , g) = lim
ε → 0
J(f + εg) − J(f )
ε
Gradient ∇J (f )
∇J : H → H
f 7→ ∇J (f )
if dJ(f , g) = h∇J (f ), giH
exercise: find out ∇J1
(f ) et ∇J2
(f )Hint
dJ(f , g) = dJ(f + εg)
dε
ε=0Solution
dJ1(f , g) = lim
ε → 0
kf +εgk
2−kf k
2
ε
=
lim
ε → 0
kf k
2+ε
2kgk
2+2εhf ,giH−kf k
2
ε
=
lim
ε → 0
εkgk
2 + 2hf , giH
= h2f , giH
⇔ ∇J1
(f ) = 2f
dJ2(f , g) = lim
ε → 0
f (x)+εg(x)−f (x)
ε
= g(x)
= hk(x, .), giH
⇔ ∇J2
(f ) = k(x, .)Solution
dJ1(f , g) = lim
ε → 0
kf +εgk
2−kf k
2
ε
=
lim
ε → 0
kf k
2+ε
2kgk
2+2εhf ,giH−kf k
2
ε
=
lim
ε → 0
εkgk
2 + 2hf , giH
= h2f , giH
⇔ ∇J1
(f ) = 2f
dJ2(f , g) = lim
ε → 0
f (x)+εg(x)−f (x)
ε
= g(x)
= hk(x, .), giH
⇔ ∇J2
(f ) = k(x, .)
Minimize
f ∈H
J(f ) ⇔ ∀g ∈ H, dJ(f , g) = 0 ⇔ ∇J (f ) = 0Subdifferential in a RKHS H
Definition (Sub gradient)
a subgradient of J : H 7−→ IR at f0 is any function g ∈ H such that
∀f ∈ V(f0), J(f ) ≥ J(f0) + hg,(f − f0)iH
Definition (Subdifferential)
∂J(f ), the subdifferential of J at f is the set of all subgradients of J at f .
H = IR J3(x) = |x| ∂J3(0) = {g ∈ IR | − 1 < g < 1}
H = IR J4(x) = max(0, 1 − x) ∂J4(1) = {g ∈ IR | − 1 < g < 0}
Theorem (Chain rule for linear Subdifferential)
Let T be a linear operator H 7−→ IR and ϕ a function from IR to IR
If J(f ) = ϕ(Tf )
Then ∂J(f ) = {T
∗g | g ∈ ∂ϕ(Tf )}, where T
∗ denotes T’s adjoint operatorexample of subdifferential in H
evaluation operator and its adjoint
T : H −→ IRn
f 7−→ Tf = (f (x1), . . . , f (xn))⊤
T
∗
: IRn −→ H
α 7−→ T
∗α
build the adjoint hTf , αiIRn = hf ,T
∗αiHexample of subdifferential in H
evaluation operator and its adjoint
T : H −→ IRn
f 7−→ Tf = (f (x1), . . . , f (xn))⊤
T
∗
: IRn −→ H
α 7−→ T
∗α =
Xn
i=1
αik(•, xi)
build the adjoint hTf , αiIRn = hf ,T
∗αiH
hTf , αiIRn =
Xn
i=1
f (xi)αi
=
Xn
i=1
hf (•), k(•, xi)iHαi
= hf (•),
Xn
i=1
αik(•, xi)
| {z }
T∗α
iHexample of subdifferential in H
evaluation operator and its adjoint
T : H −→ IRn
f 7−→ Tf = (f (x1), . . . , f (xn))⊤
T
∗
: IRn −→ H
α 7−→ T
∗α =
Xn
i=1
αik(•, xi)
build the adjoint hTf , αiIRn = hf ,T
∗αiH
hTf , αiIRn =
Xn
i=1
f (xi)αi
=
Xn
i=1
hf (•), k(•, xi)iHαi
= hf (•),
Xn
i=1
αik(•, xi)
| {z }
T∗α
iH
TT∗
: IRn −→ IRn
α 7−→ TT∗α =
Xn
j=1
αjk(xj
, xi)
= Kαexample of subdifferential in H
evaluation operator and its adjoint
T : H −→ IRn
f 7−→ Tf = (f (x1), . . . , f (xn))⊤
T
∗
: IRn −→ H
α 7−→ T
∗α =
Xn
i=1
αik(•, xi)
build the adjoint hTf , αiIRn = hf ,T
∗αiH
hTf , αiIRn =
Xn
i=1
f (xi)αi
=
Xn
i=1
hf (•), k(•, xi)iHαi
= hf (•),
Xn
i=1
αik(•, xi)
| {z }
T∗α
iH
TT∗
: IRn −→ IRn
α 7−→ TT∗α =
Xn
j=1
αjk(xj
, xi)
= Kα
Example of subdifferentials
x given J5(f ) = |f (x)| ∂J5(f0) =
g(•) = αk(•, x) ; −1 < α < 1
x given J6(f ) = max(0, 1 − f (x)) ∂J6(f1) =
g(•) = αk(•, x) ; −1 < α < 0
Optimal conditions
Theorem (Fermat optimality criterion)
When J(f ) is convex, f
⋆
is a stationary point of problem min
f ∈H
J(f )
If and only if 0 ∈ ∂J(f
⋆
)
f
f ⋆
⋆
∂J(f
⋆
)
exercice: find for a given y ∈ IR (from Obozinski)
min
x∈IR
1
2
(x − y)
2 + λ|x|Let’s summarize
positive kernels ⇔ RKHS = H ⇔ regularity kf k
2
H
the key property: ∇Jt
(f ) = k(t, .) holds not only for positive kernels
f (xi) exists (pointwise defined functions)
universal consistency in RKHS
the Gram matrix summarize the pairwise comparizons
Lecture 3: Linear SVM with slack variables
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
March 23, 2014The non separable case
−1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 3
−1
−0.5
0
0.5
1
1.5
2
2.5Road map
1 Linear SVM
The non separable case
The C (L1) SVM
The L2 SVM and others “variations on a theme”
The hinge loss
0 0
Slack jThe non separable case: a bi criteria optimization problem
Modeling potential errors: introducing slack variables ξi
(xi
, yi)
no error: yi(w⊤xi + b) ≥ 1 ⇒ ξi = 0
error: ξi = 1 − yi(w⊤xi + b) > 0
0 0
Slack j
min
w,b,ξ
1
2
kwk
2
min
w,b,ξ
C
p
Xn
i=1
ξ
p
i
with yi(w⊤xi + b) ≥ 1 − ξi
ξi ≥ 0 i = 1, n
Our hope: almost all ξi = 0Bi criteria optimization and dominance
L(w) = 1
p
Xn
i=1
ξ
p
i
P(w) = kwk
2
Dominance
w1 dominates w2
if L(w1) ≤ L(w2) and P(w1) ≤ P(w2)
Pareto front (or Pareto Efficient Frontier)
it is the set of all nondominated solutions
P(w) = || w ||2
L(w) = 1/p Y
n
i=1
j
p
i
admisible set
Pareto’s front
w = 0
Admissible solution
Figure: dominated point (red),
non dominated point (purple)
and Pareto front (blue).
Pareto frontier
⇔
Regularization path
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 5 / 293 equivalent formulations to reach Pareto’s front
min
w∈IRd
1
p
Xn
i=1
ξ
p
i + λ kwk
2
it works for CONVEX criteria!
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 293 equivalent formulations to reach Pareto’s front
min
w∈IRd
1
p
Xn
i=1
ξ
p
i + λ kwk
2
min
w
1
p
Xn
i=1
ξ
p
i
with kwk
2 ≤ k
it works for CONVEX criteria!
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 293 equivalent formulations to reach Pareto’s front
min
w∈IRd
1
p
Xn
i=1
ξ
p
i + λ kwk
2
min
w
1
p
Xn
i=1
ξ
p
i
with kwk
2 ≤ k
min
w
kwk
2
with 1
p
Xn
i=1
ξ
p
i ≤ k
′
it works for CONVEX criteria!
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 29The non separable case
Modeling potential errors: introducing slack variables ξi
(xi
, yi)
no error: yi(w⊤xi + b) ≥ 1 ⇒ ξi = 0
error: ξi = 1 − yi(w⊤xi + b) > 0
Minimizing also the slack (the error), for a given C > 0
min
w,b,ξ
1
2
kwk
2 +
C
p
Xn
i=1
ξ
p
i
with yi(w⊤xi + b) ≥ 1 − ξi
i = 1, n
ξi ≥ 0 i = 1, n
Looking for the saddle point of the lagrangian with the Lagrange
multipliers αi ≥ 0 and βi ≥ 0
L(w, b, α, β) = 1
2
kwk
2 +
C
p
Xn
i=1
ξ
p
i −
Xn
i=1
αi
yi(w
⊤xi + b) − 1 + ξi
−
Xn
i=1
βi ξiThe KKT(p = 1)
L(w, b, α, β) = 1
2
kwk
2 +
C
p
Xn
i=1
ξ
p
i −
Xn
i=1
αi
yi(w
⊤xi + b) − 1 + ξi
−
Xn
i=1
βi ξi
stationarity w −
Xn
i=1
αi yixi = 0 and Xn
i=1
αi yi = 0
C − αi − βi = 0 i = 1, . . . , n
primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n
ξi ≥ 0 i = 1, . . . , n
dual admissibility αi ≥ 0 i = 1, . . . , n
βi ≥ 0 i = 1, . . . , n
complementarity αi
yi(w⊤xi + b) − 1 + ξi
= 0 i = 1, . . . , n
βi ξi = 0 i = 1, . . . , n
Let’s eliminate β!KKT (p = 1)
stationarity w −
Xn
i=1
αi yixi = 0 and Xn
i=1
αi yi = 0
primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n
ξi ≥ 0 i = 1, . . . , n;
dual admissibility αi ≥ 0 i = 1, . . . , n
C − αi ≥ 0 i = 1, . . . , n;
complementarity αi
yi(w⊤xi + b) − 1 + ξi
= 0 i = 1, . . . , n
(C − αi) ξi = 0 i = 1, . . . , n
sets I0 IA IC
αi 0 0 < α < C C
βi C C − α 0
ξi 0 0 1 − yi(w⊤xi + b)
yi(w⊤xi + b) > 1 yi(w⊤xi + b) = 1 yi(w⊤xi + b) < 1
useless usefull (support vec) suspiciousThe importance of being support
−2 −1 0 1 2 3 4
−2
−1
0
1
2
3
4
−2 −1 0 1 2 3 4
−2
−1
0
1
2
3
4
.
data
point α
constraint
value set
xi useless αi = 0 yi
w⊤xi + b
> 1 I0
xi support 0 < αi < C yi
w⊤xi + b
= 1 Iα
xi suspicious αi = C yi
w⊤xi + b
< 1 IC
Table: When a data point is « support » it lies exactly on the margin.
here lies the efficiency of the algorithm (and its complexity)!
sparsity: αi = 0Optimality conditions (p = 1)
L(w, b, α, β) = 1
2
kwk
2 + C
Xn
i=1
ξi −
Xn
i=1
αi
yi(w
⊤xi + b) − 1 + ξi
−
Xn
i=1
βi ξi
Computing the gradients:
∇wL(w, b, α) = w −
Xn
i=1
αi yixi
∂L(w, b, α)
∂b
=
Xn
i=1
αi yi
∇ξiL(w, b, α) = C − αi − βi
no change for w and b
βi ≥ 0 and C − αi − βi = 0 ⇒ αi ≤ C
The dual formulation:
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi ≤ C i = 1, nSVM primal vs. dual
Primal
min
w,b,ξ∈IRn
1
2
kwk
2 + C
Xn
i=1
ξi
with yi(w⊤xi + b) ≥ 1 − ξi
ξi ≥ 0 i = 1, n
d + n + 1 unknown
2n constraints
classical QP
to be used when n is too
large to build G
Dual
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi ≤ C i = 1, n
n unknown
G Gram matrix (pairwise
influence matrix)
2n box constraints
easy to solve
to be used when n is not too
largeThe smallest C
C small ⇒ all the points are in IC : αi = C
−2 −1 0 1 2 3 4
−3
−2
−1
0
1
2
3
4
5
6
−1 ≤ fj = C
Xn
i=1
yi(x
⊤
i xj)+b ≤ 1
fM = max(f ) fm = min(f )
Cmax =
2
fM − fmRoad map
1 Linear SVM
The non separable case
The C (L1) SVM
The L2 SVM and others “variations on a theme”
The hinge loss
0 0
Slack jL2 SVM: optimality conditions (p = 2)
L(w, b, α, β) = 1
2
kwk
2 +
C
2
Xn
i=1
ξ
2
i −
Xn
i=1
αi
yi(w
⊤xi + b) − 1 + ξi
Computing the gradients:
∇wL(w, b, α) = w −
Xn
i=1
αi yixi
∂L(w, b, α)
∂b
=
Xn
i=1
αi yi
∇ξiL(w, b, α) = Cξi − αi
no need of the positivity constraint on ξi
no change for w and b
Cξi − αi = 0 ⇒ C
2
Pn
i=1
ξ
2
i −
Pn
i=1 αi ξi = −
1
2C
Pn
i=1 α
2
i
The dual formulation:
min
α∈IRn
1
2
α
⊤(G +
1
C
I)α − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, nSVM primal vs. dual
Primal
min
w,b,ξ∈IRn
1
2
kwk
2 +
C
2
Xn
i=1
ξ
2
i
with yi(w⊤xi + b) ≥ 1 − ξi
d + n + 1 unknown
n constraints
classical QP
to be used when n is too
large to build G
Dual
min
α∈IRn
1
2
α
⊤(G +
1
C
I)α − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
n unknown
G Gram matrix is regularized
n box constraints
easy to solve
to be used when n is not too
largeOne more variant: the ν SVM
max
v,a
m
with min
i=1,n
|v
⊤xi + a| ≥ m
kvk
2 = k
min
v,a
1
2
kvk
2 − ν m +
Pn
i=1
ξi
with yi(v
⊤xi + a) ≥ m − ξi
ξi ≥ 0, m ≥ 0
The dual formulation:
min
α∈IRn
1
2
α
⊤Gα
with y
⊤α = 0
and 0 ≤ αi ≤ 1/n i = 1, n
m ≤ e
⊤αThe convex hull formulation
Minimizing the distance between the convex hulls
min
α
ku − vk
with u =
X
{i|yi =1}
αixi
, v =
X
{i|yi =−1}
αixi
and X
{i|yi =1}
αi = 1,
X
{i|yi =−1}
αi = 1, 0 ≤ αi ≤ C i = 1, n
w
⊤x =
2
ku − vk
u
⊤x − v
⊤x
and b =
kuk − kvk
ku − vkSVM with non symetric costs
Problem in the primal (p = 1)
min
w,b,ξ∈IRn
1
2
kwk
2 + C
+ X
{i|yi =1}
ξi + C
− X
{i|yi =−1}
ξi
with yi
w⊤xi + b
≥ 1 − ξi
, ξi ≥ 0, i = 1, n
for p = 1 the dual formulation is the following:
(
max
α∈IRn
−
1
2
α
⊤Gα + α
⊤e
with α
⊤y = 0 and 0 ≤ αi ≤ C
+ or C
− i = 1, n
It generalizes to any cost (useful for unbalanced data)Road map
1 Linear SVM
The non separable case
The C (L1) SVM
The L2 SVM and others “variations on a theme”
The hinge loss
0 0
Slack jEliminating the slack but not the possible mistakes
min
w,b,ξ∈IRn
1
2
kwk
2 + C
Xn
i=1
ξi
with yi(w⊤xi + b) ≥ 1 − ξi
ξi ≥ 0 i = 1, n
Introducing the hinge loss
ξi = max
1 − yi(w
⊤xi + b), 0
min
w,b
1
2
kwk
2 + C
Xn
i=1
max
0, 1 − yi(w
⊤xi + b)
Back to d + 1 variables, but this is no longer an explicit QPOoops! the notion of sub differential
Definition (Sub gradient)
a subgradient of J : IRd
7−→ IR at f0 is any vector g ∈ IRd
such that
∀f ∈ V(f0), J(f ) ≥ J(f0) + g
⊤(f − f0)
Definition (Subdifferential)
∂J(f ), the subdifferential of J at f is the set of all subgradients of J at f .
IRd = IR J3(x) = |x| ∂J3(0) = {g ∈ IR | − 1 < g < 1}
IRd = IR J4(x) = max(0, 1 − x) ∂J4(1) = {g ∈ IR | − 1 < g < 0}Regularization path for SVM
min
w
Xn
i=1
max(1 − yiw
⊤xi
, 0) + λo
2
kwk
2
Iα is the set of support vectors s.t. yiw⊤xi = 1;
∂wJ(w) = X
i∈Iα
αi yixi −
X
i∈I1
yixi + λo w with αi ∈ ∂H(1) =] − 1, 0[Regularization path for SVM
min
w
Xn
i=1
max(1 − yiw
⊤xi
, 0) + λo
2
kwk
2
Iα is the set of support vectors s.t. yiw⊤xi = 1;
∂wJ(w) = X
i∈Iα
αi yixi −
X
i∈I1
yixi + λo w with αi ∈ ∂H(1) =] − 1, 0[
Let λn a value close enough to λo to keep the sets I0, Iα and IC unchanged
In particular at point xj ∈ Iα (w
⊤
o xj = w
⊤
n xj = yj) : ∂wJ(w)(xj) = 0
P
i∈Iα
αioyix
⊤
i
xj =
P
i∈I1
yix
⊤
i
P
xj − λo yj
i∈Iα
αinyix
⊤
i
xj =
P
i∈I1
yix
⊤
i
xj − λn yj
G(αn − αo) = (λo − λn)y with Gij = yix
⊤
i
xj
αn = αo + (λo − λn)d
d = (G)
−1
ySolving SVM in the primal
min
w,b
1
2
kwk
2 + C
Xn
i=1
max
0, 1 − yi(w
⊤xi + b)
What for: Yahoo!, Twiter, Amazon,
Google (Sibyl), Facebook. . . : Big data
Data-intensive machine learning systems
"on terascale datasets, with trillions of
features,1 billions of training examples
and millions of parameters in an hour
using a cluster of 1000 machines"
How: hybrid online+batch approach adaptive gradient updates (stochastic
gradient descent)
Code available: http://olivier.chapelle.cc/primal/Solving SVM in the primal
J(w, b) = 1
2
kwk
2
2 +
C
2
Xn
i=1
max
1 − yi(w
⊤xi + b), 0
2
=
1
2
kwk
2
2 +
C
2
ξ
⊤ξ
with Xn
ξi = max
1 − yi(w
⊤xi + b), 0
∇wJ(w, b) = w − C
Xn
i=1
max
1 − yi(w
⊤xi + b), 0
yixi
= w − C (diag(y)X)
⊤ξ
HwJ(w, b) = Id + C
Xn
i∈/I0
xix
⊤
i
Optimal step size ρ in the Newton direction:
w
new = w
old − ρ H
−1
w ∇wJ(w
old
, b
old)The hinge and other loss
Square hinge: (huber/hinge) and Lasso SVM
min w,b
k
w
k
1
+
C
Xni=1
max
1
−
yi
(
w
⊤
x
i
+
b
)
,
0
p
Penalized Logistic regression (Maxent)
min w,b
k
w
k
22
−
C
Xni=1
log
1
+ exp
−
2
yi
(
w
⊤
x
i
+
b
)
The exponential loss (commonly used in boosting)
min w,b
k
w
k
22
+
C
Xni=1
exp
−
yi
(
w
⊤
x
i
+
b
)
The sigmoid loss
min w,b
k
w
k
22
−
C
Xni=1
tanh
yi
(
w
⊤
x
i
+
b
)
−
1
0
1
01
yf(x)
classification loss
0/1 loss
hinge
hinge
2
logistic
exponential
sigmoidChoosing the data fitting term and the penalty
For a given C: controling the tradeoff between loss and penalty
min
w,b
pen(w) + C
Xn
i=1
Loss
yi(w
⊤xi + b)
For a long list of possible penalties:
A Antoniadis, I Gijbels, M Nikolova, Penalized likelihood regression for
generalized linear models with non-quadratic penalties, 2011.
A tentative of classification:
convex/non convex
differentiable/non differentiable
What are we looking for
consistency
efficiency −→ sparcityConclusion: variables or data point?
seeking for a universal learning algorithm
◮ no model for IP(x, y)
the linear case: data is separable
◮ the non separable case
double objective: minimizing the error together with the regularity of
the solution
◮ multi objective optimisation
dualiy : variable – example
◮ use the primal when d < n (in the liner case) or when matrix G is hard
to compute
◮ otherwise use the dual
universality = nonlinearity
◮ kernelsBibliography
C. Cortes & V. Vapnik, Support-vector networks, Machine learning, 1995
J. Bi & V. Vapnik, Learning with rigorous SVM, COLT 2003
T. Hastie, S. Rosset, R. Tibshirani, J. Zhu, The entire regularization path
for the support vector machine, JMLR, 2004
P. Bartlett, M. Jordan, J. McAuliffe, Convexity, classification, and risk
bounds, JASA, 2006.
A. Antoniadis, I. Gijbels, M. Nikolova, Penalized likelihood regression for
generalized linear models with non-quadratic penalties, 2011.
A Agarwal, O Chapelle, M Dudík, J Langford, A reliable effective terascale
linear learning system, 2011.
informatik.unibas.ch/fileadmin/Lectures/FS2013/CS331/Slides/my_SVM_without_b.pdf
http://ttic.uchicago.edu/~gregory/courses/ml2010/lectures/lect12.pdf
http://olivier.chapelle.cc/primal/
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 29 / 29
Lecture 2: Linear SVM in the Dual
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
March 12, 2014Road map
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dual
Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Linear SVM: the problem
Linear SVM are the solution of the following problem (called primal)
Let {(xi
, yi); i = 1 : n} be a set of labelled data with
xi ∈ IRd
, yi ∈ {1, −1}.
A support vector machine (SVM) is a linear classifier associated with the
following decision function: D(x) = sign
w⊤x + b
where w ∈ IRd
and
b ∈ IR a given thought the solution of the following problem:
(
min
w,b
1
2
kwk
2 =
1
2w⊤w
with yi(w⊤xi + b) ≥ 1 i = 1, n
This is a quadratic program (QP):
(
min
z
1
2
z
⊤Az − d
⊤z
with Bz ≤ e
z = (w, b)⊤, d = (0, . . . , 0)⊤, A =
I 0
0 0
, B = −[diag(y)X, y] et e = −(1, . . . , 1)⊤Road map
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dualA simple example (to begin with)
(
min
x1,x2
J(x) = (x1 − a)
2 + (x2 − b)
2
with
x
x
⋆
∇xJ(x)
iso cost lines: J(x) = kA simple example (to begin with)
(
min
x1,x2
J(x) = (x1 − a)
2 + (x2 − b)
2
with H(x) = α(x1 − c)
2 + β(x2 − d)
2 + γx1x2 − 1
Ω = {x|H(x) = 0}
x
x
⋆
∇xJ(x)
∆x
∇xH(x)
tangent hyperplane
iso cost lines: J(x) = k
∇xH(x) = λ ∇xJ(x)The only one equality constraint case
(
min
x
J(x) J(x + εd) ≈ J(x) + ε∇xJ(x)
⊤d
with H(x) = 0 H(x + εd) ≈ H(x) + ε∇xH(x)
⊤d
Loss J : d is a descent direction if it exists ε0 ∈ IR such that
∀ε ∈ IR, 0 < ε ≤ ε0
J(x + εd) < J(x) ⇒ ∇xJ(x)
⊤d < 0
constraint H : d is a feasible descent direction if it exists ε0 ∈ IR such
that ∀ε ∈ IR, 0 < ε ≤ ε0
H(x + εd) = 0 ⇒ ∇xH(x)
⊤d = 0
If at x
⋆
, vectors ∇xJ(x
⋆
) and ∇xH(x
⋆
) are collinear there is no feasible
descent direction d. Therefore, x
⋆
is a local solution of the problem.Lagrange multipliers
Assume J and functions Hi are continuously differentials (and independent)
P =
min
x∈IRn
J(x)
avec H1(x) = 0
et H2(x) = 0
. . .
Hp(x) = 0Lagrange multipliers
Assume J and functions Hi are continuously differentials (and independent)
P =
min
x∈IRn
J(x)
avec H1(x) = 0 λ1
et H2(x) = 0 λ2
. . .
Hp(x) = 0 λp
each constraint is associated with λi
: the Lagrange multiplier.Lagrange multipliers
Assume J and functions Hi are continuously differentials (and independent)
P =
min
x∈IRn
J(x)
avec H1(x) = 0 λ1
et H2(x) = 0 λ2
. . .
Hp(x) = 0 λp
each constraint is associated with λi
: the Lagrange multiplier.
Theorem (First order optimality conditions)
for x
⋆ being a local minima of P, it is necessary that:
∇x J(x
⋆
) +X
p
i=1
λi∇xHi(x
⋆
) = 0 and Hi(x
⋆
) = 0, i = 1, pPlan
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dual
Stéphane Canu (INSA Rouen - LITIS) March 12, 2014 8 / 32The only one inequality constraint case
(
min
x
J(x) J(x + εd) ≈ J(x) + ε∇xJ(x)
⊤d
with G(x) ≤ 0 G(x + εd) ≈ G(x) + ε∇xG(x)
⊤d
cost J : d is a descent direction if it exists ε0 ∈ IR such that
∀ε ∈ IR, 0 < ε ≤ ε0
J(x + εd) < J(x) ⇒ ∇xJ(x)
⊤d < 0
constraint G : d is a feasible descent direction if it exists ε0 ∈ IR such that
∀ε ∈ IR, 0 < ε ≤ ε0
G(x + εd) ≤ 0 ⇒
G(x) < 0 : no limit here on d
G(x) = 0 : ∇xG(x)
⊤d ≤ 0
Two possibilities
If x
⋆
lies at the limit of the feasible domain (G(x
⋆
) = 0) and if vectors
∇xJ(x
⋆
) and ∇xG(x
⋆
) are collinear and in opposite directions, there is no
feasible descent direction d at that point. Therefore, x
⋆
is a local solution
of the problem... Or if ∇xJ(x
⋆
) = 0Two possibilities for optimality
∇xJ(x
⋆
) = −µ ∇xG(x
⋆
) and µ > 0; G(x
⋆
) = 0
or
∇xJ(x
⋆
) = 0 and µ = 0; G(x
⋆
) < 0
This alternative is summarized in the so called complementarity condition:
µ G(x
⋆
) = 0
µ = 0
G(x
⋆
) < 0
G(x
⋆
) = 0
µ > 0First order optimality condition (1)
problem P =
min
x∈IRn
J(x)
with hj(x) = 0 j = 1, . . . , p
and gi(x) ≤ 0 i = 1, . . . , q
Definition: Karush, Kuhn and Tucker (KKT) conditions
stationarity ∇J(x
⋆
) +X
p
j=1
λj∇hj(x
⋆
) +X
q
i=1
µi∇gi(x
⋆
) = 0
primal admissibility hj(x
⋆
) = 0 j = 1, . . . , p
gi(x
⋆
) ≤ 0 i = 1, . . . , q
dual admissibility µi ≥ 0 i = 1, . . . , q
complementarity µigi(x
⋆
) = 0 i = 1, . . . , q
λj and µi are called the Lagrange multipliers of problem PFirst order optimality condition (2)
Theorem (12.1 Nocedal & Wright pp 321)
If a vector x
⋆
is a stationary point of problem P
Then there existsa Lagrange multipliers such that
x
⋆
, {λj}j=1:p, {µi}i=1:q
fulfill KKT conditions
a
under some conditions e.g. linear independence constraint qualification
If the problem is convex, then a stationary point is the solution of the
problem
A quadratic program (QP) is convex when. . .
(QP)
(
min
z
1
2
z
⊤Az − d
⊤z
with Bz ≤ e
. . . when matrix A is positive definiteKKT condition - Lagrangian (3)
problem P =
min
x∈IRn
J(x)
with hj(x) = 0 j = 1, . . . , p
and gi(x) ≤ 0 i = 1, . . . , q
Definition: Lagrangian
The lagrangian of problem P is the following function:
L(x, λ, µ) = J(x) +X
p
j=1
λjhj(x) +X
q
i=1
µigi(x)
The importance of being a lagrangian
the stationarity condition can be written: ∇L(x
⋆
, λ, µ) = 0
the lagrangian saddle point max
λ,µ
min
x
L(x, λ, µ)
Primal variables: x and dual variables λ, µ (the Lagrange multipliers)Duality – definitions (1)
Primal and (Lagrange) dual problems
P =
min
x∈IRn
J(x)
with hj(x) = 0 j = 1, p
and gi(x) ≤ 0 i = 1, q
D =
(
max
λ∈IRp,µ∈IRq
Q(λ, µ)
with µj ≥ 0 j = 1, q
Dual objective function:
Q(λ, µ) = inf
x
L(x, λ, µ)
= inf
x
J(x) +X
p
j=1
λjhj(x) +X
q
i=1
µigi(x)
Wolf dual problem
W =
max
x,λ∈IRp,µ∈IRq
L(x, λ, µ)
with µj ≥ 0 j = 1, q
and ∇J(x
⋆
) +X
p
j=1
λj∇hj(x
⋆
) +X
q
i=1
µi∇gi(x
⋆
) = 0Duality – theorems (2)
Theorem (12.12, 12.13 and 12.14 Nocedal & Wright pp 346)
If f , g and h are convex and continuously differentiablea
, then the solution
of the dual problem is the same as the solution of the primal
a
under some conditions e.g. linear independence constraint qualification
(λ
⋆
, µ⋆
) = solution of problem D
x
⋆ = arg min
x
L(x, λ⋆
, µ⋆
)
Q(λ
⋆
, µ⋆
) = arg min
x
L(x, λ⋆
, µ⋆
) = L(x
⋆
, λ⋆
, µ⋆
)
= J(x
⋆
) + λ
⋆H(x
⋆
) + µ
⋆G(x
⋆
) = J(x
⋆
)
and for any feasible point x
Q(λ, µ) ≤ J(x) → 0 ≤ J(x) − Q(λ, µ)
The duality gap is the difference between the primal and dual cost functionsRoad map
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dual
Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Linear SVM dual formulation - The lagrangian
(
min
w,b
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1 i = 1, n
Looking for the lagrangian saddle point max
α
min
w,b
L(w, b, α) with so called
lagrange multipliers αi ≥ 0
L(w, b, α) = 1
2
kwk
2 −
Xn
i=1
αi
yi(w
⊤xi + b) − 1
αi represents the influence of constraint thus the influence of the training
example (xi
, yi)Stationarity conditions
L(w, b, α) = 1
2
kwk
2 −
Xn
i=1
αi
yi(w
⊤xi + b) − 1
Computing the gradients:
∇wL(w, b, α) = w −
Xn
i=1
αi yixi
∂L(w, b, α)
∂b
=
Pn
i=1 αi yi
we have the following optimality conditions
∇wL(w, b, α) = 0 ⇒ w =
Xn
i=1
αi yixi
∂L(w, b, α)
∂b
= 0 ⇒
Xn
i=1
αi yi = 0KKT conditions for SVM
stationarity w −
Xn
i=1
αi yixi = 0 and Xn
i=1
αi yi = 0
primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n
dual admissibility αi ≥ 0 i = 1, . . . , n
complementarity αi
yi(w⊤xi + b) − 1
= 0 i = 1, . . . , n
The complementary condition split the data into two sets
A be the set of active constraints: usefull points
A = {i ∈ [1, n]
yi(w
∗⊤xi + b
∗
) = 1}
its complementary A¯ useless points
if i ∈ A/ , αi = 0The KKT conditions for SVM
The same KKT but using matrix notations and the active set A
stationarity w − X
⊤Dyα = 0
α
⊤y = 0
primal admissibility Dy (Xw + b I1) ≥ I1
dual admissibility α ≥ 0
complementarity Dy (XAw + b I1A) = I1A
αA¯ = 0
Knowing A, the solution verifies the following linear system:
w −X
⊤
A DyαA = 0
−DyXAw −byA = −eA
−y
⊤
AαA = 0
with Dy = diag(yA), αA = α(A) , yA = y(A) et XA = X(XA; :).The KKT conditions as a linear system
w −X
⊤
A DyαA = 0
−DyXAw −byA = −eA
−y
⊤
AαA = 0
with Dy = diag(yA), αA = α(A) , yA = y(A) et XA = X(XA; :).
=
I −X
⊤
A Dy 0
−DyXA 0 −yA
0 −y
⊤
A 0
w
αA
b
0
−eA
0
we can work on it to separate w from (αA, b)The SVM dual formulation
The SVM Wolfe dual
max
w,b,α
1
2
kwk
2 −
Xn
i=1
αi
yi(w
⊤xi + b) − 1
with αi ≥ 0 i = 1, . . . , n
and w −
Xn
i=1
αi yixi = 0 and Xn
i=1
αi yi = 0
using the fact: w =
Xn
i=1
αi yixi
The SVM Wolfe dual without w and b
max
α
−
1
2
Xn
i=1
Xn
j=1
αjαi yi yjx
⊤
j xi +
Xn
i=1
αi
with αi ≥ 0 i = 1, . . . , n
and Xn
i=1
αi yi = 0Linear SVM dual formulation
L(w, b, α) = 1
2
kwk
2 −
Xn
i=1
αi
yi(w
⊤xi + b) − 1
Optimality: w =
Xn
i=1
αi yixi
Xn
i=1
αi yi = 0
L(α) = 1
2
Xn
i=1
Xn
j=1
αjαi yi yjx
⊤
j xi
| {z }
w⊤w
−
Pn
i=1 αi yi
Xn
j=1
αjyjx
⊤
j
| {z }
w⊤
xi − b
Xn
i=1
αi yi
| {z }
=0
+
Pn
i=1 αi
= −
1
2
Xn
i=1
Xn
j=1
αjαi yi yjx
⊤
j xi +
Xn
i=1
αi
Dual linear SVM is also a quadratic program
problem D
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
with G a symmetric matrix n × n such that Gij = yi yjx
⊤
j
xiSVM primal vs. dual
Primal
min
w∈IRd
,b∈IR
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1
i = 1, n
d + 1 unknown
n constraints
classical QP
perfect when d << n
Dual
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
n unknown
G Gram matrix (pairwise
influence matrix)
n box constraints
easy to solve
to be used when d > nSVM primal vs. dual
Primal
min
w∈IRd
,b∈IR
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1
i = 1, n
d + 1 unknown
n constraints
classical QP
perfect when d << n
Dual
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
n unknown
G Gram matrix (pairwise
influence matrix)
n box constraints
easy to solve
to be used when d > n
f (x) = X
d
j=1
wjxj + b =
Xn
i=1
αi yi(x
⊤xi) + bThe bi dual (the dual of the dual)
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
L(α, λ, µ) = 1
2
α
⊤Gα − e
⊤α + λ y
⊤α − µ
⊤α
∇αL(α, λ, µ) = Gα − e + λ y − µ
The bidual
max
α,λ,µ
−
1
2
α
⊤Gα
with Gα − e + λ y − µ = 0
and 0 ≤ µ
since kwk
2 =
1
2
α
⊤Gα and DXw = Gα
(
max
w,λ
−
1
2
kwk
2
with DXw + λ y ≥ e
by identification (possibly up to a sign)
b = λ is the Lagrange multiplier of the equality constraintCold case: the least square problem
Linear model
yi =
X
d
j=1
wjxij + εi
, i = 1, n
n data and d variables; d < n
min
w
=
Xn
i=1
Xd
j=1
xijwj − yi
2
= kXw − yk
2
Solution: we = (X
⊤X)
−1X
⊤y
f (x) = x
⊤ (X
⊤X)
−1X
⊤y
| {z }
we
What is the influence of each data point (matrix X lines) ?
Shawe-Taylor & Cristianini’s Book, 2004data point influence (contribution)
for any new data point x
f (x) = x
⊤ (X
⊤X)(X
⊤X)
−1
(X
⊤X)
−1X
⊤y
| {z }
we
= x
⊤ X
⊤ X(X
⊤X)
−1
(X
⊤X)
−1X
⊤y
| {z }
αb
x⊤
n examples
d variables
X ⊤
αb
we
f (x) = X
d
j=1
wejxjdata point influence (contribution)
for any new data point x
f (x) = x
⊤ (X
⊤X)(X
⊤X)
−1
(X
⊤X)
−1X
⊤y
| {z }
we
= x
⊤ X
⊤ X(X
⊤X)
−1
(X
⊤X)
−1X
⊤y
| {z }
αb
x⊤
n examples
d variables
X ⊤
αb
we
x⊤xi
f (x) = X
d
j=1
wejxj =
Xn
i=1
αbi (x
⊤xi)
from variables to examples
αb = X(X
⊤X)
−1we
| {z }
n examples
et we = X
⊤αb | {z }
d variables
what if d ≥ n !SVM primal vs. dual
Primal
min
w∈IRd
,b∈IR
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1
i = 1, n
d + 1 unknown
n constraints
classical QP
perfect when d << n
Dual
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
n unknown
G Gram matrix (pairwise
influence matrix)
n box constraints
easy to solve
to be used when d > n
f (x) = X
d
j=1
wjxj + b =
Xn
i=1
αi yi(x
⊤xi) + bRoad map
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dual
Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Solving the dual (1)
Data point influence
αi = 0 this point is useless
αi 6= 0 this point is said to be
support
f (x) = X
d
j=1
wjxj + b =
Xn
i=1
αi yi(x
⊤xi) + bSolving the dual (1)
Data point influence
αi = 0 this point is useless
αi 6= 0 this point is said to be
support
f (x) = X
d
j=1
wjxj + b =
X
3
i=1
αi yi(x
⊤xi) + b
Decison border only depends on 3 points (d + 1)Solving the dual (2)
Assume we know these 3 data points
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
=⇒
(
min
α∈IR3
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
L(α, b) = 1
2
α
⊤Gα − e
⊤α + b y
⊤α
solve the following linear system
Gα + b y = e
y
⊤α = 0
U = chol(G); % upper
a = U\ (U’\e);
c = U\ (U’\y);
b = (y’*a)\(y’*c)
alpha = U\ (U’\(e - b*y));Conclusion: variables or data point?
seeking for a universal learning algorithm
◮ no model for IP(x, y)
the linear case: data is separable
◮ the non separable case
double objective: minimizing the error together with the regularity of
the solution
◮ multi objective optimisation
dualiy : variable – example
◮ use the primal when d < n (in the liner case) or when matrix G is hard
to compute
◮ otherwise use the dual
universality = nonlinearity
◮ kernels
SVM and Kernel machine
Lecture 1: Linear SVM
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
March 12, 2014Road map
1 Linear SVM
Separating hyperplanes
The margin
Linear SVM: the problem
Linear programming SVM
0 0 0
margin
"The algorithms for constructing the separating hyperplane considered
above will be utilized for developing a battery of programs for pattern
recognition." in Learning with kernels, 2002 - from V .Vapnik, 1982Hyperplanes in 2d: intuition
It’s a line!Hyperplanes: formal definition
Given vector v ∈ IRd
and bias a ∈ IR
Hyperplane as a function h,
h : IRd −→ IR
x 7−→ h(x) = v
⊤x + a
Hyperplane as a border in IRd
(and an implicit function)
∆(v, a) = {x ∈ IRd
v
⊤x + a = 0}
The border invariance property
∀k ∈ IR, ∆(kv, ka) = ∆(v, a)
∆ = {x ∈ IR2
| v
⊤x + a = 0}
the decision border
∆
(x, h(x)) = v
⊤x + a)
(x, 0)
h(x)
d(x, ∆)Separating hyperplanes
Find a line to separate (classify) blue from red
D(x) = sign
v
⊤x + a
Separating hyperplanes
Find a line to separate (classify) blue from red
D(x) = sign
v
⊤x + a
the decision border:
v
⊤x + a = 0Separating hyperplanes
Find a line to separate (classify) blue from red
D(x) = sign
v
⊤x + a
the decision border:
v
⊤x + a = 0
there are many solutions...
The problem is ill posed
How to choose a solution?This is not the problem we want to solve
{(xi
, yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y)
unknown
we want to be able to classify new
observations: minimize IP(error)This is not the problem we want to solve
{(xi
, yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y)
unknown
we want to be able to classify new
observations: minimize IP(error)
Looking for a universal approach
use training data: (a few errors)
prove IP(error) remains small
scalable - algorithmic complexityThis is not the problem we want to solve
{(xi
, yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y)
unknown
we want to be able to classify new
observations: minimize IP(error)
Looking for a universal approach
use training data: (a few errors)
prove IP(error) remains small
scalable - algorithmic complexity
with high probability (for the canonical hyperplane):
IP(error) < IPb (error)
| {z }
=0 here
+ ϕ(
1
margin
| {z }
=kvk
)
Vapnik’s Book, 1982Margin guarantees
min
i∈[1,n]
dist(xi
, ∆(v, a))
| {z }
margin: m
Theorem (Margin Error Bound)
Let R be the radius of the smallest ball BR(a) =
x ∈ IRd
| kx − ck < R
,
containing the points (x1, . . . , xn) i.i.d from some unknown distribution IP.
Consider a decision function D(x) = sign(v
⊤x) associated with a
separating hyperplane v of margin m (no training error).
Then, with probability at least 1 − δ for any δ > 0, the generalization error
of this hyperplane is bounded by
IP(error) ≤ 2
r
R2
n m2
+ 3
r
ln(2/δ)
2n
R
v’x = 0
m
theorem 4.17 p 102 in J Shawe-Taylor, N Cristianini Kernel methods for pattern analysis, Cambridge 2004Statistical machine learning – Computation learning theory
(COLT)
{xi
, yi}
{xi
, yi}
i = 1, n A f = v
⊤x + a
x
yp = f (x)
IPb (error)
= 1
n
L(f (xi), yi)
Loss L
Vapnik’s Book, 1982Statistical machine learning – Computation learning theory
(COLT)
{xi
, yi}
{xi
, yi}
i = 1, n A f = v
⊤x + a
x
yp = f (x)
IPb (error)
= 1
n
L(f (xi), yi)
y Loss L
IP(error)
=
IE(L)
∀IP ∈ P
P IP
Prob
≤ + ϕ(kvk) ≥ δ
Vapnik’s Book, 1982linear discrimination
Find a line to classify blue and red
D(x) = sign
v
⊤x + a
the decision border:
v
⊤x + a = 0
there are many solutions...
The problem is ill posed
How to choose a solution ?
⇒ choose the one with larger marginRoad map
1 Linear SVM
Separating hyperplanes
The margin
Linear SVM: the problem
Linear programming SVM
0 0 0
marginMaximize our confidence = maximize the margin
the decision border: ∆(v, a) = {x ∈ IRd
v
⊤x + a = 0}
0 0 0
margin
maximize the margin
max
v,a
min
i∈[1,n]
dist(xi
, ∆(v, a))
| {z }
margin: m
Maximize the confidence
max
v,a
m
with min
i=1,n
|v
⊤xi + a|
kvk
≥ m
the problem is still ill posed
if (v, a) is a solution, ∀ 0 < k (kv, ka) is also a solution. . .Margin and distance: details
Theorem (The geometrical margin)
Let x be a vector in IRd
and ∆(v, a) = {s ∈ IRd
v
⊤s + a = 0} an
hyperplane. The distance between vector x and the hyperplane ∆(v, a)) is
dist(xi
, ∆(v, a)) = |v⊤x+a|
kvk
Let sx be the closest point to x in ∆ , sx = arg min
s∈∆
kx − sk. Then
x = sx + r
v
kvk
⇔ r
v
kvk
= x − sx
So that, taking the scalar product with vector v we have:
v
⊤r
v
kvk
= v
⊤(x − sx ) = v
⊤x − v
⊤sx = v
⊤x + a − (v
⊤sx + a)
| {z }
=0
= v
⊤x + a
and therefore
r =
v⊤x + a
kvk
leading to:
dist(xi
, ∆(v, a)) = min
s∈∆
kx − sk = r =
|v⊤x + a|
kvkGeometrical and numerical margin
∆ = {x ∈ IR2
| v
⊤x + a = 0}
the decision border
∆
d(x, ∆) = |v
⊤x + a|
kvk
the geometrical margin
d(xb, ∆)
(xr, v
⊤xr + a)
(xr, 0)
mr
d(xr, ∆)
(xb, v
⊤xb + a)
mb
(xb, 0)
m = |v
⊤x + a|
the numerical marginFrom the geometrical to the numerical margin
+1
ï1
ï1/|w|
1/|w|
{x | wT
x = 0}
<ï ï marge >
x
w
T
x
Valeur de la marge dans le cas monodimensionnel
Maximize the (geometrical) margin
max
v,a
m
with min
i=1,n
|v
⊤xi + a|
kvk
≥ m
if the min is greater, everybody is greater
(yi ∈ {−1, 1})
max
v,a
m
with yi(v
⊤xi + a)
kvk
≥ m, i = 1, n
change variable: w =
v
mkvk
and b =
a
mkvk =⇒ kwk =
1
m
max
w,b
m
with yi(w⊤xi + b) ≥ 1 ; i = 1, n
and m =
1
kwk
min
w,b
kwk
2
with yi(w⊤xi + b) ≥ 1
i = 1, nThe canonical hyperplane
(
min
w,b
kwk
2
with yi(w⊤xi + b) ≥ 1 i = 1, n
Definition (The canonical hyperplane)
An hyperplane (w, b) in IRd
is said to be canonical with respect the set of
vectors {xi ∈ IRd
, i = 1, n} if
min
i=1,n
|w
⊤xi + b| = 1
so that the distance
min
i=1,n
dist(xi
, ∆(w, b)) = |w⊤x + b|
kwk
=
1
kwk
The maximal margin (=minimal norm) canonical hyperplaneRoad map
1 Linear SVM
Separating hyperplanes
The margin
Linear SVM: the problem
Linear programming SVM
0 0 0
marginLinear SVM: the problem
The maximal margin (=minimal norm)
canonical hyperplane
0 0 0
margin
Linear SVMs are the solution of the following problem (called primal)
Let {(xi
, yi); i = 1 : n} be a set of labelled data with x ∈ IRd
, yi ∈ {1, −1}
A support vector machine (SVM) is a linear classifier associated with the
following decision function: D(x) = sign
w⊤x + b
where w ∈ IRd
and
b ∈ IR a given thought the solution of the following problem:
(
min
w∈IRd
, b∈IR
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1 , i = 1, n
This is a quadratic program (QP): (
min
z
1
2
z
⊤Az − d
⊤z
with Bz ≤ eSupport vector machines as a QP
The Standart QP formulation
(
min
w,b
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1, i = 1, n
⇔
(
min
z∈IRd+1
1
2
z
⊤Az − d
⊤z
with Bz ≤ e
z = (w, b)
⊤, d = (0, . . . , 0)
⊤, A =
I 0
0 0
, B = −[diag(y)X, y] and
e = −(1, . . . , 1)
⊤
Solve it using a standard QP solver such as (for instance)
% QUADPROG Quadratic programming .
% X = QUADPROG (H ,f ,A ,b ) attempts to solve the quadratic programming problem :
%
% min 0.5* x ’* H*x + f ’* x subject to : A*x <= b
% x
% so that the solution is in the range LB <= X <= UB
For more solvers (just to name a few) have a look at:
plato.asu.edu/sub/nlores.html#QP-problem
www.numerical.rl.ac.uk/people/nimg/qp/qp.htmlRoad map
1 Linear SVM
Separating hyperplanes
The margin
Linear SVM: the problem
Linear programming SVM
0 0 0
marginOther SVMs: Equivalence between norms
L1 norm
variable selection
(especially with
redundant noisy features)
Mangassarian, 1965
max
m,v,a
m
with yi(v
⊤xi + a) ≥ m kvk2 ≥ m
1
√
d
kvk1
i = 1, n
1-norm or Linear Programming-SVM (LP SVM)
(
min
w,b
kwk1 =
Pp
j=1
|wj
|
with yi(w
⊤xi + b) ≥ 1 ; i = 1, n
Generalized SVM (Bradley and Mangasarian, 1998)
(
min
w,b
kwk
p
p
with yi(w
⊤xi + b) ≥ 1 ; i = 1, n
p = 2: SVM, p = 1: LPSVM (also with p = ∞), p = 0: L0 SVM,
p= 1 and 2: doubly regularized SVM (DrSVM)Linear support vector support (LP SVM)
(
min
w,b
kwk1 =
Pp
j=1 w
+
j + w
−
j
with yi(w
⊤xi + b) ≥ 1 ; i = 1, n
w = w
+ − w
− with w
+ ≥ 0 and w
− ≥ 0
The Standart LP formulation
min
x
f
⊤x
with Ax ≤ d
and 0 ≤ x
x = [w
+; w
−; b] f = [1 . . . 1; 0] d = −[1 . . . 1]
⊤ A = [−yiXi yiXi − yi]
% linprog (f ,A ,b , Aeq , beq ,LB , UB )
% attempts to solve the linear programming problem :
% min f ’* x subject to : A* x <= b
% x
% so that the solution is in the range LB <= X <= UBAn example of linear discrimination: SVM and LPSVM
true line
QP SVM
LPSVM
Figure: SVM and LP SVMThe linear discrimination problem
from Learning with Kernels, B. Schölkopf and A. Smolla, MIT Press, 2002.Conclusion
SVM =
Separating hyperplane (to begin with the simpler)
+ Margin, Norm and statistical learning
+ Quadratic and Linear programming (and associated rewriting issues)
+ Support vectors (sparsity)
SVM preforms the selection of the most relevant data pointsBibliography
V. Vapnik, the generalized portrait method p 355 in Estimation of
dependences based on empirical data, Springer, 1982
B. Boser, I. Guyon & V. Vapnik, A training algorithm for optimal margin
classifiers. COLT, 1992
P. S. Bradley & O. L. Mangasarian. Feature selection via concave
minimization and support vector machines. ICML 1998
B. Schölkopf & A. Smolla, Learning with Kernels, MIT Press, 2002
M. Mohri, A. Rostamizadeh & A. Talwalkar, Foundations of Machine
Learning, MIT press 2012
http://agbs.kyb.tuebingen.mpg.de/lwk/sections/section72.pdf
http://www.cs.nyu.edu/~mohri/mls/lecture_4.pdf
http://en.wikipedia.org/wiki/Quadratic_programming
Stéphane Canu (INSA Rouen - LITIS) March 12, 2014 25 / 25
Understanding SVM (and associated kernel machines)
through the development of a Matlab toolbox
Stephane Canu
To cite this version:
Stephane Canu. Understanding SVM (and associated kernel machines) through the development
of a Matlab toolbox. Ecole d’ing´enieur. Introduction to Support Vector Machines (SVM), ´
Sao Paulo, 2014, pp.33.
HAL Id: cel-01003007
https://cel.archives-ouvertes.fr/cel-01003007
Submitted on 8 Jun 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Lecture 8: Multi Class SVM
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
April 10, 2014Roadmap
1 Multi Class SVM
3 different strategies for multi class SVM
Multi Class SVM by decomposition
Multi class SVM
Coupling convex hulls
1.5
1.5
1.5
1.5
1.5
1.5
2.5
2.5
2.5
−0.5 0 0.5 1 1.5
0
0.5
1
1.5
23 different strategies for multi class SVM
1 Decomposition approaches
◮ one vs all: winner takes all
◮ one vs one:
⋆ max-wins voting
⋆ pairwise coupling: use probability
◮ c SVDD
2 global approach (size c × n),
◮ formal (different variations)
min
f ∈H,α0,ξ∈IRn
1
2
Xc
ℓ=1
kfℓk
2
H +
C
p
Xn
i=1
Xc
ℓ=1,ℓ6=yi
ξ
p
iℓ
with fyi
(xi) + byi ≥ fℓ(xi) + bℓ + 2 − ξiℓ
and ξiℓ ≥ 0 for i = 1, ..., n; ℓ = 1, ..., c; ℓ 6= yi
non consistent estimator but practically useful
◮ structured outputs
3 A coupling formulation using the convex hulls3 different strategies for multi class SVM
1 Decomposition approaches
◮ one vs all: winner takes all
◮ one vs one:
⋆ max-wins voting
⋆ pairwise coupling: use probability – best results
◮ c SVDD
2 global approach (size c × n),
◮ formal (different variations)
min
f ∈H,α0,ξ∈IRn
1
2
Xc
ℓ=1
kfℓk
2
H +
C
p
Xn
i=1
Xc
ℓ=1,ℓ6=yi
ξ
p
iℓ
with fyi
(xi) + byi ≥ fℓ(xi) + bℓ + 2 − ξiℓ
and ξiℓ ≥ 0 for i = 1, ..., n; ℓ = 1, ..., c; ℓ 6= yi
non consistent estimator but practically useful
◮ structured outputs
3 A coupling formulation using the convex hullsMulticlass SVM: complexity issues
n training data
n = 60, 000 for MNIST
c class
c = 10 for MNIST
approach problem
size
number of
sub problems discrimination rejection
1 vs. all n c ++ -
1 vs. 1 2n
c
c(c−1)
2 ++ -
c SVDD n
c
c - ++
all together n × c 1 ++ -
coupling CH n 1 + +Roadmap
1 Multi Class SVM
3 different strategies for multi class SVM
Multi Class SVM by decomposition
Multi class SVM
Coupling convex hulls
1.5
1.5
1.5
1.5
1.5
1.5
2.5
2.5
2.5
−0.5 0 0.5 1 1.5
0
0.5
1
1.5
2Multi Class SVM by decomposition
One-Against-All Methods
→ winner-takes-all strategy
One-vs-One: pairwise methods
→ max-wins voting
→ directed acyclic graph (DAG)
→ error-correcting codes
→ post process probabilities
Hierarchical binary tree for
multi-class SVM
http://courses.media.mit.edu/2006fall/
mas622j/Projects/aisen-project/SVM and probabilities (Platt, 1999)
The decision function of the SVM is: sign
f (x) + b
log IP(Y = 1|x)
IP(Y = −1|x)
should have (almost) the same sign as f (x) + b
log IP(Y = 1|x)
IP(Y = −1|x)
= a1(f (x) + b) + a2 IP(Y = 1|x) = 1 −
1
1 + expa1(f (x)+b)+a2
a1 et a2 estimated using maximum likelihood on new data
max
a1,a2
L
with L =
Yn
i=1
IP(Y = 1|xi)
yi + (1 − IP(Y = 1|xi))(1−yi )
and log L =
Pn
i=1
yi
log(IP(Y = 1|xi)) + (1 − yi)log(1 − IP(Y = 1|xi))
=
Pn
i=1
yi
log
IP(Y =1|xi )
1−IP(Y =1|xi )
+ log(1 − IP(Y = 1|xi))
=
Pn
i=1
yi
a1(f (xi) + b) + a2
− log(1 + expa1(f (xi )+b)+a2 )
=
Pn
i=1
yi
a
⊤zi
− log(1 + expa
⊤zi)
Newton iterations: a
new ← a
old − H
−1∇logLSVM and probabilities (Platt, 1999)
max
a∈IR2
log L =
Xn
i=1
yi
a
⊤zi
− log(1 + expa
⊤zi)
Newton iterations
a
new ← a
old − H
−1∇logL
∇logL =
Xn
i=1
yi zi −
expa
⊤z
1 + expa⊤z
zi
=
Xn
i=1
yi − IP(Y = 1|xi)
zi = Z
⊤(y − p)
H = −
Xn
i=1
zi z
⊤
i
IP(Y = 1|xi)
1 − IP(Y = 1|xi)
= −Z
⊤WZ
Newton iterations
a
new ← a
old + (Z
⊤WZ)
−1Z
⊤(y − p)SVM and probabilities: practical issues
y −→ t =
1 − ε+ =
n+ + 1
n+ + 2
if yi = 1
ε− =
1
n− + 2
if yi = −1
1 in: X, y, f /out: p
2 t ←
3 Z ←
4 loop until convergence
1 p ← 1 −
1
1+expa⊤z
2 W ← diag
p(1 − p)
3 a
new ← a
old + (Z
⊤WZ)
−1Z
⊤(t − p)SVM and probabilities: pairwise coupling
From pairwise probabilities IP(cℓ
, cj) to class probabilities pℓ = IP(cℓ
|x)
min
p
Xc
ℓ=1
X
ℓ−1
j=1
IP(cℓ
, cj)
2
(pℓ − pj)
2
Q e
e
⊤ 0
p
µ
=
0
1
with Qℓj =
IP(cℓ
, cj)
2
P
ℓ 6= j
i
IP(cℓ
, ci)
2
ℓ = j
The global procedure :
1 (Xa, ya, Xt, yt) ← split(X, y)
2 (Xℓ, yℓ, Xp, yp) ← split(Xa, ya)
3 loop for all pairs (ci
, cj) of classes
1 modeli,j ← train_SVM(Xℓ, yℓ,(ci
, cj))
2 IP(ci
, cj) ← estimate_proba(Xp, yp, model) % Platt estimate
4 p ← post_process(Xt, yt,IP) % Pairwise Coupling
Wu, Lin & Weng, 2004, Duan & Keerti, 05SVM and probabilities
Some facts
SVM is universally consistent (converges towards the Bayes risk)
SVM asymptotically implements the bayes rule
but theoretically: no consistency towards conditional probabilities (due
to the nature of sparsity)
to estimate conditional probabilities on an interval
(typically[
1
2 − η, 1
2 + η]) to sparseness in this interval (all data points
have to be support vectors)
Bartlett & Tewari, JMLR, 07SVM and probabilities (2/2)
An alternative approach
g(x) − ε
−(x) ≤ IP(Y = 1|x) ≤ g(x) + ε
+(x)
with g(x) = 1
1+4−f (x)−α0
non parametric functions ε
− and ε
+ have to verify:
g(x) + ε
+(x) = exp−a1(1−f (x)−α0)++a2
1 − g(x) − ε
−(x) = exp−a1(1+f (x)+α0)++a2
with a1 = log 2 and a2 = 0
Grandvalet et al., 07Roadmap
1 Multi Class SVM
3 different strategies for multi class SVM
Multi Class SVM by decomposition
Multi class SVM
Coupling convex hulls
1.5
1.5
1.5
1.5
1.5
1.5
2.5
2.5
2.5
−0.5 0 0.5 1 1.5
0
0.5
1
1.5
2Multi class SVM: the decision function
One hyperplane by class
fℓ(x) = w
⊤
ℓ
x + bℓ ℓ = 1, c
Winner takes all decision function
D(x) = Argmax
ℓ=1,c
w
⊤
1 x + b1, w
⊤
2 x + b2, . . . , w
⊤
ℓ
x + bℓ
, . . . , w
⊤
c x + bc
We can revisit the 2 classes case in this setting
c × (d + 1) unknown variables (wℓ, bℓ); ℓ = 1, cMulti class SVM: the optimization problem
The margin in the multidimensional case
m = min
ℓ6=yi
v
⊤
yi
xi − ayi − v
⊤
ℓ xi + aℓ
= v
⊤
yi
xi + ayi − max
ℓ6=yi
v
⊤
ℓ xi + aℓ
The maximal margin multiclass SVM
max
vℓ,aℓ
m
with v
⊤
yi
xi + ayi − v
⊤
ℓ
xi − aℓ ≥ m for i = 1, n; ℓ = 1, c; ℓ 6= yi
and 1
2
Xc
ℓ=1
kvℓk
2 = 1
The multiclass SVM
min
wℓ,bℓ
1
2
Xc
ℓ=1
kwℓk
2
with x
⊤
i
(wyi − wℓ) + byi − bℓ ≥ 1 for i = 1, n; ℓ = 1, c; ℓ 6= yiMulti class SVM: KKT and dual form: The 3 classes case
min
wℓ,bℓ
1
2
X
3
ℓ=1
kwℓk
2
with w⊤
yi
xi + byi ≥ w⊤
ℓ
xi + bℓ + 1 for i = 1, n; ℓ = 1, 3; ℓ 6= yi
min
wℓ,bℓ
1
2
kw1k
2 +
1
2
kw2k
2 +
1
2
kw3k
2
with w⊤
1
xi + b1 ≥ w⊤
2
xi + b2 + 1 for i such that yi = 1
w⊤
1
xi + b1 ≥ w⊤
3
xi + b3 + 1 for i such that yi = 1
w⊤
2
xi + b2 ≥ w⊤
1
xi + b1 + 1 for i such that yi = 2
w⊤
2
xi + b2 ≥ w⊤
3
xi + b3 + 1 for i such that yi = 2
w⊤
3
xi + b3 ≥ w⊤
1
xi + b1 + 1 for i such that yi = 3
w⊤
3
xi + b3 ≥ w⊤
2
xi + b2 + 1 for i such that yi = 3
L =
1
2
(kw1k
2 + kw2k
2 + kw3k
2
) −α
⊤
12(X1(w1 − w2) + b1 − b2 − 1)
−α
⊤
13(X1(w1 − w3) + b1 − b3 − 1)
−α
⊤
21(X2(w2 − w1) + b2 − b1 − 1)
−α
⊤
23(X2(w2 − w3) + b2 − b3 − 1)
−α
⊤
31(X3(w3 − w1) + b3 − b1 − 1)
−α
⊤
32(X3(w3 − w2) + b3 − b2 − 1)Multi class SVM: KKT and dual form: The 3 classes case
L =
1
2
kwk
2 − α
⊤(XMw + Ab − 1)
with
w =
w1
w2
w3
∈ IR3d M = M ⊗ I =
I −I 0
I 0 −I
−I I 0
0 I −I
−I 0 I
0 −I I
a 6d × 3d matrix
where
I the identity matrix
and
X =
X1 0 0 0 0 0
0 X1 0 0 0 0
0 0 X2 0 0 0
0 0 0 X2 0 0
0 0 0 0 X3 0
0 0 0 0 0 X3
a 2n × 6d matrix
with input data
X =
X1
X2
X3
n × dMulti class SVM: KKT and dual form: The 3 classes case
KKT Stationality conditions =
∇wL = w − M⊤X ⊤α
∇bL = A
⊤α
The dual
min
α∈IR2n
1
2
α
⊤Gα − e
⊤α
with Ab = 0
and 0 ≤ α
With
G = XMM⊤X
⊤
= X (M ⊗ I)(M ⊗ I)
⊤X
⊤
= X (MM⊤ ⊗ I)X
⊤
= (MM⊤ ⊗ I). × XX ⊤
= (MM⊤ ⊗ I). × 1I K 1I⊤
and M =
1 −1 0
1 0 −1
−1 1 0
0 1 −1
−1 0 1
0 −1 1
Multi class SVM and slack variables (2 variants)
A slack for all (Vapnik & Blanz, Weston & Watkins 1998)
min
wℓ,bℓ,ξ∈IRcn
1
2
Xc
ℓ=1
kwℓk
2 + C
Xn
i=1
Xc
ℓ=1,ℓ6=yi
ξiℓ
with w⊤
yi
xi + byi − w⊤
ℓ
xi − bℓ ≥ 1 − ξiℓ
and ξiℓ ≥ 0 for i = 1, n; ℓ = 1, c; ℓ 6= yi
The dual
min
α∈IR2n
1
2
α
⊤Gα − e
⊤α
with Ab = 0
and 0 ≤ α ≤ C
Max error, a slack per training data (Cramer and Singer, 2001)
min
wℓ,bℓ,ξ∈IRn
1
2
Xc
ℓ=1
kwℓk
2 + C
Xn
i=1
ξi
with (wyi − wℓ)
⊤xi ≥ 1 − ξi for i = 1, n; ℓ = 1, c; ℓ 6= yi
X
i=1
and ξi ≥ 0 for i = 1, nMulti class SVM and Kernels
min
f ∈H,α0,ξ∈IRcn
1
2
Xc
ℓ=1
kfℓk
2
H + C
Xn
i=1
Xc
ℓ=1,ℓ6=yi
ξiℓ
with fyi
(xi) + byi − fℓ(xi) − bℓ ≥ 1 − ξiℓ
Xn
i=1
and ξiℓ ≥ 0 for i = 1, n; ℓ = 1, c; ℓ 6= yi
The dual
min
α∈IR2n
1
2
α
⊤Gα − e
⊤α
with Ab = 0
and 0 ≤ α≤ C
where G is the multi class kernel matrixOther Multi class SVM
Lee, Lin & Wahba, 2004
min
f ∈H
λ
2
Xc
ℓ=1
kfℓk
2
H +
1
n
Xn
i=1
Xc
ℓ=1,ℓ6=yi
(fℓ(xi) + 1
c − 1
)+
with Xc
ℓ=1
fℓ(x) = 0 ∀x
Structured outputs = Cramer and Singer, 2001
MSVMpack : A Multi-Class Support Vector Machine Package Fabien Lauer
& Yann GuermeurRoadmap
1 Multi Class SVM
3 different strategies for multi class SVM
Multi Class SVM by decomposition
Multi class SVM
Coupling convex hulls
1.5
1.5
1.5
1.5
1.5
1.5
2.5
2.5
2.5
−0.5 0 0.5 1 1.5
0
0.5
1
1.5
2One more way to derivate SVM
Minimizing the distance between the convex hulls
min
α
ku − vk
2
with u(x) = X
{i|yi =1}
αi(x
⊤
i x), v(x) = X
{i|yi =−1}
αi(x
⊤
i x)
and X
{i|yi =1}
αi = 1,
X
{i|yi =−1}
αi = 1, 0 ≤ αi
i = 1, nThe multi class case
min
α
Xc
ℓ=1
Xc
ℓ
′=1
kuℓ − uℓ
′k
2
with uℓ(x) = X
{i|yi =ℓ}
αi,ℓ(x
⊤
i x), ℓ = 1, c
and X
{i|yi =ℓ}
αi,ℓ = 1, 0 ≤ αi,ℓ i = 1, n; ℓ = 1, cBibliography
Estimating probabilities
◮ Platt, J. (2000). Probabilistic outputs for support vector machines and
comparison to regularized likelihood methods. In Advances in large
margin classifiers. MIT Press.
◮ T. Lin, C.-J. Lin, R.C. Weng, A note on Platt’s probabilistic outputs
for support vector machines, Mach. Learn. 68 (2007) 267–276
◮ http://www.cs.cornell.edu/courses/cs678/2007sp/platt.pdf
Multiclass SVM
◮ K.-B. Duan & S. Keerthi (2005). "Which Is the Best Multiclass SVM
Method? An Empirical Study".
◮ T.-F. Wu, C.-J. Lin, R.C. Weng, Probability estimates for multi-class
classification by pairwise coupling, JMLR. 5 (2004) 975–1005.
◮ K. Crammer & Y. Singer (2001). "On the Algorithmic Implementation
of Multiclass Kernel-based Vector Machines". JMLR 2: 265–292.
◮ Lee, Y.; Lin, Y.; and Wahba, G. (2001). "Multicategory Support
Vector Machines". Computing Science and Statistics 33.
◮ http://www.loria.fr/~guermeur/NN2008_M_SVM_YG.pdf
◮ http://jmlr.org/papers/volume12/lauer11a/lauer11a.pdf
Stéphane Canu (INSA Rouen - LITIS) April 10, 2014 25 / 25
https://hal.inria.fr/cel-01082588v2/document
Tutoriel Android - TP de prise en main
Dima Rodriguez
To cite this version:
Dima Rodriguez. Tutoriel Android - TP de prise en main. Ecole d’ing´enieur. France. 2014, ´
pp.51.
HAL Id: cel-01082588
https://hal.archives-ouvertes.fr/cel-01082588v2
Submitted on 26 Nov 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Tutoriel Android TM
TP de prise en main
Dima RodriguezPolytech’ Paris Sud
Tutoriel AndroidTM
Dima Rodriguez
Novembre 2014
TP de prise en mainTable des matières
Préambule 4
1 Installation de l’IDE 5
2 Configuration de l’IDE 6
Installation des paquets supplémentaires et des mises à jours . . . . . . 6
Configuration d’un émulateur . . . . . . . . . . . . . . . . . . . . . . . 6
3 Notre première application Android 10
Création d’un projet et d’une application “Hello World” . . . . . . . . . 10
Exécution de l’application . . . . . . . . . . . . . . . . . . . . . . . . . 11
Se repérer dans le projet . . . . . . . . . . . . . . . . . . . . . . . . . 14
Modification de l’interface utilisateur . . . . . . . . . . . . . . . . . . . 16
Répondre aux évènements . . . . . . . . . . . . . . . . . . . . . . . . . 21
Créer et lancer une autre activité . . . . . . . . . . . . . . . . . . . . . 22
Créer des animations . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Créer un View personnalisé pour gérer un jeu . . . . . . . . . . . . . . 32
Temporisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Rajouter un bouton sur la barre d’action . . . . . . . . . . . . . . . . . 40
Lancement d’une autre application . . . . . . . . . . . . . . . . . . . . 41
Changement de langue . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Annexes 46
Explication du code généré par défaut pour la classe Principale . . . . . 46
Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . . . . 49
2Table des figures
2.1 SDK Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Android Virtual Device Manager . . . . . . . . . . . . . . . . . . 8
2.3 Création d’un appareil virtuel . . . . . . . . . . . . . . . . . . . . 9
3.1 Création d’un projet . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Créer une activité . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Nouvelle activité . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Exécution de l’application . . . . . . . . . . . . . . . . . . . . . . 13
3.5 Aperçu de l’interface Eclipse . . . . . . . . . . . . . . . . . . . 14
3.6 Hiérarchie de LinearLayout . . . . . . . . . . . . . . . . . . . . . 17
3.7 Premier test de l’application modifiée . . . . . . . . . . . . . . . . 20
3.8 Champ de saisie et bouton . . . . . . . . . . . . . . . . . . . . . 21
3.9 Création d’une nouvelle activité . . . . . . . . . . . . . . . . . . . 23
3.10 Nouveau xml pour définir une animation . . . . . . . . . . . . . . 28
3.11 Animation en LinearLayout . . . . . . . . . . . . . . . . . . . . . 30
3.12 Animation en RelativeLayout . . . . . . . . . . . . . . . . . . . . 31
3.13 Création de la classe MonViewPerso . . . . . . . . . . . . . . . . 33
3.14 Ajout d’un bouton pour lancer le jeu . . . . . . . . . . . . . . . . 36
3.15 Activité avec vue personnalisée . . . . . . . . . . . . . . . . . . . 39
3.16 Barre d’action . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.17 Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . 50
3Préambule
Le système d’exploitation Android est actuellement l’OS le plus utilisé dans le
monde faisant tourner des smartphones, tablettes, montres connectées, liseuses
électroniques, télévisions interactives, et bien d’autres. C’est un système, open
source qui utilise le noyau Linux. Il a été créée par Android, Inc. qui fut rachetée
par Google en 2005. Le développement d’applications pour Android s’effectue
en Java en utilisant des bibliothèques spécifiques.
Le but de ce tutoriel est de vous familiariser avec l’esprit de développement Android
et ses bibliothèques. Nous introduirons les concepts de bases de création
d’application en mettant en œuvre quelques fonctionnalités simples. Ce tutoriel
n’est en aucun cas exhaustive, le potentiel des applications Android est beaucoup
plus ample, les exemples cités dans ce document ne devront pas brider votre
imagination ni votre curiosité.
Sur le site officiel pour les développeurs Android vous trouverez la documentation
des classes, des tutoriels ainsi que les lignes directrices pour préparer une
distribution Google Play. Un lexique à la fin de ce document définit quelques
mot du vocabulaire Android utilisé dans ce tutoriel.
41 Installation de l’IDE
Dans cette section nous allons décrire la procédure d’installation d’un environnement
de développement Android.
Attention : Il faut exécuter les étapes dans l’ordre cité ci-dessous.
a. Téléchargez le JDK7 (Java Development Kit) que vous pouvez trouver sur
le site d’Oracle 1
.
b. Désinstallez des éventuelles versions antérieures du JDK
c. Installez le nouveau JDK
d. Téléchargez le paquet ADT (Android Developer Tools). Il contient le SDK
(Software Development Kit) Android et une version d’Eclipse avec ADT
intégré.
e. Pour installer l’IDE, il faut juste placer le dossier téléchargé dans le répertoire
où vous avez l’habitude d’installer vos programmes (ou directement
sur votre partition principale) et le dé-zipper. Vous pouvez également lui
changer de nom si vous souhaitez, mais veillez à ne pas mettre des espaces
ou des accents quand vous le renommez.
f. Dans le dossier dé-zippé vous trouverez un exécutable Eclipse que vous
pouvez désormais lancer pour commencer la configuration de votre environnement.
i
Au moment de l’écriture de ce document, Eclipse est le seul IDE (Integrated
Development Environment) officiellement supporté. Un nouvel environnement,
Android Studio, est en cours de développement mais est encore
en version bêta pas très stable.
Si vous souhaitez utiliser une version d’Eclipse que vous avez déjà sur votre
machine il faudrait prendre le SDK et un plugin ADT et configurer Eclipse
pour son utilisation.
1. Ce tutoriel a été réalisé avec JDK7u60
52 Configuration de l’IDE
Installation des paquets supplémentaires et des
mises à jours
a. Lancez Eclipse
b. On commencera par s’assurer que l’environnement installé est à jour. Dans
le menu Help sélectionnez Check for Updates et installez les mises à jour
le cas échéant.
c. Pour vérifier la version du SDK installé, allez dans le menu Window >
Android SDK Manager et lancez le gestionnaire du SDK. Dans le gestionnaire
(fig.2.1) vous verrez la version du SDK installé (avec les mises jour
disponibles) et aussi la version de l’API (Application Programming Interface)
installée et la version du OS pour laquelle elle vous permettra de
développer. Installez les paquets proposés par défaut.
i
Si vous voulez développer pour des versions Android plus anciennes il faut
installer les versions API correspondantes.
Configuration d’un émulateur
Un émulateur permet de reproduire le comportement d’un appareil réel d’une façon
virtuelle. L’utilisation d’un émulateur nous évite d’avoir à charger à chaque fois
l’application dans un appareil pour la tester. On pourra ainsi lancer l’application
dans l’IDE et elle s’exécutera sur un appareil virtuel appelé Android Virtual Device
AVD qui émule le comportement d’un téléphone, une tablette ou autre.
Eclipse ne propose pas d’émulateur par défaut, avant de commencer à créer
notre application il faut en configurer un.
6Tutoriel Android 7
Figure 2.1 – SDK Manager
Dans cet exemple, il existe une mise à jour disponible pour le SDK. L’API installée est la
version 20 qui permet un développement pour Android 4.4, mais il existe une API plus
récente pour Android 5.0.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 8
Figure 2.2 – Android Virtual Device Manager
Allez dans le menu Window > Android Virtual Device Manager, une fois le gestionnaire
ouvert cliquez sur le bouton Create (fig. 2.2). Une fenêtre de configuration
s’affiche (fig. 2.3a). On propose de configurer un émulateur Nexus One avec les
paramètres indiqués (fig.2.3b).
Notez qu’à la création de l’appareil sa résolution vous est signalée. Dans cet
exemple l’appareil a une résolution 480x800 qui correspond à hdpi (high density
dots per inch). Ceci est important à noter pour l’intégration d’images dans
l’application.
i
Notez que pour certains émulateurs proposés le processeur n’est pas installé
par défaut, pour pouvoir les créer il faut installer un processeur adapté dans
le SDK Manager.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 9
(a) Fenêtre de création AVD (b) Création d’un appareil Nexus One
Figure 2.3 – Création d’un appareil virtuel
Polytech’ Paris Sud Dima Rodriguez3 Notre première application
Android
Création d’un projet et d’une application “Hello
World”
a. Dans le menu File > New, sélectionnez Android Application Project , et
renseignez les informations comme dans la figure 3.1
Application name : c’est le nom qui va apparaitre dans la liste des applications
sur l’appareil et dans le Play Store.
Project name : c’est le nom utilisé par Eclipse (typiquement le même
que celui de l’application).
Package name : il est utilisé comme identifiant de l’application, il permet
de considérer différentes versions d’une application comme étant une
même application.
Minimum required SDK : c’est la version Android la plus ancienne sur
laquelle l’application peut tourner. Il faut éviter de remonter trop en
arrière ça réduirait les fonctionnalités que vous pourriez donner à votre
application.
Target SDK : c’est la version pour laquelle l’application est développée et
testée. Typiquement la dernière version API que vous avez installée. 1
Compile with : c’est la version d’API à utiliser pour la compilation. Typiquement
la dernière version du SDK installée.
Theme : c’est l’apparence par défaut qu’aura votre application.
1. Ce tutoriel a été réalisé avec la version 4.4.2
10Tutoriel Android 11
b. Cliquez sur Next et laissez les choix par défaut. Vous pouvez éventuellement
modifier l’emplacement de votre projet en décochant Create Project in
Workspace et parcourir le disque pour sélectionner un autre dossier.
c. Cliquez sur Next. La fenêtre suivante vous propose de définir une icône pour
votre application. Nous laisserons l’icône proposée par défaut. Vous pourrez
ultérieurement créer votre propre icône pour vos applications. Remarquez
que l’image doit être proposée avec différentes résolutions pour s’adapter
aux différents appareils.
d. Cliquez sur Next. Nous arrivons à la création d’une activité (un écran avec
une interface graphique). Sélectionnez Blank Activity (fig. 3.2) et cliquez
Next.
e. Selon la version de l’ADT que vous avez, vous verrez soit la fenêtre de la
figure 3.3a ou celle de la figure 3.3b. La dernière version impose l’utilisation
de fragments. Chaque activité dispose d’un layout qui définit la façon dont
les composants seront disposés sur l’écran. Une activité peut être divisée
en portions (ou fragments) chacune ayant son propre layout. La notion
de fragment a été introduite pour favoriser la ré-utilisabilité de morceaux
d’activité (un fragment peut être définit une fois et réutilisé dans plusieurs
activités). Renseignez les champs comme indiqué dans la figure.
f. Cliquez sur Finish, le projet est crée.
!
Si vous créez un fragment ce sera le fichier fragment_principale.xml
que vous devriez modifier dans la suite du tutoriel sinon vous modi-
fierez le fichier activite_principale.xml.
Exécution de l’application
Sur l’émulateur
Appuyez sur le bouton d’exécution (fig.3.4 ) et sélectionnez Android Application
dans la fenêtre qui s’affiche. L’émulateur se lance, ça peut prendre quelques minutes
soyez patients. Rassurez-vous, vous n’aurez pas à le relancer à chaque fois que
vous compilez votre projet, laissez-le ouvert et à chaque fois que vous compilez et
relancez votre application, elle sera rechargée dans l’émulateur en cours.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 12
Figure 3.1 – Création d’un projet
Figure 3.2 – Créer une activité
Polytech’ Paris Sud Dima RodriguezTutoriel Android 13
(a) Création d’activité sans fragment (b) Création d’activité avec fragment
Figure 3.3 – Nouvelle activité
Figure 3.4 – Exécution de l’application
Polytech’ Paris Sud Dima RodriguezTutoriel Android 14
Explorateur
Palette des composants graphiques
Navigateur des fichiers ouverts
Liste des composants
de l'activité
Propritétés du
composant selectionné
Navigation entre vue graphique et xml
Output
Aperçu de
l'activité
Debug et Execution
Figure 3.5 – Aperçu de l’interface Eclipse
Sur un appareil réel
Connectez l’appareil par câble USB à l’ordinateur et installez le pilote si nécessaire.
Activez l’option de débogage USB sur votre appareil (en général sous Settings
> Applications > Development). Lancez l’application depuis Eclipse comme
précédemment. Eclipse charge l’application sur votre appareil et la lance.
i
Une fois que votre application est compilée, un fichier MonAppli.apk
est créé dans le dossier bin de votre répertoire de travail. C’est l’exé-
cutable de votre application. C’est ce fichier que vous devez déployer
pour distribuer votre application. Le contenu de ce fichier peut être
inspecté à l’aide de n’importe quel logiciel standard de compression/-
décompression de fichiers.
Se repérer dans le projet
La figure 3.5 montre les principaux éléments de l’interface Eclipse.
Tout projet Android doit respecter une hiérarchie bien précise qui permettra au
compilateur de retrouver les différents éléments et ressources lors de la génération
de l’application. Cette hiérarchie favorise la modularité des applications Android.
A la création du projet, Eclipse crée automatiquement des dossiers pour contenir
Polytech’ Paris Sud Dima RodriguezTutoriel Android 15
les fichiers de code Java, les fichiers XML, et les fichiers multimédias. L’explorateur
de projet vous permettra de naviguer dans ces dossiers.
Les dossiers que nous utiliserons le plus sont src et res. Le premier contient le code
Java qui définit le comportement de l’application et le second comporte des sous
dossiers où sont stockés les ressources qui définissent l’interface de l’application
(l’apparence).
i
La séparation entre fonctionnalité et apparence est un point essentiel de la
philosophie Android.
Le code de la classe principale de l’application (Principale.java) est situé dans le
sous dossier polytech.android.monappli de src. Vous trouverez en annexe une brève
explication du code qui y est généré par défaut. C’est dans le dossier src que seront
enregistrées toutes les classes que nous allons créer dans ce projet.
Par ailleurs, tout ce qui touche à l’interface utilisateur sera intégré dans les sous
dossiers de res, dont voici une brève description :
layout regroupe les fichiers XML qui définissent la disposition des composants
sur l’écran. Il contient déjà, dès la création du projet, le layout de l’activité
principale que nous avons créée.
drawable-**** contient tout élément qui peut être dessiné sur l’écran : images
(en PNG de préférence), formes, animations, transitions, icône, etc.. Cinq
dossiers drawable permettent aux développeurs de proposer des éléments
graphiques pour tout genre d’appareil Android en fonction de sa résolution.
En populant correctement ces dossiers on peut ainsi créer des applications
avec une interface qui s’adapte à chaque résolution d’écran avec un
seul fichier .apk.
ldpi low-resolution dots per inch. Pour des images destinées à des
écrans de basse résolution (~120dpi)
mdpi pour des écrans de moyenne resolution (~160dpi)
hdpi pour des écrans de haute résolution (~240dpi)
xhdpi pour des écrans ayant une extra haute résolution (~320dpi)
xxhdpi pour des écrans ayant une extra extra haute résolution (~480dpi).
menu contient les fichiers XML définissant les menus
Polytech’ Paris Sud Dima RodriguezTutoriel Android 16
values contient les fichiers XML qui définissent des valeurs constantes (des
chaines de caractères, des dimensions, des couleurs, des styles etc.)
Dans le dossier gen vous verrez du code java généré automatiquement par Eclipse.
Nous nous intéresserons particulièrement au fichier R.java dans le package polytech.android.monappli.
Ce fichier définit une classe R dans laquelle sont définis les
identifiants des ressources de l’application. A chaque fois que vous rajouterez une
ressource à votre application un identifiant sera généré automatiquement dans
cette classe vous permettant par la suite de pouvoir le référencer pour l’utiliser
dans votre code 2
.
Vous trouverez également sur la racine du projet un fichier nommé AndroidManifest.xml.
Ce fichier est obligatoire dans tout projet Android, et doit toujours
avoir ce même nom. Ce fichier permet au système de reconnaitre l’application.
Modification de l’interface utilisateur
Pour l’instant notre application ne fait qu’afficher un message sur l’écran, dans
cette section nous allons modifier l’interface pour y mettre un champ de saisie et
un bouton.
Une interface utilisateur est en général constituée de ce qu’on appelle des ViewGroups
qui contiennent des objets de type View ainsi que d’autres ViewGroups.
Un View est un composant, tel un bouton ou un champ de texte, et les ViewGroups
sont des conteneurs qui définissent une disposition des composants (Views)
qui y sont placés. ViewGroup définit la classe de base des différents layouts.
Comprendre le layout
La disposition de notre interface est définie dans le fichier fragment_principale.xml
situé dans le dossier layout de res. (ou bien le fichier activite_principale.xml si vous
n’avez pas définit de fragment à la création de votre projet). Ouvrez ce fichier.
2. A l’intérieur de classe R sont définies plusieurs classes, dites nichées, telles que string,
drawable, layout, menu, id, etc. Une classe nichée est membre de la classe qui la contient.
On a recours à ce genre de classe en général lorsqu’on veut définir une classe qui n’est utilisée
qu’à l’intérieur d’une autre classe. Si on la déclare privée elle ne sera visible qu’a l’intérieur de la
classe qui l’a définie. Par ailleurs cette dernière peut également accéder aux attributs privés de la
classe nichée. C’est une façon d’améliorer la lisibilité du code en regroupant les fonctionnalités qui
vont ensemble. Dans notre cas toutes les classes nichées dans R sont publiques, donc accessibles
depuis l’extérieur, mais comme elles sont membres de la classe R, pour y accéder, il faut passer
par R. On utilisera des notations telles que R.string puisque ces classes sont statiques.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 17
La première balise que vous retrouverez est qui définit
le type du conteneur qui compose l’interface, il impose la façon dont les composants
seront disposés. Plusieurs types de conteneurs existent, les plus communs
sont RelativeLayout, LinearLayout, TableLayout, GridView,
ListView. L’utilisation d’un RelativeLayout, par exemple, implique que les
composants seront placés selon des positions relatives les uns par rapport aux
autres. Un LinearLayout implique une disposition linéaire verticale ou horizontale,
un GridView permet la disposition des éléments selon une grille qui peut
défiler, etc.
A l’intérieur de la balise vous verrez un ensemble d’attributs
définis selon le format
plateforme:caractéristique=”valeur”
Par exemple le premier attribut xmlns:android précise où sont définis les balises
Android utilisées dans ce fichier.
La balise , fille de la balise , définit un composant
texte qui sera placé sur le layout. En effet, c’est sur ce composant là qu’on
écrit le “Hello World” qu’affiche notre application. Cette chaine de caractère est
définie par l’attribut android:text. La notation "@string/hello_world"
fait référence à une chaine de caractère qui s’appelle hello_world et qui est
définie dans le fichier strings.xml (dans le dossier values).
Modifier le type de layout
Nous allons maintenant modifier le type du layout pour le transformer en LinearLayout.
La figure 3.6 trace la dérivation de la classe LinearLayout. Nous
rajouterons ensuite nos composants sur ce layout dans une disposition linéaire.
Figure 3.6 – Hiérarchie de LinearLayout
Les layouts sont des ViewGroup qui sont eux mêmes des View [1]
Dans le fichier fragment_principale.xml
Polytech’ Paris Sud Dima RodriguezTutoriel Android 18
. supprimez l’élément
. remplacez l’élément par
. rajoutez l’attribut android:orientation et mettre sa valeur à “horizontal”
Le code dans le fichier devient ainsi
Rajouter d’un champ de saisie
. Rajoutez un élément dans le tel que
Nous avons ainsi placé un champ de saisie avec les attributs suivants :
android :id permet de donner un identifiant unique à ce View qu’on utilisera
pour référencer cet objet à l’intérieur de notre code.
Le symbol @ est nécessaire pour faire référence à un objet ressource à partir
d’un fichier XML. id est le type de ressource et chp_saisie est le nom
qu’on donne à notre ressource. Le symbole + est utilisé pour définir un ID
pour la première fois. Il indique aux outils du SDK qu’il faudrait générer
un ID dans le fichier R.java pour référencer cet objet. Un attribut public
static final chp_saisie sera défini dans la classe id.Le symbole
+ ne doit être utilisé qu’une seule fois au moment où on déclare la ressource
pour la première fois. Par la suite si on veut faire référence à cet élément,
à partir d’un XML, il suffira d’écrire @id/chp_saisie.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 19
android :layout_width permet de spécifier la largeur de élément.
“wrap_content” signifie que le View doit être aussi large que nécessaire
pour s’adapter à la taille de son contenu. Si en revanche on précise
“match_parent” comme on l’avait fait pour le LinearLayout, dans
ce cas le EditText occuperait toute la largeur de l’écran puisque sa largeur
sera celle de son parent c-à-d le LinearLayout
android :layout_height idem que pour le layout_width mais pour la hauteur
android :hint précise le texte par défaut à afficher dans le champ de saisie
quand il est vide. Nous aurions pu préciser directement la chaine de caractère
ici codée en dur, mais on préfère utiliser plutôt une ressource qu’on
définira dans strings.xml . Noter que l’utilisation de + ici n’est pas nécessaire
parce qu’on fait référence à une ressource concrète (qu’on définira
dans le fichier xml) et non pas à un identifiant que le SDK doit créer dans
la classe R.
i
Privilégiez toujours l’utilisation des ressources strings plutôt que des chaines
de caractères codées en dur. Cela permet de regrouper tout le texte de votre
interface dans un seul endroit pour simplifier la recherche et la mise à jour
du texte, de plus ceci est indispensable pour que votre application puisse être
multilingue. l’IDE vous affichera un avertissement en cas de non respect de
cette recommandation.
Après la modification du code que nous venons de faire, quand vous sauvegarderez
le fichier, un message d’erreur vous indiquera que l’identifiant str_chp_saisie
n’est pas connu. Nous allons donc le définir.
. Ouvrez le fichier strings.xml qui se trouve dans res>values
. Rajoutez une nouvelle string nommée str_chp_saisie et dont la valeur
est “Entrer un texte”
. Vous pouvez éventuellement supprimer la ligne qui définit “hello_world”
Votre fichier strings.xml ressemblera donc à ceci
MonAppli
Entrer un texte
string>
Polytech’ Paris Sud Dima RodriguezTutoriel Android 20
Figure 3.7 – Premier test de l’application modifiée
Settings
. Une fois que vos modifications sont sauvegardées vous remarquerez la création
de deux attributs dans le fichier R.java.
• Un attribut constant nommé chp_saisie dans la classe id. C’est un
numéro unique qui identifie l’élément EditText que nous venons de
rajouter. Cet identifiant nous permettra de manipuler l’élément à partir
du code.
• Un attribut constant nommé str_chp_saisie dans la classe string.
Il fait référence à la chaine de caractère et nous permettra de l’utiliser
dans le code.
Lancez l’application, l’émulateur affichera un écran tel que dans la figure 3.7.
Tapez un texte et remarquez comment la taille du champ de saisie s’adapte à la
longueur du texte.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 21
(a) Disposition par défaut (b) Le EditText a un poids de 1
Figure 3.8 – Champ de saisie et bouton
Rajouter un bouton
. Dans le fichier strings.xml rajoutez une chaine de caractère qui s’appelle
"btn_envoyer" et qui vaut Envoi.
. Dans le fichier du layout rajoutez un élément tel que
Lancez l’application. Vous devez voir un bouton à coté du champ de saisie (fig.3.8a).
Si vous souhaitez que votre champ de saisie occupe toute la largeur de l’écran
qui reste après le positionnement du bouton il faut spécifier un poids de 1 au
EditText et une largeur de 0.
Répondre aux évènements
Pour répondre à un appui sur le bouton il suffit de définir un attribut android:onClick
pour le bouton en lui donnant comme valeur le nom de la
méthode qui devrait être appelée quand le bouton est appuyé, et d’implémenter
cette méthode de réponse dans la classe principale de l’activité.
. Dans le fichier xml du layout, rajoutez l’attribut android:onClick à
l’élément bouton tel que :
Polytech’ Paris Sud Dima RodriguezTutoriel Android 22
. Dans la classe Principale rajoutez la méthode
/** Méthode appelée quand on appuie sur Envoi */
public void envoiMessage (View view){
// le code de traitement ira ici
}
!
Il faut absolument respecter cette signature pour la méthode afin que le
système puisse l’associer au nom donné par android:onClick. Le paramètre
view est rempli par le système et correspond à l’élément qui a généré
l’évènement (le bouton Envoi dans notre cas).
Avant d’aller plus loin dans le traitement, vous pouvez déjà tester si l’appel s’effectue
correctement quand le bouton est appuyé. Pour cela, mettez un point d’arrêt
à l’intérieur de la méthode envoiMessage() et lancez l’application en mode
Debug (fig. 3.5).
. Dans l’émulateur appuyez sur le bouton Envoi et vérifiez que le programme
entre bien dans la méthode envoiMessage().
. Arrêtez le débogage et revenez en mode Java en cliquant sur le bouton
correspondant en haut à droite de l’IDE.
Créer et lancer une autre activité
Dans la suite, nous allons répondre à l’appui du bouton en lançant une deuxième
activité qui affichera le texte qu’on aurait tapé dans le champ de saisie de l’activité
principale.
Création d’une activité
. Cliquez sur le bouton new de la barre d’outil Eclipse et sélectionner Android
Activity, puis cliquez sur Next (fig. 3.9a)
. Sélectionnez Blank Activity et appuyez sur Next.
. Définissez les paramètres de l’activité comme dans la figure 3.9b
Polytech’ Paris Sud Dima RodriguezTutoriel Android 23
(a) Wizard de création (b) Définition de l’activité
Figure 3.9 – Création d’une nouvelle activité
En plus des champs déjà vus au moment de la création de l’activité principale,
vous remarquez que pour notre nouvelle activité il faut définir une activité parent.
Ceci est utile pour implémenter le comportement par défaut du bouton retour.
Une fois l’activité créée Eclipse génère :
. un fichier AffichMessage.java contenant le code la classe
. les fichiers xml correspondant au layout de la nouvelle activité
. un élément dans le fichier AndroidManifest.xml et affecte
ses attributs avec les valeurs que nous avons précisées lors de la création
de l’activité
Polytech’ Paris Sud Dima RodriguezTutoriel Android 24
. une chaine de caractère dans le fichier strings.xml correspondant au titre
de notre nouvelle activité.
...
MonMessage
...
Lancement de l’activité
Pour faire communiquer les deux activés (l’activité principale et celle que nous
venons de créer) il faut passer par un Intent. Ce dernier représente l’intention de
faire quelque chose, et permet à l’activité principale de lancer l’activité d’affichage.
Dans la méthode envoiMessage() de la classe Principale :
. Créez une intention,
Intent intent = new Intent(this, AffichMessage.class);
sans oublier d’importer la classe
import android.content.Intent;
A la construction de l’objet intent, nous précisons deux arguments : le
premier est un objet de type Context qui fait référence à l’application
qui crée l’intention et le deuxième précise le nom (de la classe) de l’activité
qui crée l’intention. Comme le Intent peut être utilisé pour faire
communiquer deux applications, il ne suffit pas de préciser uniquement le
nom de l’activité qui le crée mais il faut également définir l’application qui
l’invoque.
. lancez l’activité
startActivity(intent);
Exécutez l’application et appuyez sur le bouton Envoi. La nouvelle activité se lance
et affiche “Hello World !”. En effet c’est le comportement par défaut qui a été défini
par le layout dans fragment_affich_message.xml. Notez que le bouton de retour
est déjà fonctionnel et permet de remonter à l’activité principale. Ceci est dû au
Polytech’ Paris Sud Dima RodriguezTutoriel Android 25
fait que nous l’avons indiqué comme activité parent au moment de la création de
notre activité d’affichage.
Communication entre les activités
Envoyer un message
Si nous souhaitons que le texte tapé dans l’activité principale soit affiché dans
l’activité d’affichage, il faut faire communiquer les deux activités de sorte à ce
que la première envoie le texte à la deuxième. Ceci s’effectue en utilisant le même
Intent qui a servi pour le lancement de l’activité. En effet une intention peut aussi
transporter un paquet de données.
Modifier la méthode envoiMessage() pour qu’elle contienne le code ci-dessous,
sans oublier d’importer les classes nécessaires (Eclipse vous les proposera)
public void envoiMessage (View view){
Intent intent = new Intent(this, AffichMessage.class);
EditText editText = (EditText) findViewById(R.id.
chp_saisie);
String message = editText.getText().toString();
intent.putExtra(MESSAGE_SUPP, message);
startActivity(intent);
}
La méthode findViewById() permet de retrouver un objet de type View à
partir de son identifiant. Ici elle renvoie l’objet correspondant à chp_saisie
qu’on cast en EditText. La variable editText contient désormais l’objet
champ de saisie que nous avions posé sur l’interface principale. Nous récupé-
rons ensuite la chaine de caractère que contient ce champ en appelant editText.getText().toString().
Cette chaine est ensuite stockée dans la variable
message qui est passée en paramètre à la méthode putExtra() de l’objet
intent afin de charger l’intention avec ce message. Afin que l’activité d’affichage
puisse identifier et récupérer les données supplémentaires transportées par l’intention
il faut définir une clé pour ces données moyennant une constante publique.
Nous définissons donc la constante MESSAGE_SUPP dans la classe Principale.
public class Principale extends ActionBarActivity {
public final static String MESSAGE_SUPP = "polytech.
android.monappli.MESSAGE";
Polytech’ Paris Sud Dima RodriguezTutoriel Android 26
...
En général on définit ce genre de clé en utilisant le nom de notre package comme
préfixe. Ceci garantit l’unicité des clés dans le cas où notre application interagit
avec d’autres.
Récupérer et afficher le message
Arrivés à ce point, nous avons fait en sorte à ce que l’activité principale envoie un
message à l’activité d’affichage. Il nous reste maintenant à récupérer ce message
dans AffichMessage. Pour cela il suffit de rajouter le code ci- dessous dans
la méthode onCreate() de la classe AffichMessage . Cette méthode est
appelée à la création de l’activité.
Intent intent = getIntent();
String message = intent.getStringExtra(Principale.MESSAGE_SUPP
);
Ensuite, pour afficher le message nous allons créer un TextView, lui affecter le
message puis le rajouter à un layout qu’on passera à setContentView().
Dans les sections précédentes nous avons appris à créer et rajouter des
composants à partir du fichier xml, ici nous le faisons dans le code.
Voici le code complet de la méthode onCreate()
protected void onCreate(Bundle savedInstanceState) {
/*appeler onCreate de la classe mère*/
super.onCreate(savedInstanceState);
/*récupérer le message transporté par l’intention*/
Intent intent = getIntent();
String message = intent.getStringExtra(Principale.
MESSAGE_SUPP);
/*créer le textView*/
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
/*créer un layout tabulaire*/
TableLayout monLayout = new TableLayout(this);
/*rajouter le textView au layout*/
monLayout.addView(textView,0);
Polytech’ Paris Sud Dima RodriguezTutoriel Android 27
/*définir monLayout comme étant le layout de l’
activité*/
setContentView(monLayout);
}
Remarquez qu’ayant supprimé la ligne
setContentView(R.layout.activite_affich_message);
qui s’y trouvait par défaut nous n’utilisons plus le fichier activite_affich_message.xml
pour définir le layout de l’activité, mais nous définissons le contenu de l’écran dans
le code.
On aurait pu simplement définir le textView comme layout sans passer par
monLayout et ce en écrivant
setContentView(textView);
dans ce cas l’activité ne contiendrait que le message. Cependant nous avons préféré
créer un layout tabulaire qui nous servira pour la suite de ce tutoriel.
Exécutez l’application, entrez un texte dans le champ de saisie et appuyez sur le
bouton Envoi. Votre texte devrait apparaitre sur l’écran suivant.
Créer des animations
Il existe deux façons de faire des animations avec Android. La première est
basée sur l’affichage d’une série d’images qui constituent l’animation. C’est la
méthode la plus simple. La deuxième méthode, quant à elle, repose sur le calcul de
transformations mathématiques pour animer graphiquement un objet. Alors que
la première, basée sur les images, est gourmande en terme d’espace de stockage
(taille de l’application) la deuxième, dite vectorielle, nécessite plus de ressources
de calculs. Dans le cadre de ce tutoriel nous nous limiterons à l’introduction de la
méthode la plus simple, vous pouvez vous référez à [2] pour une explication des
animations vectorielles.
Pour commencer il faut créer, pour chaque résolution, une série d’images qui
composera l’animation. Joint à ce tutoriel nous proposons 12 images définissant
une séquence de rotation de la terre pour la résolution hdpi.
. Copiez les images dans le dossier drawable-hdpi
Polytech’ Paris Sud Dima RodriguezTutoriel Android 28
Figure 3.10 – Nouveau xml pour définir une animation
. A l’aide d’un clic droit sur ce dossier dans l’explorateur Eclipse sélectionnez
New>Android XML File
. Sélectionnez Drawable comme ressource, dans le projet MonAppli et nommezle
anim_terre avec animation-list comme élément de base et cliquer Finish
(fig. 3.10)
. Eclipse génère alors un fichier xml contenant un squelette d’animation
avec la balise
. Modifiez le fichier de sorte à rajouter un paramètre android:oneshot
en le mettant à “false" pour que l’animation boucle indéfiniment et
remplissez l’animation par des items définissant les images.
Pour chacune des images il faut préciser android:duration qui définit la durée
d’affichage de l’image en ms.
Notez que dès que les fichiers png sont rajoutés au dossier drawable des identifiants
image1, image2, ... image12 sont automatiquement crées dans la classe drawable
de R.java. Ce sont ces identifiants que nous utilisons ici.
Pour faire apparaitre l’animation il faut rajouter un élément dans
le layout principal.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 30
Figure 3.11 – Animation en LinearLayout
L’attribut android:contentDescription permet de définir un label pour
l’image. Eclipse donnera un avertissement si vous ne fournissez pas cette description
pour assurer l’accessibilité de votre application à tous les utilisateurs.
N’oubliez pas de définir la chaine de caractère anim_terre_descript
dans le fichier string.xml
Exécutez l’application, vous verrez l’animation s’afficher à droite de l’écran à coté
du bouton (fig. 3.11). Un LinearLayout ne compte qu’une ligne, tous les élé-
ments sont donc disposés sur la même ligne. Si on souhaite placer l’animation sur
une ligne à part, il faudrait mettre deux LinearLayout ou bien changer le type
de layout.
Pour changer de layout on pourrait bien entendu modifier directement le code xml
pour remplacer par un autre type en adaptant les attributs du
layout, ainsi que ceux des éléments qui y sont disposés, mais on pourrait également
le faire graphiquement.
. Ouvrez le fichier fragment_principale.xml
. Sélectionnez l’onglet Graphical layout (fig.3.5). A l’aide d’un clic droit sur
LinearLayout sélectionnez Change Layout et passez en RelativeLayout
. En cliquant sur Preview vous pouvez avoir un aperçu des modifications
qu’effectuera l’environnement de développement pour s’adapter au changement
de layout.
. Une fois que vous avez modifié le layout, vous pouvez maintenant, en mode
graphique (glisser-déposer), disposer le ImageView en dessous des autres
éléments.
. Réarrangez le champ de saisie et le bouton pour occuper complètement la
première ligne. Vous devriez supprimer la ligne concernant l’attribut
android:layout_weight dans le xml (il ne peut pas s’appliquer à un
Polytech’ Paris Sud Dima RodriguezTutoriel Android 31
Figure 3.12 – Animation en RelativeLayout
)
Exécutez l’application, l’activité devrait ressembler à la figure 3.12
Création et contrôle des animations à partir du code
Nous venons de créer une animation à partir des fichiers xml, cependant dans
certaines situations il est utile de créer et de contrôler des animations depuis le
code Java. Nous allons, dans ce qui suit, refaire la même animation dans l’activité
AffichMessage mais, cette fois, à partir du code de la classe. Nous en
profiterons pour apprendre à créer des boutons dans le code Java et à gérer leurs
évènements.
. Créez trois données membres de la classe AffichMessage tels que
protected Button playBtn;
protected Button stopBtn;
protected ImageView globe;
. Dans la méthode onCreate() créez le globe et associez-lui l’animation
créée précédemment
globe = new ImageView(this);
globe.setImageResource(R.drawable.anim_terre);
. Toujours dans onCreate(), créez les deux boutons et gérez leurs clics
/*créer le bouton stop*/
stopBtn = new Button(this);
stopBtn.setText(R.string.btn_stop);
Polytech’ Paris Sud Dima RodriguezTutoriel Android 32
/*définir et implémenter le callback du Click*/
stopBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
AnimationDrawable monAnimation =(
AnimationDrawable)globe.getDrawable();
monAnimation.stop();
}
});
/*créer le bouton play*/
playBtn = new Button(this);
playBtn.setText(R.string.btn_play);
/*définir et implémenter le callback du Click*/
playBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
AnimationDrawable monAnimation =(
AnimationDrawable)globe.getDrawable();
monAnimation.start();
}
});
Pensez à définir les chaines de caractères btn_play, et btn_stop dans
string.xml
. Ajoutez globe, play_btn etstop_btn au layout
monLayout.addView(globe,1);
monLayout.addView(playBtn,2);
monLayout.addView(stopBtn,3);
Exécuter et tester le comportement de l’application.
Créer un View personnalisé pour gérer un jeu
La plupart du temps quand il s’agit de concevoir un jeu, il est indispensable de
pouvoir dessiner sur l’écran. Dans cette section nous allons créer une classe dérivée
de View que nous personnaliserons pour faire déplacer une image sur l’écran et
interagir avec l’utilisateur.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 33
Figure 3.13 – Création de la classe MonViewPerso
Création de la classe MonViewPerso
. Dans l’explorateur d’Eclipse faites un clic droit sur le package contenant
vos classes (polytech.android.monappli) et sélectionnez New>Class
. Nommez-la MonViewPerso et faites-la hériter de View(fig.3.13 ). Vous
pouvez naviguer pour retrouver le nom de la classe mère.
. Cliquez sur Finish, Eclipse génère un fichier MonViewPerso.java
Une erreur s’affiche déjà, il faut définir explicitement un constructeur qui fait appel
au constructeur de la classe de base. En effet si nous ne le définissons pas, un
constructeur par défaut, sans paramètre, est rajouté implicitement et fait appel au
constructeur View() sans paramètre, or ce dernier n’existe pas. La classe View
ne définit que des constructeurs avec arguments.
Nous définirons donc le constructeur ci dessous
public MonViewPerso(Context context,AttributeSet attrs) {
super(context,attrs);
}
Polytech’ Paris Sud Dima RodriguezTutoriel Android 34
Afin de définir comment notre vue se dessine sur l’écran il faut implémenter la
méthode onDraw()qui sera invoquée automatiquement par le système à chaque
fois qu’il a besoin d’afficher ou de rafraichir le View.
Nous définirons d’abord un objet de dessin (une sorte de pinceau) comme attribut
de la classe MonViewPerso
Paint p = new Paint();
que nous utiliserons dans la méthode onDraw() comme suit
public void onDraw (Canvas canvas) {
/*définir la couleur de l’objet de dessin */
p.setColor(Color.BLACK);
/*définir son style en remplissage*/
p.setStyle(Paint.Style.FILL);
/*dessiner un rectangle qui occupe la totalité du View*/
canvas.drawRect(0,0,getWidth(),getHeight(), p);
/*définir une autre couleur pour dessiner un texte*/
p.setColor(Color.WHITE);
/*définir la taille du texte*/
p.setTextSize(20);
/*définir le centre du texte comme étant son origine*/
p.setTextAlign(Paint.Align.CENTER);
/*dessiner le texte en positionnant son origine au centre du
View */
String texte = getResources().getString(R.string.hello_world);
canvas.drawText(texte, getWidth()/2, getHeight()/2, p);
}
Avec le code ci-dessus notre vue consistera en un écran noir au centre duquel on
affiche Hello World ! en blanc. L’argument canvas, que le système passe à la
méthode onDraw(), représente la zone de dessin de l’écran.
La méthode
public void drawText (String text, float x, float y, Paint paint);
dessine l’origine du texte à la position donnée par x et y. L’origine du texte est
définie avec
public void setTextAlign (Paint.Align align);
Polytech’ Paris Sud Dima RodriguezTutoriel Android 35
Notez qu’ici nous avons juste affiché un texte défini dans strings.h, mais il est
également possible de créer des chaines de caractères formatées pour, par exemple,
récupérer des valeurs de variables. Modifiez le code pour définir le texte tel que
String texte = String.format("%s %d x %d",texte,canvas.
getWidth(),canvas.getHeight());
pour afficher, en plus du Hello World, la résolution de l’écran.
Notez qu’ici nous récupérons les dimensions du canvas qui ne sont pas égales à
celle du View que nous avions utilisées dans drawText(). En effet la taille de
notre vue est inférieure à celle de l’écran.
Création d’une activité qui contiendra la vue personnalisée
Afin d’afficher notre vue il faut l’associer à une activité. Nous commencerons par la
création d’une activité que nous nommerons MonJeu, comme vu précédemment.
Nous définirons l’activité Prinicpale comme activité parent de MonJeu.
Une fois l’activité créée avec le Wizard, Eclispe la rajoute au AndroidManifest.xml
et crée le .java associé et les .xml de son layout.
Pour lancer cette activité nous rajouterons un bouton sur l’interface principale.
Nous avons déjà vu comment rajouter un élément sur un layout dans le fichier
xml, mais nous pouvons également le faire dans le Graphical layout.
. Ouvrez le fichier fragment_principale.xml
. Sélectionnez l’onglet Graphical layout.
. Dans la palette de composants, sélectionnez un bouton, glissez-le et déposezle
sur l’interface de l’activité.
. Dans la fenêtre de propriétés définir :
• Id : @+id/btn_jeu
• Text : @string/btn_jeu (sans oublier de définir btn_jeu dans strings.xml)
• On Click : jouer
. Le fichier fragment_principale.xml est mis à jour avec les propriétés que
nous venons de définir
. Dans le code de la classe Principale implémenter la méthode jouer()
qui répondra aux appuis sur le bouton
public void jouer (View view){
Intent intent = new Intent(this, MonJeu.class);
startActivity(intent);
Polytech’ Paris Sud Dima RodriguezTutoriel Android 36
Figure 3.14 – Ajout d’un bouton pour lancer le jeu
}
Si vous testez l’application (fig.3.14 ), l’appui sur le bouton que nous venons de
rajouter lancera l’activité MonJeu. Cependant celle ci n’est pas encore associée à
notre vue et ne fait qu’afficher un message par défaut. Il nous reste donc à rajouter
un élément sur le layout de l’activité.
. Modifier le fichier fragment_mon_jeu.xml en supprimant l’élément
et le remplaçant par un élément tel que
Vous pouvez également faire cela de façon graphique dans le Graphical layout. En
effet, notre vue personnalisée apparait maintenant dans la palette et nous pouvons
la rajouter sur l’activité avec un glisser-déposer.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 37
Interaction avec l’utilisateur
Dans la suite nous souhaitons afficher une image sur la vue personnalisée et permettre
à l’utilisateur de la déplacer en la touchant.
. Rajoutez l’image au projet. Joint à ce tutoriel nous proposons des images
de planètes pour différentes résolutions qui sont utilisées dans [2]. Placez
les images dans les dossiers drawable correspondants.
. Si besoin, rafraichissez les dossiers drawable dans l’explorateur Eclipse
pour faire apparaitre ces nouvelles images dans l’arborescence. Vérifiez la
création automatique d’identifiant pour chacune de ces images dans la
classe drawable de R.java.
. Dans la classe MonViewPerso créez des attributs pour contenir l’image,
sa taille et sa position
Bitmap planet =null;
float xOri=0,yOri=0;
int largImage,hautImage;
. Dans le constructeur de MonViewPerso, récupérez l’image et ses dimensions
BitmapDrawable d = (BitmapDrawable) getResources().
getDrawable(R.drawable.earth);
planet = d.getBitmap();
largImage=planet.getWidth();
hautImage=planet.getHeight();
. Dans la méthode onDraw()dessinez l’image (après drawRect())
canvas.drawBitmap(planet, xOri, yOri, p);
Exécutez l’application, vous devriez voir l’image s’afficher en haut à gauche de
votre vue (fig.3.15). Afin de réagir au toucher de l’utilisateur il faut implémenter
la méthode onTouchEvent() qui est appelée quand l’utilisateur touche l’écran.
public boolean onTouchEvent (MotionEvent event){
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN: /*on a touché l’ecran*/
/*calculer la distance de la touche à l’origine de l’image
*/
deltaX = event.getX() - xOri;
Polytech’ Paris Sud Dima RodriguezTutoriel Android 38
deltaY = event.getY() - yOri;
/*tester si on a touché la planète*/
if (deltaX>= 0 && deltaX <= largImage
&& deltaY>= 0 && deltaY <= hautImage)
/*on a touché l’image, permettre le movement*/
move = true;
break;
case MotionEvent.ACTION_MOVE: /* le doigt bouge sur l’écran*/
if(move){
/*si le movement est permis, mettre à jour les
coordonnées de l’image*/
xOri = event.getX() - deltaX;
yOri = event.getY()- deltaY;
}
break;
case MotionEvent.ACTION_UP: /*le doigt a quitté l’écran*/
move = false;
break;
}
/*forcer un repaint pour rafraichir l’affichage*/
invalidate ();
return true;
}
Les attributs deltaX, deltaY et move sont définis tels que
float deltaX=0, deltaY=0;
boolean move=false;
Exécutez et testez l’application. On pourrait rajouter des conditions afin d’interdire
à la planète de sortir de la vue.
Temporisation
Dans certaines applications on est parfois amené à effectuer une tâche après un
certain délai, ou bien périodiquement toutes les x ms. Nous allons, dans la suite,
introduire la notion de temporisation que nous utiliserons pour faire déplacer notre
planète le long de l’écran.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 39
Figure 3.15 – Activité avec vue personnalisée
Pour ce faire nous passerons par un objet Handler qui permet de programmer
l’appel d’une méthode après un délai déterminé.
. Dans la classe MonViewPerso, définir un attribut de type Handler tel
que
Handler timerHandler = new Handler();
. Dans le constructeur poser une tâche à exécuter après 0ms
timerHandler.postDelayed(updateTimerThread, 0);
updateTimerThread est un objet de type Runnable que nous définirons
dans un instant. Le fait de poster cet objet avec un délai, met l’appel à
sa méthode Run() dans la queue d’exécution du processus principal pour
être exécutée une fois le délai écoulé. Autrement dit, le postDelayed()
programme l’appel de la méthode Run() de updateTimerThread dans
0ms.
. Définir un attribut de type Runnable tel que
private Runnable updateTimerThread = new Runnable() {
public void run() {
/*mettre à jour les coordonnées de la planète*/
xOri++;
yOri++;
/*forcer le rafraichissement de l’écran*/
Polytech’ Paris Sud Dima RodriguezTutoriel Android 40
invalidate ();
/*reprogrammer l’objet pour une exécution dans 50ms
*/
timerHandler.postDelayed(this, 50);
}
};
Avec ce code nous avons défini ce qu’on appelle une classe anonyme. Les classes
anonymes en Java permettent de déclarer et instancier une classe en même temps.
Elles ressemblent aux classes locales nichées mais, contrairement à ces dernières,
elles ne possèdent pas de nom. On les utilise quand on veut utiliser une classe locale
une seule fois. On n’a pas besoin de la nommer puisqu’on ne fera plus référence à
elle ailleurs.
La définition de la classe s’effectue avec une expression au moment de l’appel
du constructeur. Après l’invocation du constructeur on écrit un bloc contenant la
définition de la classe. Il suffit de mettre
. new avec le nom de l’interface que la classe doit implémenter, ici Runnable,
ou bien le nom de la classe mère si c’était le cas.
. suivi des parenthèses avec les paramètres du constructeur de la classe de
base. Ici, comme il s’agit d’une interface, il n’y a aucun paramètre. (les
interfaces n’ont pas de constructeurs)
. puis, entre accolades, le corps de la classe en terminant par un ;
Lancez l’application, vous verrez la planète se déplacer en diagonale sur l’écran.
Notez qu’il est toujours possible de la déplacer avec le toucher.
i
La classe Handler permet aussi la communication entre deux processus
différents, vous pouvez vous référez à [3] pour en savoir plus.
Rajouter un bouton sur la barre d’action
Lorsque nous avons crée nos activités, à chaque fois nous sommes partis d’une activité
avec barre d’action. En effet nos deux activités héritent de ActionBarActivity.
Un menu est rajouté par défaut contenant l’action Settings. Vous pouvez le faire
apparaitre en cliquant sur le symbole en haut à droite de l’écran (fig. 3.16 ). Si
vous cliquez sur Settings rien ne se passe, le code de réponse par défaut ne fait
rien.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 41
Figure 3.16 – Barre d’action
Nous allons, dans la suite, apprendre à rajouter notre propre item du menu et lui
définir une action. C’est très simple !
Les boutons de la barre d’action sont définis dans un fichier xml du dossier res/-
menu. Pour ajouter un bouton d’action à l’activité principale nous allons modifier
le fichier principale.xml pour y insérer un item
L’attribut app:showAsAction définit quand et comment l’item doit apparaitre
en tant que bouton sur la barre d’action. En précisant “never” notre item n’apparaitra
pas sur la barre mais uniquement quand on déroule le menu. Si on précise
"ifRoom|withText" le texte de l’item apparaitra s’il y a de la place.
Lancez l’application, vous devriez voir le nouvel item dans le menu. N’oubliez pas
de définir la chaine action_mon_action dans strings.xml.
Il nous reste maintenant à implémenter l’action à exécuter quand notre item est
sélectionné par l’utilisateur. Ceci s’effectue dans la méthode onOptionsItemSelected()
de la classe Principale. Repérez cette méthode et rajoutez les
lignes suivantes dans son corps
if (id == R.id.action_mon_action) {
//le traitement se fera ici
return true;
}
Lancement d’une autre application
Nous allons maintenant utiliser notre bouton d’action pour lancer une autre application
du système : un navigateur par exemple. Comme nous l’avons fait pour
Polytech’ Paris Sud Dima RodriguezTutoriel Android 42
lancer une deuxième activité de notre application, nous allons également utiliser
un Intent pour lancer une deuxième application.
. Il faut d’abord créer l’intention
Uri webpage = Uri.parse("http://www.polytech.u-psud.fr");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
La classe Uri fait référence à un URI (uniform resource identifier)
3
. Ici
on forme un objet Uri à partir d’une chaine de caractère définissant une
adresse web. Une localisation géographique, par exemple, peut aussi constituer
un URI.
. Avant de la lancer, il faut tester s’il existe une application capable de ré-
pondre à cette intention dans notre cas ça revient à tester si un navigateur
est présent sur l’appareil
PackageManager packageManager = getPackageManager();
List activities = packageManager.
queryIntentActivities(webIntent, 0);
boolean isIntentSafe = activities.size() > 0;
queryIntentActivities() retourne une liste d’activités capables de
gérer l’objet Intent qu’on lui passe en paramètre.
. Si la liste n’est pas vide, on peut lancer l’intention en toute sécurité
if (isIntentSafe) {
startActivity(webIntent);
}
Un Intent peut aussi porter un message à destination de l’autre application. On
pourrait par exemple lancer l’application Calendrier en lui passant les détails de
l’évènement qu’on souhaite rajouter sur notre agenda.
On peut aussi demander à ce que l’application qu’on lance nous renvoie un résultat
comme pour par exemple récupérer les coordonnées d’un contact en lançant
l’application Répertoire.
Des applications tiers peuvent aussi lancer notre application. Afin de gérer ces
accès on peut définir des filtres d’intention et définir comment répondre à ces
intentions.
Pour plus d’information sur les interactions entre les applications consultez [5].
3. l’URI est une chaine de caractère qui identifie le nom d’une ressource. L’URL est une forme
d’URI
Polytech’ Paris Sud Dima RodriguezTutoriel Android 43
Changement de langue
Rendre votre application multilingue est très simple si vous avez défini tous vos
textes dans strings.xml. Il suffit de définir un strings.xml pour chaque langue que
vous voulez supporter et les placer dans des dossiers values nommés avec le code
de la langue en préfixe. Par exemple values-fr pour le français, values-en pour
l’anglais, values-es pour l’espagnol, etc.
Android sélectionnera les ressources appropriées en fonction de la langue que l’utilisateur
a défini pour son appareil.
. Créez un dossier values-en dans le dossier res : Cilc droit sur res dans
l’explorateur Eclipse puis New>Folder.
. Dans ce dossier créez un fichier strings.xml : Cilc droit sur le dossier dans
l’explorateur Eclipse puis New>Android XML File
. Copiez ce que vous aviez déjà dans le strings.xml que nous avions utilisé
jusqu’à présent et traduisez le texte.
. Chargez l’application. Changez la Locale de l’appareil et lancer l’application
: L’application passe sur la langue que vous venez de sélectionner.
Si jamais vous choisissez une langue que votre application ne supporte pas, ce
seront les chaines de caractères définies par défaut dans values/strings.xml qui
seront utilisées.
Conclusion
Nous avons introduit quelques concepts de base de la programmation Android.
Avec les exemples relativement simples détaillés dans ce document nous avons
présenté les premières étapes de la creation d’applcations.
Nous venons de vous accompagner dans vos premiers pas avec Android, maintenant
c’est à vous de jouer !
Polytech’ Paris Sud Dima RodriguezLexique
Activity Une activité représente un écran contenant une interface utilisateur.
Une application est composée d’un ensemble d’activités. Les activités
peuvent interagir entre elles, intra-application ou inter-applications.
apk file C’est un fichier en format application package produit à l’issu de la
compilation d’une application Android. C’est le fichier destiné aux utilisateurs.
Ce fichier inclue le code de l’application sous forme d’un
executable DVM (.dex), les ressources multimédias, et le AndroidManifest.xml.
DVM Dalvik Virtual Machine. C’est une machine virtuelle disponible sur tout
appareil Android. Elle execute des fichiers en format .dex (format de
pseudo-code optimisé)
Fragment Un fragment représente un comportement ou une portion de l’interface
utilisateur dans une activité. On peut combiner plusieurs fragments
dans une même activité pour créer une interface à volets multiples et
réutiliser un fragment dans plusieurs activités.
Intent C’est un message qui permet d’activer un composant (une activité
par exemple). C’est un messager qui demande une action à un autre
composant (de la même application ou d’une autre)
Layout Le layout définit la structure visuelle d’une interface utilisateur. Les
éléments d’un layout peuvent être définis soit dans un fichier XML
ou bien à l’exécution à partir d’instructions dans le code. L’utilisation
XML permet de mieux séparer l’apparence de l’application d’une part
et le code qui définit son comportement d’autre part. Ceci permet de
s’adapter plus facilement aux différentes cibles, il suffit de définir plusieurs
fichiers XML pour un même code.
44Tutoriel Android 45
Manifest Toute application Android doit posséder un fichier XML nommé AndroidManifest.xml.
Ce fichier contient des informations essentielles sur
l’application que le système doit connaitre pour pouvoir la lancer. Ce
fichier définit le nom du package de l’application, décrit les composants
de l’application, détermine le processus qui accueillera ces composants,
déclare les permissions dont l’application a besoin et celles
que les autres doivent avoir pour interagir avec l’application, déclare
la version Android minimale pour l’application, et liste les bibliothèques
dont l’application a besoin.
Resources Ce sont les ressources en relation avec la présentation de l’application
(images, fichiers audio etc.). Pour chaque fichier de ressource qu’on
inclue dans le projet, un identifiant unique est créé pour référencer
cette ressource. Le fait d’avoir des ressources séparées du code nous
donne la possibilité de proposer des versions différentes en fonction
de la configuration de la cible. En utilisant par exemple des images
différentes selon la résolution de l’appareil, une mise en forme adaptée
en fonction de l’orientation de l’affichage (portrait ou paysage), des fi-
chiers de chaines de caractères en plusieurs langues pour que l’interface
s’affiche dans la langue de l’utilisateur, etc.
Service Un service est un composant qui tourne en tâche de fond, pour effectuer
de longues opérations ou exécuter des tâches pour un autre
processus. Un service ne possède pas une interface utilisateur.
XML Extensible Markup Language (langage de balisage extensible), est un
langage informatique conçu pour faciliter les échanges de données entre
les systèmes d’informations. Il définit un ensemble de règles pour encoder
les informations en format texte d’une façon indépendante de
la machine. Il est basé sur des balises, cependant celles ci ne sont
pas définies par le standardard XML, c’est l’utilisateur/programmeur
qui définit ses propres balises. Le langage ne fait que définir les règles
d’ecriture.
Polytech’ Paris Sud Dima RodriguezAnnexes
Explication du code généré par défaut pour la
classe Principale
/*nom du package que nous avons défini*/
package polytech.android.monappli;
/******************************************************************/
/*importation des classes utilisées dans le code*/
/******************************************************************/
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
/******************************************************************/
/*Définition de la classe Principale qui hérite de ActionBarActivity*/
/******************************************************************/
public class Principale extends ActionBarActivity {
/*redéfinition de la méthode onCreate() héritée de ActionBarActivity.
Elle prend en paramètre un objet de type Bundle. La classe Bundle
définit un type d’objet pouvant contenir un ensemble de données,
et qui est destiné à échanger des données entre les activités. La
méthode onCreate() est appelée une fois par le système au premier
lancement de l’activité*/
protected void onCreate(Bundle savedInstanceState) {
46Tutoriel Android 47
/* l’argument savedInstanceState permet au système de passer à l’
activité l’etat dans lequel elle était à la fin de sa dernière
exectution. En effet quand on arrête une activité le système
appelle une certaine méthode ( onSaveInstanceState() ) dans
laquelle on peut sauvegarder certaines informations concernant l’
etat de notre activité pour les récupérer au moment où on la
relance. On pourrait par exemple sauvegarder le texte qui a été
tapé à l’exécution précédente, ou bien la position d’un scroll, ou
autre, pour les remettre quand on redémarre l’activité.*/
/*appel de onCreate() de la classe mère*/
super.onCreate(savedInstanceState);
/*avec setContentView() on définit le View que contiendra (affichera)
notre activité. Ici c’est le layout activite_principale (identifié
par R.layout.activite_principale)*/
setContentView(R.layout.activite_principale);
/* une valeur nulle de savedInstanceState implique qu’on lance l’
application pour la toute première fois*/
if (savedInstanceState == null) {
/*d’abord, avec getSupportFragmentManager() on récupère le
gestionnaire de fragments pour pouvoir interargir avec les
fragments associés à cette activité. Pour ce gestionnaire on
appelle beginTransaction() qui renvoie un objet de type
FragmentTransaction qui représente une série de transactions qu’on
pourra effectuer sur les fragments. Avec l’appel à add() on
rajoute un fragment à l’activité. On lui donne l’identifiant du
layout de notre activité principale (défini par
activite_principale.xml) ainsi qu’ un objet de type
PlaceholderFragment qu’on définira plus loin. L’appel à add()
renvoie l’objet FragmentTransaction auquel le fragment vient d’
être rajouté. Enfin avec commit() on engage la transaction.*/
getSupportFragmentManager().beginTransaction().add(R.id.
container,new PlaceholderFragment()).commit();
/*POUR RESUMER: on vien de rajouter le fragment à l’activité*/
}
}
/*La méthode onCreateOptionsMenu() est appelée au moment de la
création de la barre d’action. Le système lui passe un objet Menu
en paramètre, qu’on populera dans la méthode: C’est sur cet objet
qu’on rajoutera les éléments du menu */
public boolean onCreateOptionsMenu(Menu menu) {
Polytech’ Paris Sud Dima RodriguezTutoriel Android 48
/*getMenuInflater() renvoie un objet de type MenuInflater. C’est une
classe qui est capable de créer un objet menu à partir d’un
fichier xml, et ce grace à la méthode inflate(). Il suffit de lui
donner l’identifiant du menu xml (principale.xml) et l’objet de
type Menu dans lequel on veut créer les items du menu*/
getMenuInflater().inflate(R.menu.principale, menu);
/*il faut renvoyer true pour que le menu s’affiche*/
return true;
}
/*méthode appelée lorsqu’un item du menu est sélectionné*/
public boolean onOptionsItemSelected(MenuItem item) {
/*l’appui sur le bouton de retour est automatiquement traité si on
défini une activité parent dans AndroidManifest.xml, on n’a pas à
le traiter ici*/
/*on récupère l’identifiant de l’item sur lequel l’action a été faite
*/
int id = item.getItemId();
if (id == R.id.action_settings) {
/*l’action settings a été sélectionnée. Ici on ne fait rien*/
return true;
/*la méthode renvoie true pour indiquer qu’elle a traité l’action
*/
}
/*si on ne traite pas l’action, on demande à la classe mère de le
faire en invoquant sa méthode onOptionsItemSelected(). Si la
classe mère ne traite pas l’action elle renverra false (c’est
le comportement par défaut de ActionBarActivity)*/
return super.onOptionsItemSelected(item);
}
/******************************************************************/
/*Définition d’une classe interne */
/******************************************************************/
/* classe PlaceholderFragment qui hérite de Fragment*/
public static class PlaceholderFragment extends Fragment {
/*constructeur qui ne fait rien*/
public PlaceholderFragment() {
}
/*redéfinition de onCreateView() de la classe Fragment. Elle est
Polytech’ Paris Sud Dima RodriguezTutoriel Android 49
appelée pour créer l’interface utilisateur du fragment*/
public View onCreateView(LayoutInflater inflater, ViewGroup
container,Bundle savedInstanceState) {
/*inflater: objet qui permet la création d’un layout à partir d’un xml
container: le parent qui va contenir le fragment
savedInstanceState: même signification que le paramètre du onCreate de
la classe Principale*/
/*appel à la méthode inflate() pour créer l’interface correspondante
au layout. On lui passe l’identifiant de la ressource xml du
layout et le parent auquel il faut se rattacher (le ViewGroup qui
contiendra le fragment) si le troisième paramètre est true. S’il
est false le container sera juste utilisé pour récupérer les
paramètres du layout. Lorsqu’on précise false c’est l’activité qui
sera considérée comme le parent du view*/
View rootView = inflater.inflate(R.layout.
fragment_principale,container,false);
/*renvoi de l’objet View crée*/
return rootView;
}
}
}
Cycle de vie d’une activité
Toute activité passe par plusieurs états durant son cycle de vie, il est important
de connaitre ce cycle ainsi que les méthodes qui sont appelées à chaque fois que
l’application bascule d’un état vers l’autre. Le diagramme de la figure 3.17 résume
le cycle de vie d’une activité. Vous trouverez une explication détaillées des différents
états et méthodes ici et là.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 50
Figure 3.17 – Cycle de vie d’une activité
[1]
Polytech’ Paris Sud Dima RodriguezBibliographie
[1] http ://developer.android.com/reference
[2] Wallace Jackson, Learn Android App Development, Apress (Springer Verlag),
May 2013
[3] https ://developer.android.com/training/multiple-threads/ communicateui.html
[4] Chris Haseman, Android Essentials, Apress, July 2008
[5] https ://developer.android.com/training/basics/intents/index.html
51
La chaîne de signal analogique, selon National Semiconductor
Haute vitesse et basse puissance
19
Il y a quelques années, on annonçait le déclin de
l’électronique analogique, mais en fait ce secteur va
de mieux en mieux. Dans nombre de domaines, les
composants analogiques ont été remplacés par des
numériques, mais ils ont trouvé d’autres niches de
marché. Par exemple, on estime à dix le nombre de
composants analogiques requis pour le fonctionnement
de chaque DSP dans un circuit.
L’organisation mondiale des statistiques du commerce
des semi-conducteurs estime le marché analogique à
36.77 milliards de dollars US en 2007 et il semblerait
que sa croissance atteigne 12,6% l’année prochaine (le
deuxième plus important secteur de croissance de l’industrie,
après le logique). Ce développement a été alimenté par
une croissance considérable de l’utilisation des appareils
électroniques portables grand public et de l’infrastructure
de communications venant en support de ceux-ci. Les deux
fonctions principales qui restent et demeureront analogiques
dans l’avenir prévisible sont la gestion de puissance et la
chaîne de signal.
Le rôle de la gestion de puissance est évident, notamment
dans les appareils portables alimentés sur batteries, la durée
de vie de celles-ci étant primordiale au succès d’un produit
portable. La chaîne de signal constitue la seconde fonction
analogique d’un circuit et, bien qu’elle ait un rôle moins
évident qu’auparavant, elle est tout aussi importante.
Focus sur les composants analogiques
de National Semiconductor
National Semiconductor est l’un des premiers fabricants de
composants analogiques. L’entreprise a cédé son activité
microprocesseur Geode à AMD en 2003 afin de cibler
exclusivement ses solutions analogiques. L’entreprise focalise
tous ses efforts de R&D dans ce domaine technologique.
National offre des solutions de transfert de données série
et de conversion, de conditionnement de signal analogique
haute performance pour répondre aux besoins des
applications finales techniquement exigeantes, telles que les
stations de base sans fil, la réseautique, l’instrumentation,
l’équipement militaire, aérospatial et médical. L’entreprise
tente de simplifier le processus de conception de la chaîne de
signal avec une offre étendue de solutions. Cet article traite de
certaines solutions de National et explique les spécifications
les plus importantes requises par les ingénieurs concepteurs.
Les trois domaines du concept MIDAS, sur lesquels l’article
se concentre, sont les amplificateurs, les convertisseurs de
données et les produits d’interface.
Besoins pour la conception
La sélection des composants de la chaîne de signal implique
la prise en compte du flux d’un signal, de sa source (souvent
un capteur ou une source de signal) vers l’univers numérique
des contrôleurs, processeurs et FPGA où le traitement du
signal a lieu. Le processus de conception nécessite des
valeurs d’impédance appariées, une minimisation des
sources de bruit et la garantie d’un gain suffisant au niveau
de l’entrée pour commander un CAN. Dès que la chaîne de
base est élaborée, le travail de développement subsidiaire
implique de s’assurer que chaque composant de la chaîne
est correctement entraîné et protégé. La sélection du CAN
le « mieux adapté » pour une application donnée repose
sur plusieurs facteurs. La résolution est l’une des priorités
car la précision du système en dépend, généralement. La
précision elle-même dépend beaucoup de l’exécution du
CAN et peut varier selon qu’il s’agit d’applications à très haut
débit avec des fréquences d’échantillonnage supérieures
à 200Msps (ex., ADC08D1000WG-QV), d’applications à
haut débit allant de 1Msps à 200Msps (ex., ADC14V155) ou
d’applications à usage général et débit plus faible, inférieur à
1Msps. En général, le choix entre le CAN ou l’amplificateur est
habituellement le facteur restrictif dans les chaînes de signal à
haute fréquence, si bien que la sélection des deux exige une
grande attention.
L’un des besoins les plus exigeants pour ce qui concerne le
traitement de signal analogique est la fonction de conversion
d’une terminaison simple vers une différentielle : éclatement
du signal en deux signaux identiques qui peuvent être
comparés pour filtrer le bruit, la distorsion ou tout autre effet
non désiré au niveau signal. Celle-ci est souvent réalisée avec
des transformateurs, mais si la gamme de fréquence du signal
inclut du courant continu, le transformateur ne fonctionnera
pas et il sera nécessaire d’utiliser un amplificateur terminaison
simple / différentielle (ex., LMH6551). L’amplificateur ne
fournit pas seulement une amplification, mais offre également
déphasage niveau (permettant de soustraire le composant
CC du signal), fonctions de correspondance d’impédance
et gain. Bande passante, gain, bruit et distorsion constituent
les principales spécifications dont il faut tenir compte pour un
amplificateur. Le gain d’un amplificateur qui est légèrement
inférieur au signal maximum de la pleine échelle d’un CAN
est idéal pour éviter que le signal amplifié ne surcharge
l’entrée du CAN et écrêter le signal en raison d’un décalage
ou de légères imprécisions des valeurs de gain. Pour éviter
également l’atténuation du signal avant qu’il arrive au CAN, il
est souhaitable d’utiliser une bande passante d’amplificateur
de 3dB supérieure à la bande passante du signal d’entrée.
Enfin, dans tout système intégrant une chaîne de signal, le
rapport signal/bruit est sans conteste une métrique clé. Du
fait que le bruit d’horloge contribue au bruit d’ensemble du
système, et que les horloges sont des composants essentiels
de tout système, la régulation du bruit d’horloge est un
élément capital de la conception système. National fabrique
des conditionneurs d’horloge de précision avec VCO intégré
(ex., LMK03000). Ce dispositif permet au concepteur de
créer une architecture d’horloge complète (sous-système)
qui réalise la meilleure performance possible et, à un niveau
fonctionnel, non seulement génère une horloge de précision,
mais également reconditionne et distribue une horloge
générée en externe.
Invitez vos clients à consulter cet article en ligne sur
www.electronicsdesignworld.com
11
Puissance utile pour
une performance de pointe
Aujourd’hui, cette déclaration est
devenue une nécessité. Dans la
conception électronique moderne,
la puissance représente un produit fini et la
plus grande partie de la puissance qui fait
fonctionner l’électronique finit en chaleur
perdue car inutilisée.
De plus en plus de pays ajoutent
des fonctionnalités technologiquement
avancées, la courbe de la consommation
énergétique va cependant continuer à
monter. Conscient de cette tendance à la
hausse, National Semiconductor a développé
des produits PowerWise pour offrir un niveau
de performance avec une consommation
énergétique réduite.
Le rapport performance/puissance
Une mesure métrique simple pour une voiture
est la consommation moyenne de 0 à 100
km/h. Du fait de l’augmentation du prix des
carburants, cette mesure métrique prend
de l’importance. Ce concept s’applique
également au rapport performance/puissance
et pour un ingénieur cela peut signifier une ou
deux choses : consommation plus faible ou
performance supérieure. L’avantage évident
d’une consommation moindre est l’économie
plus importante réalisée ou la durée de
vie prolongée des batteries, en plus d’une
usure thermique réduite des composants
électroniques. Plus la température ambiante
est faible, plus la durée de vie du produit est
prolongée, impliquant une baisse des coûts
de remplacement.
Améliorer le rapport performance/
puissance peut aussi offrir des avantages
lorsqu’il est nécessaire d’installer un nouveau
design avec des ressources sortantes.
Par exemple, un boîtier Set Top (STB) pour
connexion par câble peut nécessiter un
espace physique égal ou plus petit que le
modèle précédent, une puissance de même
niveau ou supérieur, mais requiert un niveau
de performance supérieur. Même si les
ressources n’ont pas changées, pour réaliser
avec succès son projet, le concepteur doit
utiliser des composants plus performants et
consommant la même énergie ou moins.
Technologie de processus,
architecture et systèmes
La technologie de processus est importante,
non seulement pour un niveau de qualité
constant, mais également pour une meilleure
performance avec une consommation
moindre. Des traitements à bande passante
élevée et faible déperdition sont essentiels
pour fournir une performance globale
optimale dans les semiconducteurs, mais
ils ne représentent que 50% des critères
requis. Les techniques et propriétés
intellectuelles à la base de la conception des
dispositifs sont aussi importantes que les
traitements employés.
Autre aspect important de la mesure du
rapport performance/puissance qui n’est pas
toujours apparent au niveau des composants
individuels : la façon dont ces composants
interagissent entre eux et qui permettra de
réduire la consommation d’énergie.
Outils pour augmenter l’efficacité
Certains composants ont besoin d’outils
pour contribuer à améliorer le rapport
performance/puissance. Cela s’applique
essentiellement, mais non exclusivement,
aux régulateurs de commutation de
puissance. L’outil de conception WEBENCH
de National Semiconductor permet aux
ingénieurs de ‘composer en interne’ un
niveau de performance pour circuits
d’alimentation en contrepartie d’autres
paramètres, c.-à-d. la taille des composants.
La famille PowerWise de régulateurs
commutateurs simples (LM5576) en est
un bon exemple. Cette famille est prise en
charge par l’outil WEBENCH avec un contrôle
du réglage du rendement requis pour le
système, comme indiqué en Figure 1.
En 1908, William A. Smith déclarait, « L’ingénierie est la science de la maîtrise, de la conservation de l’énergie fournie et
stockée sous forme naturelle pour les besoins de l’homme. C’est le rôle de l’ingénierie d’utiliser cette énergie de manière
optimale afin qu’il y ait le moins
de pertes possible. »
Figure 1. Contrôle d’optimisation WEBENCH
Premier Farnell Global Technology Centre
Conception de systèmes médicaux avec des microprocesseurs
Abrégé
Les dispositifs électroniques médicaux représentent toute une gamme de matériel comprenant aussi bien des machines de diagnostic par imagerie qui occupent toute une pièce, que des petits dispositifs portables que les patients peuvent emporter partout.
Pour atteindre leurs objectifs de prestations optimales et de coûts réduits, les prestataires de soins de santé réclament aux fabricants des améliorations dans le domaine de la visualisation et de la transmission des données médicales image et vidéo. En réponse à cette demande, nous assistons à l'émergence de plusieurs tendances techniques susceptibles d'influencer l'architecture des matériels futurs :
Le développement de matériel disponible dans le commerce et de matériel portable ;
L'interface parallèle propriétaire sera remplacée par une interface HSIO standardisée ;
Ajout de dispositifs de communication par Internet filaires et sans-fil.
Alors que le public se préoccupe de plus en plus des questions de santé, la demande en produits médicaux électroniques sur le marché augmente, plus particulièrement dans le secteur des produits haut de gamme, comme les scanners CT, les IRM, les appareils de diagnostic à ultrasons ultra performants, etc.
La taille du marché mondial de l'électronique médicale a connu une croissance importante. Espicom (une société d'étude de marché) prévoit que le volume des ventes sur le marché mondial de l'instrumentation médicale dépassera les 200 milliards de dollars, la part des produits médicaux électroniques étant de 45 %, c'est-à-dire 90 milliards de dollars.
Quant à la perspective sur le marché médical chinois, il est évident que l'influence favorable provient des changements de politique gouvernementale, des progrès en matière de libéralisation du milieu hospitalier et d'une croissance accélérée du marché.
La tendance au développement de matériel de petites dimensions plus portable sera accompagnée d'exigences plus strictes en matière de consommation d'énergie et de traitement des signaux. Les ingénieurs vont donc devoir relever des défis encore plus importants.
Le marché chinois de l'électronique médicale poursuivait son expansion en 2006. Le volume total des ventes sur ce marché a dépassé les 20 milliards de RMB pour atteindre 21,08 milliards de RMB, une croissance de 15,6 % par rapport à l'année précédente, ce qui, de toute évidence, dépasse celle du même marché à l'échelle mondiale. Le marché chinois de l'électronique médicale maintiendra une croissance régulière avec un taux de croissance annuel moyen de 18,2 % dans les années à venir et on peut s'attendre à ce qu'en 2011, le volume de ce marché approche les 50 milliards de RMB.
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
Taux de croissance annuel moyen 11 %
Figure 1 Marché international des semi-conducteurs médicaux
Taux de croissance annuel moyen 12 %
Taux de croissance annuel moyen ultrasons 15 %
Source : Databeans, 2007
Figure 2 Marché international des semi-conducteurs d'imagerie médicale
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
bone density scanner
scanner de densité osseuse
MRI scanner
scanner IRM
Premier Farnell Global Technology Centre
X-ray
Rayon-X
PET scanner
scanner PET
CT Scanner
scanner CT
electrocardiogram
électrocardiogramme
other imaging
autre type d'imagerie
ultrasound
ultrasons
Les secteurs de l'industrie tels que les semi-conducteurs, les composants, les matériaux électroniques médicaux et le matériel de fabrication ont vu leur production accélérée par la croissance du marché de l'électronique médicale.
Dans les cinq prochaines années, le volume du marché des semi-conducteurs électroniques médicaux dépassera les 3,5 milliards de dollars avec un taux de croissance annuel moyen de 11 %. Pour répondre aux exigences strictes concernant la stabilité et les performances du matériel électronique médical, la sécurité du matériel et la sécurité personnelle des utilisateurs, ainsi qu'aux exigences spécifiques de certification des systèmes médicaux, les éléments électroniques médicaux et les programmes de conception, ainsi que les matériaux et les technologies de fabrication, etc., doivent satisfaire des exigences plus strictes.
Architecture des systèmes médicaux
À l'exclusion des analyseurs des gaz du sang, des tensiomètres numériques, des moniteurs de rythme cardiaque/pouls numériques, des glucomètres ou même des thermomètres numériques, la plupart des dispositifs médicaux se composent de cinq blocs de niveau système communs à chaque :
Élément de biocapteur
Module AFE
Contrôle et traitement des données
Interface utilisateur
Gestion de batterie/d'alimentation électrique
En apparence, la topologie de mise en oeuvre effective diffère largement d'un bloc à l'autre selon les exigences de détection, de traitement et d'affichage des informations qui dépendent du type d'appareil de mesure et de l'ensemble des caractéristiques.
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
Figure 3 Schéma fonctionnel d'un système médical
uProcessor
microprocesseur
biosensor
biocapteur
precision amp
ampli. précision
buffer/ op. amp.
buffer/ampli op.
monitor
moniteur
speaker
haut-parleur
ADC
CAN
LCD Ctrl
Commande LCD
data bus
bus de données
Bluetooth .....
Transmission de données sans fil Bluetooth Zigbee WiFi/WiMax
LED/KEY driver
Driver de LED/Clavier
USB controller wired data transmission
Contrôleur USB - Transmission de données filaire
Flash/ROM
Mémoire flash/ROM
Keypad
clavier
Power charger/management
chargeur/gestion d'alimentation
sensor
capteur
user interface
interface utilisateur
power
alimentation
back end
arrière
data ctrl
contrôle des données
LED display
affichage LED
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
Matériel à ultrasons utilisant des DSP et MCU
Les systèmes à ultrasons tant médicaux qu'industriels utilisent des techniques d'imagerie focales pour obtenir des images performantes ; cette technique dépasse largement ce qui peut être obtenu par une approche à une voie. En utilisant un réseau de récepteurs, on peut créer une image haute définition en décalant, en mettant à l'échelle puis en résumant intelligemment l'énergie d'écho. Le concept de décalage et les signaux reçus d'un réseau de transducteurs de mise à l'échelle lui permettent de se concentrer sur un point unique dans la région balayée. En se concentrant sur différents points en une seule séquence, on peut finalement assembler une image.
Figure 4 Schéma fonctionnel d'un système à ultrasons
scan conversion post processing
post-traitement de conversion de scan
spectral doppler processing
traitement de doppler spectral
color/power doppler processing
traitement de doppler couleur/Power doppler
B mode processing
traitement mode B
switches
commutateurs
feedback
retour
time gain control
contrôle de gain de temps
audio amp.
ampli audio
monitor
moniteur
speaker
haut-parleur
beamformer unit Tx & Tx
Transmission/réception - filtre de formation de voies numériques
ADC
CAN
transducer matrix
matrice de transducteur
data bus
bus de données
Power management
gestion de puissance
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
Core power
alimentation de coeur
I/O power
alimentation des E/S
system power
alimentation du système
Flash/ROM
Mémoire flash/ROM
data storage
stockage de données
Keypad
clavier
Power management
gestion d'alimentation
sensor
capteur
user interface
interface utilisateur
power
alimentation
back end
arrière
data ctrl
contrôle des données
LED display
affichage LED
On utilise généralement un filtre passe-bas comme filtre anti-alias entre la tension Vac et le CAN, pour limiter la bande passante du bruit. On pourra trouver ici les topologies en phase linéaire basées sur le filtre deux à cinq pôles d'un système spécifique. Quant à la sélection d'un ampli op., les considérations primaires doivent inclure les fréquences d'entrée minimales et maximales, les déviations de signal, les distorsions harmoniques et les exigences de gain. Typiquement, les convertisseurs analogique/numérique (CAN) sont de 10 et 12 bits. Le rapport signal/bruit et la consommation électrique sont les facteurs les plus importants, suivis de l'intégration de voie.
Source : www.ti.com/ADS527x EVM User’s Guide
Figure 5 Mise en oeuvre des convertisseurs analogiques/numériques (CAN)
[see note = voir note]
L'ajout d'une interface LVDS entre le CAN et le filtre de formation de voies représente une autre tendance dans les CAN, le nombre de lignes d'interface pouvant être réduit de 6144 à 1024 pour un système à 512 voies en sérialisant les données sortant du CAN. Cette réduction permet d'utiliser des cartes de circuit imprimé plus petites et plus économiques qui forment une partie essentielle des systèmes d'imagerie portables.
Les fonctions du DSP pouvant être utilisées dans un système d'imagerie comprennent le traitement Doppler, l'imagerie 2D, 3D et même 4D ainsi que tout un éventail d'algorithmes post-traitement destinés à améliorer la fonctionnalité et les performances. Les exigences les plus importantes d'un système d'imagerie sont des performances élevées et une large bande passante.
Les systèmes à ultrasons offrent de nombreux niveaux de performance et de fonctionnalité différents.
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
Certaines solutions peuvent contenir des composants réclamant une gamme dynamique élevée, ou des composants dont les fonctions consistent à réaliser un traitement en virgule flottante en beaucoup moins de cycles. On peut citer la réduction spectrale ou la racine carrée comme exemples de ce type de fonctions. Les DSP conviennent parfaitement dans les applications qui favorisent un traitement en virgule flottante. Lorsqu'une application à ultrasons réclame un système d'exécution, un microcontrôleur de type processeur ARM, peut fournir la solution, car il est capable de gérer les exigences d'un système d'exécution.
L'assemblage des signaux est assuré par un filtre de formation des voies numérique. Il s'agit d'un ASIC normal conçu sur mesure, mais sa fonction est mise en oeuvre par un procédé de logique programmable différent. Le signal numérisé est mis à l'échelle et décalé dans le filtre de formation des voies de manière à générer l'effet de concentration dans la chaîne réceptrice. Après le réglage correct, les signaux de toutes les voies réceptrices sont alors rassemblés et transférés au système d'imagerie. Le système d'imagerie peut être développé en tant qu'ASIC séparé, être un processeur programmable tel qu'un DSP, ou être entièrement un ordinateur de bureau.
Les éléments de transmission doivent pouvoir être capables de contrôler des déviations de signal entre 100 V et 200 V. La plupart du temps cette opération est assurée par des FET haute tension. Deux types de commandes de FET peuvent être utilisés : marche/arrêt (pousser/tirer) ou linéaire classe-AB. La plus populaire est la méthode pousser/tirer qui ne demande qu'une interface très simple et très économique pour connecter les FET. La méthode classe-AB peut beaucoup améliorer la distorsion harmonique mais réclame des pilotes plus complexes et consomme plus d'énergie.
Les fabricants de systèmes et d'équipement ont choisi de nombreux types de produits différents de plusieurs fournisseurs pour leurs applications d'imagerie à ultrasons, y compris les amplis op., les CAN simples, doubles et octaux (tous avec récupération de surcharge d'entrée rapide et d'excellentes performances dynamiques), les processeurs de signaux numériques, une circuit intégré frontal ultrason basse puissance à 8 voies, par exemple VCA8617 et ADS5270, conçu spécifiquement pour le marché des appareils à ultrasons.
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
Conception d'un scanner PET avec FPGA /PLD
Selon le type d'isotope utilisé, on peut observer différentes fonctions métaboliques. Un scanner PET étant capable de suivre le trajet d'un cancer dans le corps et d'illustrer avec précision l'étendue de la maladie, c'est un outil particulièrement efficace dans le diagnostic des cancers, par exemple. Un autre secteur d'application en développement constant des scanners PET est le diagnostic des troubles neurologiques courants tels que la maladie d'Alzheimer, la maladie de Hodgkins et les accidents cérébrovasculaires.
Figure 6 Schéma fonctionnel d'un scanner PET
radiation
radiation
PMT array
réseau PMT
motors
moteurs
Precision amps
amplis de précision
HV supply control
commande d'alimentation HT
Rx gain control
commande réception gain
motor driver
Driver moteur
motion control
contrôle de mouvement
monitor
moniteur
timing and control
relation temps et commande
image processor
processeur d'image
ADC
CAN
data bus
bus de données
Power management
gestion d'alimentation
Core power
alimentation coeur
I/O power
alimentation E/S
system power
alimentation système
Flash/ROM
Mémoire flash/ROM
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
data storage
stockage de données
Keypad
clavier
À cause du grand nombre de détecteurs qu'ils contiennent et de leurs caractéristiques avancées, les scanners PET ont besoin d'une solution de traitement frontal économique, souple, puissante et rapide. L'avantage d'utiliser des FPGA/PLD dans les scanners PET plutôt qu'un circuit intégré spécifique à l'application (ASIC) parait évident aux ingénieurs système. La reconfigurabilité en circuit (ICR) des dispositifs FPGA /PLD leur permet d'être configurés pour l'installation, reconfigurés pour le processus de détection effectif, et reconfigurés encore une fois pour réaliser des autodiagnostics, le cas échéant. Par exemple, pendant la configuration, l'ordinateur PC/104 programme les algorithmes d'étalonnage dans les dispositifs Altera, permettant ainsi à toutes les voies de traitement en bloc de réaliser l'étalonnage en même temps, réduisant ainsi la durée de configuration des détecteurs.
La reconfigurabilité du dispositif FPGA/PLD lui permet de traiter facilement toutes ces fonctions. Il suffit de reconfigurer dans le système à chaque étape du processus. De même, la durée de traitement du signal reste minimale car le dispositif Altera peut accéder simultanément à tous les autres dispositifs du sous-système.
Les dispositifs FPGA/PLD pouvant être facilement reconfigurés dans le système, ils représentent le meilleur choix pour la plupart des scanner PET haute résolution. Ils peuvent mettre en oeuvre la configuration, le processus de détection et un autodiagnostic dans les mêmes dispositifs FPGA/PLD, et permettent ainsi de raccourcir les temps de développement, d'économiser de l'espace au niveau des cartes et de réduire la consommation et les coûts d'énergie. Ils offrent également l'avantage supplémentaire d'un support garanti en cas de modifications futures éventuelles des exigences ou de la configuration du système.
Tensiomètre avec microcontrôleurs
Un microcontrôleur est conçu pour les applications haute précision en temps réel portables qui ont besoin d'un circuit intégré avec une grande mémoire. Il est utilisé en général dans les tensiomètres, les moniteurs du rythme cardiaque, les analyseurs de sang, les thermomètres numériques, les oxymètres de pouls, etc.
Le système mesure la pression artérielle par l'une de trois méthodes, c'est-à-dire Korotkoff, oscillométrie ou pouls. À l'aide d'un brassard, d'une pompe et d'un transducteur, il mesure la pression artérielle et le rythme cardiaque en trois étapes : gonflement, mesure, et dégonflement. Il comporte un écran LCD, des boutons de sélection, un rappel de mémoire, une gestion d'alimentation et une interface USB.
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
LCD display
afficheur LCD
LED display
afficheur LED
air pressure control
commande de pression d'air
Precision amp
ampli de précision
Pressure transducer
transducteur de pression
audio amp
ampli audio
MCU processor
processeur MCU
LCD ctrl
commande LCD
speaker
haut-parleur
I/O port LED driver
port E/S Driver de LED
I/O port keypad
port E/S clavier
I/O port air pressure control
port E/S Commande de pression d'air
ADC
can
data bus
bus de données
Power charger/management
Chargeur/gestion d'alimentation
USB controller wired data transmission
Contrôleur USB - transmission de données filaire
Flash/ROM
Mémoire flash/ROM
Présentation du modèle :
Processeur MCU : commande du système, traitement des données.
Mémoire flash : données et consignes d'enregistrement.
Interface utilisateur : manipulation par l'utilisateur et affichage des résultats.
Capteur : conversion de la pression en signal électronique
Modèle AFE : amplification et numérisation du signal analogique
Alimentation : électrique.
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Premier Farnell Global Technology Centre
Suggestions de conception de dispositif médical électronique avec MCU, DSP, FPGA ou PLD
Suggestions de dispositif médical électronique avec microcontrôleur (coeur ARM)
Les capacités de traitement d'image améliorée par moteur HD avec contrôles de graphiques accélérés 2D répondent aux besoins de la plupart des produits avec des écrans larges ;
Algorithmes matériels propriétaires et calculs logiques pour les différents produits ;
Conception hautement intégrée pour assurer portabilité, fiabilité et économie ;
Consommation d'énergie ultra-basse pour garantir la portabilité des appareils ;
Les systèmes sur puce hautement intégrés à consommation ultra-basse sont les systèmes de choix pour les dispositifs médicaux implantables.
Suggestions de dispositif médical électronique avec DSP
Utilisation d'un DSP pour mettre en oeuvre des algorithmes complexes ;
Utilisation d'un DSP pour mettre en oeuvre des performances d'imagerie 3D et 4D avec plus de précision et de clarté qu'en 2D.
Suggestions de dispositif médical électronique avec FPGA/PLD
Utilisation d'un FPGA quand les données d'un appareil médical doivent être fréquemment mises à jour ;
Utilisation d'un FPGA haute performance avec plusieurs modules DSP, bus PCIe, mémoires DDR2 et DDR3 ;
Utilisation d'un FPGA avec E/S multi-types et interface mémoire ;
Développement avec les outils IP rapides intégrés ;
Utilisation d'un FPGA avec une interface série haute vitesse, telle que LVDS.
Références :
www.ti.com
www.eetchina.com
www.ednchina.com
www.analog.com
www.altera.com
www.xilinx.com
NOUVEAU Le site Produits électroniques de Premier Farnell maintenant consultable en Chinois - Essayez dès
AUJOURD'HUI !!
http://www.farnell.com/
Tous les prix de cette brochure sont en euros hors TVA
www.farnell.fr Tel.: 04 74 68 99 99 Fax: 04 74 68 99 90
Semiconducteurs
12
TECHNOLOGY FIRST
Récemment, ZigBee™ a été un sujet largement discuté. Le standard, ZigBee ou 802.15.4 peut être, un très bon choix
dans de nombreuses applications de communication à faible puissance, faible taux de transfert. Cependant, est-il
adapté pour toutes les applications? Bien sûr que non ! Il y a des situations où un réseau local sans fil (WLAN) 802.11
est meilleur, car son taux de transfert est plus élevé. De la même façon, il y a des applications qui nécessitent une plus
grande portée ou une autonomie plus longue. En fait, l’architecture nécessaire permet de déterminer le type de réseau
sans fil le plus adapté à une application. Cet article vous expose les différentes solutions disponibles pour réaliser des
réseaux industriels sans fil.
8Ko
«Réseaux propriétaires»
BANDE ISM
315, 433, 915 GHz
Ressources système
(Ko de mémoire)
Zigbee™ 2,4 GHz
mondial 915 GHz
NA 868 GHz Europe
Bluetooth
2,4GHz
Réseau local
sans fil (WLAN)
2,4GHz, 5,4 GHz
32-7Ko
1000 _
100 _
10 _
1 _
250Ko
1MOctet Dans les réseaux sans fil, lorsque
le taux de transfert augmente,
les ressources système nécessaire
augmentent également. Par exemple un
réseau local sans fil avec un protocole
802.11, ne fonctionnerait pas avec la
plupart des applications embarquées
(comme les téléphones portables), à
cause de la consommation et de la taille
du code nécessaires pour réaliser ce type
de réseau. Un réseau local sans fil 802.11
nécessite jusqu’à 1 Mo de mémoire
programme pour réaliser un noeud et
la consommation, de l’émetteur radio,
ajoutée à celle du processeur système,
le rend plus adapté aux applications
informatiques ou aux réseaux industriels
pour lesquels la puissance n’est pas
un problème. De nombreuses tâches,
comme le contrôle à distance de
températures, de pressions et l’activation,
tiennent compte de l’importance de la
consommation et de la taille de code des
réseaux sans fil 802.11.
Les protocoles ZigBee sont relativement
légers en ce qui concerne les tailles
de code (32 à 70 Ko) et ont une portée
comprise entre 10 et 100 mètres. Cela
leur permet d’être un bonne alternative
pour le réseautage industriel. Un de ces
principaux avantages, est sa capacité
de «maillage». Un réseau maillé permet
le passage des messages d’un noeud à
l’autre, de manière que, si un des noeuds
échoue ou est coupé, le message peut
tout de même atteindre sa destination
par un autre noeud. Les réseaux maillés
ZigBee ou les différents réseaux
sans fil, adaptés à votre application
par Vince Stueve FAE, Micrel, Inc.
Figure 1. Ressources système nécessaires pour
différents types de réseaux RF
nécessitent un traitement sophistiqué
des paquets et donc, plus de mémoire.
La figure 1 montre la taille de code utilisé
par différents réseaux sans fil.
Certains réseaux propriétaires utilisent
les bandes ISM (réservées aux utilisations
industrielles, scientifiques, et médicales).
Les applications de surveillance à
distance de températures, de pressions
et d’activation sont nettement mieux
traitées sur ce type de réseaux. La portée
des réseaux propriétaires à bande ISM
est nettement plus importante que celle
des réseaux réalisés avec les protocoles
ZigBee, Bluetooth ou WLAN (réseau
local sans fil). La figure 2 montre une
comparaison des portées en fonction de
la technologie utilisée.
Participez au premier concours de conception électronique où vos idées
deviennent réalité ... et gagnez un prix de 100.000$ US ! www.live-edge.com/fr
RoHS Conforme
Non-conforme Commandez du lundi au vendredi de 8h30 à 19h pour une livraison gratuite le lendemain
Semiconducteurs
13
TECHNOLOGY FIRST
La consommation d’énergie d’un réseau
ZigBee ou d’un réseau propriétaire sur
bande ISM est plus en ligne avec les
besoins des applications de surveillance à
distance des températures, des pressions
et l’activation. Un noeud ZigBee doit pouvoir
fonctionner environ un an avec deux
piles AA, alors que les noeuds utilisant les
protocoles propriétaires sur bande ISM
peuvent facilement durer jusqu’à dix ans
sur la même source d’alimentation. Une
durée de vie plus longue, des piles, peut
être un critère de choix important, pour le
concepteur, qui doit adapter le choix de la
solution à la situation.
La fréquence des systèmes ZigBee
802.15.4 est 2,4 GHz. Elle est largement et
mondialement utilisée, pour les techniques
de DSSS (étalement de spectre à
séquence directe, O-QPSK). Les émissions
ZigBee sont également autorisées à
915 MHz DSSS aux États-Unis et à 868
MHz DSSS en Europe. Ces fréquences
utilisent la modulation BPSK (Binary Phase
Shift Keying) une modulation de phase
à enveloppe du spectre. La plupart des
solutions ZigBee utilisent actuellement la
bande des 2,4 GHz, mais elle est devenue
de plus en plus encombrée à cause de son
utilisation mondiale, notamment pour les
fours à micro-ondes. Les bandes ISM sont
moins encombrées, et les fréquences de
915MHz, 868 MHz ou 433 MHz offrent une
alternative aux réseaux sans fil 2,4 GHz.
Jusqu’à 200 Ko ps
«Réseaux propriétaires»
BANDE ISM
315, 433, 915 GHz
Portée (mètres)
Zigbee™ 2,4 GHz
mondial 915 GHz
NA 868 GHz Europe
Bluetooth
2,4GHz
Réseau local
sans fil (WLAN)
2,4GHz, 5,4 GHz
20-250 Ko ps
1000 _
100 _
10 _
1-3 Mo ps
11-54 Mo ps
La longueur d’onde d’antenne à 2.4GHz
est plus courte que celles des fréquences
inférieures ou égales à 915MHz. C’est
la raison pour laquelle de nombreux
routeurs WLAN nécessitent deux
antennes (voir même 3 antennes pour
les 802.11g à 5,6 GHz). Les réflexions et
les trajets multiples provoquent des trous
de polarisation sur les transmissions à
2,4 GHz. Les réseaux qui utilisent des
fréquences plus basses comme le 915
MHz présentent moins de trajets multiples
ou de trous de polarisation. De ce fait,
ils fonctionnent très bien avec une seule
antenne. De nombreuses applications
qui fonctionnent sur des fréquences de
915 MHz ou inférieures, peuvent être
réalisées avec une antenne PCB intégrée.
Cette diminution de l’antenne permet de
réduire considérablement le coût total du
système. Ceci est une des raisons pour
laquelle les réseaux qui fonctionnent hors
de la bande des 2,4 GHz sont souvent
choisis pour les réseaux industriels à
faible coût et ou la portée est plus longue.
Quelles sont donc les autres options
disponibles avec les bandes ISM ?
Pendant très longtemps, les ingénieurs
ont créé des réseaux RF propriétaires
en utilisant les modulations OOK (On/Off
Key) une modulation en tout ou rien, ASK
(Amplitude Shift Key) une modulation
d’amplitude ou FSK (Frequency Shift
Key) une modulation de fréquence.
Très souvent, ces réseaux offrent des
avantages que les ingénieurs ne peuvent
pas se permettre d’omettre. Micrel
propose, des émetteurs-récepteurs
pour la bande de 310 MHz à 950 MHz
Figure 2. Portée en fonction de la technologie pour
différents type de réseaux
Tous les prix de cette brochure sont en euros hors TVA
www.farnell.fr Tel.: 04 74 68 99 99 Fax: 04 74 68 99 90
Semiconducteurs
14
TECHNOLOGY FIRST
ƒ
25-50 Sauts
Figure 3. Modulation par étalement du spectre à sauts
de fréquence (FHSS)
qui peuvent exécuter de nombreux RKE
(télé déverrouillage) et des protocoles de
réseau sans fil à deux voies sur la bande
ISM. La principale difficulté d’un réseau
sans fil est la pile de protocole utilisée
par le microcontrôleur. Cette partie du
développement est généralement celle
qui pose le plus de problèmes.
Pour le protocole 15.247, Micrel rend
maintenant disponible un code source
générique en C, conforme FCC pour la
modulation à spectre étalé à saut de
fréquence (FHSS) utilisable avec les
émetteurs-récepteurs MICRF505 FSK.
Ce logiciel est appelé MicrelNet™,
il permet une modulation FHSS d’une
largeur de bande de 250 KHz avec 25
sauts de fréquence. Le circuit MICRF505
dispose d’un amplificateur de puissance
intégré (PA) permettant une transmission
de -3 dBm à +10 dBm avec une antenne
sans commutateur émetteur/récepteur
externe. En utilisant l’amplificateur
intégré, réglé à 10 dBm, la portée du
MICRF505, peut facilement atteindre
jusqu’à 300 mètres avec un taux de
transfert allant jusqu’à 200 Kbps.
La figure 3 montre différentes fréquences
de porteuses utilisées dans les systèmes
FHSS. Tous les noeuds sont synchronisés
pour permettre un saut. S’il y a une
mauvaise fréquence ou une fréquence
utilisée, le système saute simplement sur
la fréquence suivante. La pile de protocole
gère le rassemblement des paquets qui
sont envoyés entre les noeuds. MicrelNet
dispose d’un programme d’adressage
IP qui prend en charge le formatage de
l’adresse de destination et de source,
et rend facilement reconnaissable les
paquets de données. Les contrôles par
redondance cyclique logiciels assurent
l’acheminement des données.
Dans les réseaux industriels sans
fil, l’application et l’environnement
sont déterminant, pour choisir le type
de réseau le plus adapté. Les choix
de la fréquence, du protocole, et la
consommation sont les éléments clés qui
permettent de prendre la bonne décision.
Des protocoles comme 802.11, ZigBee,
et mêmes les systèmes propriétaires
comme MicrelNet peuvent tous cohabiter.
L’émergence de «contrôleurs de porte»,
comme le montre la figure 4, permettra à
différents réseaux de communiquer sur le
réseau le plus commun de tous.
Note : MicrelNet est une marque déposée de Micrel, Inc.
Toutes les autres maques déposées sont les propriétaires
de leurs sociétés respectives.
Contrôleur de passerelle
10/100 Copper Ethernet,
RS232 ou tRS485
o el
0 e
ZigBee™
65 000 noeuds possibles
LIAISON VIRTUELLE
COORDINATEUR
DE RÉSEAU
NOEUD À
FONCTION
INTÉGRALE
NOEUD À
FONCTION
RÉDUITE
802.11 WLAN
30 noeuds par routeur
Bande ISM MicrelNet™
65 000 noeuds possibles
MAÎTRE
CENTRAL
MAÎTRE
ESCLAVE
Figure 4.
Différents exemples de réseaux
19
www.rohs.fr
Les derniers semiconducteurs discrets conformes RoHS
Semiconducteurs discrets
Commutateurs de charge
très performants en petits
signaux
Transistors bipolaires à
émetteur commuté
Modules de puissance IGBT
Diodes Schottky ThinQ!™ de
600V au SiC
Modules de puissance
intelligents
Transistors pour applications Triacs Sanrex
d’éclairage
Drivers intelligents MOSFET
MOSFET de puissance
DirectFET™
IGBT NPT (Non-Punch Through)
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Transistors à valeur VCE(sat) ultrabasse
et transistors numériques
réunis dans des boîtiers miniatures
SOT-666.
Commutation 150kHz. Tension
assignée 1700V, avec faibles
pertes et RBSOA carrée (zone
de fonctionnement sûre avec
polarisation inverse).
Tension assignée 1200V. Technologie
Trench, pouvant supporter le courant
d’avalanche.
Tension assignée 600V - 1700V,
faisant appel à une technologie
évoluée de mise sous boîtier.
Module original, effficace d’un point de
vue thermique. Compatibilité SO-8.
Caractéristiques de commutation
presque parfaites, à base de carbure
de silicum.
Contrôleur autonome SMPS
(alimentation à commutation) en
mode courant avec CoolMOS™
intégré de 650V/800V.
Pont inverseur IGBT 600V 10A
triphasé, comprenant des circuits
intégrés pour la commande de grille
et la protection.
Gamme de transistors de puissance
bipolaires pour ballasts de lampes
industrielles et domestiques.
Gamme très variée, offrant la
commutation standard et haute
dans des modules de puissance
couramment demandés.
Increase System Reliability
and Effi ciency
www.fairchildsemi.com
Industrial Applications Integrated solutions
Fairchild Semiconductor offers the industry’s widest
range of integrated motor drive solutions (50VA to
10kVA). Motion-SPM provides complete adjustable
speed motor drive control and fully integrated circuit
protection for AC motors in appliance applications.
The PFC-SPM™ reduce component count and board
space while increasing system reliability and effi ciency.
The PFC-SPM™ provides 99% power factor (typical) to
meet the mandatory PFC standard (IEC61000-3-2).
Discrete solutions
Fairchild Semiconductor offers a wide portfolio of
discrete solutions.
Gate Drivers: Fairchild’s high voltage gate drivers
improve system reliability by using an innovative noise
cancelling circuit that provides excellent noise immunity.
IGBTs: Fairchild IGBTs are designed for high speed
switching to improve power density, system effi ciency,
and reliability compared to the MOSFET technology.
SuperFETs™: N-channel SuperFET™ MOSFETs
minimize conduction losses and increase switching
performance by lowering RDS[ON] and gate charge (Qg).
These devices are designed to operate reliably at higher
frequencies.
21
www.rohs.fr
Condensateurs
Les derniers condensateurs conformes RoHS
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Sélection parmi les plus récentes technologies de
condensateurs conformes RoHS proposées par Farnell
InOne. Pour toutes informations complémentaires, veuillez
consulter www.farnellinone.fr
Condensateurs céramique
multicouche série
Série FM
Série FCA & FKA Série T528
Kits de condensateurs
AVX pour concepteurs
Gamme élargie de condensateurs
tantale et Oxicap™
Série VE Série VC32
Il s’agit de deux condensateurs
connectés en série dans un seul
composant, ce qui réduit le risque de
court-circuit.
Condensateurs électrolytiques en
aluminium à faible impédance et
excellente endurance, livrés dans un
boîtier qui est environ 30% plus petit
que celui de la série FC.
Les condensateurs de ces nouvelles
séries se basent sur les séries FC et
FK, et ils sont réalisés spécialement
pour supporter les conditions sévères
de brasage par refusion.
Condensateurs tantales organiques
montés en surface, cathodes en
polymères, présentant une faible
inductance et un bon comportement
en hautes fréquences.
Gamme de 12 kits offrant un choix
maximum d’échantillons en nombre
suffisant pour servir la conception et
le développement.
Pour ajouter aux kits de
condensateurs pour concepteurs,
cinq gammes courantes élargies plus
cinq nouvelles séries.
Varistances radiales en métal-oxyde
pour applications de protection contre
les surtensions.
Varistances monocouche à montage
en surface, offrant des tensions
assignées et des énergies transitoires
plus élevées que les varistances
typiques multicouches.
Pour le RoHS ne vous risquez pas ailleurs Condensateurs
22
Les derniers condensateurs conformes RoHS
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Séries W2H et W3H Séries W2F4 et W3F4
Série MLCC Hi-Cap Condensateurs céramiques
multicouches à connexions
flexibles
Condensateurs Oxicap™ Série T510
Série A700 Série BXA
Série ZLH Série NP
Condensateurs céramiques
miniatures fort courant, réunissant
des condensateurs et inductances
dans un seul circuit de filtre à
régime permanent.
Condensateurs céramiques
multicouches de forte capacité
dans des boîtiers compacts. Les
condensateurs de cette série sont
également livrables sur bobines.
Condensateurs électrolytiques, dont
la céramique est faite d’oxyde de
niobium. En cas de défaillance sous
une tension inférieure ou égale à la
tension assignée, le condensateur
OxiCap™ ne prend pas feu.
Ensembles de condensateurs de
fuite contenant quatre éléments et
une connexion de mise à la masse
commune, donnant une faible
inductance parallèle et une excellente
capacité de découplage.
Les connexions flexibles garantissent
une flexion minimum de 5mm
sans aucune fissuration. Ces
condensateurs conviennent
idéalement pour les circuits-imprimés
soumis à des flexions importantes.
Condensateurs tantales multianodes
d’une résistance série
équivalente très faible, donnant un
courant d’ondulation allant jusqu’à 4
ampères.
Condensateurs en aluminium
polymères offrant une plus grande
rétention de capacité, et donc plus
performants aux hautes fréquences.
Conception assurant une bonne
protection contre la fissuration.
Condensateurs électrolytiques
miniatures haute température en
aluminium, à très longue durée de vie
et courant d’ondulation très élevé.
Série améliorée de condensateurs
électrolytiques miniatures en
aluminium, très fiables et à longue
durée de vie, présentant une faible
impédance aux hautes fréquences.
Condensateurs électrolytiques
aluminium, non polarisés, de type
radial, présentant d’excellentes
caractéristiques de fréquences,
et utilisable dans les réseaux de
transition.
23
www.rohs.fr
Les dernières résistances RoHS
Résistances
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Série WP-S
Résistances de puissance bobinées
et compactes résistant à la flamme,
excellente tenue aux impulsions.
Disponibles en versions 2W ou 4W.
Deux résistances parallèles dans
un seul boîtier, excellente tenue en
impulsions.
Série DSC
Série WSL
Résistances métalliques de puissance
avec une grande capacité résistive
aux surtensions, excellente stabilité
sur une large plage de conditions
environnementales.
visitez www.rohs.fr visitez www.rohs.fr
Résistances à couches épaisses,
haute puissance, à résistance
thermique extrêmement basse,
livrées dans un boîtier mince pour
l’installation haute densité sur
circuits-imprimés.
Série MHP140
Sélection parmi des milliers de nouvelles résistances
conformes RoHS en provenance des plus grands fabricants.
Pour toutes informations complémentaires, veuillez consulter
www.farnellinone.fr
Série CB10 Série CT6
Série CP16 Série Modèle 18
Potentiomètres d’ajustement en
carbone, avec flèche indicatrice de
position. Livrés avec axe de réglage.
Potentiomètres de réglage contenant
un élément moulé en résine dans
un boîtier miniature. A l’abri de la
poussière et du flux et stable en
présence d’une forte humidité.
Potentiomètres en plastique avec
axe de réglage, haute résistance
d’isolement et capables de supporter
des tensions élevées. Différentes
tailles disponibles, grande fiabilité.
Diamètre 22,2mm, cadrans 15 tours
et “frein à encliquetage” puissant.
Pour le RoHS ne vous risquez pas ailleurs
24
Les dernières résistances RoHS
Résistances
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Série SMHP Série FC
Série YR1 Série RWM 6 x 22
Série BSC8 Série LVR
Série B57540 Série B59601
Série 3204 Séries PRC201 et PRC221
Résistances non inductives, haute
puissance, à résistance thermique
extrêmement basse. Montage sur
circuits-imprimés par soudure ou
par clip.
Résistances de précision à faible
résistance interne, qui fonctionnent
presque comme des résistances
pures dans une bande de fréquences
très large.
Résistances à couches métalliques,
très faible bruit et faible coefficient
de tension, et excellente stabilité en
présence de charges et de conditions
environnementales sévères.
Résistances de puissance émaillées
à bobinage axial, forte dissipation et
grande fiabilité. Disponibles en faible
valeurs ohmiques.
Résistances de détection de courant,
excellente tenue en présence
d’impulsions et de surtensions,
livrées dans un boîtier bas profil pour
montage en surface.
Résistances de puissance de précision
à bobinage axial offrant des valeurs
de résistance extrêmement faibles et
une excellente stabilité en présence de
charges.
Thermistances haute stabilité à
coefficient de température négatif,
encapsulées dans du verre avec fils
“dumet”, conçues pour les hautes
températures et des temps de
réponse très rapide.
Thermistances compactes à
coefficient de température positif,
conçues pour fournir une réponse
rapide et fiable. Conviennent pour le
brasage par refusion.
Potentiomètres de réglage Cermet
CMS compacts monotour, dont la
disposition des bornes empêche le
chevauchement des soudures.
Résistances CMS, dissipation
thermique de 1 watt. Les résistances
de la série PRC221 sont également
livrables en bobines.
visitez www.rohs.fr
25
www.rohs.fr
Les derniers composants optoélectroniques conformes RoHS
Optoélectronique
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Sélection de Leds mono ou multicouleurs pour l’affi chage ou la
détection.
Densité de flux lumineux élevée,
émettant vers le haut ou le côté.
Choix de couleurs.
Types: BA9S, BA15D, BA15S,
GX53 et S6S.
Livrée sur bobines de 4,5m.
6 LED indicatrices de tension, choix
de couleurs: rouge, blanc et bleu.
Solution souple et modulaire pour
l’éclairage.
Génération la plus récente, intensité
lumineuse parmi la plus élevées du
marché.
Intensités de flux les plus élevées
dans cette catégorie, encombrement
réduit.
visitez www.rohs.fr
visitez www.rohs.fr
Système LinkLED™
LED de puissance Atlas 8,6W
Source lumineuse LED -
RVB (rouge, vert, bleu)
Bande lumineuse flexible
Ampoule de remplacement
à LED
Bande de LED
Bande de LED de
puissance, 8W
LED de puissance K2
visitez www.rohs.fr
visitez www.rohs.fr
www.avagotech.com/LED
For more information please visit our website
Technical Specifications
© 2006 Avago Technologies, Ltd. All rights reserved.
LED Lighting Solutions Technology
Features
• IR-reflow solderable, compatible with standard
SMT assembly process
• Robust moisture sensitivity level (MLS) 2a, for flexible
assembly at customers’ site
• Low thermal resistance, for reliable long operating life
• High current operation
• Wide viewing angle
• Silicon encapsulation
• Available in white, blue and green color
Key Applications
• Portable Lighting– flash light, bicycle head light,
miner’s head lamp
• Focused Lighting– reading light, spot light,
accent light
• General Lighting– decorative, architectural & garden
• Back Lighting– signs and billboards
From lighting your way through the darkness to
high performance lighting for your outdoor signage,
Avago Technologies has a high power LED lighting
solution for you.
Avago’s high brightness, high performance, energy
efficient LEDs can handle high thermal and high
driving current. A smooth radiation pattern offers a
120º viewing angle and the low profile package
design is ideal for a wide range of applications
especially where height is a constraint.
The ASMT-Mx00 is the first of Avago’s 1W high
Power LED products with moisture sensitivity level
(MSL) 2a and can be driven at 350mA. It is one of
the thinnest packages available and has superior
heat dissipation. It is compatible with IR soldering,
and is encapsulated in a heat and UV resistant
silicon compound.
High brightness
LED lighting
solutions from
Avago Technologies
give you reliable,
high performance
illumination,
flexibility of design
and robust, easy to
handle packaging
Light up the night
These products are available from Farnell InOne:
www.farnellinone.com
27
www.rohs.fr
Optoélectronique
Les derniers composants optoélectroniques conformes RoHS
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Montées dans un module TO-220
facilitant la dissipation thermique.
LED de puissance,
350mW et 700mW
LED de puissance
‘Lednium’ 10W
LED de puissance Platinum
Dragon
LED de puissance
Ostar
Modules LCD d’interface
série I2C
Afficheurs OLED
Afficheurs industriels LCD Capteur de couleurs RVB
dans un boîtier QFN
Capteurs de distance Convertisseur lumière-signal
numérique
Génération la plus récente de LED
de 4,6W dans des modules à profil
réduit montés en surface.
Module tridimensionnel
révolutionnaire donnant un angle de
visualisation de 120°.
Luminosité et luminance
exceptionnelles dans un module
en forme d’étoile thermiquement
efficace.
Dimensions très demandées, avec
interfaçage simplifié et souple.
Affichages clair, brillant et efficaces
sur une large gamme de couleurs.
Capacité vidéo intégrale.
6.5” à 12.1” - VGA, SVGA et XGA. Convertit la lumière pour la séparer
en tensions de sortie RVB.
Choix très varié, avec mesures
précises entre 4,5 mm et 800 mm.
Se rapproche du comportement de
l’oeil humain. Option I2C offerte.
Pour le RoHS ne vous risquez pas ailleurs
28
Optoélectronique
Les derniers composants optoélectroniques conformes RoHS
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Ecran couleur à matrice
active, de 3.6” à 10.4”
Kits de démarrage pour écrans
couleurs à matrice active Sharp
Module LCD interfaçable
facilement
Modules émetteurs/récepteurs
à fibres optiques LC
Kits d’évaluation des lentilles
pour LED
LED CMS
Emetteurs et récepteurs
numériques audio à fibres
optiques
Guides de lumière
flexibles ou rigides
Le plus petit multiplexeur/
démultiplexeur au monde
Emetteurs infrarouges rapides
à montage en surface
Série ‘Strong’: brillance et facteur de
contraste élevés.
Livré avec contrôleur RVB, panneau
d’affichage sur écran et câbles de
raccordement nécessaires.
Ecran couleur à matrice active
320 x 234 de 32K, avec bus
d’interface 8051.
Conformes aux normes de l’industrie,
faible facteur de forme.
Conçus pour les LEDde puissance
Osram Golden Dragon et Luxeon K2.
Choix très varié de couleurs et de
designs, y compris le blanc.
Conforme à la norme JEITA CP-1212. Livrés en tronçons de 1m et 3m
de long, avec systèmes optiques
correspondants.
4 et 8 voies. Haute intensité 35mW dans un très
petit boîtier .
To explore the possibilities or receive
free samples please contact us at
+49 6322 95670 or visit us online
at www.cml-it.com
Europe - Robert-Bunsen-Str.1, 67098, Bad Durkheim, Germany
America - 147 Central Avenue, Hackensack, NJ07601
Asia - 61 Aida Street, Singapore 459975
Un-leading
by example!
European product range from
CML Innovative Technologies
now fully RoHS compliant
CML Innovative Technologies (CML-IT) is producing its wide
European range of miniature lighting products according to the
RoHS directive from the European Commission. All devices
are manufactured featuring the same product specifications as
before but now comply with the RoHS' significant limitations on
the use of lead, mercury, cadmium and hexavalent chromium.
All lamps and bulbs in CML-IT's European product range are
manufactured using lead-free glass and RoHS-compliant chips
for the company's range of LEDs and Power LEDs
More Innovative Technology from CML-IT!
Engineering Know-How from CML-IT
30
Pour le RoHS ne vous risquez pas ailleurs Connecteur
Les dernières gammes de connecteurs conformes RoHS
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Vous trouverez ci-dessous une sélection de nouveaux
connecteurs originaux issus des plus grands fabricants
Connecteurs autodénudants
0,27 mm
Série UTS de connecteurs
circulaires étanches
Série Harax M12 Ecomate
SCE & PPS Série Datamate à montage en
surface et vis d’accouplement
MicroClasp Mini USB Bucanneer
• Système d’accouplement triphasé
robuste
• Interface autodénudante très
performante du type bosselé
• Capot-verrou métallique et serrecâble
en option assurant la fiabilité
à long terme
• Connecteurs circulaires en
plastique IP68/IP69K
• Système de blocage rapide et sûr,
sertissage et installation rapides
• Etanchéité extrême à l’eau
• Comportant le système de
raccordement rapide HARAX
• Pour les applications utilisant
auparavant du câble préassemblé
• Connecteur ergonomique et
résistant à la poussière
• Convient pour usage dans des
environnements hostiles
• Utilisable avec câbles de 6 à
12,5 mm de diamètre
• Connecteurs miniatures PPS
(du type push-pull) et SCE (à
désaccouplement) et assemblages
de câbles
• Robustes avec excellente
étanchéité (IP65 à IP68)
• Nouveaux connecteurs J-Tek (vis
d’accouplement) venant s’ajouter à
la gamme Datamate très fiable de
Harwin
• Livrés en double rangée, de 6 à 50
voies
• Nouveau connecteur MicroClasp™
au pas de 2,00 mm
• Système fils/cartes à simple et
double rangée conçu par Molex
• Conception unique pour le marché
des connecteurs
• Nouveau Mini USB Buccaneer
- résistant à la poussière
conformément à IP68 après
accouplement
• Câbles livrés en tronçons longueurs
de 2, 3 et 4,5m
Farnell InOne exclusif
31
www.rohs.fr
Connecteurs
Les dernières gammes de connecteurs conformes RoHS
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Connecteurs Sub D
avec filtres
Connecteurs Sub D double
empilage
I Pass Série ZDC, SMA, SMC
Accessoires modulaires HAN Connecteurs pour câbles
plats souples
Mate N Lock Type RJ48
Fiches et douilles de
test 1mm
Champ RJ
• Mini-connecteurs Harting bas profil
et autodénudants pour circuits
imprimés
• Hauteur après montage inférieure à
5,5 mm
• Connecteurs Sub D à montage
sur carte, et empilables
• Réduisent l’espace total occupé
sur le circuit-imprimé par les
connecteurs individuels
• Totalement interconnectables avec
les autres connecteurs Sub D
• Ensembles connecteurs et câbles
offrant une plus grande densité et
des vitesses plus élevées
• Solution idéale pour
l’interconnexion dans le marché
des serveurs en pleine croissance
• Solutions rentables pour
applications commerciales
• Composants moulés de précision
avec diélectriques thermoplastiques
• La série comprend à présent les
connecteurs SMA et SMC
• Gamme plus étendue d’accessoires
modulaires HAN
• Comprenant USB (bus série
universel), Firewire, D Sub et DDD
• Les nouveaux accessoires
comprennent des serre-câble
métalliques et en plastique
Tyco Electronics présente sa gamme
de connecteurs pour câbles plats
souples (FFC). Tailles 0,5mm à
1,25mm, 4 à 30 voies. Montage en
surface et options ZIF prévues.
• Farnell InOne ajoute à sa gamme
de connecteurs Mate N Lock
• Utiles pour les connexions internes
des équipements, fils à fils, et fils à
cartes
• Nouvelle gamme RJ48 10 voies
proposée par Farnell InOne
• Fiche sans blindage et fiche à
angle droit sans blindage
• Fiches et douilles de test 1mm
pour le raccordement fiable dans
les espaces très restreints
• Livrés en un choix de couleurs
• Permet de transformer les groupes
de cordons standard RJ45 ou USB
pour usage dans les applications
industrielles
• Etanchéité assurée en une minute
- sans aucun outillage
32
Pour le RoHS ne vous risquez pas ailleurs
Les dernières gammes d’accessoires conformes RoHS
Accessoires
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Sélection dans notre gamme courante de vêtements/
équipements de protection antistatique et
d’accessoires pour semi-conducteurs
Connecteurs
d’extension mémoire
DIMM
Matériau conducteur
thermique Sil-Pad
SP900S
Ruban auto-adhésif à
conductivité thermique
Bond-Ply 100
Matériau conducteur
thermique Gap-Pad™
Ensembles de dissipateurs
thermiques avec ventilation
forcé en option
Ensembles de bracelets économiques
Bracelet ajustable économique Cordons de mise à la terre économique
Comportant SDRAM, DRAM DDR,
DDR1 et DDR2.
Grosseur moyenne, haute conformité
et faible impédance thermique.
Ruban adhésif très performant, à
conductivité thermique, et à forte
adhérence.
Elément de conduction thermique,
placé entre les dissipateurs
thermiques et les circuits
électroniques.
Dissipateurs thermiques à utiliser
avec les modules d’alimentation
isolés Semikron: Semipack,
Semitrans et redresseurs en pont
Semipoint.
Bracelet ajustable et cordon spiralé
de mise à la terre de 3m.
Non allergénique - pas de fibres en
acier inoxydable, choix de boutons
4mm ou 10mm.
Cordons jaunes à haute visibilité,
longueur déployée 3m.
33
www.rohs.fr
Les dernières gammes d’accessoires conformes RoHS
Accessoires
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Talons de mise à la terre économique Kit d’entretien sur le terrain
Ioniseur de table Vestes et blouses de protection
antistatiques
Tablier de mise à la terre (ESD) Caisses antistatiques pour
pièces détachées
Couvre-chaussure jetable
antistatique
Appareil de contrôle continu
des bracelets de mise à la terre
Boîte à outils antistatique Sonde à anneaux concentriques
Talons durables double couche en
PVC/caoutchouc nitrile à dissipation/
conduction.
Kit d’entretien sur le terrain offrant
une protection optimale contre
l’électricité statique.
Ioniseur compact et léger à autoéquilibrage,
courant continu. Montage
sur banc ou mural.
Vêtements antistatiques fabriqués
avec du tissu haute qualité.
Protège les vêtements des salissures
et des taches dans la zone de
protection électrostatique.
Caisses empilables fabriquées
en polypropylène E9 à propriétés
antistatiques permanentes.
Modèle élégant et confortable,
revêtement en polyuréthane, résistant
aux produits chimiques avec sole non
glissante.
Signale toute interruption
accidentelle de la boucle de mise à
la terre dans une zone de protection
électrostatique.
Boîte à outils robuste, résistant aux
chocs, fabriquée en E9 durAstatic.
Mesure la résistivité de surface des
matériaux.
34
Pour le RoHS ne vous risquez pas ailleurs Câbles
Les dernières gammes de câbles conformes RoHS
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
Sélection de produits dans notre gamme de câbles et
accessoires conformes RoHS pour des applications très
variées. Pour toutes informations complémentaires, veuillez
consulter www.farnellinone.fr
Fils UL pour la connexion
des équipements
XTRA-GUARD® 1 - Câble de
transmission de données
Câble Belden Câble coaxial
Presse-étoupes
SKINTOP® et
SKINDICHT®
Marqueurs Helagrip
en chevrons
Attaches et montures de
câble Panduit
Gaines
thermorétractables
Fil de connexion UL1007, 1015,
1061 & 1213, à isolant en PVC et
TFE. Conducteurs torsadés en cuivre
étamé.
Applications possibles: périphériques
connectés aux ordinateurs,
équipements commerciaux,
électroniques médicaux et
autres environnements de haute
technologie.
Gamme variée de câbles à paires
torsadées offrant un large choix
de longueurs, d’applications et de
nombres de paires.
Gamme de câbles coaxiaux proposée
par Nexans - Possibilité de coupe
au mètre.
Gamme de presse-étoupes, contreécrous
et bouchons en nylon,
polyamide et laiton nickelé.
Gamme de marqueurs de câble
en PVC.
Gamme Panduit d’attaches et de
montures et plaques de fixation de
câble adhésives/vissées.
Tubes souples en polyoléfine livrés
en longueurs de 1,2 m et aussi sur
bobines. Choix varié de couleurs et
de tailles.
Et si vous pouviez
devenir quelqu’un
d’autre?
NXP– La nouvelle
compagnie née de
Philips Semiconducteurs
Avec toute l’énergie d’un nouveau
commencement, alimenté par 50 années
de sagesse, NXP Semiconducteurs
est prêt à répondre à toutes vos
questions, et tout spécialement aux
questions impossibles. Celles qui ne
sont encore que des rêves, mais qui
se transformeront rapidement en
expériences sensorielles étonnantes.
Conduit par l’ouverture d’esprit et la
curiosité d’un nouveau-né, NXP est déjà
à l’avant-garde d’un univers vibrant
des technologies multimédias. Cette
position de leader se reflète dans les
milliards de dollars investis dans les
projets de recherche, le dépôt de plus
de 25 000 brevets, ainsi que dans
le nombre de solutions innovantes
dans les secteurs de l’identification,
de l’automobile, de la mobilité et de
l’électronique domestique. Découvrez
comment vos idées d’avant-garde
peuvent être vues, entendues et
ressenties d’une manière totalement
nouvelle sur www.what-if-you-could.com,
parce que la question à partir de
maintenant est la suivante: qu’aimeriezvous
mettre en question?
Et si vous pouviez
Pour le RoHS ne vous risquez pas ailleurs
36
Pro-Power
La dernière gamme Pro-Power conforme RoHS
Gaines thermorétractable 2:1 Fils d’équipements
Fil pour appareillage de commutation
conforme TRI
Câble résistant à la chaleur de 1/0,80mm
Fil de connexion Câble coaxial RG58BU/CU
Gaines thermorétractable 3:1
à revêtement adhésif
Gaine thermorétractable 4:1 en PTFE
Gaine isolante Gaine en PTFE
Tube thermorétractable 2:1 ignifuge,
livré en longueurs différentes.
Fils d’équipements de 1/0,60mm à
isolant en PVC.
Entre autres applications: câblage
des tableaux de commutation et
de commande, et câblage interne
général.
Câbles à âme unique servant
normalement au câblage
d’éclairage fluorescent.
Fil de connexion homologué UL et
certifié CSA.
Câbles coaxiaux à isolant en
polyéthylène solide.
Tube thermorétractable de rapport
3:1 à revêtement adhésif noir.
Gaine thermorétractable haute
température en PTFE translucide
naturel.
Gaine isolante en PVC souple sans
plomb, livrée en bobines de 100m.
Excellentes propriétés d’isolement,
convient idéalement pour les
applications haute température.
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
visitez www.rohs.fr visitez www.rohs.fr
A selection of quality
products from Pro-Power
- platine à adaptateur multiple doté de six éléments semi-conducteurs
micro-miniature
- fibre de verre époxyde FR4 1,50 mm, simple face 35 μm CU
- côté des composants chimiques nickel/or, cache d'arrêt de brasage et impression
d'équipement
- le placement de vingt différents types de semi-conducteurs énoncés dans le
tableau est possible sur la platine
- baguette à 8 broches pas 2,54 mm, diamètre de perçage 1,00 mm
- point rainuré destiné à la rupture de séparation des modules
- données de Gerber pour la fabrication de la cache d'arrêt de brasage et de
l'impression de la pâte à braser sont gratuitement mises à disposition sur
simple demande
- dimensions 22,86 mm x 46,72 mm
Layout Pad Size Pad Pitch Taille Configuration Occupation
TO252 * * * * TO252
SOT223 * * * * SOT223
SOT89 * * * * SOT89A
SOT23 0,71 x 1,0 mm 0,95 mm 2,4 mm 2 Reihen x 3 SC59, SC74
SC74A,SMT3,
SMT5, SMT6,
SOT23, SOT23-5,
SOT23-6
SOT23-8 0,46 x 1,1 mm 0,65 mm 2,4 mm 2 Reihen x 4 SC70, SC88A,
SOT23-8, UMT3,
UMT5, UMT6
SC75 * * * * EMT3, SC75
SOT 23 Multiadaptateur-CMS
RE901
26
Réaliser un circuit
de protection fiable
La technologie HDMI comble cet écart
en utilisant des débits de transmission
très élevés, jusqu’à 10Gbit/s (norme
HDMI 1.3).
En raison de leur microélectronique
complexe, les téléviseurs à écran plat sont
extrêmement sensibles aux surtensions
transitoires, telles que les ESD (surtensions
électrostatiques). La protection ESD de
l’interface HDMI présente un défi particulier
pour les fabricants d’équipements
électroniques grand public. Il y a de très fortes
chances qu’une impulsion ESD atteigne
l’appareil si des câbles périphériques
sont touchés ou si des connecteurs sont
débranchés. L’impulsion circule alors
du terminal vers la carte, détruisant
potentiellement la carte ou ses composants.
Les diodes à semiconducteurs
conventionnelles ne sont pas bien adaptées
à la protection ESD dans les téléviseurs à
écran plat car leurs propriétés protectrices
commencent à s’altérer à partir de
25°C (réduction des caractéristiques de
fonctionnement). À l’opposé, la CeraDiode,
développée par EPCOS, est immunisée
contre les températures élevées souvent
rencontrées dans les téléviseurs LCD
et plasma. Ses propriétés protectrices
restent stables jusqu’à une température de
fonctionnement de 85°C.
La CeraDiode est fabriquée à base
d’oxydes de céramique selon une technologie
multicouche. Ces composants suppriment
efficacement les tensions transitoires. Ses
couches sont composées de
nombreux grains d’oxyde de
zinc, formant une micro-
CeraDiode, comparable à une
diode Zener. Grâce au grand
nombre de micro-CeraDiodes
individuelles, la puissance
globale ESD d’une CeraDiode
est supérieure à celle d’une
diode de suppression, qui
ne présente qu’une simple
jonction PN.
Les CeraDiodes offrent
une résistance très stable,
insensible aux variations de
température et aux tensions
de polarisation continues.
Cela signifie que la résistance elle-même
peut servir de filtre pour les composants
haute fréquence, remplaçant ainsi plusieurs
composants externes qui auraient été
nécessaires pour la protection ESD et la
fonction de filtrage.
En raison de leur structure interne et
d’un boîtier plus petit, les CeraDiodes ont
des inductances parasites très faibles, par
conséquent, les temps de réponse sont
inférieur à 0,5ns et garantissent une protection
ESD fiable. Les diodes de suppression ont des
temps de réponse de 0,8ns ou plus en raison
d’un format plus grand et d’une inductance
parasite supérieure.
Les CeraDiodes ne sont pas seulement
une alternative rentable par rapport aux
composants de protection ESD à base de
semiconducteurs – comme les diodes
Zener ou TVS – Elles offrent également des
avantages techniques. Elles remplacent
dans de nombreux cas une diode à
semiconducteur sans modifications.
Les CeraDiodes étant des composants
bidirectionnels, il n’y a aucun risque de
mauvais positionnement au cours du
processus de placement automatique.
Avoir une norme de connexion numérique à haut débit pour la transmission audio et vidéo de qualité optimale n’a jamais
été un besoin aussi pressant qu’aujourd’hui. L’utilisation très répandue des écrans plats et l’avènement de la télévision
haute définition (jusqu’à 1920 x 1080
pixels) ont créé un réel décalage
dans le domaine de la connexion.
0 Time [ns] 1.8
875
-875
Voltage [mV]
Source Eye Diagram
17
Les tendances du marché incitent à
réduire la consommation d’énergie
tout en continuant à satisfaire
aux demandes de performances et de
fonctionnalités accrues. Plusieurs domaines
sont concernés par l’optimisation, comme
la technologie des semiconducteurs, les
techniques de conception, les architectures
système, les configurations de plate-forme
et les méthodes de conception. Cette
optimisation s’étend également au logiciel
système, un composant intégral des produits
à base de semiconducteurs.
La consommation électrique dans les
circuits intégrés CMOS est en général classée
en puissance dynamique dans un circuit de
commande, comme la puissance commutée
et la puissance statique ; la déperdition
d’électricité qui est mesurée à chaque fois
qu’un circuit est mis sous tension en est un
exemple. Traditionnellement, la puissance
statique consomme moins d’énergie que la
puissance dynamique. Cependant, du fait
que les configurations CMOS continuent à
se réduire, la puissance statique commence
à représenter une portion plus importante
de l’énergie totale utilisée. Par conséquent,
les technologies d’économie d’énergie
doivent s’attaquer aux deux formes de
consommation électrique.
Exemple d’application :
Microcontrôleurs QE128
Le ColdFire V1 MCF51QE128 (32 bits) fait partie
de la série de microcontrôleur Flexis. La série
Flexis fait preuve d’une efficacité énergétique
optimale, prolongeant la durée de vie des
batteries dans les applications portables
grâce à des modes de veille prolongée
« Deep-Sleep ». Chaque appareil dispose de
plusieurs modes d’arrêt, en plus des nouveaux
modes d’attente et de fonctionnement en
basse puissance, chacun d’eux économisant
encore plus l’énergie consommée. Les modes
d’attente et de fonctionnement en basse
puissance permettent à l’appareil d’opérer
en mode basse puissance avec tous les
périphériques activés. En outre, un oscillateur
externe 32KHz ultra-basse puissance
consomme moins de 1uA et peut être utilisé
dans toutes ces configurations.
Normalement, en mode exécution un circuit
intégré doit fonctionner à une fréquence d’au
moins 1MHz. Les passages répétés entre le
mode veille et le mode réveil pour contrôler
les besoins et les événements système
peuvent augmenter considérablement la
consommation d’énergie (les arborescences
peuvent consommer jusqu’à 40% de la
puissance active du circuit). Les MCU QE128,
par contre, utilisent un oscillateur 32kHz avec
un courant d’alimentation très faible, évitant
ainsi les pointes de courant qui se produisent
normalement lors de chaque changement
de mode.
Les MCU QE128 sont fabriqués à l’aide
d’une technique LVLP (basse tension – basse
puissance), utilisant des transistors avec une
longueur de canal plus grande pour réduire
le courant de fuite qui, à terme, diminue la
consommation de puissance statique. La
bibliothèque de cellules standard a aussi été
considérablement optimisée et comprend des
éléments basse puissance.
Ces appareils sont également dotés d’un
registre périphérique ‘clock gating’ pour
désactiver les modules non utilisés, ainsi
que l’oscillateur externe 32kHz qui fournit
une source d’horloge précise au compteur
temps réel.
Collaborer pour un rendement
énergétique rentable
Enfin, l’efficacité énergétique est mesurée
par rapport aux besoins du client. Que
l’application nécessite une longévité
batterie accrue ou une diminution de la
dissipation thermique, les concepteurs
se basent sur les semiconducteurs
qui répondent à leurs exigences de
performance sans dépasser le budget
énergie fixé. Freescale travaille en étroite
collaboration avec ses clients pour définir
clairement les paramètres de performance
énergétique requis. Cette étroite
collaboration contribue à optimiser des
solutions en vue de développer facilement
des applications économiques d’énergie,
accélérer la commercialisation et rendre le
produit fini plus attrayant pour les clients.
L’efficacité énergétique pour
un rendement optimum
Les fabricants de produits électroniques disent que l’objectif de performance pure n’est plus leur préoccupation
première. Il s’agit désormais de réduire la facture énergétique au maximum, en raison de l’augmentation des coûts et des
responsabilités environnementales.
Produits Luxeon, SuperFlux et SnapLED
G U I D E D E S P R O D U I T S
2
Qu’est-ce que Luxeon ?
Les diodes Luxeon sont les diodes
électroluminescentes qui ont le flux
lumineux le plus élevé au monde, pour
fournir les solutions d’éclairage à semiconducteurs
les plus lumineuses. La
couleur blanche Luxeon produit plus de
20 lumens par Watt ; les diodes Luxeon
sont 10 à 20 fois plus lumineuses que les
DEL standard, ce qui permet d’obtenir
des densités lumineuses de 5 à 20 fois
supérieures. Luxeon est une source
lumineuse optimale.
Dure plus longtemps que toute autre
source lumineuse — plus de 10 ans
Luxeon a recours à des technologies de
semi-conducteurs utilisées dans la Silicon
Valley et similaires à celles des derniers
microprocesseurs. A la différence des
sources lumineuses classiques, les DEL
ne tombent pas en panne d’un seul coup,
dans le sens où elles ne brûlent pas et ne
cessent de fonctionner sans prévenir.
Dans de nombreuses applications, les
solutions Luxeon fonctionnent pendant
plus de 10 ans.
Frais de maintenance réduits
Du fait que les produits Luxeon durent au
moins 10 fois plus longtemps qu’une
source lumineuse classique, il n’est pas
nécessaire de remplacer la source
lumineuse, ce qui réduit, et même élimine,
les frais de maintenance récurrents et de
remplacement de l’éclairage.
Meilleur rendement énergétique
Adoptez la solution écologique. Luxeon,
avec un meilleur rendement que les
sources halogènes et incandescentes, se
rapproche rapidement du rendement des
solutions fluorescentes.
Couleurs vives saturées — sans filtre
Luxeon ne nécessite aucun filtre pour
générer une lumière colorée, ce qui a pour
effet des couleurs saturées plus profondes
sans perte de lumière. La profondeur des
rouges, verts et bleus est générée
directement par cette source lumineuse à
semi-conducteur.
Eclairage dirigé pour améliorer
le rendement lumineux
Les sources lumineuses Luxeon sont de
petits points de lumière directionnels. Leur
taille et la commande de leur direction en
font des systèmes optiques très
contrôlables, sans gaspillage de lumière.
Eclairage à semi-conducteurs fiable
Les sources lumineuses Luxeon sont des
appareils à semi-conducteurs. Elles ne
comportent pas de pièces mobiles, aucun
élément susceptible de rompre, de se
briser, de fuir ou de contaminer
l’environnement.
Contrôle dynamique des couleurs,
réglable sur le blanc
Les couleurs vives et saturées de Luxeon
permettent d’obtenir une large gamme
d’effets d’éclairage statiques et
dynamiques. Du blanc réglable à une seule
lumière capable de générer
numériquement n’importe quelle couleur
de l’arc-en-ciel, Luxeon ouvre de nouvelles
dimensions au monde de l’éclairage.
Totalement réglable —
sans variation de couleur
Les sources lumineuses Luxeon sont
totalement réglables — plus de 1000 fois
— sans compromettre les caractéristiques
de la lumière.
Pas de mercure dans la source
A la différence de la plupart des sources
fluorescentes, Luxeon ne contient pas de
mercure.
Absence de chaleur ou d’UV dans le
rayon lumineux
Pas de rayons ultraviolets ou infrarouges
nuisibles dans le rayon lumineux Luxeon.
Démarrage à froid
Luxeon n’a aucun problème de
démarrage aux basses températures —
jusqu’à -400 C.
Fonctionnement basse tension CC
Luxeon est un appareil à semi-conducteur
commandé par le courant, qui fonctionne
sous des tensions aussi faibles que
3,5 VCC.
Caractéristiques Luxeon
3
Conservation supérieure de l’intensité lumineuse — par conception
Les sources lumineuses Luxeon ne contiennent pas d’époxy. L’époxy se dégrade dans le
temps, ce qui entraîne une médiocre conservation de l’intensité lumineuse. La technologie
Luxeon apporte une conservation supérieure de l’intensité lumineuse par rapport à
d’autres sources semi-conductrices et aux éclairages classiques.
Meilleur rendement — par conception
La lumière émise par un produit Luxeon est
directionnelle. Les sources lumineuses classiques
(incandescentes, halogènes, fluorescentes) sont
omnidirectionnelles : la lumière est émise dans toutes
les directions. Pour éclairer un objet, la lumière qui
n’est pas dirigée vers l’endroit voulu doit être redirigée
au moyen d’optiques secondaires. Chaque fois qu’un
rayon lumineux est reflété, il perd de son intensité.
Les pertes typiques sont de l’ordre de 40 à 60 % :
cela signifie que dans certains cas, la moitié de la
lumière générée par la source est dirigée vers l’endroit
voulu. La nature dirigée de la lumière Luxeon fournit
des rendements de 80 à 90%. L’intensité lumineuse
totale nécessaire est donc inférieure pour obtenir la
même luminosité. Par exemple, la source Luxeon
Star/O génère un rayon étroit de 2x5 degrés avec un
rendement optique égal à 85 %.
Lorsque vous envisagez d’utiliser un produit Luxeon
comme source lumineuse, il est important de prendre
en compte tous les facteurs, y compris le modèle de
rayonnement le plus adapté à votre application. Il
existe différents modèles de rayonnement pour de
nombreux produits Luxeon. Le choix et la conception
du modèle de rayonnement améliore notablement le
rendement de votre système d’éclairage.
0
20
40
60
80
100
120
4000 8000 12000 20000
temps (heures)
puissance lumineuse relative %
DEL blanche 5 mm incandescence typique luxeon forte puissance
déplacement angulaire (degrés)
i n t e n s i t é r e l a t i v e %
aile de chauve-souris
modèle de rayonnement (sans optique)
-100 0 100
20
60
100
Supériorité de la conception
lambert
modèle de rayonnement (sans optique)
-100
20
60
100
0 100
déplacement angulaire (degrés)
i n t e n s i t é r e l a t i v e %
émission latérale
modèle de rayonnement (sans optique)
20
60
100
-120 0 120
déplacement angulaire (degrés)
i n t e n s i t é r e l a t i v e % 0
-
40
20
60
100
40
modèle de rayonnement
optique de réglage
déplacement angulaire (degrés)
i n t e n s i t é r e l a t i v e %
4
Diode Luxeon Emitter
Description
La puissance Luxeon sous sa forme la plus basique. Concevez et construisez
votre source lumineuse Luxeon selon vos spécifications. Diodes standard Luxeon
disponibles en blanc chaud, blanc, vert, cyan, bleu, bleu roi, rouge, rouge/orange
et ambre.
LXHL-BW02 Blanc 5500 K 25
LXHL-BW03 Blanc chaud 3300 K 20
LXHL-BM01 Vert 530 nm 30
LXHL-BE01 Cyan 505 nm 30
LXHL-BB01 Bleu 470 nm 10
LXHL-BR02 Bleu roi 455 nm 150 mW
LXHL-BD01 Rouge 625 nm 27
LXHL-BL01 Ambre 590 nm 25
LXHL-BD03 Rouge 625 nm 42
LXHL-BH03 Rouge/Orange 617 nm 55
LXHL BL03 Ambre 590 nm 42
LXHL-PL01 Ambre 590 nm 42
LXHL-DW01 Blanc 5500 K 22
LXHL-DM01 Vert 530 nm 27
LXHL-DE01 Cyan 505 nm 27
LXHL-DB01 Bleu 470 nm 9
LXHL-DR01 Bleu roi 455 nm 135 mW
LXHL-DD01 Rouge 625 nm 40
LXHL-DH01 Rouge/Orange 617 nm 50
LXHL-DL01 Ambre 590 nm 38
Aile de chauve-souris
Lambert
Emission latérale
DESSINS A
L’ECHELLE
REELLE
LXHL-PM01 Vert 530 nm 30
LXHL-PE01 Cyan 505 nm 30
LXHL-PB01 Bleu 470 nm 10
LXHL-PR03 Bleu roi 455 nm 150 mW
LXHL-PD01 Rouge 625 nm 44
LXHL-PH01 Rouge/Orange 617 nm 55
LXHL-PW01 Blanc 5500 K 25
Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
Référence Couleur Longueur d’onde dominante
ou temp. couleur Lumens TYP
Modèle de
rayonnement
Luxeon Star
5
LXHL-FD1C N/A N/A Rouge 625 nm 40 —
LXHL-FH1C N/A N/A Rouge/Orange 617 nm 50 —
LXHL-FL1C N/A N/A Ambre 590 nm 38 —
Description
Modules Luxeon de forme carrée et hexagonale. Fournis avec connecteur AMP 2
broches, ou pastilles à souder pour la connexion électrique. Pour un contrôle
précis du rayonnement, également disponible avec optique secondaire PMMA à
haut rendement. Disponible en blanc, blanc chaud, vert, cyan, bleu, bleu roi,
rouge, rouge/orange et ambre.
LXHL-MM1C LXHL-MM1A LXHL-NM98 Vert 530 nm 30 600
LXHL-ME1C LXHL-ME1A LXHL-NE98 Cyan 505 nm 30 600
LXHL-MB1C LXHL-MB1A LXHL-NB98 Bleu 470 nm 10 200
LXHL-MRRC LXHL-MRRA LXHL-NRR8 Bleu roi 455 nm 150 mW 120
LXHL-MD1C LXHL-MD1A LXHL-ND98 Rouge 625 nm 27 810
LXHL-ML1C LXHL-ML1A LXHL-NL98 Ambre 590 nm 25 750
LXHL-MDAC N/A N/A Rouge 625 nm 42 —
LXHL-MHAC N/A N/A Rouge/Orange 617 nm 55 —
LXHL-MLAC N/A N/A Ambre 590 nm 42 —
LXHL-MW1D LXHL-MW1B N/A Blanc 5500 K 25 —
LXHL-MM1D LXHL-MM1B N/A Vert 530 nm 30 —
LXHL-ME1D LXHL-ME1B N/A Cyan 505 nm 30 —
LXHL-MB1D LXHL-MB1B N/A Bleu 470 nm 10 —
LXHL-MRRD LXHL-MRRB N/A Bleu roi 455 nm 150 mW —
LXHL-MD1D LXHL-MD1B LXHL-ND94 Rouge 625 nm 44 660
LXHL-MH1D LXHL-MH1B LXHL-NH94 Rouge/Orange 617 nm 55 825
LXHL-ML1D LXHL-ML1B LXHL-NL94 Ambre 590 nm 42 540
LXHL-FW1C N/A N/A Blanc 5500 K 22 —
LXHL-FM1C N/A N/A Vert 530 nm 27 —
LXHL-FE1C N/A N/A Cyan 505 nm 27 —
LXHL-FB1C N/A N/A Bleu 470 nm 10 —
LXHL-FR1C N/A N/A Bleu roi 455 nm 135 mW —
Blanc chaud 3300 K 20 200
LXHL-MWEC LXHL-MWEA LXHL-NWE8 Blanc 5500 K 25 500
DESSINS A L’ECHELLE REELLE
LXHL-MWGC N/A LXHL-NWG8
La valeur “Lumens typique” pour les produits Star/O est approximativement inférieure de 10% à la même valeur pour les
produits Luxeon Star sans optique de réglage. Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
Couleur
Longueur
d’onde
dominante ou
temp. couleur
Lumens TYP
Candela
typique
(Star/O)
Modèle de
rayonnement
Star
(aile de chauve-souris, Lambert)
Star/O
(avec optique)
Star
(émission latérale)
Star/C
(avec connecteur)
Référence
Luxeon Star
Référence
Luxeon Star/C
Référence
Luxeon Star/O
Emission latérale Lambert Aile de chauve-souris
Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
6
Luxeon III Emitter & Star
Star
Modules Luxeon de forme hexagonale. Deux ou trois fois plus de lumière que les
produits Luxeon I. Livré avec pastilles à souder pour la connexion électrique.
Disponibles en blanc, vert, cyan, bleu et bleu roi. Prévu pour fonctionner en
700 mA et 1000 mA.
Emitter
La puissance Luxeon III sous sa forme la plus basique. Concevez et construisez
votre source lumineuse Luxeon III selon vos spécifications. Luxeon III est prévu pour
fonctionner en 700 mA et 1000 mA. Les diodes Luxeon III sont disponibles en
blanc, vert, cyan, bleu et bleu roi.
LXHL-PW09 Blanc 5500 K 65 80
LXHL-PM09 Vert 530 nm 64 80
LXHL-PE09 Cyan 505 nm 64 80
LXHL-PB09 Bleu 470 nm 23 30
LXHL-PR09 Bleu roi 455 nm 340 mW 450 mW
Lambert
Référence Couleur
Longueur d’onde
dominante ou
temp. couleur
Lumens TYP
(700 mA)
Lumens TYP
(1000 mA)
Modèle de
rayonnement
Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
LXHL-LW3C Blanc 5500 K 65 80
LXHL-LM3C Vert 530 nm 64 80
LXHL-LE3C Cyan 505 nm 64 80
LXHL-LB3C Bleu 470 nm 23 30
LXHL-LR3C Bleu roi 455 nm 340 mW 450 mW
Lambert
Référence Couleur
Longueur d’onde
dominante ou
temp. couleur
Lumens TYP
(700 mA)
Lumens TYP
(1000 mA)
Modèle de
rayonnement
DESSINS A L’ECHELLE REELLE
Référence Couleur
Longueur d’onde
dominante ou temp.
couleur
Lumens TYP
Modèle de
rayonnement
7
Luxeon V Emitter & Star
Star Star
(émission latérale)
Référence Couleur
Longueur d’onde
dominante ou temp.
couleur
Lumens TYP
Modèle de
rayonnement
LXHL-LM5C Vert 530 nm 120
LXHL-LE5C Cyan 505 nm 120
LXHL-LB5C Bleu 470 nm 45
LXHL-LR5C Bleu roi 455 nm 500 mW
LXHL-FW6C Blanc 5500 K 105 Emission latérale
LXHL-FM5C Vert 530 nm 110
LXHL-FE5C Cyan 505 nm 110
LXHL-FB5C Bleu 470 nm 27
LXHL-FR5C Bleu roi 455 nm 450 mW
Star
Modules Luxeon de forme hexagonale. Quatre fois plus de lumière que les
produits Luxeon standard. Livré avec pastilles à souder pour la connexion
électrique. Disponibles en vert, cyan, bleu et bleu roi. Les diodes Luxeon V
portables, disponibles en blanc, sont conçues pour les applications avec piles
(1000 heures), les «lampes de mineur» et les issues de secours.
Lambert
Emission latérale
LXHL-LW6C Blanc 5500 K 120 Lambert
Remarque : Les diodes portables Luxeon V sont conçues et spécifiées pour une durée de vie de 1 000
heures. Voir la fiche technique (document DS40) pour la conservation de l’intensité lumineuse. Pour de plus
amples informations, veuillez visiter le site www.luxeon.com.
Lambert
Emission latérale
LXHL-PM02 Vert 530 nm 120
LXHL-PE02 Cyan 505 nm 120
LXHL-PB02 Bleu 470 nm 45
LXHL-PR02 Bleu roi 455 nm 500 mW
LXHL-DM02 Vert 530 nm 110
LXHL-DE02 Cyan 505 nm 110
LXHL-DB02 Bleu 470 nm 27
LXHL-DR02 Bleu roi 455 nm 450 mW
LXHL-PW03 Blanc 5500 K 120 Lambert
LXHL-DW03 Blanc 5500 K 105 Emission latérale
Luxeon V Emitter
Remarque : Les diodes portables blanches Luxeon V sont conçues et spécifiées pour une durée de vie de
1 000 heures. Voir la fiche technique (document DS40) pour la conservation de l’intensité lumineuse.
Emitter
La puissance des diodes Luxeon V et Luxeon V portables sous sa forme la plus
basique. Concevez et construisez votre source lumineuse Luxeon V selon vos
spécifications. Les diodes Luxeon V sont disponibles en vert, cyan, bleu et bleu
roi. Les diodes portables Luxeon V sont disponibles en blanc.
Luxeon V Portable
DESSIN A
L’ECHELLE
REELLE
Luxeon V Star
Luxeon V Portable
Star
8
Luxeon Warm White
LXHL-BW03 Blanc chaud 3300 K 20 Aile de chauve-souris
LXHL-NWG8 Blanc chaud 3300 K 17 Avec optique de réglage
Référence Couleur
Longueur d’onde
dominante ou temp.
couleur
Lumens TYP
Modèle de
rayonnement
Description
Les produits Luxeon Emitter et Star Warm White sont les seules sources de
lumière blanche à semi-conducteurs de faible CCT et de CRI élevé. Avec un indice
de rendu des couleurs de 90 et une température de couleur corrélée de 3200 K,
les produits Luxeon en lumière blanche ouvrent la porte à l’utilisation plus
importante d’éclairages par semi-conducteurs dans les applications intérieures et
spécialisées en apportant le caractère apaisant et chaud des lampes
incandescentes et halogènes.
DESSINS A L’ECHELLE REELLE
Emitter
LXHL-MWGC Blanc chaud 3300 K 20 Aile de chauve-souris
Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
LXHL-BRD1 Bleu dentaire 460nm 140mw Aile de chauve-souris
LXHL-PRD5 Bleu dentaire 460nm 600mw Lambert
9
Luxeon Dental
Référence Couleur
Longueur d’onde
dominante ou temp.
couleur
Puissance Radiométrique
Typique
Modèle de
rayonnement
LXHL-MRD1 Bleu dentaire 460nm 140mw Aile de chauve-souris
LXHL-LRD5 Bleu dentaire 460nm 600mw Lambert
Star
Emitter
Description
Les solutions Luxeon Dental incluent les produits Luxeon et Luxeon V qui offrent
deux options de correction des puissances élevées. La gamme Luxeon Dental est
disponible en configurations diode et étoile qui permettent une conception souple
des systèmes de corrections de puissance.
Les produits Luxeon Dental sont choisis sur la base de la longueur d’onde en
pointe pour des temps de correction courts. Ils sont produits avec des niveaux
élevés de puissance minimale pour fournir la courte longueur d’onde bleue
nécessaire à la réduction des temps de correction tout en autorisant des
baguettes portatives.
Cette gamme révolutionnaire est particulièrement adaptée au secteur des soins
dentaires pour fournir le meilleur rendement nécessaire à ces applications.
Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
DESSINS A L’ECHELLE REELLE
10
Luxeon DCC
DESSIN A L’ECHELLE REELLE
Description
Luxeon DCC est une matrice linéaire de DEL Luxeon RVB spécialement conçue
comme source lumineuse de rétro-éclairage des écrans à cristaux liquides (LCD).
Pour ces applications, Luxeon DCC offre des avantages significatifs par rapport
aux solutions classiques et à base d’autres DEL.
Luxeon DCC permet aux fabricants de réaliser des écrans plus lumineux, plus
colorés et plus solides avec des avantages concurrentiels sur le marché.
Lumileds a mis rassemblé les compétences de base pour profiter des
caractéristiques uniques de chaque diode Luxeon. Chacune a été choisie pour
compléter les caractéristiques de chaque autre diode de la source lumineuse.
LXHL-MGAA 99 x 32
LXHL-MGBA 153 x 32
Source lumineuse Taille (mm) 5” 7” 8” 9” 10.1” 12.1” 15.0” 18.1”
4:3 16:10 4:3 4:3 4:3 4:3 4:3 4:3
Taille & proportions de l’écran
B S
B B B S
LXHL-MGCA 225 x 32
LXHL-MGDA 306 x 32
B S S
B
LXHL-MGEA 360 x 32 B
S= source lumineuse Luxeon DCC placée sur le côté de l’écran
B= source lumineuse Luxeon DCC placée au bas de l’écran
11
Luxeon Flood
LXHL-MWCA Blanc 5500 K 300
LXHL-MMCA Vert 530 nm 360
LXHL-MECA Cyan 505 nm 360
LXHL-MBCA Bleu 470 nm 120
LXHL-MDCA Rouge 625 nm 320
LXHL-MLCA Ambre 590 nm 300
LXHL-MWJA Blanc 5500 K 450
LXHL-MMJA Vert 530 nm 540
LXHL-MEJA Cyan 505 nm 540
LXHL-MBJA Bleu 470 nm 180
LXHL-MDJA Rouge 625 nm 480
LXHL-MLJA Ambre 590 nm 450
LXHL-MDCB Rouge 625 nm 525
LXHL-MLCB Ambre 590 nm 500
LXHL-MDJB Rouge 625 nm 790
LXHL-MLJB Ambre 590 nm 750
12
18
12
18
Aile de chauvesouris
Lambert
Nombre
Référence Couleur de DEL
Longueur d’onde
dominante ou
temp. couleur
Lumens TYP
Modèle de
rayonnement
Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
Description
Matrice rectangulaire de 12 ou 18 sources lumineuses Luxeon densément
conditionnées. Connecteur AMP fourni pour faciliter la connexion électrique.
Disponible en blanc, vert, cyan, bleu, rouge et ambre.
DESSIN A L’ECHELLE REELLE
12
Luxeon Line & Ring
LXHL-NW97 Blanc 5500 K 125
LXHL-NM97 Vert 530 nm 150
LXHL-NE97 Cyan 505 nm 150
LXHL-NB97 Bleu 470 nm 50
LXHL-ND93 Rouge 625 nm 225
LXHL-NL93 Ambre 590 nm 215
LXHL-NW96 Blanc 5500 K 250
LXHL-NM96 Vert 530 nm 300
LXHL-NE96 Cyan 505 nm 300
LXHL-NB96 Bleu 470 nm 100
LXHL-ND92 Rouge 625 nm 450
LXHL-NL92 Ambre 590 nm 425
Jusqu’à 6 Luxeon Ring
Jusqu’à 12 Luxeon Ring
Référence Couleur
Longueur d’onde
dominante ou
temp. couleur
Lumens TYP Configuration
Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
Ring
Matrices circulaires de 6 ou 12 sources lumineuses, utilisables séparément ou
conjointement. Livrées avec optique secondaire PMMA haut rendement pour le
contrôle précis du rayonnement. Connecteur AMP 2 broches fourni pour faciliter la
connexion électrique. Disponible en blanc, vert, cyan, bleu, rouge et ambre.
Line
Matrice linéaire de 12 sources lumineuses Luxeon. Livrée avec optique secondaire
PMMA haut rendement pour le contrôle précis du rayonnement. Deux connecteurs
AMP 2 broches permettent la connexion en chaîne de mètres de lumière.
Disponible en blanc, vert, cyan, bleu, rouge et ambre.
LXHL-NW99 Blanc 5500 K 250
LXHL-NM99 Vert 530 nm 300
LXHL-NE99 Cyan 505 nm 300
LXHL-NB99 Bleu 470 nm 100
LXHL-ND95 Rouge 625 nm 450
LXHL-NL95 Ambre 590 nm 425
Référence Couleur
Longueur d’onde dominante
ou temp. couleur
Lumens TYP
Pour de plus amples informations, veuillez visiter le site www.luxeon.com.
DESSINS A L’ECHELLE REELLE
13
HPWN-MG00 Vert 525 nm 4,5 4,1 90
HPWN-MC00 Cyan 505 nm 5,0 4,5 90
HPWN-MB00 Bleu 470 nm 2,0 1,8 90
HPWT-RD00 Rouge 630 nm 3,0 3,8 25 x 68
HPWT-MD00 Rouge 630 nm 3,0 1,8 70
HPWT-DD00 Rouge 630 nm 3,0 4,5 40
HPWT-BD00 Rouge 630 nm 3,0 6,0 30
HPWT-RH00 Rouge/Orange 620 nm 3,8 4,8 25 x 68
HPWT-MH00 Rouge/Orange 620 nm 3,8 2,3 70
HPWT-DH00 Rouge/Orange 620 nm 3,8 5,7 40
HPWT-BH00 Rouge/Orange 620 nm 3,8 7,6 30
HPWT-RL00 Ambre 594 nm 1,5 1,9 25 x 68
HPWT-ML00 Ambre 594 nm 1,5 0,9 70
HPWT-DL00 Ambre 594 nm 1,5 2,3 40
HPWT-BL00 Ambre 594 nm 1,5 3,0 30
Référence Couleur
Longueur d’onde
dominante
Lumens Candela
Angle de vision
(deg.)
SuperFlux
DEL carrées, 4 broches, montage sur trou. Disponible en vert, cyan, bleu, rouge,
rouge/orange et ambre et avec différents angles de vision pour tous besoins de
conception.
DEL SuperFlux & SnapLED
DESSINS A L’ECHELLE REELLE
Pour de plus amples informations, veuillez visiter le site www.lumileds.com.
SnapLED
DEL SnapLED rectangulaires haute luminosité. Il est possible de créer des
dispositions innovantes dans des boîtiers qui utilisent une technologie de montage
sans soudure. Disponibles en couleurs rouge/orange et ambre en versions 70 mA et
150 mA.
HPWT-TH00 Rouge/Orange 621 nm 3,0 1,8 85
HPWT-TL00 Ambre 594 nm 1,5 0,9 85
HPWT-FH00 Rouge/Orange 621 nm 3,0 6,0 30
HPWT-FL00 Ambre 594 nm 1,5 3,0 30
HPWS-TH00 Rouge/Orange 621 nm 6,0 3,6 85
HPWS-TL00 Ambre 594 nm 3,0 1,8 85
HPWS-FH00 Rouge/Orange 621 nm 6,0 12,0 30
HPWS-FL00 Ambre 594 nm 3,0 6,0 30
Référence Couleur
Longueur d’onde
dominante
Lumens
(min.)
Candela
(min.)
Angle de vision
(deg.)
Pour de plus amples informations, veuillez visiter le site www.lumileds.com.
70mA
150mA
14
Documentation générale
Lumileds Plug and Play Guide
Lumileds Application Overview
Luxeon Lighting
Vitrines des applications
AS01 Portable Lighting
AS02 Task/Reading Lights
AS03 Architectural Detail Lighting
AS04 Landscape and Path Lighting
AS05 Stairway and Marker Lighting
AS06 Interior Decorative Color Lighting
AS08 Colored Signal Lighting
AS10 Interior Decorative Lighting
AS11 Museum Quality/Fiber
Alternative/Display Pinpoint
Lighting
AS12 Entertainment, Film and Studio
Lighting
AS13 LED Retrofit Lamps
AS14 Luxeon DCC
AS15 Lighting for Digital Imaging
AS16 Sign Lighting
Fiches techniques
DS05 SuperFlux LEDs
DS21 Luxeon Line
DS22 Luxeon Ring
DS23 Luxeon Star
DS23A Luxeon Star Option Code
Selections
DS24 Luxeon Flood
DS25 Luxeon Emitter
DS25A Luxeon Emitter Option Code
Selections
DS26 Luxeon Collimator
DS30 Luxeon V Star
DS34 Luxeon V Emitter
DS35 Luxeon Dental
DS40 Luxeon V Portable
DS45 Luxeon III Emitter
DS46 Luxeon III Star
DS47 Luxeon Warm White Light Sources
DS48 Luxeon DCC
Notes d’applications résumées
AB05 Luxeon Thermal Design Guide
AB07 Lumen Maintenance of White
Luxeon Light Sources
AB08 Optical Testing for SuperFlux,
SnapLED and Luxeon Emitters
AB10 Luxeon Emitter Assembly Guide
AB11 Electrical Drive Information for
Luxeon Samples
AB12 Luxeon Custom Design Guide
AB13 Soldering SuperFlux LEDs
AB16 Lumileds SuperFlux LEDs versus
Other LEDs
AB17 Benefits of Lumileds Solid-State
Lighting Solutions vs.
Conventional Lighting
Ressources
Documentation Luxeon - Index
Lumileds modifie et met à jour régulièrement sa documentation. Pour les versions
les plus récentes de ces documents et d’autres, veuillez visiter la bibliothèque
Lumileds à l’adresse : www.lumileds.com.
15
Guide des fournisseurs
Le Guide des fournisseurs (Lumileds Vendor Resource Guide) est un annuaire
complet des sociétés qui fournissent dans le monde entier les produits et services
Luxeon, SuperFlux et SnapLED. Vous pouvez les rechercher par nom, par pays ou
par spécialité. Si vous avez besoin de l’assistance d’experts pour le développement
de vos solutions à base de produits Lumileds, consultez d’abord notre Guide des
fournisseurs.
AB20-3 Electrical Design
Considerations for Super
FluxLEDs
AB20-3A Advanced Electrical Design
Models
AB20-3B SuperFlux and SnapLED
Emitter Forward Voltage Data
AB20-4 Thermal Management
Considerations for SuperFlux
LEDs
AB20-5 Secondary Optics Design
Considerations for SuperFlux
LEDs
AB20-6 Reliability Considerations for
SuperFlux LEDs
AB20-7 SuperFlux Categories and
Labels
AB21 Luxeon Product Binning and
Labeling (June 2003)
AB22 Thyristor Application Brief
AB23 Thermal Design
Considerations for Luxeon V
Power Light Sources
AB25 Luxeon Reliability
Modèles de référence
DR01 Luxeon for Camera, Phone
Flash PDA and DSC
Applications
Lumileds Lighting
370 W. Trimble Road
San Jose, CA 95131
+1 408.435.6044 en Amérique du Nord
+31 499.339.439 en Europe
+60 4680.5342 en Asie / Japon
www.lumileds.com
www.luxeon.com
Luxeon distribué par
Future Electronics
www.FutureElectronics.com
888.589.3662 en Amérique du Nord
00.800.443.88.873 en Europe
800.5864.5337 en Asie
Document : PG-01-E Mars 2004
TO-220AB
BT136-600D
4Q Triac
30 September 2013 Product data sheet
Scan or click this QR code to view the latest information for this product
1. General description
Planar passivated very sensitive gate four quadrant triac in a SOT78 plastic package
intended for use in general purpose bidirectional switching and phase control
applications, where high sensitivity is required in all four quadrants. This very sensitive
gate "series D" triac is intended to be interfaced directly to microcontrollers, logic
integrated circuits and other low power gate trigger circuits.
2. Features and benefits
• Direct triggering from low power drivers and logic ICs
• High blocking voltage capability
• Low holding current for low current loads and lowest EMI at commutation
• Planar passivated for voltage ruggedness and reliability
• Triggering in all four quadrants
• Very sensitive gate
3. Applications
• General purpose motor control
• General purpose switching
4. Quick reference data
Table 1. Quick reference data
Symbol Parameter Conditions Min Typ Max Unit
VDRM repetitive peak offstate
voltage
- - 600 V
ITSM non-repetitive peak onstate
current
full sine wave; Tj(init) = 25 °C;
tp = 20 ms; Fig. 4; Fig. 5
- - 25 A
IT(RMS) RMS on-state current full sine wave; Tmb ≤ 107 °C; Fig. 1;
Fig. 2; Fig. 3
- - 4 A
Static characteristics
VD = 12 V; IT = 0.1 A; T2+ G+;
Tj = 25 °C; Fig. 7
IGT gate trigger current - 2 5 mA
VD = 12 V; IT = 0.1 A; T2+ G-;
Tj = 25 °C; Fig. 7
- 2.5 5 mA
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 2 / 13
Symbol Parameter Conditions Min Typ Max Unit
VD = 12 V; IT = 0.1 A; T2- G-;
Tj = 25 °C; Fig. 7
- 2.5 5 mA
VD = 12 V; IT = 0.1 A; T2- G+;
Tj = 25 °C; Fig. 7
- 5 10 mA
IH holding current VD = 12 V; Tj = 25 °C; Fig. 9 - 1.2 10 mA
5. Pinning information
Table 2. Pinning information
Pin Symbol Description Simplified outline Graphic symbol
1 T1 main terminal 1
2 T2 main terminal 2
3 G gate
mb T2 mounting base; main
terminal 2
1 2
mb
3
TO-220AB (SOT78)
sym051
T1
G
T2
6. Ordering information
Table 3. Ordering information
Type number Package
Name Description Version
BT136-600D TO-220AB plastic single-ended package; heatsink mounted; 1 mounting
hole; 3-lead TO-220AB
SOT78
BT136-600D/DG TO-220AB plastic single-ended package; heatsink mounted; 1 mounting
hole; 3-lead TO-220AB
SOT78
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 3 / 13
7. Limiting values
Table 4. Limiting values
In accordance with the Absolute Maximum Rating System (IEC 60134).
Symbol Parameter Conditions Min Max Unit
VDRM repetitive peak off-state voltage - 600 V
IT(RMS) RMS on-state current full sine wave; Tmb ≤ 107 °C; Fig. 1;
Fig. 2; Fig. 3
- 4 A
full sine wave; Tj(init) = 25 °C;
tp = 20 ms; Fig. 4; Fig. 5
ITSM non-repetitive peak on-state - 25 A
current
full sine wave; Tj(init) = 25 °C;
tp = 16.7 ms
- 27 A
I2t I2t for fusing tp = 10 ms; SIN - 3.1 A2s
IT = 6 A; IG = 0.2 A; dIG/dt = 0.2 A/μs;
T2+ G+
- 50 A/μs
IT = 6 A; IG = 0.2 A; dIG/dt = 0.2 A/μs;
T2+ G-
- 50 A/μs
IT = 6 A; IG = 0.2 A; dIG/dt = 0.2 A/μs;
T2- G-
- 50 A/μs
dIT/dt rate of rise of on-state current
IT = 6 A; IG = 0.2 A; dIG/dt = 0.2 A/μs;
T2- G+
- 10 A/μs
IGM peak gate current - 2 A
PGM peak gate power - 5 W
PG(AV) average gate power over any 20 ms period - 0.5 W
Tstg storage temperature -40 150 °C
Tj junction temperature - 125 °C
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 4 / 13
Tmb (°C)
- 50 0 50 100 150
003aae828
2
3
1
4
5
IT(RMS)
(A)
0
Fig. 1. RMS on-state current as a function of mounting
base temperature; maximum values
003aae830
4
8
12
IT(RMS)
(A)
0
surge duration (s)
10- 2 10- 1 1 10
2
6
10
f = 50 Hz
Tmb ≤ 107 °C
Fig. 2. RMS on-state current as a function of surge
duration; maximum values
003aae827
4
2
6
8
Ptot
(W)
0
IT(RMS) (A)
0 1 2 3 4 5
conduction
angle
(degrees)
form
factor
a
30
60
90
120
180
4
2.8
2.2
1.9
1.57
α
α = 180°
120°
90°
60°
30°
α = conduction angle
a = form factor = IT(RMS) / IT(AV)
Fig. 3. Total power dissipation as a function of RMS on-state current; maximum values
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 5 / 13
003aae831
10
20
30
ITSM
(A)
0
number of cycles
1 10 102 103 104
5
15
25
ITSM
t
IT
Tj(init) = 25 °C max
1/f
f = 50 Hz
Fig. 4. Non-repetitive peak on-state current as a function of the number of sinusoidal current cycles; maximum
values
003aae829
tp (s)
10- 5 10- 4 10- 3 10- 2 10- 1
102
103
ITSM
(A)
10
ITSM
t
IT
Tj(init) = 25 °C max
tp
(1)
(2)
tp ≤ 20 ms
(1) dIT/dt limit
(2) T2- G+ quadrant limit
Fig. 5. Non-repetitive peak on-state current as a function of pulse width; maximum values
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 6 / 13
8. Thermal characteristics
Table 5. Thermal characteristics
Symbol Parameter Conditions Min Typ Max Unit
Rth(j-mb) thermal resistance half cycle; Fig. 6 - - 3.7 K/W
from junction to
mounting base
full cycle; Fig. 6 - - 3 K/W
Rth(j-a) thermal resistance
from junction to
ambient
in free air - 60 - K/W
003aae836
tp (s)
10- 5 10- 4 10- 3 10- 2 10- 1 1 10
1
10- 1
10
Zth(j-mb)
(K/W)
10- 2
bidirectional
unidirectional
tp
P
t
Fig. 6. Transient thermal impedance from junction to mounting base as a function of pulse width
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 7 / 13
9. Characteristics
Table 6. Characteristics
Symbol Parameter Conditions Min Typ Max Unit
Static characteristics
VD = 12 V; IT = 0.1 A; T2+ G+;
Tj = 25 °C; Fig. 7
- 2 5 mA
VD = 12 V; IT = 0.1 A; T2+ G-;
Tj = 25 °C; Fig. 7
- 2.5 5 mA
VD = 12 V; IT = 0.1 A; T2- G-;
Tj = 25 °C; Fig. 7
- 2.5 5 mA
IGT gate trigger current
VD = 12 V; IT = 0.1 A; T2- G+;
Tj = 25 °C; Fig. 7
- 5 10 mA
VD = 12 V; IG = 0.1 A; T2+ G+;
Tj = 25 °C; Fig. 8
- 1.6 10 mA
VD = 12 V; IG = 0.1 A; T2+ G-;
Tj = 25 °C; Fig. 8
- 4.5 15 mA
VD = 12 V; IG = 0.1 A; T2- G-;
Tj = 25 °C; Fig. 8
- 1.2 10 mA
IL latching current
VD = 12 V; IG = 0.1 A; T2- G+;
Tj = 25 °C; Fig. 8
- 2.2 15 mA
IH holding current VD = 12 V; Tj = 25 °C; Fig. 9 - 1.2 10 mA
VT on-state voltage IT = 5 A; Tj = 25 °C; Fig. 10 - 1.4 1.7 V
VD = 12 V; IT = 0.1 A; Tj = 25 °C;
Fig. 11
VGT gate trigger voltage - 0.7 1 V
VD = 400 V; IT = 0.1 A; Tj = 125 °C;
Fig. 11
0.25 0.4 - V
ID off-state current VD = 600 V; Tj = 125 °C - 0.1 0.5 mA
Dynamic characteristics
dVD/dt rate of rise of off-state
voltage
VDM = 402 V; Tj = 125 °C; RGT1 = 1 kΩ;
(VDM = 67% of VDRM); exponential
waveform
- 5 - V/μs
tgt gate-controlled turn-on
time
ITM = 6 A; VD = 600 V; IG = 0.1 A; dIG/
dt = 5 A/μs
- 2 - μs
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 8 / 13
Tj (°C)
- 60 - 10 40 90 140
003aae833
1
2
3
0
(1)
(2)
(3)
(4)
(1)
(2)
(3)
(4)
IGT
IGT (25 °C)
(1) T2- G+
(2) T2- G-
(3) T2+ G-
(4) T2+ G+
Fig. 7. Normalized gate trigger current as a function of
junction temperature
Tj (°C)
- 60 - 10 40 90 140
003aae835
1
2
3
0
IL
IL(25°C)
Fig. 8. Normalized latching current as a function of
junction temperature
Tj (°C)
- 60 - 10 40 90 140
003aae837
1.0
0.5
1.5
2.0
0
IH
IH(25°C)
Fig. 9. Normalized holding current as a function of
junction temperature
VT (V)
0 1 2 3
003aae834
4
8
12
IT
(A)
0
(1) (2) (3)
Vo = 1.27 V
Rs = 0.091 Ω
(1) Tj = 125 °C; typical values
(2) Tj = 125 °C; maximum values
(3) Tj = 25 °C; maximum values
Fig. 10. On-state current as a function of on-state
voltage
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 9 / 13
Tj (°C)
- 60 - 10 40 90 140
003aae832
0.8
0.4
1.2
1.6
0
VGT
VGT (25 °C)
Fig. 11. Normalized gate trigger voltage as a function of junction temperature
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 10 / 13
10. Package outline
OUTLINE REFERENCES
VERSION
EUROPEAN
PROJECTION ISSUE DATE
IEC JEDEC JEITA
SOT78 3-lead TO-220AB SC-46
SOT78
08-04-23
08-06-13
Notes
1. Lead shoulder designs may vary.
2. Dimension includes excess dambar.
UNIT A
mm 4.7
4.1
1.40
1.25
0.9
0.6
0.7
0.4
16.0
15.2
6.6
5.9
10.3
9.7
15.0
12.8
3.30
2.79
3.8
3.5
A1
DIMENSIONS (mm are the original dimensions)
Plastic single-ended package; heatsink mounted; 1 mounting hole; 3-lead TO-220AB
0 5 10 mm
scale
b b1(2)
1.6
1.0
c D
1.3
1.0
b2(2) D1 E e
2.54
L L1(1) L2(1)
max.
3.0
p q
3.0
2.7
Q
2.6
2.2
D
D1
q
p
L
1 2 3
L1(1)
b1(2)
(3×)
b2(2)
(2×)
e e
b(3×)
E A
A1
c
Q
L2(1)
mounting
base
Fig. 12. Package outline TO-220AB (SOT78)
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 11 / 13
11. Legal information
11.1 Data sheet status
Document
status [1][2]
Product
status [3]
Definition
Objective
[short] data
sheet
Development This document contains data from
the objective specification for product
development.
Preliminary
[short] data
sheet
Qualification This document contains data from the
preliminary specification.
Product
[short] data
sheet
Production This document contains the product
specification.
[1] Please consult the most recently issued document before initiating or
completing a design.
[2] The term 'short data sheet' is explained in section "Definitions".
[3] The product status of device(s) described in this document may have
changed since this document was published and may differ in case of
multiple devices. The latest product status information is available on
the Internet at URL http://www.nxp.com.
11.2 Definitions
Preview — The document is a preview version only. The document is still
subject to formal approval, which may result in modifications or additions.
NXP Semiconductors does not give any representations or warranties as to
the accuracy or completeness of information included herein and shall have
no liability for the consequences of use of such information.
Draft — The document is a draft version only. The content is still under
internal review and subject to formal approval, which may result in
modifications or additions. NXP Semiconductors does not give any
representations or warranties as to the accuracy or completeness of
information included herein and shall have no liability for the consequences
of use of such information.
Short data sheet — A short data sheet is an extract from a full data sheet
with the same product type number(s) and title. A short data sheet is
intended for quick reference only and should not be relied upon to contain
detailed and full information. For detailed and full information see the
relevant full data sheet, which is available on request via the local NXP
Semiconductors sales office. In case of any inconsistency or conflict with the
short data sheet, the full data sheet shall prevail.
Product specification — The information and data provided in a Product
data sheet shall define the specification of the product as agreed between
NXP Semiconductors and its customer, unless NXP Semiconductors and
customer have explicitly agreed otherwise in writing. In no event however,
shall an agreement be valid in which the NXP Semiconductors product
is deemed to offer functions and qualities beyond those described in the
Product data sheet.
11.3 Disclaimers
Limited warranty and liability — Information in this document is believed
to be accurate and reliable. However, NXP Semiconductors does not give
any representations or warranties, expressed or implied, as to the accuracy
or completeness of such information and shall have no liability for the
consequences of use of such information. NXP Semiconductors takes no
responsibility for the content in this document if provided by an information
source outside of NXP Semiconductors.
In no event shall NXP Semiconductors be liable for any indirect, incidental,
punitive, special or consequential damages (including - without limitation -
lost profits, lost savings, business interruption, costs related to the removal
or replacement of any products or rework charges) whether or not such
damages are based on tort (including negligence), warranty, breach of
contract or any other legal theory.
Notwithstanding any damages that customer might incur for any reason
whatsoever, NXP Semiconductors’ aggregate and cumulative liability towards
customer for the products described herein shall be limited in accordance
with the Terms and conditions of commercial sale of NXP Semiconductors.
Right to make changes — NXP Semiconductors reserves the right to
make changes to information published in this document, including without
limitation specifications and product descriptions, at any time and without
notice. This document supersedes and replaces all information supplied prior
to the publication hereof.
Suitability for use — NXP Semiconductors products are not designed,
authorized or warranted to be suitable for use in life support, life-critical or
safety-critical systems or equipment, nor in applications where failure or
malfunction of an NXP Semiconductors product can reasonably be expected
to result in personal injury, death or severe property or environmental
damage. NXP Semiconductors and its suppliers accept no liability for
inclusion and/or use of NXP Semiconductors products in such equipment or
applications and therefore such inclusion and/or use is at the customer’s own
risk.
Quick reference data — The Quick reference data is an extract of the
product data given in the Limiting values and Characteristics sections of this
document, and as such is not complete, exhaustive or legally binding.
Applications — Applications that are described herein for any of these
products are for illustrative purposes only. NXP Semiconductors makes no
representation or warranty that such applications will be suitable for the
specified use without further testing or modification.
Customers are responsible for the design and operation of their
applications and products using NXP Semiconductors products, and NXP
Semiconductors accepts no liability for any assistance with applications or
customer product design. It is customer’s sole responsibility to determine
whether the NXP Semiconductors product is suitable and fit for the
customer’s applications and products planned, as well as for the planned
application and use of customer’s third party customer(s). Customers should
provide appropriate design and operating safeguards to minimize the risks
associated with their applications and products.
NXP Semiconductors does not accept any liability related to any default,
damage, costs or problem which is based on any weakness or default
in the customer’s applications or products, or the application or use by
customer’s third party customer(s). Customer is responsible for doing all
necessary testing for the customer’s applications and products using NXP
Semiconductors products in order to avoid a default of the applications
and the products or of the application or use by customer’s third party
customer(s). NXP does not accept any liability in this respect.
Limiting values — Stress above one or more limiting values (as defined in
the Absolute Maximum Ratings System of IEC 60134) will cause permanent
damage to the device. Limiting values are stress ratings only and (proper)
operation of the device at these or any other conditions above those
given in the Recommended operating conditions section (if present) or the
Characteristics sections of this document is not warranted. Constant or
repeated exposure to limiting values will permanently and irreversibly affect
the quality and reliability of the device.
Terms and conditions of commercial sale — NXP Semiconductors
products are sold subject to the general terms and conditions of commercial
sale, as published at http://www.nxp.com/profile/terms, unless otherwise
agreed in a valid written individual agreement. In case an individual
agreement is concluded only the terms and conditions of the respective
agreement shall apply. NXP Semiconductors hereby expressly objects to
applying the customer’s general terms and conditions with regard to the
purchase of NXP Semiconductors products by customer.
No offer to sell or license — Nothing in this document may be interpreted
or construed as an offer to sell products that is open for acceptance or the
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 12 / 13
grant, conveyance or implication of any license under any copyrights, patents
or other industrial or intellectual property rights.
Export control — This document as well as the item(s) described herein
may be subject to export control regulations. Export might require a prior
authorization from competent authorities.
Non-automotive qualified products — Unless this data sheet expressly
states that this specific NXP Semiconductors product is automotive qualified,
the product is not suitable for automotive use. It is neither qualified nor
tested in accordance with automotive testing or application requirements.
NXP Semiconductors accepts no liability for inclusion and/or use of nonautomotive
qualified products in automotive equipment or applications.
In the event that customer uses the product for design-in and use in
automotive applications to automotive specifications and standards,
customer (a) shall use the product without NXP Semiconductors’ warranty
of the product for such automotive applications, use and specifications, and
(b) whenever customer uses the product for automotive applications beyond
NXP Semiconductors’ specifications such use shall be solely at customer’s
own risk, and (c) customer fully indemnifies NXP Semiconductors for any
liability, damages or failed product claims resulting from customer design and
use of the product for automotive applications beyond NXP Semiconductors’
standard warranty and NXP Semiconductors’ product specifications.
Translations — A non-English (translated) version of a document is for
reference only. The English version shall prevail in case of any discrepancy
between the translated and English versions.
11.4 Trademarks
Notice: All referenced brands, product names, service names and
trademarks are the property of their respective owners.
Adelante, Bitport, Bitsound, CoolFlux, CoReUse, DESFire, EZ-HV,
FabKey, GreenChip, HiPerSmart, HITAG, I²C-bus logo, ICODE, I-CODE,
ITEC, Labelution, MIFARE, MIFARE Plus, MIFARE Ultralight, MoReUse,
QLPAK, Silicon Tuner, SiliconMAX, SmartXA, STARplug, TOPFET,
TrenchMOS, TriMedia and UCODE — are trademarks of NXP B.V.
HD Radio and HD Radio logo — are trademarks of iBiquity Digital
Corporation.
NXP Semiconductors BT136-600D
4Q Triac
BT136-600D All information provided in this document is subject to legal disclaimers. © NXP N.V. 2013. All rights reserved
Product data sheet 30 September 2013 13 / 13
12. Contents
1 General description ............................................... 1
2 Features and benefits ............................................1
3 Applications ........................................................... 1
4 Quick reference data ............................................. 1
5 Pinning information ............................................... 2
6 Ordering information ............................................. 2
7 Limiting values .......................................................3
8 Thermal characteristics .........................................6
9 Characteristics .......................................................7
10 Package outline ................................................... 10
11 Legal information .................................................11
11.1 Data sheet status ............................................... 11
11.2 Definitions ...........................................................11
11.3 Disclaimers .........................................................11
11.4 Trademarks ........................................................ 12
© NXP N.V. 2013. All rights reserved
For more information, please visit: http://www.nxp.com
For sales office addresses, please send an email to: salesaddresses@nxp.com
Date of release: 30 September 2013
Page 26-1
Semiconductors
Integrated Circuits
Part Number Description
NTE4001B IC-CMOS, Quad 2-Input NOR Gate
NTE4001BT IC-CMOS, Quad 2-Input NOR Gate (Surface Mount)
NTE4002B IC-CMOS, Dual 4-Input NOR Gate
NTE4002BT IC-CMOS, Dual 4-Input NOR Gate (Surface Mount)
NTE4006B IC-CMOS, 18-Stage Static Shift Register
NTE4007 IC-CMOS, Dual Complementary Pair Plus Inverter
NTE4007T IC-CMOS, Dual Complementary Pair Plus Inverter (Surface
Mount)
NTE4008B IC-CMOS, 4-Bit Full Adder w/Parallel Carry Out
NTE4009 IC-CMOS, Hex Buffer/Converter (Inverting)
NTE40098B IC-CMOS, Hex 3-State Buffer (Inverting)
NTE40100B IC-CMOS, 32-Stage Static Shift Left/Right, Shift Register
NTE40106B IC-CMOS, Hex Schmitt Trigger
NTE40106BT IC-CMOS, Hex Schmitt Trigger (Surface Mount)
NTE4011B IC-CMOS, Quad 2-Input NAND Gate
NTE4011BT IC-CMOS, Quad 2-Input NAND Gate (Surface Mount)
NTE4012B IC-CMOS, Dual 4-Input NAND Gate
NTE4012BT IC-CMOS, Dual 4-Input NAND Gate (Surface Mount)
NTE4013B IC-CMOS, Dual D Type Flip-Flop
NTE4013BT IC-CMOS, Dual D Type Flip-Flop (Surface Mount)
NTE4014B IC-CMOS, 8-Stage Shift Register Synchronous Parallel or
Serial Input/Serial Output
NTE4015B IC-CMOS, Dual 4-Stage Static Shift Register w/Serial
Input/Parallel Output
NTE4015BT IC-CMOS, Dual 4-Stage Static Shift Register w/Serial
Input/Parallel Output (Surface Mount)
NTE40160B IC-CMOS, Synchronous Programmable 4-Bit BCD Counter
w/Asynchronous Clear
Integrated Circuits
(cont.)
Part Number Description
NTE40161B IC-CMOS, Synchronous Programmable 4-Bit Binary
Counter w/Asynchronous Clear
NTE40162B IC-CMOS, Synchronous Programmable 4-Bit BCD
Counter w/Synchronous Clear
NTE40163B IC-CMOS, Synchronous Programmable 4-Bit BCD Counter
w/Synchronous Clear
NTE4016B IC-CMOS, Quad Bilateral Switch for Transmission or
Multiplexing of Analog or Digital Signals
NTE40174B IC-CMOS, Hex D-Type Flip-Flop
NTE40174BT IC-CMOS, Hex D-Type Flip-Flop (Surface Mount)
NTE40175B IC-CMOS, Quad D-Type Flip-Flop
NTE4017B IC-CMOS, Decade Counter w/10 Decoder Outputs
NTE40182B IC-CMOS, Look Ahead Carry Generator
NTE4018B IC-CMOS, Presettable Divide-By-"N" Counter
NTE40192B IC-CMOS, Presettable Up/Down BCD Counter, Dual Clock
w/Reset
NTE40193B IC-CMOS, Presettable Up/Down Binary Counter, Dual Clock
w/Reset
NTE40194B IC-CMOS, 4-Bit Bidirectional Universal Shift Register
w/Asynchronous Master/Reset
NTE40195B IC-CMOS, 4-Bit Shift Register
NTE4020B IC-CMOS, 14-Stage Ripple-Carry Binary Counter/Divider
NTE4020BT IC-CMOS, 14-Stage Ripple-Carry Binary Counter/Divider
(Surface Mount)
NTE4021B IC-CMOS, 8-Stage Static Shift Register Asynchronous Parallel
Input or Synchronous Serial Input/Serial Output
NTE4021BT IC-CMOS, 8-Stage Static Shift Register Asynchronous Parallel
Input or Synchronous Serial Input/Serial Output (Surface
Mount)
NTE4022B IC-CMOS, Octal Counter/Divider w/8 Decoded Outputs
NTE4023B IC-CMOS, Triple 3-Input NAND Gate
NTE4023BT IC-CMOS, Triple 3-Input NAND Gate (Surface Mount)
NTE4024B IC-CMOS, 7-Stage Ripple-Carry Binary Counter/Divider
NTE4025B IC-CMOS, Triple 3-Input NOR Gate
NTE4016BT
NTE4019B
IC-CMOS, Quad Bilateral Switch for Transmission or
Multiplexing of Analog or Digital Signals (Surface Mount)
IC-CMOS, Quad AND/OR Select Gate
NTE4025BT IC-CMOS, Triple 3-Input NOR Gate (Surface Mount)
NTE4026B IC-CMOS, Decade Counter/Divider w/Decoded Seven-
Segment Display Outputs and Display Enable
NTE4027B IC-CMOS, Dual J-K Master-Slave Flip-Flop
NTE4027BT IC-CMOS, Dual J-K Master-Slave Flip-Flop (Surface Mount)
NTE4028B IC-CMOS, BCD-to-Decimal Decoder
NTE4029BT IC-CMOS, Presettable Up/Down Counter, Binary or BCD
Decade Decoder (Surface Mount)
NTE4030B IC-CMOS, Quad Exclusive OR Gate
NTE4028BT IC-CMOS, BCD-to-Decimal Decoder (Surface Mount)
NTE4029B IC-CMOS, Presettable Up/Down Counter, Binary or BCD
Decade Decoder
NTE4031B IC-CMOS, 64-Stage Static Shift Register
NTE4032B IC-CMOS, Triple Serial Positive Logic Adder
NTE4033B IC-CMOS, Decade Counter/Divider w/Decoded Seven-
Segment Display Outputs and Ripple Blanking
NTE4034B IC-CMOS, 8-Stage Static Bi-Directional Parallel/Serial
Input/Output Bus Register
NTE4035B IC-CMOS, 4-Stage Parallel In/Parallel Out Shift Register w/J-K
Serial Input and True Complement Output
NTE4038B IC-CMOS, Triple Serial Negative Logic Adder
NTE4040B IC-CMOS, 12-Stage Ripple-Carry Binary Counter/Divider
Page 26-2
Semiconductors
NTE4256 IC-NMOS, 256K Dynamic RAM, 100ns
NTE4501 IC-CMOS, Dual 4-Input NAND Gate, 2-Input NOR/OR Gate, 8-
Input AND/NAND Gate
NTE4503B IC-CMOS, Hex 3-State Non-Inverting Buffer
NTE4510B IC-CMOS, Presettable UP/Down BCD Counter
NTE4510BT IC-CMOS, Presettable UP/Down BCD Counter (Surface Mount)
NTE4511B IC-CMOS, BCD-to-Seven-Segment Latch Decoder Driver
Integrated Circuits
(cont.)
Part Number Description
NTE4041 IC-CMOS, Quad True/Complement Buffer
NTE4042B IC-CMOS, Quad, Clocked D-Type Latch
NTE4042BT IC-CMOS, Quad, Clocked D-Type Latch (Surface Mount)
NTE4043B IC-CMOS, Quad, 3-State NOR R/S Latch
NTE4043BT IC-CMOS, Quad, 3-State NOR R/S Latch (Surface Mount)
NTE4044B IC-CMOS, Quad 3-State NAND R/S Latch
NTE4044BT IC-CMOS, Quad 3-State NAND R/S Latch (Surface Mount)
NTE4045B IC-CMOS, 21-Stage Counter
NTE4045BT IC-CMOS, 21-Stage Counter (Surface Mount)
NTE4046B IC-CMOS, Phase-Lock Loop (PLL)
NTE4046BT IC-CMOS, Phase-Lock Loop (PLL) (Surface Mount)
Integrated Circuits
(cont.)
Part Number Description
NTE4047B IC-CMOS, Low-Power Monostable/Astable Multivibrator
NTE4047BT IC-CMOS, Low-Power Monostable/Astable Multivibrator
(Surface Mount)
NTE4048B IC-CMOS, Multi-Function Expandable 8-Input Gate
NTE4049 IC-CMOS, Hex Buffer/Converter, Inverting
NTE4049T IC-CMOS, Hex Buffer/Converter, Inverting (Surface Mount)
NTE4050BT IC-CMOS, Hex Buffer/Converter, Non-Inverting (Surface Mount)
NTE4051B IC-CMOS, Analog, Single 8-Channel Multiplexer/Demultiplexer
NTE4051BT IC-CMOS, Analog, Single 8-Channel Multiplexer/Demultiplexer
(Surface Mount)
NTE4052B IC-CMOS, Analog, Differential 4-Channel Multiplexer
NTE4052BT IC-CMOS, Analog, Differential 4-Channel Multiplexer
NTE4053B IC-CMOS, Triple 2-Channel Analog Multiplexer
NTE4053BT IC-CMOS, Triple 2-Channel Analog Multiplexer (Surface Mount)
NTE4055B IC-CMOS, BCD-to-7 Segment Decoder/Driver w/"Display-
Frequency" Output
NTE4056B IC-CMOS, BCD-to-7-Segement Decoder/Divider w/Strobed
Latch Function
NTE4060B IC-CMOS 14-Stage Ripple-Carry Binary Counter/Divider and
Oscillator
NTE4060BT IC-CMOS 14-Stage Ripple-Carry Binary Counter/Divider and
Oscillator (Surface Mount)
NTE4063B IC-CMOS, 4-Bit Magnitude Comparator (High-Voltage Type)
NTE4066B IC-CMOS, Quad Bilateral Switch
NTE4066BT IC-CMOS, Quad Bilateral Switch (Surface Mount)
NTE4067B IC-CMOS, Analog, Single 16-Channel Multiplexer/Demultiplexer
NTE4068B IC-CMOS, 8-Input NAND/AND Gate (High Voltage Type)
NTE4050B IC-CMOS, Hex Buffer/Converter, Non-Inverting
NTE4040BT IC-CMOS, 12-Stae Ripple-Carry Binary Counter/Divider
(Surface Mount)
NTE4070B IC-CMOS, Quad Exclusive OR Gate
NTE4070BT IC-CMOS, Quad Exclusive OR Gate (Surface Mount)
NTE4071B IC-CMOS, Quad 2-Input OR Gate
NTE4071BT IC-CMOS, Quad 2-Input OR Gate (Surface Mount)
NTE4072B IC-CMOS, Dual 4-Input OR Gate
NTE4073B IC-CMOS, Triple 3-Input AND Gate
NTE4073BT IC-CMOS, Triple 3-Input AND Gate (Surface Mount)
NTE4075BT IC-CMOS, Triple 3-Input OR Gate
NTE4076B IC-CMOS, 4-Bit D-Type Register (High Voltage Type)
NTE4077B IC-CMOS, Quad Exclusive NOR Gate
NTE4077BT IC-CMOS, Quad Exclusive NOR Gate (Surface Mount)
NTE4078B IC-CMOS, 8-Input NOR Gate
NTE4081B IC-CMOS, Quad 2-Input AND Gate
NTE4082B IC-CMOS, Dual 4-Input AND Gate
NTE4085B IC-CMOS, Dual 2-Wide, 2-Input AND/OR Invert Gate
NTE4086B IC-CMOS, Expandable 4-Wide, 2-Input AND/OR Invert Gate
NTE4089B IC-CMOS, Binary Rte Multiplier
NTE4093B IC-CMOS, Quad 2-Input NAND Schmitt Trigger
NTE4093BT IC-CMOS, Quad 2-Input NAND Schmitt Trigger (Surface Mount)
NTE4094B IC-CMOS, 8-Stage Shift and Storage Bus Register
NTE4094BT IC-CMOS, 8-Stage Shift and Storage Bus Register (Surface
Mount)
NTE4095B IC-CMOS, Gated J-K Master/Slave Flip-Flop w/Set-Reset
Capability Non-Inverting J and K Inputs
NTE4096B IC-CMOS, Gated J-K Master/Slave Flip-Flop w/Set-Reset
Capability Inverting and Non-Inverting J and K Inputs
NTE4097B IC-CMOS, Analog, Differential 8-Channel
Multiplexer/Demultiplexer
NTE4098B IC-CMOS, Dual Monostable Multivibrator
NTE4099B IC-CMOS, 8-Bit Addressable Latch
NTE4164 IC-NMOS, 64K Dynamic RAM, 150ns
NTE4075B IC-CMOS, Triple 3-Input AND Gate (Surface Mount)
NTE4068BT IC-CMOS, 8-Input NAND/AND Gate (High Voltage Type)
NTE4069 IC-CMOS, Hex Inverter (High Voltage Type)
NTE4069T IC-CMOS, Hex Inverter (High Voltage Type) (Surface Mount)
NTE4511BT IC-CMOS, BCD-to-Seven-Segment Latch Decoder Driver
(Surface Mount)
NTE4512B IC-CMOS, 8-Channel Data Selector
Page 26-3
Semiconductors
Integrated Circuits
(cont.)
Integrated Circuits
(cont.)
Part Number Description
NTE4513B IC-CMOS, BCD-to-Seven-Segment Latch Decoder Driver
NTE4514B IC-CMOS, 4-Bit Latch/4-to-16 Decoder Line (Output "High" on
Select)
NTE4515B IC-CMOS, 4-Bit Latch/4-to-16 Line Decoder (Output "Low" on
Select)
NTE4516B IC-CMOS, Presettable UP/Down Binary Counter
NTE4517B IC-CMOS, Dual 64-Stage Static Shift Register
NTE4518B IC-CMOS, Dual BCD UP-Counter
NTE4518BT IC-CMOS, Dual BCD UP-Counter (Surface Mount)
NTE4520B IC-CMOS, Dual Binary Up-Counter
NTE4520BT IC-CMOS, Dual Binary Up-Counter (Surface Mount)
NTE4522B IC-CMOS, Programmable Diode-by-"N" 4-Bit BCD Counter
NTE4526B IC-CMOS, Programmable Divide-by-"N" 4-Bit Binary Counter
NTE4527B IC-CMOS, BCD Rate Multiplier
NTE4528B IC-CMOS, Dual Retriggerable/Resettable Monostable
Multivibrator
NTE4528BT IC-CMOS, Dual Retriggerable/Resettable Monostable
Multivibrator (Surface Mount)
NTE4529B IC-CMOS, Dual 4-Channel Analog Data Selector
NTE4531B IC-CMOS, 12-Bit Parity Tree
NTE4532B IC-CMOS, 8-Bit Priority Encoder
NTE4536B IC-CMOS, Programmable Timer
NTE4538B IC-CMOS, Dual Precision Monostable Multivibrator
NTE4521B IC-CMOS, 24-Stage Frequency Divider
NTE4539B IC-CMOS, Dual 4-Channel Data Selector/Multiplexer
NTE4541B
NTE4541BT IC-CMOS, Programmable Timer (Surface Mount)
NTE4543B IC-CMOS, BCD-to-Seven-Segment Latch/Decoder/Driver for
Liquid Crystals
NTE4547B IC-CMOS, High Current BCD-to-Seven-Segment
Decoder/Driver
NTE4553B IC-CMOS, 3-Digit BCD Counter
NTE4555B IC-CMOS, Dual Binary to 1-of-4 Decoder/Demultiplexer
(Output "High" on Select)
NTE4556B IC-CMOS, Dual Binary to 1-of-4 Decoder/Demultiplexer (Output
"Low" on Select)
NTE4558B IC-CMOS, BCD-to-Seven-Segment Decoder
NTE4566B IC-CMOS, Industrial Time Base Generator
NTE4569B IC-CMOS, Programmable Divide-by-"N" Dual 4-Bit BCD/Binary
Counter
NTE4583B IC-CMOS, Dual Schmitt Trigger
NTE4551B IC-CMOS, Quad 2-Input analog Multiplexer/Demultiplexer
Part Number Description
NTE4597B IC-CMOS, 8-Bit, Bus Compatible Counter Latch
NTE4598B IC-CMOS, 8-Bit, Bus Compatible Addressable Latch
NTE7400 IC-TTL, Quad 2-Input Pos NAND Gate
NTE7401 IC-TTL, Quad 2-Input Pos NAND Gate w/Open Collector
Outputs
NTE7402 IC-TTL, Quad 2-Input Positive NOR Gate
NTE7403 IC-TTL, Quad 2-Input Positive NAND Gate w/Open Collector
Outputs
NTE7404 IC-TTL, Hex Inverter
NTE7405 IC-TTL Hex Inverter w/Open Collector Outputs
NTE7406 IC-TTL, Hex Inverter Buffer/Driver w/Open Collector HV
Outputs
NTE7407 IC-TTL, Hex Buffer/Driver w/Open Collector HV Outputs
NTE7408 IC-TTL, Quad 2-Input Pos AND Gate
NTE7409 IC-TTL, Quad 2-Input Pos AND Gate w/Open Collector Outputs
NTE7410 IC-TTL, Triple 3-Input Pos NAND Gate
NTE74107 IC-TTL, Dual J-K Negative Edge Triggered Flip-FLop w/Clear
and Preset
NTE74109 IC-TTL, Dual J-K Pos Edge Triggered Flip-FLop w/Clear and
Preset
NTE7411 IC-TTL, Triple 3-Input Pos AND Gate
NTE74110 IC-TTL, AND Gated J-K Master/Slave Flip-FLop w/Data Lockout
NTE74116 IC-TTl, Dual 4-Bit Latch
NTE7412 IC-TTL, Triple 3-Input Pos NAND Gate w/Collector Outputs
NTE74120 IC-TTL, Dual Pulse Synchronizer/Driver
NTE74121 IC-TTL, Monostable Multivibrator
NTE74122 IC-TTL, Retriggerable Monostable Multivibrator w/Clear
NTE74123 IC-TTL, Dual Retriggerable Monostable Multivibrator w/Clear
NTE74126 IC-TTL, Quad Bus Buffer w/3-State Outputs
NTE74128 IC-TTL, Quad 2-Input NOR 50ohm Line Driver
NTE7413 IC-TTL, Dual 4-Input NAND Schmitt Trigger
NTE74132 IC-TTL, Quad 2-Input Pos NAND Schmitt Trigger
NTE7414 IC-TTL, Hex Schmitt Trigger
NTE74141 IC-TTL, BCD-to-Decimal Decoder/Driver, Driver Filled Cold
Cathode Indicator Tubes Directly
NTE74145 IC-TTL, BCD-to-Decimal Decoder/Driver for Lamps, Relays,
MOS
NTE74147 IC-TTL, 10-Line Decimal-to-4-Line BCD Priority Encoder
NTE74136 IC-TTL, Quad Exclusive OR Gate w/Open Collector Outputs
NTE74150 IC-TTL, 1-of-16 Data Selector/Mulitplexer
NTE74151 IC-TTL, 8-Channel Multiplexer
NTE74148 IC-TTL, 8-Line to 3-Line OCtal Priority Encoder
NTE74152 IC-TTL, 1-of-8 Data Selector/Multiplexer
IC-CMOS, Programmable Timer
NTE4584B IC-CMOS, Hex Schmitt Trigger
NTE4585B IC-CMOS, 4-Bit Magnitude Comparator NTE74153 IC-TTL, Dual 4-Line-to-1-Line Data Selector/Mulitplexer
NTE74154 IC-TTL, 4-Line-to-16-Line Decoder/Demultiplexer
Page 26-4
Semiconductors
Integrated Circuits
(cont.)
Integrated Circuits
(cont.)
Part Number Description
NTE74155 IC-TTL, Dual 2-Line-to-4-Line Decoder/Demultiplexer w/Totem
Pole Outputs
NTE74156 IC-TTL, Dual 2-Line-to-4-Line Decoder/Demultiplexer w/Open
Collector Outputs
NTE74157 IC-TTL, Quad 2-to-1-Line Data Selector/ Multiplexer w/Non-
Inverted Data Outputs
NTE74158 IC-TTL, Quad 2-to-1-Line Data Selector/ Multiplexer w/Inverted
Data Outputs
NTE7416 IC-TTL, Hex Inverter Buffer/Driver w/Open Collector HV Outputs
NTE74160 IC-TTL, Synchronous 4-Bit Decade Counter w/Direct Clear
NTE74161 IC-TTL, Synchronous 4-Bit Binary Counter w/Direct Clear
NTE74162 IC-TTL, Synchronous 4-Bit Binary Counter w/Synchronous Clear
NTE74163 IC-TTL, Synchronous 4-Bit Binary Counter w/Synchronous Clear
NTE74164 IC-TTL, 8-Bit Parallel-Out Serial Shift Register w/Async Clear
NTE74165 IC-TTL, 8-Bit Parallel-In/Serial Out Shift Register
NTE74166 IC-TTL, 8-Bit Parallel-In or Serieal-In/Serial Out Shift Register
NTE7417 IC-TTL, Hex Buffer/Driver w/Open Collector HV Outputs
NTE74170 IC-TTL, 4-by-4 Register File w/Open Collector Outputs
NTE74173 IC-TTL, 4-Bit D-Type Flip-Flop w/3-State Outputs
NTE74174 IC-TTL, Hex D-Type Flip-Flop w/Serial Rail Outputs and
Common Direct Clear
NTE74175 IC-TTl, Quad D-Type Flip-FLop w/Common Direct Clear and
Complementary Outputs
NTE74176 IC-TTL, Presettable Decade Counter/Latch
NTE74177 IC-TTL, Presettable Binary Counter/Latch
NTE74179 IC-TTL, 4-Bit Universal Shift Register w/Direct Clear
NTE74180 IC-TTL, 9-Bit Odd/Even Parity Generator/Checker
NTE74182 IC-TTL, Look-Ahead Carry Generator
NTE74191 IC-TTL, Synchronous Up/Down Binary Counter
NTE74192 IC-TTL, Synchronous Up/Down BCD Counter (Dual Clock
w/Clear)
NTE74193 IC-TTL, Synchronous Up/Down Binary Counter (Dual Clock
w/Clear)
NTE74195 IC-TTL, 4-Bit Parallel Access Shift Register
NTE74196 IC-TTL, Presettable Decade Counter/Latch
NTE74197 IC-TTL, Presettable Modulo-16 Binary Counter/Latch
NTE74199 IC-TTL, 8-Bit Bidirectional Universal Shift Register
NTE7420 IC-TTL, Dual 4-Input NAND Gate
NTE7421 IC-TTL, Dual 4-Input AND Gate
NTE7422 IC-TTL, Dual 4-Input NAND Gate w/Open COllector Outputs
Part Number Description
NTE74251 IC-TTL, Data Selector/Mulitplexer w/True and Inverted 3-State
Outputs
NTE7426 IC-TTL, Quad 2-Input High Voltage Interface NAND Gate
NTE74265 IC-TTL, Quad Complementary Output Elements
NTE7427 IC-TTL, Triple 3-Input Pos NOR Gate
NTE74278 IC-TTL, 4-Bit Cascadable Priority Register w/Latched Data
Inputs and Priority Output Gating
NTE74279 IC-TTL, Quad Set-Reset Latch w/Diode-Clamped Inputs and
Totem Pole Outputs
NTE7428 IC-TTL, Quad 2-Input Pos NOR Buffer/Clock Driver w/Totem
Pole Outputs
NTE7430 IC-TTL, 8-Input Pos NAND Gate
NTE7432 IC-TTL, Quad 2-Input OR Gate
NTE7433 IC-TTL, Quad 2-Input NOR Buffer w/Open Collector Outputs
NTE74298 IC-TTL, Quad 2-Input Multiplexer w/Storage
NTE74365 IC-TTL, 3-State Hex Bus/Buffer Driver w/Non-Inverted Outputs
NTE74366 IC-TTL, 3-State Hex Bus/Buffer Driver w/Inverted Outputs
NTE74367 IC-TTL, Hex Bus/Buffer Driver w/Non-Inverted 3-State Outputs,
Organized to Handle 4-Bit Data
NTE74368 IC-TTL, Hex Bus/Buffer Driver w/Inverted 3-State Outputs,
Organized to Handle 4-Bit Data
NTE7437 IC-TTL, Quad 2-Input NAND Buffer
NTE74376 IC-TTL, Quardruple J-K Flip-Flop
NTE7438 IC-TTL, Quad 2-Input NAND Buffer w/Open Collector Outputs
NTE7439 IC-TTL, Quad 2-Input NAND Buffer w/Open Collector Outputs
NTE74390 IC-TTL, Dual 4-Bit Decade Ripple Counter
NTE74393 IC-TTL, Dual 4-Bit Binary Ripple Counter
NTE7440 IC-TTL, Dual 4-Input NAND Buffer
NTE7441 IC-TTL, 1-of-10 Decoder Driver for Cold Cathode Indicator
Tubes
NTE7442 IC-TTL, 4-Line-to-10-Line BCD-to-Decimal Decoder
NTE74426 IC-TTL, Quad Gate w/3-State Outputs and Active High Enabling
NTE7443 IC-TTL, 4-Line-to-10-Line Excess-3-Decimal Decoder
NTE7444 IC-TTL, 4-Line-to-10-Line Excess-3-Gray-to Decimal Decoder
NTE7445 IC-TTL, BCD-to-Decimal Decoder/Driver
NTE7446 IC-TTL, BCD-to-Seven-Segment Decoder/Driver w/Active Low,
Open Collector Outputs
NTE7423 IC-TTL, Expandable Dual 4-Input NOR Gate w/Strobe
NTE74221 IC-TTL, Dual Monostable Multivibrator
NTE74249 IC-TTL, BCD-to-Seven-Segment Decoder/driver w/Open
Collector Outputs
NTE7425 IC-TTL, Dual 4-Input Pos NOR Gate w/Strobe
NTE7447 IC-TTL, BCD-to-Seven-Segment Decoder/Driver w/Active Low,
Open Collector Outputs
NTE7448 IC-TTL, BCD-to-Seven-Segment Decoder/Driver w/Internal
Pull-Up Outputs
NTE74490 IC-TTL, Dual BCD Decade Ripple Counter
NTE7450 IC-TTL, Dual 2-Wide, 2-Input, AND/OR Invert Gate (One Gate
Expandable)
NTE7451 IC-TTL, Dual 2-Wide, 2-Input, AND/OR Gate
Page 26-5
Semiconductors
Integrated Circuits
(cont.)
Integrated Circuits
(cont.)
Part Number Description
NTE7453 IC-TTL, Expandable AND/OR Invert Gate
NTE7454 IC-TTL, 4-Wide AND/OR Invert Gate
NTE7460 IC-TTL, Dual 4-Input Expander
NTE7470 IC-TTL, AND Gated J-K Pos Edge Triggered Flip-Flop w/Present
and Clear
NTE7472 IC-TTL, AND Gated J-K Master/Slave Flip-Flop w/Present and
Clear
NTE7473 IC-TTL, Dual J-K Flip-Flop w/Clear
NTE7474 IC-TTL, Dual D-Type Pos Edge Triggered Flip-Flop w/Present
and Clear
NTE7475 IC-TTL, 4-Bit Bistable Latch
NTE7476 IC-TTL, Dual J-K Flip-Flop w/Present and Clear
NTE7480 IC-TTL, Gated Full Adder w/Complementary Inputs and
Complementary Sum Outputs
NTE7482 IC-TTL, 2-Bit Binary Full Adder
NTE7483 IC-TTL, 4-Bit Binary Full Adder w/Fast Carry
NTE7485 IC-TTL, 4-Bit Magnitude Comparator
NTE7486 IC-TTL, Quad 2-Input Exclusive OR Gate
NTE7489 IC-TTL, 64-Bit Read/Write Memory
NTE7490 IC-TTL, Decade Counter (Divide by 2 and 5)
NTE7491 IC-TTL, 8-Bit Shift Register w/Gated Serial INputs and Serial
Outputs
NTE7492 IC-TTL, Divide-by-Twelve Counter
NTE7493A IC-TTL, 4-Bit Binary Counter (Divide by 2 and 8)
NTE7495 IC-TTL, 4-Bit Parallel In/Parallel Out Shift Register
NTE7496 IC-TTL, 5-Bit Shift Register w/Async Preset
NTE7497 IC-TTL, Sychronous 6-Bit Binary Rate Multiplier
NTE74C160 IC-CMOS, Synchronous 4-Bit Decade Counter with Direct
Clear
NTE74C161 IC-CMOS, Synchronous 4-Bit Binary Counter with Direct Clear
NTE74C164 IC-CMOS, 8-Bit Parallel-Out Serial Shift Register with Async
Clear
NTE74C174 IC-CMOS, Hex D-Type Flip-Flop with Serial Rail Outputs and
Common Direct Clear
NTE74C173 IC-CMOS, 4-Bit D-Type Flip-Flop w/3-State Outputs
NTE74C175 IC-CMOS, Quad D-Type Flip-Flop with Common Direct Clear
and Complementary Outputs
NTE74C192 IC-CMOS, Synchronous Up/Down BCD Counter (Dual Clock
with Clear)
Part Number Description
NTE74C373 IC-CMOS, Octal D-Type Latch with 3-State Outputs and
Common Output Control
NTE74C901 IC-CMOS, Hex Inverting TTL Buffer
NTE74C902 IC-CMOS, Hex Non-Inverting TTL Buffer
NTE74C903 IC-CMOS, Hex Inverting DMOS Buffer
NTE74C904 IC-CMOS, Hex Non-Inverting DMOS Buffer
NTE74C922 IC-CMOS, 16-Key Keyboard Encoder with 3-State Output
NTE74C923 IC-CMOS, 20 Key Keyboard Encoder with 3-State Output
NTE74C925 IC-CMOS, 4-Digit Counter with Multiplexed Seven-Segment
Output Driver
NTE74H00 IC-TTL, High Speed, Quad 2-Input Pos NAND Gate
NTE74H01 IC-TTL, High Speed, quad 2-Input Pos NAND Gate with Open
Collector Outputs
NTE74H04 IC-TTL, High Speed, Hex Inverter
NTE74H05 IC-TTL, High Speed, Hex Inverter with Open Collector Outputs
NTE74H101 IC-TTL, High Speed, AND OR Gate J-K
Neg Edge Triggered Flip-Flop w/Present
NTE74H102 IC-TTL, High Speed, AND Gated J-K Neg Edge Triggered Flip-
Flop w/Clear & Reset
NTE74H103 IC-TTL, High Speed, Dual J-K Neg Edge Triggered Flip-Flop
w/Clears
NTE74H106 IC-TTL, High Speed, Dual J-K Neg Edge Triggered Flip-Flop
w/Present and Clear
NTE74C374 IC-CMOS, Octal D-Type Flip-Flop w/3-State Outputs, Common
Output Control and Common Clock
NTE74H108 IC-TTL, High Speed, Dual J-K Neg Triggered Flip-Flop
w/Presents, Common Clear & Common Clock
NTE74H183 IC-TTL, High Speed Dual Carry/ Save Full Adder
NTE74H21 IC-TTL, High Speed, Dual 4-Input AND Gate
NTE74H22 IC-TTL, High Speed, Dual 4-Input NAND Gate with Open
Collector Outputs
NTE74H30 IC-TTL, High Speed, 8-Input Pos NAND Gate
NTE74H40 IC-TTL, High Speed, Dual 4-Input NAND Buffer
NTE74H50 IC-TTL, High Speed, Dual 2-Wide, 2-Input, AND/OR Invert Gate
(One Gate Expandable)
NTE74H51 IC-TTL, High Speed, Dual 2-Wide, 2-Input AND/OR Gate
NTE74H52 IC-TTL, High Speed, Expandable 4-Wide AND/OR Gate
NTE74H53 IC-TTL, High Speed, Expandable AND/OR Inver Gate
NTE74H54 IC-TTL, High Speed, 4-Wide AND/OR Invert Gate
NTE74H55 IC-TTL, High Speed, Expandable, 2-Wide, 4-Input AND/OR
Invert Gate
NTE74C193 IC-CMOS, Synchronous Up/Down Binary Counter (Dual Clock
with Clear)
NTE74C221 IC-CMOS, Dual Monostable Multivibrator
NTE74C240 IC-CMOS, Octal Buffer/Line Driver/Receiver with 3-State
Inverted Outputs
NTE74C244 IC-CMOS, Octal Buffer/Line Driver/Receiver with 3-State Non-
Inverted Outputs
NTE74H61 IC-TTL, High Speed Triple 3-Input Expander
NTE74H62 IC-TTL, High Speed 4-Wide AND/OR Expander
NTE74H71 IC-TTL, High Speed AND Gated J-K Master/Slave Flip-Flop with
Preset and Clear
NTE74H60 IC-TTL, High Speed Dual 4-Input Expander
NTE74H72 IC-TTL, High Speed, AND Gated
Page 26-6
Semiconductors
Integrated Circuits
(cont.)
Integrated Circuits
(cont.)
Part Number Description
NTE74H73 IC-TTL, High Speed, Dual J-K Flip-Flop w/Clear
NTE74H74 IC-TTL, High Speed Dual D-Type Pos Edge Triggered Flip-Flop
w/Present & Clear
NTE74H76 IC-TTL, High Speed, Dual J-K Flip-Flop w/Present & Clear
NTE74H78 IC-TTL, High Speed, Dual J-K Flip-Flop
w/Present Common Clear & Common Clock
NTE74H87 IC-TTL, High Speed, 4-Bit True/ Complement Zero/One
Element
NTE74HC00 IC-TTL, High Speed CMOS, QUAD 2-Input NAND Gate
NTE74HC02 IC-TTL, High Speed CMOS, Quad 2-Input NOR Gate
NTE74HC04 IC-TTL, High Speed CMOS, Hex Inverter
NTE74HC08 IC-TTL, High Speed CMOS, Quad 2-Input AND Gate
NTE74HC10 IC-TTL, High Speed CMOS, Triple 3-Input NAND Gate
NTE74HC109 IC-TTL, High Speed CMOS, Dual J-K Flip-Flop w/Present &
Clear
NTE74HC11 IC-TTL, High Speed CMOS, Triple 3-Input AND Gate
NTE74HC123 IC-TTL, High Speed CMOS, Dual Retriggerable
Monostable Multivibrator
NTE74HC125 IC-TTL, High Speed CMOS, TRI-STATE Quad Buffer
NTE74HC126 IC-TTL, High Speed CMOS, TRI-STATE Quad Buffer
NTE74HC132 IC-TTL, High Speed CMOS, Quad 2-Input NAND Schmitt Trigger
NTE74HC138 IC-TTL, High Speed CMOS, 3-to-8-Line Decoder/ Demultiplexer
NTE74HC139 IC-TTL, High Speed CMOS, Dual 2-to-4-line
Decoder/ Demultiplexer
NTE74HC14 IC-TTL, High Speed CMOS, Hex Schmitt Trigger Inverter
NTE74HC151 IC-TTL, High Speed CMOS, 8-Channel Multiplexer
NTE74HC153 IC-TTL, High Speed CMOS, Dual 4-Input, Multiplexer
NTE74HC154 IC-TTL, High Speed CMOS, 4-to-16-Line Decoder/
Demultiplexer
NTE74HC161 IC-TTL, High Speed CMOS, Synchronous 4-Bit Binary Counter
w/Direct Clear
NTE74HC163 IC-TTL, High Speed CMOS, Synchronous 4-Bit Binary Counter
w/Direct Clear
NTE74HC164 IC-TTL, High Speed CMOS, 8-Bit Serial-In/ Parallel-Out Shift
Register
NTE74HC165 IC-TTL, High Speed CMOS, Parallel-In/ Serial-Out 8-Bit Shift
Register
NTE74HC173 IC-TTL, High Speed CMOS, Tri-State Quad D-Type Flip-Flop
Part Number Description
NTE74HC273 IC-TTL, High Speed CMOS, Octal D-Type Flip-Flop w/ Clear
NTE74HC299 IC-TTL, High Speed CMOS, 8-Bit TRI-STATE Universal Shift
Register
NTE74HC32 IC-TTL, High Speed CMOS, Quad 2-Input OR Gate.
NTE74HC373 IC-TTL, High Speed CMOS, TRI-STATE Octal D-Type Latch
NTE74HC374 IC-TTL, High Sped CMOS, TRI-STATE Octal D-Type Flip-Flop
NTE74HC377 IC-TTL, High Speed CMOS, Octal D-Type Flip-Flop
NTE74HC390 IC-TTL, High Speed CMOS, Dual 4-Bit Decade Counter
NTE74HC393 IC-TTL, High Speed CMOS, Dual 4-Bit Binary Counter
NTE74HC40105 IC-TTL, High Speed CMOS, 4-Bit x 16 Word FIFO Register
NTE74HC4020 IC-TTL, High Speed CMOS, 14-Stage Binary Counter
NTE74HC4040 IC-TTL, High Speed CMOS, 12-Stage Binary Counter
NTE74HC4053 IC-TTL, High Speed CMOS, Triple 2-Channel Analog
Multiplexer/Demultiplexer
NTE74HC4060 IC-TTL, High Speed CMOS, 14-Stage Binary Counter/
Oscillator
NTE74HC4067 IC-TTL, High Speed CMOS, 16-Channel/
Multiplexer/Demultiplexer
NTE74HC574 IC-TTL, High Speed CMOS, TRI-STATE Octal D-Type Edge
Triggered Edge
NTE74HC86 IC-TTL, High Speed CMOS, Quad 2-Input Exclusive OR Gate
NTE74HCT00 IC-TTL, High Speed CMOS, Quad 2-Input NAND Gate
NTE74HCT04 IC-TTL, High Speed CMOS, Hex Inverter
NTE74HC573 IC-TTL, High Speed CMOS, TRI-STATE Octal D-Type Latch
NTE74HCT08 IC-TTL, High Speed CMOS, Quad 2-Input AND Gate
NTE74HCT138 IC-TTL, High Speed CMOS, 3-to-8-Line Decoder/
Demultiplexer
NTE74HCT14 IC-TTL, High Speed CMOS, Hex Schmitt Trigger Inverter
NTE74HCT161 IC-TTL, High Speed CMOS, 4-Bit Binary Counter
w/Asynchronous Clear
NTE74HCT163 IC-TTL, High Speed CMOS, 4-Bit Binary Counter
w/Asynchronous Clear
NTE74HCT174 IC-TTL, High Speed CMOS, Hex D-Type Flip-Flop w/ Clock
and Clear
NTE74HC175 IC-TTL, High Speed CMOS, Quad D-Type Flip-Flop w/Clear
NTE74HC240 IC-TTL, High Speed CMOS, Inverting Octal TRI-STATE Buffer
NTE74HC244 IC-TTL, High Speed CMOS, Octal TRI-STATE Buffer
NTE74HC257 IC-TTL, High Speed CMOS, Quad 2-Channel TRI-STATE
Multiplexer
NTE74HC174 IC-TTL, High Speed CMOS, Hex D-Type Flip-Flops w/Clock &
Clear
NTE74HC259 IC-TTL, High Speed CMOS, 8-Bit Addressable
Latch/3-to-8 Line Decoder
NTE74HCT240 IC-TTL, High Speed CMOS, Inverting Octal TRI-STATE Buffer
NTE74HCT244 IC-TTL, High Speed CMOS, Octal TRI-STATE Buffer
NTE74HCT273 IC-TTL, High Speed CMOS, TRI-STATE Octal D-Type Flip-
Flop w/ Clear
NTE74HCT32 IC-TTL, High Speed CMOS, Quad 2-Input OR Gate.
NTE74HCT373 IC-TTL, High Speed CMOS, TRI-STATE Octal D-Type Latch
NTE74HCT573 IC-TTL, High Speed CMOS, TRI-STATE Octal D-Type Latch
NTE74HCT574 IC-TTL, High Speed CMOS, TRI-STATE Octal D-Type Flip-
Flop
NTE74L93 IC-TTL, 4-Bit Counter (Divide by 2 & 8)
Page 26-7
Semiconductors
Integrated Circuits
(cont.)
Integrated Circuits
(cont.)
NTE74LS00 Quad 2-Input Pos NAND Gate
NTE74LS01 IC-TTL, Low Power Schottky, Quad 2-Input Pos NAND Gate
w/Open Collector Outputs
NTE74LS02 IC-TTL, Low Power Schottky, Quad 2-Input Pos NOR Gate
NTE74LS03 IC-TTL, Low Power Schottky, Quad 2-Input Pos NAND Gate
w/Power Collector Outputs
NTE74LS04 IC-TTL, Low Power Schottky, Hex Inverter
NTE74LS05 IC-TTL, Low Power Schottky, Hex Inverter
w/Open Collector Outputs
NTE74LS06 IC-TTL, Low Power Schottky, Hex Inverter Buffer/Driver
w/Open Collector HV Outputs
NTE74LS08 IC-TTL, Low Power Schottky, Triple 3-Input Pos AND Gate
NTE74LS09 IC-TTL, Low Power Schottky, Triple 3-Input Pos NAND Gate
w/Open Collector Outputs
NTE74LS124 IC-TTL, Low Power Schottky, Dual Voltage Controlled
Oscillator
NTE74LS125A IC-TTL, Low Power Schottky, Quad Bus w/3-State Outputs
NTE74LS126A IC-TTL, Low Power Schottky, Quad Bus w/3-State Outputs
Part Number Description
NTE74LS10 IC-TTL, Low Power Schottky, Triple 3-Input Pos NAND Gate
NTE74LS107 IC-TTL, Low Power Schottky, Dual J-K Neg Edge Triggered
Flip-Flop w/Clear
NTE74LS109A IC-TTL, Low Power Schottky, Dual J-K Pos Edge Triggered
Flip-Flop w/Clear & Present
NTE74LS11 IC-TTL, Low Power Schottky, Triple 3-Input Pos AND Gate
NTE74LS112A IC-TTL, Low Power Schottky, Dual J-K Neg Edge Triggered
Flip-Flop w/Present & Clear
NTE74LS113 IC-TTL, Low Power Schottky, Dual J-K Neg Edge Triggered
Flip-Flop w/Present
NTE74LS114 IC-TTL, Low Power Schottky, Dual J-K Neg Edge Triggered
Flip-Flop w/Present Common Clock & Clear
NTE74LS12 IC-TTL, Low Power Schottky, Triple 3-Input Pos NAND Gate
w/Open Collector Outputs
NTE74LS122 IC-TTL, Low Power Schottky, Retriggerable
Monostable Multivibrator w/Clear
NTE74LS123 IC-TTL, Low Power Schottky, Dual Retriggerable Monostable
Multivibrator w/Clear
Part Number Description
NTE74LS140 IC-TTL, Ultra-High Speed, Dual 4-Input Pos NAND "W"50 Line
Driver
NTE74LS145 IC-TTL, Low Power Schottky, BCD-to-Decimal Decoder/ Drive
For Lamps, Relays MOS
NTE74LS147 IC-TTL, Low Power Schottky, 10-Line Decimal-to-4-Line BCD
Priority Encoder
NTE74LS148 IC-TTL, Low Power Schottky, 8-Line-to-3-Line Octal Priority
Encoder
NTE74LS15 IC-TTL, Low Power Schottky, Triple 3-Input AND Gate w/Open
Collector Outputs
NTE74LS151 IC-TTL, Low Power Schottky, 8-Channel Multiplexer
NTE74LS153 IC-TTL, Low Power Schottky, Dual4-Line-to-1 Line Data
Selector/ Multiplexer
NTE74LS155 IC-TTL, Low Power Schottky, Dual 2-Line-to-4-Line Decoder/
Demultiplxer w/Totem Pole Outputs
NTE74LS156 IC-TTL, Low Power Schottky, Dual 2-Line-to-4-Line
Decoder/Demultiplexer w/Open Collector Outputs
NTE74LS157 IC-TTL, Low Power Schottky, Quad 2-to1-Line
Data Selector/Multiplexer w/Non-Inverted Date Outputs
NTE74LS158 IC-TTL, Low Pwr Schottky, Quad 2-to-1- Line
Data Selector/Multiplexer w/Inverted Data Outputs
NTE74LS160A IC-TTL, Low Power Schottky, Synchronous 4-Bit Decade
Counter w/Direct Clear
NTE74LS161A IC-TTL, Low Power Schottky, Synchronous 4-Bit Binary
Counter w/Direct Clear
NTE74LS162A IC-TTL, Low Power Schottky, Synchronous 4-Bit Decade
Counter w/ Synchronous Clear
NTE74LS163 IC-TTL, Ultra-High Speed, Synchronous 4-Bit Binary Counter
w/Synchronous Clear
NTE74LS163A IC-TTL, Low Power Schottky, Synchronous 4-Bit Binary
Counter w/Synchronous Clear
NTE74LS164 IC-TTL, Low Power Schottky, 8-Bit Parallel-Out Serial Shift
Register w/Async Clear
NTE74LS165 IC-TTL, Low Power Schottky, 8-Bit Parallel-In/Serial-Out Shift
Register
NTE74LS166 IC-TTL, Low Power Schottky, 8-Bit, Parallel-In/Serial-Out Shift
Register
NTE74LS168A IC-TTL, Low Power Schottky, Synchronous Presettable BCD
NTE74LS13 IC-TTL, Low Power Schottky, Dual 4-Input NAND Schmitt Decade Up-Down Counter
Trigger
NTE74LS132 IC-TTL, Low Power Schottky, Quad 2-Input Pos NAND
Schmitt Trigger
NTE74LS133 IC-TTL, Low Power Schottky, 13-Input Pos NAND Gate
NTE74LS136 IC-TTL, Low Power Schottky, Quad Exclusive OR Gate
w/Open Collector Outputs
NTE74LS138 IC-TTL, Low Power Schottky, 3-of-8 Decoder/Demultiplexer
NTE74LS139 IC-TLL, Low Power Schottky, Dual 4-to-4 Line
Decoder/ Demultiplexer
NTE74LS14 IC-TTL, Low Power Schottky, Hex Schmitt Trigger Inverter
NTE74LS169A IC-TTL, Low Power Schottky, Synchronous Presettable 4-Bit
Binary Up/Down Counter
NTE74LS170 IC-TTL , Low Power Schottky, 4-by-4 Register File w/Open
Collector Output
NTE74LS173A IC-TTL, Low Power Schottky, 4-Bit D-Type Flip-Flop w/3-State
Outputs
NTE74LS174 IC-TTL, Low Power Schottky, Hex D-Type Flip Flop w/3-State
Outputs
NTE74LS175 IC-TTL, Low Power Schottky, Hex D-Type Flip Flop w/Serial
Rail Outputs & Common Direct Clear
Page 26-8
Semiconductors
Part Number Description
Integrated Circuits
(cont.)
Integrated Circuits
(cont.)
IC-TTL, Schottky, 256-Bit (32 x 8) PROM w/Open Collector
Outputs
NTE74LS181 IC-TTL, Low Power Schottky, Quad D-Type Flip-Flop
w/Common Direct Clear & Complementary Outputs
NTE74LS182 IC-TTL, Ultra-High Speed, Lock-Ahead Carry Generator
NTE74LS188
NTE74LS189 IC-TTL, Schottky, 64-Bit RAM w/3-State Outputs
NTE74LS190 IC-TTL, Low Power Schottky, Arithmetic Logic Unit/ Function
Generator
NTE74LS191 IC-TTL, Low Power Schottky, Synchronous Up/Down BCD
Counter
NTE74LS192 IC-TTL, Low Power Schottky, Synchronous Up/ Down BCD
Counter (Dual Clock w/Clear)
NTE74LS193 IC-TTL, Low Power Schottky, Synchronous Up/ Down Binary
Counter (Dual Clock w/Clear)
NTE74LS194 IC-TTL, Low Power Schottky, 4-Bit BiDirectional Universal Shift
Register
NTE74LS194A IC-TTL, Low Power Schottky, 4-Bit BiDirectional Universal Shift
Register
NTE74LS195A IC-TTL, Low Power Schottky, 4-Bit Parallel Access Shift
Register
NTE74LS196 IC-TTL, Low Power Schottky, Presentable Decade
Counter/Latch
NTE74LS197 IC-TTL, Low Power Schottky, Presettable Modulo-16 Binary
Counter/Latch
NTE74LS20 IC-TTL, Low Power Schottky, Dual 4-Input NAND Gate
NTE74LS21 IC-TTL, Low Power Schottky, Dual 4-Input AND Gate
NTE74LS22 IC-TTL, Low Power Schottky, Dual 4-Input NAND Gate w/Open
Collector Outputs
NTE74LS221 IC-TTL, Low Power Schottky, Dual Monostable Multivibrator
NTE74LS240 IC-TTL, Low Power Schottky, Octal Buffer/Line Driver/Receiver
w/3-State Inverted Outputs
NTE74LS241 IC-TTL, Low Power Schottky, Octal Buffer/Line Driver/Receiver
w/3-State Non-Inverted Outputs
NTE74LS242 IC-TTL, Low Power Schottky, Quad Bus Transceiver w/Inverted
3-State Outputs
NTE74LS243 IC-TTL, Low Power Schottky, Quad Bus Transceiver w/Non-
Inverted 3-State Outputs
NTE74LS244 IC-TTL, Low Power Schottky, Octal Buffer/Line Driver/Receiver
w/3-State Non-Inverted Outputs
NTE74LS245 IC-TTL, Low Power Schottky, Octal Bus Transceiver w/Non-
Inverted 3-State Outputs
Part Number Description
NTE74LS253 IC-TTL, Low Power Schottky, Quad Data Selector/Multiplexer
w/3-State Outputs
NTE74LS257 IC-TTL, Low Power Schottky, Quad Data Selector/Multiplexer
w/Non-Inverted 3-State Outputs
NTE74LS258 IC-TTL, Low Power Schottky, Quad Data Selector/Multiplexer
w/Non-Inverted 3-State Outputs
NTE74LS259 IC-TTL, Low Power Schottky, 8-Bit Addressable Latch
NTE74LS26 IC-TTL, Low Power Schottky, Quad 2-Input High Voltage
Interface NAND Gate
NTE74LS260 IC-TTL, Low Power Schottky, Dual 5-Input NOR Gate
NTE74LS266 IC-TTL, Low Power Schottky, Quad 2-Input Exclusive NOR
Gate w/Open Collector Outputs
NTE74LS27 IC-TTL, Low Power Schottky, Triple 3-Input Positive NOR Gate
NTE74LS273 IC-TTL, Low Power Schottky, Octal D-Type Flip-Flop w/Common
Clock & Single Rail Outputs
NTE74LS279 IC-TTL, Low Power Schottky, Quad Set-Reset Latch w/Diode-
Clamped Inputs & Totem Pole Outputs
NTE74LS28 IC-TTL, Low Power Schottky, Quad 2-Input NOR Buffer/Clock
Driver w/ Totem Pole Outputs
NTE74LS280 IC-TTL, Low Power Schottky, 9-Bit Odd/ Even Parity
Generator/Checker (N-Bit Cascadable)
NTE74LS283 IC-TTL, Low Power Schottky, 4-Bit Binary Full Adder
NTE74LS287 IC-TTL, Schottky, Bipolar 1024-Bit PROM, 50ns Max
Addressable Access
NTE74LS288 IC-TTL, Schottky, 256-Bit (32 x 8) PROM w/TRI-STATE Outputs
NTE74LS290 IC-TTL,Low Power Schottky,Decade Counter(Divide by 2 & 5)
NTE74LS293 IC-TTL, Low Power Schottky, 4-Bit Binary Counter (Divide by 2
& 5)
NTE74LS295 IC-TTL, Low Power Schottky, 4-Bit Bidirectional Universal Shift
Register
NTE74LS295A IC-TTL, Low Power Schottky, 4-Bit Bidirectional Universal Shift
Register
NTE74LS298 IC-TTL, Low Power Schottky, Quad 2-Input Multiplexer
w/Storage
NTE74LS299 IC-TTL, Low Power Schottky, 8-Bit Shift Register w/3-State
Outputs
NTE74LS30 IC-TTL, Low Power, Schottky, 8-Input Pos NAND Gate.
NTE74LS32 IC-TTL, Low Power Schottky, Quad 2-Input OR Gate.
NTE74LS324 IC-TTL, Low Power Schottky, Voltage Controlled Oscillator
NTE74LS247 IC-TTL, Low Power Schottky, BCD-to-Seven-Segment
Decoder/Driver w/3-State Non-Inverted Outputs
NTE74LS248 lC-TTL, Low Power Schottky, BCD-to-Seven-Segment
Decoder/Driver w/International Pull-Up Outputs
NTE74LS249 lC-TTL, Low Power Schottky, BCD-to-Seven-Segment
Decoder/Driver w/Open Collector Outputs
NTE74LS251 IC-TTL, Low Power Schottky, Data Selector/Multiplexer w/True
& Inverted 3-State Outputs
NTE74LS327 IC-TTL, Low Power Schottky, Dual Voltage Controlled
Oscillator
NTE74LS33 IC-TTL, Low Power Schottky, Quad 2-Input NOR Buffer/Clock
w/Open Collector Outputs
NTE74LS348 IC-TTL, Low Power Schottky, 8-Line-to-3-Line Priority Encoder
NTE74LS352 IC-TTL, Low Power Schottky, Dual 4-Line-to-1-Line Data
Selector/Multiplexer (Inverting Version of NTE74LS153)
Page 26-9
Semiconductors
Integrated Circuits
(cont.)
Integrated Circuits
(cont.)
Part Number Description
NTE74LS365A IC-TTL, Low Power Schottky, 3-State Hex Bus/Buffer w/Non-
Inverted Outputs
NTE74LS366A IC-TTL, Low Power Schottky, 3-State Hex Bus/Buffer Drive
w/Inverted Outputs
NTE74LS367 IC-TTL, Low Power Schottky, Hex Bus/Buffer Driver w/Non-
Inverted 3-State Outputs, Organize to Handle 4-Bit Data
NTE74LS368 IC-TTL, Low Power Schottky, Hex Bus/Buffer Driver w/Inverted
3-State Outputs, Organize to Handle 4-Bit Data
NTE74LS37 IC-TTL, Low Power Schottky, Quad 2-Input NAND Buffer
NTE74LS373 IC-TTL, Low Power Schottky, Octal D-Type Latch w/3-State
Outputs & Common Output Control
NTE74LS374 IC-TTL, Low Power Schottky, Octal D-Type Flip-Flop w/3-State
Outputs, Common Output Control & Common Clock
NTE74LS377 IC-TTL, Low Power Schottky, Octal D-Type Flip-Flop
w/Common Enable w/Clock & Single Rail Outputs
NTE74LS378 IC-TTL, Low Power Schottky, Hex D-Type Flip-Flop w/Clock
Enable
NTE74LS379 IC-TTL, Low Power Schottky, Quad D-Type Flip-Flop
NTE74LS38 IC-TTL, Low Power Schottky, Quad 2-Input NAND Buffer
w/Open Collector Outputs
NTE74LS386 IC-TTL, Low Power Schottky, Quad 2-Input Exclusive OR Gate
NTE74LS387 IC-TTL, Schottky, 1024-Bit (256 x 4) PROM w/Open Collector
Outputs, 50ns Max Address Access
NTE74LS390 IC-TTL, Low Power Schottky, Dual 4-Bit Decade Ripple
Counter
NTE74LS393 IC-TTL, Low Power Schottky, Dual 4-Bit Binary Ripple Counter
NTE74LS395A IC-TTL, Low Power Schottky, 4-Bit Cascadable Shift Register
w/3-State Outputs
NTE74LS396 IC-TTL, Low Power Schottky, Octal Storage Register w/Parallel
Access
NTE74LS398 IC-TTL, Low Power Schottky, Quad 2-Port Register
NTE74LS399 IC-TTL, Low Power Schottky, Quad 2-Input Multiplexer
w/Storage
NTE74LS40 IC-TTL, Low Power Schottky, Dual 4-Input NAND Buffer
NTE74LS42 IC-TTL, Low Power Schottky, 4-Line-to-10-Line BCD-to-
Decimal Decoder
Part Number Description
NTE74LS49 IC-TTL, Low Power Schottky, BCD-to-Seven -Segment
Decoder/ Driver w/Open Collector Outputs
NTE74LS490 IC-TTL, Low Power Schottky, Dual BCD Decade Ripple
Counter
NTE74LS51 IC-TTL, Low Pwr Schottky, Dual 2-Wide2-Input AND/OR Gate.
NTE74LS54 IC-TTL, Low Power Schottky, 4-Wide AND/OR Invert Gate.
NTE74LS540 IC-TTL, Low Power Schottky, Octal Buffer/Line Driver
w/Inverted 3-State Outputs
NTE74LS541 IC-TTL, Low Power Schottky, Octal Buffer/Line Driver w/Non-
Inverted 3-State Outputs
NTE74LS55 IC-TTL, Low Power Schottky, Expandable 2-Wide 4-Input
AND/OR Invert Gate
NTE74LS570 IC-TTL, Schottky, 2048-Bit PROM w/Open Collector Outputs
NTE74LS571 IC-TTL, Schottky, 2048-Bit PROM w/3-State Outputs
NTE74LS572 IC-TTL, Schottky, 4096-Bit PROM w/Open Collector Outputs
NTE74LS624 IC-TTL, Low Power Schottky, Voltage Controlled Oscillator
NTE74LS625 IC-TTL, Low Power Schottky, Dual Voltage Controlled
Oscillator
NTE74LS627 IC-TTL, Low Power Schottky, Dual Voltage Controlled
Oscillator
NTE74LS629 IC-TTL, Low Power Schottky, Dual Voltage Controlled
Oscillator
NTE74LS63 IC-TTL, Low Power Schottky, Hex Current-Sensing Interface
Gate
NTE74LS640 IC-TTL, Low Power Schottky, Inverting Octal Bus Transceiver
w/3-State Outputs
NTE74LS641 IC-TTL, Low Power Schottky, Non-Inverting, Octal Bus
Transceiver w/Open Collector Outputs
NTE74LS642 IC-TTL, Low Power Schottky, Inverting Octal Bus Transceiver
w/Open Collector Outputs
NTE74LS643 IC-TTL, Low Power Schottky, True & Inverting Octal Bus
Transceiver w/3-State Outputs
NTE74LS645 IC-TTL, Low Power Schottky, Non-Inverting, Octal Bus
Transceiver w/3-State Outputs
NTE74LS670 IC-TTL, Low Power Schottky, 4-By-4-Register File
w/Simultaneous Read/Write, 3-State Outputs & Expandable to
1024 Words
NTE74LS353 IC-TTL, Low Power Schottky, Dual 4-Line-to-1-Line Data
Selector/Multiplexer
NTE74LS363 IC-TTL, Low Power Schottky, Octal Transparent Latch w/3-
State Outputs
NTE74LS445 IC-TTL, Low Power Schottky, BCD-to-Decimal Decoder/Driver
w/Open Collector Outputs
NTE74LS47 IC-TTL, Low Power Schottky, BCD-to-Seven Segment
Decoder/Driver w/Active Low, Open Collector Outputs
NTE74LS472 IC-TTL, Schottky, 4096-Bit (512 x 8) PROM w/3-State Outputs
NTE74LS474 IC-TTL, Schottky, 4096-Bit (512 x 8) PROM w/3-State Outputs
NTE74LS48 IC-TTL, Low Power Schottky, BCD-to-Seven-Segment
Decoder/Driver w/International Pull-Up Outputs
NTE74LS73 IC-TTL, Low Power Schottky, Dual J-K-Flip-Flop w/Clear
NTE74LS74A IC-TTL, Low Power Schottky, Dual D-Type Pos Edge
Triggered Flip-Flip w/Present & Clear
NTE74LS75 IC-TTL, Low Power Schottky, 4-Bit Bistable Latch
NTE74LS76A IC-TTL, Low Power Schottky, Dual J-K-Flip w/Present & Clear
NTE74LS77 IC-TTL, Low Power Schottky, 4-Bit D-Type Latch
NTE74LS78 IC-TTL, Low Power Schottky, Dual J-K Flip-Flop w/Present,
Common Clear & Common Clock
NTE74LS83A IC-TTL, Low Power Schottky, 4-Bit Binary Full Adder w/Fast
Carry
NTE74LS85 IC-TTL, Low Power Schottky, 4-Bit Magnitude Comparator
Page 26-10
Semiconductors
Part Number Description
NTE74LS86 IC-TTL, Low Power Schottky, Quad 2-Input Exclusive OR Gate
NTE74LS90 IC-TTL, Low Power Schottky, Decade Counter (Divide by 2&5)
NTE74LS91 IC-TTL, Low Power Schottky, 8-Bit Shift Register w/Gated
Serial Inputs & Serial Outputs
NTE74LS92 IC-TTL, Low Power Schottky, Divide - by - Twelve Counter
NTE74LS93 IC-TTL, Low Power Schottky, 4-Bit Binary Counter (Divide by 2
& 8)
Integrated Circuits
(cont.)
Integrated Circuits
(cont.)
NTE74LS95B IC-TTL, Low Power Schottky, 4-Bit Shift Register
NTE74S00 IC-TTL, Ultra-High Speed, Quad 2-Input Pos NAND Gate
NTE74S02 IC-TTL, Ultra-High Speed, Quad 2-Input Pos NOR Gate
NTE74S03 IC-TTL, Ultra-High Speed, Quad 2-Input Pos NAND Gate
w/Open Collector Ouputs
NTE74S04 IC-TTL, Ultra-High Speed, Hex Inverter
NTE74S05 IC-TTL, Ultra-High Speed, Hex Inverter
NTE74S08 IC-TTL, Ultra-High Speed, Quad 2-Input Pos AND Gate
NTE74S09 IC-TTL, Ultra-High Speed, Quad 2-Input Pos AND Gate
w/Collector Outputs
NTE74S10 IC-TTL, Ultra-High Speed, Triple 3-Input Pos NAND Gate
NTE74S11 IC-TTL, Ultra-High Speed, Triple 3-Input Pos AND Gate
NTE74S112 IC-TTL, Ultra-High Speed, Dual J-K Neg Edge Triggered Flip-
Flop w/Present & Clear
Part Number Description
NTE74S74 IC-TTL, Ultra-High Speed, Dual D-Type Pos Edge Triggered
Flip-Flop w/Present & Clear
NTE74S85 IC-TTL, Ultra-High Speed, 4-Bit Magnitude Comparator
NTE74S86 IC-TTL, Ultra-High Speed, Quad 2-Input Exclusive OR Gate
NTE75188 IC-TTL, DTL Quad Line Driver RS232C
NTE75189 IC-TTL, DTL Quad Line Driver RS232C
NTE74S51 IC-TTL, Ultra-High Speed, Dual 2-Wide 2-Input AND/OR Gate
NTE74S64 IC-TTL, Ultra-High Speed, 4-2-3-2 Input AND/OR Invert Gate
w/Totem Pole Ouputs
NTE74S65 IC-TTL, Ultra-High Speed, 4-2-3-2 Input AND/OR Invert Gate
w/Open Collector Outputs
NTE75450B IC-TTL, Dual Peripheral AND Driver
NTE75451B IC-TTL, Dual Peripheral AND Driver
NTE75454B IC-TTL, Dual Peripheral NOR Driver
NTE75491B IC-TTL, 4-Segment MOS TO LED Anode Driver
NTE75492B IC-TTL, 6-Digit MOS to LED Cathode Driver
NTE75493 IC-TTL, 4-Segment MOS to LED Anode Driver
NTE75494 IC-TTL, 6-Digit MOS to LED Cathode Driver
NTE74S40 IC-TTL, Ultra-High Speed, Dual 4-Input NAND Buffer
Transient Suppressors
Part
Number
Description
NTE4900 Overvoltage Transient Suppressor, Vr =5.0V
NTE4901 Overvoltage Transient Suppressor, Bi-Directional Vr =5.0V
NTE4902 Overvoltage Transient Suppressor, Vr =5.8V
NTE4903 Overvoltage Transient Suppressor, Bi-Directional Vr =5.50V
NTE4904 Overvoltage Transient Suppressor, Vr =6.40V
NTE4905 Overvoltage Transient Suppressor, Bi-Directional Vr =6.40V
NTE4906 Overvoltage Transient Suppressor, Vr =7.02V
NTE4907 Overvoltage Transient Suppressor, Bi-Directional Vr =7.02V
NTE4910 Overvoltage Transient Suppressor, Vr =8.55V
NTE4911 Overvoltage Transient Suppressor, Bi-Directional Vr =8.55V
NTE4914 Overvoltage Transient Suppressor, Vr =10.20V
NTE4915 Overvoltage Transient Suppressor, Bi-Directional Vr =10.20V
NTE4918 Overvoltage Transient Suppressor, Vr =11.1V
NTE4919 Overvoltage Transient Suppressor, Bi-Directional Vr =11.1V
NTE4920 Overvoltage Transient Suppressor, Vr =12.80V
NTE4921 Overvoltage Transient Suppressor, Bi-Directional Vr =12.80V
NTE74S113 IC-TTL, Ultra-High Speed, Dual J-K Neg Edge Triggered Flip-
Flop w/Present
NTE4922 Overvoltage Transient Suppressor, Vr =13.60V
NTE4923 Overvoltage Transient Suppressor, Bi-Directional Vr =13.60V
NTE4926 Overvoltage Transient Suppressor, Vr =15.3V
NTE4927 Overvoltage Transient Suppressor, Bi-Directional Vr =15.3V
NTE4929 Overvoltage Transient Suppressor, Bi-Directional Vr =17.1V
NTE4933 Overvoltage Transient Suppressor, Bi-Directional Vr =20.50V
NTE4934 Overvoltage Transient Suppressor, Vr =23.1V
NTE4935 Overvoltage Transient Suppressor, Bi-Directional Vr =23.1V
NTE4936 Overvoltage Transient Suppressor, Vr =25.60V
NTE4932 Overvoltage Transient Suppressor, Vr=20.50V
NTE4937 Overvoltage Transient Suppressor, Bi-Directional Vr =25.60V
NTE4938 Overvoltage Transient Suppressor, Vr =28.20V
NTE4939 Overvoltage Transient Suppressor, Bi-Directional Vr =28.20V
NTE4940 Overvoltage Transient Suppressor, Vr =30.80V
NTE4944 Overvoltage Transient Suppressor, Vr =36.80V
NTE4941 Overvoltage Transient Suppressor, Bi-Directional Vr =30.80V
NTE4942 Overvoltage Transient Suppressor, Vr =33.30V
NTE4943 Overvoltage Transient Suppressor, Bi-Directional Vr =33.30V
NTE4928 Overvoltage Transient Suppressor, Vr =17.1V
NTE74S114 IC-TTL, Ultra-High Speed, Dual J-K Neg Edge Triggered Flip-
Flop w/Present, Common Clock & Clear
NTE74S15 IC-TTL, Ultra-High Speed, Triple 3-Input And Gate w/Open
Collector Outputs
NTE74S20 IC-TTL, Ultra-High Speed, Dual 4-Input NAND Gate
NTE74S22 IC-TTL, Ultra-High Speed, Dual 4-Input NAND Gate w/Open
Collector Outputs
NTE74S30 IC-TTL, Ultra-High Speed, 8-Input Pos NAND Gate
NTE74S37 IC-TTL, Ultra-High Speed, Quad 2-Input NAND Buffer
NTE74S38 IC-TTL, Ultra-High Speed, Quad 2-Input NAND Buffer w/Open
Collector Outputs
NTE75452B IC-TTL, Dual Peripheral NAND Driver
NTE75453B IC-TTL, Dual Peripheral OR Driver
Page 26-11
Semiconductors
Part
Number
Description
NTE4945 Overvoltage Transient Suppressor, Bi-Directional Vr =36.80V
NTE4946 Overvoltage Transient Suppressor, Vr =40.2V
NTE4947 Overvoltage Transient Suppressor, Bi-Directional Vr =40.20V
NTE4950 Overvoltage Transient Suppressor, Vr =43.6V
NTE4951 Overvoltage Transient Suppressor, Bi-Directional Vr =43.6V
NTE4952 Overvoltage Transient Suppressor, Vr =47.80V
NTE4953 Overvoltage Transient Suppressor, Bi-Directional Vr =47.80V
NTE4954 Overvoltage Transient Suppressor, Vr =53V
NTE4955 Overvoltage Transient Suppressor, Bi-Directional Vr =53V
NTE4958 Overvoltage Transient Suppressor, Vr =58.1V
NTE4960 Overvoltage Transient Suppressor, Vr =64.10V
NTE4961 Overvoltage Transient Suppressor, Bi-Directional Vr =64.10V
Part
Number
Description
NTE4959 Overvoltage Transient Suppressor, Bi-Directional Vr =58.1V
NTE4979 Overvoltage Transient Suppressor,Bi-Directional Vr =145.00V
NTE4980 Overvoltage Transient Suppressor, Vr =154.00V
NTE4981 Overvoltage Transient Suppressor,Bi-Directional Vr =154.00V
NTE4982 Overvoltage Transient Suppressor, Vr =185.00V
NTE4983 Overvoltage Transient Suppressor,Bi-Directional Vr =185.00V
NTE4984 Overvoltage Transient Suppressor, Vr =214.00V
NTE4985 Overvoltage Transient Suppressor,Bi-Directional Vr =214.00V
NTE4988 Overvoltage Transient Suppressor, Vr =171V
NTE4989 Overvoltage Transient Suppressor,Bi-Directional Vr =171V
NTE4990 Overvoltage Transient Suppressor, Vr =256.00V
NTE4991 Overvoltage Transient Suppressor,Bi-Directional Vr =256.00V
NTE4992
NTE4993 Overvoltage Transient Suppressor,Bi-Directional Vr =273.00V
NTE4994 Overvoltage Transient Suppressor, Vr =300V
NTE4962 Overvoltage Transient Suppressor, Vr =70.10V
NTE4963 Overvoltage Transient Suppressor, Bi-Directional Vr =70.10V
NTE4964 Overvoltage Transient Suppressor, Vr =77.80V
NTE4965 Overvoltage Transient Suppressor, Bi-Directional Vr =77.80V
NTE4966 Overvoltage Transient Suppressor, Vr =85.80V
NTE4967 Overvoltage Transient Suppressor, Bi-Directional Vr =85.50V
NTE4968 Overvoltage Transient Suppressor, Vr =94.00V
NTE4969 Overvoltage Transient Suppressor, Bi-Directional Vr =94.00V
NTE4970 Overvoltage Transient Suppressor, Vr =102.00V
NTE4971 Overvoltage Transient Suppressor, Bi-Directional Vr =102.00V
NTE4972 Overvoltage Transient Suppressor, Vr =111.00V
NTE4973 Overvoltage Transient Suppressor, Bi-Directional Vr =111.00V
NTE4995 Overvoltage Transient Suppressor,Bi-Directional Vr =300V
NTE4996 Overvoltage Transient Suppressor, Vr =342.00V
NTE4997 Overvoltage Transient Suppressor,Bi-Directional Vr =342.00V
NTE4998 Overvoltage Transient Suppressor, Vr =376.00V
NTE4999 Overvoltage Transient Suppressor,Bi-Directional Vr =376.00V
NTE4976 Overvoltage Transient Suppressor, Vr =136.00V
NTE4977 Overvoltage Transient Suppressor,Bi-Directional Vr =136.00V
NTE4974 Overvoltage Transient Suppressor, Vr =121.00V
NTE4975 Overvoltage Transient Suppressor,Bi-Directional Vr =128.00V
NTE4978 Overvoltage Transient Suppressor, Vr =145.00V
Transient Suppressors
(cont.)
Transient Suppressors
(cont.)
NTE5000A Zener Diode, 2.4V, 1/2W, 5% Tol
NTE5001A Zener Diode, 2.5V, 1/2W, 5% Tol
NTE5002A Zener Diode, 2.7V, 1/2W, 5% Tol
NTE5003A Zener Diode, 2.8V, 1/2W, 5% Tol
NTE5004A Zener Diode, 3.0V, 1/2W, 5% Tol
NTE5005SM Zener Diode, 3.3V, 300mW, 5% Tol, Surface Mount
NTE5007A Zener Diode, 3.9V, 1/2W, 5% Tol
NTE5005A
NTE5007SM
Zener Diode, 3.3V, 1/2W, 5% Tol
Zener Diode, 3.9V, 300mW, 5% Tol, Surface Mount
NTE5008A Zener Diode, 4.3V, 1/2W, 5% Tol
NTE5008SM Zener Diode, 4.3V, 300mW, 5% Tol, Surface Mount
NTE5009A Zener Diode, 4.7V, 1/2W, 5% Tol
NTE5009SM Zener Diode, 4.7V, 300mW, 5% Tol, Surface Mount
NTE5010A Zener Diode, 5.1V, 1/2W, 5% Tol
NTE5010SM Zener Diode, 5.1V, 300mW, 5% Tol, Surface Mount
NTE5010T1 Zener Diode, 5.1V, 1/2W, 1% Tol
NTE5011A Zener Diode, 5.6V, 1/2W, 5% Tol
NTE5011SM Zener Diode, 5.6V, 300mW, 5% Tol, Surface Mount
NTE5011T1 Zener Diode, 5.6V, 1/2W, 1% Tol
NTE5012A Zener Diode, 6.0V, 1/2W, 5% Tol
NTE5013SM Zener Diode, 6.2V, 300mW, 5% Tol, Surface Mount
NTE5013A Zener Diode, 6.2V, 1/2W, 5% Tol
NTE5013T1 Zener Diode, 6.2V, 1/2W, 1% Tol
NTE5014A Zener Diode, 6.8V, 1/2W, 5% Tol
NTE5014SM Zener Diode, 6.8V, 300mW, 5% Tol, Surface Mount
NTE5015A Zener Diode, 7.5V, 1/2W, 5% Tol
Part
Number
Description
Zener Diodes
Overvoltage Transient Suppressor, Vr =273.00V
Page 26-12
Semiconductors
2.4 5000A 5061A - - -
2.5 5001A 5062A - - -
2.7 5002A 5063A - - -
2.8 5003A 5064A - - -
3.0 5004A 5065A - - -
3.3 5005A 5066A 5111A - -
3.6 5006A 134A 5112A - -
3.9 5007A 5067A 5113A 5174A 5240A
4.3 5008A 5068A 5114A 5175A 5241A
4.7 5009A 5069A 5115A 5176A 5242A
5.1 5010A 135A 5116A 5177A 5243A
5.6 5011A 136A 5117A 5178A 5244A
6.0 5012A 5070A 5118A 5179A 5245A
6.2 5013A 137A 5119A 5180A 5246A
6.8 5014A 5071A 5120A 5181A 5247A
7.5 5015A 138A 5121A 5182A 5248A
8.2 5016A 5072A 5122A 5183A 5249A
8.7 5017A 5073A 5123A 5184A 5250A
9.1 5018A 139A 5124A 5185A 5251A
10.0 5019A 140A 5125A 5186A 5252A
11.0 5020A 5074A 5126A 5187A 5253A
11.5 - 141A - - -
Zener Diodes
(cont.)
Rated
Voltage
±5% PD
NTE Number Axial Leads
1/2 Watt 1 Watt 5 Watt 10 Watt 50 Watt
NTE Number Stud Mount
Package Type
Package Style DO35 DO41/DO15 DO4 DO5
Page 26-13
Semiconductors
12.0 5021A 142A 5127A 5188A 5254A
13.0 5022A 143A 5128A 5189A 5255A
14.0 5023A 144A 5129A 5190A 5256A
15.0 5024A 145A 5130A 5191A 5257A
16.0 5025A 5075A 5131A 5192A 5258A
17.0 5026A 5076A 5132A 5193A 5259A
18.0 5027A 5077A 5133A 5194A 5260A
19.0 5028A 5078A 5134A 5195A 5261A
20.0 5029A 5079A 5135A 5196A 5262A
22.0 5030A 5080A 5136A 5197A 5263A
24.0 5031A 5081A 5137A 5198A 5264A
25.0 5032A 5082A 5138A 5199A 5265A
27.0 5033A 146A 5139A 5200A 5266A
28.0 5034A 5083A 5140A 5201A 5267A
30.0 5035A 5084A 5141A 5202A 5268A
33.0 5036A 147A 5142A 5203A 5269A
36.0 5037A 5085A 5143A 5204A 5270A
39.0 5038A 5086A 5144A 5205A 5271A
43.0 5039A 5087A 5145A 5206A 5272A
45.0 - - - 5207A 5273A
47 5040A 5088A 5146A 5208A 5274A
50.0 - - - 5209A 5275A
51.0 5041A 5089A 5147A 5210A 5276A
Zener Diodes
(cont.)
Rated
Voltage
±5% PD
NTE Number Axial Leads
1/2 Watt 1 Watt 5 Watt 10 Watt 50 Watt
NTE Number Stud Mount
Package Type
Package Style DO35 DO41/DO15 DO4 DO5
Page 26-14
Semiconductors
52.0 - - - 5211A 5277A
55.0 - 148A - - -
56.0 5042A 5090A 5148A 5212A 5278A
60.0 5043A 5091A 5149A 5213A 5279A
62.0 5044A 149A 5150A 5214A 5280A
68.0 5045A 5092A 5151A 5215A 5281A
75.0 5046A 5093A 5152A 5216A 5282A
82.0 5047A 150A 5153A 5217A 5283A
87.0 5048A 5094A 5154A 5218A -
91.0 5049A 5095A 5155A 5219A 5284A
100.0 5050A 5096A 5156A 5220A 5285A
105.0 - - - 5221A 5286A
110.0 5051A 151A 5157A 5222A 5287A
120.0 5052A 5097A 5158A 5223A 5288A
130.0 5053A 5098A 5159A 5224A 5289A
140.0 5054A 5099A 5160A 5225A 5290A
150.0 5055A 5100A 5161A 5226A 5291A
160.0 5056A 5101A 5162A 5227A 5292A
170.0 5057A 5102A 5163A 5228A -
175.0 - - - 5229A 5293A
180.0 5058A 5103A 5164A 5230A 5294A
190.0 5059A 5104A 5165A 5231A 5295A
200.0 5060A 5105A 5166A 5232A 5296A
Zener Diodes
(cont.)
Rated
Voltage
±5% PD
NTE Number Axial Leads
1/2 Watt 1 Watt 5 Watt 10 Watt 50 Watt
NTE Number Stud Mount
Package Type
Package Style DO35 DO41/DO15 DO4 DO5
Page 26-15
Semiconductors
Part Number Case Style Description
NTE1961 TO220 (Isol) IC-Vltg Reg, Neg, -5V, 1A, Isol Tab
NTE1913 TO3 IC-Vltg Reg, Neg, -5V, 1.5A
NTE1917 TO92 IC-Vltg Reg, Neg, -5V, 100mA
NTE963 TO220 IC-Vltg Reg, Neg, -6V, 1A
NTE1963 TO220 (Isol) IC-Vltg Reg, Neg, -6V, 1A, Isol Tab
NTE965 TO220 IC-Vltg Reg, Neg, -8V, 1A
NTE961 TO220 IC-Vltg Reg, Neg, -5V, 1A
Part Number Case Style Description
NTE309K TO3 IC-Vltg Reg, Pos, 5V, 1A
NTE 1934 TO3P IC-Vltg Reg, Pos, 5V, 2A
NTE1934X TO3P IC-Vltg Reg, Pos, 5V, 2A
NTE931 TO3 IC-Vltg Reg, Pos 5V, 3A
NTE932 TO3 IC-Vltg Reg, Pos 5V, 5A
NTE960 TO220 IC-Vltg Reg, Pos, 5V, 1A
NTE 1960 TO220 (Isol) IC-Vltg Reg, Pos, 5V, 1A, Isol Tab
NTE977 TO92 IC-Vltg Reg, Pos, 5V, 100mA
NTE 1962 TO220 (Isol) IC-Vltg Reg, Pos, 6V, 1A, Isol Tab
NTE988 TO92 IC-Vltg Reg, Pos, 6.2V, 100mA
NTE964 TO220 IC-Vltg Reg, Pos, 8V, 1A
NTE1964 TO220 (isol) IC-Vltg Reg, Pos, 8V, 1A, Isol Tab
NTE981 TO92 IC-Vltg Reg, Pos, 8V, 100mA
NTE1902 TO92 IC-Vltg Reg, Pos, 9V, 100mA
NTE1910 TO220 IC-Vltg Reg, Pos, 9V, 1A
NTE 1966 TO220 (Isol) IC-Vltg Reg, Pos, 9V, 1A, Isol Tab
NTE1932 TO220 IC-Vltg Reg, Pos, 10V, 1A
NTE 1968 TO220 (Isol) IC0Vltg Reg, Pos, 10V, 1A, Isol Tab
NTE933 TO3 IC-Vltg Reg, Pos 12V, 5A
NTE1912 TO3 IC-Vltg Reg, Pos, 12V, 3A
NTE1914 TO3 IC-Vltg Reg, Pos, 12V, 1.5A
NTE1936 TO3P IC-Vltg Reg, Pos, 12V, 2A
NTE950 TO92 IC-Vltg Reg, Pos, 12V, 100mA
NTE966 TO220 IC-Vltg Reg, Pos, 12V, 1A
Voltage Regulators
Positive, 3 terminal, arranged by output voltage
TO3 TO3P TO220 TO220(Isol) TO92
Positive, 3 terminal, arranged by output voltage
(cont.)
Negative, 3 terminal, arranged by output voltage
Part Number Case Style Description
NTE1970 TO220 (Isol) IC-Vltg Reg, Pos, 12V, 1A, Isol Tab
NTE951 TO92 IC-Vltg Reg, Pos, 15V, 100mA
NTE968 TO220 IC-Vltg Reg, Pos, 15V, 1A
NTE1972 TO220 (Isol) IC-Vltg Reg, Pos, 15V, 1A, Isol Tab
NTE1938 TO3P IC-Vltg Reg, Pos, 15V, 2A
NTE1920 TO3 IC-Vltg Reg, Pos, 18V, 3A
NTE958 TO220 IC-Vltg Reg, Pos, 18V, 1A
NTE1974 TO220 (Isol) IC-Vltg Reg, Pos, 18V, 1A, Isol Tab
NTE1906 TO92 IC-Vltg Reg, Pos, 18V, 100mA
NTE1924 TO3 IC-Vltg Reg, Pos, 24V, 1.5A
NTE972 TO220 IC-Vltg Reg, Pos, 24V, 1A
NTE1976 TO220 (Isol) IC-Vltg Reg, Pos, 24V, 1A, Isol Tab
NTE1908 TO92 IC-Vltg, Pos, 24V, 100mA
NTE1940 TO3P IC-Vltg, Pos, 24V, 2A
IC-Vltg
Page 26-16
Semiconductors
Part Number Case Style Description
NTE935 TO3 IC-Vltg Reg, Pos Adj., 1.2V to 32V, 5A
NTE970 TO3 IC-Vltg Reg, Pos Adj., 1.2V to 33V, 3A
NTE956 TO220 IC-Vltg Reg, Pos Adj., 1.2V to 37V, 1.5A
NTE1900 TO92 IC-Vltg Reg, Pos Adj., 1.2V to 37V, 100mA
NTE1942 TO220 IC-Vltg Reg, Pos Adj., 2.85V to 36V, 2A
NTE1928 8-Lead Metal
Can IC-Vltg Reg, Pos Adj., 4.5 V to 40 V, 45mA
NTE953 4-Lead Power
Tab
IC-Vltg Reg, Pos Adj., 4-Terminal, 7.5V to
40V, 1A
Part Number Case Style Description
NTE1951 TO220 IC-Vltg Reg, Pos, 5V, 1A, Low Dropout
NTE1952 TO220 IC-Vltg Reg, Pos, 8V, 1A, Low Dropout
NTE1953 TO220 IC-Vltg Reg, Pos, 10V, 1A, Low Dropout
NTE1954 TO220 IC-Vltg Reg, Pos, 12V, 1A, Low Dropout
NTE1955 TO220 IC-Vltg Reg, Pos, 15V, 1A, Low Dropout
Part Number Case Style Description
NTE1965 TO220 (Isol) IC-Vltg Reg, Neg, -8V, 1A, Isol Tab
NTE1967 TO220 (Isol) IC-Vltg Reg, Neg, -9V, 1A, Isol Tab
NTE967 TO220 IC-Vltg Reg, Neg, -12V, 1A
NTE1971 TO220 (Isol) IC-Vltg Reg, Neg, -12V, 1A, Isol Tab
NTE1903 TO92 IC-Vltg Reg, Neg, -12V, 100mA
NTE1915 TO3 IC-Vltg Reg, Neg, -12V, 1.5A
NTE969 TO220 IC-Vltg Reg, Neg, -15V, 1A
NTE1973 TO220 (Isol) IC-Vltg Reg, Neg, -15V, 1A, Isol Tab
NTE1905 TO92 IC-Vltg Reg, Neg, -15V, 100mA
NTE1919 TO3 IC-Vltg Reg, Neg, -15V, 1.5A
NTE959 TO220 IC-Vltg Reg, Neg, -18V, 1A
NTE1975 TO220 (Isol) IC-Vltg Reg, Neg, -18V, 1A, Isol Tab
NTE1907 TO92 IC-Vltg Reg, Neg,-18V, 100mA
NTE1923 TO3 IC-Vltg Reg, Neg, -18V, 100mA
NTE971 TO220 IC-Vltg Reg, Neg, -24V, 1A
NTE1977 TO220 (Isol) IC-Vltg Reg, Neg, -24V, 1A, Isol Tab
NTE1909 TO92 IC-Vltg Reg, Neg, -24V, 100mA
NTE1925 TO3 IC-Vltg Reg, Neg, -24V, 1.5A
Voltage Regulators
(cont.)
Negative, 3 terminal, arranged by output voltage
(cont.) Positive, low dropout voltage, arranged by output voltage
8-Lead Metal Can 8-Lead Dip
4-Lead Power 4-Lead TO3 10-Lead Metal Can 14-Lead Dip Axial
TO3 TO220 TO92
Positive adjustable, arranged by output voltage
Page 26-17
Semiconductors
Part Number Output Configuration Viso Pt Ctr If Vf Vr Bvcbo Bvceo Ic
NTE3040 NPN Transistor 7500 250 20 80 1.5 3 70 30 100
NTE3041 NPN Transistor 7500 300 100 60 1.5 6 70 30 50
NTE3042 NPN Transistor 7500 250 20 60 1.5 3 70 30 50
NTE3043 NPN Transistor 3550 260 70 60 1.5 3 70 80 50
NTE3044 NPN Darlington 7500 250 300 80 2.0 3 - 80 1000
NTE3045 NPN Darlington 7500 250 500 80 2.0 3 - 80 1000
NTE3081 NPN Transistor 6000 250 20 60 1.7 4 - 30 100
NTE3082 NPN Darlington 6000 250 400 60 1.7 4 - 30 100
NTE3083 NPN Darlington 7500 250 200 60 1.5 3 - 30 100
NTE3084 NPN Darlington 7500 250 100 60 1.5 3 - 55 100
NTE3086 Dual NPN Transistor 7500 400 50 60 1.5 3 - 30 100
NTE3088 HV NPN Transistor 7500 300 20 60 1.5 6 300 300 (Vcer) 100
NTE3089 AC Input NPN Transistor 7500 250 20 60 1.5 - 70 30 100
NTE3096 Low LED Drive NPN
Transistor 7500 300 50 @ If = 1mA 60 1.4 6 70 30 25
NTE3098 NPN Transistor 5000 200 100 50 1.3 5 - 55 100
NTE3220 Dual NPN Transistor 5000 200 50 @ If = 5mA 50 1.2 6 - 35 50
NTE3221 Quad NPN Transistor 5000 200 50 @ If = 5mA 50 1.2 6 - 35 50
Part Number Case Style Description
NTE1927 4-Lead TO3 IC-Vltg Reg, Neg Adj., -2.2V to -30V, 1A
NTE957 TO220 IC-Vltg Reg, Neg Adj., - 1.2V to - 37V, 1.5A
NTE1901 TO92 IC-Vltg Reg, Neg Adj., -1.2V to -37V, 100mA
NTE1911 TO3 IC-Vltg Reg, Neg, Adj., -1.2V to -37V, 1.5A
Voltage Regulators
(cont.)
Negative adjustable, arranged by output voltage
Precision Voltage Regulators
0.01% line and load regulation, Positive or negative supply.
Reference Voltage Regulators
For electronic tuner.
Optoisolators Phototransitor Outputs
Part Number Case Style Description
NTE923 10-Lead Metal Can IC-Linear, Precision Voltage Regulator
NTE923D 14-Lead DIP IC-Linear, Precision Voltage Regulator
Part Number Case Style Description
NTE615 Axial Reference Voltage Regulator for Electronic Tuner
NTE615P TO92 Reference Voltage Regulator for Electronic Tuner
Page 26-18
Semiconductors
123AP 159 Amp, Gen Purpose 75/80 40/80 0.6/1 0.625 200/180 300 Min/200 TO92
46 - Darlington, Gen Purp Amp,
Preamp, Driver 100 100 0.5 0.625 10000 Min 200 TO92
289A 290A Audio Pwr Amp 100 80 0.5 0.6 100 Min 120 TO92
194 - Audio Pwr Amp 180 160 0.6 0.31 100 100 Min TO92
287 288 High Vltg, Gen Purp Amp 300 300 0.5 0.625 40 Min 50 Min TO92
192 193 Audio Pwr Amp, Gen Purp 70 70 (CES) 1 1* 150 120 Min TO92HS
192A 193A Audio Pwr Output 70 70 (CES) 0.5 0.6 120 Min 120 TO92HS
48 - Darlington, High Current,
Gen Purp Amp 60 50 (CES) 1 2.5* 25000 Min 100 Min Giant TO92
293 294 Audio Amp & Driver 60 50 1 1 120 Min 200 Giant TO92
297 298 Audio Amp Driver 80 80 0.5 0.75 130 Min 120 Giant TO92
90 91 Amp, High Vltg, High Gain 120 120 0.05 0.75/150 400 Min 350/20 Giant TO92
Part Number Output Configuration Viso Pt Ctr If Vf Vr Bvcbo Bvceo Ic
NTE3100 NPN Transistor 6 60 1.7 55 100 100 250 8 50
NTE3101 NPN Darlington 6 60 1.7 55 100 100 250 7 45
NTE3102 NPN Transistor 6 60 1.7 55 100 100 250 8 50
NTE3103 NPN Darlington 6 60 1.7 55 100 100 250 7 45
NTE3105 NPN Transistor 3 50 1.3 30 20 200 75 20 20
TO92 TO92HS Giant TO92
Silicone Transistor Selector Guide
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
Package
Style/Diagram
Number
IC PD hFE fT
Maximum
Collector
Current
(Amps)
Typical
Forward
Current
Gain
Typical Freq
(MHZ)
Max.
Collector
Diss. (Watts)
Optoisolators Phototransitor Outputs
(cont.)
*Tc=25ºC
Page 26-19
Semiconductors
31 32 Sound/Vert Output 160 160 1 0.9 100 Min 20 Min/15
Min Giant TO92
399 - High Vltg Video Amp 300 300 0.1 0.9 100 Min 50 Min Giant TO92
108-1 - Amp, RF/IF Video 30 15 0.05 0.625 20 Min 800 TO106
75 - High Pwr Amp, Switch 100 80 5 50 40 Min 50 Min TO111
95 - High Vltg, Switch Isolated
Stud 250 250 3 40 90 Min 40 TO111
76 - Amp, Broad Band, CATV 50 30 0.4 5 30 Min 1500 TO117
2338 - Darlington Power Amp
w/Internal Damper 60±10 60±10 1.5 10 2000 Min - TO126
184 185 Amp, High Speed Switch 80 80 4 40 25 Min 2 Min TO126
253 254 Darlington Pwr Amp 80 80 4 40 2,500 - TO126
295 - RF Power Output/Driver 80 40 1.5 5 20 Min 150 Min TO126
- 374 Audio Amp, Gen Purp 180 160 1.5 20 190 140 TO126
157 39 High Vltg Amp, Gen Purp 325/300 300 0.5 20 90/92 10 Min TO126
2327 - High Vltg, High Speed Sw 1000 (CES) 450 0.5 20 50 20 TO126
2501 2502 HV for Video Output 300 300 0.1 1.5 100 Min 70 TO126ML
78 - RF Pwr Output 36 18 0.6 5 5 Min - TO220
152 153 Amp, Gen Purp 60 60 5 50 60 10 TO220
236 - Final RF Pwr Amp 60 25 6 1.5 15 - B26
TO106 TO111 TO117 TO126
Silicone Transistor Selector Guide
(cont.)
NTE Type
Number
Application Package
Style/Diagram
Number
Typical
Forward
Current Gain
Typical Freq
(MHZ)
NPN PNP BVCBO BVCEO IC PD hFE fT
Maximum Breakdown Voltage
(Volts)
Max. Collector
Current
(Amps)
Max.
Collector
Diss. (Watts)
*Tc=25ºC
Giant TO92 TO126ML TO220
Page 26-20
Semiconductors
2332 - Darlington w/Internal Damper &
Zener Diode 60±10 60±10 2 20 4000 - TO220
2334 - Darlington Driver w/Internal
Damper & Zener Diode 60±10 60±10 5 40 4000 20 TO220
235 - Final RF Pwr Amp 65 65(CER) 3 Pulse 12 80 300 TO220
241 242 Amp Gen Purp 80 80 4 60 25 Min 25 Min TO220
377 378 Pwr Amp, Pwr Driver, Switch 80 80 10 50 60 Min 50 TO220
196 197 Amp Gen Purp 90 80 (CER) 7 50* 20 Min 4 TO220
56 - High Gain Switch 100 80 3 30 500 Min 15 TO220
261 262 Darlington Pwr Amp 100 100 8 65 1000 Min - TO220
263 264 Darlington Pwr Amp 100 100 10 65 1000 Min - TO220
331 332 Audio Amp, Switch 100 100 15 90 40 Min 3 Min TO220
2343 2344 Darlington Audio Amp, Dr 100 100 12 80* 1000 Min - TO220
291 292 Amp, Gen Purp 130 120 4 40 70 4 Min/5 Min TO220
54 55 High Freq Audio Driver 150 150 8 50 100/120 30 Min TO220
375 398 Vert Deflection Amp 200 150 3/2 25 150/100 8/5 TO220
376 - TV Pwr Supply Driver 300 300 0.2 15* 100 70 TO220
2315 - Fast Switch Pwr Darlington 400 200 8 60 125 - TO220
198 - High Vltg Audio Output 500 500
(CES) 1 40* 80 10 Min TO220
51 - High Vltg, High Speed Sw 700 400 4 75 30 4 Min TO220
379 - High Vltg Switch 700 400 12 100 12 4 Min TO220
Silicone Transistor Selector Guide
(cont.)
TO220
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
IC PD hFE fT
Typical
Forward
Current
Gain
Typical Freq
(MHZ)
Max.
Collector
Current
(Amps)
Max.
Collector
Diss.
(Watts)
*Tc=25ºC
Page 26-21
Semiconductors
2312 - HV High Speed Switch 700 CEV 400 (SUS) 8 80 60 Max 4 Min TO220
2325 - High Voltage Switch 900 800 3 50 8 Min 15 TO220
2313 - High Speed Switch 1000
(CES) 450 2 40 50 20 TO220
2333 - High Vltg, High Speed Sw 1000
(CES) 450 8 100* 4 Min 10 TO220
2303 - High Vltg Horiz Output 1500 750 2.5 65 4.5 4 TO220
2336 - Darlington Switch w/Internal Damper &
Zener Diode 60±10 60±10 8 45 2000 Min - TO220 Isol Tab
2337 - High Vltg, High Speed Sw 900 500 7 2/45* 15 Min 20 TO220 Isol Tab
2339 - High Vltg, High Speed Sw 1100 800 3 30 20 Min 15 TO220 Isol Tab
216 - High Speed Switch 80 50 1 1.5 60 Min - TO237
128P 129P General Purp Amp 100 80 1 1/2 100 Min 150/125 TO237
24 25 General Purp Amp, Switch 100 80 1 2* 50 Min/40Min 150/125 TO237
227 - HV Amp Video Output 300 300 0.01 2* 40 Min 50 Min TO237
255 - Horiz Dr, Amp 325 300 0.5 2* 110 60 TO237
2340 - Darlington Sw w/Internal Damper Diode 60±10 60±10 8 45 2000 - "N" Pack
2351 2352 Darlington Pwr Amp, Sw 100 80 4 1 1000 Min - "N" Pack
2504 - High Gain Audio Amp 30 25 2 1.2 1500 260 TO126LP
182 183 High Speed Amp, Switch 70 60 10 90 20 min. 2 TO127
267 - Darlington Pwr Amp Switch 30 30 0.5 6.25 90000 min - TO202
265 - Darlington Pwr Amp Sw 50 50 0.5 6.25 10000 min - TO202
266 - Darlington Pwr Amp Switch 50 50 0.5 6.25 40000 min - TO202
- 269 Darlington Pwr Amp 50 50 2 10 1000 min - TO202
300 307 Audio Pwr Amp 50 40 1.5 7 90 min 65 TO202
186 187 Audio Driver, Output 70 60 3 12.5 100 min 50 TO202
299 - RF Pwr Amp Driver 75 35 1 4 70 min - TO202
Silicone Transistor Selector Guide
(cont.)
TO202
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
Package
Style/Diagr
am
Number
IC PD hFE fT
Typical
Forward
Current
Gain
Typical
Freq
(MHZ)
“N” Pack TO126LP TO127
Max.
Collector
Current
(Amps)
Max.
Collector
Diss.
(Watts)
TO220 TO220 Isol Tab TO237
*Tc=25ºC
Page 26-22
Semiconductors
210 211 Gen Purp Output Driver 90 75 1 6.25 120 min 200/150
min TO202
49 50 High Vltg Amp, Driver 120 100 2 10 100 150 TO202
171 - Audio, Video Amp 300 300 0.5 6.25 30 min 75 TO202
78 - RF Pwr Output 36 18 0.6 5 5 min - TO202M
79 - RF Pwr Output 36 18 2 15 5 min - TO202M
186A 187A Med Audio Amp 40/50 50/40 3 10 120 150 TO202M
228A - HV Amp Video Output 450 350 0.5 2-10* 25 Min 45 Min TO202M
272 273 Darlington Pwr Amp, Switch 50 40 2 10* 25000 Min - TO202N
322 - RF Pwr Output 65 65 (CES) 0.5 10 10 Min 100 TO202N
188 189 High Vltg Amp 80 80 2 10 60 Min 100 TO202N
190 - High Vltg Amp 180 180 1 10 40 Min 100 TO202N
191 240 High Vltg Amp 300 300 0.5 10 45 min/70 40 min/60
min TO202N
270 271 Darlington Pwr Amp Switch 100 100 10 125 1000 min - TO218
390 391 Pwr Amp, Switch 100 100 10 80 40 min 3 TO218
392 393 Pwr Amp, Switch 100 100 25 125 25 min 3 TO218
2305 2306 High Pwr Audio Amp 160 160 16 125 35 1 min TO218
2316 - HV Pwr Darlington 500 450 10 120 130 - TO218
394 - Pwr Amp, High Speed Sw 500 400 3 100 30 min - TO218
2317 - High Vltg. Fast Switch, Power Darlington 500 (CES) 450 15 150 300 min - TO218
256 - Darlington with Damper Diode 600 400 28 150 30 min - TO218
2310 - High Vltg 1000 450 8 125 10 - TO218
2311 - High Vltg/Speed Sw 1000 450 15 150 10 - TO218
2300 - High Vltg, Horiz Output 1500 700 8 125 6 - TO218
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
Package
Style/Dia.
Number
IC PD hFE fT
Typical
Forward
Current Gain
Typical
Freq
(MHZ)
Max.
Collector
Current
(Amps)
Max.
Collector
Diss. (Watts)
Silicone Transistor Selector Guide
(cont.)
TO202M TO202N
*Tc=25ºC
TO218
Page 26-23
Semiconductors
2301 - High Vltg Horiz Output 1500 750 5 100 5 4 TO218
2318 - HV Sw with Internal Damper Diode 1500(CES) 700 8 125 5 0.5 TO218
16002 - RF Power, Dr 65 40 3 23* 5 min 400 TO60
16003 - RF Power, Dr 65 40 1.5 11.6* 10 min 500 TO60
72 - High Current, Fast Switch 120 100 10 115 30 min 30 TO61
73 - High Vltg Switch 220 200 10 85 15 min 40 TO61
71 - High Current, Fast Switch 150 90 20 200 20 min 20 TO63
70 - Pwr Amp, High Vltg, Switch 180 150 50 250 30 min - TO63
274 275 Darlington Pwr Amp Switch 80 80 4 50 3000 - TO66
- 218 Audio Power Output 90 80 4 25 30 min 4 min TO66
124 - High Vltg, Gen Purpose 300 300 0.15 20 100 10 TO66
384 - High Vltg Pwr Amp/Switch 375 350 7 45 28 1 min TO66
175 38 Pwr Amp, Gen Purpose 500/400 300
(CER)/350 3/2 40/35 60/50 15/20 TO66
369 - Vert Deflection, Switch 800 400 3 Peak 40 30 min 7 TO66
319 - VHF Amp with AGC 20 20 0.05 0.26 80 300 min TO92
- 395 Wide Band Amp 30 25 0.05 0.36 80 2.3Ghz TO92
316 - High Gain, Lo Noise UHF Amp 30 15 0.05 0.2 25 min 1400 TO92
161 - VHF-UHF Amp, Mixer/OSC 45 45 (CES) 0.05 0.2 60 800 TO92
81 - Amp, Dual VHF, Switch 75/60 40/60 0.5/0.6 0.6/each 2
total 100 250/320 TO92
10 - UHF Low noise Amp 25 12 0.07 0.4 40 min 4.5GHz TO92
23 - Ultra High Freq Amp 30 14 0.05 0.25 80 2GHz TO92
107 - UHF OSC 30 15 0.05 0.2 75 1000 TO92
108 - RF-IF Amp 30 15 0.05 0.625 20 min. 800 TO92
Silicone Transistor Selector Guide
(cont.)
TO218 TO60 TO61 TO63 TO66
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
Package
Style/Dia.
Number
IC PD hFE fT
Typical
Forward
Current Gain
Typical
Freq
(MHZ)
Max.
Collector
Current
(Amps)
Max.
Collector
Diss. (Watts)
*Tc=25ºC
TO92
Page 26-24
Semiconductors
233 - Video IF OSC 30 30 0.1 0.625 45 300 min TO92
- 232 Gen Purp Darlington Amp 30 30 0.3 0.625 50000 min 175 TO92
69 - UHF/VHF Amplifier 35 25 0.05 1 60 1100 TO92
289 290 Audio Amp, Switch 35 30 0.8 0.6 120 min 100/120 TO92
11 12 High Current Am 40/27 20/18 5 0.75 230 min/180
min 150/120 TO92
319P - VHF Amp with AGC Control 40 30 0.05 0.5 80 300 min TO92
172A - Darlington Pre-Amp 40 40 0.3 0.4 7000 min 60 min TO92
229 - VHF OSC, Mixer 40 40 0.05 0.425 30 min 500 min TO92
47 - High Gain, Low Noise Amp 45 45 0.2 0.625 1150 160 TO92
199 234 Amp, Gen Purpose 70/120 50/120 0.1 0.36/0.3 400 min/350
min 90 min/100 TO92
85 - Amp, Gen Purp Switch 70 70 (CES) 0.4 0.625 120 min 200 min TO92
20 21 AF PO, Dr, Series Pass 40 32 2 1 120 min 100 ATR
16 17 Gen Purp Sm Sig Amp, Low Noise 50 40 0.1 0.3 270 min 180/140 ATR
18 19 High Breakdown Voltage Large
Current Capacity Driver 80 80 0.7 1 120 min 120/100 ATR
22 - AF PO, Dr, Gen Purp Amp 100 80 1 0.9 120 min 100 ATR
302 - CB, Driver Switch 100 50 1.5 Peak 7.9 199 min 70 B2
306 - CB, Driver, Switch 100 50 1.5 Peak 7.9* 199 min 70 B2
15 - VHF Amp, Mixer, OSC, UHF OSC 30 19 50 0.3 39 min 1100 FTR
- 14 Low Freq, Driver 80 80 0.7 0.75 120 min 100 FTR
315 - Medium Pwr Audio Amp 100 50 1 0.75 199 min - R245
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
Package
Style/Diagr
am
Number
IC PD hFE fT
Max.
Collector
Diss.
(Watts)
Max.
Collector
Current
(Amps)
Typical
Forward
Current
Gain
Typical
Freq
(MHZ)
Silicone Transistor Selector Guide
(cont.)
*Tc=25ºC
TO92 ATR B2 FTR R245
Page 26-25
Semiconductors
382 383 Audio Freq Driver 120 100 1 0.9 200 140 R245
42 43 Dual, Differential Amp, High Gain
Low Noise, Common Emitter 50 50 0.1 0.2/unit 0.4
total 400 min 100 min SIP-5
- 41 Dual, Differential Amp, High Gain
Low Noise, Common Emitter 100 100 0.05 0.2/unit 0.4
total 400 min 100 min SIP-5
44 45 Dual, High Gain, Low Noise, Bias
Amp, Common Base 100 100 0.1 0.2/unit 0.4
total 400 min 100 min SIP-5
2402 2403 Low Noise, UHF/VHF amp 20 15 0.025 0.2 90/50 5GHz SOT-23
- 2401 RF Stages in FM Front-Ends 30 30 0.025 0.3 - 450 SOT-23
2404 2405 Darlington 40 30 0.3 0.35 4000 min 220 SOT-23
2414 2415 Digital with 2 Built-in Bias 10k
Resistors 50 50 0.1 0.2 50 min 250 SOT-23
2416 2417 Digital with 2 Built-in Bais 22k
Resistors 50 50 0.1 0.2 50 min 250 SOT-23
2418 2419 Digital with 2 Built-in Bias 47k
Resistors 50 50 0.1 0.2 50 min 250 SOT-23
2406 2407 General Purpose Amp 75/60 40/60 0.6 0.35 100 min 300 min/200
min
SOT-23
2408 2409 Low Noise, Driver, Output 80 65 0.1 0.2 125 min/220
min 300/150 SOT-23
2410 2411 HV Amp/Dr 160 140/150 0.6/0.5 0.3/0.35 80 min/60 min 100 min SOT-23
2412 2413 General Purpose HV Amp 300 300 (CER) 0.05 0.31 50 min 60 min SOT-23
2345 2346 Dalington Power Amp 120 120 3 30 750 min - SOT-82
2426 2427 Darlington Switch 90 80 (CER) 0.5 1 2000 min - SOT-89
2428 2429 General Purpose Amp, SW 90 80 1 1 100 min 100 min SOT-89
2430 2431 HV Amp/Sw 400/350 350/300 1 1 30 min 15 min SOT-89
29 30 High Current Switch 80 80 50 300 25 2 TO3
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
Package
Style/Dia.
Number
PD hFE fT
Typical
Forward
Current Gain
Typical
Freq
(MHZ)
IC
Silicone Transistor Selector Guide
(cont.)
*Tc=25ºC
Max.
Collector
Current
(Amps)
Max.
Collector
Diss. (Watts)
R245 SIP-5 SOT-23 SOT-82 SOT-89 TO3
Page 26-26
Semiconductors
243 244 Darlington Power Amp 80 80 8 150 2500 - TO3
245 246 Darlington Power Amp 80 80 10 150 4000 - TO3
247 248 Darlington Power Amp 100 100 12 150 3000 - TO3
249 250 Darlington Power Amp 100 100 16 150 4000 - TO3
251 252 Darlington Power Amp 100 100 20 160 2500 - TO3
130 219 Power Amp, Gen Purpose 100 70 (CER) 15 115 20 min 2.5 min TO3
181 180 High Power Audio Amp 100 100 (CER) 30 200 25 min 2 min TO3
2349 2350 High Current Darlington 120 120 50 300 2000 min - TO3
60 61 High Power Audio Amp 140 140 20 250 150 max 2 min TO3
280 281 Audio Power Amp 150 150 12 100 70 5/6 TO3
328 - Power Amp, Switch 150 130 (CER) 15 140 12 min 60 min TO3
284 285 Audio Amp Output 180 180 16 150 70 6 TO3
327 - Power Amp, Switch 180 150 25 200 30 min 40 min TO3
387 - Power Amp, Switch 180 150 50 250 80 30 min TO3
87 88 High Power AF, Switch 250 250 (CEX) 10 200 20 min. - TO3
94 - High Voltage Switch 300 300 5 100 40 2.5 min TO3
388 68 Power Amp, Gen Purpose 400 250 16 250 30/35 4 min TO3
162 - TV Vert Deflection 500 300 10 Peak 100 20 min. - TO3
97 - HV Darlington Pwr Amp, Fast Sw 500 400 10 150 40 min - TO3
385 - Audio Power Amp, Switch 550 350 10 150 17 - TO3
99 - HV Darlington Pwr Amp, Fast Sw 600 400 50 250 25 min - TO3
98 - HV Darlington Pwr Amp, Fast Sw 700 500 20 175 40 min - TO3
163A - TV Horiz Deflection 700 700 (CEV) 6 100 10 min - TO3
Silicone Transistor Selector Guide
(cont.)
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
Package
Style/Dia.
Number
PD hFE fT
Typical
Forward
Current Gain
Typical
Freq
(MHZ)
IC
TO3
*Tc=25ºC
Max.
Collector
Current
(Amps)
Max.
Collector
Diss. (Watts)
Page 26-27
Semiconductors
52 - High Vltg, High Speed Sw 750 450 5 125 17 - TO3
386 - Audio Power Amp, Switch 800 500 20 175 20 - TO3
283 - Horiz Output, Switch 800 325 10 100 10 min 6 TO3
53 - High Vltg, High Speed, Sw 850 400 15 175 25 6 min TO3
2319 - High Vltg, High Speed, Sw 850
(CES) 450 15 Cont 175 5 min - TO3
89 - Horiz Output with Internal
Damper Diode 1500 600 7 50 8 min - TO3
164 - TV Vertical Output 1500 700 (CER) 1 50 30 min 3 TO3
389 - Horizontal Output 1500 1500
(CER) 4 100 10 min 4 min TO3
165 - TV Horizontal Output 1500 1400
(CES) 6 50 8 min 3 TO3
238 - TV Horizontal Output 1500 1500
(CEX) 8 100 8 - TO3
62 - Very High Vltg Horiz Output 2500 900 3 50 7 - TO3
2330 - High Gain Amp, with Internal
Zener Diode
55+15-
10 55+15-10 4 80 1000 - TO3P
2335 - Darlington with Internal Zener
Diode for Line Operated TV 60±15 60±15 5 80 2000 min - TO3P
2304 2314 High Current, Speed Switch 60 50 15 90 100 Min/ 70
Min 20 TO3P
214 - Darlington Driver 70 60 10 60* 5000 20 TO3P
215 - Darlington Driver 110 100 8 60* 4000 20 TO3P
36 37 Audio Power Amp 160 140 12 100 100 15 TO3P
Silicone Transistor Selector Guide
(cont.)
TO3P
NPN PNP
NTE Type
Number
Application
BVCBO BVCEO
Maximum Breakdown
Voltage (Volts)
Package
Style/Dia.
Number
PD hFE fT
Typical
Forward
Current Gain
Typical
Freq
(MHZ)
IC
Max. Collector
Current
(Amps)
Max. Collector
Diss. (Watts)
*Tc=25ºC
TO3
Page 26-28
Semiconductors
2307 - High Gain, Power Amp 200 180 5 80 500 Min - TO3P
2308 - High Voltage/Current Switch 500 400 12 100* 15 Min 20 TO3P
2309 - High Voltage/Speed Switch 900 800 6 100 10 min 15 TO3P
2348 - High Voltage/Speed Switch 1100 800 12 150 10 min 15 TO3P
2302 - High Voltage Output with Internal Damper
diode 1500 800 5 120 8 min 3 TO3P
2354 - High Vltg, Horiz Output for High Definition
CRT 1500 800 10 150* 8 min - TO3P
2353 - Color TV Horiz Deflection with Damper
Diode 1500 800 10 70* 5 min - TO3PML
2324 - High Voltage Switch 1500 800 8 70* 8 min - TO3PML
2331 - TV Horiz Deflection with Damper Diode 1500 800 6 60 8 min - TO3PML
16007 - Med Power Gen Purp 100 100
(CEV) 3 25 35 min 1.25 TO8
- 106 Amp, OSC, FM Mixer 35 15 0.05 0.35 50 min 650 min TO18
123A 159M General Purpose Amp 75/60 40/60 0.8/0.6 0.4 200/100 min 300/200
min TO18
278 - RF Amp, Broad Band 40 20 0.4 3.5 40 min 1400 TO39
346 - RF Driver, Predriver 40 20 0.4 1 10 min 500 min TO39
77 - Broad Band, CATV 50 30 0.4 3.5 30 min 1500 TO39
311 - Driver, VHF/UHF OSC 55 30 0.4 5 25 min 800 min TO39
329 - RF Power Amp - 30 1.5 Peak 5 - - TO39
195A - RF Pwr Amp, Driver 70 70 (CER) 1.5 8 30 min 150 TO39
123 - Amp, Gen Purpose 75 40 0.8 0.8 200 300 min TO39
Silicone Transistor Selector Guide
(cont.)
NPN PNP
NTE Type
Number
Application
BVCB
O
BVCEO
Maximum
Breakdown
Voltage (Volts)
Package
Style/Diagr
am
Number
IC PD hFE fT
Typical
Forward
Current
Gain
Typical
Freq
(MHZ)
Max.
Collector
Current
(Amps)
Max.
Collector
Diss. (Watts)
*Tc=25ºC
TO3P TO3PML TO8 TO18
Page 26-29
Semiconductors
282 - Final RF Powr Amp, Sw 100 60 4 10* 100 140 TO39
16005 16004 High Current Gen Purpose 100 75 2 10 30 min - TO39
128 129 Amp, Gen Purpose 120/90 80 1 1 90 min 100/150 min TO39
2347 - Med Power Gen Purp 120 80 5 4 40 min - TO39
324 323 Amp, Gen Purpose 120 100 1.5 0.8 90/80 20 min TO39
154 - High Vltg Video Output 300 300 0.2 1 100 80 TO39
396 397 Pwr Amp, High Vltg 450
350
350
300 1 10 40 min/30 min 15 min TO39
224 - Final RF Pwer Output 60 60 (CEV) 2 10 60 200 TO39 with Flange
225 - High Speed Sw Linear Amp 450 350 1 10 40 min 15 TO39 with Flange
237 - Final RF Pwr Out 80 40 3 Pulse 10 50 250 TO39HS
74 - Amp, Gen Purpose, Switch 100 100 7 60 60 min 30 TO59
96 - Switching Power Transistor 100 100 7 60 60 min 30 min TO59
95 - High Vltg, Switch Isolated Stud 250 250 3 40 90 min 40 TO59
2320 2320 Quad Gen Purp Sw Amp 60 30 0.5 0.65/Unit 1.25
total 100 min 350 14-Lead DIP
2321 - Quad Gen Purpose 60 40 0.5 0.65/Unit 1.25
total 100 min 350 14-Lead DIP
- 2322 Quad Gen Purpose 60 40 0.6 0.65/Unit 1.25
total 100 min 350 14-Lead DIP
2323 - Quad High Vltg Gen Purpose Amp 200 200 0.5 0.75/Unit 1.7
total 80 80 14-Lead DIP
Silicone Transistor Selector Guide
(cont.)
NPN PNP
NTE Type
Number
Application
BVCB
O
BVCE
O
Maximum
Breakdown
Voltage
(Volts)
Package
Style/Diagram
Number
IC PD hFE fT
Typical
Forward
Current
Gain
Typical
Freq
(MHZ)
*Tc=25ºC
Max.
Collector
Current
(Amps)
Max.
Collector
Diss.
(Watts)
TO39 TO39 w/Flange TO39HS TO59 14-Lead Dip
Page 26-30
Semiconductors
58 59 High Pwr Audio Output 200 200 17 200 30 min 20
92 93 Hi-Fi Pwr Amp, Audio Output 200 200 15 150 120 20
63 - High gain, Low Noise, Wide Band, Small Signal Amp 20 12 0.04 0.4 40 5GHz
64 - UHF/Microwave Amp/Hi Speed Sw 25 15 0.03 0.375 80 4.5GHz
313 - VHF Mixer and UHF/RF Amp, High Gain Low Noise 30 30 0.02 0.15 60 530
2363 2364 High Current Gen Purp Amp 60 50 2 1 200 min 150
315 - Medium Power Audio Amp 100 50 1 0.75 199 min -
344 - RF Power Output 35 17 7 50 50 -
65 - High Vltg, Low Noise for CATV, MATV 20 15 0.025 0.18 70 6GHz
26 - Low Noise Audio Amp 120 120 0.1 0.2 350 min 100
2355 2356 Digital with 2 Built-in Bias 10k Resistors 50 50 0.1 0.3 50 min 250
2357 2358 Digital with 2 Built-in Bias 22k Resistors 50 50 0.1 0.3 50 min 250
2359 2360 Digital with 2 Built-in Bias 47k Resistors 50 50 0.1 0.3 50 min 250
2367 2368 Digital with 2 Built-in Bias 4.7k Resistors 50 50 0.1 0.3/0.2 30 min 250/200
2369 2370 Digital with 2 Built-in Bias 4.7k/47k Resistors 50 50 0.1 0.3/0.2 80 min 250/200
2361 2362 High Speed Switch 60 50 0.5 0.3 200 min 300/200
13 - Low Vlt Output Amp 25 20 0.5 0.6 400 min 200
16006 - AF Amp 20 20 0.7 1 1000 min -
16001 - Video IF Amp 45 35 0.05 0.6 50 500
NPN PNP
NTE Type
Number
Application
BVCB
O
BVCE
O
Maximum
Breakdown
Voltage
(Volts)
Package Type
IC PD hFE fT
Typical
Forward
Current
Gain
Typical
Freq
(MHZ)
*Tc=25ºC
Max.
Collector
Current
(Amps)
Max.
Collector
Diss.
(Watts)
Silicone Transistor Selector Guide
(cont.)
Page 26-31
Semiconductors
50 5800 5830 5850 - 5870 - 5940 5892 5912 - 5980
50 - 5831* 5851* - 5871* - 5941* 5893* 5913* - 5981*
100 5801 5832 5852 5812 5872 - 5942 5894 5914 - 5982
100 - 5833* 5853* - 5873* - 5943* 5895* 5915* - 5893*
200 5802 5834 5854 - 5874 - 5944 5896 5916 - 5986
200 - 5835* 5855* - 5875* - 5945* 5897* 5917* - 5987*
300 5803 5836 5856 - 5876 - 5946 5898 5918 - 5988
300 - 5837* 5857* - 5877* - 5947* 5899* 5919* - 5989*
400 5804 5838 5858 5814 5878 - 5948 5900 5920 5962 5990
400 - 5839* 5859* - 5879* - 5949* 5901* 5921* 5963* 5991*
500 5805 5840 5860 - 5880 - 5950 5902 5922 - 5992
500 - 5841* 5861* - 5881* - 5951* 5903* 5923* - 5993*
600 5806 5842 5862 5815 5882 6013 5952 5904 5924 - 5994
600 - 5843* 5863* - 5883* - 5953* 5905* 5925* - 5995*
IFSM 200A 40A 150A 400A 250A 300A 250A 300A 400A 300A 500A
VF @ IF
1.2V max
0.9V Typ
1.1V Max
0.9V Typ
1.1V Max
0.9V Typ
0.9V Max
0.8V Typ
1.2V Max
1V TyP
1.6V Max
1V Typ
1.5V Max
1.1V Typ
1.2V Max
0.9V Typ
1.5V Max
1.1V Typ
107V Max
1V Typ
1.2V Max
1V Typ
TC @ IF (ºC) +105 (TL) +150 +150 +60 +150 - +150 +150 +150 +100 +150
Mtg Torque
inlb (mN) - 20 (2.22) 20 (2.22) - 20 92.22) - 30 (3.33) 20 (2.22) 20 (2.22) - 30 (3.33)
Thread Size - 10-32
NF-2A
10-32
NF-2A - 10-34
NF-2A - 1/4-28
UNF-2A
10-32
NF-2A
10-32
NF-2A - 1/4-28
UNF-2A
Industrial Rectifiers
Package
Type
Case Style Axial Lead TO220 DO5
PRV
Volts
Maximum Average Rectified Forward Current IF in Amperes
3A 6A 12A 12.7A 15A 16A 25A 40A
DO27 DO4 DO4
20A
DO4 Press Fit DO5
Page 26-32
Semiconductors
800 5808 5846 5866 - 5886 - - 5908 5928 5966 5998
800 - 5847* 5867* - 5887* - - 5909* 5929* 5967* 5999*
1000 5809 5848 5868 5817 5890 - - 5910 5932 - 6002
1000 - 5849* 5869* - 5891* - - 5911* 5933* - 6003*
IFSM 200A 40A 150A 400A 250A 300A 250A 300A 400A 300A 500A
VF @ IF
1.2V max
0.9V Typ
1.1V Max
0.9V Typ
1.1V Max
0.9V Typ
0.9V Max
0.8V Typ
1.2V Max
1V TyP
1.6V Max
1V Typ
1.5V Max
1.1V Typ
1.2V Max
0.9V Typ
1.5V Max
1.1V Typ
107V Max
1V Typ
1.2V Max
1V Typ
TC @ IF (ºC) +105 (TL) +150 +150 +60 +150 - +150 +150 +150 +100 +150
Mtg Torque
inlb (mN) - 20 (2.22) 20 (2.22) - 20 92.22) - 30 (3.33) 20 (2.22) 20 (2.22) - 30 (3.33)
Thread Size - 10-32
NF-2A
10-32
NF-2A - 10-34
NF-2A - 1/4-28
UNF-2A
10-32
NF-2A
10-32
NF-2A - 1/4-28
UNF-2A
Industrial Rectifiers
(cont.)
PRV
Volts
Maximum Average Rectified Forward Current IF in Amperes
3A 6A 12A 12.7A 15A 16A 20A 25A 40A
Package
Type
Case Style DO27 DO4 Axial Lead DO4 TO220 DO5 DO4 Press Fit DO5
Not only do we have local experts, but Edge members have
hundreds of specially trained professionals on staff who are experts
in providing answers and prompt solutions to all
your product needs.
Page 26-33
Semiconductors
PRV 1A 1.5A 2A 4A 4A 6A 8A 25A 40A 80A 100A
100 - - NTE166 - - - NTE5312 - - - -
200 - - NTE167 NTE5309 NTE5318 NTE5329 NTE5313 NTE5322 NTE5340 - -
400 - NTE5304 NTE168 - - - NTE5314 NTE5324 - - -
600 NTE5332 NTE5305 NTE169 NTE5310 NTE5319 NTE5330 NTE5315 NTE5326 NTE5342 NTE5346 NTE5348
800 - NTE5306 - - - - NTE5316 NTE5327 - - -
1000 NTE5334 NTE5307 NTE170 NTE5311 NTE5320 NTE5331 NTE5317 NTE5328 NTE5344 - -
IFSM
(AMP) 25 50 60 20 200 200 200 300 300 1000 1000
VF @ IF 1.2V @ 1A 1V @ 1A 1V @1A 1V @ 3A 1V @ 3A 1V @ 3A 1.1V @4A 1.2V @12.5A 1.2V @ 20A 1.3V @80A 1.3V @100A
Max
TA @ IF
ºC
+40 +30 +55 +50 +50 +50 +50 +55 +55 +150 +150
Single Phase Bridge Rectifiers
IF Averaged Rectified Forward Current
Maximum Average Rectified Current @ Half - Wave Resistive Load 60HZ
Package
Type
PRV
Volts
No part of this catalog may be reproduced without the express
written permission of Edge, Inc.
Page 26-34
Semiconductors
25 - - - NTE5600 - - - -
50 - - - NTE5601 - - - NTE5661
100 - NTE5640 NTE560 NTE5602 - - - -
200 NTE5655 NTE5641 NTE5651 NTE5603 - - - -
300 - - - NTE5604 - - - -
400 NTE5656 NTE5642 NTE5652 NTE5605 NTE5629 NTE5608 NTE5638 -
500 - - - NTE5606 - - - -
600 NTE5657 NTE5643 NTE5653 NTE5607 - NTE5609 - -
800 - - - - - NTE5610 NTE5620 -
IGT (mA) 5 Max 25/40 Max 3 Max 30 Max 3 Max 10 Max 10 Max 50/75 Max
VGT (V) 2 Max 2.2 Max 2.2 Max 2.5 Max 2 Max 2.5 Max 2 Max 2 Max
VFDN (V) 1.5 Max 1.8 Max 2.2Max 2 Max 1.6 Max 1.5 Max 1.6 Max 2 Max
ISURGE (A) 8 Max 25 Max 25 Max 30 Max 40 Max 80 Max 80 Max 100 Max
IHOLD (Ma) 20 Max 35 Max 5 Max 30 Max 5 Max 15 Max 15 Max 50 Max
Firing Quads ALL ALL ALL ALL ALL ALL ALL ALL
Triacs
VRRM
Dc or Pk
Volts
IT RMS Maximum Forward Current
0.8A 2.5A 4A 8A 10A
Package
Type
Package TO92 TO5 TO126 TO202 TO220 TO220 Full Pack TO64**
Page 26-35
Semiconductors
25 NTE5611 NTE5621 - - - - - NTE5680 - -
50 NTE5612 NTE5622 NTE5631 - - - - NTE5681 - -
100 NTE5613 NTE5623 NTE5632 - - - - MTE5682 - -
200 - - NTE5633 - NTE5673 NTE56004 - NTE5683 NTE56019 NTE56015
300 NTE5615 - NTE5634 - - - - NTE5684 - -
400 - - NTE5635 - NTE5675 NTE56006 - NTE5685 NTE56020 NTE56016
500 - - NTE5636 - NTE5676 - - NTE5686 - -
600 NTE5618 - NTE5637 NTE5645 NTE5677 NTE56008 - NTE5687 - NTE56017
800 - - - - - NTE56010 NTE5671 - - NTE56018
IGT (mA) 50/75 Max 50 Max 50 Max 25/50 Max 50/80 Max 40/75 Max 50/75 Max 75/100 Max 80 Max 50/100 Max
VGT (V) 2.5 Max 2 Max 2.5 Max 2.5 Max 2.5 Max 2.5 Max 2.5 Max 2.5 Max 2.5 Max 2.5 Max
VFON (V) 1.8 Max 1.8 Max 1.65 Max 1.6 Max 2.2 Max 1.6 Max 1.7 Max 1.8 Max 1.8 Max 1.8 Max
ISURGE (A) 100 Max 100 Max 100 Max 110 Max 150 Max 150 Max 150 Max 250 Max 250 Max 180 Max
IHOLD (Ma) 50 Max 50 Max 50 Max 50 Max 60 Max 40 Max 40 Max 80 Max 100 Max 50 Max
Firing Quads ALL I, II I, II, III ALL ALL ALL ALL ALL I, II, III ALL
Triacs
(cont.)
VRRM
Dc or Pk
Volts
IT RMS Maximum Forward Current
10A 15A 20A 25A
Package
Type
Package TO127 TO220 TO220
Full Pack
TO220
Isolated
TO48**
1/4-28
UNF-2A
TO220 TO48**
1/4-28
UNF-2A
TO220
Isolated
TO220
Page 26-36
Semiconductors
Package Type
Case Style TO92 TO5 TO126 TO202 TO64 TO66 TO5 TO220 TO127 TO220
Full Pack
TO64 TO220
25 NTE5480
30 NTE5400 NTE5411 NTE5452
50 NTE5453 NTE570 NTE5442 NTE5481 NTE5461
60 NTE5401 NTE5412
100 NTE5402 NTE5413 NTE5454 NTE5471 NTE5482 NTE5461
150 NTE5403
200 NTE5404 NTE5408 NTE5414 NTE5455 NTE5472 NTE5511 NTE5427 NTE5483 NTE5463
250
300 NTE5456 NTE5473 NTE5484
400 NTE5405 NTE5408 NTE5415 NTE5457 NTE5474 NTE5512 NTE5428 NTE5437 NTE5485 NTE5465
500 NTE5475 NTE5486
600 NTE5406 NTE5410 NTE5416 NTE5458 NTE5476 NTE5413 NTE5429 NTE5438 NTE5448 NTE5487 NTE5466
700
800 NTE5440 NTE5468
1200
IGT MAX 200 NA# 1mA# 200 NA# 200 NA# 10mA 15mA 25mA 200 NA# 30mA 30mA 15mA 15mA
VGT MAX (V) 0.8 1.0 1.0 1.5 1.5 2.0 1.5 0.08 1.5 1.5 1.5 1.5
IHOLD
MAX(ma) 5 10 5 3 25 20 50 3 40 30 20 20
VF(ON)(V) 1.7 1.2 2.0 2.2 2.0 2.8 2.6 1.6 1.5 2.0 1.75 2.0
Silicon Controlled Rectifiers
Dc or Pk
Volts
VDRM
IT RMS Maximum Forward Current (All Conducting Angles
4A
Sensitive Gate
0.8A
Sensitive
Gate
3A
Sensitive
Gate
5A 7A 8A
Sensitive
Gate
8A 10A
NTE5409
NTE5462
NTE5470
Page 26-37
Semiconductors
25 - - - - NTE5500 - NTE5520 - - - - -
30 - - - - - - - - - - - -
50 - - - - NTE5501 - NTE5521 NTE5550 - NTE5541 - -
100 - - NTE5491 - NTE5502 - NTE5522 - - NTE5542 - -
150 - - - - NTE5503 - NTE5523 - - - - -
200 NTE5417 - NTE5492 - NTE5504 NTE5514 NTE5524 NTE5552 NTE5543 NTE5517 NTE5-
562
250 - - - - NTE5505 - NTE5525 - - - - -
300 - - - - NTE5506 - NTE5526 - - NTE5544 - -
400 NTE5418 NTE5426 NTE5494 NTE314 NTE5507 NTE5515 NTE5527 NTE5554 - NTE5545 NTE5518 NTE5-
564
IGT MAX 15mA 200NA 15mA 40mA 30mA 15mA 40mA 30mA 40mA 30mA 30mA 30mA
VGT MAX 1.5 0.8 2 2 1.5 2 3 1.5 1.5 2 2 2
IHOLD MAX 30 3 20 50 40 20 50 40 40 50 50 50
VF(ON) 1.6 1.6 2.5 1.8 1.6 2.4 2 1.6 1.8 1.6 1.6 1.6
ISURGE(A) 100 100 100 200 150 200 150 300 300 300 300 300
VGFM(V) - - 10 - 10 10 10 - - 10 10 10
GRM(V) - - 10 - 5 5 5 - - 10 10 10
Mtg Torque - - 30(3.33) - 30(3.33) - 30(3.33) - - 30(3.33) - 30(3.3-
3)
Thread Size - - 1/4-28
UNF-2A - 1/4-28
UNF-2A - 1/4-28
UNF-2A - - 1/4-28
UNF-2A -
1/4-28
UNF-2-
A
Silicon Controlled Rectifiers
(cont.)
Dc or Pk
Volts+
VDRM
IT RMS Maximum Forward Current (All Conducting Angles
10A 10A 10A
Sensitive
Gate
12.5A 16A 20A 25A 35A 35A
Package
Type
Case Style TO220
Isolated
TO48 TO3 TO48 1/2”
Press Fit
TO48 TO220 TO220
Full Pack
TO48 1/2”
Press Fit
TO48
Isol Stud
Page 26-38
Semiconductors
500 - - - - NTE5508 - NTE5528 - - NTE5546 - -
600 NTE5419 NTE5496 - NTE5509 NTE5516 NTE5529 NTE5556 - NTE5547 NTE5-
519 NTE5566
700 - - - - - - NTE5530 - - - - -
800 - - - - - - NTE5531 NTE5558 NTE5460 NTE5548 - -
1200 - - - - - - - - - - - -
IGT MAX 15mA 200A 15mA 40mA 30mA 15mA 40mA 30mA 40mA 30mA 30mA 30mA
VGT MAX 1.5 0.8 2 2 1.5 2 3 1.5 1.5 2 2 2
IHOLD MAX 30 3 20 50 40 20 50 40 40 50 50 50
VF(ON) 1.6 1.6 2.5 1.8 1.6 2.4 .2 1.6 1.8 1.6 1.6 1.6
ISURGE(A) 100 100 100 200 150 200 150 300 300 300 300 300
VGFM(V) - - 10 - 10 10 10 - - 10 10 10
GRM(V) - - 10 - 50 5 5 - - 10 10 10
Mtg Torque - - 30(3.33) - 30 (3.33) - 30 (3.33) - - 30 93.33) - 30 (3.33)
Thread Size - - 1/4-28
UNF-2A - 1/4-28
UNF-28 - 1/4-28
UNF-28 - - 1/4-28
UNF-28 - 1/4-28
UNF-28
Silicon Controlled Rectifiers
(cont.)
Dc or Pk
Volts+
VDRM
IT RMS Maximum Forward Current (All Conducting Angles
10A 10A 10A
Sensitive
Gate
12.5A 16A 20A 25A 35A 35A
Package
Type
Case Style TO220
Isolated
TO48 TO3 TO48 1/2”
Press Fit
TO48 TO220 TO220
Full Pack
TO48 1/2”
Press Fit
TO48
Isol Stud
Page 26-39
Semiconductors
200 - - - - NTE5567 NTE5570 NTE5575 NTE5580 NTE5590 - NTE5594 -
250 - - - - - - - - - - - -
300 - - - - - - - - - - - -
400 - - - NTE5539 - - - - - - - -
500 - - - - - - - - - - - -
600 NTE5534A - - - NTE5568 NTE5572 NTE5577 NTE5582 NTE5591 NTE5587 NTE5595 NTE5598
700 - - - - - - - - - - - -
800 - NTE5536 NTE5538 NTE5540 - - - - - - - -
1200 - - - - NTE5569 NTE5574 NTE5579 NTE5584 NTE5592 NTE5589 NTE5596 NTE5599
IGT Max 80mA 50mA 80mA 40mA 100mA 150mA 150mA 150mA 150mA 150mA 150mA 200mA
VGT
Max 1.5 1.5 3 1.5 2.5 3 3 3 3 3 3 3
IHOLD
Max 150 60 150 60 200 - - - - - - -
VF(ON) 2.0 1.6 2 1.8 1.6 1.95 2.2 1.5 1.55 1.4 1.4 1.35
ISURGE
(A) 525 400 525 650 1255 1800 1600 5500 5500 10,000 10,000 27,000
VGFM
(V) - - 15 - 20 4 - 4 5 5 5 5
VGRM
(V) - - 5 - 5 5 5 5 5 5 5 5
Mtg
Torque - - - - 30 (3.33) 130
(14.46)
130
(14.46)
360
(40.06)
1400 Lbs
(6.2 KN)
360
(40.06)
2400 LBS
(10.7KN)
5500 Lbs
(24.5KN)
Thread
Size - - - - 1/4-28 1/2-20 1/2-20 3/4-16 - 3/4-16 - -
Silicon Controlled Rectifiers (For Phase Control Applications)
DC or Pk
Volts
VDRM
IT RMS Maximum Forward Current Amps (All Conducting Angles)
40A 50A 55A 80A 125A 275A 470A 550A 850A 1800A
Package
Type
Case
Style
TO3 Isolated
Flange
TO218
Isolated
TO220 TO218 TO65 TO94 TO83 TO93 Hockey
Puck 1.65”
Dia
TO118 Hockey
Puck 2.3”
Dia
Hockey
Puck 2.9”
Dia
Page 26-40
Semiconductors
600 5351 5360 5368 5371 5374 5380 5377 5386
1200 5369 5372 5375 5381 5378 5387
IGT Max 50mA 180mA 150mA 150mA 150mA 150mA 150mA 150mA
VGT Max (V) 2 3 3 3 3 3 3 3
IHOLDMax (mA) 100 150 - - - - - -
VF(on) Max (V) 2.06 2.05 3.2 3.3 1.85 1.85 1.45 1.45
ISURGE (A) 90 180 1400 1400 4500 4500 8000 8000
"Repetitive di/dt
Amps/us Max" - - 150 150 300 300 400 400
"Non-Repetitive
di/dt Amps/ns
Max"
500 400 800 800 800 800 500 800
dv/dt Volts/μs Max 400 (Typ) 200 200 200 300 300 300 300
Turn-Off tq/μs Max 2.9 (Typ) 10 10 10 10 15 25 25
"Mounting Torque
in.lb (m.N)" - 30 (3.33) 130 (14.46) 130 (14.46) 360 (40.06) 1400 lbs
(6.2 kN) 360 (40.06) 2400 lbs
(10.7 kN)
Thread Size - 1/4-28
UNF-2A
1/2-20
UNF-2A
1/2-20
UNF-2A
3/4-16
UNF-2A - 3/4-16
UNF-2A -
DC or Pk Volts
VDRM
IT RMS Maximum Forward Current Amps (All Conducting Angles)
5A 35A 125A 275A 400A 475A 700A
Package
Type
Case Style TO66 TO83 TO94 Hockey
Puck 1.65”
Dia
TO118 Hockey
Puck 2.3”
Dia
TO48 TO93
Silicon Controlled Rectifiers (For High Speed Switching)
Cross Reference NTE Semiconductors at:
http://nte01.nteinc.com/nte/NTExRefSemiProd.nsf/$$Search?OpenForm
Page 26-41
Semiconductors
1V010 8.5mm 10 12 0.8 250 18 45 0.25
2V010 16mm 10 12 3.5 1000 18 45 0.60
1V014 8.5mm 14 18 1.2 250 22 55 0.25
2V014 16mm 14 18 4.0 1000 22 55 0.60
1V015 8.5mm 15 20 1.0 250 24 52 0.25
2V015 16mm 15 20 4.5 1000 24 48 0.60
1V017 8.5mm 17 22 1.3 250 27 60 0.25
2V017 16mm 17 22 5.0 1000 27 60 0.60
1V020 8.5mm 20 26 1.5 250 33 70 0.25
2V020 16mm 20 26 6.0 1000 33 70 0.60
1V025 8.5mm 25 31 1.7 250 39 80 0.25
2V025 16mm 25 31 7.0 1000 39 80 0.60
1V030 8.5mm 30 38 2.3 250 47 95 0.25
230 Deflection Circuit of TV 700 8 90 2 50 1.8 100 - TO66
231 Deflection Circuit of TV 600 8 90 2 50 3.8 100 - TO66
314 Power Regulating Switch 400 12.5 200 2 40 20 Typ 50 5 TO3
Metal Oxide Varistor
TO66
Silicon Controlled Rectifiers (For High Speed Switching Applications)
TO3
NTE
Type
Number
VDRM
Description and Application
ITRMS ITSM
Package
Style/Diag.
Number
Repetitive
Peak
Forward
Off-State
Voltage (V)
RMS On-
State
Current
(Amps)
Peak
Forward
Surge
Current
(Amps)
Maximum Ratings
Gate
Trigger
Voltage
(Volts)
Gate
Trigger
Current
(mA)
VGT IGT
Turn-Off
Time
(μs)
toff
Holding
Current
(mA)
IHOLD
Typical
Reverse
Recovery
Time
(μs)
trr
NTE
Type
Number
Vm (AC)
Case Diameter
WTM
RMS Voltage
(Volts)
DC Voltage
(Volts)
Energy
(10/1000μs)
(Joules)
Maximum Ratings (TA=25ºC)
Peak Current
(8/20μs)
(Amps)
ITM
Nom. Varistor
Volt.@1 mA DC
Test Current (V)
VNOM
Max. Clamping
Volt.,Vc @Test
Current (8/20μs)(V)
Vm (DC) VCL PD
Continuous Transient
Characteristics
Transient Pwr.
Dissipation
(Watts)
Page 26-42
Semiconductors
2V030 16mm 30 38 8.5 1000 47 95 0.60
1V035 8.5mm 35 45 2.7 250 56 110 0.25
2V035 16mm 35 45 10.0 1000 56 110 0.60
1V040 8.5mm 43 55 3.2 250 68 135 0.25
2V040 16mm 43 55 13.0 1000 68 135 0.60
1V050 8.5mm 52 6 4.0 250 82 150 0.25
2V050 16mm 52 66 14.0 1000 82 150 0.60
1V060 8.5mm 63 80 6.0 1200 100 175 0.25
2V060 16mm 63 80 18.0 4500 100 175 0.60
1V075 8.5mm 75 95 5.0 1200 120 205 0.25
2V075 16mm 75 95 21.0 4500 120 205 0.60
1V095 8.5mm 95 125 7.0 1200 150 250 0.25
2V095 16mm 95 125 29.0 4500 150 250 0.60
1V115 8.5mm 115 150 10.0 1200 171 295 0.25
2V115 16mm 115 150 35.0 4500 171 300 0.60
1V130 8.5mm 135 180 10.0 1200 216 355 0.25
524V13 23mm 135 180 72.0 6500 216 355 1.00
1V150 8.5mm 160 210 10.0 1200 240 410 0.25
2V150 16mm 160 210 40.0 4500 240 410 0.60
524V15 23mm 160 210 80.0 6500 240 410 1.00
1V175 8.5mm 170 225 12.0 1200 270 450 0.25
524V17 23mm 170 225 90.0 6500 270 450 1.00
1V250 8.5mm 240 320 20.0 1200 390 630 0.25
2V250 16mm 240 320 70.0 4500 390 630 0.60
524V25 23mm 240 320 129.0 6500 390 630 1.00
1V275 8.5mm 260 330 20.0 1200 430 685 0.25
2V275 16mm 260 330 72.0 4500 430 685 0.60
524V27 23mm 260 330 135.0 6500 430 685 1.00
Metal Oxide Varistor
(cont.)
NTE
Type
Number
Vm (AC)
Case Diameter
WTM
RMS Voltage
(Volts)
DC Voltage
(Volts)
Energy
(10/1000μs)
(Joules)
Maximum Ratings (TA=25ºC)
Peak Current
(8/20μs)
(Amps)
ITM
Nom. Varistor
Volt.@1 mA DC
Test Current (V)
VNOM
Max. Clamping
Volt.,Vc @Test
Current
(8/20μs)(V)
Vm (DC) VCL PD
Continuous Transient
Characteristics
Transient Pwr.
Dissipation
(Watts)
Page 26-43
Semiconductors
IC Sockets (Stamp Pins)
Tin plated, stamped contacts. Pin spacing 0.1" (2.54mm).
Two different row widths. Narrow: A= 7.62mm (0.3"). Wide:
A= 15.20mm (0.6").
Multi Row Part #: SCS-38
Narrow (0.3") Part #’s: SCS-06, SCS-08, SCS-14, SCS-16, SCS-18, SCS-20,
SCS-22, SCS-24, SCS-28, SCS-34
Pin Sockets (Machined Pins)
Gold plated, 4 finger beryllium copper
contacts. Tin plated outer sleeve. Pin
spacing is 0.10" (2.54mm). Notched sides
for cleaner breaking.
Part #’s: HQ-1X16, HQ-1X20, HQ-1X30, HQ-1X40, HQ-2X30
Wire Wrap Pins Part #: HQA-1X40
IC Extractor Part #: SCS-IC-XTR
Dual Wipe Standard I.C. Sockets
30% glass filled polyester UL94V-0 insulator. Contacts are
phosphor bronze with 50 microinches hot tin
dip. Bulk.
Part Number Pins
39-008-0 8-position
39-014-0 14-position
39-016-0 16-position
39-018-0 18-position
39-024-0 24-position
39-028-0 28-position
39-020-0 20-position
39-032-0 32-position
Wide (0.6") Part #’s: SCL-24, SCL-32, SCL-28, SCL-40
Thru Holes Part #’s: PLCC-28, PLCC-32, PLCC-44, PLCC-52, PLCC-68, PLCC-
84
Tin Plated Contacts Part #: PLCC-28T
Chip Carriers
Gold plated contacts and solder post. Plastic leaded chip
carrier and surface mount chip carrier.
Surface Mount Part #’s: SMT-28 NT, SMT-32 NT, SMT-44 NT, SMT-52 NT, SMT-
68 NT, SMT-84 NT
Regular Part #’s: SQ-06, SQ-08, SQ-14, SQ-16, SQ-18, SQ-20, SQ-22,
SQ-24, SQ-24N, SQ-28, SQ-40
Wire Wrap Part #’s: SQA-06, SQA-08, SQA-14, SQA-16, SQA-18, SQA-20,
SQA-24, SQA-28, SQA-40
IC Socket (Machined Pins)
Gold plated, 4 finger beryllium copper contacts. Tin plated
outer sleeve. Pin spacing is 8-24 = 2.54mm x 7.62mm
(0.1" x 0.3") and 24-40 = 2.54mm x 15.24mm (0.1" x 0.6").
Machined Contact I.C. Sockets
94V-0 PBT insulator 15 micro inch gold plated contact area.
Part Number Type Pins
39-108-0 Bulk 8-position
39-114-0 Bulk 14-position
39-116-0 Bulk 16-position
39-140-0 Bulk 40-position
P.C. Board Mount Dip IC Sockets
Part Number Position
70-4608 8
70-4614 14
70-4616 16
70-4618 18
70-4620 20
70-4624 24
70-4628 28
70-4640 40
Features: 8, 14 ,16, 18, 20, 24, 28 and 40 contact available. Tin plated contact.
Industry standard spacing. Specification: Contact resistance: 30m ohm max. at
DC 100mA. Insulator resistance: 1000m ohm min. at DC 500V; Current rating: 1
amp dielectric withstanding. Voltage: AC 500V for one minute; Operating temperature:
-55°C to 105°C. Contact: Phosphor bronze. Housing: PBT and 30% glass
fiber (UL-94V-0).
39-040-0 40-position
© 2010 Microchip Technology Inc. DS51775B-page 1
Overview
The PIC32 USB Plug-In Module (PIM) demonstrates
the capabilities of PIC32MX460F512 and
PIC32MX795F512 microcontrollers using the Explorer
16 Development Board and the PICtail™ Plus Daughter
Boards. This PIM supports USB device, embedded
host, and On-The-Go (OTG) designs, when used in
conjunction with the Explorer 16 and the USB PICtail
Plus Daughter Board. The pinout for the PIC32 family
of USB On-The-Go microcontrollers varies slightly from
that of the General Purpose (GP) family.
Therefore, on the USB PIM (MA320002), signals from
the MCU are routed differently than those on the GP
PIM (MA320001). This routing is intended to maximize
the compatibility of the USB PIM with the Explorer 16
and its PICtail Plus daughter cards, therefore, some
signals have changed location. See Figure 1 and
Figure 3 for an overview of the PIM routing changes.
Refer the PIM schematics (see Figure 2 and Figure 4
and the PIC32MX4XX (DS61143) and PIC32MX5XX/
6XX/7XX (DS61156) family data sheets for additional
details.
FIGURE 1: USB PIM INTERCONNECT DIAGRAM FOR PIC32MX460F512 DEVICES
RA14/SCL1 (66)
*D-/RG3 (56)
*VBUS (54)
*USBID/RF3 (51)
RB8/AN8 (32)
*VBUSON/RB5 (20)
*D+/RG2 (57)
PIC32MX460F512 USB PICtail™ Plus
RG2/SCL1 (57)
D+
DVBUS
USBID
RA15/SDA1 (67) RA15 (67)
RG3/SDA1 (56)
RC4/*SDI1 (9) RC4 (9)
RF7/SDI1 (54)
RF8/*U1TX (53) U1TX/RF3 (51)
RE8/INT1 (18) RE8/INT1 (18)
RA14/INT3 (66)
(32)
[OVERCURRENT]
(96)
SHDN
Explorer 16
(95)
(89)
(90)
(1) (65)
(60)
(62)
(68)
(43)
(67)
J1/P1 P9/J4
RG15 (1) RD9 (69)
RB2/C2IN-/AN2 (23) RB5/C1IN+/AN5 (20)
RD9/SS1 (69) RB2/SS1 (23)
RD0/*SDO1 (72) RF8/SDO1 (53)
RD0 (72)
*VUSB (55) VDD
RG0 (90) NO CONNECT
RG1 (89) NO CONNECT
RG14 (95) NO CONNECT
RG12 (96) NO CONNECT
RD10/SCK1 (70) RD10 (70)
RF6/SCK1 (55)
RG13 (97) [PGOOD]
(97) (66)
RB6 (26) RB6 (26)
Explorer 16
USB PIM
RB0/CN2 (25)
J10
RB0 (25)
Legend:
*xxx - Pin function changed from the PIC32MX3XX family.
[xxx] - Pin function is optional, based on the USB PICtail™
Plus (xx) pin number.
Pins not listed are unchanged from the PIC32MX3XX family.
Revision History:
REVB: Initial release
REVC: Removed short between RB6 and RB8
REV1: Added Jumper J10 to allow CN2 to be used with PGOOD.
PIC32MX
PIC32 USB Plug-In Module for the
Explorer 16 Development Board
PIC32MX
DS51775B-page 2 © 2010 Microchip Technology Inc.
FIGURE 2: PIC32 USB PLUG-IN MODULE SCHEMATIC FOR PIC32MX460F512 DEVICES
U1
PIC32MX460F512L
© 2010 Microchip Technology Inc. DS51775B-page 3
PIC32MX
FIGURE 3: USB PIM INTERCONNECT DIAGRAM FOR PIC32MX795F512 DEVICES
RA14/SCL1 (66)
*D-/RG3 (56)
*VBUS (54)
*USBID/RF3 (51)
*RB8/AN8 (32)
*VBUSON/RB5 (20)
*D+/RG2 (57)
PIC32MX795F512 USB PICtail™ Plus
RG2/SCL1 (57)
D+
DVBUS
USBID
RA15/SDA1 (67) RA15 (67)
RG3/SDA1 (56)
RC4/*SDI1 (9) RC4 (9)
RF7/SDI1 (54)
RF8/*U1TX (53) U1TX/RF3 (51)
RE8/INT1 (18) RE8/INT1 (18)
RA14/INT3 (66)
(32)
[OVERCURRENT]
(96)
[SHDN]
Explorer 16
(95)
(89)
(90)
(1) (65)
(60)
(62)
(68)
(43)
(67)
J1/P1 P9/J4
RG15 (1) RD9 (69)
RB2/C2IN-/AN2 (23) RB5/C1IN+/AN5 (20)
RD9/SS1 (69) RB2/SS1 (23)
RD0/*SDO1 (72) RF8/SDO1 (53)
RD0 (72)
*VUSB (55) VDD
RG0/C2RX (90) NO CONNECT
RG1/C2TX (89) NO CONNECT
RG14 (95) NO CONNECT
RG12 (96) NO CONNECT
RD10/SCK1 (70) RD10 (70)
RF6/SCK1 (55)
*RG13 (97) [PGOOD]
(97) (66)
Explorer 16
USB PIM
RB0 (25)
J10
RB0 (25)
VCAP (85)
C6
10 μF
VCAP (85)
Legend:
*xxx - Pin function changed from the PIC32MX3XX family.
[xxx] - Pin function is optional, based on the USB PICtail™
Plus (xx) pin number.
Pins not listed are unchanged from the PIC32MX3XX family.
Revision History:
REV1: Initial release
PIC32MX
DS51775B-page 4 © 2010 Microchip Technology Inc.
FIGURE 4: PIC32 USB PLUG-IN MODULE SCHEMATIC FOR PIC32MX795F512 DEVICES
U1
PIC32MX795F512L
© 2010 Microchip Technology Inc. DS51775B-page 5
PIC32MX
REVISION HISTORY
Revision A (October 2008)
This is the original released version of the document.
Revision B (April 2010)
This revision includes the following updates:
• Revised the “Overview” section
• Updated Figure 1 and Figure 2
• Updated document to include information on the
PIC32MX795F512 device
• Added Figure 3 and Figure 4
PIC32MX
DS51775B-page 6 © 2010 Microchip Technology Inc.
NOTES:
© 2010 Microchip Technology Inc. DS51775B-page 7
Information contained in this publication regarding device
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WHETHER EXPRESS OR
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,
QUALITY, PERFORMANCE, MERCHANTABILITY OR
FITNESS FOR PURPOSE. Microchip disclaims all liability
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at
the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless Microchip from any and all damages, claims,
suits, or expenses resulting from such use. No licenses are
conveyed, implicitly or otherwise, under any Microchip
intellectual property rights.
Trademarks
The Microchip name and logo, the Microchip logo, dsPIC,
KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART,
PIC32 logo, rfPIC and UNI/O are registered trademarks of
Microchip Technology Incorporated in the U.S.A. and other
countries.
FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor,
MXDEV, MXLAB, SEEVAL and The Embedded Control
Solutions Company are registered trademarks of Microchip
Technology Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, CodeGuard,
dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial
Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified
logo, MPLIB, MPLINK, mTouch, Octopus, Omniscient Code
Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,
PICtail, REAL ICE, rfLAB, Select Mode, Total Endurance,
TSHARC, UniWinDriver, WiperLock and ZENA are
trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2010, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.
ISBN: 978-1-60932-123-9
Note the following details of the code protection feature on Microchip devices:
• Microchip products meet the specification contained in their particular Microchip Data Sheet.
• Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
• There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
• Microchip is willing to work with the customer who is concerned about the integrity of their code.
• Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Microchip received ISO/TS-16949:2002 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
Tempe, Arizona; Gresham, Oregon and design centers in California
and India. The Company’s quality system processes and procedures
are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.
DS51775B-page 8 © 2010 Microchip Technology Inc.
AMERICAS
Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
http://support.microchip.com
Web Address:
www.microchip.com
Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Cleveland
Independence, OH
Tel: 216-447-0464
Fax: 216-447-0643
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Farmington Hills, MI
Tel: 248-538-2250
Fax: 248-538-2260
Kokomo
Kokomo, IN
Tel: 765-864-8360
Fax: 765-864-8387
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Santa Clara
Santa Clara, CA
Tel: 408-961-6444
Fax: 408-961-6445
Toronto
Mississauga, Ontario,
Canada
Tel: 905-673-0699
Fax: 905-673-6509
ASIA/PACIFIC
Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
Hong Kong
Tel: 852-2401-1200
Fax: 852-2401-3431
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
China - Beijing
Tel: 86-10-8528-2100
Fax: 86-10-8528-2104
China - Chengdu
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
China - Chongqing
Tel: 86-23-8980-9588
Fax: 86-23-8980-9500
China - Hong Kong SAR
Tel: 852-2401-1200
Fax: 852-2401-3431
China - Nanjing
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
China - Shenzhen
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
China - Xian
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
China - Xiamen
Tel: 86-592-2388138
Fax: 86-592-2388130
China - Zhuhai
Tel: 86-756-3210040
Fax: 86-756-3210049
ASIA/PACIFIC
India - Bangalore
Tel: 91-80-3090-4444
Fax: 91-80-3090-4123
India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
Korea - Daegu
Tel: 82-53-744-4301
Fax: 82-53-744-4302
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
Malaysia - Kuala Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
Taiwan - Hsin Chu
Tel: 886-3-6578-300
Fax: 886-3-6578-370
Taiwan - Kaohsiung
Tel: 886-7-536-4818
Fax: 886-7-536-4803
Taiwan - Taipei
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
EUROPE
Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
Denmark - Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
Worldwide Sales and Service
01/05/10
EPCOS Sample Kit 2012
SMD NTC Thermistors
General-Use Components for Temperature
Measurement and Compensation
www.epcos.com
What are SMD NTC thermistors? As defined by IEC 60539, NTC (Negative Temperature Coefficient) thermistors are
thermally sensitive semiconductor resistors which show a decrease in resistance as
temperature increases.
SMD NTCs are designed for temperature measurement and compensation.
Benefits for customer applications
Available case sizes 0402, 0603 and 0805 (1206 upon request)
Resistance values 1 kV up to 680 kV
Operating temperature range: –55 … +125 °C
Excellent long-term aging stability in high-temperature environment
Nickel barrier termination and lead-free solderability
Important information: Some parts of this publication contain statements about the suitability of our products for certain areas of application. These
statements are based on our knowledge of typical requirements that are often placed on our products. We expressly point out that these statements
cannot be regarded as binding statements about the suitability of our products for a particular customer application. It is incumbent on the customer
to check and decide whether a product is suitable for use in a particular application. This publication is only a brief product survey which may be
changed from time to time. Our products are described in detail in our data sheets. The Important notes (www.epcos.com /ImportantNotes) and the
product-specific Cautions and warnings must be observed. All relevant information is available through our sales offices.
B57221
V2472J060
B57230
V2103F260
B57221
V2103J060
B57261
V2223J060
B57221
V2473J060
B57321
V2102J060
B57301
V2472J060
B57330
V2103F260
B57321
V2103J060
B57371
V2103J060
B57321
V2223J060
B57371
V2223J060
B57321
V2473J060
B57371
V2473J060
B57371
V2104J060
B57371
V2474J060
B57421
V2102J062
B57421
V2222J062
B57401
V2472J062
B57471
V2472J062
B57421
V2103J062
B57471
V2103J062
B57421
V2223J062
B57471
V2223J062
B57471
V2473J062
B57471
V2104J062
B57471
V2474J062
Components
Product range
Electrical specifications and ordering codes EIA R25 DRR B25/50 B25/85 B25/100 Ordering code
case
size [kV] % [K] [K] [K]
Case size 0402
0402 4.7 ±5 3940 3980 4000 ±3% B57221V2472J060
0402 10 ±1 3380 3435 3455 ±1% B57230V2103F260
0402 10 ±5 3940 3980 4000 ±3% B57221V2103J060
0402 22 ±5 4473 4548 4575 ±3% B57261V2223J060
0402 47 ±5 3940 3980 4000 ±3% B57221V2473J060
Case size 0603
0603 1 ±3, ±5 3940 3980 4000 ±3% B57321V2102+060
0603 4.7 ±3, ±5 3590 3635 3650 ±3% B57301V2472+060
0603 10 ±1 3380 3435 3455 ±1% B57330V2103F260
0603 10 ±3, ±5 3940 3980 4000 ±3% B57321V2103+060
0603 10 ±3, ±5 4386 4455 4480 ±3% B57371V2103+060
0603 22 ±3, ±5 3940 3980 4000 ±3% B57321V2223+060
0603 22 ±3, ±5 4386 4455 4480 ±3% B57371V2223+060
0603 47 ±3, ±5 3940 3980 4000 ±3% B57321V2473+060
0603 47 ±3, ±5 4386 4455 4480 ±3% B57371V2473+060
0603 100 ±3, ±5 4386 4455 4480 ±3% B57371V2104+060
0603 470 ±3, ±5 4386 4455 4480 ±3% B57371V2474+060
Case size 0805
0805 1 ±3, ±5 3940 3980 4000 ±3% B57421V2102+062
0805 2.2 ±3, ±5 3940 3980 4000 ±3% B57421V2222+062
0805 4.7 ±3, ±5 3590 3635 3650 ±3% B57401V2472+062
0805 4.7 ±3, ±5 4386 4455 4480 ±3% B57471V2472+062
0805 10 ±3, ±5 3940 3980 4000 ±3% B57421V2103+062
0805 10 ±3, ±5 4386 4455 4480 ±3% B57471V2103+062
0805 22 ±3, ±5 3940 3980 4000 ±3% B57421V2223+062
0805 22 ±3, ±5 4386 4455 4480 ±3% B57471V2223+062
0805 47 ±3, ±5 4386 4455 4480 ±3% B57471V2473+062
0805 100 ±3, ±5 4386 4455 4480 ±3% B57471V2104+062
0805 470 ±3, ±5 4386 4455 4480 ±3% B57471V2474+062
See enclosed CD-ROM for data sheets and further details. + = Resistance tolerance: H = ±3%, J = ±5%
Application examples for SMD NTC thermistors
Diagrams for LED, power amplifier and battery pack
LED
LED lifetime is extended if the current
through the LED is controlled by using a
NTC thermistor as temperature sensor.
10 kV ±5%
10 kV ±1%
100 kV ±5%
Power amplifier
Compensation circuit of a power
amplifier using a NTC thermistor as
temperature sensor.
Battery pack
Schematic drawing of the charging
control unit of a battery pack using NTC
thermistors as temperature sensors.
10 kV ±5%
10 kV ±1%
Further applications:
Temperature sensing and compensation in e.g.
Household electronics (refrigerators and deep-freezers,
washing machines, water boilers, LED lighting etc.)
Heating and air-conditioning
Industrial electronics
Computer and consumer electronics
Telecommunications
© EPCOS AG · A Member of TDK-EPC Corporation
Edition 07/2012 · Ordering No. B57999V2999J099 · Printed in Germany · SO 0712.5
1. General description
The PCA9555 is a 24-pin CMOS device that provides 16 bits of General Purpose parallel
Input/Output (GPIO) expansion for I2C-bus/SMBus applications and was developed to
enhance the NXP Semiconductors family of I2C-bus I/O expanders. The improvements
include higher drive capability, 5 V I/O tolerance, lower supply current, individual I/O
configuration, and smaller packaging. I/O expanders provide a simple solution when
additional I/O is needed for ACPI power switches, sensors, push buttons, LEDs, fans, etc.
The PCA9555 consists of two 8-bit Configuration (Input or Output selection); Input, Output
and Polarity Inversion (active HIGH or active LOW operation) registers. The system
master can enable the I/Os as either inputs or outputs by writing to the I/O configuration
bits. The data for each Input or Output is kept in the corresponding Input or Output
register. The polarity of the read register can be inverted with the Polarity Inversion
register. All registers can be read by the system master. Although pin-to-pin and I2C-bus
address compatible with the PCF8575, software changes are required due to the
enhancements, and are discussed in Application Note AN469.
The PCA9555 open-drain interrupt output is activated when any input state differs from its
corresponding input port register state and is used to indicate to the system master that
an input state has changed. The power-on reset sets the registers to their default values
and initializes the device state machine.
Three hardware pins (A0, A1, A2) vary the fixed I2C-bus address and allow up to eight
devices to share the same I2C-bus/SMBus. The fixed I2C-bus address of the PCA9555 is
the same as the PCA9554, allowing up to eight of these devices in any combination to
share the same I2C-bus/SMBus.
2. Features
n Operating power supply voltage range of 2.3 V to 5.5 V
n 5 V tolerant I/Os
n Polarity Inversion register
n Active LOW interrupt output
n Low standby current
n Noise filter on SCL/SDA inputs
n No glitch on power-up
n Internal power-on reset
n 16 I/O pins which default to 16 inputs
n 0 Hz to 400 kHz clock frequency
n ESD protection exceeds 2000 V HBM per JESD22-A114, 200 V MM per
JESD22-A115, and 1000 V CDM per JESD22-C101
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Rev. 08 — 22 October 2009 Product data sheet
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 2 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
n Latch-up testing is done to JEDEC Standard JESD78 which exceeds 100 mA
n Six packages offered: DIP24, SO24, SSOP24, TSSOP24, HVQFN24 and HWQFN24
3. Ordering information
3.1 Ordering options
Table 1. Ordering information
Type number Package
Name Description Version
PCA9555N DIP24 plastic dual in-line package; 24 leads (600 mil) SOT101-1
PCA9555D SO24 plastic small outline package; 24 leads;
body width 7.5 mm
SOT137-1
PCA9555DB SSOP24 plastic shrink small outline package; 24 leads;
body width 5.3 mm
SOT340-1
PCA9555PW TSSOP24 plastic thin shrink small outline package; 24 leads;
body width 4.4 mm
SOT355-1
PCA9555BS HVQFN24 plastic thermal enhanced very thin quad flat package;
no leads; 24 terminals; body 4 ´ 4 ´ 0.85 mm
SOT616-1
PCA9555HF HWQFN24 plastic thermal enhanced very very thin quad flat
package; no leads; 24 terminals; body 4 ´ 4 ´ 0.75 mm
SOT994-1
Table 2. Ordering options
Type number Topside mark Temperature range
PCA9555N PCA9555 -40 °C to +85 °C
PCA9555D PCA9555D -40 °C to +85 °C
PCA9555DB PCA9555 -40 °C to +85 °C
PCA9555PW PCA9555 -40 °C to +85 °C
PCA9555BS 9555 -40 °C to +85 °C
PCA9555HF P55H -40 °C to +85 °C
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 3 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
4. Block diagram
5. Pinning information
5.1 Pinning
Remark: All I/Os are set to inputs at reset.
Fig 1. Block diagram of PCA9555
PCA9555
POWER-ON
RESET
002aac702
I2C-BUS/SMBus
CONTROL
INPUT
FILTER
SCL
SDA
VDD
INPUT/
OUTPUT
PORTS
IO0_0
VSS
8-bit
write pulse
read pulse
IO0_2
IO0_1
IO0_3
IO0_4
IO0_5
IO0_6
IO0_7
INPUT/
OUTPUT
PORTS
IO1_0
8-bit
write pulse
read pulse
IO1_2
IO1_1
IO1_3
IO1_4
IO1_5
IO1_6
IO1_7
INT
A1
A0
A2
LP filter
VDD
Fig 2. Pin configuration for DIP24 Fig 3. Pin configuration for SO24
VDD
SDA
SCL
A0
IO1_7
IO1_6
IO1_5
IO1_4
IO1_3
IO1_2
IO1_1
IO1_0
INT
A1
A2
IO0_0
IO0_1
IO0_2
IO0_3
IO0_4
IO0_5
IO0_6
IO0_7
VSS
PCA9555N
002aac697
1
2
3
4
5
6
7
8
9
10
11
12
14
13
16
15
18
17
20
19
22
21
24
23
INT VDD
A1 SDA
A2 SCL
IO0_0 A0
IO0_1 IO1_7
IO0_2 IO1_6
IO0_3 IO1_5
IO0_4 IO1_4
IO0_5 IO1_3
IO0_6 IO1_2
IO0_7 IO1_1
VSS IO1_0
PCA9555D
002aac698
1
2
3
4
5
6
7
8
9
10
11
12
14
13
16
15
18
17
20
19
22
21
24
23
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 4 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Fig 4. Pin configuration for SSOP24 Fig 5. Pin configuration for TSSOP24
Fig 6. Pin configuration for HVQFN24 Fig 7. Pin configuration for HWQFN24
INT
A1
A2
IO0_0
IO0_1
IO0_2
IO0_3
IO0_4
IO0_5
IO0_6
IO0_7
VSS
PCA9555DB
002aac699
1
2
3
4
5
6
7
8
9
10
11
12
14
13
16
15
18
17
20
19
22
21
24
23
VDD
SDA
SCL
A0
IO1_7
IO1_6
IO1_5
IO1_4
IO1_3
IO1_2
IO1_1
IO1_0
VDD
SDA
SCL
A0
IO1_7
IO1_6
IO1_5
IO1_4
IO1_3
IO1_2
IO1_1
IO1_0
INT
A1
A2
IO0_0
IO0_1
IO0_2
IO0_3
IO0_4
IO0_5
IO0_6
IO0_7
VSS
PCA9555PW
002aac700
1
2
3
4
5
6
7
8
9
10
11
12
14
13
16
15
18
17
20
19
22
21
24
23
002aac701
PCA9555BS
Transparent top view
IO1_3
IO0_4
IO0_5
IO1_4
IO0_3 IO1_5
IO0_2 IO1_6
IO0_1 IO1_7
IO0_0 A0
IO0_6
IO0_7
VSS
IO1_0
IO1_1
IO1_2
A2
A1
VDD
SDA
SCL
terminal 1
index area
6 13
5 14
4 15
3 16
2 17
1 18
7
8
9
10
11
12
24
23
22
21
20
19
INT
002aac881
Transparent top view
IO1_3
IO0_4
IO0_5
IO1_4
IO0_3 IO1_5
IO0_2 IO1_6
IO0_1 IO1_7
IO0_0 A0
IO0_6
IO0_7
VSS
IO1_0
IO1_1
IO1_2
A2
A1
INT
VDD
SDA
SCL
terminal 1
index area
6 13
5 14
4 15
3 16
2 17
1 18
7
8
9
10
11
12
24
23
22
21
20
19
PCA9555HF
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 5 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
5.2 Pin description
[1] HVQFN and HWQFN package die supply ground is connected to both the VSS pin and the exposed center
pad. The VSS pin must be connected to supply ground for proper device operation. For enhanced thermal,
electrical, and board-level performance, the exposed pad needs to be soldered to the board using a
corresponding thermal pad on the board, and for proper heat conduction through the board thermal vias
need to be incorporated in the PCB in the thermal pad region.
Table 3. Pin description
Symbol Pin Description
DIP24, SO24,
SSOP24, TSSOP24
HVQFN24,
HWQFN24
INT 1 22 interrupt output (open-drain)
A1 2 23 address input 1
A2 3 24 address input 2
IO0_0 4 1 port 0 input/output
IO0_1 5 2
IO0_2 6 3
IO0_3 7 4
IO0_4 8 5
IO0_5 9 6
IO0_6 10 7
IO0_7 11 8
VSS 12 9[1] supply ground
IO1_0 13 10 port 1 input/output
IO1_1 14 11
IO1_2 15 12
IO1_3 16 13
IO1_4 17 14
IO1_5 18 15
IO1_6 19 16
IO1_7 20 17
A0 21 18 address input 0
SCL 22 19 serial clock line
SDA 23 20 serial data line
VDD 24 21 supply voltage
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 6 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
6. Functional description
Refer to Figure 1 “Block diagram of PCA9555”.
6.1 Device address
6.2 Registers
6.2.1 Command byte
The command byte is the first byte to follow the address byte during a write transmission.
It is used as a pointer to determine which of the following registers will be written or read.
Fig 8. PCA9555 device address
R/W
002aac219
0 1 0 0 A2 A1 A0
programmable
slave address
fixed
Table 4. Command byte
Command Register
0 Input port 0
1 Input port 1
2 Output port 0
3 Output port 1
4 Polarity Inversion port 0
5 Polarity Inversion port 1
6 Configuration port 0
7 Configuration port 1
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 7 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
6.2.2 Registers 0 and 1: Input port registers
This register is an input-only port. It reflects the incoming logic levels of the pins,
regardless of whether the pin is defined as an input or an output by Register 3. Writes to
this register have no effect.
The default value ‘X’ is determined by the externally applied logic level.
6.2.3 Registers 2 and 3: Output port registers
This register is an output-only port. It reflects the outgoing logic levels of the pins defined
as outputs by Registers 6 and 7. Bit values in this register have no effect on pins defined
as inputs. In turn, reads from this register reflect the value that is in the flip-flop controlling
the output selection, not the actual pin value.
6.2.4 Registers 4 and 5: Polarity Inversion registers
This register allows the user to invert the polarity of the Input port register data. If a bit in
this register is set (written with ‘1’), the Input port data polarity is inverted. If a bit in this
register is cleared (written with a ‘0’), the Input port data polarity is retained.
Table 5. Input port 0 Register
Bit 7 6 5 4 3 2 1 0
Symbol I0.7 I0.6 I0.5 I0.4 I0.3 I0.2 I0.1 I0.0
Default X X X X X X X X
Table 6. Input port 1 register
Bit 7 6 5 4 3 2 1 0
Symbol I1.7 I1.6 I1.5 I1.4 I1.3 I1.2 I1.1 I1.0
Default X X X X X X X X
Table 7. Output port 0 register
Bit 7 6 5 4 3 2 1 0
Symbol O0.7 O0.6 O0.5 O0.4 O0.3 O0.2 O0.1 O0.0
Default 1 1 1 1 1 1 1 1
Table 8. Output port 1 register
Bit 7 6 5 4 3 2 1 0
Symbol O1.7 O1.6 O1.5 O1.4 O1.3 O1.2 O1.1 O1.0
Default 1 1 1 1 1 1 1 1
Table 9. Polarity Inversion port 0 register
Bit 7 6 5 4 3 2 1 0
Symbol N0.7 N0.6 N0.5 N0.4 N0.3 N0.2 N0.1 N0.0
Default 0 0 0 0 0 0 0 0
Table 10. Polarity Inversion port 1 register
Bit 7 6 5 4 3 2 1 0
Symbol N1.7 N1.6 N1.5 N1.4 N1.3 N1.2 N1.1 N1.0
Default 0 0 0 0 0 0 0 0
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 8 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
6.2.5 Registers 6 and 7: Configuration registers
This register configures the directions of the I/O pins. If a bit in this register is set (written
with ‘1’), the corresponding port pin is enabled as an input with high-impedance output
driver. If a bit in this register is cleared (written with ‘0’), the corresponding port pin is
enabled as an output. Note that there is a high value resistor tied to VDD at each pin. At
reset, the device's ports are inputs with a pull-up to VDD.
6.3 Power-on reset
When power is applied to VDD, an internal power-on reset holds the PCA9555 in a reset
condition until VDD has reached VPOR. At that point, the reset condition is released and the
PCA9555 registers and SMBus state machine will initialize to their default states. The
power-on reset typically completes the reset and enables the part by the time the power
supply is above VPOR. However, when it is required to reset the part by lowering the power
supply, it is necessary to lower it below 0.2 V.
6.4 I/O port
When an I/O is configured as an input, FETs Q1 and Q2 are off, creating a
high-impedance input with a weak pull-up to VDD. The input voltage may be raised above
VDD to a maximum of 5.5 V.
If the I/O is configured as an output, then either Q1 or Q2 is on, depending on the state of
the Output Port register. Care should be exercised if an external voltage is applied to an
I/O configured as an output because of the low-impedance path that exists between the
pin and either VDD or VSS.
Table 11. Configuration port 0 register
Bit 7 6 5 4 3 2 1 0
Symbol C0.7 C0.6 C0.5 C0.4 C0.3 C0.2 C0.1 C0.0
Default 1 1 1 1 1 1 1 1
Table 12. Configuration port 1 register
Bit 7 6 5 4 3 2 1 0
Symbol C1.7 C1.6 C1.5 C1.4 C1.3 C1.2 C1.1 C1.0
Default 1 1 1 1 1 1 1 1
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 9 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
6.5 Bus transactions
6.5.1 Writing to the port registers
Data is transmitted to the PCA9555 by sending the device address and setting the least
significant bit to a logic 0 (see Figure 8 “PCA9555 device address”). The command byte is
sent after the address and determines which register will receive the data following the
command byte.
The eight registers within the PCA9555 are configured to operate as four register pairs.
The four pairs are Input Ports, Output Ports, Polarity Inversion Ports, and Configuration
Ports. After sending data to one register, the next data byte will be sent to the other
register in the pair (see Figure 10 and Figure 11). For example, if the first byte is sent to
Output Port 1 (register 3), then the next byte will be stored in Output Port 0 (register 2).
There is no limitation on the number of data bytes sent in one write transmission. In this
way, each 8-bit register may be updated independently of the other registers.
At power-on reset, all registers return to default values.
Fig 9. Simplified schematic of I/Os
VDD
I/O pin
output port
configuration register data
register
D Q
CK Q
data from
shift register
write
configuration
pulse
output port
register
D Q
write pulse CK
polarity inversion
register
D Q
CK
data from
shift register
write polarity
pulse
input port
register
D Q
read pulse CK
input port
register data
polarity
inversion
register data
002aac703
FF
data from
shift register
FF
FF
FF
Q1
Q2
VSS
to INT
100 kW
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxx
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 10 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Fig 10. Write to Output port registers
S 0 1 0 0 A2 A1 A0 0 A
START condition R/W acknowledge
from slave
002aac220
A
SCL
SDA A
write to port
data out
from port 0
P
tv(Q)
1 2 3 4 5 6 7 8 9
command byte data to port 0
DATA 0
slave address
0 0 0 0 0 0 1 0
STOP
condition
0.7 0.0
acknowledge
from slave
acknowledge
from slave
data to port 1
1.7 DATA 1 1.0 A
data out
from port 1
tv(Q)
DATA VALID
Fig 11. Write to Configuration registers
S 0 1 0 0 A2 A1 A0 0 A
START condition R/W acknowledge
from slave
002aac221
A
SCL
SDA A P
1 2 3 4 5 6 7 8 9
command byte
data to register
DATA 0
slave address
0 0 0 0 0 1 1 0
STOP
condition
MSB LSB
acknowledge
from slave
acknowledge
from slave
data to register
DATA 1
MSB LSB
A
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 11 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
6.5.2 Reading the port registers
In order to read data from the PCA9555, the bus master must first send the PCA9555
address with the least significant bit set to a logic 0 (see Figure 8 “PCA9555 device
address”). The command byte is sent after the address and determines which register will
be accessed. After a restart, the device address is sent again, but this time the least
significant bit is set to a logic 1. Data from the register defined by the command byte will
then be sent by the PCA9555 (see Figure 12, Figure 13 and Figure 14). Data is clocked
into the register on the falling edge of the acknowledge clock pulse. After the first byte is
read, additional bytes may be read but the data will now reflect the information in the other
register in the pair. For example, if you read Input Port 1, then the next byte read would be
Input Port 0. There is no limitation on the number of data bytes received in one read
transmission but the final byte received, the bus master must not acknowledge the data.
Remark: Transfer can be stopped at any time by a STOP condition.
Fig 12. Read from register
S A
START condition R/W
acknowledge
from slave
002aac222
A
acknowledge
from slave
SDA
A P
acknowledge
from master
DATA (first byte)
slave address
STOP
condition
S
(repeated)
START condition
(cont.)
(cont.) 0 1 0 0 A2 A1 A0 1 A
R/W
acknowledge
from slave
slave address
at this moment master-transmitter becomes master-receiver
and slave-receiver becomes slave-transmitter
NA
no acknowledge
from master
0 1 0 0 A2 A1 A0 0 COMMAND BYTE
data from lower or
upper byte of register
MSB LSB
DATA (last byte)
data from upper or
lower byte of register
MSB LSB
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxx
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 12 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Remark: Transfer of data can be stopped at any moment by a STOP condition. When this occurs, data present at the latest acknowledge phase is valid (output mode). It
is assumed that the command byte has previously been set to ‘00’ (read Input Port register).
Fig 13. Read Input port register, scenario 1
S 0 1 0 0 A2 A1 A0 1 A
START condition
R/W
acknowledge
from slave
002aac223
A
SCL
SDA A
read from port 0
P
1 2 3 4 5 6 7 8 9
slave address I0.x
STOP condition
acknowledge
from master
I1.x
acknowledge
from master
A
I0.x
acknowledge
from master
1
I1.x
non acknowledge
from master
data into port 0
read from port 1
data into port 1
INT
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
tv(INT_N) trst(INT_N)
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxx
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 13 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Remark: Transfer of data can be stopped at any moment by a STOP condition. When this occurs, data present at the latest acknowledge phase is valid (output mode). It
is assumed that the command byte has previously been set to ‘00’ (read Input Port register).
Fig 14. Read Input port register, scenario 2
S 0 1 0 0 A2 A1 A0 1 A
START condition
R/W
acknowledge
from slave
002aac224
A
SCL
SDA A
read from port 0
P
1 2 3 4 5 6 7 8 9
slave address I0.x
STOP condition
acknowledge
from master
I1.x
acknowledge
from master
A
I0.x
acknowledge
from master
1
I1.x
non acknowledge
from master
data into port 0
read from port 1
data into port 1
INT
tv(INT_N) trst(INT_N)
DATA 00 DATA 10 DATA 03 DATA 12
DATA 00 DATA 01
th(D)
th(D)
DATA 02
tsu(D)
DATA 03
tsu(D)
DATA 10 DATA 11 DATA 12
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 14 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
6.5.3 Interrupt output
The open-drain interrupt output is activated when one of the port pins changes state and
the pin is configured as an input. The interrupt is deactivated when the input returns to its
previous state or the Input Port register is read (see Figure 13). A pin configured as an
output cannot cause an interrupt. Since each 8-bit port is read independently, the interrupt
caused by Port 0 will not be cleared by a read of Port 1 or the other way around.
Remark: Changing an I/O from an output to an input may cause a false interrupt to occur
if the state of the pin does not match the contents of the Input Port register.
7. Characteristics of the I2C-bus
The I2C-bus is for 2-way, 2-line communication between different ICs or modules. The two
lines are a serial data line (SDA) and a serial clock line (SCL). Both lines must be
connected to a positive supply via a pull-up resistor when connected to the output stages
of a device. Data transfer may be initiated only when the bus is not busy.
7.1 Bit transfer
One data bit is transferred during each clock pulse. The data on the SDA line must remain
stable during the HIGH period of the clock pulse as changes in the data line at this time
will be interpreted as control signals (see Figure 15).
7.1.1 START and STOP conditions
Both data and clock lines remain HIGH when the bus is not busy. A HIGH-to-LOW
transition of the data line while the clock is HIGH is defined as the START condition (S). A
LOW-to-HIGH transition of the data line while the clock is HIGH is defined as the STOP
condition (P) (see Figure 16).
Fig 15. Bit transfer
mba607
data line
stable;
data valid
change
of data
allowed
SDA
SCL
Fig 16. Definition of START and STOP conditions
mba608
SDA
SCL
P
STOP condition
S
START condition
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 15 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
7.2 System configuration
A device generating a message is a ‘transmitter’; a device receiving is the ‘receiver’. The
device that controls the message is the ‘master’ and the devices which are controlled by
the master are the ‘slaves’ (see Figure 17).
7.3 Acknowledge
The number of data bytes transferred between the START and the STOP conditions from
transmitter to receiver is not limited. Each byte of eight bits is followed by one
acknowledge bit. The acknowledge bit is a HIGH level put on the bus by the transmitter,
whereas the master generates an extra acknowledge related clock pulse.
A slave receiver which is addressed must generate an acknowledge after the reception of
each byte. Also a master must generate an acknowledge after the reception of each byte
that has been clocked out of the slave transmitter. The device that acknowledges has to
pull down the SDA line during the acknowledge clock pulse, so that the SDA line is stable
LOW during the HIGH period of the acknowledge related clock pulse; set-up time and hold
time must be taken into account.
A master receiver must signal an end of data to the transmitter by not generating an
acknowledge on the last byte that has been clocked out of the slave. In this event, the
transmitter must leave the data line HIGH to enable the master to generate a STOP
condition.
Fig 17. System configuration
002aaa966
MASTER
TRANSMITTER/
RECEIVER
SLAVE
RECEIVER
SLAVE
TRANSMITTER/
RECEIVER
MASTER
TRANSMITTER
MASTER
TRANSMITTER/
RECEIVER
SDA
SCL
I2C-BUS
MULTIPLEXER
SLAVE
Fig 18. Acknowledgement on the I2C-bus
002aaa987
S
START
condition
1 2 8 9
clock pulse for
acknowledgement
not acknowledge
acknowledge
data output
by transmitter
data output
by receiver
SCL from master
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 16 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
8. Application design-in information
Device address configured as 0100 000xb for this example.
IO0_0, IO0_2, IO0_3 configured as outputs.
IO0_1, IO0_4, IO0_5 configured as inputs.
IO0_6, IO0_7, and IO1_0 to IO1_7 configured as inputs.
Fig 19. Typical application
PCA9555
IO0_0
IO0_1
SCL
SDA
VDD
(5 V)
MASTER
CONTROLLER
SCL
SDA
INT
IO0_2
VDD
A2
A1
A0
VDD
GND
INT
10 kW
SUB-SYSTEM 1
(e.g., temp sensor)
IO0_3
INT
SUB-SYSTEM 2
(e.g., counter)
RESET
controlled
switch
(e.g., CBT device)
VDD
A
B
ENABLE
SUB-SYSTEM 3
(e.g., alarm system)
ALARM
IO0_4
IO0_5
IO0_6
10 DIGIT
NUMERIC
KEYPAD
VSS
002aac704
10 kW 10 kW 2 kW
IO0_7
IO1_0
IO1_1
IO1_2
IO1_3
IO1_4
IO1_5
IO1_6
IO1_7
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 17 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
9. Limiting values
Table 13. Limiting values
In accordance with the Absolute Maximum Rating System (IEC 60134).
Symbol Parameter Conditions Min Max Unit
VDD supply voltage -0.5 +6.0 V
VI/O voltage on an input/output pin VSS - 0.5 6 V
IO output current on an I/O pin - ±50 mA
II input current - ±20 mA
IDD supply current - 160 mA
ISS ground supply current - 200 mA
Ptot total power dissipation - 200 mW
Tstg storage temperature -65 +150 °C
Tamb ambient temperature operating -40 +85 °C
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 18 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
10. Static characteristics
[1] VDD must be lowered to 0.2 V for at least 5 ms in order to reset part.
Table 14. Static characteristics
VDD = 2.3 V to 5.5 V; VSS = 0 V; Tamb = -40 °C to +85 °C; unless otherwise specified.
Symbol Parameter Conditions Min Typ Max Unit
Supplies
VDD supply voltage 2.3 - 5.5 V
IDD supply current Operating mode; VDD = 5.5 V; no load;
fSCL = 100 kHz
- 135 200 mA
Istb standby current Standby mode; VDD = 5.5 V; no load;
VI = VSS; fSCL = 0 kHz; I/O = inputs
- 1.1 1.5 mA
Standby mode; VDD = 5.5 V; no load;
VI = VDD; fSCL = 0 kHz; I/O = inputs
- 0.25 1 mA
VPOR power-on reset voltage[1] no load; VI = VDD or VSS - 1.5 1.65 V
Input SCL; input/output SDA
VIL LOW-level input voltage -0.5 - +0.3VDD V
VIH HIGH-level input voltage 0.7VDD - 5.5 V
IOL LOW-level output current VOL = 0.4 V 3 - - mA
IL leakage current VI = VDD = VSS -1 - +1 mA
Ci input capacitance VI = VSS - 6 10 pF
I/Os
VIL LOW-level input voltage -0.5 - +0.3VDD V
VIH HIGH-level input voltage 0.7VDD - 5.5 V
IOL LOW-level output current VDD = 2.3 V to 5.5 V; VOL = 0.5 V [2] 8 (8 to 20) - mA
VDD = 2.3 V to 5.5 V; VOL = 0.7 V [2] 10 (10 to 24) - mA
VOH HIGH-level output voltage IOH = -8 mA; VDD = 2.3 V [3] 1.8 - - V
IOH = -10 mA; VDD = 2.3 V [3] 1.7 - - V
IOH = -8 mA; VDD = 3.0 V [3] 2.6 - - V
IOH = -10 mA; VDD = 3.0 V [3] 2.5 - - V
IOH = -8 mA; VDD = 4.75 V [3] 4.1 - - V
IOH = -10 mA; VDD = 4.75 V [3] 4.0 - - V
ILIH HIGH-level input leakage
current
VDD = 5.5 V; VI = VDD - - 1 mA
ILIL LOW-level input leakage
current
VDD = 5.5 V; VI = VSS - - -100 mA
Ci input capacitance - 3.7 5 pF
Co output capacitance - 3.7 5 pF
Interrupt INT
IOL LOW-level output current VOL = 0.4 V 3 - - mA
Select inputs A0, A1, A2
VIL LOW-level input voltage -0.5 - +0.3VDD V
VIH HIGH-level input voltage 0.7VDD - 5.5 V
ILI input leakage current -1 - +1 mA
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 19 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
[2] Each I/O must be externally limited to a maximum of 25 mA and each octal (IO0_0 to IO0_7 and IO1_0 to IO1_7) must be limited to a
maximum current of 100 mA for a device total of 200 mA.
[3] The total current sourced by all I/Os must be limited to 160 mA.
(1) IOH = -8 mA
(2) IOH = -10 mA
(1) IOH = -8 mA
(2) IOH = -10 mA
Fig 20. VOH maximum Fig 21. VOH minimum
VDD = 5.5 V; VI/O = 5.5 V; A2, A1, A0 set to logic 0.
(1) Tamb = -40 °C
(2) Tamb = +25 °C
(3) Tamb = +85 °C
Fig 22. IDD versus number of I/Os held LOW
2.0
5.0
4.0
3.0
6.0
VOH
(V)
VDD (V)
2.7 3.6 5.5
002aac706
(1)
(2)
2.5
3.5
4.5
VOH
(V)
1.5
VDD (V)
2.3 3.0 4.75
002aac707
(1)
(2)
0
1.2
0.8
0.4
1.6
IDD
(mA)
number of I/Os
002aac705
all 1s one 0 three 0s all 0s
(1)
(2)
(3)
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 20 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
11. Dynamic characteristics
[1] tVD;ACK = time for acknowledgement signal from SCL LOW to SDA (out) LOW.
[2] tVD;DAT = minimum time for SDA data out to be valid following SCL LOW.
[3] Cb = total capacitance of one bus line in pF.
Table 15. Dynamic characteristics
Symbol Parameter Conditions Standard-mode
I2C-bus
Fast-mode I2C-bus Unit
Min Max Min Max
fSCL SCL clock frequency 0 100 0 400 kHz
tBUF bus free time between a STOP and
START condition
4.7 - 1.3 - ms
tHD;STA hold time (repeated) START condition 4.0 - 0.6 - ms
tSU;STA set-up time for a repeated START
condition
4.7 - 0.6 - ms
tSU;STO set-up time for STOP condition 4.0 - 0.6 - ms
tVD;ACK data valid acknowledge time [1] 0.3 3.45 0.1 0.9 ms
tHD;DAT data hold time 0 - 0 - ns
tVD;DAT data valid time [2] 300 - 50 - ns
tSU;DAT data set-up time 250 - 100 - ns
tLOW LOW period of the SCL clock 4.7 - 1.3 - ms
tHIGH HIGH period of the SCL clock 4.0 - 0.6 - ms
tf fall time of both SDA and SCL signals - 300 20 + 0.1Cb
[3] 300 ns
tr rise time of both SDA and SCL signals - 1000 20 + 0.1Cb
[3] 300 ns
tSP pulse width of spikes that must be
suppressed by the input filter
- 50 - 50 ns
Port timing
tv(Q) data output valid time - 200 - 200 ns
tsu(D) data input set-up time 150 - 150 - ns
th(D) data input hold time 1 - 1 - ms
Interrupt timing
tv(INT_N) valid time on pin INT - 4 - 4 ms
trst(INT_N) reset time on pin INT - 4 - 4 ms
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 21 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
12. Test information
Fig 23. Definition of timing on the I2C-bus
tBUF tSP
tHD;STA
P S P
tLOW
tr
tHD;DAT
tf
tHIGH tSU;DAT
tSU;STA
Sr
tHD;STA
tSU;STO
SDA
SCL
002aaa986
RL = load resistor.
CL = load capacitance includes jig and probe capacitance.
RT = termination resistance should be equal to the output impedance of Zo of the pulse generators.
Fig 24. Test circuitry for switching times
Fig 25. Load circuit
PULSE
GENERATOR
VO
CL
50 pF
RL
500 W
002aab284
RT
VI
VDD
DUT
VDD
open
GND
CL
50 pF
002aac226
RL
500 W
from output under test
2VDD
open
GND
RL S1
500 W
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 22 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
13. Package outline
Fig 26. Package outline SOT101-1 (DIP24)
UNIT A
max.
1 2 b1 c D E e MH L
OUTLINE REFERENCES
VERSION
EUROPEAN
PROJECTION ISSUE DATE
IEC JEDEC JEITA
mm
inches
DIMENSIONS (inch dimensions are derived from the original mm dimensions)
SOT101-1
99-12-27
03-02-13
A
min.
A
max. b e1 ME w
1.7
1.3
0.53
0.38
0.32
0.23
32.0
31.4
14.1
13.7
3.9
3.4
2.54 15.24 0.25
15.80
15.24
17.15
15.90
5.1 0.51 4 2.2
0.066
0.051
0.021
0.015
0.013
0.009
1.26
1.24
0.56
0.54
0.15
0.13
0.1 0.6 0.01
0.62
0.60
0.68
0.63
0.2 0.02 0.16 0.087
051G02 MO-015 SC-509-24
MH
c
(e 1 )
ME
A
L
seating plane
A1
w M
b1
e
D
A2
Z
24
1
13
12
b
E
pin 1 index
0 5 10 mm
scale
Note
1. Plastic or metal protrusions of 0.25 mm (0.01 inch) maximum per side are not included.
Z
max.
(1) (1) (1)
DIP24: plastic dual in-line package; 24 leads (600 mil) SOT101-1
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 23 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Fig 27. Package outline SOT137-1 (SO24)
UNIT
A
max. A1 A2 A3 bp c D(1) E(1) e HE L Lp Q v w y Z (1) q
OUTLINE REFERENCES
VERSION
EUROPEAN
PROJECTION ISSUE DATE
IEC JEDEC JEITA
mm
inches
2.65 0.3
0.1
2.45
2.25
0.49
0.36
0.32
0.23
15.6
15.2
7.6
7.4
1.27
10.65
10.00
1.1
1.0
0.9
0.4 8
0
o
o
0.25 0.1
DIMENSIONS (inch dimensions are derived from the original mm dimensions)
Note
1. Plastic or metal protrusions of 0.15 mm (0.006 inch) maximum per side are not included.
1.1
0.4
SOT137-1
X
12
24
w M
q
A
A1
A2
bp
D
HE
Lp
Q
detail X
E
Z
c
L
v M A
13
(A 3 )
A
y
0.25
075E05 MS-013
pin 1 index
0.1 0.012
0.004
0.096
0.089
0.019
0.014
0.013
0.009
0.61
0.60
0.30
0.29
0.05
1.4
0.055
0.419
0.394
0.043
0.039
0.035
0.016
0.01
0.25
0.01 0.004
0.043
0.016
0.01
e
1
0 5 10 mm
scale
SO24: plastic small outline package; 24 leads; body width 7.5 mm SOT137-1
99-12-27
03-02-19
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 24 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Fig 28. Package outline SOT340-1 (SSOP24)
UNIT A1 A2 A3 bp c D(1) E(1) e HE L Lp Q v w y Z (1) q
OUTLINE REFERENCES
VERSION
EUROPEAN
PROJECTION ISSUE DATE
IEC JEDEC JEITA
mm 0.21
0.05
1.80
1.65
0.38
0.25
0.20
0.09
8.4
8.0
5.4
5.2
0.65 1.25
7.9
7.6
0.9
0.7
0.8
0.4
8
0
o
0.2 0.13 0.1 o
DIMENSIONS (mm are the original dimensions)
Note
1. Plastic or metal protrusions of 0.2 mm maximum per side are not included.
1.03
0.63
SOT340-1 MO-150
99-12-27
03-02-19
X
w M
q
A
A1
A2
bp
D
HE
Lp
Q
detail X
E
Z
e
c
L
v M A
(A 3 )
A
1 12
24 13
0.25
y
pin 1 index
0 2.5 5 mm
scale
SSOP24: plastic shrink small outline package; 24 leads; body width 5.3 mm SOT340-1
A
max.
2
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 25 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Fig 29. Package outline SOT355-1 (TSSOP24)
UNIT A1 A2 A3 bp c D(1) E(2) e HE L Lp Q v w y Z (1) q
OUTLINE REFERENCES
VERSION
EUROPEAN
PROJECTION ISSUE DATE
IEC JEDEC JEITA
mm 0.15
0.05
0.95
0.80
0.30
0.19
0.2
0.1
7.9
7.7
4.5
4.3
0.65
6.6
6.2
0.4
0.3
8
0
o
1 0.2 0.13 0.1 o
DIMENSIONS (mm are the original dimensions)
Notes
1. Plastic or metal protrusions of 0.15 mm maximum per side are not included.
2. Plastic interlead protrusions of 0.25 mm maximum per side are not included.
0.75
0.50
SOT355-1 MO-153
99-12-27
03-02-19
0.25
0.5
0.2
w M
bp
Z
e
1 12
24 13
pin 1 index
q
A
A1
A2
Lp
Q
detail X
L
(A 3 )
HE
E
c
v M A
X
D A
y
0 2.5 5 mm
scale
TSSOP24: plastic thin shrink small outline package; 24 leads; body width 4.4 mm SOT355-1
A
max.
1.1
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 26 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Fig 30. Package outline SOT616-1 (HVQFN24)
1 0.2 0.5
UNIT A1 b Eh e y
OUTLINE REFERENCES
VERSION
EUROPEAN
PROJECTION ISSUE DATE
IEC JEDEC JEITA
mm 4.1
3.9
Dh
2.25
1.95
y1
4.1
3.9
2.25
1.95
e1
2.5
e2
2.5
0.30
0.18
c
0.05
0.00
0.05 0.1
DIMENSIONS (mm are the original dimensions)
SOT616-1 - - - MO-220 - - -
0.5
0.3
L
0.1
v
0.05
w
0 2.5 5 mm
scale
SOT616-1
HVQFN24: plastic thermal enhanced very thin quad flat package; no leads;
24 terminals; body 4 x 4 x 0.85 mm
A(1)
max.
A
A1
c
detail X
y1 C y e
L
Eh
Dh
e
e1
b
7 12
24 19
18
13
6
1
X
D
E
C
B A
e2
01-08-08
02-10-22
terminal 1
index area
terminal 1
index area
C A
C
v M B
w M
1/2 e
1/2 e
E(1)
Note
1. Plastic or metal protrusions of 0.075 mm maximum per side are not included.
D(1)
PCA9555_8 © NXP B.V. 2009. All rights reserved.
Product data sheet Rev. 08 — 22 October 2009 27 of 34
NXP Semiconductors PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Fig 31. Package outline SOT994-1 (HWQFN24)
OUTLINE REFERENCES
VERSION
EUROPEAN
PROJECTION
ISSUE DATE
IEC JEDEC JEITA
SOT994-1 - - - MO-220 - - -
SOT994-1
07-02-07
07-03-03
Note
1. Plastic or metal protrusions of 0.075 mm maximum per side are not included.
UNIT A(1)
max
mm 0.8 0.05
0.00
0.30
0.18
4.1
3.9
2.25
1.95
4.1
3.9
2.25
1.95 2.5 2.5 0.1
A1
DIMENSIONS (mm are the original dimensions)
HWQFN24: plastic thermal enhanced very very thin quad flat package; no leads;
24 terminals; body 4 x 4 x 0.75 mm
0 2.5 5 mm
scale
b c
0.2
D(1) Dh E(1) Eh e
0.5
e1 e2 L
0.5
0.3
v w
0.05
y
0.05
y1
0.1
B A
terminal 1
index area
E
D
detail X
A
A1
c
b
e2
e1
e
e
1/2 e
1/2 e
Æ v M C A B
Æ w M C
terminal 1
index area
6
13
7 12
18
24 19
1
L
Eh
Dh
C
y1 C y
X
| | | | | | | | | | |
Compteur