adrián ayastuy rodriguez septiembre...

140
Optimización convexa aplicada a MPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad de Sevilla Escuela Técnica Superior de Ingeniería

Upload: others

Post on 16-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Optimización convexaaplicada a MPC

Adrián Ayastuy Rodriguez

Septiembre 2014

Universidad de SevillaEscuela Técnica Superior de Ingeniería

Page 2: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Director:

Prof. Teodoro Álamo Cantarero

Fecha de entrega:

19 de Septiembre del 2014

Page 3: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Índice general

Estado del arte 1

1. Conceptos generales de optimización 31.1. Definición del problema de optimización no lineal . . . . . . . . . . . 31.2. Condiciones necesarias de optimalidad . . . . . . . . . . . . . . . . . 51.3. Dualidad débil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4. Métodos de barrera y penalización . . . . . . . . . . . . . . . . . . . . 9

1.4.1. Método de penalización . . . . . . . . . . . . . . . . . . . . . 91.4.2. Método de barrera . . . . . . . . . . . . . . . . . . . . . . . . 101.4.3. Método de la holgura artificial . . . . . . . . . . . . . . . . . . 10

1.5. Optimización convexa y dualidad fuerte . . . . . . . . . . . . . . . . . 121.5.1. Definiciones de convexidad . . . . . . . . . . . . . . . . . . . . 121.5.2. Definición del problema de optimización convexa . . . . . . . . 151.5.3. Dualidad fuerte . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.6. Programación cuadrática . . . . . . . . . . . . . . . . . . . . . . . . . 171.6.1. Dualidad en la programación cuadrática . . . . . . . . . . . . 23

1.7. Optimización suave . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2. Métodos numéricos de optimización 292.1. Métodos numérico locales . . . . . . . . . . . . . . . . . . . . . . . . 29

2.1.1. Método del gradiente . . . . . . . . . . . . . . . . . . . . . . . 302.1.2. Análisis de complejidad para las clases F∞,1L (Rn) y S∞,1L (Rn) . 312.1.3. Método óptimo para la clase S1,1

µ,L(Rn) [Nes04] . . . . . . . . . 322.1.4. Optimización en conjuntos simples (Gradient mapping) . . . . 35

2.2. Regularización de problemas de optimización . . . . . . . . . . . . . . 372.2.1. Regularización αr

2 ‖Aeqx− beq‖22 . . . . . . . . . . . . . . . . . 39

i

Page 4: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Índice general Índice general

2.3. Aplicación del método óptimo [Nes04] al problema de programacióncuadrática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.3.1. Problema QP general, con región básica factible Rn . . . . . . 422.3.2. Problema QP diagonal con región básica factible ortoédrica . . 442.3.3. Problema QP diagonal con región básica factible ortoédrica y

precondicionamiento . . . . . . . . . . . . . . . . . . . . . . . 462.3.4. Método de la holgura artificial para el problema QP general . 492.3.5. Método de la holgura artificial para el problema QP restrin-

gido a un ortoedro . . . . . . . . . . . . . . . . . . . . . . . . 52

3. Control predictivo basado en modelo 573.1. Modelo dinámico de la planta . . . . . . . . . . . . . . . . . . . . . . 57

3.1.1. Modelo en variable de estado, no-lineal y en tiempo discreto . 583.1.2. Modelo en variable de estado, lineal y en tiempo discreto . . . 58

3.2. Definición del control predictivo basado en modelo . . . . . . . . . . . 593.2.1. Control predictivo lineal para seguimiento de trayectoria . . . 603.2.2. Control predictivo lineal estabilizador para seguimiento de tra-

yectorias [LAAC08] . . . . . . . . . . . . . . . . . . . . . . . . 613.3. Métodos numéricos aplicados a MPC . . . . . . . . . . . . . . . . . . 63

3.3.1. Regularización del problema . . . . . . . . . . . . . . . . . . . 673.3.2. Estructura del problema . . . . . . . . . . . . . . . . . . . . . 683.3.3. Optimización de las operaciones auxiliares . . . . . . . . . . . 68

3.4. Cálculo experimental de la complejidad computacional de los diferen-tes métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Agradecimientos 87

A. Apéndice de optimización 89A.1. Propiedades de la función max y min y sus aproximaciones . . . . . . 89

A.1.1. Aproximación logarítmica de max(x, 0) . . . . . . . . . . . . . 95A.1.2. Método numérico estable para evaluar la función φρ y sus de-

rivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

B. Anexo código Matlab 101B.1. Algoritmo gradenciales . . . . . . . . . . . . . . . . . . . . . . . . . . 101

B.1.1. Algoritmo de Nesterov . . . . . . . . . . . . . . . . . . . . . . 101B.1.2. Algoritmo FISTA . . . . . . . . . . . . . . . . . . . . . . . . . 102

ii

Page 5: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Índice general

B.2. Algoritmo de resolución del problema QP . . . . . . . . . . . . . . . . 103B.2.1. Algoritmo para el caso genérico . . . . . . . . . . . . . . . . . 103B.2.2. Algoritmo para el caso genérico regularizado . . . . . . . . . . 106B.2.3. Algoritmo basado en la holgura artificial . . . . . . . . . . . . 108B.2.4. Algoritmo para el problema diagonal . . . . . . . . . . . . . . 109B.2.5. Algoritmo para el problema diagonal regularizado . . . . . . . 111B.2.6. Algoritmo para el problema diagonal con precondicionamiento 114B.2.7. Algoritmo para el caso diagonal con precondicionamiento y

paso fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116B.3. Códigos relacionados con la generación y resolución del problema de

MPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118B.3.1. Generación de problema QP asociado a un MPC con ordena-

ción separada de x y u . . . . . . . . . . . . . . . . . . . . . . 118B.3.2. Generación de problema QP asociado a un MPC con ordena-

ción intercalada de x y u . . . . . . . . . . . . . . . . . . . . . 119B.3.3. Extracción de los resultados de las solución de un MPC con

ordenación separada de x y u a partir del vector de variablesde decisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

B.3.4. Extracción de los resultados de las solución de un MPC conordenación intercalada de x y u a partir del vector de variablesde decisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

B.3.5. Prueba de los algoritmo de resolución de problemas QP sobreun MPC con ordenación separada de x y u . . . . . . . . . . . 123

B.3.6. Prueba de los algoritmo de resolución de problemas QP sobreun MPC con ordenación intercalada de x y u . . . . . . . . . . 125

B.3.7. Análisis experimental de la complejidad computacional de ca-da algoritmo aplicada a problemas MPC generados aleatoria-mente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Bibliografía 133

Bibliografía 133

iii

Page 6: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad
Page 7: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Estado del arte

El control predictivo ha sido ampliamente utilizado en la industria de procesos.Este tipo de industria se caracteriza por procesos moderadamente lentos. El augede las computadoras a propiciado que este tipo de algoritmo, que requieren un grancosto computacional en comparación las técnicas clásicas de control, se haya podidoaplicar a procesos mas rápidos como la aviónica o robótica. Esto hace necesario eldiseño e implementación de algoritmo cada vez más eficientes para disminuir loscostes computacionales de estos algoritmo y poder cada vez aplicarlo a sistemas demayor orden o con un tiempo de muestreo más rápido.

La optimización es uno de los pilares de la matemática aplicada y viene desempe-ñando un papel fundamental en la ingeniería. Las teorías de control moderno comoel control óptimo o el control predictivo están basadas muchas de ellas en técnicas deoptimización. El problema de control predictivo se viene formulando como un pro-blema de programación matemática y se ha resulto de manera más o menos efectivascon distintas técnicas de optimización. Una conjunto de técnicas muy utilizada hansido los métodos de punto interior que desde el método de Karmarkar que fue uno delos primeros algoritmo de orden polinomial para resolución de problemas de progra-mación lineal. Estos algoritmo de punto interior han tenido un papel predominanteen la programación matemática hasta el momento.

En los últimos años a habido un avance en las técnicas de optimización gradencia-les, como el método FISTA1 y el método de Nesterov que han abierto una nuevalinea de investigación en la resolución de problemas de programación matemática.En este trabajo se desarrollaran técnicas numéricas de optimización basado en di-chos métodos para resolver problemas de MPC2. Para ello se planteará el problemadual y se resolverá mediantes estos métodos. También se abordará el caso de pro-

1FISTA, Algoritmo rápido iterativo de contracción del umbral. Proviene de las siglas inglesas FastIterative Shrinkge-Thresholding Algorithm

2MPC, Control predictivo basado en modelo. Proviene de las siglas inglesa Model PredictiveController

1

Page 8: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

blemas mal condicionados donde se plantearán distintas soluciones que mejoren elcondicionamiento del problema como la regulación o el precondicionamiento.

2

Page 9: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1. Conceptos generales deoptimización

1.1. Definición del problema de optimización nolineal

Para empezar debemos de formular el problema de optimización de manera general,para poder en los siguientes apartados, abordar la resolución numérica de problemasprácticos más particulares.

Definición 1. Todos los problemas de optimización de variable real se pueden for-mular de la siguiente manera:

Encontrar el máximo o mínimo de una función objetivo f0(x) : D ∈ Rn → R en unsubconjunto de su dominio S, sujeto a una serie de restricción, formuladas medianteecuaciones e inecuaciones {fi, hi} las cuales se pueden clasificar mediante su signo{≤,≥,=}.

min/max f0(x)s.a :fi(x) ≤ 0 i ∈ [1,m1]

fi(x) ≥ 0 i ∈ (m1,m]hi(x) = 0 i ∈ [1, l]x ∈ S ⊆ Rn

Sin pérdida de generalidad se tratarán a partir de ahora solo problemas de minimi-zación y con restricciones de igualdad o desigualdad ≤. Esto se debe a que cualquierproblema de maximización se puede reescribir como un problema de minimización

3

Page 10: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

cuya función objetivo es la opuesta de la función objetivo original f0(x) = −f0(x)y cualquier restricción de desigualdad fi(x) ≥ 0 se puede escribir como −fi(x) ≤ 0.Por lo que el problema de maximización definido por:

max f0(x)s.a : fi (x) ≤ 0 i ∈ [1,m1]

fi (x) ≥ 0 i ∈ (m1,m]hi (x) = 0 i ∈ [1, l]x ∈ S ⊆ Rn

se podría transformar en un problema de minimización con la siguiente estructura:

−min − f0(x)s.a :fi(x) ≤ 0 i ∈ [1,m1]

− fi(x) ≤ 0 i ∈ (m1,m]hi(x) = 0 i ∈ [1, l]x ∈ S ⊆ Rn

Finalmente se puede definir el problema de optimización no lineal estándar.

Definición 2. Todo problema de optimización de variable real se puede formularcomo:

min f0(x)s.a :fi(x) ≤ 0 i ∈ [1,m]

hi(x) = 0 i ∈ [1, l]x ∈ S ⊆ Rn

En algunos casos será interesante el obtener un problema donde no haya restriccionesde igualdad. Esto se puede conseguir sustituyendo las restricciones de igualdad por

4

Page 11: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.2 Condiciones necesarias de optimalidad

dos restricciones de desigualdad de signo contrario. Esto nos proporciona otra formaestándar del problema de optimización no lineal que se define como sigue:

Definición 3. Todo problema de optimización de variable real se puede formularde manera alternativa como:

min f0(x)s.a :fi(x) ≤ 0 i ∈ [1,m]

x ∈ S ⊆ Rn

Se definen a continuación una serie de conceptos útiles que se usarán con posterio-ridad :

Función objetivo: f0(x)

Región factible básica: S

Región factible: Q = {x ∈ S | fi(x) ≤ 0, i = 1 . . .m , hi(x) = 0, i = 1 . . . l}

Problemas restringidos: Q ⊂ Rn.

Problemas no restringidos: Q ≡ Rn.

Problemas suaves: ∀i fi(x), ∀i hi(x), f0(x) ∈ C1 todas las funciones del problemason diferenciables.

Óptimo global: x∗es un óptimo global y la solución del problema ( 2) si y solo six∗ ∈ Q , ∀x ∈ Q : f(x∗) ≤ f(x).

1.2. Condiciones necesarias de optimalidad

La obtención de la solución del problema general de optimización no lineal ( 2) esmuy compleja para un caso general, sin hacer ningún tipo de suposición sobre loselementos que definen el problema.

Un resultado de vital importancia son las condiciones de optimalidad de primerorden de Karush–Kuhn–Tucker para problemas de optimización suaves. Estas con-diciones nos permiten descartar posibles soluciones para un problema suave, ya quese tratan de una condiciones necesarias para que una posible solución sea solución

5

Page 12: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

del problema. Aunque se debe puntualizar que no son condiciones suficiente, por loque una solución candidata cumpla las condiciones de KKT no implica que esta seala solución de problema.

Teorema 4. Sea un problema de optimización suave definido según ( 2), si x∗ esuna solución del problema, según se muestra en [DD12], cumplirá las siguientescondiciones:

∇f0(x∗) +l∑

i=1λi·∇hi(x∗) +

m∑i=1

µi · ∇fi(x∗) = 0

fi(x∗) ≤ 0 i ∈ [1,m]hi(x∗) = 0 i ∈ [1, l]fi(x∗) · µi = 0 i ∈ [1,m]µi ≥ 0 i ∈ [1,m]

Un caso particular de las condiciones de KKT, cuando no existen restricciones dedesigualdad, son los multiplicadores de Lagrange:

∇f0(x∗) +l∑

i=1λi∇hi(x∗) = 0

hi(x∗) = 0 i ∈ [1, l]

En este caso se puede definir una función de gran interés llamada langrangiana quese define como sigue:

L(x, λ) = f0(x) +l∑

i=1λihi(x)

Como se puede comprobar se pueden obtener las condiciones de los multiplicado-res de Lagrange, igualando el gradiente de la langrangiana a cero. Por lo que loscandidatos a óptimos del problema deben ser los puntos críticos de dicha función.

6

Page 13: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.3 Dualidad débil

∇L(x, λ) = ∇f0(x) +∑l

i=1 λi∇hi(x)hi(x)

Por extensión se define también la langrangiana para problemas con restricciones dedesigualdad, pero en este caso no tiene la propiedad antes descrita.

Definición 5. Se denomina función langrangiana L(x, λ, µ) : Rn+m → R asociadaa un problema de optimización ( 2) como:

L(x, λ, µ) = f0(x) +l∑

i=1λihi(x) +

m∑i=1

µifi(x)

L(x, λ, µ) = f0(x) + λTh(x) + µTf(x)

1.3. Dualidad débil

A partir del problema estándar ( 2), al que nos referiremos como primal, se puededefinir un problema de optimización llamado dual. Este problema dual tendrá granimportancia en sucesivas secciones donde se analizará la optimización convexa.

El problema dual se define a partir de la langrangiana del problema primal y se basaen la siguiente propiedad de la langragiana.

Lema 6. Sea un problema de optimización( 2), su función langrangiana asociadaL(x, λ, µ) entonces:

∀i, µi > 0, x ∈ Q : L(x, λ, µ) ≤ f(x)

Demostración. Sea un x una solución factible del problema por lo que cumple lasrestricciones del problema

x ∈ Q : ∀i gi(x) ≤ 0, hi(x) = 0

Sea λ, µ las variables del dual, sabiendo que µ > 0 entonces

7

Page 14: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

∀i µi > 0, x ∈ Q :m∑i=1

µigi(x) ≤ 0

l∑i=1

λihi(x) = 0

Sumando ambas expresiones obtenemos:

∀i λi > 0µi > 0, x ∈ Q : λihi(x) +m∑i=1

µigi(x) ≤ 0

Finalmente se obtiene:

L(x, λ, µ) = f(x) +l∑

i=1λihi(x) +

m∑i=1

µigi(x) ≤ f(x)

Definición 7. Sea un problema de optimización, se define la función dual de estecomo:

g0(λ, µ) = minx∈Q

L(x, λ, µ)

La función dual es una cota inferior de la función objetivo en el óptimo esto sedesprende de ( 6)

g(λ, µ) ≤ f(x∗)

La mejor cota posible se da para el mayor valor posible de la función dual, esteproblema de optimización cóncavo es el llamado problema dual.

Definición 8. Se define el problema dual de un problema de optimización ( 2) como:

8

Page 15: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.4 Métodos de barrera y penalización

maxλ,µ

g(λ, µ)

∀i : µi > 0

1.4. Métodos de barrera y penalización

La resolución de problemas de optimización no restringidos es en general más fácilque los problemas restringidos. Existen numerosas técnicas para resolver de maneranumérica este tipo de problemas, por lo que sería de gran interés conseguir técnicas,para aproximar la solución de problemas restringidos a partir de problemas no res-tringidos. Con está idea se desarrollaron dos tipos de técnicas que van encaminadasen esta dirección. Estas son las técnicas de barrera y penalización. Además en estasección se presentará otro tipo de técnica basado en la función max.

1.4.1. Método de penalización

Este método tiene como fundamento, sustituir las restricciones de un problema, porun coste en la función objetivo que sea una función del error cometido, llamadofunción de penalización. Es, como ya se dio a conocer en la introducción de lasección, un método aproximado y solo proporcionará la solución exacta del problemaen el caso de que la solución real no esté en la frontera del problema. Este métodoproporciona en el caso contrario una solución no factible para el problema original,más o menos aproximada a la solución real según el tipo de función de penalizaciónelegida.

Definición 9. Sea φQ(x) : Rn → R una función de penalización para la región Q,entonces:

φQ(x) = 0 si x ∈ Q> 0 si /∈ Q

El problema de optimización estándar definido según ( 2), se reescribiría como sigue:

9

Page 16: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

min f0(x)+φQ(x)

Ejemplo 10. La función φQ(x) = ∑ni=1max(fi(x), 0) es una función de penaliza-

ción convexa, para el problema estándar, sin restricciones de igualdad ( 3). Véase(Sección A.1).

1.4.2. Método de barrera

El método de barrera, es un método muy parecido al método de penalización. Eneste caso las restricciones se ven sustituidas por un coste en la función objetivo quetiende a infinito cuando se hacer a la frontera de la región factible. Este coste vienedado por una función que se denomina función de barrera. A diferencia del métodode penalización, este método siempre proporciona soluciones factibles del problema,si las hubiera.

Definición 11. Sea φQ(x) : Rn → R una función de barrera para la región Q, cuyafrontera es δQ entonces:

limx∈Q→y∈δQ

φQ(x) =∞

El problema de optimización estándar definido según ( 2), se reescribiría como sigue:

min f0(x)+φQ(x)

1.4.3. Método de la holgura artificial

El método de la holgura artificial, a diferencia de los dos métodos anteriores, noproporciona un problema no restringido a partir de un problema restringido, sino que solo sirve para eliminar las restricciones de desigualdad y convertirlas enrestricciones de igualdad. Este método se basa, en añadir un conjunto de variables,llamadas holguras artificiales {si}, que junto con las propiedad de no negatividad

10

Page 17: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.4 Métodos de barrera y penalización

de una función real continua φ(si), se consigue una holgura real positiva para lasrestricciones de desigualdad.

Definición 12. Sea un problema de optimización en forma estándar ( 2), se puedereescribir sin restricciones de desigualdad como:

minx,s

f0(x)sa :

fi(x) + φ(si) = 0hi(x) = 0

Ejemplo 13. El problema de optimización sin restricciones de desigualdad, definidoen ( 12), se puede resolver aplicando la definición de la langrangiana para el caso delos multiplicadores de Lagrange.

minx,s,λ‖∇L(x, s, λ)‖2

L(x, s, λ) = f0(x) +m∑i=1

λfi (fi(x) + φ(si)) +l∑

i=1λhi hi(x)

Una posible función φ(si) que cumpla los requisitos podría ser ex omax(x, 0)(Sección A.1)siendo la segunda una mejor opción para el uso en un método numérico ya que esmenos propensa a los desbordamientos. Para el uso de cierto métodos numéricos esnecesario que la función sea diferenciable, por lo que será necesario aproximar lafunción max(x, 0) por una función diferenciable ( 58).

Corolario 14. Sea un problema de optimización en forma estándar ( 2), en elque las únicas restricciones con signo de desigualdad son de la forma xli ≤ xi ≤xui , i ∈ [1, n] por lo que las variables de decisión del problema estás restringidas aun ortoedro. Este problema se puede reescribir como un problema sin restricciones dedesigualdad, mediante la adicción de un conjunto de holguras artificiales {si} , i ∈[1, n] y un conjunto de funciones φ1(si) cuyo recorrido este comprendido entre 0 y1 ∀x ∈ R : 0 ≤ φ1(x) ≤ 1 de la siguiente forma:

11

Page 18: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

minx,s

f0(x)sa :

hi(x) = 0xi − (xui − xli)φ1(si) −xli = 0 : i ∈ [1, n]

Una posible elección para la función φ1(si) es la función rampa con saturación defi-nida en ( 57). Esta función tiene una aproximación diferenciable definida en ( 62).

1.5. Optimización convexa y dualidad fuerte

1.5.1. Definiciones de convexidad

La convexidad es una propiedad ampliamente utilizada en matemática aplicada,más en concreto en optimización. La optimización convexa es una de las ramas másdesarrolladas hasta el momento en el campo de la optimización.

Por lo tanto pasaremos a definir el termino convexo en los diferentes ámbitos quenos ocupan así como un conjunto de propiedades que se derivan de ellos y que seusarán con posterioridad.

Funciones convexa

Definición 15. Una función real de variable real f(x) : Rn → R es convexa si ysolo si:

∀x, y ∈ Rn,∀α ∈ [0, 1] : f(αx+ (1− α)y) ≤ αf(x) + (1− α)f(y)

Se pueden definir varias propiedades útiles derivadas de la definición de una funciónconvexa:

Lema 16. Sea f(x) ∈ C1 una función convexa entonces:

12

Page 19: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.5 Optimización convexa y dualidad fuerte

∀x, y : f(y) ≥ f(x) + 〈∇f(x), (y − x)〉

Lema 17. Sea f(x) ∈ C2 una función convexa entonces la hessiana de f(x) essemi-definida positiva1 para todo x:

∀x : ∇2f(x) ≥ 0

Corolario 18. Sean f(x), g(x) funciones convexa, entonces h(x) = f(x) + g(x) esuna función convexa

Demostración. Sean x, y ∈ R perteneciente al dominio de ambas funciones, al serambas funciones convexa se puede puede aplicar la definición:

∀α ∈ [0, 1] : f(αx+ (1− α)y) ≤ αf(x) + (1− α)f(y)∀α ∈ [0, 1] : g(αx+ (1− α)y) ≤ αg(x) + (1− α)g(y)

Sumando ambas expresiones obtenemos:

f(αx+ (1− α)y) + g(αx+ (1− α)y) ≤ α(f(x) + g(x)) + (1− α)(f(y) + g(y))h(αx+ (1− α)y) ≤ αh(x) + (1− α)h(y)

que es la condición de convexidad para h(x) por lo que se demuestra que esta esconvexa.

Definición 19. Una función convexa, se dice que es estrictamente convexa si solosi:

1Una matriz simétrica S se dice que es semidefinida positiva si solo si:

1. ∀x 6= 0 : xTSx ≥ 0

2. ∀i : λi(S) ≥ 0

13

Page 20: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

∀x 6= y ∈ R,∀α ∈ (0, 1) : f(αx+ (1− α)y) < αf(x) + (1− α)f(y)

Lema 20. Sea f(x) ∈ C1 una función estrictamente convexa entonces:

∀x, y : 〈∇f(x)−∇f(y), x− y〉 ≥ µ ‖x− y‖2

Conjuntos convexos

La propiedad de convexidad se aplica cambien en teoría de conjunto.

Definición 21. Un conjunto Q se dice que es convexo si solo si:

∀x, y ∈ Q , ∀α ∈ [0, 1] : αx+ (1− α)y ∈ Q

Lema 22. Sean Q1, Q2 dos conjuntos convexo, entonces:

Q1 ∩Q2 es un conjunto convexo.

Demostración. Sea dos elemento cualesquiera de la intersección ∀x, y ∈ Q1 ∩Q2

aplicando ( 21):

∀x, y ∈ Q1 , ∀α ∈ [0, 1] : αx+ (1− α)y ∈ Q1

∀x, y ∈ Q2 , ∀α ∈ [0, 1] : αx+ (1− α)y ∈ Q2

por lo que finalmente:

∀x, y ∈ Q1 ∩Q2 , ∀α ∈ [0, 1] : αx+ (1− α)y ∈ Q1 ∩Q2

14

Page 21: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.5 Optimización convexa y dualidad fuerte

Lema 23. Sea un conjunto definido por Q ≡ {x ∈ R : Ax ≤ b} entonces Q esun conjunto convexo.

Demostración. Sea dos elementos cualesquiera de Q ∀x, y ∈ Q por lo que cumplenla definición del conjunto:

αAx ≤ αb

(1− α)Ay ≤ (1− α)b

Sumando ambas inecuaciones obtenemos:

αAx+ (1− α)Ay ≤ b

A(αx+ (1− α)y) ≤ b

que se trata de definición de un conjunto convexo ( 21).

1.5.2. Definición del problema de optimización convexa

Un caso de especial importancia del problema general de optimización no lineal esel problema de optimización convexa, que posee ciertas propiedades que lo hacenmuy interesante.

Definición 24. Un problema de optimización ( 2) se dice que es convexo si y solosi[DD12]:

1. La función objetivo f0(x) es una función convexa.

2. La región factible Q es un conjunto convexo.

Para que Q sea un conjunto convexo es necesario que las restricciones de igualdadsean funciones afines y que las restricciones de desigualdad ≤ sean convexas.

Los problemas de optimización convexa tienen algunas propiedades interesantes:

1. Las condiciones de KKT son condiciones suficiente de optimalidad.

2. El teorema de dualidad débil se cumple con signo de igualdad, por lo que elóptimo del problema dual y primal coinciden.

15

Page 22: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

1.5.3. Dualidad fuerte

El teorema de dualidad débil se puede aplicar a problemas convexo. En este casoeste teorema cobra especial importancia, ya que para este tipo de problema se puededemostrar que el óptimo del problema dual coincide con el óptimo del problemaprimal. En este caso este teorema se denomina teorema de dualidad fuerte.

Teorema 25. Sea un problema de optimización convexa definido según ( 2), elóptimo del problema dual asociado a este, coincide con el óptimo del problemaprimal[DD12].

maxλ,µ

g0(λ, µ) = minx∈X

f0(x)sa : sa :µi ≥ 0 i ∈ [1,m] fi(x) ≤ 0 i ∈ [1,m]

hi(x) = 0 i ∈ [1, l]

Lema 26. Sea un problema de optimización convexa definido según ( 2), la langran-giana del problema es una función convexa con respecto a las variables originalesdel problema z, manteniendo fijas las variables duales x, si ∀µi ≥ 0:

∀µi ≥ 0 : ∇2zL(z, x) ≥ 0

Demostración. Sea un problema de optimización convexa definido según ( 2), lalangrangiana se define como( 5):

L(x, λ, µ) = f0(x) +l∑

i=1λihi(x) +

m∑i=1

µifi(x)

∇2xL(x, λ, µ) = ∇2

xf0(x) +l∑

i=1λi∇2

xhi(x) +m∑i=1

µi∇2xfi(x)

Como sabemos por las condiciones de convexidad del problema, las restricciones deigualdad deben ser funciones afines ∇2

xhi(x) = 0, las restricciones de desigualdad

16

Page 23: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.6 Programación cuadrática

deben ser convexas ∇2xfi(x) ≥ 0, por lo que aplicando las propiedades de las funcio-

nes convexa. La combinación lineal con coeficientes positivos de funciones convexas,es una función convexa:

∇2xL(x, λ, µ) = ∇2

xf0(x) +l∑

i=1λi∇2

xhi(x) +m∑i=1

µi∇2xfi(x)

∇2xL(x, λ, µ) ≥ 0

1.6. Programación cuadrática

La programación cuadrática con restricciones lineales es un caso particular del pro-blema de optimización en el que la función objetivo es una forma cuadrática y lasrestricciones son lineas. Bajo ciertas suposiciones este tipo de problemas son proble-mas convexos. En esta sección se analizara este tipo de problemas y se hallaran variaspropiedades que serán útil a la hora de realizar métodos numéricos para resolver estetipo de problemas.

Definición 27. Un problema de optimización no lineal, se dice que es un proble-ma de programación cuadrática (QP2), con restricciones lineales, cuando tiene lasiguiente estructura:

minz∈Z

f0(z) = 12z

THz + fT z

sa :Az ≤ b

Aeqz = beq

Corolario 28. Un problema de programación cuadrática, con restricciones lineales,es convexo si H ≥ 0 y Z es un conjunto convexo.

2El problema de programación cuadrática se conoce como “QP” por sus siglas en ingles “QuadraticProgramming”

17

Page 24: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Chapter 1 Conceptos generales de optimización

Demostración. Aplicando las condiciones de convexidad de 24 :

Q es un conjunto convexo, al estar definido por restricciones lineales, sobre unconjunto convexo Z.

f0(z) es una función convexa( 15):

∇f0(z) = Hz + f

∇2f0(z) = H

H ≥ 0,∀z : ∇2f0(z) ≥ 0

Corolario 29. Toda función cuadrática se puede escribir como una función cuadrá-tica cuya matriz asociada sea simétrica.

f(z) = 12z

THz + fT z + c : H = HT

Demostración. Sea f(z) = 12z

THz + fT z + c una función cuadrática cuya matriz Hno es simétrica. Se descompone H en una parte simétrica y otra antisimétrica:

f(z) = 12z

T

(H +HT

2 + H −HT

2

)z + fT z + c

f(z) = 12z

T

(H +HT

2

)z + zT

(H −HT

2

)z + fT z + c

Al ser f(z) una función escalar ∀z ∈ Z f(z) = f(z)T

∀z ∈ Z zT(H −HT

2

)z = −zT

(H −HT

2

)z

∀z ∈ Z zT(H −HT

2

)z = 0

Por lo que el termino antisimétrico se puede eliminar, quedando la función cuadráticadefinida por una nueva H simétrica:

18

Page 25: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.6 Programación cuadrática

f(z) = 12z

T

(H +HT

2

)z + fT z + c

f(z) = 12z

T Hz + fT z + c : H = HT

Corolario 30. Todo problema QP ( 27) convexo se puede reescribir como otro pro-blema QP cuya matriz H sea diagonal:

minz∈Z

f0(z) = 12 z

T Dz + fT z

sa :Az ≤ b

Aeqz = beq

Demostración. Sea un problema QP definido según ( 27), como se comprobó en( 29), todo problema QP se puede escribir con una matriz simétrica H asociada.Toda matriz simétrica semidefinida positiva se puede descomponer como sigue:

H = LDLT + αzI : D ≥ 0, αz ≤ λmin(H)

Aplicando esta propiedad a la matriz H asociada al problema QP se obtiene:

minz∈Z

f0(z) = 12z

TLDLT z + αzzT z + fT z

sa :Az ≤ b

Aeqz = beq

Realizando el cambio de variables y = LT z y añadiendo esta identidad como restric-ciones del problema concluimos que:

19

Page 26: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

minz∈Z

f0(z) = 12y

TDy + αzzT z + fT z

sa :Az ≤ b

Aeqz = beq

LT z = y

Reestructurando el problema:

minz∈Z

f0(z) = 12

z

y

T αzI 00 D

z

y

+ f

0

T z

y

sa : [

A 0] z

y

b

0

Aeq 0LT −I

z

y

= beq

0

Como se observa la matriz, asociada a este problema, es diagonal y semidefinidapositiva.

Corolario 31. Todo problema QP ( 27) se puede reescribir alternativamente comootro problema QP cuya matriz H sea diagonal:

minz∈Z

f0(z) = 12 z

T Dz + fT z

sa :Az ≤ b

Aeqz = beq

Demostración. Se descompone la matriz H como H = LDLT y se realiza el cambiode variables z = LT z:

20

Page 27: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.6 Programación cuadrática

minz∈Z

f0(z) = 12 z

TDz +(L−1f

)Tz

sa :AL−1T z ≤ b

AeqL−1T z = beq

Lema 32. La langrangiana de un problema QP convexo es una función cuadráticaindefinida y se define como:

L(z, x) = 12z

THz + fT z + xT

A

Aeq

z − b

beq

Demostración. Reestructurando el problema teniendo en cuenta que las variablesde L(z, x) son z y x se reescribe el problema como sigue:

L(z, x) = 12

z

x

T

H[AT ATeq

] A

Aeq

0

z

x

+

f b

beq

T z

x

Por lo tanto la hessiana de L(z, x) será:

∇2L(z, x) =

H

[AT ATeq

] A

Aeq

0

Aplicando el complemento Schur3 a ∇2L(z, x), podemos determinar que la langran-giana no es convexa y su opuesta tampoco es semidefinida positiva, se deduce por

3Complemento Schur:Sea M una matriz simétrica:

21

Page 28: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

tanto que la langrangiana es una forma cuadrática indefinida:

∇2L(z, x) ≥ 0H > 0

A

Aeq

H−1

A

Aeq

T ≥ 0!!!

−∇2L(z, x) ≥ 0−H > 0!!!

Corolario 33. La langrangiana de un problema QP convexo es una función convexacon respecto a z:

∇2zf0(z, x) ≥ 0

Demostración. Sea un problema QP convexo definido según ( 27) :

∇zf0(z, x) = Hz(x) + f + A

Aeq

T x∇2zf0(z, x) = H ≥ 0

M =[

A BBT C

]A > 0

entonces M es semidefinida positiva M ≥ 0, si solo si:

C −BTA−1B ≥ 0

22

Page 29: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.6 Programación cuadrática

1.6.1. Dualidad en la programación cuadrática

La dualidad cobra especial importancia en este tipo de problemas. La función dualde un problema de programación cuadrática, se puede obtener sin más que aplicarel teorema de dualidad .

g(x) = minz∈Z

f0(z, x)

En el caso de que la región factible básica coincida con Rn se puede calcular lafunción dual g(x) de manera explicita.

Corolario 34. Sea un problema QP definido según ( 27) , Z ≡ R y H > 0, lafunción dual es una función cuadrática cóncava:

g(x) = −12x

TAH−1ATx−

(b+ AH−1f

)Tx− 1

2fTH−1f , A =

A

Aeq

Demostración. La langrangiana de un problema de programación cuadrática es unafunción cuadrática convexa con respecto a z. Por lo que el óptimo de esta función,no restringido, se puede hallar sin más que igualar el gradiente con respecto a z a 0.

∇zf0(z∗, x) = 0

Hz∗(x) + f + A

Aeq

T x = 0

z∗(x) = −H−1(f + A

Tx), A =

A

Aeq

Sustituyendo el resultado de z∗ óptimo anterior en la langrangiana, se obtiene final-mente:

23

Page 30: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

g(x) = 12(fT + xTA

)H−1

(f + A

Tx)−

−fTH−1(f + A

Tx)− xT

(AH−1

(f + A

Tx)

+ b)

g(x) = −12x

TAH−1ATx−

(b+ AH−1f

)Tx− 1

2fTH−1f

Otro caso de gran importancia es el caso en el que la región factible básica sea unortoedro y H sea diagonal. En este caso también se puede obtener una expresiónexplicita de la función dual.

Lema 35. Sea un problema QP definido según ( 27) , con H = D > 0 diagonal,Z ≡

{z ∈ Rn : ∀i, zli ≤ zi ≤ zui

}, la función dual se define como:

g(x) = L(z∗, x)

zi∗ = min

(max

(−fi + ATi x

Di

, zli

), zui

)i ∈ [0, n]

Demostración. La función dual para el problema descrito se define como:

g(x) = minzk∈Z

L(z, x)

g(x) = minz∈Z

12z

TDz + fT z + xT (Az − b)

Se reescribe la función a minimizar como suma de funciones convexa:

g(x) = −xT b+minz∈Z

12z

TDz + fT z +(xTA

)z

g(x) = −xT b+ minzi∈[zli,z

ui ]

n∑i=1

(12Diz

2i + fi(x)

)fi(x) = fi + ATi x

g(x) = −xT b+ minzi∈[zli,z

ui ]

n∑i=1

vi(zi, x)

24

Page 31: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.6 Programación cuadrática

Al no existen restricciones que acoplen las variables zi y cada función vi(zi, x)solo depende de una sola variable de decisión. Se puede optimizar cada funciónunidimensional por separado.

g(x) = −xT b+n∑i=1

(min

zi∈[zli,zui ]vi(zi, x)

)

z∗i = argminzi∈[zli,z

ui ]vi(zi, x)

como se tratan de problemas unidimensionales, es fácil de comprobar todos loscandidatos a solución: los extremos del intervalo y el punto crítico de la función.

z∗i = argminzi∈[zli,z

ui ]

(12Diz

2i + fi(x)

)

minzi∈[zli,z

ui ]

(12Diz

2i + fi(x)

)= min

(12Diz

li + fi(x) , − 1

Di

fi(x) , 12Diz

ui

)

zi∗ = min

(max

(−fi + ATi x

Di

, zli

), zui

)i ∈ [0, n]

Finalmente se escribe la solución óptima del problema, que se trata de una función“rampa con saturación”( 57), en función de funciones min(x, y) y max(x, y). Véase(Sección A.1).

La solución del problema z∗i (x) /∈ C1 no es una función continua diferenciable de x.En ( 62) se aborda este problema y se haya una aproximación diferenciable de esta.La solución aproximada del problema se muestra a continuación.

Corolario 36. Sea un problema QP definido según ( 27), con H = D > 0 diagonal,Z ≡

{z ∈ Rn : ∀i, zli ≤ zi ≤ zui

}, la función dual se puede aproximar por:

g(x) w L(z∗i , x) ≥ g(x)

z∗i w z∗i = zui − φρ(zui − zli − φρ

(−fi + ATi x

Di

− zli

))

cuya derivada con respecto a las variables del dual es:

25

Page 32: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 1 Conceptos generales de optimización

dz∗idxk

= − 1Di

dφρdxk

(zui − zli − φρ

(−fi + ATi x

Di

− zli

))· dφρdxk

(−fi + ATi x

Di

− zli

)Ai

Esta aproximación es una solución conservativa, siempre tiene mayor o igual valorde la función dual que la solución exacta, para el problema dual y siempre cumplelas restricciones con mayor holgura.

1.7. Optimización suave

La optimización suave trata de resolver problemas ( 2), en los que las funcionesimplicadas son diferenciables de clase Cn. Es común en este tipo de técnicas deoptimización suaves, el hacer ciertas suposiciones sobre las derivadas de la función.Una de las más conocida es la condición de continuidad de Lipschitz, que se describea continuación.

Definición 37. Una función f : Q ⊆ Rn → Rm es continua Lipschitz si solo si:

∀x, y ∈ Q : ‖f(x)− f(y)‖ ≤ L ‖x− y‖

Siendo L ∈ R la constante de Lipschitz de f .

Definición 38. Una función f : Q ⊆ Rn → Rm pertenece a la clase Ck,pL en Q si

solo si:

La función f es diferenciable k veces, f ∈ Ck(Q).

La derivada p-ésima de la función f es continua Lipschitz con constante deLipschitz L.

Existen dos clases de problemas suaves no restringidos, que tienen especial impor-tancia, a la hora de métodos numéricos y que se tratará en sucesivas secciones. Estosson:

1. Función objetivo convexa, suave (diferenciable f0 ∈ C1), con gradiente Lips-chitz f0 ∈ F1,1

L .

26

Page 33: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

1.7 Optimización suave

2. Función objetivo estrictamente convexa (con parámetro µ), suaves (diferencia-ble f0 ∈ C1), no restringidos, con gradiente Lipschitz f0 ∈ S1,1

µ,L.

27

Page 34: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad
Page 35: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2. Métodos numéricos deoptimización

2.1. Métodos numérico locales

Los métodos numéricos locales de optimización, son un tipo de métodos iterativosbasados en información local del problema entorno a un punto, proporcionada porlo que denominaremos “oráculo” O(xk) según la terminología utilizada en [Nes04].El algoritmo parte de un punto inicial x0 e itera a partir de información local deeste punto. En los sucesivos pasos, el algoritmo va usando la información recopiladaIk en cada paso, para obtener el siguiente paso, hasta que se cumpla un criterio deparada definido a priori τε, que depende del error deseado ε.

29

Page 36: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

Método iterativo general

Datos de entrada: Condiciones iniciales x0, criterio de parada τε.Inicialización: Se parte de la iteración k = 0, sin información local de la funciónI−1 = �.Bucle Principal:

1. Usamos el “oráculo” O(xk) para obtener información local entorno xk.

2. Actualizamos la información conocida sobre el problema con la nueva infor-mación proporcionada por el oráculo Ik = Ik−1 ∪ O(xk).

3. Calculamos el nuevo punto xk+1 a partir de la información recopilada hasta elmomento.

4. Se comprueba el criterio de parada τε. Si se cumple, el algoritmo a finalizado,si no se realiza una nueva iteración del método.

5. Se incrementa el contador de iteraciones k.

2.1.1. Método del gradiente

Se trata de un método local, para resolver problemas no restringidos, cuyo “oráculo”utiliza información sobre el gradiente de la función, por lo que la función objetivodebe ser diferenciable. Este método se puede resumir como sigue:

Método del gradiente

Datos de entrada: Condiciones iniciales x0, criterio de parada τε para una toleranciaε.Inicialización: Se parte de la iteración k = 0.Bucle Principal:

1. xk+1 = xk −∇f0(xx)hk

2. Se comprueba el criterio de parada τε. Si se cumple, el algoritmo a finalizado,si no se realiza una nueva iteración del método.

3. Se incrementa el contador de iteraciones k.

30

Page 37: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.1 Métodos numérico locales

Siendo hk el paso, en la iteración número k. Existiendo varias técnicas para elegir elvalor de este.

Paso fijo: hk = h.

Búsqueda lineal exacta: hk = argminh≥0

f0 (xk − h∇f0(xk))

Corolario 39. Para la clase C1,1L (Rn) se puede elegir, en el caso de la estrategia

de paso fijo, el paso de manera óptima y con garantías de convergencia. Este pasoóptimo se corresponde con:

h∗ = 1L

Demostración. Sea f ∈ C1,1L (Rn) al ser su gradiente Lipschitz se puede aplicar ,

entre dos puntos consecutivos del método del gradiente, como sigue:

f0(xk+1) ≤ f0(xk) + 〈∇f0(xk), xk+1 − xk〉+ L

2 ‖xk+1 − xk‖2 , xk+1 = xk − h∇f0(xk)

f0(xk+1) ≤ f0(xk) + h ‖∇f0(xk)‖2 + Lh2

2 ‖∇f0(xk)‖2

f0(xk+1) ≤ f0(xk)− h(

1− Lh2

)‖∇f0(xk)‖2

Por lo que el paso óptimo ser el que minimice h(1− Lh

2

)que se da para h∗ = 1

L

2.1.2. Análisis de complejidad para las clases F∞,1L (Rn) yS∞,1L (Rn)

2.1.2.1. Tasa clase F∞,1L (Rn)

Teorema 40. Para cualquier método iterativo de primer orden, para un problema deoptimización convexa, no restringido, para la clase F∞,1L (Rn). El error esta acotadopor:

31

Page 38: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

f(xk)− f ∗ ≥3L ‖x0 − x∗‖2

32(k + 1)2

‖xk − x0‖2 ≥ 18 ‖x0 − x∗‖2

2.1.2.2. Tasa clase S∞,1L (Rn)

Teorema 41. Para cualquier método iterativo de primer orden, para un problemade optimización estrictamente convexa, no restringido, para la clase S∞,1L (Rn). Elerror esta acotado por:

f(xk)− f ∗ ≥µ

2

√Qf − 1√Qf + 1

2k

‖x0 − x∗‖2

‖xk − x0‖2 ≥

√Qf − 1√Qf + 1

2k

‖x0 − x∗‖2

2.1.3. Método óptimo para la clase S1,1µ,L(Rn) [Nes04]

2.1.3.1. Constante de Lipschitz conocida

El método de primer orden de Nesterov descrito en [Nes04] y que se muestra acontinuación es un método óptimo para la clase S1,1

µ,L(Rn)

32

Page 39: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.1 Métodos numérico locales

Método óptimo

Datos de entrada: Condiciones iniciales x0, criterio de parada τε.Inicialización: Se parte de la iteración k = 0, y0 = x0, q = L

µ.

Bucle Principal:

1. xk+1 = yk − 1L∇f0(yk)

2. αk+1 = 12

(q − α2

k +√

(α2k − q)

2 + 4α2k

)3. βk = αk(1−αk)

α2k+αk+1

4. yk+1 = xk+1 + βk (xk+1 − xk)

Se comprueba el criterio de parada τε. Si se cumple, el algoritmo a finalizado, si nose realiza una nueva iteración del método.Se incrementa el contador de iteraciones k.

Teorema 42. El algoritmo presentado para una función f ∈ S1,1µ,L(Rn) , tiene una

tasa de convergencia de:

f(xk)− f ∗ ≤ min

(

1−√µ

L

)k,

4L(2√L+ k

√γ0)2

(f(x0)− f ∗ + γ0

2 ‖x0 − x∗‖2)

γ0 = α0(α0L− µ)1− α0

Este se nuestra en la gráfica (Figura 2.1) y puede verse el efecto del número decondición en la tasa de convergencia.

2.1.3.2. Constante de Lipschitz no conocida

En el caso que la constante de Lipschitz no sea conocida se busca una constantede Lipschitz local que cumpla la condición f (xk+1) − f (yk) + 1

2L ‖∇f(yk)‖2 ≤ 0,como deja indicado Nesterov en (2.2.6)[Nes04]. Para ello se toma una constante deLipschitz local inicial elegida a la azar o con algún criterio heurístico. Siempre quecumpla el criterio antes indicado se va disminuyendo a tasa constante para mejorar

33

Page 40: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

el rendimiento del algoritmo, mientras que si no la cumple se aumenta y no se siguecon el siguiente paso del algoritmo hasta que no sea cumplida.

Método óptimo (C. Lipschitz no conocida)

Datos de entrada: Condiciones iniciales x0, criterio de parada τε.Inicialización: Se parte de la iteración k = 0, y0 = x0.

1. Bucle Principal:

2. Disminuye Lk.

3. Bucle de búsqueda constante de Lipschitz local Lk:

a) xk+1 = yk − 1L∇f0(yk)

b) Si f (xk+1) − f (yk) + 12L ‖∇f(yk)‖2 ≤ 0 entonces Lk es una constante

Lipschitz local de f si no, se aumenta Lk y se realiza una nueva iteración.

4. qk = Lkµ

5. αk+1 = 12

(q − α2

k +√

(α2k − qk)

2 + 4α2k

)6. βk = αk(1−αk)

α2k+αk+1

7. yk+1 = xk+1 + βk (xk+1 − xk)

8. Se comprueba el criterio de parada τε. Si se cumple, el algoritmo a finalizado,si no se realiza una nueva iteración del método.

9. Se incrementa el contador de iteraciones k.

Este método tiene como inconveniente que se debe evaluar la función objetivo unnúmero de veces indeterminado dependiendo de la heurística usada para modificarel valor de la constante de Lipschitz local. Esto puede hacer que el algoritmo pierdarendimiento. Por otro lado el hecho de usar un constante de Lipschitz local puedeconseguir un número de iteraciones menor al de L constante, ya que localmente latasa de convergencia aumenta.

Otro punto a tener en cuenta es que si la constante de Lipschitz varia en cadaiteración no se puede garantizar una tasa de convergencia conocida a priori.

34

Page 41: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.1 Métodos numérico locales

Figura 2.1.: Error en función del número de iteraciones para varios valores de nºde condición

2.1.4. Optimización en conjuntos simples (Gradient mapping)

Los métodos anteriores están diseñados para problemas de optimización no res-tringida. En el caso de problemas de optimización convexa restringida, se puededesarrollar técnicas similares para conjuntos convexos simples. Para ello deberemosintroducir varios conceptos previos:

Definición 43. Sea un conjunto convexo Q, y una función convexa f(x) : Rn →R, se define el mapeo del gradiente gQ (x, γ) (“gradient mapping”) de f en Q:

xQ (x, γ) = argminx∈Q

[f (x) + 〈∇f (x) , x− x〉+ γ

2 ‖x− x‖2]

gQ (x, γ) = γ (x− xQ (x, γ))

Corolario 44. Sea el conjunto de convexo Q ≡ {x : Rn, xk ≥ 0 : k ∈ [0, n]},el mapeo del gradiente gQ (x, γ) de f en Q:

35

Page 42: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

xQk (x, γ) = max

(xk −

1γ∇f (x)k , 0

): k ∈ [0, n]

gQk (x, γ) = γ

(xk −max

(xk −

1γ∇f (x)k , 0

)): k ∈ [0, n]

El algoritmo óptimo de Nesterov puede ser adaptado al problema de optimizaciónrestringido a un conjunto convexo simple. Solo hace falta hacer pequeñas modifica-ciones. El gradiente de la función objetivo se sustituye por el mapeo del gradientede f sobre Q. La deducción de este algoritmo es muy similar al algoritmo destinadoa problemas restringidos, por lo que no se analizará en este trabajo. Finalmente elalgoritmo se resume en los siguientes pasos:

36

Page 43: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.2 Regularización de problemas de optimización

Método óptimo para problemas restringidos (C. Lipschitz noconocida)

Datos de entrada: Condiciones iniciales x0, criterio de parada τε.Inicialización: Se parte de la iteración k = 0, y0 = x0.

1. Bucle Principal:

2. Disminuye Lk.

3. Bucle de búsqueda constante de Lipschitz local Lk:

a) xk+1 = xQ (yk, L)

b) gQ (yk, L) = L (yk − xk+1)

c) Si f (xk+1) − f (yk) + 12L ‖gQ (yk, L)‖2 ≤ 0 entonces Lk es una constante

Lipschitz local de f si no, se aumenta Lk y se realiza una nueva iteración.

4. qk = Lkµ

5. αk+1 = 12

(q − α2

k +√

(α2k − qk)

2 + 4α2k

)6. βk = αk(1−αk)

α2k+αk+1

7. yk+1 = xk+1 + βk (xk+1 − xk)

8. Se comprueba el criterio de parada τε. Si se cumple, el algoritmo a finalizado,si no se realiza una nueva iteración del método.

9. Se incrementa el contador de iteraciones k.

2.2. Regularización de problemas de optimización

Como se ha observado en (Subsección 2.1.3) la velocidad de convergencia del métodotiene una gran dependencia con el número de condición del problema. La regulari-zación consiste en añadir un termino a la función objetivo para mejorar el númerode condición del problema R(x).

Otra ventaja de la regularización es que los métodos de optimización que solo pue-dan ser usados con funciones estrictamente convexa, pueden ser aplicados a funciones

37

Page 44: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

convexas, ya que la suma de una función convexa y un término regularizador estric-tamente convexo, da como resultado una función estrictamente convexa a la que sele puede aplicar el algoritmo.

Los términos regularizadores suelen ser funciones de una norma de las variables delproblema. Los términos más usados son:

1. Norma 1: R(x) = αr ‖x‖1

2. Norma cuadrática: R(x) = αr2 ‖x‖

22

3. Norma cuadrática de las restricciones de igualdad: R(x) = αr2 ‖Aeqx− beq‖

22

La técnica de regularización produce en la mayoría de los casos un resultado apro-ximado del problema ya que el termino regularizador modifica el problema originalpero mejora la convergencia como podemos observar en (Figura 2.2).

Existe un método para conseguir la precisión deseada, independientemente del valordel termino regularizador. Este consiste en resolver un problema regularizado conel termino regularizador centrado en el punto inicial del algoritmo, una vez que secumple la condición de parada del problema regularizado τ rε , que es función de latolerancia εr. Se vuelve a resolver otro problema de optimización con el terminoregularizador centrado en el valor final obtenido en problema anterior, partiendocomo punto inicial del algoritmo este mismo punto. Acto seguido se repite esteproceso hasta que se cumple la condición de parada del método global τε, funciónde la tolerancia deseada ε. Este algoritmo se puede resumir en los siguientes pasos,que se detallan a continuación:

38

Page 45: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.2 Regularización de problemas de optimización

Método iterativo general regularizado

Datos de entrada: Condiciones iniciales x0, criterio de parada τε y τ rε .Inicialización: Se parte de la iteración k = 0, con el termino regularizador centradoen las condiciones iniciales del problema xr = x0 y sin información local de la funciónI−1 = �.

1. Bucle principal:

a) Bucle problema regularizado:

b) Usamos el “oráculo” O(xk, xr) para obtener información local entorno xk.

c) Actualizamos la información conocida sobre el problema con la nuevainformación proporcionada por el oráculo Ik = Ik−1 ∪ O(xk, xr).

d) Calculamos el nuevo punto xk+1 a partir de la información recopiladahasta el momento.

e) Se comprueba el criterio de parada τ rε . Si se cumple se centra el terminoregularizado en el punto final xr = xk+1, se reinicia la información localconocida Ik = �, ya que el problema se modifica y se vuelve al bucleprincipal, si no se realiza una nueva iteración del problema regularizado.

f ) Se incrementa el contador de iteraciones k.

2. Se comprueba el criterio de parada τε si se cumple el algoritmo ha finalizado,si no se realiza una nueva iteración del bucle principal.

Este algoritmo puede bajo ciertas condiciones mejorar la tasa de convergencia delalgoritmo original no regularizado. Ya que resolver un conjunto de problemas regu-larizados mejor condicionados, puede requerir menor número de iteraciones totalesque el resolver el problema original mal condicionado.

2.2.1. Regularización αr

2 ‖Aeqx− beq‖22

El termino regularizador αr2 ‖Aeqx− beq‖

22 tiene un conjunto de propiedades bastan-

te interesante que no poseen otro métodos de regularización. En este apartado seanalizarán las ventajas e inconvenientes de este termino regularizador.

Lema 45. Sea un problema de optimización definido según ( 2) con un conjunto de

39

Page 46: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

Figura 2.2.: Nº Iteraciones necesarias para resolver un problema regularizadoR(x) = αr

2 ‖x‖22 por el “método óptimo [Nes04],γ0 = L” para µ = 1, L = 50

con una tolerancia f−f∗‖x−x0‖2 ≤ 10−10

restricciones lineales de la forma Aeqx = beq. El óptimo de este problema x∗ coincidecon el óptimo del problema regularizado:

x∗ = argmin f0(x)+αr2 ‖Aeqx− beq‖22

s.a :fi(x) ≤ 0 i ∈ [1,m]hi(x) = 0 i ∈ [1, l]Aeqx = beq

x ∈ S ⊆ Rn

Demostración. Sea un problema de optimización convexa definido según ( 2) conun conjunto de restricciones lineales de la forma Aeqx = beq. Siendo el óptimo delproblema x∗.

El término αr2 ‖Aeqx− beq‖

22 al ser αr ≥ 0 es siempre positivo ya que ‖Aeqx− beq‖

es una norma por lo tanto es siempre positiva y además esta elevada al cuadrado.El problema original es factible por lo que rank([Ab]) < n es decir las ecuacionesAeqx = beq forman un sistema de ecuaciones lineales indeterminado. Por lo que

40

Page 47: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.2 Regularización de problemas de optimización

siempre que un valor de x sea factible para el problema de optimización el términoregularizador valdrá 0 que es su valor mínimo.

∀x ∈ Q : f0(x) + αr2 ‖Aeqx− beq‖

22 = f0(x)

argminx∈Q

f0(x) + αr2 ‖Aeqx− beq‖

22 = argmin

x∈Qf0(x) = x∗

Por último destacar que como el término regularizador es convexo, si el problemade optimización original fuese convexo también lo sería el problema regularizado.

En general el término regularizador αr2 ‖Aeqx− beq‖

22 no es una función estrictamente

convexa por lo que no tendría la propiedad descrita para los otros métodos deregularización de transformar los problemas de optimización convexa original en unproblema estrictamente convexo regularizado para todos los casos. En el caso de queel ∀x ∈ Q : det

(Hf0(x) + αr

2 ATreqAeq

)> 0 esto si ocurrirá. El parámetro αr

2 tienegran efecto sobre el número de condición de problema regularizado. Existe un valoróptimo de dicho parámetro que hará mínimo el número de condición y por lo tantomaximizará la velocidad de convergencia del problema.

Corolario 46. Sea un problema de programación cuadrática convexo( 27). El pro-blema regularizado con el término aditivo αr

2 ‖Aeqx− beq‖22 es un problema de pro-

gramación cuadrática convexo definido por:

minz∈Z

f0(z) = 12z

T(H + αr

2 ATeqAeq

)z +

(f − αr

2 ATeqbeq

)Tz

sa :Az ≤ b

Aeqz = beq

41

Page 48: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

2.3. Aplicación del método óptimo [Nes04] alproblema de programación cuadrática

El método óptimo, de primer orden, desarrollado por Nesterov, puede ser aplicadoal problema de programación cuadrática. Se presentarán dos casos particulares degran importancia.

2.3.1. Problema QP general, con región básica factible Rn

El problema general definido según ( 27), se puede resolver para el caso que la regiónbásica factible básica sea Z ≡ Rn a partir del problema dual ( 34). La función dualse calculo de manera explicita para este caso en ( 34) y se usará para este fin. Pararesolver el problema dual, que es un problema de programación cóncavo de maximi-zación, se reformula como un problema de minimización cambiando el signo de lafunción objetivo. Algunas de las variables del dual, las que estás asociadas a restric-ciones de desigualdad, deben ser siempre positivas. Esto nos fuerza a usar el algo-ritmo de Nesterov para regiones convexas simples presentado en (Subsección 2.1.4).Finalmente el algoritmo para resolver este problema se puede resumir como sigue:

42

Page 49: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.3 Aplicación del método óptimo [Nes04] al problema de programación cuadrática

Método QP general

Datos de entrada: Condiciones iniciales x0, criterio de parada τε para una toleranciaε.Inicialización: Se parte de la iteración k = 0, y0 = x0.

1. Bucle Principal:

2. Disminuye Lk.

3. zyk = −H−1(f + ATyk

)4. ∇g0(yk) = −

(Azk − b

)5. g0 (xk+1) = −

(12z

y Tk Hzyk + fT zyk + yTk

(Azyk − b

))6. Bucle de búsqueda constante de Lipschitz local Lk:

a) xk+1 = yk − 1L∇f0(yk)

b) xk+1, j = max(xk+1, j, 0) : j ∈ [0,m]

c) zxk = −H−1(f + ATxk+1

)d) g0 (xk+1) = −

(12z

xTk Hzxk + fT zxk + xTk+1

(Azxk − b

))e) Si g0 (xk+1)− g0 (yk) + L

2 ‖yk − xk+1‖2 ≤ 0 entonces Lk es una constanteLipschitz local de g si no, se aumenta Lk y se realiza una nueva iteración.

7. qk = Lkµ

8. αk+1 = 12

(q − α2

k +√

(α2k − qk)

2 + 4α2k

)9. βk = αk(1−αk)

α2k+αk+1

10. yk+1 = xk+1 + βk (xk+1 − xk)

11. Se comprueba el criterio de parada τε. Si se cumple, el algoritmo a finalizado,si no se realiza una nueva iteración del método.

12. Se incrementa el contador de iteraciones k.

Un criterio de parada posible para este algoritmo puede ser:

43

Page 50: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

τε :∥∥∥Azk+1 − b

∥∥∥ ≤ ε

Este criterio implica que las restricciones del problema se cumplan con una toleranciaε. Al ser factible en el primal y z es óptimo para los valores actuales de las variablesdel dual que son factibles, µ ≥ 0, lo que significa que cumple las condiciones de KKTy al ser un problema convexo es óptimo.

2.3.2. Problema QP diagonal con región básica factibleortoédrica

Este problema ya fue presentado en ( 36) y se trata de problemas de programa-ción cuadráticas en el que las variables están restringidas en un ortoedro Z ≡{z ∈ Rn : ∀i, zli ≤ zi ≤ zui

}yH es diagonal. Este problema al igual que el anterior

se resuelve, a través del problema dual. La función del dual del problema se hayo demanera exacta en ( 35) pero en este algoritmo se usará una aproximación diferencia-ble introducida en ( 36), ya que el método usado necesita que la función a minimizarsea convexa, diferenciable y con gradiente Lipschitz −g0(x) ∈ F1,1

µ,L(Rn). Al igual queen el caso anterior, el problema dual se trata de un problema de maximización, porlo que se procede a reescribirlo en forma de un problema de minimización, sin másque cambiando de signo la función objetivo. El algoritmo finalmente se resumen enlos siguientes pasos:

44

Page 51: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.3 Aplicación del método óptimo [Nes04] al problema de programación cuadrática

Método QP restringido a un ortoedro

Datos de entrada: Condiciones iniciales x0, criterio de parada τε para una toleranciaε.Inicialización: Se parte de la iteración k = 0, y0 = x0.

1. Bucle Principal:

2. Disminuye Lk.

3. zyk = zui − φρ(zui − zli − φρ

(−fi+ATi yk

Di− zli

))4. ∇g0(yk) = −

(Azk − b

)5. g0 (xk+1) = −

(12z

TkDzk + fT zk + yTk

(Azk − b

))6. Bucle de búsqueda constante de Lipschitz local L:

a) xk+1 = yk − 1L∇f0(yk)

b) xk+1, j = max(xk+1, j, 0) : j ∈ [0,m]

c) zxk = zui − φρ(zui − zli − φρ

(−fi+ATi xk+1

Di− zli

))d) g0 (xk+1) = −

(12z

TkDzk + fT zk + xTk+1

(Azk − b

))e) Si g0 (xk+1)− g0 (yk) + L

2 ‖yk − xk+1‖2 ≤ 0 entonces Lk es una constanteLipschitz local de g si no, se aumenta Lk y se realiza una nueva iteración.

7. qk = Lkµ

8. αk+1 = 12

(q − α2

k +√

(α2k − qk)

2 + 4α2k

)9. βk = αk(1−αk)

α2k+αk+1

10. yk+1 = xk+1 + βk (xk+1 − xk)

11. Se comprueba el criterio de parada τε. Si se cumple, el algoritmo a finalizado,si no se realiza una nueva iteración del método.

12. Se incrementa el contador de iteraciones k.

Aunque el desarrollo teórico necesita que la función a optimizar sea diferenciable en

45

Page 52: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

la práctica, se puede usar la expresión exacta de la función dual. Esto se debe quepara un ρ suficientemente grande la aproximación y la expresión real coinciden parala precisión numérica del método.

2.3.3. Problema QP diagonal con región básica factibleortoédrica y precondicionamiento

Este algoritmo es una mejora del algoritmo presentado para el problema QP diagonalcon región básica factible ortoédrica (Subsección 2.3.2).

En el caso de que no haya restricciones de desigualdad puede ser aconsejable realizarun cambio de variables en las variables del dual para mejorar el número de condicióndel problema. La función dual del problema en un punto en el interior del ortoedroz∗(x) ∈ int(Z) (no en la frontera) tiene la siguiente expresión:

g(x) = −12x

TAeqH−1ATeqx−

(b+ AeqH

−1f)Tx− 1

2fTH−1f

Esta función cuadrática puede ser diagonalizada mediante un cambio de variablesy la descomposición LDLT o Cholesky como se demuestra en 31. Si se realizala descomposición de Cholesky el cambio transforma el problema en un problemacon número de condición unidad. Esto produce que en el caso de que el óptimo delproblema se encuentre en el interior de la región de factibilidad el algoritmo converjaen una sola iteración. Como desventaja hay que hacer notar que el cambio producecambios en la estructura del problema que pueden provocar costes computacionalesextra a la hora de calcular el valor de la función o su gradiente en cada paso, estoproduce que no se pueda afirmar que este método mejore, para cualquier problema, elmétodo anterior en cuanto a coste computacional. Por último es importante destacarque este método al tener número de condición uno y constante de Lipschitz globalconocida no necesita calcular una constante de Lipschitz local por lo que se puedeaplicar el método de Nesterov para constante de Lipschitz conocida.

46

Page 53: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.3 Aplicación del método óptimo [Nes04] al problema de programación cuadrática

STS = AeqH−1ATeq

g(x) = −12x

TSTSx−(b+ AeqH

−1f)Tx : Sx = x

g(x) = −12 x

T x−(b+ AeqH

−1f)TS−1x

Este método de precondicionamiento del problema se puede resumir de maneraalgorítmica como sigue:

47

Page 54: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

Método QP restringido a un ortoedro (precondicionado)

Datos de entrada: Condiciones iniciales x0, criterio de parada τε para una toleranciaε.Inicialización: Se parte de la iteración k = 0, y0 = x0, S = chol(AeqD−1ATeq).

1. Bucle Principal:

2. Disminuye Lk.

3. zyk = zui − φρ(zui − zli − φρ

(−fi+ATeq,iS

−1ykDi

− zli))

4. ∇g0(yk) = −S(−1)T (Aeqzk − beq)

5. g0 (xk+1) = −(

12z

TkDzk + fT zk + yTk S

(−1)T (Aeqzk − beq))

6. Bucle de búsqueda constante de Lipschitz local L:

a) xk+1 = yk − 1L∇g0(yk)

b) zxk = zui − φρ(zui − zli − φρ

(−fi+ATeq iS

−1xk+1Di

− zli))

c) g0 (xk+1) = −(

12z

TkDzk + fT zk + xTk+1S

(−1)T (Aeqzk − beq))

d) Si g0 (xk+1)− g0 (yk) + L2 ‖yk − xk+1‖2 ≤ 0 entonces Lk es una constante

Lipschitz local de f si no, se aumenta Lk y se realiza una nueva iteración.

7. qk = Lkµ

8. αk+1 = 12

(q − α2

k +√

(α2k − qk)

2 + 4α2k

)9. βk = αk(1−αk)

α2k+αk+1

10. yk+1 = xk+1 + βk (xk+1 − xk)

11. Se comprueba el criterio de parada τε. Si se cumple, el algoritmo a finalizado,si no se realiza una nueva iteración del método.

12. Se incrementa el contador de iteraciones k.

Este algoritmo es aconsejable cuando el número de condición del problema dual eselevado o la solución suele encontrarse en el interior con más probabilidad que enla frontera, ya que el número necesario de iteraciones para alcanzar la condición de

48

Page 55: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.3 Aplicación del método óptimo [Nes04] al problema de programación cuadrática

parada se reduce, aunque las operaciones con S aumentan el coste computacionalde cada paso.

2.3.4. Método de la holgura artificial para el problema QPgeneral

El método de la holgura artificial que se presento en (Subsección 1.4.3), permiteconvertir problemas con desigualdades e igualdades en problemas solo con restric-ciones de igualdad. Esto permite resolver el problema dual con métodos numéricospara problemas no restringidos. Al problema original se le añadido un termino re-gularizador de s para que el problema fuera estrictamente convexo y se aproximadola función max(x, 0) por φρ(x).

minx,s

12z

THz + 12αr (s− sr)T (s− sr) +fT z

sa :Az + φρ(s) = b

Aeqz = beq

Donde la langrangiana del problema es la siguiente función:

L(z, s, x, y) = 12z

THz + fT z+

+ x

y

T A

Aeq

z − b− Φρ(s)

beq

+ 12αr (s− sr)T (s− sr)

∇L(z, s, x) =

Hz + f + A

Aeq

T x

y

α (s− sr) + Φ′ρ(s)x A

Aeq

z − b− Φρ(s)

beq

La solución del problema como se expreso en ( 5) se obtiene en los puntos críticos dela función langrangiana. Este punto crítico si existe es único ya que es un problema de

49

Page 56: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

optimización convexo. Para hallar este punto se iguala el gradiente de la langrangianaa cero y se resuelve el sistema de ecuaciones.

Hz + f + A

Aeq

T x

y

= 0

α (s− sr) + Φ′ρ(s)x = 0 A

Aeq

z − b− Φρ(s)

beq

= 0

Operando obtenemos:

z = −H−1

f + A

Aeq

T x

y

A

Aeq

H−1

A

Aeq

T x

y

− A

Aeq

H−1f −

b− Φρ(s)beq

= 0

W

x

y

+N −

Φρ(s)0

= 0 W = A

Aeq

H−1

A

Aeq

T ,N =

A

Aeq

H−1f + b

beq

Wxxx+Wxyy +Nx − Φρ(s) = 0Wyxx+Wyyy +Ny = 0→ y = −W−1

yy (Wyxx+Ny)(Wxx −WxyW

−1yy Wyx

)x+Nx −WxyW

−1yy Ny − Φρ(s) = 0

Wxx+ Nx − Φρ(s) = 0 , Wx =(Wxx −WxyW

−1yy Wyx

), Nx = Nx −WxyW

−1yy Ny

αrΦ′

ρ(s)−1 (s− sr) + x = 0αrΦ

ρ(s)−1 (s− sr) + W−1x

(Φρ(s)− Nx

)= 0

Finalmente se llega a la siguiente expresión que solo depende de las holguras artifi-ciales s:

50

Page 57: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.3 Aplicación del método óptimo [Nes04] al problema de programación cuadrática

αrΦ′

ρ(s)−1 (s− sr) + W−1x

(Φρ(s)− Nx

)= 0

Por lo que la solución final del problema es:

αrΦ′

ρ(s∗)−1 (s∗ − sr) + W−1x

(Φρ(s∗)− Nx

)= 0

x∗ = W−1x

(Φρ(s∗)− Nx

)y∗ = −W−1

yy (Wyxx∗ +Ny)

z∗ = −H−1

f + A

Aeq

T x∗

y∗

Esta solución es aproximada debido a que se ha usado un término regularizador ens. Se deberá resolver de manera iterativa el problema anterior centrando el términoregularizador en la solución óptima del problema anterior.

Como se puede aprecia la solución se ha dado de manera implícita por lo que seránecesario resolver un sistema de ecuaciones no lineales usando el método de Newton.

s∗ = argmins

12∥∥∥αrΦ′ρ(s∗)−1 (s∗ − sr) + W−1

x

(Φρ(s∗)− Nx

)∥∥∥2

Este problema de minimización se puede resolver por el método de Nesterov conconstante Lipschitz local ya que la función es suave y convexa pero no tiene gradienteLipschitz lo que significa que no esta garantizada su convergencia.

Otro punto importante que hay que destacar es que no siempre se puede despejar yen función de x. En este caso la solución del problema se formula como sigue:

51

Page 58: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

α (s∗ − sr) + Φ′ρ(s∗)x∗ = 0

W

x∗

y∗

+N −

Φρ(s∗)0

= 0

[s∗, x∗, y∗] = argmins,x,y

12

∥∥∥∥∥∥∥∥∥

α (s∗ − sr) + Φ′ρ(s∗)x∗

W

x∗

y∗

+N −

Φρ(s∗)0

∥∥∥∥∥∥∥∥∥

2

z∗ = −H−1

f + A

Aeq

T x∗

y∗

Este problema tiene mayor dimensión n+ 2m+meq frente a m variables de decisiónde la solución reducida pero no tiene problemas numérico y se puede comprobar quesu gradiente es Lipschitz.

2.3.5. Método de la holgura artificial para el problema QPrestringido a un ortoedro

En este caso, a diferencia de los métodos presentados anteriormente para resolver elproblema QP restringido a un ortoedro, el problema no tiene porque ser diagonal.Este algoritmo al igual que el algoritmo para el caso general esta basado en el métodode la holgura artificial (Subsección 1.4.3). En este caso la función que se usa es lafunción rampa con saturación unitaria definida en ( 57). Se trata de una función nodiferenciable por lo que se aproxima por una función que si lo es ( 62). Al igual queen el caso general se debe añadir un termino regularizador en las holguras artificialespara que el problema sea convexo, esto produce que se deba resolver varios problemasde manera iterativa como se explico en (Sección 2.2).

minx,s

12z

THz + 12αr (s− sr)T (s− sr) +fT z

sa :z − φ1

ρ(s)(zu − zl) = zl

Aeqz = beq

52

Page 59: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.3 Aplicación del método óptimo [Nes04] al problema de programación cuadrática

Donde la langrangiana del problema es la siguiente función:

L(z, s, x, y) = 12z

THz + fT z+

+ x

y

T I

Aeq

z − zl + φ1

ρ(s)(zu − zl)beq

+ 12αr (s− sr)T (s− sr)

∇L(z, s, x) =

Hz + f + I

Aeq

T x

y

α (s− sr) + φ1 ′

ρ (s) diag(zu − zl)x I

Aeq

z − zl + φ1

ρ(s)(zu − zl)beq

El óptimo del problema, si existe, es único y se encuentra en el punto crítico de lafunción langrangiana.

Hz + f + A

Aeq

T x

y

= 0

α (s− sr) + diag (x)φ1 ′ρ (s)(zu − zl) = 0 I

Aeq

z − zl + φ1

ρ(s)(zu − zl)beq

= 0

Operando y sustituyendo una ecuación en otra:

53

Page 60: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 2 Métodos numéricos de optimización

z = −H−1

f + A

Aeq

T x

y

I

Aeq

H−1

I

Aeq

T x

y

− I

Aeq

H−1f −

zl + φ1ρ(s)(zu − zl)beq

= 0

W

x

y

+N + φ1

ρ(s)(zu − zl)0

= 0 , W = H−1 H−1ATeq

AeqH−1 AeqH

−1ATeq

N =

I

Aeq

H−1f + zl

beq

Wxxx+Wxyy +Nx + φ1

ρ(s)(zu − zl) = 0Wyxx+Wyyy +Ny = 0→ y = −W−1

yy (Wyxx+Ny)(Wxx −WxyW

−1yy Wyx

)x+Nx −WxyW

−1yy Ny + φ1

ρ(s)(zu − zl) = 0

Wxx+ Nx + φ1ρ(s)(zu − zl) = 0 , Wx =

(Wxx −WxyW

−1yy Wyx

),

Nx = Nx −WxyW−1yy Ny

αr + φ1 ′ρ (s)−1 (s− sr) + diag

(zu − zl

)x = 0

αrφ1 ′ρ (s)−1 (s− sr)− ˜diag (zu − zl)W−1

x

(Nx + φ1

ρ(s)(zu − zl))

= 0

Finalmente la solución del problema se reduce a:

αrφ1 ′ρ (s)−1 (s− sr)− ˜diag (zu − zl)W−1

x

(Nx + φ1

ρ(s)(zu − zl))

= 0

x∗ = −W−1x

(Nx + φ1

ρ(s∗)(zu − zl))

y∗ = −W−1yy (Wyxx

∗ +Ny)

z∗ = −H−1

f + A

Aeq

T x∗

y∗

La primera ecuación ha de resolverse con el método de Newton ya que es una ex-presión implícita. Hay que destacar que al igual que en desarrollo anterior para elproblema general, no es siempre se podrá despejar y en función de x. Otro puntoimportante es que el proceso de optimización de Newton, la función del error no seráuna función con gradiente Lipschitz por lo que no esta garantizada la convergencia

54

Page 61: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

2.3 Aplicación del método óptimo [Nes04] al problema de programación cuadrática

con el método de Nesterov. Estos inconvenientes se pueden subsanar si se formulael problema como:

α (s∗ − sr) + Φ′ρ(s∗)x∗ = 0

W

x∗

y∗

+N −

Φρ(s∗)0

= 0

[s∗, x∗, y∗] = argmins,x,y

12

∥∥∥∥∥∥∥∥∥

α (s∗ − sr) + Φ′ρ(s∗)x∗

W

x∗

y∗

+N −

Φρ(s∗)0

∥∥∥∥∥∥∥∥∥

2

z∗ = −H−1

f + A

Aeq

T x∗

y∗

El inconveniente es que ahora se pasa de n variables de decisión a 2n+meq.

55

Page 62: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad
Page 63: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3. Control predictivo basado enmodelo

3.1. Modelo dinámico de la planta

El control predictivo basado en modelo necesita de un modelo dinámico de la plantaque se desea controlar, por lo que en esta sección se definirán varios tipos de modelosque se usarán en las sucesivas secciones.

Los modelos de un sistema se pueden clasificar, según varios criterios, como:

Continuos o discretos:

• Un modelo se considera continuo, si las variables de este son funcionescontinuas del tiempo. Por contraposición se considera que un modelo esdiscreto si las variables asociada a este son sucesiones discretas.

Lineal o No-Lineal:

• Un modelo se dice que es lineal, si todas las ecuaciones que relacionan lasvariables del modelo son lineales.

Modelo interno o externo:

• Un modelo externo es aquel en el que las únicas variables del modeloson las entradas y las salidas de este. Por el contrario un modelo internopuede tener otras variables asociadas, llamadas variables internas, que nosean ni entradas, ni salidas.

Modelo determinista o estocástico:

• Un modelo es considerado estocástico si alguna de las variables del mo-delo son variables aleatorias. Mientras que se considera determinista si

57

Page 64: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

todas las variables del modelo, aunque no sean conocidas, tienen un valordeterminista.

Multivariable o SISO:

• Un modelo se dice que es SISO (Single input-single output) si solo tie-ne una única entrada y una única salida. Por lo contrario un modelomultivariable tiene más de una variable de entrada o salida.

3.1.1. Modelo en variable de estado, no-lineal y en tiempodiscreto

Definición 47. El modelo en variable de estado, no-lineal y en tiempo discreto secaracteriza por las siguientes ecuaciones:

x(k + 1) = f (x(k), u(k))y(k) = g (x(k), u(k))

∀k : x(k) ∈ Rn, u(k) ∈ Rm, y(k) ∈ Rp

Siendo x(k) el vector de estado, u(k) las entradas manipulables del modelo e y(k)las salidas.

3.1.2. Modelo en variable de estado, lineal y en tiempo discreto

Definición 48. El modelo en variable de estado, lineal y en tiempo discreto secaracteriza por:

x(k + 1) = Ax(k) +Bu(k)y(k) = Cx(k),+Du(k)

∀k : x(k) ∈ Rn, u(k) ∈ Rm, y(k) ∈ Rp

58

Page 65: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.2 Definición del control predictivo basado en modelo

Siendo x(k) el vector de estado, u(k) las entradas manipulables del modelo e y(k)las salidas.

3.2. Definición del control predictivo basado enmodelo

El control predictivo es una estrategia de control avanzada, que se basa en el calculode las acciones de control futuras, necesarias para optimizar un objetivo de control.Esta estrategia necesita de un modelo de la planta, llamado modelo de predicción,para la predicción de su comportamiento futuro, durante un intervalo temporal quese denomina horizonte de predicción. Esta estrategia de control calculada, solo seaplicará durante un intervalo finito para evitar las derivas producidas por los erroresde modelado. Una vez aplicado, se recalcula la acción óptima de control, para ellos sedesplaza el horizonte de predicción para ajustarlo a las nuevas condiciones iniciales.Esta estrategia se denomina horizonte deslizante y es una característica común detodas las estrategias de control predictivo.

En algunos casos, para disminuir la carga computacional, solo se calcula la secuen-cia óptima de actuaciones para un tiempo menor que el horizonte de predicción yse supone que el resto del tiempo la acción de control se mantiene constante. Alintervalo de tiempo durante el cual se calcula dicha secuencia se denomina horizontede control.

A continuación se definen un conjunto de conceptos útiles relacionados con el controlpredictivo:

Modelo de predicción: Se trata de un modelo de la planta que se usa para predecirla respuesta dinámica en función de la actuación aplicada durante el procesode optimización.

Horizonte de predicción: Intervalo temporal discreto o continuo, durante el cualse predice el funcionamiento de la planta mediante el uso de un modelo deesta.

Horizonte de control: Intervalo temporal discreto o continua, durante el cual seelige la secuencia de actuaciones óptimas mediante un problema de optimiza-ción. Debe ser menor o igual al horizonte de predicción. En el caso de que seamenor se supone que el resto de actuaciones son iguales a la última calculada.

59

Page 66: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

Restricciones del modelo: Son un conjunto de restricciones debidas a saturaciónde los actuadores o condiciones peligrosas de operación de la planta que debenser tenidas en cuenta a la hora de diseñar la estrategia óptima de control.

3.2.1. Control predictivo lineal para seguimiento de trayectoria

El control predictivo puede usarse tanto para seguimiento de trayectoria, como pararegulación. Siendo este segundo caso donde existe un mayor desarrollo teórico ytécnico.

El control para seguimiento de trayectoria necesita conocer el estado objetivo (x∗s, u∗s),que será un punto de equilibrio del sistema, al que se desea llevar al sistema para seproduzca la salida deseada. Este estado puede no ser único, no existir o no cumplirla restricciones, por lo que normalmente se elige según un criterio de optimización.Se suele elegir como criterio, el que la salida del sistema en este punto sea lo máscercana a la referencia posible cumpliendo las restricciones y minimizando la acciónde control en ese punto. Este enfoque llamado “optimizador del objetivo en régimenpermanente” (SSTO1) [Mus97].

Definición 49. El “optimizador del objetivo en régimen permanente” (SSTO) sepuede formular como:

Encontrar la solución en régimen permanente del sistema (xs, us) , objetivo de con-trol, que minimice el coste dado por lt(xs, us, r):

(x∗s(r), u∗s(r)) = argminxs, us∈Zs

lt(xs, us, r)

Siendo lt una función convexa y siendo la región factible para (xs, us):

Zs ≡

(xs, us) : (A− In)xs +Bus

(1 + λ) (xs, us) ∈ Z

λ ≥ 0

que se trata de los puntos de equilibrio del sistema que pertenecen a una sub-regiónde la región factible de (x, u) ∈ Z.

1“SSTO” son las siglas en ingles de “Steady State Target Optimizer”

60

Page 67: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.2 Definición del control predictivo basado en modelo

Es muy común la elección de lt una forma cuadrática, por su simplicidad:

lt(xs, us, r) = 12 ‖Cxs +Dus − r‖2

Qs+ 1

2 ‖us‖2Rs

3.2.2. Control predictivo lineal estabilizador para seguimientode trayectorias [LAAC08]

En esta sección se presentará un tipo de control predictivo para seguimiento de re-ferencias constantes o conocidas. Esta técnica de control predictivo fue desarrolladaen el departamento de sistemas y automática de la escuela técnica superior de in-geniería de Sevilla y publicado en [LAAC08]. Esta estrategia de control predictivodestaca, frente al enfoque clásico, en los siguiente puntos:

La estabilidad esta garantizada, bajo ciertas suposiciones, aunque se produz-ca un cambio de referencia. Incluso si la referencia, por las restricciones delproblema no se puede alcanzar.

El proceso de optimización solo requiere de una etapa y no hace falta re-formular este, si se produce un cambio de referencia.

La factibilidad del problema de optimización está garantizada, incluso cuandose producen cambios de referencia bruscos o la referencia no es es alcanzablepor las restricciones del problema.

Esta estrategia de control se fundamente en el uso de un objetivo artificial de control,más inmediato xs. En la función objetivo se pondera tanto una distancia del estadok-ésimo y de la actuación k-ésima al estado y actuación objetivo artificial como unadistancia de la salida del estado y actuación objetivo artificial con respecto a lareferencia. Si esta última ponderación es suficientemente elevada la salida final serámuy cercana a la referencia como se muestra en (Figura 3.1) mientras que si es bajala salida final no tiene porque acercarse a la referencia requerida como se muestraen (Figura 3.2). Esta estrategia tal y como se ha definido evita el uso de un SSTOprevio al calculo de la secuencia óptima de actuación.

61

Page 68: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

minu,x,xs,us

∑N−1k=0 l(x(k)− xs, u(k)− us) + Vf (x(N)− xs) + lt(xs, us, r)

sa :x(k + 1) = Ax(k) +Bu(k)∀k ∈ [1, N − 1]

xs = Axs +Bus

(x(k), u(k)) ∈ Z ∀k ∈ [1, N − 1](xs, us) ∈ Zs ≡

{(xs, us) : (1 + λ) (xs, us) ∈ Z

}λ ≥ 0

(x(N), xs, us) ∈ Γ

Este problema de optimización de variable real, es un caso particular del proble-ma general de optimización real ( 2). Un caso particular muy importante de esteproblema, es el caso en el que se eligen como funciones de coste l, Vf , lt funcionescuadráticas convexas y como regiones factibles Z, Γ politopos convexo. En este ca-so el problema en cuestión se trata de un problema de programación cuadráticaconvexa ( 27).

Figura 3.1.: Control MPC para seguimiento para un alto valor de Qs

62

Page 69: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.3 Métodos numéricos aplicados a MPC

Figura 3.2.: Control MPC para seguimiento para un bajo valor de Qs

3.3. Métodos numéricos aplicados a MPC

Como se avanzo en Subsección 3.2.2, el problema de MPC es un caso particularde 2 y bajo la siguientes suposiciones es un problema de programación cuadráticaconvexa con restricciones lineales:

1. Las funciones l, Vf , lt y son funciones cuadráticas convexas.

2. Las regiones básicas factibles Z, Γ son politopos convexo y por tanto Zs tam-bién lo es. Estas pueden ser descritas por tanto, mediante ecuaciones e inecua-ciones lineales.

A continuación se detalla la estructura de l, Vf , lt:

l(x(k)− xs, u(k)− us) = 12

x(k)− xsu(k)− us

T Qk JTk

Jk Rk

x(k)− xsu(k)− us

Vf (x(N)− x, u(N)− us) = 1

2

x(k)− xsu(k)− us

T QN JTN

JN RN

x(k)− xsu(k)− us

lt(xs, us, r) = 1

2 ‖Cxs +Dus − r‖2Qs

+ 12 ‖us‖

2Rs

63

Page 70: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

Para aplicar los métodos numéricos analizados en (Capítulo 2) es necesario escribirel problema en forma estándar. Una vez hecho esto modificaremos el algoritmoutilizado para aprovechar la estructura propia de los problemas de optimizacióncuadrática que provienen de un MPC.

Primero empezaremos por escribir la función objetivo en forma estándar, para ellodeberemos hallar la matriz H y f de la forma cuadrática f0(x) = 1

2xTHx + fTx.

Para ello primero reescribiremos las formas cuadráticas de l, Vf en forma estándarpor separado.

l(x(k)− xs, u(k)− us) = 12

x(k)u(k)xs

us

T

Qk Jk −Qk −Jk

JTk Rk −Jk −RK

−Qk −JTk Qk Jk

−JTk −RK JT

k RK

x(k)u(k)xs

us

Vf (x(N)− x, u(N)− us) = 12

x(N)u(N)xs

us

T

QN JN −QN −JN

JTN RN −JN −RN

−QN −JTN QN JN

−JTN −RN JT

N RN

x(N)u(N)xs

us

También se realiza la misma operación lt que resulta una expresión un poco máscompleja.

lt(xs, us, r) = 12 (Cxs +Dus − r)T (Cxs +Dus − r) + 1

2uTs Rsus

lt(xs, us, r) = 12

xs

us

T CTQsC CTQsD

DTQsC Rs +DTQsD

xs

us

− (r [ C D]TQs

)T xs

us

Una vez llegado ha este punto es necesario elegir un orden para las variables delproblema. Existen varias opciones para esto:

Ordenación intercalada de x(k) y u(k):

z =[x(N) u(N) x(N − 1) u(N − 1) · · · xs us

]

Ordenación separada de x(k) y u(k):

z =[x(N) x(N − 1) · · · x(1), u(N − 1) · · · u(1), xs us

]

64

Page 71: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.3 Métodos numéricos aplicados a MPC

El primer método tiene como ventaja que la matriz Aeq tendrá una estructura pseu-dobanda. Mientras que el segundo es una ordenación más natural y en el caso deque se trabaje por bloque no tendrá ninguna desventa frente al primero.

Ordenación intercalada de x(k) y u(k):

H =

QN JN · · · · · · 0

JTN RN

......

. . ....

... Q1 J10 · · · · · · JT

1 R1

−QN

−JTN

...−Q1−JT

1

−JN

−RN

...−J1−R1

−QN −JN · · · −Q1 −J1−JT

N −RN · · · −JT1 −R1

CTQsC +∑N

i=1Qi

DTQsC +∑N

i=1JT

i

CTQsD +∑N

i=1Ji

Rs + DTQsD +∑N

i=1Ri

La matriz H es una matriz en banda, con una banda central y dos bandas unahorizontal inferior y otra vertical a la derecha. Esta estructura es idónea para realizaruna descomposición de Cholesky efectiva. La matriz f tiene la siguiente estructura:

f =

00...

−r · CTQs

−r ·DTQs

La matriz Aeq tiene una estructura en banda lo que produce que el método deregularización R(x) = αr

2 ‖Aeqx− beq‖22

descrito en (Sección 2.2) produzca una forma cuadrática en banda.

Aeq =

In 0 −A −B · · · · · · · · · 00 0 In 0 −A B · · · 0... . . . ...... . . . ...0 · · · · · · · · · · · · · · · In 0

0.........0

0.........0

0 · · · 0 A− In B

65

Page 72: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

beq =

00...

Ax0 +Bu0

0

Por último solo queda definir la regiones básicas factibles Z, Γ para tener com-pletamente formulado el problema de programación cuadrática. Estas regiones sondependiente de cada problema por lo que no tiene una estructura general.

El problema cuadrático definido para el MPC

Ordenación separada de x(k) y u(k):

H =

QN · · · 0...

. . ....

0 · · · Q1

JN · · · 0...

. . ....

0 · · · J1

−QN

...−Q1

−JN

...−J1

JTN · · · 0...

. . ....

0 · · · JT1

RN · · · 0...

. . ....

0 · · · R1

−JTN

...−JT

1

−RN

...−R1

−QN · · · −Q1−JT

N · · · −JT1

−JN · · · J1−RN · · · R1

CTQsC +∑N

i=1Qi

DTQsC +∑N

i=1JT

i

CTQsD +∑N

i=1Ji

Rs + DTQsD +∑N

i=1Ri

Como se observa la matriz H de la forma cuadrática tiene una estructura muypeculiar. Tiene una banda central en la diagonal y dos bandas una vertical en ellateral derecho y otra horizontal en el borde inferior al igual que en el caso anterior.Por el contrario en este caso existen también otras bandas formadas por los valoresde Jk. En cuanto a f su estructura global sería:

f =

00...

−r · CTQs

−r ·DTQs

Pasaremos ahora a buscar la estructura de las matrices Aeq, beq:

66

Page 73: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.3 Métodos numéricos aplicados a MPC

Aeq =

In −A 0 · · · 00 In −A ...... . . . . . . ...... In −A0 · · · · · · 0 In

0.........0

B 0 · · · · · · 00 B

...... . . . ...... B 00 · · · · · · 0 0

· · ·0...0

0 · · · 0 A− In B

beq =

00...

Ax0 +Bu0

0

Por lo que solo queda definir la regiones básicas factibles Z, Γ que son dependientede cada problema.

3.3.1. Regularización del problema

El problema de programación cuadrática proveniente de la formulación del controlpredictivo para seguimiento [LAAC08], tal y como se ha definido no tiene garantíasde ser un problema estrictamente convexo y no lo será en general. Los métodosdesarrollados en (Capítulo 2) para resolver los problemas de programación cuadrá-tica necesitan que el problema sea estrictamente convexo por lo que es necesarioregularizar el problema (Sección 2.2). La regularización más efectiva para este tipode problemas es la regularización R(x) = αr

2 ‖Aeqx− beq‖22 aunque no tiene porque

convertir el problema en un problema convexo como se explica en (Subsección 2.2.1).Esta regularización mantiene la estructura en banda del problema original si se usala ordenación intercalada de las variables x y u. El parámetro αr tiene una granimportancia en la convergencia de los métodos numéricos para la resolución delproblema regularizado. Existe un valor óptimo de αr que minimiza el valor del nú-mero de condición y por tanto como se vio en (Sección 2.2) maximiza la tasa deconvergencia. Este efecto se puede apreciar en la figura (Figura 3.3).

67

Page 74: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

Figura 3.3.: Efecto de la regularización αr2 ‖Aeqx− beq‖

22 en el problema de MPC

para seguimiento

3.3.2. Estructura del problema

3.3.3. Optimización de las operaciones auxiliares

Los métodos numéricos presentados en (Capítulo 2), resuelven el problema de pro-gramación cuadrática en el dual, por lo que será necesario evaluar tanto la funcióndual como su derivada. Ello implicará realizar operaciones de pre-multiplicación ypost-multiplicación de la matriz Aeq. En este apartado se desarrollará un algoritmopara realizar de manera eficiente estas multiplicaciones teniendo en cuenta la espe-cial estructura de dicha matriz y se evaluará los costes computacionales de dichasoperaciones.

3.3.3.1. pre-mutiplicación de Aeq

La multiplicaciónmpre = Aeqz , mpre ∈MN,1 se puede realizar de manera eficiente,si consideramos la matriz por bloques con la ordenación separada de x e u. Elalgoritmo que se muestra a continuación utiliza la estructura característica de Aeqpara minimizar el número de operaciones.

68

Page 75: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.3 Métodos numéricos aplicados a MPC

Pre-multiplicación de Aeq

mpre ((k − 1) · n+ 1 : k · n) = z ((k − 1) · n+ 1 : k · n)−Az (k · n+ 1 : (k + 1) · n) + · · ·

· · · −Bz (N · n+ k ·m+ 1 : N · n+ (k + 1) ·m) : k ∈ [1, N − 1]

mpre ((N − 1) · n+ 1 : N · n) = z ((N − 1) · n+ 1 : N · n)

mpre (N · n+ 1 : (N + 1) · n) = Az ((n+m)N + 1 : (n+m)N + n) · · · −

· · · − z ((n+m)N + 1 : (n+m)N + n) +Bz ((n+m)N + n+ 1 : (n+m)(N + 1))

A continuación se estudiará coste computacional del algoritmo presentado, para ellose estudiará el número de operaciones atómicas necesarias:

Número de sumas:

sum (Aeq · z) = N (sum(A · x) + sum(B · u) + 3n) == N (n(n− 1) + n(m− 1) + 3n) =sum (Aeq · z) = N

(n2 + nm+ n

)Número de productos:

prod (Aeqz) = N (prod (A · x) + prod (B · u))prod (Aeqz) = N

(n2 + nm

)

Es importante hacer notar que este algoritmo puede ser paralelizado, ya que no tieneningún tipo de relación iterativa y que el algoritmo presentado puede ser modificadopara la ordenación de las variables que intercala las variables x y u con el mismocoste computacional.

3.3.3.2. post-multiplicación de Aeq

Al igual que la pre-multiplicación por Aeq, la post-multiplicación mTpost = ATeqx :

mpost ∈ M1:(n+m)(N+1) también puede realizarse eficientemente teniendo en cuenta

69

Page 76: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

la estructura propia de esta matriz y suponiendo la ordenación separada de lasvariables x y u.

Post-multiplicación de Aeq

mTpost(1 : n) = x(1 : n)

mTpost ((k − 1)n+ 1 : k · n) = x ((k − 1)n+ 1 : k · n)−AT ((k − 2)n+ 1 : (k − 1) · n) , k ∈ [2, N − 1]

mTpost ((N − 1)n+ 1 : N · n) = x ((N − 1)n+ 1 : N · n)

mTpost (N · n+ 1 : N · n+m) = 0

mTpost (N · n+ (k − 1)m+ 1 : N · n+ km) = BT x ((k − 1)n+ 1 : k · n) , k ∈ [2, N ]

mTpost ((n+m)N + 1 : (n+m)N + n) = AT x (Nn+ 1 : (N + 1) · n) · · · −

· · · − x (Nn+ 1 : (N + 1) · n)

mTpost ((n+m)N + n : (n+m)(N + 1)) = BT x (Nn+ 1 : (N + 1) · n)

A continuación se estudiará coste computacional del algoritmo presentado, para ellose estudiará el número de operaciones atómicas necesarias:

Número de sumas:

sum(ATeqx

)= (N − 1)

(sum

(ATλ

)+ 1

)+N · sum

(BTλ

)=

= (N − 1) (n(n− 1) + 1) +N (m(n− 1)) == (N − 1)

(n2 − n+ 1

)+N (nm−m)

sum(ATeqx

)= N

(n2 + nm− n−m+ 1

)− n2 + n− 1

70

Page 77: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.3 Métodos numéricos aplicados a MPC

Número de productos:

prod(ATeqx

)= (N − 1) prod

(ATλ

)+Nprod

(BTλ

)=

= (N − 1)n2 +Nnm

prod(ATeqx

)= N

(n2 +mn

)− n2

Es importante hacer notar que al igual que el algoritmo presentado para la pre-multiplicación Aeqz este algoritmo también puede ser paralelizado, ya que no tieneningún tipo de relación iterativa y también puede ser adaptado para otra ordenaciónde las variables con el mismo coste computacional.

3.3.3.3. Evaluación de la función dual y su derivada para el caso norestringido

Los métodos numéricos desarrollados en Subsección 2.1.3, resuelven el problemade programación cuadrática ( 27) en el dual por lo que necesitan evaluar tanto lafunción dual como su derivada. En este apartado se evaluara el coste computacionalde evaluar dichas funciones.

En el caso que el problema sea un problema QP genérico con región básica factibleRn, la función dual esta definida como sigue( 34):

g(x) = 12z∗THz + fT z∗ + xT (Aeqz∗ − b)

∇g(x) = (Aeqz∗ − b)z∗ = −H−1

(f + ATeqx

)Evaluar z∗:

• Número de sumas:

71

Page 78: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

sum(z∗) = (N + 1)(n+m) + sum(H−1·) + sum(ATeqx

)=

= (N + 1)(n+m) + (N + 1)(n+m) ((N + 1)(n+m)− 1) + · · ·· · ·+N

(n2 + nm− n−m+ 1

)− n2 + n− 1

sum(z∗) = (N + 1)2 (n+m)2 + · · ·· · ·+N

(n2 + nm− n−m+ 1

)− n2 + n− 1

• Número de productos:

prod(z∗) = (N + 1)2(n+m)2 + prod(ATeqx

)prod(z∗) = (N + 1)2(n+m)2 +N

(n2 +mn

)− n2

Evaluar ∇g(x):

• Número de sumas:

sum (∇g(x)) = sum (Aeqz∗) +Nn+ sum(z∗)sum (∇g(x)) = N

(n2 + nm+ 2n

)+ sum(z∗)

• Número de productos:

prod (∇g(x)) = prod (Aeqz∗) + prod(z∗)prod (∇g(x)) = N

(n2 + nm

)+ prod(z∗)

Evaluar g(x):

• Número de sumas:

72

Page 79: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.3 Métodos numéricos aplicados a MPC

sum (g(x)) = sum(z∗THz

)+ sum

(fT z∗

)+ sum

(xT(Az∗eq − b

))+ sum(z∗) =

= (N + 1)2(n+m)2 − 1 + (N + 1)(n+m)− 1 + · · ·· · ·+N

(n2 + nm+ n

)+ 2 (N + 1) (n+m)− 1

sum (g(x)) = (N + 1)2(n+m)2 +N(n2 + nm+ n

)+ · · ·

· · ·+ 3 (N + 1) (n+m)− 3 + sum(z∗)

• Número de productos:

prod (g(x)) = prod(z∗THz

)+ prod

(fT z∗

)+ prod

(xT(Az∗eq − b

))+ prod(z∗) =

= (N + 1)2(n+m)2 + 2(N + 1)(n+m) + · · ·· · ·+N

(n2 + nm

)+ (N + 1)(n+m)

prod (g(x)) = (N + 1)2(n+m)2 +N(n2 + nm+ 3(n+m)

)+ 3(n+m) + prod(z∗)

Se puede observar que el coste computacional es de orden cuadrático con todaslas dimensiones del problema N, n, m. Es decir el coste computacional crececuadráticamente tanto con el aumento del horizonte predicción N como conel aumento de las dimensiones del problema n, m.

3.3.3.4. Evaluación de la función dual y su derivada para el casorestringido a un ortoedro

El problema de MPC para seguimiento se puede transformar en un problemadiagonal restringido a un ortoedro mediante ( 30). En este caso las operacionesnecesarias para calcular la función dual y su derivada es distinto al caso generaly en este apartado se estudiara dicho caso.

73

Page 80: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

g(x) = 12z∗TDz + fT z∗ + xT (Aeqz∗ − b)

∇g(x) = (Aeqz∗ − b)z∗ = −D−1

(f + ATeqx

)Aeq =

AMPCeq 0LT −I

, z ∈M2(N+1)(n+m), x ∈M(N+1)(2n+m)

La matriz LT proviene de la descomposición LDLT de la matriz H por lo que altener esta una estructura especial, esta matriz también la tendrá. La matriz LT estaformado por una banda diagonal de tamaño 2(n + m) y otra vertical de tamaño(n+m). Por lo que el producto puede simplificarse.

Evaluar LTx

• Número de sumas:

sum(LTx) = (N + 1)(n+m) (3(n+m)− 1)sum(LTx) = 3(N + 1)(n+m)2 − (N + 1)(n+m)

• Número de productos:

prod(LTx) = (N + 1)(n+m)3(n+m)prod(LTx) = 3(N + 1)(n+m)2

Evaluar z∗:

• Número de sumas:

74

Page 81: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.3 Métodos numéricos aplicados a MPC

sum(z∗) = 2(N + 1)(n+m) + sum(ATeqx

)=

= 3(N + 1)(n+m) + sum(AMPC T

eq x)

+ sum (Lx) =

= 3(N + 1)(n+m) +N(n2 + nm− n−m+ 1

)− n2 + n− 1 + · · ·

· · ·+ 3(N + 1)(n+m)2 − (N + 1)(n+m)sum(z∗) = N

(n2 + 3(n+m)2 + nm+ n+m+ 1

)+ · · ·

· · ·+ 3(n+m)2 − n2 + n− 1

• Número de productos:

prod(z∗) = 2(N + 1)(n+m) + prod(AMPC Teq x

)+ prod(Lx) =

= 2(N + 1)(n+m) +N(n2 +mn

)− n2 + 3(N + 1)(n+m)2

prod(z∗) = N(n2 +mn+ 2(n+m) + 3(n+m)2

)+ · · ·

· · ·+ 2(n+m) + 3(n+m)2 − n2

Evaluar ∇g(x):

• Número de sumas:

sum (∇g(x)) = sum (Aeqz∗) + (N + 1)(2n+m) + sum(z∗) == (N + 1)(3n+ 2m) + sum

(AMPCeq z∗

)+ sum

(LT z

)+ sum(z∗)

3(N + 1)(n+m)2 +N(n2 + nm+ n

)+ · · ·

+(N + 1)(2n+m) + sum(z∗)sum (∇g(x)) = N

(n2 + 3(n+m)2 + nm+ 3n+m

)+ · · ·

· · ·+ 3(n+m)2 + 2n+m+ sum(z∗)

• Número de productos:

75

Page 82: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

prod (∇g(x)) = prod(AMPCeq z∗

)+ prod

(LT z∗

)+ prod(z∗) =

= N(n2 + nm

)+ 3(N + 1)(n+m)2 + prod(z∗)

prod (∇g(x)) = N(n2 + 3(n+m)2 + nm

)+ · · ·

· · ·+ 3(n+m)2 + prod(z∗)

Evaluar g(x):

• Número de sumas:

sum (g(x)) = sum(z∗THz

)+ sum

(fT z∗

)+ sum

(xT(Az∗eq − b

))=

= 6(N + 1)(n+m)− 3 + sum (∇g(x))

• Número de productos:

prod (g(x)) = prod(z∗THz

)+ prod

(fT z∗

)+ prod

(xT(Az∗eq − b

))=

= 6(N + 1)(n+m) + prod (∇g(x))

Por lo que finalmente se deduce que el coste computacional crece linealmentecon el horizonte de predicción N y cuadráticamente con las dimensiones delsistema n, m.

3.3.3.5. Evaluación de la función dual y su derivada para el caso restringidoa un ortoedro y con precondicionamiento

Este método presentado en (Subsección 2.3.3) consiste en realizar un cambio devariables en la función dual de manera que se mejore el número de condición delproblema. Al realizar dicho cambio se debe calcular productos con la matriz decambio de base. Estas operaciones extras aumenta el coste computacional de calcularla función dual y su derivada. En este apartado se analizará dicho coste.

76

Page 83: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.3 Métodos numéricos aplicados a MPC

g(x) = 12z∗TDz + fT z∗ +

(S−1x

)T(Aeqz∗ − b)

∇g(x) = S(−1)T (Aeqz∗ − b)z∗ = −D−1

(f + ATeqS

−1x)

Aeq = AMPC

eq 0LT −I

, z ∈M2(N+1)(n+m), x ∈M(N+1)(2n+m)

Evaluar el producto S−1x:

• Número de sumas:

sum(S−1x

)= 0,5(N + 1)2(2n+m)2 − 0,5(N + 1)(2n+m)

• Número de productos:

prod(S−1x

)= 0,5(N + 1)2(2n+m)2 + 0,5(N + 1)(2n+m)

Evaluar z∗:

• Número de sumas:

∆sum(z∗) = sum(S−1x

)• Número de productos:

∆prod(z∗) = prod(S−1x

)

Evaluar ∇g(x):

• Número de sumas:

77

Page 84: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

∆sum(∇g(x)) = 2sum(S−1x

)• Número de productos:

∆prod(∇g(x)) = 2prod(S−1x

)

Evaluar g(x):

• Número de sumas:

∆sum(g(x)) = sum(S−1x

)• Número de productos:

∆prod(g(x)) = prod(S−1x

)

De lo que se deduce que el algoritmo tiene un coste computacional que crece demanera cuadrática con todas las dimensiones del problema. Tanto con el horizontede predicción N , como con las dimensiones del sistema n, m. Las comparativas delos distintos métodos para diferente valores de los parámetros del problema: númerode iteraciones, dimensión del estado y dimensión de la salida se pueden ver en(Figura 3.4)(Figura 3.5)(Figura 3.6)(Figura 3.7).

3.4. Cálculo experimental de la complejidadcomputacional de los diferentes métodos

En los apartados anteriores se calcularon la complejidad computacional de los dife-rentes métodos con respecto a los diferentes factores de los que depende cada método.Uno de esto factores es el número de iteraciones que depende del método numérico

78

Page 85: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.4 Cálculo experimental de la complejidad computacional de los diferentesmétodos

Figura 3.4.: Complejidad computacional de los diferentes métodos frente al númerode iteraciones.

y del problema concreto. Para tener una estimación de coste computacional final decada método lo que se hará es resolver una batería de problemas generados de ma-nera aleatoria. Se generaran un conjunto de problemas con las mismas dimensionesn, m, N y se tomará la media del número de iteraciones realizadas por cada método.Esto se hará para varios valores de los parámetros y se representaran gráficamentelos resultados.

Uno de los problemas que nos encontramos con este enfoque es la variabilidad delnúmero de iteraciones de los métodos pre-condicionados ya que en el caso de que lasolución no se encuentre en la frontera, si no el interior de la región de factibilidad,el algoritmo convergerá en una sola iteración. Esto produce que la comparativano sea posible y dependa tanto del problema en cuestión que no tiene sentido sucomparación mediante batería de problemas aleatorios. Si el sistema real al que seaplica este algoritmo suele tener soluciones que producen que las restricciones noestén activas convendrá el uso de algoritmos pre-condicionados mientras que en elcaso contrario no. Por ello se presentan a continuación dos casos extremos en elque casi siempre la solución se encuentra en el interior y otro en el casi siempre seencuentra en la frontera.

Otro punto a destacar es que como el proceso de optimización se realiza en linea.

79

Page 86: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

Figura 3.5.: Complejidad computacional de los diferentes métodos frente al tama-ño del horizonte de predicción.

Se puede utilizar como solución inicial del problema actual, la solución óptima delproblema anterior. Esto produce que la solución inicial sea cercana a la soluciónóptima y como se ve en (Figura 3.8), disminuye de manera notable el número deiteraciones necesarias.

80

Page 87: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.4 Cálculo experimental de la complejidad computacional de los diferentesmétodos

Figura 3.6.: Complejidad computacional de los diferentes métodos frente a la di-mensión del estado.

Figura 3.7.: Complejidad computacional de los diferentes métodos frente a la di-mensión de la salida.

81

Page 88: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

Figura 3.8.: Relación del número de iteraciones de los distintos métodos con ladistancia de la solución inicial a la final

Figura 3.9.: Número de iteraciones con respecto al tamaño del horizonte de pre-dicción N (mayor probabilidad de solución en la frontera)

82

Page 89: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.4 Cálculo experimental de la complejidad computacional de los diferentesmétodos

Figura 3.10.: Número de iteraciones con respecto a la dimensión del estado n (ma-yor probabilidad de solución en la frontera)

Figura 3.11.: Complejidad computacional con respecto a tamaño del horizonte depredicción N (mayor probabilidad de solución en la frontera)

83

Page 90: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

Figura 3.12.: Complejidad computacional con respecto a la dimensión del estadon (mayor probabilidad de solución en la frontera)

Figura 3.13.: Número de iteraciones con respecto al tamaño del horizonte de pre-dicción N (mayor probabilidad de solución en el interior)

84

Page 91: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

3.4 Cálculo experimental de la complejidad computacional de los diferentesmétodos

Figura 3.14.: Número de iteraciones con respecto a la dimensión del estado n (ma-yor probabilidad de solución en el interior)

Figura 3.15.: Complejidad computacional con respecto a tamaño del horizonte depredicción N (mayor probabilidad de solución en el interior)

85

Page 92: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo 3 Control predictivo basado en modelo

Figura 3.16.: Complejidad computacional con respecto a la dimensión del estadon (mayor probabilidad de solución en el interior)

86

Page 93: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Agradecimientos

Este trabajo culmina con cinco años de esfuerzos. Quiero agradecer a mi familia,en especial a mis padres, el haberme apoyado y ayudado durante todo este tiempo.Así como a mi tutor Teodoro Álamo Cantarero que ha sido a la vez que tutor, uncompañero y un mentor.

Gracias a todos.

87

Page 94: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad
Page 95: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

A. Apéndice de optimización

A.1. Propiedades de la función max y min y susaproximaciones

La función max es una función muy útil en optimización, ya que muchos de losproblemas que se presentan, se pueden formular mediante esta función, por lo quees interesante conocer sus propiedades. Uno de los principales inconvenientes de estafunción es que no es diferenciarle en todo su dominio, por lo que en esta sección sepresentarán aproximaciones diferenciales de esta.

Definición 50. Sea max(x, y) : x ∈ R2 → R , min(x, y) : x ∈ R2 → R funcionesreales continuas de variable real definida como:

max(x, y) = x si x ≥ y

y si x < y

min(x, y) = y si x ≥ y

x si x < y

En adelante se trataran las propiedades de la funciones, unidimensionales, max(x, 0)y min(x, 0). Cuya gráfica se muestra en (Figura A.1).

Corolario 51. La función min(x, 0) se puede escribir en función de la funciónmax(x, 0) como:

min(x, 0) = −max(−x, 0)

89

Page 96: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo A Apéndice de optimización

Figura A.1.: Función max(x, 0)

Demostración. Sea x un número real cualesquiera, aplicando la definición demin(x, 0)se obtiene:

∀x : −max(−x, 0) = − −x si − x ≥ 0

0 si − x < 0=

= − 0 si x > 0−x si x ≤ 0

= 0 si x > 0x si x ≤ 0

= min(x, 0)

por lo que todas las sucesivas propiedades demax(x, 0) se pueden aplicar amin(x, 0)mediante esta propiedad.

Corolario 52. La función max(x, 0) cumple la propiedad de proporcionalidad:

∀x, α ≥ 0 ∈ R : max(αx) = αmax(x)

Demostración. Sea ∀x ∈ R un números real cualesquiera y ∀α ≥ 0, aplicando ladefinición de max(x, 0) tenemos:

90

Page 97: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

A.1 Propiedades de la función max y min y sus aproximaciones

max(αx) = αx si αx ≥ 0

0 si αx < 0

Como α es un número positivo, si αx ≥ 0 entonces x ≥ 0 , por lo tanto se compruebaque:

max(αx) = αx si αx ≥ 0

0 si αx < 0= α

x si x ≥ 00 si x < 0

= αmax(x)

Corolario 53. El valor absoluto de un número se puede escribir como suma demax(x, 0) de la siguiente forma:

∀x ∈ R : |x| = max(x, 0) +max(−x, 0))

Demostración. Sea ∀x ∈ R un número real cualesquiera, la norma 1 se define paraeste como:

|x| = x si x ≥ 0−x si x < 0

= x si x ≥ 0

0 si x < 0+ 0 si x ≥ 0−x si x < 0

=

= max(x, 0) + −x si − x > 0

0 si − x ≤ 0

∀x ∈ R : |x| = max(x, 0) +max(−x, 0)

Corolario 54. La función f(x, y) = max(x+ y, 0) es una métrica de R y por tantocumple la desigualdad triangular:

∀x, y ∈ R : max(x+ y, 0) ≤ max(x, 0) +max(y, 0)

91

Page 98: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo A Apéndice de optimización

Demostración. Para comprobar que f(x, y) = max(x+ y, 0) es una métrica debe decumplir: no-negatividad, simetría y la desigualdad triangular. La primera propiedadse desprende de la definición de max(x, 0), la segunda de la conmutabilidad de lasuma, mientras que la tercera se prueba a continuación:

Sean ∀x, y ∈ R dos números reales cualesquiera, entonces:

max(x+ y, 0) = x+ y si x+ y ≥ 0

0 si x+ y < 0

Existen 4 casos a tener en cuenta:

Caso 1. Si ambos números x , y ≥ 0 son positivos:

max(x+ y, 0) = x+ y ≤ max(x, 0) +max(y, 0) = x+ y

Caso 2. Si uno de ellos es positivo y el otro negativo x ≥ 0 , y = −y : y ≥ 0 ysu suma es positiva x+ y ≥ 0:

max(x+ y, 0) = max(x− y, 0) = x− y ≤ max(x, 0) +max(y, 0) = x

Caso 3. Si uno de ellos es positivo y el otro negativo x ≥ 0 , y = −y : y ≥ 0 ysu suma es negativa x+ y < 0:

max(x+ y, 0) = max(x− y, 0) = 0 ≤ max(x, 0) +max(y, 0) = x

Caso 4. Si ambos son negativos x , y < 0

max(x+ y, 0) = 0 ≤ max(x, 0) +max(y, 0) = 0

Por lo que queda probada la desigualdad triangular.

Corolario 55. max(x, 0) es una función convexa.

Demostración. Sea ∀x, y ∈ R dos números reales cualesquiera, y sea α ∈ [0, 1] unnumero real entre cero y uno, aplicando la propiedad ( 54):

92

Page 99: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

A.1 Propiedades de la función max y min y sus aproximaciones

max(αx+ (1− α)y, 0) ≤ max(αx, 0) +max((1− α)y, 0)

Aplicando la propiedad de proporcionalidad( 52) ya que α, (1 − α) son númerospositivos:

max(αx+ (1− α)y, 0) ≤ max(αx, 0) +max((1− α)y, 0) = αmax(x, 0) + (1− α)max(y, 0)∀α ∈ [0, 1] : max(αx+ (1− α)y, 0) ≤ αmax(x, 0) + (1− α)max(y, 0)

Finalmente obtenemos la definición de convexidad( 15), por lo que max(x, 0) es unafunción convexa.

Corolario 56. La función max(x, y) se puede reescribir a partir de la funciónmax(x, 0) como:

max(x, y) = max(x− y, 0) + y

Demostración. Sea ∀x, y ∈ R dos números reales cualesquiera, a partir de la defini-ción de max(x, 0):

max(x− y, 0) = x− y si x− y ≥ 0

0 si x− y < 0= x− y si x ≥ y

0 si x < y

max(x− y, 0) + y = x si x ≥ y

y si x < y= max(x, y)

Corolario 57. La función rampa con saturación sul (x) : R→ R definida por:

sul (x) =

u si x ≥ u

x si l ≤ x < u

0 si x < l

= min (max(x, l), u)

93

Page 100: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo A Apéndice de optimización

se puede expresar en función de max(x, 0) :

sul (x) = u−max (u− l −max(x− l, 0))

El gráfico de dicha función, para el caso particular de s31(x) se muestra en (Figura A.2)

Figura A.2.: Función rampa con saturación, s31(x)

Demostración. Aplicando la propiedades ( 56) y ( 51) sobre la definición de sul (x):

min (max(x, l), u) = −max(−max(x, l),−u) =u−max(−max(x, l) + u, 0) = u−max(−max(x, l) + u, 0)sul (x) = u−max (u− l −max(x− l, 0))

94

Page 101: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

A.1 Propiedades de la función max y min y sus aproximaciones

A.1.1. Aproximación logarítmica de max(x, 0)

La función max(x, 0) es una función lineal a trozos, esto hace que en el puntode unión entre tramos la derivada no sea continua. Muchas de las técnicas de op-timización necesitan que la función sea de clase C1 por lo que en este apartadopresentaremos una aproximación logarítmica de Cn de max(x, 0) y alguna de suspropiedades.

Definición 58. La función real de variable real y clase Cn,φρ(x) : R→ R es unaaproximación de max(x, 0) y se define como:

φρ(x) = 1ρlog (1 + eρx)

cuyas derivadas primera y segundas son:

dφρ(x)dx

= eρx

1 + eρx

d2φρ(x)dx2 = ρeρx

(1 + eρx)2

Lema 59. La función ,φρ(x) es una cota superior de max(x, 0).

∀x ∈ R : φρ(x) ≥ max(x, 0)

Demostración. Sea x ∈ R un número real cualesquiera:

∀x ∈ R : φρ(x) ≥ max(x, 0) = x si x ≥ 0

0 si x < 0

Por lo que se estudiará cada tramo por separado, empezando por x > 0

95

Page 102: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo A Apéndice de optimización

∀x ≥ 0 : 1ρlog (1 + eρx) ≥ x

1 + eρx ≥ eρx

1 ≥ 0

obrando igual en el otro tramo, obtenemos:

∀x < 0 : 1ρlog (1 + eρx) ≥ 0

1 + eρx ≥ 1eρx ≥ 0

Lema 60. La función max(x, 0) se puede aproximar por φρ(x) y viceversa, con unerror inferior a ε si x < Kε

l , x > Kεu siendo:

Kεl = 1

ρlog (eρε − 1)

Kεu = −1

ρlog (eρε − 1)

Demostración. Se define Kεl como el valor de ordenada por debajo del cual el error

es menor que ε, por lo que a partir de la definición obtenemos:

x : 1ρlog (1 + eρx)− 0 = ε

1 + eρx = ρε

Kεl = x = 1

ρlog (eρε − 1)

Por el contrario se define Kεu como el valor de ordenada por encima del cual el error

de aproximación es menor que ε, por lo que a partir de la definición obtenemos:

96

Page 103: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

A.1 Propiedades de la función max y min y sus aproximaciones

x : 1ρlog (1 + eρx)− x = ε

1 + eρx = eρεeρx

1 = (eρε − 1) eρx

eρx = 1(eρε − 1)

Kεu = x = −1

ρlog (eρε − 1)

Esta propiedad tiene gran importancia a la hora de evaluar la función φρde maneranumérica, puesto que al tener que evaluar la exponencial de números muy grandespodría provocar desbordamiento. Además hay que tener en cuenta que evaluar lafunción max(x, 0) tiene un costo computacional muy inferior a evaluar su aproxima-ción. Se muestra una gráfica de φρ y sus derivadas, así como de los intervalos antesdescritos para un ε de 0,01 en (Figura A.3).

Figura A.3.: Función φρ y sus derivadas, así como las cotas (Kεl , K

εu) , ε = 0,01

Lema 61. El error máximo cometido por la aproximación de max(x, 0) , φρ es:

97

Page 104: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo A Apéndice de optimización

εmax = 1ρlog (2)

Demostración. El error cometido por la aproximación φρ de max(x, 0) se puedepuede calcular como:

ε(x) =

1ρlog (1 + eρx)− x si x ≥ 0

1ρlog (1 + eρx) si x < 0

Para calcular su óptimo buscamos los puntos críticos de ε(x):

dε(x)dx

=

eρx

1+eρx − 1 si x ≥ 0eρx

1+eρx si x < 0

Como se puede comprobar con facilidad, la función es decreciente ε(x) para valorespositivos de x y creciente para valores negativos de x. Por lo que se deduce que elóptimo se produce en x = 0, donde el valor del error es:

εmax = ε(0) = 1ρlog (2)

Corolario 62. La función rampa con saturación sul (x) : R → R definida según( 57) se puede aproximar mediante φρ como:

sul (x) w u− φρ (u− l − φρ(x− l))

Un caso muy importante es el de la función rampa con saturación unitaria:

s10(x) w 1− φρ (1− φρ(x))

98

Page 105: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

A.1 Propiedades de la función max y min y sus aproximaciones

Se puede observar la gráfica de la aproximación para el caso particular de s31(x) y

ρ = 5

Figura A.4.: Función rampa con saturación, s31(x) y su aproximación mediante

φρ : ρ = 5 .

A.1.2. Método numérico estable para evaluar la función φρ ysus derivadas

La función de aproximación de max(x, 0), φρ puede ser una gran herramienta a lahora de optimizar funciones con términos max(x, 0). Uno de los problemas que pue-de plantear a la hora de implementar estas técnicas, es la perdida de rendimientoque puede ocasionar el tener que evaluar de manera masiva esta función y su deriva-das. Además se debe tener en cuenta posibles desbordamiento por hecho de evaluarexponenciales de números medianamente grandes. Este apartado se ocupa de dichosproblema haciendo uso de las propiedades de max(x, 0) y φρ.

Si se quiere conseguir un error menor que ε a la hora de evaluar dicha función, sepuede proceder como sigue:

99

Page 106: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo A Apéndice de optimización

φρ(x) w

x si x ≥ Kε

u

1ρlog (1 + eρx) siKε

l < x < Kεu

0 si x ≤ Kεl

evaluando la función solo en el intervalo donde el error es mayor que ε ( 60). Tambiénse puede proceder igual con las derivadas, utilizando el mismo intervalo, aunque noesta garantizado el error.

dφρ(x)dx

w

1 si x ≥ Kε

u

eρx

1+eρx siKεl < x < Kε

u

0 si x ≤ Kεl

d2φρ(x)dx2 w

0 si x ≥ Kε

uρeρx

(1+eρx)2 siKεl < x < Kε

u

0 si x ≤ Kεl

Por último destacar que ya que los valores que hay que evaluar de φρ(x) y sus deriva-das de manera exacta, usando la técnica descrita, están acotados entre (Kε

l , Kεu) se

podrían tabular, con un número de intervalos, tal que el error sea menor de una cotadefinida a priori. Otra opción sería utilizar alguna función más sencilla de evaluarque aproxime a φρ(x) como un polinomio de pequeño grado.

100

Page 107: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B. Anexo código Matlab

B.1. Algoritmo gradenciales

B.1.1. Algoritmo de Nesterov

function [x1,nit] = NESTEROV2b(fun,dfun,alpha0,x0,mu,Lmax,TOL)alpha0 = min(max(alpha0, sqrt(mu/Lmax)),1);Lalpha = 0.999;Lbeta = 0.7;L = Lmax;Lalpha = min(max(Lalpha,0),1);Lbeta = min(max(Lbeta,0),1);alpha0 = min(max(alpha0, sqrt(mu/L)),1);y0 = x0;nit = 0;err = inf;while err > TOL% Decrease lipschitz constantL = Lalpha;% Calculate derivativedfy = feval(dfun,y0);fy = feval(fun,y0);dif=1;while dif > 0% Gradient stepx1 = y0 - 1/L*dfy;fx1 = feval(fun,x1);dif = fx1 - fy + 0.5/L*norm(dfy)^2;

101

Page 108: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

if dif > 0L = L + (Lmax-L)*Lbeta;endend% Calculate alpha1q = mu/L;polb = alpha0^2 - q;polc = - alpha0^2;alpha1 = 0.5*(-polb+sqrt(polb^2-4*polc));% Calculate betabeta = alpha0*(1-alpha0)/(alpha0^2+alpha1);% Calculate y1y1 = x1 + beta*(x1-x0);% Calculate ERRORerr = norm(dfy);% Iteratey0 = y1;x0 = x1;alpha0 = alpha1;nit = nit + 1;endend

B.1.2. Algoritmo FISTA

function [x] = FISTAb(fun,dfun,lambda,mu,x0,L0,TOL)y0=x0;t0=1;L = L0;err=inf;nit=0;while err > TOLdfy = feval(dfun,y0);fy = feval(fun,y0);dif = 1;

102

Page 109: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.2 Algoritmo de resolución del problema QP

while dif > 0x = shrinkage(y0-1/L*dfy,lambda/L);fx = feval(fun,x);dif = fx - fy + 0.5/L*sum(dfy.^2);if dif > 0L = L*mu;endendt = 0.5*(1 + sqrt(1+4*t0^2));y = x + (t0-1)/t*(x - x0);err = norm(x-x0);x0=x;y0=y;t0=t;nit=nit+1;endnitend

B.2. Algoritmo de resolución del problema QP

B.2.1. Algoritmo para el caso genérico

function [xopt,nit,nitL] = quadH(H,f,A,b,Aeq,beq,alpha0,Lalpha,Lbeta,TOL,x0)% Sizesn = size(H,1);m = size(A,1);meq = size(Aeq,1);% Sizes checkingf = f(:);b = b(:);beq = beq(:);if size(H,1)~=n || size(f,1)~=n || size(A,2)~=n || size(Aeq,2)~=n ...

|| size(b,1)~=m || size(beq,1)~=meqerror(’Dimension mistmatch’); end % END Sizes checking

103

Page 110: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

% NESTEROV parametersLmax = max(eig([A;Aeq]*(H\[A;Aeq]’)));mu = max(min(eig([A;Aeq]*(H\[A;Aeq]’))),0);% END NESTEROV parameters

% NESTEROVL = Lmax;Lalpha = min(max(Lalpha,0),1);Lbeta = min(max(Lbeta,0),1);alpha0 = min(max(alpha0, sqrt(mu/L)),1);y0 = x0;nit = 1;nitL = 1;err = inf;while err > TOL && L < 1/TOL

% Decrease lipschitz constantL = L*Lalpha;

% Calculate derivative%=============================

z0 = -H\(f + [A;Aeq]’*y0);fy = -(0.5*(z0’*H*z0) + f’*z0 + y0’*([A;Aeq]*z0 - [b;beq]));dfy = -([A;Aeq]*z0 - [b;beq]);%=============================

dif=1;while dif > 0 && L<Lmax

% Gradient stepx1 = y0 - 1/L*dfy;x1(1:m) = max(x1(1:m),0);% Calculate value of the function

%============================z1 = -H\(f + [A;Aeq]’*x1);fx1 = -(0.5*(z1’*H*z1) + f’*z1 + x1’*([A;Aeq]*z1 - [b;beq]));%============================

g = L*(y0-x1);

104

Page 111: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.2 Algoritmo de resolución del problema QP

dif = fx1 - fy + 0.5/L*norm(g)^2;if dif > 0

L = L + (Lmax-L)*Lbeta;endnitL = nitL + 1;

end

% Calculate alpha1q = mu/L;polb = alpha0^2 - q;polc = - alpha0^2;alpha1 = 0.5*(-polb+sqrt(polb^2-4*polc));

% Calculate betabeta = alpha0*(1-alpha0)/(alpha0^2+alpha1);

% Calculate y1y1 = x1 + beta*(x1-x0);

% Calculate ERRORerr = norm(g);

% Iteratey0 = y1;x0 = x1;alpha0 = alpha1;nit = nit + 1;

end% END NESTEROV

xopt = z1(1:n);end

105

Page 112: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

B.2.2. Algoritmo para el caso genérico regularizado

function [xopt,nit,nitL,nitr] = ...quadHr(H,f,A,b,Aeq,beq,alpha00,Lalpha,Lbeta,alphar,TOL,rTOL,x0)%QUAD4 Summary of this function goes here% Detailed explanation goes here% Sizesn = size(H,1);m = size(A,1);meq = size(Aeq,1);% Sizes checkingf = f(:);b = b(:);beq = beq(:);if size(H,1)~=n || size(f,1)~=n || size(A,2)~=n || size(Aeq,2)~=n ...|| size(b,1)~=m || size(beq,1)~=meqerror(’Dimension mistmatch’);end% END Sizes checkingrTOL = max(rTOL,1);%x0 = zeros(m+meq,1);zr = zeros(n,1);% NESTEROV parametersLmax = max(eig([A;Aeq]*((H+alphar*eye(n))\[A;Aeq]’)));mu = max(min(eig([A;Aeq]*((H+alphar*eye(n))\[A;Aeq]’))),0);% END NESTEROV parameters% NESTEROVL = Lmax;alpha0 = alpha00;Lalpha = min(max(Lalpha,0),1);Lbeta = min(max(Lbeta,0),1);alpha0 = min(max(alpha0, sqrt(mu/L)),1);y0 = x0;nit = 1;nitL = 1;

106

Page 113: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.2 Algoritmo de resolución del problema QP

nitr = 1;err = inf;while err > TOL% Decrease lipschitz constantL = L*Lalpha;% Calculate derivative%============================================================z0 = -(H+alphar*eye(n))\(f - alphar*zr + [A;Aeq]’*y0);fy = -(0.5*(z0’*H*z0) + f’*z0 + ...0.5*alphar*(z0-zr)’*(z0-zr) + y0’*([A;Aeq]*z0 - [b;beq]));dfy = -([A;Aeq]*z0 - [b;beq]);%============================================================dif=1;while dif > 0 && L<Lmax% Gradient stepx1 = y0 - 1/L*dfy;x1(1:m) = max(x1(1:m),0);% Calculate value of the function%========================================================z1 = -(H+alphar*eye(n))\(f - alphar*zr + [A;Aeq]’*x1);fx1 = -(0.5*(z1’*H*z1) + f’*z1 + ...0.5*alphar*(z1-zr)’*(z1-zr) + x1’*([A;Aeq]*z1 - [b;beq]));%========================================================g = L*(y0-x1);dif = fx1 - fy + 0.5/L*norm(g)^2;if dif > 0L = L + (Lmax-L)*Lbeta;endnitL = nitL + 1;end% Calculate alpha1q = mu/L;polb = alpha0^2 - q;polc = - alpha0^2;alpha1 = 0.5*(-polb+sqrt(polb^2-4*polc));

107

Page 114: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

% Calculate betabeta = alpha0*(1-alpha0)/(alpha0^2+alpha1);% Calculate y1y1 = x1 + beta*(x1-x0);% Calculate ERRORerr = norm(g) + alphar*norm(z1-zr);if norm(g) < TOL*rTOL && alphar > 0zr = z1;y1 = x1;alpha1 = alpha00;nitr = nitr + 1;end% Iteratey0 = y1;x0 = x1;alpha0 = alpha1;nit = nit + 1;end% END NESTEROVxopt = z1(1:n);end

B.2.3. Algoritmo basado en la holgura artificial

function [xopt,nit,nitL] = quadA(H,f,A,b)% Sizesn = size(H,1);m = size(A,1);% Sizes checkingf = f(:);b = b(:);if size(H,1)~=n || size(f,1)~=n || size(A,2)~=n

error(’Dimension mistmatch’); end % END Sizes checkingalphar = 0.01; rho = 10;W=A*(H\A’); N=A*(H\f)+b; cond(W)

108

Page 115: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.2 Algoritmo de resolución del problema QP

phi=@(x)(1/rho*log(1+exp(rho*x))); phid=@(x)(exp(rho*x)./(1+exp(rho*x)));fun=@(z)([alphar*z(1:m)+phid(z(1:m)).*z(m+1:end);...W*z(m+1:end)-phi(z(1:m))+N]);z0 = rand(2*m,1); zopt = fsolve(fun,z0);xopt = -H\(A’*zopt(m+1:end)+f); nit=0; nitL=0;end

B.2.4. Algoritmo para el problema diagonal

function [xopt,nit,nitL,init] =...quadD(H,f,A,b,Aeq,beq,LB,UB,alpha0,Lalpha,Lbeta,TOL,x0)%QUAD4 Summary of this function goes here% Detailed explanation goes here% Sizesn = size(H,1);m = size(A,1);meq = size(Aeq,1);% Sizes checkingf = f(:);b = b(:);beq = beq(:);% if size(H,1)~=n || size(f,1)~=n || size(A,2)~=n || size(Aeq,2)~=n ...% || size(b,1)~=m || size(beq,1)~=meq% error(’Dimension mistmatch’);% end% END Sizes checkingif isempty(x0)x0 = zeros(m+meq,1);end% NESTEROV parametersLmax = max(eig([A;Aeq]*(H\[A;Aeq]’)));mu = max(min(eig([A;Aeq]*(H\[A;Aeq]’))),0);% END NESTEROV parameters% NESTEROVL = Lmax;

109

Page 116: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

Lalpha = min(max(Lalpha,0),1);Lbeta = min(max(Lbeta,0),1);alpha0 = min(max(alpha0, sqrt(mu/L)),1);y0 = x0;nit = 1;nitL = 1;err = inf;while err > TOL% Decrease lipschitz constantL = L*Lalpha;% Calculate derivative%============================================================z00 = -H\(f + [A;Aeq]’*y0);z0 = min(max(z00,LB),UB);fy = -(0.5*(z0’*H*z0) + f’*z0 + y0’*([A;Aeq]*z0 - [b;beq]));dfy = - ([A;Aeq]*z0 - [b;beq]);%============================================================dif=1;while dif > 0 && L<Lmax% Gradient stepx1 = y0 - 1/L*dfy;x1(1:m) = max(x1(1:m),0);% Calculate value of the function%========================================================z1 = -H\(f + [A;Aeq]’*x1);z1 = min(max(z1,LB),UB);fx1 = -(0.5*(z1’*H*z1) + f’*z1 + x1’*([A;Aeq]*z1 - [b;beq]));%========================================================g = L*(y0-x1);dif = fx1 - fy + 0.5/L*norm(g)^2;if dif > 0L = L + (Lmax-L)*Lbeta;%L = L*1.1;endnitL = nitL + 1;

110

Page 117: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.2 Algoritmo de resolución del problema QP

end% Calculate alpha1q = mu/L;polb = alpha0^2 - q;polc = - alpha0^2;alpha1 = 0.5*(-polb+sqrt(polb^2-4*polc));% Calculate betabeta = alpha0*(1-alpha0)/(alpha0^2+alpha1);% Calculate y1y1 = x1 + beta*(x1-x0);% Calculate ERRORerr = norm(g);% Iteratey0 = y1;x0 = x1;alpha0 = alpha1;nit = nit + 1;end% END NESTEROVxopt = z1(1:n);init = norm(x1);end

B.2.5. Algoritmo para el problema diagonal regularizado

function[xopt,nit,nitL,nitr]=...quadDr(H,f,A,b,Aeq,beq,LB,UB,alpha00,Lalpha,Lbeta,alphar,TOL,rTOL,x0)%QUAD4 Summary of this function goes here% Detailed explanation goes here% Sizesn = size(H,1);m = size(A,1);meq = size(Aeq,1);% Sizes checkingf = f(:);

111

Page 118: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

b = b(:);beq = beq(:);% if size(H,1)~=n || size(f,1)~=n || size(A,2)~=n || size(Aeq,2)~=n ...% || size(b,1)~=m || size(beq,1)~=meq% error(’Dimension mistmatch’);% end% END Sizes checking%x0 = zeros(m+meq,1);zr = zeros(n,1);% NESTEROV parametersLmax = max(eig([A;Aeq]*(H\[A;Aeq]’)));mu = min(eig([A;Aeq]*(H\[A;Aeq]’)));% END NESTEROV parameters% NESTEROVL = Lmax;alpha0 = alpha00;Lalpha = min(max(Lalpha,0),1);Lbeta = min(max(Lbeta,0),1);alpha00 = min(max(alpha00, sqrt(mu/L)),1);y0 = x0;nit = 1;nitL = 1;nitr = 1;err = inf;while err > TOL% Decrease lipschitz constantL = L*Lalpha;% Calculate derivative%============================================================z0 = -(H+alphar*eye(n))\(f - alphar*zr + [A;Aeq]’*y0);z0 = min(max(z0,LB),UB);fy = -(0.5*(z0’*H*z0) + f’*z0 + ...0.5*alphar*(z0-zr)’*(z0-zr) + y0’*([A;Aeq]*z0 - [b;beq]));dfy = - ([A;Aeq]*z0 - [b;beq]);%============================================================

112

Page 119: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.2 Algoritmo de resolución del problema QP

dif=1;while dif > 0 && L<Lmax% Gradient stepx1 = y0 - 1/L*dfy;x1(1:m) = max(x1(1:m),0);% Calculate value of the function%========================================================z1 = -(H+alphar*eye(n))\(f -alphar*zr + [A;Aeq]’*x1);z1 = min(max(z1,LB),UB);fx1 = -(0.5*(z1’*H*z1) + f’*z1 +...0.5*alphar*(z1-zr)’*(z1-zr) + x1’*([A;Aeq]*z1 - [b;beq]));%========================================================g = L*(y0-x1);dif = fx1 - fy + 0.5/L*norm(g)^2;if dif > 0L = L + (Lmax-L)*Lbeta;endnitL = nitL + 1;end% Calculate alpha1q = mu/L;polb = alpha0^2 - q;polc = - alpha0^2;alpha1 = 0.5*(-polb+sqrt(polb^2-4*polc));% Calculate betabeta = alpha0*(1-alpha0)/(alpha0^2+alpha1);% Calculate y1y1 = x1 + beta*(x1-x0);% Calculate ERRORerr = norm(g);if norm(g) < TOL*rTOL && alphar > 0zr = z1;y1 = x1;alpha1 = alpha00;nitr = nitr + 1;

113

Page 120: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

end% Iteratey0 = y1;x0 = x1;alpha0 = alpha1;nit = nit + 1;end% END NESTEROVxopt = z1(1:n);end

B.2.6. Algoritmo para el problema diagonal conprecondicionamiento

function [xopt,nit,nitL,init] =...quadDS(H,f,Aeq,beq,LB,UB,alpha0,Lalpha,Lbeta,TOL,x0)%QUAD4 Summary of this function goes here% Detailed explanation goes here% Sizesn = size(H,1);meq = size(Aeq,1);% Sizes checkingf = f(:);beq = beq(:);% if size(H,1)~=n || size(f,1)~=n || size(A,2)~=n || size(Aeq,2)~=n ...% || size(b,1)~=m || size(beq,1)~=meq% error(’Dimension mistmatch’);% end% END Sizes checking%x0 = zeros(meq,1);% NESTEROV parametersS = chol(Aeq*(H\Aeq’));Lmax = 1;mu = 1;% END NESTEROV parameters

114

Page 121: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.2 Algoritmo de resolución del problema QP

% NESTEROVL = Lmax;Lalpha = min(max(Lalpha,0),1);Lbeta = min(max(Lbeta,0),1);alpha0 = min(max(alpha0, sqrt(mu/L)),1);y0 = x0;nit = 1;nitL = 1;err = inf;while err > TOL% Decrease lipschitz constantL = L*Lalpha;% Calculate derivative%============================================================z0 = -H\(f + Aeq’*(S\y0));z0 = min(max(z0,LB),UB);fy = -(0.5*(z0’*H*z0) + f’*z0 + (S\y0)’*(Aeq*z0 - beq));dfy = - S’\(Aeq*z0 - beq);%============================================================dif=1;while dif > 0 && L<Lmax% Gradient stepx1 = y0 - 1/L*dfy;% Calculate value of the function%========================================================z1 = -H\(f + Aeq’*(S\x1));z1 = min(max(z1,LB),UB);fx1 = -(0.5*(z1’*H*z1) + f’*z1 + (S\x1)’*(Aeq*z1 - beq));%========================================================dif = fx1 - fy + 0.5*L*norm(y0-x1)^2;if dif > 0L = L + (Lmax-L)*Lbeta;endnitL = nitL + 1;end

115

Page 122: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

% Calculate alpha1q = mu/L;polb = alpha0^2 - q;polc = - alpha0^2;alpha1 = 0.5*(-polb+sqrt(polb^2-4*polc));% Calculate betabeta = alpha0*(1-alpha0)/(alpha0^2+alpha1);% Calculate y1y1 = x1 + beta*(x1-x0);% Calculate ERRORerr = norm(dfy);% Iteratey0 = y1;x0 = x1;alpha0 = alpha1;nit = nit + 1;end% END NESTEROVxopt = z1(1:n);init = norm(x1);end

B.2.7. Algoritmo para el caso diagonal conprecondicionamiento y paso fijo

function [xopt,nit,nitL,init] = quadDSf(H,f,Aeq,beq,LB,UB,alpha0,TOL,x0)%QUAD4 Summary of this function goes here% Detailed explanation goes here% Sizesn = size(H,1);meq = size(Aeq,1);% Sizes checkingf = f(:);beq = beq(:);% if size(H,1)~=n || size(f,1)~=n || size(A,2)~=n || size(Aeq,2)~=n ...

116

Page 123: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.2 Algoritmo de resolución del problema QP

% || size(b,1)~=m || size(beq,1)~=meq% error(’Dimension mistmatch’);% end% END Sizes checking%x0 = zeros(meq,1);% NESTEROV parametersS = chol(Aeq*(H\Aeq’));Lmax = 1;mu = 1;% END NESTEROV parameters% NESTEROVL = Lmax;alpha0 = min(max(alpha0, sqrt(mu/L)),1);y0 = x0;nit = 1;nitL = 1;err = inf;while err > TOL% Calculate derivative%============================================================z0 = -H\(f + Aeq’*(S\y0));z0 = min(max(z0,LB),UB);dfy = - S’\(Aeq*z0 - beq);%============================================================x1 = y0 - 1/L*dfy;% Calculate alpha1q = mu/L;polb = alpha0^2 - q;polc = - alpha0^2;alpha1 = 0.5*(-polb+sqrt(polb^2-4*polc));% Calculate betabeta = alpha0*(1-alpha0)/(alpha0^2+alpha1);% Calculate y1y1 = x1 + beta*(x1-x0);% Calculate ERROR

117

Page 124: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

err = norm(dfy);% Iteratey0 = y1;x0 = x1;alpha0 = alpha1;nit = nit + 1;end% END NESTEROVz1 = -H\(f + Aeq’*(S\x1));z1 = min(max(z1,LB),UB);xopt = z1(1:n);init = norm(x1);end

B.3. Códigos relacionados con la generación yresolución del problema de MPC

B.3.1. Generación de problema QP asociado a un MPC conordenación separada de x y u

function [H,f,Aeq,beq,LB,UB] =...MPCquad1(Q,J,R,Qs,Rs,A,B,C,D,LBx,UBx,LBu,UBu,r,x0,u0,N)%MPCQUAD Summary of this function goes here% Detailed explanation goes heren = size(A,1);m = size(B,2);p = size(C,1);% Check sizes% END Check sizesH = zeros((n+m)*(N+1));f = zeros((n+m)*(N+1),1);Aeq = zeros(n*(N+1),(n+m)*(N+1));beq = zeros(n*(N+1),1);LB = zeros((n+m)*(N+1),1);

118

Page 125: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.3 Códigos relacionados con la generación y resolución del problema de MPC

UB = zeros((n+m)*(N+1),1);Hs = [C’*Qs*C C’*Qs*D; (C’*Qs*D)’ Rs+D’*Qs*D];fs = -[C D]’*Qs*r;H((n+m)*N+1:(n+m)*(N+1),(n+m)*N+1:(n+m)*(N+1)) = Hs;for k = 1:NH((k-1)*(n+m)+1:k*(n+m),(k-1)*(n+m)+1:k*(n+m)) = [Q J; J’ R];H((k-1)*(n+m)+1:k*(n+m),(n+m)*N+1:(n+m)*(N+1)) = -[Q J; J’ R];H((n+m)*N+1:(n+m)*(N+1),(k-1)*(n+m)+1:k*(n+m)) = -[Q J; J’ R];H((n+m)*N+1:(n+m)*(N+1),(n+m)*N+1:(n+m)*(N+1)) =...H((n+m)*N+1:(n+m)*(N+1),(n+m)*N+1:(n+m)*(N+1)) + [Q J; J’ R];endf((n+m)*N+1:(n+m)*(N+1)) = fs;for k = 1:Nif k < NAeq((k-1)*n+1:k*n,(k-1)*(n+m)+1:(k+1)*(n+m)) = [eye(n) zeros(n,m) -A -B];elseAeq((k-1)*n+1:k*n,(k-1)*(n+m)+1:k*(n+m)-m) = eye(n);beq((k-1)*n+1:k*n) = A*x0 + B*u0;endendAeq(N*n+1:(N+1)*n,N*(n+m)+1:(N+1)*(n+m)) = [A-eye(n) B];for k = 1:NLB((k-1)*(n+m)+1:k*(n+m))=[LBx;LBu];UB((k-1)*(n+m)+1:k*(n+m))=[UBx;UBu];endLB(N*(n+m)+1:(N+1)*(n+m))=[LBx;LBu];UB(N*(n+m)+1:(N+1)*(n+m))=[UBx;UBu];end

B.3.2. Generación de problema QP asociado a un MPC conordenación intercalada de x y u

function [H,f,Aeq,beq,LB,UB] =...MPCquad2(Q,J,R,Qs,Rs,A,B,C,D,LBx,UBx,LBu,UBu,r,x0,u0,N)%MPCQUAD Summary of this function goes here

119

Page 126: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

% Detailed explanation goes heren = size(A,1);m = size(B,2);p = size(C,1);% Check sizes% END Check sizesH = zeros((n+m)*(N+1));f = zeros((n+m)*(N+1),1);Aeq = zeros(n*(N+1),(n+m)*(N+1));beq = zeros(n*(N+1),1);LB = zeros((n+m)*(N+1),1);UB = zeros((n+m)*(N+1),1);Hs = [C’*Qs*C C’*Qs*D; D’*Qs*C Rs+D’*Qs*D];fs = -[C D]’*Qs*r;for k = 1:N% State-State weightH(n*(k-1)+1:n*k,n*(k-1)+1:n*k) = Q;H(n*(k-1)+1:n*k,(n+m)*N+1:(n+m)*N+n) = -Q;H((n+m)*N+1:(n+m)*N+n,n*(k-1)+1:n*k) = -Q;H((n+m)*N+1:(n+m)*N+n,(n+m)*N+1:(n+m)*N+n) =...H((n+m)*N+1:(n+m)*N+n,(n+m)*N+1:(n+m)*N+n) + Q;% Input-Input weightH(n*N+m*(k-1)+1:n*N+m*k,n*N+m*(k-1)+1:n*N+m*k) = R;H(n*N+m*(k-1)+1:n*N+m*k,(n+m)*N+n+1:(n+m)*(N+1)) = -R;H((n+m)*N+n+1:(n+m)*(N+1),n*N+m*(k-1)+1:n*N+m*k) = -R;H((n+m)*N+n+1:(n+m)*(N+1),(n+m)*N+n+1:(n+m)*(N+1)) =...H((n+m)*N+n+1:(n+m)*(N+1),(n+m)*N+n+1:(n+m)*(N+1)) + R;% State-Input weightH(n*(k-1)+1:n*k,n*N+m*(k-1)+1:n*N+m*k) = J;H(n*N+m*(k-1)+1:n*N+m*k,n*(k-1)+1:n*k) = J’;H(n*(k-1)+1:n*k,(n+m)*N+n+1:(n+m)*(N+1)) = -J;H((n+m)*N+n+1:(n+m)*(N+1),n*(k-1)+1:n*k) = -J’;H(n*N+m*(k-1)+1:n*N+m*k,(n+m)*N+1:(n+m)*N+n) = -J’;H((n+m)*N+1:(n+m)*N+n,n*N+m*(k-1)+1:n*N+m*k) = -J;H((n+m)*N+1:(n+m)*N+n,(n+m)*N+n+1:(n+m)*(N+1)) =...

120

Page 127: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.3 Códigos relacionados con la generación y resolución del problema de MPC

H((n+m)*N+1:(n+m)*N+n,(n+m)*N+n+1:(n+m)*(N+1)) + J;H((n+m)*N+n+1:(n+m)*(N+1),(n+m)*N+1:(n+m)*N+n) =...H((n+m)*N+n+1:(n+m)*(N+1),(n+m)*N+1:(n+m)*N+n) + J’;endH((n+m)*N+1:(n+m)*(N+1),(n+m)*N+1:(n+m)*(N+1)) =...H((n+m)*N+1:(n+m)*(N+1),(n+m)*N+1:(n+m)*(N+1)) + Hs;f((n+m)*N+1:(n+m)*(N+1)) = fs;for k = 1:Nif k < NAeq(n*(k-1)+1:n*k,n*(k-1)+1:n*(k+1)) = [eye(n) -A];Aeq(n*(k-1)+1:n*k,n*N+m*k+1:n*N+m*(k+1)) = -B;elseAeq(n*(k-1)+1:n*k,n*(k-1)+1:n*k) = eye(n);beq(n*(k-1)+1:n*k)=A*x0+B*u0;endendAeq(n*N+1:n*(N+1),n*N+m*N+1:(n+m)*(N+1))=[A-eye(n) B];for k = 1:N% xLB((k-1)*n+1:k*n) = LBx;UB((k-1)*n+1:k*n) = UBx;% uLB(N*n+(k-1)*m+1:N*n+k*m+1) = LBu;UB(N*n+(k-1)*m+1:N*n+k*m+1) = UBu;end% xsLB(N*(n+m)+1:N*(n+m)+n) = LBx;UB(N*(n+m)+1:N*(n+m)+n) = UBx;% usLB(N*(n+m)+n:(N+1)*(n+m)) = LBu;UB(N*(n+m)+n:(N+1)*(n+m)) = UBu;end

121

Page 128: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

B.3.3. Extracción de los resultados de las solución de un MPCcon ordenación separada de x y u a partir del vector devariables de decisión

function [x,u,y,xs,us,ys] = ...MPCresult1(A,B,C,D,x0,u0,res)n = size(A,1);m = size(B,2);p = size(C,1);N = length(res)/(n+m)-1;x = zeros(n,N+1);u = zeros(m,N+1);x(:,1)=x0;u(:,1)=u0;for k=1:Nx(:,k+1) = res((N-k)*(n+m)+1:(N-k)*(n+m)+n);u(:,k+1) = res((N-k)*(n+m)+n+1:(N-k)*(n+m)+n+m);endxs = res(N*(n+m)+1:N*(n+m)+n);us = res(N*(n+m)+n+1:N*(n+m)+n+m);y = C*x+D*u;ys = C*xs+D*us;end

B.3.4. Extracción de los resultados de las solución de un MPCcon ordenación intercalada de x y u a partir del vectorde variables de decisión

function [x,u,y,xs,us,ys] = MPCresult2(res,A,B,C,D,x0,u0,N)%MPCRESULT Summary of this function goes here% Detailed explanation goes heren = size(A,1);m = size(B,2);p = size(C,1);

122

Page 129: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.3 Códigos relacionados con la generación y resolución del problema de MPC

x = zeros(n,N+1);x(:,1) = x0;u = zeros(m,N);u(:,1) = u0;for k = 1:Nx(:,N-k+2) = res(n*(k-1)+1:n*k);endfor k = 1:Nu(:,N-k+2) = res(m*(k-1)+n*N+1:m*k+n*N);endy = C*x+D*u;xs = res((n+m)*N+1:(n+m)*N+n);us = res((n+m)*N+n+1:(n+m)*(N+1));ys = C*xs+D*us;

B.3.5. Prueba de los algoritmo de resolución de problemas QPsobre un MPC con ordenación separada de x y u

close all; clear all; clcn = 2;m = 1;p = 1;N = 15;A = [1 1;0 1];B = [0;1];C = [1 0];D = 0;% A = rand(n);% B = rand(n,m);% C = rand(p,n);% D = rand(p,m);x0 = 10*(0.5-rand(n,1));u0 = 5*rand(m,1);x0(2) = 0;u0 = 0;

123

Page 130: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

Q = 10*eye(n);R = 1*eye(m);J = 1e-3*ones(n,m);Qs = 1e5*ones(p);Rs = 1*ones(m);LBx = -[inf;inf];UBx = [inf;inf];LBu = -3;UBu = 3;r=7;[H,f,Aeq,beq,LB,UB] = MPCquad1(Q,J,R,Qs,Rs,A,B,C,D,LBx,UBx,LBu,UBu,r,x0,u0,N);opt=optimset;opt=optimset(opt,’Algorithm’,’interior-point-convex’);res=quadprog(H+Aeq’*Aeq,f-Aeq’*beq,[],[],Aeq,beq,LB,UB,[],opt);[Ha,fa,Aa,ba,Aeqa,beqa,LBa,UBa] = quadDiag(H+(Aeq’*Aeq),f-Aeq’*beq,[],[],Aeq,beq,LB,UB);x00 = zeros(size(Aeqa,1),1);[xopt,nit,nitL] = quadDS(Ha,fa,Aeqa,beqa,LBa,UBa,1,0.999,0.7,1e-5,x00);nitnitLres = xopt(1:end/2);[x,u,y,xs,us,ys] = MPCresult1(A,B,C,D,x0,u0,res);t=0:N;figure;plot(x(1,:),x(2,:));xlabel(’x_1 posicion’);ylabel(’x_2 velocidad’);title(’Espacio de estados’);grid;figure;subplot(2,1,1);plot(t,x(1,:),’b’,t,x(2,:),’r’,[1 N+1],[r r],’--k’,[1 N+1],[ys ys],’--g’);xlabel(’Tiempo’);ylabel(’Estado’);legend(’x_1 posicion’,’x_2 velocidad’)title(’Doble Integrador’);

124

Page 131: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.3 Códigos relacionados con la generación y resolución del problema de MPC

grid;subplot(2,1,2);plot(t,u);xlabel(’Tiempo’);ylabel(’Actuacion’);grid;

B.3.6. Prueba de los algoritmo de resolución de problemas QPsobre un MPC con ordenación intercalada de x y u

close all; clear all; clcn = 2;m = 1;p = 1;A = [1 1;0 1];B = [0 1]’;C = [1 0];D = 0;%A = rand(n);%B = rand(n,m);% C = rand(p,n);% D = rand(p,m);x0 = 10*(rand(n,1)-0.5);x0(2) = 0;u0 = 10*(rand(m,1)-0.5);u0=0;N = 50;Q = 1*ones(n);J = 0*ones(n,m);R = 1*ones(m);Qf = 10*eye(n);Qs = 1e3*eye(m);Rs = 2*eye(m);LBx = -[inf;inf];UBx = [inf;inf];

125

Page 132: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

LBu = -[3;3];UBu = [3;3];r = 7;[H,f,Aeq,beq,LB,UB] = MPCquad2(Q,J,R,Qs,Rs,A,B,C,D,LBx,UBx,LBu,UBu,r,x0,u0,N);rho = 10;opt=optimset;opt=optimset(opt,’Algorithm’,’interior-point-convex’);ressol = quadprog(H,f,[],[],Aeq,beq,LB,UB,[],opt);Ad=[eye((n+m)*(N+1)); -eye((n+m)*(N+1))];bd=[UB; -LB];x00 = zeros(size(Aeq,1)+size(Ad,1),1);[xopt,nit,nitL] = quadH(H+rho*(Aeq’*Aeq),f-rho*Aeq’*beq,Ad,bd,Aeq,beq,1,0.999,0.7,1e-5,x00);nitnitLquadTester(H,f,Ad,bd,Aeq,beq,[],[],xopt,1);[Ha,fa,Aa,ba,Aeqa,beqa,LBa,UBa] =quadDiag(H+rho*(Aeq’*Aeq),f-rho*Aeq’*beq,[],[],Aeq,beq,LB,UB);x01 = zeros(size(Aeqa,1),1);[xopt,nit,nitL] = quadD(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,1,0.999,0.7,1e-5,x01);nitnitLquadTester(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,xopt,1)[xopt,nit,nitL] = quadDS(Ha,fa,Aeqa,beqa,LBa,UBa,1,0.999,0.7,1e-5,x01);nitnitLquadTester(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,xopt,1)res=xopt(1:end/2);[x,u,y,xs,us,ys] = MPCresult2(res,A,B,C,D,x0,u0,N);[xopt,nit,nitL] = quadDSf(Ha,fa,Aeqa,beqa,LBa,UBa,1,1e-5,x01);nitnitLquadTester(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,xopt,1)res=xopt(1:end/2);[x,u,y,xs,us,ys] = MPCresult2(res,A,B,C,D,x0,u0,N);t=1:size(x,2);

126

Page 133: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.3 Códigos relacionados con la generación y resolución del problema de MPC

figure;plot(x(1,:),x(2,:));grid;figure;subplot(2,1,1);plot(t,x(1,:),’-b’,t,x(2,:),’-r’,t,t*0+r,’--g’);grid;subplot(2,1,2);plot(t,u);grid;

B.3.7. Análisis experimental de la complejidad computacionalde cada algoritmo aplicada a problemas MPC generadosaleatoriamente

close all; clear all; clc;

ns = [2 2 2 2 2];

ms = [1 1 1 1 1];

ps = [1 1 1 1 1];

Ns = [2 3 4 5 6];

rho = 10;

TOL = 1e-4;

totalsim = 5;

NBIG = 1e4;

test=0;

nsim = 1;

for k = 1:length(ns)

for j = 1:totalsim

n = ns(k);

m = ms(k);

p = ps(k);

N = Ns(k);

convex = -1;

while convex <= 1e-2

% System parameters

sys=drss(n,p,m);

127

Page 134: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

A = sys.a;

B = sys.b;

C = sys.c;

D = sys.d;

% Cost Weight

Q = 1*eye(n);

J = 0.1*ones(n,m);

R = 1*eye(m);

Qs = 1e3*eye(m);

Rs = 2*eye(m);

% Variable restriction

LBx = -ones(n,1)*NBIG;

UBx = ones(n,1)*NBIG;

%LBu = -ones(m,1)*NBIG;

%UBu = ones(m,1)*NBIG;

LBu = rand(m,1)-1;

UBu = rand(m,1)+1;

% Set-point

r = 10*(rand(p,1)-0.5);

% Initial value

x0 = 3*(rand(n,1)-0.5);

u0 = 3*(rand(m,1)-0.5);

% Generate quadratic problem from the MPC model

[H,f,Aeq,beq,LB,UB] = MPCquad1(Q,J,R,Qs,Rs,A,B,C,D,LBx,UBx,LBu,UBu,r,x0,u0,N);

convex = min(eig(H+rho*(Aeq’*Aeq)));

end

% Make the quadratic problem diagonal

[Ha,fa,Aa,ba,Aeqa,beqa,LBa,UBa] =...

quadDiag(H+rho*(Aeq’*Aeq),f-rho*Aeq’*beq,[],[],Aeq,beq,LB,UB);

% Linear inequalisties

Ad=[eye((n+m)*(N+1)); -eye((n+m)*(N+1))];

bd=[UB; -LB];

q(nsim) = cond(H);

qa(nsim) = cond(Ha);

opt=optimset;

opt=optimset(opt,’Algorithm’,’interior-point-convex’);

[xoptsol,~,~,~,lambda] = quadprog(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,[],opt);

128

Page 135: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.3 Códigos relacionados con la generación y resolución del problema de MPC

init(nsim) = norm(xoptsol)^2;

S = chol(Aeqa*(Ha\Aeqa’));

x01 = lambda.eqlin+(rand(size(lambda.eqlin))-0.5)*norm(lambda.eqlin)*0.01;

x02 = S*x01;

%x01 = zeros(size(Aeqa),1);

% QUADD

[xopt,nitD(nsim),nitLD(nsim),initD(nsim)]=...

quadD(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,1,0.999,0.7,TOL,x01);

if test==1

quadTester(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,xopt,1);

end

% QUADS

[xopt,nitDS(nsim),nitLDS(nsim),initDS(nsim)]=...

quadDS(Ha,fa,Aeqa,beqa,LBa,UBa,1,0.999,0.7,TOL,x02);

if test==1

quadTester(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,xopt,1);

end

% QUADSf

[xopt,nitDSf(nsim),nitLDSf(nsim),initDSf(nsim)] =...

quadDSf(Ha,fa,Aeqa,beqa,LBa,UBa,1,TOL,x02);

if test==1

quadTester(Ha,fa,[],[],Aeqa,beqa,LBa,UBa,xopt,1);

end

nsim = nsim + 1;

end

mnitD(k) = mean(nitD);

mnitDS(k) = mean(nitDS);

mnitDSf(k) = mean(nitDSf);

end

t = 1:length(nitD);

% aux = nitDS~=2;

% nitDS = nitDS(aux);

% initDS = initDS(aux);

%

% aux = nitDSf~=2;

% nitDSf = nitDSf(aux);

% initDSf = initDSf(aux);

129

Page 136: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Capítulo B Anexo código Matlab

polD=polyfit(log10(initD),log10(nitD),1);

polDS=polyfit(log10(initDS),log10(nitDS),1);

polDSf=polyfit(log10(initDSf),log10(nitDSf),1);

initmin = min([initD,initDS,initDSf]);

initmax = max([initD,initDS,initDSf]);

initt = log10(linspace(initmin,initmax,10));

figure;

plot(log10(initD),log10(nitD),’ob’);

grid;

hold on;

plot(log10(initDS),log10(nitDS),’or’);

plot(log10(initDSf),log10(nitDSf),’og’);

plot(initt,polyval(polD,initt),’--b’);

plot(initt,polyval(polDS,initt),’--r’);

plot(initt,polyval(polDSf,initt),’--g’);

hold off;

title(’Efecto de la distancia inicial en el N. Iteración’)

xlabel(’log_1_0(D. inicial)’)

ylabel(’log_1_0(N. Iteraciones)’);

legend(’DIAG.’,’DIAG.PRE.’,’DIAG.PRE.FIJO’,’Location’,’Best’);

figure;

title(’N. Iteraciones’)

plot(Ns,mnitD,’-ob’,Ns,mnitDS,’-or’,Ns,mnitDSf,’-og’);

title(’Efecto del horizonte de predicción(N) en el N. Iteraciones’)

ylabel(’n. iteraciones’);

xlabel(’Horizonte de prediccion (N)’);

legend(’DIAG.’,’DIAG.PRE.’,’DIAG.PRE.FIJO’,’Location’,’Best’);

grid;

for k = 1:length(ns)

[sumD(k),prodD(k)] = quadDcomplex(Ns(k),ns(k),ms(k),mnitD(k));

[sumDS(k),prodDS(k)] = quadDScomplex(Ns(k),ns(k),ms(k),mnitDS(k));

[sumDSf(k),prodDSf(k)] = quadDSfcomplex(Ns(k),ns(k),ms(k),mnitDSf(k));

end

figure;

subplot(2,1,1);

semilogy(Ns,sumD,’-ob’,Ns,sumDS,’-or’,Ns,sumDSf,’-og’);

title(’Efecto del horizonte de predicción(N) en la complejidad computacional’)

130

Page 137: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

B.3 Códigos relacionados con la generación y resolución del problema de MPC

ylabel(’n. sumas’);

xlabel(’Horizonte de prediccion (N)’);

legend(’DIAG.’,’DIAG.PRE.’,’DIAG.PRE.FIJO’,’Location’,’Best’);

grid;

subplot(2,1,2);

semilogy(Ns,prodD,’-ob’,Ns,prodDS,’-or’,Ns,prodDSf,’-og’);

ylabel(’n. prod.’);

xlabel(’Horizonte de prediccion (N)’);

grid;

131

Page 138: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad
Page 139: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad

Bibliografía

[DD12] Anulekha Dhara and Joydeep Dutta. Optimality conditions in convexoptimization. CRC Press, Boca Raton, Fla., 2012. [Recurso electrónico]:a finite-dimensional view /Anulekha Dhara, Joydeep Dutta; Servicio enlínea; :ill; Includes bibliographical references (p. 413-421) and index; 1.What is convex optimization? – 2. Tools for convex optimization – 3.Basic optimality conditions using the normal cone – 4. Saddle points,optimality, and duality - - 5. Enhanced Fritz John optimality conditions –6. Optimality without constraint qualification – 7. Sequential optimalityconditions – 8. Representation of the feasible set and KKT conditions – 9.Weak sharp minima in convex optimization – 10. Approximate optimalityconditions – 11. Convex semi-infinite optimization – 12. Convexity innonconvex optimization; CRCnetBASE (Servicio en línea).

[LAAC08] D. Limon, I. Alvarado, T. Alamo, and E. F. Camacho. Mpc for trackingpiecewise constant references for constrained linear systems. Automatica,44(9): 2382–2387, 2008, www.scopus.com. Cited By (since 1996):90.

[Mus97] Kenneth R. Muske. Steady-state target optimization in linear modelpredictive control. 6: 3597–3601, 1997, www.scopus.com. Cited By (since1996):24.

[Nes04] Yurii Nesterov. Introductory lectures on convex optimization :a basiccourse, volume 87. Kluwer Academic Publishers, Boston, 2004. YuriiNesterov; ; 24 cm; Bibliografia. Índice.

133

Page 140: Adrián Ayastuy Rodriguez Septiembre 2014bibing.us.es/proyectos/abreproy/5442/fichero/memoria.pdf · Optimizaciónconvexa aplicadaaMPC Adrián Ayastuy Rodriguez Septiembre 2014 Universidad