10 | | Contiene 17 algoritmos principales con 41 variantes que intentan abarcar la mayor |
11 | | parte de los tipos de problemas tipo de la programación matemática no lineal y cuya |
12 | | descripción puede verse [http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms#Augmented_Lagrangian_algorithm aquí] de forma detallada. |
| 8 | == Definición del problema == |
| 9 | |
| 10 | El tipo de problemas que resuelve este sistema se puede formular matemáticamente del siguiente modo generalizado: |
| 11 | |
| 12 | Se quiere maximizar una función objetivo arbitraria:[[BR]] [[BR]] |
| 13 | [[LatexEquation( \underset{x\in\Omega}{\min}f\left(x\right)\wedge f:\Omega\subset\mathbb{R}^{n}\longrightarrow\mathbb{R} \wedge n\geq1 )]] [[BR]] [[BR]] |
| 14 | |
| 15 | Sujeta a las |
| 16 | * restricciones opcionales de intervalo: [[BR]] [[BR]] |
| 17 | [[LatexEquation( -\infty\leq l_{i}\leq x\leq u_{i}\leq\infty\wedge i=1\ldots n_{B} )]] [[BR]] [[BR]] |
| 18 | Si una variable no tuviera cota inferior entonces sería [[LatexEquation( l_{i} = -\infty )]] y si no tuviera cota superior entonces sería [[LatexEquation( u_{i} = \infty )]] |
| 19 | * restricciones opcionales de desigualdad arbitrarias: [[BR]] [[BR]] |
| 20 | [[LatexEquation( g_{j}\left(x\right)\leq0 \wedge g_j:\Omega\subset\mathbb{R}^{n}\longrightarrow\mathbb{R} \forall j=1\ldots n_{D} \wedge n_{D} \ge 0)]] [[BR]] [[BR]] |
| 21 | * restricciones opcionales de igualdad arbitrarias: [[BR]] [[BR]] |
| 22 | [[LatexEquation( h_{k}\left(x\right)=0 \wedge h_k:\Omega\subset\mathbb{R}^{n}\longrightarrow\mathbb{R} \forall k=1\ldots n_{I} \wedge n_{I} \ge 0)]] [[BR]] [[BR]] |
| 23 | |
| 24 | Hay una condición añadida que se suele sobreentender por su obviedad, pero que es a veces la causa de que no funcionen los algoritmos: un punto que cumpla todas las restricciones del problema, si las hay, debe pertenecer al dominio [[LatexEquation( \Omega )]] de la función objetivo. Evidenetemente, si no hay restricciones el dominio debe ser todo el espacio [[LatexEquation( \mathbb{R}^{n} )]]. Por ejemplo, si en la función objetivo aparece el logaritmo de una variable se debe incluir alguna restricción o conjunto de ellas que obligue a que dicha variable sea positiva. |
| 25 | |
| 26 | Obsérvese que si lo que se quiere es minimizar la función objetivo basta con tomar la función opuesta [[LatexEquation( -f(x) )]]. |
| 27 | |
| 28 | |
| 29 | |
| 30 | == Guia del usuario == |
| 31 | |
| 32 | |
| 33 | == Tutorial == |
| 34 | |
| 35 | La mejor forma de aprender a usar cualquier cosa es empezar a usarla de forma |
| 36 | controlada, para lo cual se dispone de una batería de ejemplos a disposición de |
| 37 | los usuairos. |
| 38 | |
| 39 | === Función objetivo bivariante no lineal con restricciones de desigualdad no lineal === |
| 40 | |
| 41 | En el test se describe la solución TOL del sencillo [http://ab-initio.mit.edu/wiki/index.php/NLopt_Tutorial ejemplo] proporcionado por el propio NLopt. |
| 42 | |
| 43 | |
| 44 | == Guía del programador y del usuario avanzado == |
| 45 | |
| 46 | El sistema NLopt contiene 17 algoritmos principales con 41 variantes que intentan |
| 47 | abarcar la mayor parte de los tipos de problemas tipo de la programación matemática |
| 48 | no lineal y cuya descripción puede verse |
| 49 | [http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms#Augmented_Lagrangian_algorithm aquí] |
| 50 | de forma detallada. |