SlideShare una empresa de Scribd logo
1 de 159
Descargar para leer sin conexión
Implementaci´n de un m´todo de programaci´n
            o         e                   o
  semidefinida usando computaci´n paralela
                              o

              Oscar Francisco Peredo Andrade

        Presentaci´n para optar al T´
                  o                 ıtulo de Ingeniero Civil Matem´tico
                                                                  a
       Facultad de Ciencias F´
                             ısicas y Matem´ticas, Universidad de Chile
                                           a


                              3 de Junio de 2010
Esquema

       Introducci´n
                 o
       Antecedentes
          Programaci´n semidefinida lineal (SDP)
                      o
          Filter-SDP
          Computaci´n paralela
                     o
       Trabajo realizado
          Estudio de sistemas de c´lculo paralelo
                                   a
          Implementaci´n en C: fnlsdp
                        o
          Dise˜o de distintas fases de restauraci´n
              n                                  o
       Resultados num´ricos
                     e
       Conclusiones
       Trabajo futuro

2/68
Esquema

       Introducci´n
                 o
       Antecedentes
          Programaci´n semidefinida lineal (SDP)
                      o
          Filter-SDP
          Computaci´n paralela
                     o
       Trabajo realizado
          Estudio de sistemas de c´lculo paralelo
                                   a
          Implementaci´n en C: fnlsdp
                        o
          Dise˜o de distintas fases de restauraci´n
              n                                  o
       Resultados num´ricos
                     e
       Conclusiones
       Trabajo futuro

3/68
Motivaci´n
               o




4/68
Motivaci´n
               o

       • Experimentar el proceso de desarrollo de una aplicaci´n cient´
                                                              o       ıfica
         desde su dise˜o, realizado en sistemas de alto nivel (MATLAB),
                      n
         hasta su implementaci´n basada en c´lculo paralelo, realizada en
                                o             a
         sistemas de bajo nivel (C ).




4/68
Motivaci´n
               o

       • Experimentar el proceso de desarrollo de una aplicaci´n cient´
                                                              o       ıfica
         desde su dise˜o, realizado en sistemas de alto nivel (MATLAB),
                      n
         hasta su implementaci´n basada en c´lculo paralelo, realizada en
                                o             a
         sistemas de bajo nivel (C ).
       • Resolver un problema de programaci´n semidefinida no lineal:
                                           o

                                   min     f (x)
                                  x∈Rn
                                   s.a   h(x) = 0                       (1)
                                         G (x) 0

         donde f : Rn → R, h : Rn → Rp y G : Rn → Sm son clase C 2 ,
         usando una versi´n del algoritmo Filter-SDP desarrollado en
                         o
         [GR06].


4/68
Objetivos




5/68
Objetivos



       • Estudio de herramientas de c´lculo paralelo aplicables en el
                                     a
         algoritmo Filter-SDP.




5/68
Objetivos



       • Estudio de herramientas de c´lculo paralelo aplicables en el
                                     a
         algoritmo Filter-SDP.
       • Implementaci´n del algoritmo Filter-SDP utilizando C.
                     o




5/68
Objetivos



       • Estudio de herramientas de c´lculo paralelo aplicables en el
                                     a
         algoritmo Filter-SDP.
       • Implementaci´n del algoritmo Filter-SDP utilizando C.
                     o
       • Dise˜o de nuevas fases de restauraci´n para el algoritmo
             n                               o
         Filter-SDP utilizando MATLAB.




5/68
Objetivos



       • Estudio de herramientas de c´lculo paralelo aplicables en el
                                     a
         algoritmo Filter-SDP.
       • Implementaci´n del algoritmo Filter-SDP utilizando C.
                     o
       • Dise˜o de nuevas fases de restauraci´n para el algoritmo
             n                               o
         Filter-SDP utilizando MATLAB.
       • Realizaci´n de pruebas num´ricas (implementaci´n C y nuevas
                  o                e                   o
         fases de restauraci´n).
                            o




5/68
Esquema

       Introducci´n
                 o
       Antecedentes
          Programaci´n semidefinida lineal (SDP)
                      o
          Filter-SDP
          Computaci´n paralela
                     o
       Trabajo realizado
          Estudio de sistemas de c´lculo paralelo
                                   a
          Implementaci´n en C: fnlsdp
                        o
          Dise˜o de distintas fases de restauraci´n
              n                                  o
       Resultados num´ricos
                     e
       Conclusiones
       Trabajo futuro

6/68
Esquema

       Introducci´n
                 o
       Antecedentes
          Programaci´n semidefinida lineal (SDP)
                      o
          Filter-SDP
          Computaci´n paralela
                     o
       Trabajo realizado
          Estudio de sistemas de c´lculo paralelo
                                   a
          Implementaci´n en C: fnlsdp
                        o
          Dise˜o de distintas fases de restauraci´n
              n                                  o
       Resultados num´ricos
                     e
       Conclusiones
       Trabajo futuro

7/68
Programaci´n semidefinida lineal (SDP)
                 o




8/68
Programaci´n semidefinida lineal (SDP)
                 o

       Formulaci´n primal ([VB96]):
                o

                                 min            cT x
                                x∈Rm
                                               m
                                                                 (2)
                                  s.a   F0 +         xi Fi   0
                                               i=1

       con c ∈ Rm y F0 , . . . , Fn ∈ Sn .




8/68
Programaci´n semidefinida lineal (SDP)
                 o

       Formulaci´n primal ([VB96]):
                o

                                    min           cT x
                                  x∈Rm
                                                 m
                                                                       (2)
                                    s.a   F0 +         xi Fi   0
                                                 i=1

       con c ∈ Rm y F0 , . . . , Fn ∈ Sn .
       Formulaci´n dual:
                o
                            max −Tr(F0 Z )
                            Z ∈Sn
                            s.a      Tr (Fi Z ) = ci , i = 1, ..., m   (3)
                                     Z 0



8/68
Programaci´n semidefinida: aplicaciones
                 o




9/68
Programaci´n semidefinida: aplicaciones
                 o
       El problema de programaci´n lineal:
                                o

                                min          cT x
                                x∈Rn                (4)
                                 s.a   Ax + b ≥ 0




9/68
Programaci´n semidefinida: aplicaciones
                 o
       El problema de programaci´n lineal:
                                o

                                min          cT x
                                x∈Rn                (4)
                                 s.a   Ax + b ≥ 0

       tiene una formulaci´n SDP:
                          o




9/68
Programaci´n semidefinida: aplicaciones
                 o
       El problema de programaci´n lineal:
                                o

                                min          cT x
                                x∈Rn                       (4)
                                    s.a   Ax + b ≥ 0

       tiene una formulaci´n SDP:
                          o
                             min             cT x
                             x∈Rn                          (5)
                              s.a     diag(Ax + b)     0




9/68
Programaci´n semidefinida: aplicaciones
                 o
       El problema de programaci´n lineal:
                                o

                                min          cT x
                                x∈Rn                                  (4)
                                    s.a   Ax + b ≥ 0

       tiene una formulaci´n SDP:
                          o
                             min             cT x
                             x∈Rn                                     (5)
                              s.a     diag(Ax + b)           0

       o equivalentemente:

                      min                    cT x
                      x∈Rn
                                           n                          (6)
                       s.a   diag(b) +     i=1 xi   diag(A·,i )   0
                               F0                       Fi


9/68
Programaci´n semidefinida: aplicaciones
                  o




10/68
Programaci´n semidefinida: aplicaciones
                  o
        El problema de programaci´n cuadr´tica convexa tambi´n se puede
                                 o       a                  e
        formular como SDP.




10/68
Programaci´n semidefinida: aplicaciones
                  o
        El problema de programaci´n cuadr´tica convexa tambi´n se puede
                                 o        a                    e
        formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n :




10/68
Programaci´n semidefinida: aplicaciones
                  o
        El problema de programaci´n cuadr´tica convexa tambi´n se puede
                                 o        a                    e
        formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n :
                       min    (Ax + b)T (Ax + b) − c T x − d
                       x∈Rn                                             (7)
                        s.a   Hx + g ≥ 0




10/68
Programaci´n semidefinida: aplicaciones
                  o
        El problema de programaci´n cuadr´tica convexa tambi´n se puede
                                 o        a                    e
        formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n :
                          min     (Ax + b)T (Ax + b) − c T x − d
                          x∈Rn                                           (7)
                          s.a     Hx + g ≥ 0
        Equivalentemente:
                    min                                       t
                  x∈Rn ,t∈R
                    s.a          (Ax + b)T (Ax + b) − c T x − d    ≤ t   (8)
                                                        Hx + g     ≥ 0




10/68
Programaci´n semidefinida: aplicaciones
                  o
        El problema de programaci´n cuadr´tica convexa tambi´n se puede
                                 o        a                    e
        formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n :
                          min     (Ax + b)T (Ax + b) − c T x − d
                          x∈Rn                                                    (7)
                          s.a     Hx + g ≥ 0
        Equivalentemente:
                    min                                              t
                  x∈Rn ,t∈R
                    s.a          (Ax + b)T (Ax + b) − c T x − d          ≤ t      (8)
                                                        Hx + g           ≥ 0
        y utilizando el complemento de Schur (      Ir a Ap´ndice
                                                           e        ) se tiene:




10/68
Programaci´n semidefinida: aplicaciones
                  o
        El problema de programaci´n cuadr´tica convexa tambi´n se puede
                                 o        a                    e
        formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n :
                          min     (Ax + b)T (Ax + b) − c T x − d
                          x∈Rn                                                       (7)
                           s.a    Hx + g ≥ 0
        Equivalentemente:
                    min                                                 t
                  x∈Rn ,t∈R
                    s.a          (Ax + b)T (Ax + b) − c T x − d             ≤ t      (8)
                                                        Hx + g              ≥ 0
        y utilizando el complemento de Schur (         Ir a Ap´ndice
                                                              e        ) se tiene:
                     min                                               t
                  x∈Rn ,t∈R
                                     Im×m         Ax + b                             (9)
                     s.a                                                       0
                                   (Ax + b)T    cT x+d +t
                                                 diag(Hx + g )                 0
10/68
Programaci´n semidefinida: m´todos de resoluci´n
                  o                e                 o




11/68
Programaci´n semidefinida: m´todos de resoluci´n
                  o                e                 o




        • Punto interior




11/68
Programaci´n semidefinida: m´todos de resoluci´n
                  o                e                 o




        • Punto interior
        • Paquete o haz espectral (bundle methods)




11/68
Programaci´n semidefinida: m´todos de resoluci´n
                  o                e                 o




        • Punto interior
        • Paquete o haz espectral (bundle methods)




11/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

12/68
Filter-SDP




13/68
Filter-SDP


        • Algoritmo desarrollado por G´mez & Ramirez [GR06] para resolver
                                      o
          problemas del tipo:
                                  min      f (x)
                                  x∈Rn
                                  s.a    h(x) = 0                    (10)
                                         G (x) 0




13/68
Filter-SDP


        • Algoritmo desarrollado por G´mez & Ramirez [GR06] para resolver
                                      o
          problemas del tipo:
                                   min      f (x)
                                   x∈Rn
                                    s.a   h(x) = 0                    (10)
                                          G (x) 0
        • Basado en el algoritmo de filter-SQP, desarrollado en [FGLT01]
          para resolver problemas de programaci´n no lineal.
                                               o




13/68
Filter-SDP


        • Algoritmo desarrollado por G´mez & Ramirez [GR06] para resolver
                                      o
          problemas del tipo:
                                    min      f (x)
                                    x∈Rn
                                     s.a   h(x) = 0                         (10)
                                           G (x) 0
        • Basado en el algoritmo de filter-SQP, desarrollado en [FGLT01]
          para resolver problemas de programaci´n no lineal.
                                               o
        • Principales aspectos: utilizaci´n de un filtro, resoluci´n de un
                                         o                       o
          problema tangencial cuadr´tico y desarrollo de una fase de
                                   a
          restauraci´n.
                    o



13/68
Filter-SDP: filtro




14/68
Filter-SDP: filtro
        • Idea central: utilizar un enfoque multiobjetivo, donde se minimice
          la funci´n objetivo f (x) y una funci´n de m´rito θ(x), que
                  o                            o      e
          cuantifica la factibilidad de un punto, donde:
                         θ(x) = h(x)   2   + max{0, λ1 (G (x))}          (11)




14/68
Filter-SDP: filtro
        • Idea central: utilizar un enfoque multiobjetivo, donde se minimice
          la funci´n objetivo f (x) y una funci´n de m´rito θ(x), que
                  o                            o      e
          cuantifica la factibilidad de un punto, donde:
                           θ(x) = h(x)      2   + max{0, λ1 (G (x))}          (11)
        • El filtro F =   {(θ(xi ), f (xi ))}n
                                            i=1   almacena informaci´n de puntos
                                                                    o
          que no se dominan entre si:
                   xk domina a xp ⇔ f (xk ) ≤ f (xp ) y θ(xk ) ≤ θ(xp )




14/68
Filter-SDP: filtro
        • Idea central: utilizar un enfoque multiobjetivo, donde se minimice
          la funci´n objetivo f (x) y una funci´n de m´rito θ(x), que
                  o                            o      e
          cuantifica la factibilidad de un punto, donde:
                           θ(x) = h(x)      2   + max{0, λ1 (G (x))}          (11)
        • El filtro F =   {(θ(xi ), f (xi ))}n
                                            i=1   almacena informaci´n de puntos
                                                                    o
          que no se dominan entre si:
                   xk domina a xp ⇔ f (xk ) ≤ f (xp ) y θ(xk ) ≤ θ(xp )
        • Se utiliza como criterio para escoger nuevos puntos xk de la
          sucesi´n convergente (salvo subsucesiones) al ´ptimo (local).
                o                                       o




14/68
Filter-SDP: filtro
        • Idea central: utilizar un enfoque multiobjetivo, donde se minimice
          la funci´n objetivo f (x) y una funci´n de m´rito θ(x), que
                  o                            o      e
          cuantifica la factibilidad de un punto, donde:
                           θ(x) = h(x)      2   + max{0, λ1 (G (x))}             (11)
        • El filtro F =   {(θ(xi ), f (xi ))}n
                                            i=1   almacena informaci´n de puntos
                                                                    o
          que no se dominan entre si:
                   xk domina a xp ⇔ f (xk ) ≤ f (xp ) y θ(xk ) ≤ θ(xp )
        • Se utiliza como criterio para escoger nuevos puntos xk de la
          sucesi´n convergente (salvo subsucesiones) al ´ptimo (local).
                o                                       o
        • Todos los puntos xk que se guarden en el filtro deben ser
          aceptables:
                                      x es aceptable por F
                                               ⇔
                ∀i ∈ {1, . . . , n} : θ(x) ≤ βθ(xi ) ´ f (x) + γθ(x) ≤ f (xi )
                                                     o
14/68
Filter-SDP: filtro




                            A domina a B




15/68
Filter-SDP: filtro




                            A no domina a B




16/68
Filter-SDP: filtro




                            F es aceptable por el filtro
                            {A, B, C , D, E }




17/68
Filter-SDP: filtro




                            Agregar punto F al filtro
                            {A, B, C , D, E }.
                            Nuevo filtro: {A, B, C , F , E }




18/68
Filter-SDP: problema tangencial cuadr´tico
                                             a




19/68
Filter-SDP: problema tangencial cuadr´tico
                                             a


        En cada iteraci´n del algoritmo, un punto xk+1 = xk + dk se contruye
                        o
        utilizando la soluci´n dk de un problema tangencial cuadr´tico (trust
                            o                                    a
        region local semidefinite approximation), asociado al punto xk y a un
        radio ρ:




19/68
Filter-SDP: problema tangencial cuadr´tico
                                             a


        En cada iteraci´n del algoritmo, un punto xk+1 = xk + dk se contruye
                        o
        utilizando la soluci´n dk de un problema tangencial cuadr´tico (trust
                            o                                    a
        region local semidefinite approximation), asociado al punto xk y a un
        radio ρ:
                                                    1
                      QP(x, ρ) :   minn     f (x)d + d T Bd
                                   d∈R              2
                                   s.a.   h(x) + Dh(x)d = 0
                                          G (x) + DG (x)d     0
                                           d   ∞   ≤ρ




19/68
Filter-SDP: fase de restauraci´n
                                      o




20/68
Filter-SDP: fase de restauraci´n
                                      o




        La fase de restauraci´n tiene como objetivo generar un punto xk que
                             o
        cumpla con las siguientes condiciones:




20/68
Filter-SDP: fase de restauraci´n
                                      o




        La fase de restauraci´n tiene como objetivo generar un punto xk que
                             o
        cumpla con las siguientes condiciones:
   A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 .
   B1 QP(xk , ρ) es factible.
        donde F k−1 es el filtro obtenido de la iteraci´n anterior y θ(x) es la
                                                      o
        funci´n de m´rito escogida.
             o      e




20/68
Filter-SDP: algoritmo   Ir a pseudoc´digo
                                            o




21/68
Filter-SDP: algoritmo   Ir a pseudoc´digo
                                            o




21/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

22/68
Computaci´n paralela
                 o




23/68
Computaci´n paralela
                 o
        • Situaci´n en la que al menos 2 procesadores cooperan
                 o
          intercambiando informaci´n mientras trabajan en diferentes partes
                                  o
          de uno o m´s problemas.
                     a




23/68
Computaci´n paralela
                 o
        • Situaci´n en la que al menos 2 procesadores cooperan
                 o
          intercambiando informaci´n mientras trabajan en diferentes partes
                                    o
          de uno o m´s problemas.
                      a
        • Diferentes clasificaciones seg´n: n´mero de procesadores, acceso a
                                       u    u
          la memoria, redes que comunican a los procesadores, I/O, etc.




23/68
Computaci´n paralela
                 o
        • Situaci´n en la que al menos 2 procesadores cooperan
                 o
          intercambiando informaci´n mientras trabajan en diferentes partes
                                    o
          de uno o m´s problemas.
                      a
        • Diferentes clasificaciones seg´n: n´mero de procesadores, acceso a
                                       u     u
          la memoria, redes que comunican a los procesadores, I/O, etc.
        • En este trabajo se estudiaron sistemas que funcionan en
          arquitecturas de memoria distribu´ıda:




23/68
Computaci´n paralela: aspectos paralelizables de
                   o
        Filter-SDP




24/68
Computaci´n paralela: aspectos paralelizables de
                   o
        Filter-SDP




        • C´lculo de θ(x)
           a




24/68
Computaci´n paralela: aspectos paralelizables de
                   o
        Filter-SDP




        • C´lculo de θ(x)
           a
        • Resoluci´n de QP(x, ρ)
                  o




24/68
Computaci´n paralela: aspectos paralelizables de
                   o
        Filter-SDP




        • C´lculo de θ(x)
           a
        • Resoluci´n de QP(x, ρ)
                  o
        • Otras operaciones algebraicas




24/68
Computaci´n paralela: aspectos paralelizables de
                   o
        Filter-SDP




        • C´lculo de θ(x)
           a
        • Resoluci´n de QP(x, ρ)
                  o
        • Otras operaciones algebraicas




24/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

25/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

26/68
Estudio de sistemas de c´lculo paralelo
                                a




27/68
Estudio de sistemas de c´lculo paralelo
                                a




        • ScaLAPACK: Scalable Linear Algebra Package




27/68
Estudio de sistemas de c´lculo paralelo
                                a




        • ScaLAPACK: Scalable Linear Algebra Package
        • PCSDP: C Library for Parallel Linear Semidefinite Programming




27/68
ScaLAPACK




28/68
ScaLAPACK




28/68
ScaLAPACK

           • Estudio de las
             librer´ b´sicas:
                   ıas a
             BLAS, LAPACK,
             BLACS, PBLAS.




28/68
ScaLAPACK

           • Estudio de las
             librer´ b´sicas:
                   ıas a
             BLAS, LAPACK,
             BLACS, PBLAS.
           • Intel Math Kernel
             Library.




28/68
ScaLAPACK

           • Estudio de las
             librer´ b´sicas:
                   ıas a
             BLAS, LAPACK,
             BLACS, PBLAS.
           • Intel Math Kernel
             Library.
           • DGEMM, PDPOTRF,
             PDPOTRS y PDSYEVX.




28/68
ScaLAPACK

           • Estudio de las
             librer´ b´sicas:
                   ıas a
             BLAS, LAPACK,
             BLACS, PBLAS.
           • Intel Math Kernel
             Library.
           • DGEMM, PDPOTRF,
             PDPOTRS y PDSYEVX.
           • Se gener´ una
                     o
             documentaci´n con
                            o
             ejemplos simples para
             instalar, conectar y
             utilizar esta librer´
                                 ıa.

28/68
PCSDP




29/68
PCSDP



        • CSDP: librer´
                      ıa/solver (FLOSS) para SDP desarrollada por B.
          Borchers, U. New Mexico ([Bor99]).




29/68
PCSDP



        • CSDP: librer´
                      ıa/solver (FLOSS) para SDP desarrollada por B.
          Borchers, U. New Mexico ([Bor99]).
        • PCSDP: librer´
                       ıa/solver (FLOSS) basado en CSDP, desarrollado
          para sistemas de memoria distribu´ (Beowulf) por Ivan Ivanov,
                                           ıda
          TU Delft ([IK07]).




29/68
PCSDP



        • CSDP: librer´
                      ıa/solver (FLOSS) para SDP desarrollada por B.
          Borchers, U. New Mexico ([Bor99]).
        • PCSDP: librer´
                       ıa/solver (FLOSS) basado en CSDP, desarrollado
          para sistemas de memoria distribu´ (Beowulf) por Ivan Ivanov,
                                           ıda
          TU Delft ([IK07]).
        • Utilizaci´n de ScaLAPACK para operaciones algebraicas.
                   o




29/68
PCSDP



        • CSDP: librer´
                      ıa/solver (FLOSS) para SDP desarrollada por B.
          Borchers, U. New Mexico ([Bor99]).
        • PCSDP: librer´
                       ıa/solver (FLOSS) basado en CSDP, desarrollado
          para sistemas de memoria distribu´ (Beowulf) por Ivan Ivanov,
                                           ıda
          TU Delft ([IK07]).
        • Utilizaci´n de ScaLAPACK para operaciones algebraicas.
                   o
        • Claridad en el c´digo, adem´s de reutilizaci´n de rutinas.
                          o          a                o




29/68
PCSDP



        • CSDP: librer´
                      ıa/solver (FLOSS) para SDP desarrollada por B.
          Borchers, U. New Mexico ([Bor99]).
        • PCSDP: librer´
                       ıa/solver (FLOSS) basado en CSDP, desarrollado
          para sistemas de memoria distribu´ (Beowulf) por Ivan Ivanov,
                                           ıda
          TU Delft ([IK07]).
        • Utilizaci´n de ScaLAPACK para operaciones algebraicas.
                   o
        • Claridad en el c´digo, adem´s de reutilizaci´n de rutinas.
                          o          a                o
        • Se utiliza para resolver QP(x, ρ).




29/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

30/68
fnlsdp




31/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

32/68
Dise˜o de distintas fases de restauraci´n
            n                                  o




33/68
Dise˜o de distintas fases de restauraci´n
            n                                  o



        • Fase de restauraci´n: encontrar xk que satisface A1 y B1.
                                o
         A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 .
         B1 QP(xk , ρ) es factible.




33/68
Dise˜o de distintas fases de restauraci´n
            n                                  o



        • Fase de restauraci´n: encontrar xk que satisface A1 y B1.
                                o
         A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 .
         B1 QP(xk , ρ) es factible.
        • Enfoques estudiados:




33/68
Dise˜o de distintas fases de restauraci´n
            n                                  o



        • Fase de restauraci´n: encontrar xk que satisface A1 y B1.
                                o
         A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 .
         B1 QP(xk , ρ) es factible.
        • Enfoques estudiados:
          ◦ Enfoque original (implementaci´n MATLAB)
                                               o




33/68
Dise˜o de distintas fases de restauraci´n
            n                                  o



        • Fase de restauraci´n: encontrar xk que satisface A1 y B1.
                                o
         A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 .
         B1 QP(xk , ρ) es factible.
        • Enfoques estudiados:
          ◦ Enfoque original (implementaci´n MATLAB)
                                               o
          ◦ Restauraci´n inexacta
                         o




33/68
Dise˜o de distintas fases de restauraci´n
            n                                  o



        • Fase de restauraci´n: encontrar xk que satisface A1 y B1.
                                o
         A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 .
         B1 QP(xk , ρ) es factible.
        • Enfoques estudiados:
          ◦ Enfoque original (implementaci´n MATLAB)
                                               o
          ◦ Restauraci´n inexacta
                         o
          ◦ Soluciones suboptimales SOF (Static Output Feedback)




33/68
Dise˜o de distintas fases de restauraci´n
            n                                  o



        • Fase de restauraci´n: encontrar xk que satisface A1 y B1.
                                o
         A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 .
         B1 QP(xk , ρ) es factible.
        • Enfoques estudiados:
          ◦ Enfoque original (implementaci´n MATLAB)
                                               o
          ◦ Restauraci´n inexacta
                         o
          ◦ Soluciones suboptimales SOF (Static Output Feedback)
          ◦ Posicionamiento de polos




33/68
Enfoque original   Ir a pseudoc´digo
                                       o




34/68
Enfoque original   Ir a pseudoc´digo
                                       o




34/68
Enfoque original   Ir a pseudoc´digo
                                       o




35/68
Enfoque original   Ir a pseudoc´digo
                                       o




35/68
Restauraci´n inexacta
                  o




36/68
Restauraci´n inexacta
                  o

        • M´todo desarrollado en [SM08] para programaci´n no lineal, que
           e                                           o
          utiliza 2 fases: factibilidad y optimalidad.




36/68
Restauraci´n inexacta
                  o

        • M´todo desarrollado en [SM08] para programaci´n no lineal, que
           e                                           o
          utiliza 2 fases: factibilidad y optimalidad.
        • Etapa de factibilidad entrega una direcci´n de descenso para θ(x).
                                                   o




36/68
Restauraci´n inexacta
                  o

        • M´todo desarrollado en [SM08] para programaci´n no lineal, que
           e                                           o
          utiliza 2 fases: factibilidad y optimalidad.
        • Etapa de factibilidad entrega una direcci´n de descenso para θ(x).
                                                   o
        • Se adapt´ la etapa de factibilidad para nuestro problema
                  o
          min{f (x) : h(x) = 0, G (x)           0, x ∈ Rn }:
                                    +
                                 P|JG |
              LP(xk ) :   minn        i=1   λi (G (xk ) + DG (xk )d)
                          d∈R         P                                2
                                 +σ        hj (xk ) + Dhj (xk )d
                                          j∈J                                               (12)
                          s.a         hj (xk ) + Dhj (xk )d                =   0, j ∈ J ∗
                                  E T (G (xk ) + DG (xk )d)E                   0




36/68
Restauraci´n inexacta
                  o

        • M´todo desarrollado en [SM08] para programaci´n no lineal, que
           e                                           o
          utiliza 2 fases: factibilidad y optimalidad.
        • Etapa de factibilidad entrega una direcci´n de descenso para θ(x).
                                                   o
        • Se adapt´ la etapa de factibilidad para nuestro problema
                  o
          min{f (x) : h(x) = 0, G (x)           0, x ∈ Rn }:
                                    +
                                 P|JG |
              LP(xk ) :   minn        i=1   λi (G (xk ) + DG (xk )d)
                          d∈R         P                                2
                                 +σ        hj (xk ) + Dhj (xk )d
                                          j∈J                                               (12)
                          s.a         hj (xk ) + Dhj (xk )d                =   0, j ∈ J ∗
                                  E T (G (xk ) + DG (xk )d)E                   0

        • Este m´todo entrega como resultado un punto zk = xk + αd, con
                e
          d soluci´n de LP(xk ) y α el paso de descenso (backtracking), y se
                  o
          interpreta como un punto suficientemente m´s factible que xk de
                                                      a
          tal manera que es aceptable por el filtro.

36/68
Restauraci´n inexacta
                  o             Ir a pseudoc´digo
                                            o




37/68
Restauraci´n inexacta
                  o             Ir a pseudoc´digo
                                            o




37/68
Restauraci´n inexacta
                  o             Ir a pseudoc´digo
                                            o




38/68
Restauraci´n inexacta
                  o             Ir a pseudoc´digo
                                            o




38/68
Soluciones suboptimales SOF




39/68
Soluciones suboptimales SOF


        • En los 2 m´todos anteriores se puede caer en una situaci´n de loop
                    e                                             o
          que desencadena la detenci´n del algoritmo (fallo en la fase de
                                    o
          restauraci´n).
                    o




39/68
Soluciones suboptimales SOF


        • En los 2 m´todos anteriores se puede caer en una situaci´n de loop
                    e                                             o
          que desencadena la detenci´n del algoritmo (fallo en la fase de
                                    o
          restauraci´n).
                    o
        • Se decidi´ investigar m´todos para generar soluciones suboptimales
                   o             e
          asociadas al problema aplicado que se intenta resolver (dise˜o de
                                                                      n
          controles SOF). Esas soluciones se usar´n como puntos iniciales en
                                                  a
          la fase de restauraci´n (se espera que hayan m´s puntos aceptables
                               o                        a
          por el filtro).




39/68
Soluciones suboptimales SOF


        • En los 2 m´todos anteriores se puede caer en una situaci´n de loop
                    e                                             o
          que desencadena la detenci´n del algoritmo (fallo en la fase de
                                    o
          restauraci´n).
                    o
        • Se decidi´ investigar m´todos para generar soluciones suboptimales
                   o             e
          asociadas al problema aplicado que se intenta resolver (dise˜o de
                                                                      n
          controles SOF). Esas soluciones se usar´n como puntos iniciales en
                                                  a
          la fase de restauraci´n (se espera que hayan m´s puntos aceptables
                               o                        a
          por el filtro).
        • En [Mos08] se describen m´todos para generar soluciones
                                   e
          sub´ptimas para una aplicaci´n simplificada de dise˜o de controles
             o                        o                     n
          SOF.



39/68
Soluciones suboptimales SOF   Ir a pseudoc´digo
                                                  o




40/68
Soluciones suboptimales SOF   Ir a pseudoc´digo
                                                  o




40/68
Posicionamiento de polos




41/68
Posicionamiento de polos



        • Consiste en un upgrade del m´todo de soluciones optimales SOF.
                                      e




41/68
Posicionamiento de polos



        • Consiste en un upgrade del m´todo de soluciones optimales SOF.
                                      e
        • Utiliza una rutina descrita en [YO07] que permite encontrar una
          matr´ F dado un vector de valores propios λD de tal forma que
              ız
          λ(A + BFC ) = λD .




41/68
Posicionamiento de polos



        • Consiste en un upgrade del m´todo de soluciones optimales SOF.
                                      e
        • Utiliza una rutina descrita en [YO07] que permite encontrar una
          matr´ F dado un vector de valores propios λD de tal forma que
              ız
          λ(A + BFC ) = λD .
        • Con esto se pueden generar una serie de nuevos puntos de partida
          para el algoritmo.




41/68
Posicionamiento de polos



        • Consiste en un upgrade del m´todo de soluciones optimales SOF.
                                      e
        • Utiliza una rutina descrita en [YO07] que permite encontrar una
          matr´ F dado un vector de valores propios λD de tal forma que
              ız
          λ(A + BFC ) = λD .
        • Con esto se pueden generar una serie de nuevos puntos de partida
          para el algoritmo.
        • En caso de que falle la fase de restauraci´n, se genera un nuevo
                                                    o
          punto xk y se pasa como input nuevamente a esta fase, el n´mero
                                                                    u
          de veces que se defina.




41/68
Posicionamiento de polos   Ir a pseudoc´digo
                                               o




42/68
Posicionamiento de polos   Ir a pseudoc´digo
                                               o




42/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

43/68
Resultados




        • Comparaci´n fnlsdp e implementaci´n MATLAB
                   o                       o
        • Speedup de fnlsdp
        • Comparaci´n de fases de restauraci´n
                   o                        o




44/68
Resultados: fnlsdp vs. MATLAB




        • 54 problemas ((A, B)-controlables y (A, C )-observables).
        • Igual fase de restauraci´n (enfoque original, distintas
                                  o
          implementaciones).
        • Igual punto inicial (F0 , Q0 , V0 ) (generado por m´todo de
                                                             e
          posicionamiento de polos).
        • TOL = 10−4




45/68
Resultados: fnlsdp vs. MATLAB


        Eje Y: n´mero de problemas que satisfacen d < U (izquierda),
                u
        f (x) < U (centro) y θ(x) < U (derecha).




46/68
Resultados: speedup


                       t
        • Speedup = t paralelo (mientras m´s peque˜o, mejor).
                                            a       n
                      secuencial
        • Se escogieron los tests de tama˜o grande cuyo tiempo de ejecuci´n
                                         n                               o
          fuera mayor a 100 segundos (4 de 54 problemas).
        • Se realizaron pruebas de speedup para las componentes
          paralelizadas, de manera independiente (resoluci´n de QP(x, ρ) y
                                                          o
          c´lculo de θ(x)).
           a
        • Cluster leloo: 4 servidores con 8 procesadores c/u. S´lo se utiliz´
                                                               o            o
          1 servidor, pues no est´n conectados por una red ad-hoc
                                 a
          (disminuye la velocidad de transferencia de mensajes y perturba las
          mediciones).



47/68
Resultados: speedup fnlsdp
        Tiempos de ejecuci´n de fnlsdp:
                          o

            Problema   1 proceso   2 procesos   4 procesos   8 procesos
              HE4       102.62       100.97       119.42      1153.21
              HE5       138.33       222.38       248.03       858.92
             BDT1       234.70       211.07       187.33       436.45
             ROC8       795.10       814.02       653.07      2095.69

        Speedup de fnlsdp:

            Problema   1 proceso   2 procesos   4 procesos   8 procesos
              HE1          1          0.98         1.16        11.24
              HE5          1          1.61         1.79         6.21
             BDT1          1          0.89         0.79         1.86
             ROC8          1          1.02         0.82         2.63


48/68
Resultados: resoluci´n de QP(x, ρ)
                            o

        Speedup de PCSDP:
         Problema      m      n    1 proceso   2 procesos   4 procesos   8 procesos
           truss4     12     19        1          7.66          8.1         9.71
           truss3     27     31        1          6.58          6.9        13.83
            qap5      136    26        1          5.55         5.65         6.27
         gpp124-1     125    124       1          2.52         2.56         4.33
           arch0      174    335       1          0.93         0.81         1.39
         gpp250-1     250    250       1          4.27         1.43         1.33
         gpp500-1     501    500       1           2.5         0.75         1.37
         equalG11     801    801       1          0.78         0.85         0.82
          qap10      1021    101       1          1.02         0.84         0.84
         control10   1326    150       1           0.7         0.53         0.64
          qpG51      1000   2000       1          1.04           1          1.49




49/68
Resultados: c´lculo de θ(x)
                     a



        Speedup de PDSYEVX:
          Problema   Dimensi´n
                             o   1 proceso   2 procesos   4 procesos   8 procesos
          sherman1      1000         1          2.16         2.09         2.25
          lshp1009      1009         1          2.38          2.3         3.91
           rajat02      1960         1          0.77         0.52         0.73
            ex14        3251         1          0.61          0.4         0.41
             c-26       4307         1           0.6         0.43         0.46
             c-30       5321         1          0.64         0.47         0.48
          bcsstk17     10974         1          0.63         0.45         0.54




50/68
Resultados: fases de restauraci´n
                                       o




        • Se compararon 4 m´todos:
                               e
          1. Enfoque original + SOF
          2. Enfoque original + posicionamiento de polos
          3. Restauraci´n inexacta + SOF
                       o
          4. Restauraci´n inexacta + posicionamiento de polos
                       o
        • Se escogi´ la bater´ de 54 problemas utilizada anteriormente.
                   o         ıa




51/68
Resultados: fases de restauraci´n
                                       o


        Eje Y: n´mero de problemas que satisfacen d < U (izquierda),
                u
        f (x) < U (centro) y θ(x) < U (derecha).

                    m´todo 1, m´todo 2, m´todo 3, m´todo 4
                     e         e         e         e




52/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

53/68
Conclusiones




          a
              Enfoque original + SOF sub´ptimales
                                        o
          b
              Restauraci´n inexacta + posicionamiento de polos
                        o
54/68
Conclusiones
        • Implementaci´n C:
                      o




          a
              Enfoque original + SOF sub´ptimales
                                        o
          b
              Restauraci´n inexacta + posicionamiento de polos
                        o
54/68
Conclusiones
        • Implementaci´n C:
                        o
           ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB
                                                      o
             en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo
                 e                            o                  e
             no se puede asegurar nada con respecto a la terminaci´n del
                                                                     o
             algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0.
                              o                    o             o




          a
              Enfoque original + SOF sub´ptimales
                                        o
          b
              Restauraci´n inexacta + posicionamiento de polos
                        o
54/68
Conclusiones
        • Implementaci´n C:
                         o
           ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB
                                                      o
             en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo
                 e                             o                   e
             no se puede asegurar nada con respecto a la terminaci´n del
                                                                       o
             algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0.
                               o                    o              o
           ◦ La utilizaci´n de c´lculo paralelo tiene utilidad s´lo si el problema es
                         o       a                              o
             de grandes dimensiones. Se logr´ obtener un speedup adecuado en
                                               o
             pocos casos de prueba.




          a
              Enfoque original + SOF sub´ptimales
                                        o
          b
              Restauraci´n inexacta + posicionamiento de polos
                        o
54/68
Conclusiones
        • Implementaci´n C:
                         o
           ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB
                                                      o
             en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo
                 e                             o                   e
             no se puede asegurar nada con respecto a la terminaci´n del
                                                                       o
             algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0.
                               o                    o              o
           ◦ La utilizaci´n de c´lculo paralelo tiene utilidad s´lo si el problema es
                         o       a                              o
             de grandes dimensiones. Se logr´ obtener un speedup adecuado en
                                               o
             pocos casos de prueba.
        • Dise˜o de fases de restauraci´n:
               n                          o




          a
              Enfoque original + SOF sub´ptimales
                                        o
          b
              Restauraci´n inexacta + posicionamiento de polos
                        o
54/68
Conclusiones
        • Implementaci´n C:
                          o
           ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB
                                                      o
             en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo
                 e                             o                   e
             no se puede asegurar nada con respecto a la terminaci´n del
                                                                       o
             algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0.
                                o                   o              o
           ◦ La utilizaci´n de c´lculo paralelo tiene utilidad s´lo si el problema es
                          o       a                             o
             de grandes dimensiones. Se logr´ obtener un speedup adecuado en
                                               o
             pocos casos de prueba.
        • Dise˜o de fases de restauraci´n:
               n                           o
           ◦ M´todo 1a y m´todo 4b , entregan los mejores rendimientos
               e              e
             estad´ısticos con respecto a la bater´ de prueba COMPleib. Sin
                                                  ıa
             embargo, el m´todo 1 entrega mejores resultados para la funci´n
                             e                                                  o
             objetivo.



          a
              Enfoque original + SOF sub´ptimales
                                        o
          b
              Restauraci´n inexacta + posicionamiento de polos
                        o
54/68
Conclusiones
        • Implementaci´n C:
                          o
           ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB
                                                      o
             en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo
                 e                             o                   e
             no se puede asegurar nada con respecto a la terminaci´n del
                                                                       o
             algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0.
                                o                   o              o
           ◦ La utilizaci´n de c´lculo paralelo tiene utilidad s´lo si el problema es
                          o       a                             o
             de grandes dimensiones. Se logr´ obtener un speedup adecuado en
                                               o
             pocos casos de prueba.
        • Dise˜o de fases de restauraci´n:
               n                           o
           ◦ M´todo 1a y m´todo 4b , entregan los mejores rendimientos
               e              e
             estad´ısticos con respecto a la bater´ de prueba COMPleib. Sin
                                                  ıa
             embargo, el m´todo 1 entrega mejores resultados para la funci´n
                             e                                                  o
             objetivo.
           ◦ En varios casos, un m´todo encontr´ una soluci´n (suboptimal) y los
                                    e              o            o
             otros no. Conviene tener varias fases de restauraci´n activas
                                                                  o
             simult´neamente.
                    a
          a
              Enfoque original + SOF sub´ptimales
                                        o
          b
              Restauraci´n inexacta + posicionamiento de polos
                        o
54/68
Esquema

        Introducci´n
                  o
        Antecedentes
           Programaci´n semidefinida lineal (SDP)
                       o
           Filter-SDP
           Computaci´n paralela
                      o
        Trabajo realizado
           Estudio de sistemas de c´lculo paralelo
                                    a
           Implementaci´n en C: fnlsdp
                         o
           Dise˜o de distintas fases de restauraci´n
               n                                  o
        Resultados num´ricos
                      e
        Conclusiones
        Trabajo futuro

55/68
Trabajo futuro




56/68
Trabajo futuro



        • Implementaci´n de una fase de restauraci´n en C que garantice la
                      o                           o
          convergencia y buen funcionamiento de la aplicaci´n fnlsdp.
                                                           o




56/68
Trabajo futuro



        • Implementaci´n de una fase de restauraci´n en C que garantice la
                      o                           o
          convergencia y buen funcionamiento de la aplicaci´n fnlsdp.
                                                           o
        • Dise˜o de otras fases de restauraci´n, o modificaci´n de las ya
              n                              o              o
          existentes.




56/68
Trabajo futuro



        • Implementaci´n de una fase de restauraci´n en C que garantice la
                      o                           o
          convergencia y buen funcionamiento de la aplicaci´n fnlsdp.
                                                           o
        • Dise˜o de otras fases de restauraci´n, o modificaci´n de las ya
              n                              o              o
          existentes.
        • Depuraci´n de la aplicaci´n fnlsdp para generar resultados
                  o                o
          utilizando problemas m´s grandes y verificar el speedup obtenido.
                                a




56/68
Trabajo futuro



        • Implementaci´n de una fase de restauraci´n en C que garantice la
                      o                           o
          convergencia y buen funcionamiento de la aplicaci´n fnlsdp.
                                                           o
        • Dise˜o de otras fases de restauraci´n, o modificaci´n de las ya
              n                              o              o
          existentes.
        • Depuraci´n de la aplicaci´n fnlsdp para generar resultados
                  o                o
          utilizando problemas m´s grandes y verificar el speedup obtenido.
                                a
        • Utilizaci´n de distintos solvers de programaci´n semidefinida o
                   o                                    o
          distintas formas de calcular valores propios.




56/68
¿Preguntas?




57/68
Bibliograf´
                  ıa

           B. Borchers, Csdp, a c library for semidefinite programming, Optimization Methods and Software 11/12 (1999),
           613–623.
           R. Fletcher, N.I.M. Gould, S. Leyffer, and Ph.L. Toint, Global convergence of trust region sqp filter algorithms for
           nonlinear programming, Tech. report, 99/03, Department of Mathematics, University of Namur, Belgium, 2001.

           W. G´mez and H. Ram´
               o               ırez, A filter algorithm for nonlinear semidefinite programming, Tech. report, Centro de
           Modelamiento Matem´tico, 2006.
                             a

           I.D. Ivanov and E. de Klerk, Parallel implementation of a semidefinite programming solver based on csdp in a
           distributed memory cluster, Discussion Paper 2007-20, Tilburg University, Center for Economic Research, 2007.

           El-S. M.E. Mostafa, First-order penalty methods for computing suboptimal output feedback controllers, Appl.
           and Comput. Math. 7 (2008), no. 1, pp. 66–83.

           C. Silva and M. Monteiro, A filter inexact-restoration method for nonlinear programming, TOP: An Official
           Journal of the Spanish Society of Statistics and Operations Research 16 (2008), no. 1, 126–146.

           L. Vandenberghe and S. Boyd, Semidefinite programming, SIAM Review 38 (1996), no. 1, pp. 49–95.

           K. Yang and R. Orsi, Static output feedback pole placement via a trust region approach, IEEE Transactions on
           Automatic Control 52 (2007), no. 11, pp. 2146–2150.




58/68
Ap´ndice
          e

          Regresar a Ejemplos SDP


        Propiedad (Complemento de Schur)
                     A B
        Para U =              con A, C sim´tricas y A 0, se tiene que
                                          e
                    BT C
        U 0 s´ y s´lo s´ C − B T A−1 B 0. A la matr´ C − B T A−1 B se le
                ı  o ı                               ız
        llama complemento de Schur de A en U.
          Regresar a Ejemplos SDP


        Propiedad (Criterio de Sylvester)
        A 0 s´ y s´lo s´ todo menor principal (diagonal) de A (submatr´ que
                ı o ı                                                   ız
        se obtiene como resultado de eliminar filas de ´
                                                      ındices I y columnas de
        ´
        ındices J a la matr´ A, con I = J) es semidefinido positivo.
                           ız



59/68
Ap´ndice
          e

          Regresar a Ejemplos SDP


        Propiedad (Complemento de Schur)
                     A B
        Para U =              con A, C sim´tricas y A 0, se tiene que
                                          e
                    BT C
        U 0 s´ y s´lo s´ C − B T A−1 B 0. A la matr´ C − B T A−1 B se le
                ı  o ı                               ız
        llama complemento de Schur de A en U.
          Regresar a Ejemplos SDP


        Propiedad (Criterio de Sylvester)
        A 0 s´ y s´lo s´ todo menor principal (diagonal) de A (submatr´ que
                ı o ı                                                   ız
        se obtiene como resultado de eliminar filas de ´
                                                      ındices I y columnas de
        ´
        ındices J a la matr´ A, con I = J) es semidefinido positivo.
                           ız



59/68
Regresar a Filter-SDP
        1: (INICIALIZACION) k ← 1, F 0 = {(u, −∞)}, dk ← ∞n , β ∈ (0, 1), γ ∈ (0, β), u > 0, σ ∈ (0, 1), ρ > 0,
                             ´
           ρinicial > ρ, max iteraciones > 1.
        2: Mientras k < max iteraciones hacer
        3:      (FASE RESTAURACION) Encontrar xk y ρinicial ≥ ρ > ρ tales que: (θ(xk ), f (xk )) es aceptable para F k−1
                                       ´                              ˜
                y QP(xk , ρ) es factible.
                           ˜
        4:      ρ ← ρ.˜
        5:      (PROBLEMA TANGENCIAL) Resolver QP(xk , ρ).
        6:      Si dk < +∞ (QP(xk , ρ) es factible) entonces
        7:          Si dk <        entonces
        8:              Fin del algoritmo. Soluci´n: xk .
                                                  o
        9:          Fin (Si)
        10:          Si (θ(xk + dk ), f (xk + dk )) no es aceptable por F k−1 ∪ {(θ(xk ), f (xk ))} entonces
        11:               ρ ← ρ . Ir a PROBLEMA TANGENCIAL.
                                2
        12:          De lo contrario,
        13:              Si f (xk )T dk + 1 dk Bdk < 0 y f (xk ) + σ( f (xk )T dk + 2 dk Bdk ) < f (xk + dk ) entonces
                                          2
                                             T                                      1 T

        14:                  ρ ← ρ . Ir a PROBLEMA TANGENCIAL.
                                   2
        15:             De lo contrario,
        16:                 Si f (xk )T dk + 1 dk Bdk ≥ 0 entonces
                                             2
                                                T

        17:                         F k ← Add((θ(xk ), f (xk )), F k−1 ) Iteraci´n tipo θ
                                                                                o
        18:                    De lo contrario,
        19:                           k
                                    F ←F     k−1
                                                 Iteraci´n tipo f
                                                        o
        20:                    Fin (Si)
        21:                    xk+1 ← xk + dk , k ← k + 1, ρ ← ρinicial , Ir a PROBLEMA TANGENCIAL.
        22:                Fin (Si)
        23:           Fin (Si)
        24:       De lo contrario,
        25:           F k ← Add((θ(xk ), f (xk )), F k−1 ) Iteraci´n tipo θ
                                                                   o
        26:           k ← k + 1. Ir a FASE RESTAURACION.     ´
        27:       Fin (Si)
        28:   Fin (Mientras)

60/68
Regresar a Filter-SDP
        1: (INICIALIZACION) k ← 1, F 0 = {(u, −∞)}, dk ← ∞n , β ∈ (0, 1), γ ∈ (0, β), u > 0, σ ∈ (0, 1), ρ > 0,
                             ´
           ρinicial > ρ, max iteraciones > 1.
        2: Mientras k < max iteraciones hacer
        3:      (FASE RESTAURACION) Encontrar xk y ρinicial ≥ ρ > ρ tales que: (θ(xk ), f (xk )) es aceptable para F k−1
                                       ´                              ˜
                y QP(xk , ρ) es factible.
                           ˜
        4:      ρ ← ρ.˜
        5:      (PROBLEMA TANGENCIAL) Resolver QP(xk , ρ).
        6:      Si dk < +∞ (QP(xk , ρ) es factible) entonces
        7:          Si dk <        entonces
        8:              Fin del algoritmo. Soluci´n: xk .
                                                  o
        9:          Fin (Si)
        10:          Si (θ(xk + dk ), f (xk + dk )) no es aceptable por F k−1 ∪ {(θ(xk ), f (xk ))} entonces
        11:               ρ ← ρ . Ir a PROBLEMA TANGENCIAL.
                                2
        12:          De lo contrario,
        13:              Si f (xk )T dk + 1 dk Bdk < 0 y f (xk ) + σ( f (xk )T dk + 2 dk Bdk ) < f (xk + dk ) entonces
                                          2
                                             T                                      1 T

        14:                  ρ ← ρ . Ir a PROBLEMA TANGENCIAL.
                                   2
        15:             De lo contrario,
        16:                 Si f (xk )T dk + 1 dk Bdk ≥ 0 entonces
                                             2
                                                T

        17:                         F k ← Add((θ(xk ), f (xk )), F k−1 ) Iteraci´n tipo θ
                                                                                o
        18:                    De lo contrario,
        19:                           k
                                    F ←F     k−1
                                                 Iteraci´n tipo f
                                                        o
        20:                    Fin (Si)
        21:                    xk+1 ← xk + dk , k ← k + 1, ρ ← ρinicial , Ir a PROBLEMA TANGENCIAL.
        22:                Fin (Si)
        23:           Fin (Si)
        24:       De lo contrario,
        25:           F k ← Add((θ(xk ), f (xk )), F k−1 ) Iteraci´n tipo θ
                                                                   o
        26:           k ← k + 1. Ir a FASE RESTAURACION.     ´
        27:       Fin (Si)
        28:   Fin (Mientras)

60/68
Enfoque original

          Regresar a Enfoque original

        1:    N ← n´mero de veces que se realiza la b´squeda
                      u                                   u
        2:    ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ)
                               a               o
        3:    ρ ← (0, ρmax )
        4:    xk ← punto inicial o proveniente de la iteraci´n k − 1
                                                               o
        5:    Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible))
              ∧ paso ≤ N hacer
         6:      xk ← fminsearch(θ(·), xk )
         7:      Si xk es aceptable para Fk−1 entonces
         8:         Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer
         9:            ρ←2∗ρ
        10:            dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido)
        11:         Fin (Mientras)
        12:      Fin (Si)
        13:      paso ← paso + 1
        14:   Fin (Mientras)



61/68
Enfoque original

          Regresar a Enfoque original

        1:    N ← n´mero de veces que se realiza la b´squeda
                      u                                   u
        2:    ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ)
                               a               o
        3:    ρ ← (0, ρmax )
        4:    xk ← punto inicial o proveniente de la iteraci´n k − 1
                                                               o
        5:    Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible))
              ∧ paso ≤ N hacer
         6:      xk ← fminsearch(θ(·), xk )
         7:      Si xk es aceptable para Fk−1 entonces
         8:         Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer
         9:            ρ←2∗ρ
        10:            dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido)
        11:         Fin (Mientras)
        12:      Fin (Si)
        13:      paso ← paso + 1
        14:   Fin (Mientras)



61/68
Restauraci´n inexacta
                  o
          Regresar a R. inexacta

        1:   INPUT: xk , Fk−1 , β, γ
        2:   α ← ±1 (elegir el signo del descenso)
        3:   ac ← 0
        4:     ← 10−4
        5:   Contruir problema:
                            min                         t1 + σt2
                   t1 ,t2 ,s∈R,d∈Rn ,Z ∈Sn
                             s.a                    hj (xk ) + Dhj (xk )d      =   0, j ∈ J ∗
                                                E T (G (xk ) + DG (xk )d)E         0
                                                     t1 − rs − Tr(Z )          ≥   0            (13)
                                             Z − (G (xk ) + DG (xk )d) + sI        0
                                             t2 − (hj (xk ) + Dhj (xk )d)j∈J   ≥   0
                                                              Z                    0
            para el punto xk .
         6: Obtener d soluci´n de (13).
                              o
         7: Mientras ac = 0 ∧ |α| ≥ hacer
         8:    z = xk + αd
         9:    Si z es aceptable por Fk−1 ∧ θ(xk ) > θ(z) entonces
        10:       ac ← 1
62/68   11:    De lo contrario,
Restauraci´n inexacta
                  o
          Regresar a R. inexacta

        1:   INPUT: xk , Fk−1 , β, γ
        2:   α ← ±1 (elegir el signo del descenso)
        3:   ac ← 0
        4:     ← 10−4
        5:   Contruir problema:
                            min                         t1 + σt2
                   t1 ,t2 ,s∈R,d∈Rn ,Z ∈Sn
                             s.a                    hj (xk ) + Dhj (xk )d      =   0, j ∈ J ∗
                                                E T (G (xk ) + DG (xk )d)E         0
                                                     t1 − rs − Tr(Z )          ≥   0            (13)
                                             Z − (G (xk ) + DG (xk )d) + sI        0
                                             t2 − (hj (xk ) + Dhj (xk )d)j∈J   ≥   0
                                                              Z                    0
            para el punto xk .
         6: Obtener d soluci´n de (13).
                              o
         7: Mientras ac = 0 ∧ |α| ≥ hacer
         8:    z = xk + αd
         9:    Si z es aceptable por Fk−1 ∧ θ(xk ) > θ(z) entonces
        10:       ac ← 1
62/68   11:    De lo contrario,
Soluciones suboptimales SOF
          Regresar a SOF

        1:    N ← n´mero de veces que se realiza la b´squeda
                      u                                   u
        2:    ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ)
                               a               o
        3:    ρ ← (0, ρmax )
        4:    Si k = 0 entonces
        5:       xk ← sof
        6:    De lo contrario,
        7:       xk ← punto inicial o proveniente de la iteraci´n k − 1
                                                                  o
        8:    Fin (Si)
        9:    Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible))
              ∧ paso ≤ N hacer
        10:      xk ← fminsearch(θ(·), xk ) o xk ← lsdp(θ(·), xk , Fk , β, γ)
                                            ´
        11:      Si xk es aceptable para Fk−1 entonces
        12:         Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer
        13:            ρ←2∗ρ
        14:            dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido)
        15:         Fin (Mientras)
        16:      Fin (Si)
        17:      paso ← paso + 1
        18:   Fin (Mientras)
63/68
Soluciones suboptimales SOF
          Regresar a SOF

        1:    N ← n´mero de veces que se realiza la b´squeda
                      u                                   u
        2:    ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ)
                               a               o
        3:    ρ ← (0, ρmax )
        4:    Si k = 0 entonces
        5:       xk ← sof
        6:    De lo contrario,
        7:       xk ← punto inicial o proveniente de la iteraci´n k − 1
                                                                  o
        8:    Fin (Si)
        9:    Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible))
              ∧ paso ≤ N hacer
        10:      xk ← fminsearch(θ(·), xk ) o xk ← lsdp(θ(·), xk , Fk , β, γ)
                                            ´
        11:      Si xk es aceptable para Fk−1 entonces
        12:         Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer
        13:            ρ←2∗ρ
        14:            dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido)
        15:         Fin (Mientras)
        16:      Fin (Si)
        17:      paso ← paso + 1
        18:   Fin (Mientras)
63/68
Posicionamiento de polos
          Regresar a Polos

        1:    N ← n´mero de veces que se realiza la b´squeda
                      u                                   u
        2:    ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ)
                               a               o
        3:    ρ ← (0, ρmax )
        4:    Si k = 0 entonces
        5:       xk ← polos(k)
        6:    De lo contrario,
        7:       xk ← punto inicial o proveniente de la iteraci´n k − 1
                                                                  o
        8:    Fin (Si)
        9:    Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible))
              ∧ paso ≤ N hacer
        10:      xk ← fminsearch(θ(·), xk ) o xk ← lsdp(θ(·), xk , Fk , β, γ)
                                            ´
        11:      Si xk es aceptable para Fk−1 entonces
        12:         Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer
        13:            ρ←2∗ρ
        14:            dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido)
        15:         Fin (Mientras)
        16:      Fin (Si)
        17:      paso ← paso + 1
        18:   Fin (Mientras)
64/68   19:   Si paso > N entonces
Posicionamiento de polos
          Regresar a Polos

        1:    N ← n´mero de veces que se realiza la b´squeda
                      u                                   u
        2:    ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ)
                               a               o
        3:    ρ ← (0, ρmax )
        4:    Si k = 0 entonces
        5:       xk ← polos(k)
        6:    De lo contrario,
        7:       xk ← punto inicial o proveniente de la iteraci´n k − 1
                                                                  o
        8:    Fin (Si)
        9:    Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible))
              ∧ paso ≤ N hacer
        10:      xk ← fminsearch(θ(·), xk ) o xk ← lsdp(θ(·), xk , Fk , β, γ)
                                            ´
        11:      Si xk es aceptable para Fk−1 entonces
        12:         Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer
        13:            ρ←2∗ρ
        14:            dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido)
        15:         Fin (Mientras)
        16:      Fin (Si)
        17:      paso ← paso + 1
        18:   Fin (Mientras)
64/68   19:   Si paso > N entonces
Enfoque original




65/68
Restauraci´n inexacta
                  o




66/68
Soluciones suboptimales SOF




67/68
Posicionamiento de polos




68/68

Más contenido relacionado

La actualidad más candente

Pricipios de Programación
Pricipios de Programación Pricipios de Programación
Pricipios de Programación Adolfo Vazcoy
 
¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPM¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPMIsrael Herraiz
 
Diagramas flujo
Diagramas flujoDiagramas flujo
Diagramas flujoinfobran
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un ProgramaFranco Guamán
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++Tensor
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSEvans Balcazar
 
Fundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoFundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoJosé Antonio Sandoval Acosta
 
Ss cap6 - diseno filtros
Ss   cap6 - diseno filtrosSs   cap6 - diseno filtros
Ss cap6 - diseno filtroskevinXD123
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmoGaston Demundo
 
Optimización global
Optimización globalOptimización global
Optimización globalSaory Rma
 
Optimizacion de Compiladores
Optimizacion de CompiladoresOptimizacion de Compiladores
Optimizacion de CompiladoresJorge
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmoszygdiaz
 
introduccion a la programacion de los microcontroladores motorola-freescale
introduccion a la programacion de los microcontroladores motorola-freescaleintroduccion a la programacion de los microcontroladores motorola-freescale
introduccion a la programacion de los microcontroladores motorola-freescaletecautind
 

La actualidad más candente (19)

Pricipios de Programación
Pricipios de Programación Pricipios de Programación
Pricipios de Programación
 
¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPM¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPM
 
Octave
OctaveOctave
Octave
 
Diagramas flujo
Diagramas flujoDiagramas flujo
Diagramas flujo
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un Programa
 
Programacion Funcional
Programacion FuncionalProgramacion Funcional
Programacion Funcional
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Manual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_gManual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_g
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Sesion 4
Sesion 4Sesion 4
Sesion 4
 
Fundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoFundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujo
 
Filtro fir e iir.
Filtro fir e iir.Filtro fir e iir.
Filtro fir e iir.
 
Ss cap6 - diseno filtros
Ss   cap6 - diseno filtrosSs   cap6 - diseno filtros
Ss cap6 - diseno filtros
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
 
Analizador Lexico
Analizador LexicoAnalizador Lexico
Analizador Lexico
 
Optimización global
Optimización globalOptimización global
Optimización global
 
Optimizacion de Compiladores
Optimizacion de CompiladoresOptimizacion de Compiladores
Optimizacion de Compiladores
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmos
 
introduccion a la programacion de los microcontroladores motorola-freescale
introduccion a la programacion de los microcontroladores motorola-freescaleintroduccion a la programacion de los microcontroladores motorola-freescale
introduccion a la programacion de los microcontroladores motorola-freescale
 

Destacado

Presentacion Trabajo de Titulacion
Presentacion Trabajo de TitulacionPresentacion Trabajo de Titulacion
Presentacion Trabajo de TitulacionAlejandraRoman555
 
Presentación Examen de Título
Presentación Examen de TítuloPresentación Examen de Título
Presentación Examen de TítuloAlvaro Isla
 
Examen profesional
Examen profesionalExamen profesional
Examen profesionalAlma Díaz
 
Presentacion para titulacion
Presentacion para titulacionPresentacion para titulacion
Presentacion para titulacionmamaviza
 

Destacado (6)

Presentacion Trabajo de Titulacion
Presentacion Trabajo de TitulacionPresentacion Trabajo de Titulacion
Presentacion Trabajo de Titulacion
 
Examen profesional
Examen profesionalExamen profesional
Examen profesional
 
Presentación Examen de Título
Presentación Examen de TítuloPresentación Examen de Título
Presentación Examen de Título
 
Examen Profesional 1
Examen Profesional 1Examen Profesional 1
Examen Profesional 1
 
Examen profesional
Examen profesionalExamen profesional
Examen profesional
 
Presentacion para titulacion
Presentacion para titulacionPresentacion para titulacion
Presentacion para titulacion
 

Similar a Presentacion Examen de titulo DIM

Similar a Presentacion Examen de titulo DIM (20)

Diseño eficiente de algoritmos Parallel Prefix sobre GPUs
Diseño eficiente de algoritmos Parallel Prefix sobre GPUsDiseño eficiente de algoritmos Parallel Prefix sobre GPUs
Diseño eficiente de algoritmos Parallel Prefix sobre GPUs
 
tema1.pdf
tema1.pdftema1.pdf
tema1.pdf
 
Fundamentos de programación - Introducción
Fundamentos de programación - IntroducciónFundamentos de programación - Introducción
Fundamentos de programación - Introducción
 
Intro Mpi
Intro MpiIntro Mpi
Intro Mpi
 
Estimacion de costos del Software
Estimacion de costos del SoftwareEstimacion de costos del Software
Estimacion de costos del Software
 
Presentacion ip algoritmia_2012_i_v2_parte_i
Presentacion ip algoritmia_2012_i_v2_parte_iPresentacion ip algoritmia_2012_i_v2_parte_i
Presentacion ip algoritmia_2012_i_v2_parte_i
 
2014 ii c02t-estacion meteorologica
2014 ii c02t-estacion meteorologica2014 ii c02t-estacion meteorologica
2014 ii c02t-estacion meteorologica
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructurada
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Clase 1
Clase 1Clase 1
Clase 1
 
Paradigmas
ParadigmasParadigmas
Paradigmas
 
algoritmica
algoritmicaalgoritmica
algoritmica
 
Deber 7-cap-2-matlab-nise
Deber 7-cap-2-matlab-niseDeber 7-cap-2-matlab-nise
Deber 7-cap-2-matlab-nise
 
Introduccion.ppt
Introduccion.pptIntroduccion.ppt
Introduccion.ppt
 
TEMA11.ppt
TEMA11.pptTEMA11.ppt
TEMA11.ppt
 
Temario ceneval yo
Temario ceneval yoTemario ceneval yo
Temario ceneval yo
 
actividad 15 PDS
actividad 15 PDSactividad 15 PDS
actividad 15 PDS
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmico
 
Presentación Luis Barreto
Presentación Luis BarretoPresentación Luis Barreto
Presentación Luis Barreto
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Último (19)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

Presentacion Examen de titulo DIM

  • 1. Implementaci´n de un m´todo de programaci´n o e o semidefinida usando computaci´n paralela o Oscar Francisco Peredo Andrade Presentaci´n para optar al T´ o ıtulo de Ingeniero Civil Matem´tico a Facultad de Ciencias F´ ısicas y Matem´ticas, Universidad de Chile a 3 de Junio de 2010
  • 2. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 2/68
  • 3. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 3/68
  • 4. Motivaci´n o 4/68
  • 5. Motivaci´n o • Experimentar el proceso de desarrollo de una aplicaci´n cient´ o ıfica desde su dise˜o, realizado en sistemas de alto nivel (MATLAB), n hasta su implementaci´n basada en c´lculo paralelo, realizada en o a sistemas de bajo nivel (C ). 4/68
  • 6. Motivaci´n o • Experimentar el proceso de desarrollo de una aplicaci´n cient´ o ıfica desde su dise˜o, realizado en sistemas de alto nivel (MATLAB), n hasta su implementaci´n basada en c´lculo paralelo, realizada en o a sistemas de bajo nivel (C ). • Resolver un problema de programaci´n semidefinida no lineal: o min f (x) x∈Rn s.a h(x) = 0 (1) G (x) 0 donde f : Rn → R, h : Rn → Rp y G : Rn → Sm son clase C 2 , usando una versi´n del algoritmo Filter-SDP desarrollado en o [GR06]. 4/68
  • 8. Objetivos • Estudio de herramientas de c´lculo paralelo aplicables en el a algoritmo Filter-SDP. 5/68
  • 9. Objetivos • Estudio de herramientas de c´lculo paralelo aplicables en el a algoritmo Filter-SDP. • Implementaci´n del algoritmo Filter-SDP utilizando C. o 5/68
  • 10. Objetivos • Estudio de herramientas de c´lculo paralelo aplicables en el a algoritmo Filter-SDP. • Implementaci´n del algoritmo Filter-SDP utilizando C. o • Dise˜o de nuevas fases de restauraci´n para el algoritmo n o Filter-SDP utilizando MATLAB. 5/68
  • 11. Objetivos • Estudio de herramientas de c´lculo paralelo aplicables en el a algoritmo Filter-SDP. • Implementaci´n del algoritmo Filter-SDP utilizando C. o • Dise˜o de nuevas fases de restauraci´n para el algoritmo n o Filter-SDP utilizando MATLAB. • Realizaci´n de pruebas num´ricas (implementaci´n C y nuevas o e o fases de restauraci´n). o 5/68
  • 12. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 6/68
  • 13. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 7/68
  • 15. Programaci´n semidefinida lineal (SDP) o Formulaci´n primal ([VB96]): o min cT x x∈Rm m (2) s.a F0 + xi Fi 0 i=1 con c ∈ Rm y F0 , . . . , Fn ∈ Sn . 8/68
  • 16. Programaci´n semidefinida lineal (SDP) o Formulaci´n primal ([VB96]): o min cT x x∈Rm m (2) s.a F0 + xi Fi 0 i=1 con c ∈ Rm y F0 , . . . , Fn ∈ Sn . Formulaci´n dual: o max −Tr(F0 Z ) Z ∈Sn s.a Tr (Fi Z ) = ci , i = 1, ..., m (3) Z 0 8/68
  • 18. Programaci´n semidefinida: aplicaciones o El problema de programaci´n lineal: o min cT x x∈Rn (4) s.a Ax + b ≥ 0 9/68
  • 19. Programaci´n semidefinida: aplicaciones o El problema de programaci´n lineal: o min cT x x∈Rn (4) s.a Ax + b ≥ 0 tiene una formulaci´n SDP: o 9/68
  • 20. Programaci´n semidefinida: aplicaciones o El problema de programaci´n lineal: o min cT x x∈Rn (4) s.a Ax + b ≥ 0 tiene una formulaci´n SDP: o min cT x x∈Rn (5) s.a diag(Ax + b) 0 9/68
  • 21. Programaci´n semidefinida: aplicaciones o El problema de programaci´n lineal: o min cT x x∈Rn (4) s.a Ax + b ≥ 0 tiene una formulaci´n SDP: o min cT x x∈Rn (5) s.a diag(Ax + b) 0 o equivalentemente: min cT x x∈Rn n (6) s.a diag(b) + i=1 xi diag(A·,i ) 0 F0 Fi 9/68
  • 23. Programaci´n semidefinida: aplicaciones o El problema de programaci´n cuadr´tica convexa tambi´n se puede o a e formular como SDP. 10/68
  • 24. Programaci´n semidefinida: aplicaciones o El problema de programaci´n cuadr´tica convexa tambi´n se puede o a e formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n : 10/68
  • 25. Programaci´n semidefinida: aplicaciones o El problema de programaci´n cuadr´tica convexa tambi´n se puede o a e formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n : min (Ax + b)T (Ax + b) − c T x − d x∈Rn (7) s.a Hx + g ≥ 0 10/68
  • 26. Programaci´n semidefinida: aplicaciones o El problema de programaci´n cuadr´tica convexa tambi´n se puede o a e formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n : min (Ax + b)T (Ax + b) − c T x − d x∈Rn (7) s.a Hx + g ≥ 0 Equivalentemente: min t x∈Rn ,t∈R s.a (Ax + b)T (Ax + b) − c T x − d ≤ t (8) Hx + g ≥ 0 10/68
  • 27. Programaci´n semidefinida: aplicaciones o El problema de programaci´n cuadr´tica convexa tambi´n se puede o a e formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n : min (Ax + b)T (Ax + b) − c T x − d x∈Rn (7) s.a Hx + g ≥ 0 Equivalentemente: min t x∈Rn ,t∈R s.a (Ax + b)T (Ax + b) − c T x − d ≤ t (8) Hx + g ≥ 0 y utilizando el complemento de Schur ( Ir a Ap´ndice e ) se tiene: 10/68
  • 28. Programaci´n semidefinida: aplicaciones o El problema de programaci´n cuadr´tica convexa tambi´n se puede o a e formular como SDP. Para c ∈ Rn , b, g ∈ Rm , d ∈ R, A, H ∈ Rm×n : min (Ax + b)T (Ax + b) − c T x − d x∈Rn (7) s.a Hx + g ≥ 0 Equivalentemente: min t x∈Rn ,t∈R s.a (Ax + b)T (Ax + b) − c T x − d ≤ t (8) Hx + g ≥ 0 y utilizando el complemento de Schur ( Ir a Ap´ndice e ) se tiene: min t x∈Rn ,t∈R Im×m Ax + b (9) s.a 0 (Ax + b)T cT x+d +t diag(Hx + g ) 0 10/68
  • 29. Programaci´n semidefinida: m´todos de resoluci´n o e o 11/68
  • 30. Programaci´n semidefinida: m´todos de resoluci´n o e o • Punto interior 11/68
  • 31. Programaci´n semidefinida: m´todos de resoluci´n o e o • Punto interior • Paquete o haz espectral (bundle methods) 11/68
  • 32. Programaci´n semidefinida: m´todos de resoluci´n o e o • Punto interior • Paquete o haz espectral (bundle methods) 11/68
  • 33. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 12/68
  • 35. Filter-SDP • Algoritmo desarrollado por G´mez & Ramirez [GR06] para resolver o problemas del tipo: min f (x) x∈Rn s.a h(x) = 0 (10) G (x) 0 13/68
  • 36. Filter-SDP • Algoritmo desarrollado por G´mez & Ramirez [GR06] para resolver o problemas del tipo: min f (x) x∈Rn s.a h(x) = 0 (10) G (x) 0 • Basado en el algoritmo de filter-SQP, desarrollado en [FGLT01] para resolver problemas de programaci´n no lineal. o 13/68
  • 37. Filter-SDP • Algoritmo desarrollado por G´mez & Ramirez [GR06] para resolver o problemas del tipo: min f (x) x∈Rn s.a h(x) = 0 (10) G (x) 0 • Basado en el algoritmo de filter-SQP, desarrollado en [FGLT01] para resolver problemas de programaci´n no lineal. o • Principales aspectos: utilizaci´n de un filtro, resoluci´n de un o o problema tangencial cuadr´tico y desarrollo de una fase de a restauraci´n. o 13/68
  • 39. Filter-SDP: filtro • Idea central: utilizar un enfoque multiobjetivo, donde se minimice la funci´n objetivo f (x) y una funci´n de m´rito θ(x), que o o e cuantifica la factibilidad de un punto, donde: θ(x) = h(x) 2 + max{0, λ1 (G (x))} (11) 14/68
  • 40. Filter-SDP: filtro • Idea central: utilizar un enfoque multiobjetivo, donde se minimice la funci´n objetivo f (x) y una funci´n de m´rito θ(x), que o o e cuantifica la factibilidad de un punto, donde: θ(x) = h(x) 2 + max{0, λ1 (G (x))} (11) • El filtro F = {(θ(xi ), f (xi ))}n i=1 almacena informaci´n de puntos o que no se dominan entre si: xk domina a xp ⇔ f (xk ) ≤ f (xp ) y θ(xk ) ≤ θ(xp ) 14/68
  • 41. Filter-SDP: filtro • Idea central: utilizar un enfoque multiobjetivo, donde se minimice la funci´n objetivo f (x) y una funci´n de m´rito θ(x), que o o e cuantifica la factibilidad de un punto, donde: θ(x) = h(x) 2 + max{0, λ1 (G (x))} (11) • El filtro F = {(θ(xi ), f (xi ))}n i=1 almacena informaci´n de puntos o que no se dominan entre si: xk domina a xp ⇔ f (xk ) ≤ f (xp ) y θ(xk ) ≤ θ(xp ) • Se utiliza como criterio para escoger nuevos puntos xk de la sucesi´n convergente (salvo subsucesiones) al ´ptimo (local). o o 14/68
  • 42. Filter-SDP: filtro • Idea central: utilizar un enfoque multiobjetivo, donde se minimice la funci´n objetivo f (x) y una funci´n de m´rito θ(x), que o o e cuantifica la factibilidad de un punto, donde: θ(x) = h(x) 2 + max{0, λ1 (G (x))} (11) • El filtro F = {(θ(xi ), f (xi ))}n i=1 almacena informaci´n de puntos o que no se dominan entre si: xk domina a xp ⇔ f (xk ) ≤ f (xp ) y θ(xk ) ≤ θ(xp ) • Se utiliza como criterio para escoger nuevos puntos xk de la sucesi´n convergente (salvo subsucesiones) al ´ptimo (local). o o • Todos los puntos xk que se guarden en el filtro deben ser aceptables: x es aceptable por F ⇔ ∀i ∈ {1, . . . , n} : θ(x) ≤ βθ(xi ) ´ f (x) + γθ(x) ≤ f (xi ) o 14/68
  • 43. Filter-SDP: filtro A domina a B 15/68
  • 44. Filter-SDP: filtro A no domina a B 16/68
  • 45. Filter-SDP: filtro F es aceptable por el filtro {A, B, C , D, E } 17/68
  • 46. Filter-SDP: filtro Agregar punto F al filtro {A, B, C , D, E }. Nuevo filtro: {A, B, C , F , E } 18/68
  • 47. Filter-SDP: problema tangencial cuadr´tico a 19/68
  • 48. Filter-SDP: problema tangencial cuadr´tico a En cada iteraci´n del algoritmo, un punto xk+1 = xk + dk se contruye o utilizando la soluci´n dk de un problema tangencial cuadr´tico (trust o a region local semidefinite approximation), asociado al punto xk y a un radio ρ: 19/68
  • 49. Filter-SDP: problema tangencial cuadr´tico a En cada iteraci´n del algoritmo, un punto xk+1 = xk + dk se contruye o utilizando la soluci´n dk de un problema tangencial cuadr´tico (trust o a region local semidefinite approximation), asociado al punto xk y a un radio ρ: 1 QP(x, ρ) : minn f (x)d + d T Bd d∈R 2 s.a. h(x) + Dh(x)d = 0 G (x) + DG (x)d 0 d ∞ ≤ρ 19/68
  • 50. Filter-SDP: fase de restauraci´n o 20/68
  • 51. Filter-SDP: fase de restauraci´n o La fase de restauraci´n tiene como objetivo generar un punto xk que o cumpla con las siguientes condiciones: 20/68
  • 52. Filter-SDP: fase de restauraci´n o La fase de restauraci´n tiene como objetivo generar un punto xk que o cumpla con las siguientes condiciones: A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 . B1 QP(xk , ρ) es factible. donde F k−1 es el filtro obtenido de la iteraci´n anterior y θ(x) es la o funci´n de m´rito escogida. o e 20/68
  • 53. Filter-SDP: algoritmo Ir a pseudoc´digo o 21/68
  • 54. Filter-SDP: algoritmo Ir a pseudoc´digo o 21/68
  • 55. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 22/68
  • 57. Computaci´n paralela o • Situaci´n en la que al menos 2 procesadores cooperan o intercambiando informaci´n mientras trabajan en diferentes partes o de uno o m´s problemas. a 23/68
  • 58. Computaci´n paralela o • Situaci´n en la que al menos 2 procesadores cooperan o intercambiando informaci´n mientras trabajan en diferentes partes o de uno o m´s problemas. a • Diferentes clasificaciones seg´n: n´mero de procesadores, acceso a u u la memoria, redes que comunican a los procesadores, I/O, etc. 23/68
  • 59. Computaci´n paralela o • Situaci´n en la que al menos 2 procesadores cooperan o intercambiando informaci´n mientras trabajan en diferentes partes o de uno o m´s problemas. a • Diferentes clasificaciones seg´n: n´mero de procesadores, acceso a u u la memoria, redes que comunican a los procesadores, I/O, etc. • En este trabajo se estudiaron sistemas que funcionan en arquitecturas de memoria distribu´ıda: 23/68
  • 60. Computaci´n paralela: aspectos paralelizables de o Filter-SDP 24/68
  • 61. Computaci´n paralela: aspectos paralelizables de o Filter-SDP • C´lculo de θ(x) a 24/68
  • 62. Computaci´n paralela: aspectos paralelizables de o Filter-SDP • C´lculo de θ(x) a • Resoluci´n de QP(x, ρ) o 24/68
  • 63. Computaci´n paralela: aspectos paralelizables de o Filter-SDP • C´lculo de θ(x) a • Resoluci´n de QP(x, ρ) o • Otras operaciones algebraicas 24/68
  • 64. Computaci´n paralela: aspectos paralelizables de o Filter-SDP • C´lculo de θ(x) a • Resoluci´n de QP(x, ρ) o • Otras operaciones algebraicas 24/68
  • 65. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 25/68
  • 66. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 26/68
  • 67. Estudio de sistemas de c´lculo paralelo a 27/68
  • 68. Estudio de sistemas de c´lculo paralelo a • ScaLAPACK: Scalable Linear Algebra Package 27/68
  • 69. Estudio de sistemas de c´lculo paralelo a • ScaLAPACK: Scalable Linear Algebra Package • PCSDP: C Library for Parallel Linear Semidefinite Programming 27/68
  • 72. ScaLAPACK • Estudio de las librer´ b´sicas: ıas a BLAS, LAPACK, BLACS, PBLAS. 28/68
  • 73. ScaLAPACK • Estudio de las librer´ b´sicas: ıas a BLAS, LAPACK, BLACS, PBLAS. • Intel Math Kernel Library. 28/68
  • 74. ScaLAPACK • Estudio de las librer´ b´sicas: ıas a BLAS, LAPACK, BLACS, PBLAS. • Intel Math Kernel Library. • DGEMM, PDPOTRF, PDPOTRS y PDSYEVX. 28/68
  • 75. ScaLAPACK • Estudio de las librer´ b´sicas: ıas a BLAS, LAPACK, BLACS, PBLAS. • Intel Math Kernel Library. • DGEMM, PDPOTRF, PDPOTRS y PDSYEVX. • Se gener´ una o documentaci´n con o ejemplos simples para instalar, conectar y utilizar esta librer´ ıa. 28/68
  • 77. PCSDP • CSDP: librer´ ıa/solver (FLOSS) para SDP desarrollada por B. Borchers, U. New Mexico ([Bor99]). 29/68
  • 78. PCSDP • CSDP: librer´ ıa/solver (FLOSS) para SDP desarrollada por B. Borchers, U. New Mexico ([Bor99]). • PCSDP: librer´ ıa/solver (FLOSS) basado en CSDP, desarrollado para sistemas de memoria distribu´ (Beowulf) por Ivan Ivanov, ıda TU Delft ([IK07]). 29/68
  • 79. PCSDP • CSDP: librer´ ıa/solver (FLOSS) para SDP desarrollada por B. Borchers, U. New Mexico ([Bor99]). • PCSDP: librer´ ıa/solver (FLOSS) basado en CSDP, desarrollado para sistemas de memoria distribu´ (Beowulf) por Ivan Ivanov, ıda TU Delft ([IK07]). • Utilizaci´n de ScaLAPACK para operaciones algebraicas. o 29/68
  • 80. PCSDP • CSDP: librer´ ıa/solver (FLOSS) para SDP desarrollada por B. Borchers, U. New Mexico ([Bor99]). • PCSDP: librer´ ıa/solver (FLOSS) basado en CSDP, desarrollado para sistemas de memoria distribu´ (Beowulf) por Ivan Ivanov, ıda TU Delft ([IK07]). • Utilizaci´n de ScaLAPACK para operaciones algebraicas. o • Claridad en el c´digo, adem´s de reutilizaci´n de rutinas. o a o 29/68
  • 81. PCSDP • CSDP: librer´ ıa/solver (FLOSS) para SDP desarrollada por B. Borchers, U. New Mexico ([Bor99]). • PCSDP: librer´ ıa/solver (FLOSS) basado en CSDP, desarrollado para sistemas de memoria distribu´ (Beowulf) por Ivan Ivanov, ıda TU Delft ([IK07]). • Utilizaci´n de ScaLAPACK para operaciones algebraicas. o • Claridad en el c´digo, adem´s de reutilizaci´n de rutinas. o a o • Se utiliza para resolver QP(x, ρ). 29/68
  • 82. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 30/68
  • 84. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 32/68
  • 85. Dise˜o de distintas fases de restauraci´n n o 33/68
  • 86. Dise˜o de distintas fases de restauraci´n n o • Fase de restauraci´n: encontrar xk que satisface A1 y B1. o A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 . B1 QP(xk , ρ) es factible. 33/68
  • 87. Dise˜o de distintas fases de restauraci´n n o • Fase de restauraci´n: encontrar xk que satisface A1 y B1. o A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 . B1 QP(xk , ρ) es factible. • Enfoques estudiados: 33/68
  • 88. Dise˜o de distintas fases de restauraci´n n o • Fase de restauraci´n: encontrar xk que satisface A1 y B1. o A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 . B1 QP(xk , ρ) es factible. • Enfoques estudiados: ◦ Enfoque original (implementaci´n MATLAB) o 33/68
  • 89. Dise˜o de distintas fases de restauraci´n n o • Fase de restauraci´n: encontrar xk que satisface A1 y B1. o A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 . B1 QP(xk , ρ) es factible. • Enfoques estudiados: ◦ Enfoque original (implementaci´n MATLAB) o ◦ Restauraci´n inexacta o 33/68
  • 90. Dise˜o de distintas fases de restauraci´n n o • Fase de restauraci´n: encontrar xk que satisface A1 y B1. o A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 . B1 QP(xk , ρ) es factible. • Enfoques estudiados: ◦ Enfoque original (implementaci´n MATLAB) o ◦ Restauraci´n inexacta o ◦ Soluciones suboptimales SOF (Static Output Feedback) 33/68
  • 91. Dise˜o de distintas fases de restauraci´n n o • Fase de restauraci´n: encontrar xk que satisface A1 y B1. o A1 (θ(xk ), f (xk )) es aceptable para el filtro F k−1 . B1 QP(xk , ρ) es factible. • Enfoques estudiados: ◦ Enfoque original (implementaci´n MATLAB) o ◦ Restauraci´n inexacta o ◦ Soluciones suboptimales SOF (Static Output Feedback) ◦ Posicionamiento de polos 33/68
  • 92. Enfoque original Ir a pseudoc´digo o 34/68
  • 93. Enfoque original Ir a pseudoc´digo o 34/68
  • 94. Enfoque original Ir a pseudoc´digo o 35/68
  • 95. Enfoque original Ir a pseudoc´digo o 35/68
  • 97. Restauraci´n inexacta o • M´todo desarrollado en [SM08] para programaci´n no lineal, que e o utiliza 2 fases: factibilidad y optimalidad. 36/68
  • 98. Restauraci´n inexacta o • M´todo desarrollado en [SM08] para programaci´n no lineal, que e o utiliza 2 fases: factibilidad y optimalidad. • Etapa de factibilidad entrega una direcci´n de descenso para θ(x). o 36/68
  • 99. Restauraci´n inexacta o • M´todo desarrollado en [SM08] para programaci´n no lineal, que e o utiliza 2 fases: factibilidad y optimalidad. • Etapa de factibilidad entrega una direcci´n de descenso para θ(x). o • Se adapt´ la etapa de factibilidad para nuestro problema o min{f (x) : h(x) = 0, G (x) 0, x ∈ Rn }: + P|JG | LP(xk ) : minn i=1 λi (G (xk ) + DG (xk )d) d∈R P 2 +σ hj (xk ) + Dhj (xk )d j∈J (12) s.a hj (xk ) + Dhj (xk )d = 0, j ∈ J ∗ E T (G (xk ) + DG (xk )d)E 0 36/68
  • 100. Restauraci´n inexacta o • M´todo desarrollado en [SM08] para programaci´n no lineal, que e o utiliza 2 fases: factibilidad y optimalidad. • Etapa de factibilidad entrega una direcci´n de descenso para θ(x). o • Se adapt´ la etapa de factibilidad para nuestro problema o min{f (x) : h(x) = 0, G (x) 0, x ∈ Rn }: + P|JG | LP(xk ) : minn i=1 λi (G (xk ) + DG (xk )d) d∈R P 2 +σ hj (xk ) + Dhj (xk )d j∈J (12) s.a hj (xk ) + Dhj (xk )d = 0, j ∈ J ∗ E T (G (xk ) + DG (xk )d)E 0 • Este m´todo entrega como resultado un punto zk = xk + αd, con e d soluci´n de LP(xk ) y α el paso de descenso (backtracking), y se o interpreta como un punto suficientemente m´s factible que xk de a tal manera que es aceptable por el filtro. 36/68
  • 101. Restauraci´n inexacta o Ir a pseudoc´digo o 37/68
  • 102. Restauraci´n inexacta o Ir a pseudoc´digo o 37/68
  • 103. Restauraci´n inexacta o Ir a pseudoc´digo o 38/68
  • 104. Restauraci´n inexacta o Ir a pseudoc´digo o 38/68
  • 106. Soluciones suboptimales SOF • En los 2 m´todos anteriores se puede caer en una situaci´n de loop e o que desencadena la detenci´n del algoritmo (fallo en la fase de o restauraci´n). o 39/68
  • 107. Soluciones suboptimales SOF • En los 2 m´todos anteriores se puede caer en una situaci´n de loop e o que desencadena la detenci´n del algoritmo (fallo en la fase de o restauraci´n). o • Se decidi´ investigar m´todos para generar soluciones suboptimales o e asociadas al problema aplicado que se intenta resolver (dise˜o de n controles SOF). Esas soluciones se usar´n como puntos iniciales en a la fase de restauraci´n (se espera que hayan m´s puntos aceptables o a por el filtro). 39/68
  • 108. Soluciones suboptimales SOF • En los 2 m´todos anteriores se puede caer en una situaci´n de loop e o que desencadena la detenci´n del algoritmo (fallo en la fase de o restauraci´n). o • Se decidi´ investigar m´todos para generar soluciones suboptimales o e asociadas al problema aplicado que se intenta resolver (dise˜o de n controles SOF). Esas soluciones se usar´n como puntos iniciales en a la fase de restauraci´n (se espera que hayan m´s puntos aceptables o a por el filtro). • En [Mos08] se describen m´todos para generar soluciones e sub´ptimas para una aplicaci´n simplificada de dise˜o de controles o o n SOF. 39/68
  • 109. Soluciones suboptimales SOF Ir a pseudoc´digo o 40/68
  • 110. Soluciones suboptimales SOF Ir a pseudoc´digo o 40/68
  • 112. Posicionamiento de polos • Consiste en un upgrade del m´todo de soluciones optimales SOF. e 41/68
  • 113. Posicionamiento de polos • Consiste en un upgrade del m´todo de soluciones optimales SOF. e • Utiliza una rutina descrita en [YO07] que permite encontrar una matr´ F dado un vector de valores propios λD de tal forma que ız λ(A + BFC ) = λD . 41/68
  • 114. Posicionamiento de polos • Consiste en un upgrade del m´todo de soluciones optimales SOF. e • Utiliza una rutina descrita en [YO07] que permite encontrar una matr´ F dado un vector de valores propios λD de tal forma que ız λ(A + BFC ) = λD . • Con esto se pueden generar una serie de nuevos puntos de partida para el algoritmo. 41/68
  • 115. Posicionamiento de polos • Consiste en un upgrade del m´todo de soluciones optimales SOF. e • Utiliza una rutina descrita en [YO07] que permite encontrar una matr´ F dado un vector de valores propios λD de tal forma que ız λ(A + BFC ) = λD . • Con esto se pueden generar una serie de nuevos puntos de partida para el algoritmo. • En caso de que falle la fase de restauraci´n, se genera un nuevo o punto xk y se pasa como input nuevamente a esta fase, el n´mero u de veces que se defina. 41/68
  • 116. Posicionamiento de polos Ir a pseudoc´digo o 42/68
  • 117. Posicionamiento de polos Ir a pseudoc´digo o 42/68
  • 118. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 43/68
  • 119. Resultados • Comparaci´n fnlsdp e implementaci´n MATLAB o o • Speedup de fnlsdp • Comparaci´n de fases de restauraci´n o o 44/68
  • 120. Resultados: fnlsdp vs. MATLAB • 54 problemas ((A, B)-controlables y (A, C )-observables). • Igual fase de restauraci´n (enfoque original, distintas o implementaciones). • Igual punto inicial (F0 , Q0 , V0 ) (generado por m´todo de e posicionamiento de polos). • TOL = 10−4 45/68
  • 121. Resultados: fnlsdp vs. MATLAB Eje Y: n´mero de problemas que satisfacen d < U (izquierda), u f (x) < U (centro) y θ(x) < U (derecha). 46/68
  • 122. Resultados: speedup t • Speedup = t paralelo (mientras m´s peque˜o, mejor). a n secuencial • Se escogieron los tests de tama˜o grande cuyo tiempo de ejecuci´n n o fuera mayor a 100 segundos (4 de 54 problemas). • Se realizaron pruebas de speedup para las componentes paralelizadas, de manera independiente (resoluci´n de QP(x, ρ) y o c´lculo de θ(x)). a • Cluster leloo: 4 servidores con 8 procesadores c/u. S´lo se utiliz´ o o 1 servidor, pues no est´n conectados por una red ad-hoc a (disminuye la velocidad de transferencia de mensajes y perturba las mediciones). 47/68
  • 123. Resultados: speedup fnlsdp Tiempos de ejecuci´n de fnlsdp: o Problema 1 proceso 2 procesos 4 procesos 8 procesos HE4 102.62 100.97 119.42 1153.21 HE5 138.33 222.38 248.03 858.92 BDT1 234.70 211.07 187.33 436.45 ROC8 795.10 814.02 653.07 2095.69 Speedup de fnlsdp: Problema 1 proceso 2 procesos 4 procesos 8 procesos HE1 1 0.98 1.16 11.24 HE5 1 1.61 1.79 6.21 BDT1 1 0.89 0.79 1.86 ROC8 1 1.02 0.82 2.63 48/68
  • 124. Resultados: resoluci´n de QP(x, ρ) o Speedup de PCSDP: Problema m n 1 proceso 2 procesos 4 procesos 8 procesos truss4 12 19 1 7.66 8.1 9.71 truss3 27 31 1 6.58 6.9 13.83 qap5 136 26 1 5.55 5.65 6.27 gpp124-1 125 124 1 2.52 2.56 4.33 arch0 174 335 1 0.93 0.81 1.39 gpp250-1 250 250 1 4.27 1.43 1.33 gpp500-1 501 500 1 2.5 0.75 1.37 equalG11 801 801 1 0.78 0.85 0.82 qap10 1021 101 1 1.02 0.84 0.84 control10 1326 150 1 0.7 0.53 0.64 qpG51 1000 2000 1 1.04 1 1.49 49/68
  • 125. Resultados: c´lculo de θ(x) a Speedup de PDSYEVX: Problema Dimensi´n o 1 proceso 2 procesos 4 procesos 8 procesos sherman1 1000 1 2.16 2.09 2.25 lshp1009 1009 1 2.38 2.3 3.91 rajat02 1960 1 0.77 0.52 0.73 ex14 3251 1 0.61 0.4 0.41 c-26 4307 1 0.6 0.43 0.46 c-30 5321 1 0.64 0.47 0.48 bcsstk17 10974 1 0.63 0.45 0.54 50/68
  • 126. Resultados: fases de restauraci´n o • Se compararon 4 m´todos: e 1. Enfoque original + SOF 2. Enfoque original + posicionamiento de polos 3. Restauraci´n inexacta + SOF o 4. Restauraci´n inexacta + posicionamiento de polos o • Se escogi´ la bater´ de 54 problemas utilizada anteriormente. o ıa 51/68
  • 127. Resultados: fases de restauraci´n o Eje Y: n´mero de problemas que satisfacen d < U (izquierda), u f (x) < U (centro) y θ(x) < U (derecha). m´todo 1, m´todo 2, m´todo 3, m´todo 4 e e e e 52/68
  • 128. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 53/68
  • 129. Conclusiones a Enfoque original + SOF sub´ptimales o b Restauraci´n inexacta + posicionamiento de polos o 54/68
  • 130. Conclusiones • Implementaci´n C: o a Enfoque original + SOF sub´ptimales o b Restauraci´n inexacta + posicionamiento de polos o 54/68
  • 131. Conclusiones • Implementaci´n C: o ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB o en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo e o e no se puede asegurar nada con respecto a la terminaci´n del o algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0. o o o a Enfoque original + SOF sub´ptimales o b Restauraci´n inexacta + posicionamiento de polos o 54/68
  • 132. Conclusiones • Implementaci´n C: o ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB o en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo e o e no se puede asegurar nada con respecto a la terminaci´n del o algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0. o o o ◦ La utilizaci´n de c´lculo paralelo tiene utilidad s´lo si el problema es o a o de grandes dimensiones. Se logr´ obtener un speedup adecuado en o pocos casos de prueba. a Enfoque original + SOF sub´ptimales o b Restauraci´n inexacta + posicionamiento de polos o 54/68
  • 133. Conclusiones • Implementaci´n C: o ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB o en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo e o e no se puede asegurar nada con respecto a la terminaci´n del o algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0. o o o ◦ La utilizaci´n de c´lculo paralelo tiene utilidad s´lo si el problema es o a o de grandes dimensiones. Se logr´ obtener un speedup adecuado en o pocos casos de prueba. • Dise˜o de fases de restauraci´n: n o a Enfoque original + SOF sub´ptimales o b Restauraci´n inexacta + posicionamiento de polos o 54/68
  • 134. Conclusiones • Implementaci´n C: o ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB o en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo e o e no se puede asegurar nada con respecto a la terminaci´n del o algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0. o o o ◦ La utilizaci´n de c´lculo paralelo tiene utilidad s´lo si el problema es o a o de grandes dimensiones. Se logr´ obtener un speedup adecuado en o pocos casos de prueba. • Dise˜o de fases de restauraci´n: n o ◦ M´todo 1a y m´todo 4b , entregan los mejores rendimientos e e estad´ısticos con respecto a la bater´ de prueba COMPleib. Sin ıa embargo, el m´todo 1 entrega mejores resultados para la funci´n e o objetivo. a Enfoque original + SOF sub´ptimales o b Restauraci´n inexacta + posicionamiento de polos o 54/68
  • 135. Conclusiones • Implementaci´n C: o ◦ Mejores resultados que la implementaci´n desarrollada en MATLAB o en t´rminos del valor de la funci´n objetivo y de m´rito, sin embargo e o e no se puede asegurar nada con respecto a la terminaci´n del o algoritmo, pues s´lo en 1 caso se lleg´ a una soluci´n donde dx ≈ 0. o o o ◦ La utilizaci´n de c´lculo paralelo tiene utilidad s´lo si el problema es o a o de grandes dimensiones. Se logr´ obtener un speedup adecuado en o pocos casos de prueba. • Dise˜o de fases de restauraci´n: n o ◦ M´todo 1a y m´todo 4b , entregan los mejores rendimientos e e estad´ısticos con respecto a la bater´ de prueba COMPleib. Sin ıa embargo, el m´todo 1 entrega mejores resultados para la funci´n e o objetivo. ◦ En varios casos, un m´todo encontr´ una soluci´n (suboptimal) y los e o o otros no. Conviene tener varias fases de restauraci´n activas o simult´neamente. a a Enfoque original + SOF sub´ptimales o b Restauraci´n inexacta + posicionamiento de polos o 54/68
  • 136. Esquema Introducci´n o Antecedentes Programaci´n semidefinida lineal (SDP) o Filter-SDP Computaci´n paralela o Trabajo realizado Estudio de sistemas de c´lculo paralelo a Implementaci´n en C: fnlsdp o Dise˜o de distintas fases de restauraci´n n o Resultados num´ricos e Conclusiones Trabajo futuro 55/68
  • 138. Trabajo futuro • Implementaci´n de una fase de restauraci´n en C que garantice la o o convergencia y buen funcionamiento de la aplicaci´n fnlsdp. o 56/68
  • 139. Trabajo futuro • Implementaci´n de una fase de restauraci´n en C que garantice la o o convergencia y buen funcionamiento de la aplicaci´n fnlsdp. o • Dise˜o de otras fases de restauraci´n, o modificaci´n de las ya n o o existentes. 56/68
  • 140. Trabajo futuro • Implementaci´n de una fase de restauraci´n en C que garantice la o o convergencia y buen funcionamiento de la aplicaci´n fnlsdp. o • Dise˜o de otras fases de restauraci´n, o modificaci´n de las ya n o o existentes. • Depuraci´n de la aplicaci´n fnlsdp para generar resultados o o utilizando problemas m´s grandes y verificar el speedup obtenido. a 56/68
  • 141. Trabajo futuro • Implementaci´n de una fase de restauraci´n en C que garantice la o o convergencia y buen funcionamiento de la aplicaci´n fnlsdp. o • Dise˜o de otras fases de restauraci´n, o modificaci´n de las ya n o o existentes. • Depuraci´n de la aplicaci´n fnlsdp para generar resultados o o utilizando problemas m´s grandes y verificar el speedup obtenido. a • Utilizaci´n de distintos solvers de programaci´n semidefinida o o o distintas formas de calcular valores propios. 56/68
  • 143. Bibliograf´ ıa B. Borchers, Csdp, a c library for semidefinite programming, Optimization Methods and Software 11/12 (1999), 613–623. R. Fletcher, N.I.M. Gould, S. Leyffer, and Ph.L. Toint, Global convergence of trust region sqp filter algorithms for nonlinear programming, Tech. report, 99/03, Department of Mathematics, University of Namur, Belgium, 2001. W. G´mez and H. Ram´ o ırez, A filter algorithm for nonlinear semidefinite programming, Tech. report, Centro de Modelamiento Matem´tico, 2006. a I.D. Ivanov and E. de Klerk, Parallel implementation of a semidefinite programming solver based on csdp in a distributed memory cluster, Discussion Paper 2007-20, Tilburg University, Center for Economic Research, 2007. El-S. M.E. Mostafa, First-order penalty methods for computing suboptimal output feedback controllers, Appl. and Comput. Math. 7 (2008), no. 1, pp. 66–83. C. Silva and M. Monteiro, A filter inexact-restoration method for nonlinear programming, TOP: An Official Journal of the Spanish Society of Statistics and Operations Research 16 (2008), no. 1, 126–146. L. Vandenberghe and S. Boyd, Semidefinite programming, SIAM Review 38 (1996), no. 1, pp. 49–95. K. Yang and R. Orsi, Static output feedback pole placement via a trust region approach, IEEE Transactions on Automatic Control 52 (2007), no. 11, pp. 2146–2150. 58/68
  • 144. Ap´ndice e Regresar a Ejemplos SDP Propiedad (Complemento de Schur) A B Para U = con A, C sim´tricas y A 0, se tiene que e BT C U 0 s´ y s´lo s´ C − B T A−1 B 0. A la matr´ C − B T A−1 B se le ı o ı ız llama complemento de Schur de A en U. Regresar a Ejemplos SDP Propiedad (Criterio de Sylvester) A 0 s´ y s´lo s´ todo menor principal (diagonal) de A (submatr´ que ı o ı ız se obtiene como resultado de eliminar filas de ´ ındices I y columnas de ´ ındices J a la matr´ A, con I = J) es semidefinido positivo. ız 59/68
  • 145. Ap´ndice e Regresar a Ejemplos SDP Propiedad (Complemento de Schur) A B Para U = con A, C sim´tricas y A 0, se tiene que e BT C U 0 s´ y s´lo s´ C − B T A−1 B 0. A la matr´ C − B T A−1 B se le ı o ı ız llama complemento de Schur de A en U. Regresar a Ejemplos SDP Propiedad (Criterio de Sylvester) A 0 s´ y s´lo s´ todo menor principal (diagonal) de A (submatr´ que ı o ı ız se obtiene como resultado de eliminar filas de ´ ındices I y columnas de ´ ındices J a la matr´ A, con I = J) es semidefinido positivo. ız 59/68
  • 146. Regresar a Filter-SDP 1: (INICIALIZACION) k ← 1, F 0 = {(u, −∞)}, dk ← ∞n , β ∈ (0, 1), γ ∈ (0, β), u > 0, σ ∈ (0, 1), ρ > 0, ´ ρinicial > ρ, max iteraciones > 1. 2: Mientras k < max iteraciones hacer 3: (FASE RESTAURACION) Encontrar xk y ρinicial ≥ ρ > ρ tales que: (θ(xk ), f (xk )) es aceptable para F k−1 ´ ˜ y QP(xk , ρ) es factible. ˜ 4: ρ ← ρ.˜ 5: (PROBLEMA TANGENCIAL) Resolver QP(xk , ρ). 6: Si dk < +∞ (QP(xk , ρ) es factible) entonces 7: Si dk < entonces 8: Fin del algoritmo. Soluci´n: xk . o 9: Fin (Si) 10: Si (θ(xk + dk ), f (xk + dk )) no es aceptable por F k−1 ∪ {(θ(xk ), f (xk ))} entonces 11: ρ ← ρ . Ir a PROBLEMA TANGENCIAL. 2 12: De lo contrario, 13: Si f (xk )T dk + 1 dk Bdk < 0 y f (xk ) + σ( f (xk )T dk + 2 dk Bdk ) < f (xk + dk ) entonces 2 T 1 T 14: ρ ← ρ . Ir a PROBLEMA TANGENCIAL. 2 15: De lo contrario, 16: Si f (xk )T dk + 1 dk Bdk ≥ 0 entonces 2 T 17: F k ← Add((θ(xk ), f (xk )), F k−1 ) Iteraci´n tipo θ o 18: De lo contrario, 19: k F ←F k−1 Iteraci´n tipo f o 20: Fin (Si) 21: xk+1 ← xk + dk , k ← k + 1, ρ ← ρinicial , Ir a PROBLEMA TANGENCIAL. 22: Fin (Si) 23: Fin (Si) 24: De lo contrario, 25: F k ← Add((θ(xk ), f (xk )), F k−1 ) Iteraci´n tipo θ o 26: k ← k + 1. Ir a FASE RESTAURACION. ´ 27: Fin (Si) 28: Fin (Mientras) 60/68
  • 147. Regresar a Filter-SDP 1: (INICIALIZACION) k ← 1, F 0 = {(u, −∞)}, dk ← ∞n , β ∈ (0, 1), γ ∈ (0, β), u > 0, σ ∈ (0, 1), ρ > 0, ´ ρinicial > ρ, max iteraciones > 1. 2: Mientras k < max iteraciones hacer 3: (FASE RESTAURACION) Encontrar xk y ρinicial ≥ ρ > ρ tales que: (θ(xk ), f (xk )) es aceptable para F k−1 ´ ˜ y QP(xk , ρ) es factible. ˜ 4: ρ ← ρ.˜ 5: (PROBLEMA TANGENCIAL) Resolver QP(xk , ρ). 6: Si dk < +∞ (QP(xk , ρ) es factible) entonces 7: Si dk < entonces 8: Fin del algoritmo. Soluci´n: xk . o 9: Fin (Si) 10: Si (θ(xk + dk ), f (xk + dk )) no es aceptable por F k−1 ∪ {(θ(xk ), f (xk ))} entonces 11: ρ ← ρ . Ir a PROBLEMA TANGENCIAL. 2 12: De lo contrario, 13: Si f (xk )T dk + 1 dk Bdk < 0 y f (xk ) + σ( f (xk )T dk + 2 dk Bdk ) < f (xk + dk ) entonces 2 T 1 T 14: ρ ← ρ . Ir a PROBLEMA TANGENCIAL. 2 15: De lo contrario, 16: Si f (xk )T dk + 1 dk Bdk ≥ 0 entonces 2 T 17: F k ← Add((θ(xk ), f (xk )), F k−1 ) Iteraci´n tipo θ o 18: De lo contrario, 19: k F ←F k−1 Iteraci´n tipo f o 20: Fin (Si) 21: xk+1 ← xk + dk , k ← k + 1, ρ ← ρinicial , Ir a PROBLEMA TANGENCIAL. 22: Fin (Si) 23: Fin (Si) 24: De lo contrario, 25: F k ← Add((θ(xk ), f (xk )), F k−1 ) Iteraci´n tipo θ o 26: k ← k + 1. Ir a FASE RESTAURACION. ´ 27: Fin (Si) 28: Fin (Mientras) 60/68
  • 148. Enfoque original Regresar a Enfoque original 1: N ← n´mero de veces que se realiza la b´squeda u u 2: ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ) a o 3: ρ ← (0, ρmax ) 4: xk ← punto inicial o proveniente de la iteraci´n k − 1 o 5: Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible)) ∧ paso ≤ N hacer 6: xk ← fminsearch(θ(·), xk ) 7: Si xk es aceptable para Fk−1 entonces 8: Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer 9: ρ←2∗ρ 10: dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido) 11: Fin (Mientras) 12: Fin (Si) 13: paso ← paso + 1 14: Fin (Mientras) 61/68
  • 149. Enfoque original Regresar a Enfoque original 1: N ← n´mero de veces que se realiza la b´squeda u u 2: ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ) a o 3: ρ ← (0, ρmax ) 4: xk ← punto inicial o proveniente de la iteraci´n k − 1 o 5: Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible)) ∧ paso ≤ N hacer 6: xk ← fminsearch(θ(·), xk ) 7: Si xk es aceptable para Fk−1 entonces 8: Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer 9: ρ←2∗ρ 10: dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido) 11: Fin (Mientras) 12: Fin (Si) 13: paso ← paso + 1 14: Fin (Mientras) 61/68
  • 150. Restauraci´n inexacta o Regresar a R. inexacta 1: INPUT: xk , Fk−1 , β, γ 2: α ← ±1 (elegir el signo del descenso) 3: ac ← 0 4: ← 10−4 5: Contruir problema: min t1 + σt2 t1 ,t2 ,s∈R,d∈Rn ,Z ∈Sn s.a hj (xk ) + Dhj (xk )d = 0, j ∈ J ∗ E T (G (xk ) + DG (xk )d)E 0 t1 − rs − Tr(Z ) ≥ 0 (13) Z − (G (xk ) + DG (xk )d) + sI 0 t2 − (hj (xk ) + Dhj (xk )d)j∈J ≥ 0 Z 0 para el punto xk . 6: Obtener d soluci´n de (13). o 7: Mientras ac = 0 ∧ |α| ≥ hacer 8: z = xk + αd 9: Si z es aceptable por Fk−1 ∧ θ(xk ) > θ(z) entonces 10: ac ← 1 62/68 11: De lo contrario,
  • 151. Restauraci´n inexacta o Regresar a R. inexacta 1: INPUT: xk , Fk−1 , β, γ 2: α ← ±1 (elegir el signo del descenso) 3: ac ← 0 4: ← 10−4 5: Contruir problema: min t1 + σt2 t1 ,t2 ,s∈R,d∈Rn ,Z ∈Sn s.a hj (xk ) + Dhj (xk )d = 0, j ∈ J ∗ E T (G (xk ) + DG (xk )d)E 0 t1 − rs − Tr(Z ) ≥ 0 (13) Z − (G (xk ) + DG (xk )d) + sI 0 t2 − (hj (xk ) + Dhj (xk )d)j∈J ≥ 0 Z 0 para el punto xk . 6: Obtener d soluci´n de (13). o 7: Mientras ac = 0 ∧ |α| ≥ hacer 8: z = xk + αd 9: Si z es aceptable por Fk−1 ∧ θ(xk ) > θ(z) entonces 10: ac ← 1 62/68 11: De lo contrario,
  • 152. Soluciones suboptimales SOF Regresar a SOF 1: N ← n´mero de veces que se realiza la b´squeda u u 2: ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ) a o 3: ρ ← (0, ρmax ) 4: Si k = 0 entonces 5: xk ← sof 6: De lo contrario, 7: xk ← punto inicial o proveniente de la iteraci´n k − 1 o 8: Fin (Si) 9: Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible)) ∧ paso ≤ N hacer 10: xk ← fminsearch(θ(·), xk ) o xk ← lsdp(θ(·), xk , Fk , β, γ) ´ 11: Si xk es aceptable para Fk−1 entonces 12: Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer 13: ρ←2∗ρ 14: dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido) 15: Fin (Mientras) 16: Fin (Si) 17: paso ← paso + 1 18: Fin (Mientras) 63/68
  • 153. Soluciones suboptimales SOF Regresar a SOF 1: N ← n´mero de veces que se realiza la b´squeda u u 2: ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ) a o 3: ρ ← (0, ρmax ) 4: Si k = 0 entonces 5: xk ← sof 6: De lo contrario, 7: xk ← punto inicial o proveniente de la iteraci´n k − 1 o 8: Fin (Si) 9: Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible)) ∧ paso ≤ N hacer 10: xk ← fminsearch(θ(·), xk ) o xk ← lsdp(θ(·), xk , Fk , β, γ) ´ 11: Si xk es aceptable para Fk−1 entonces 12: Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer 13: ρ←2∗ρ 14: dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido) 15: Fin (Mientras) 16: Fin (Si) 17: paso ← paso + 1 18: Fin (Mientras) 63/68
  • 154. Posicionamiento de polos Regresar a Polos 1: N ← n´mero de veces que se realiza la b´squeda u u 2: ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ) a o 3: ρ ← (0, ρmax ) 4: Si k = 0 entonces 5: xk ← polos(k) 6: De lo contrario, 7: xk ← punto inicial o proveniente de la iteraci´n k − 1 o 8: Fin (Si) 9: Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible)) ∧ paso ≤ N hacer 10: xk ← fminsearch(θ(·), xk ) o xk ← lsdp(θ(·), xk , Fk , β, γ) ´ 11: Si xk es aceptable para Fk−1 entonces 12: Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer 13: ρ←2∗ρ 14: dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido) 15: Fin (Mientras) 16: Fin (Si) 17: paso ← paso + 1 18: Fin (Mientras) 64/68 19: Si paso > N entonces
  • 155. Posicionamiento de polos Regresar a Polos 1: N ← n´mero de veces que se realiza la b´squeda u u 2: ρmax ← radio m´ximo de la regi´n de confianza de QP(xk , ρ) a o 3: ρ ← (0, ρmax ) 4: Si k = 0 entonces 5: xk ← polos(k) 6: De lo contrario, 7: xk ← punto inicial o proveniente de la iteraci´n k − 1 o 8: Fin (Si) 9: Mientras ((xk no es aceptable para Fk−1 ) ∨ (QP(xk , ρ) no es factible)) ∧ paso ≤ N hacer 10: xk ← fminsearch(θ(·), xk ) o xk ← lsdp(θ(·), xk , Fk , β, γ) ´ 11: Si xk es aceptable para Fk−1 entonces 12: Mientras (QP(xk , ρ) no es factible) ∧ (ρ < ρmax ) hacer 13: ρ←2∗ρ 14: dk ← QP(xk , ρ) (si QP(xk , ρ) no es factible, dk queda indefinido) 15: Fin (Mientras) 16: Fin (Si) 17: paso ← paso + 1 18: Fin (Mientras) 64/68 19: Si paso > N entonces