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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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