• No results found

3 Abstracts DAY 2

3.2 Parallel Session 3a Modelling

3.2.5 MFC acceleration model – Simulating the vehicle dynamics

numérico se dice que el método símplex puede converger en tiempo expo- nencial en los casos peores, aunque en muchos ejemplos se resuelve en tiempo polinomial comparable a los algoritmos de punto interior. La complejidad temporal exponencial significa que se resuelve en un tiempo del orden de

2n, donde n es el tamaño de la entrada al algoritmo; si la complejidad es

polinomial su tiempo de resolución está en el orden de 2log n. Los datos de

este apartado los he obtenido de [Cor09].

Para resolver un problema LP primero tiene que estar planteado en for- mato estándar tal como veíamos en §3.3.1.1, de forma que únicamente ten- dremos desigualdades de no negatividad en las variables utilizadas. En estas condiciones, y teniendo en cuenta que el conjunto viable de un LP es un poliedro, el valor mínimo de la función objetivo se obtiene en al menos uno de sus vértices, tal como se demuestra en [Mur83b]. Los poliedros tienen un número finito de puntos extremos, por lo que el problema se reduce a un número limitado de iteraciones, aunque en algunos casos puede ser muy elevado. Otra propiedad importante es que si en un vértice no encontramos un mínimo, entonces en alguna de las aristas que pasan por ese vértice la función objetivo será estrictamente decreciente, por lo que en su extremo opuesto nos conectará con otro vértice en el que esta función es menor. En caso contrario, no hay cota inferior en esa arista y el problema no tiene solución.

El algoritmo se resuelve en dos fases. En la primera se encuentra un punto extremo de inicio, y en la segunda fase se recorren los vértices conectados con aristas decrecientes hasta encontrar el punto óptimo si el problema tiene solución.

Si revisamos la teoría de §2.4 es sencillo entender que el problema dual de un LP es también otro LP. En algunos casos la resolución del problema dual con el método símplex puede ser más rápida que la del problema primal, y por eso veremos en §5.2 que algunas herramientas como GLPK, Gurobi, etc., implementan la resolución alternativa del primal o el dual con el fin de reducir el tiempo de ejecución.

4.5

Métodos para resolver problemas con varia-

bles enteras

En este apartado tratamos un tipo de problemas que no es convexo, pero lo necesitamos como referencia para cuando veamos en el capítulo 5 que muchas herramientas de optimización incluyen algoritmos para resolver problemas en los que algunas componentes de la variable de optimización pueden ser enteras. Esto es lo que se conoce como problemas lineales con mezcla de

enteros (MILP1o MIP2). El contenido de esta sección está basado en [Chi10]. Una primera aproximación consiste en enumerar todas las soluciones po- sibles combinando los valores enteros que cada componente puede tomar con los de las otras, y entre todas estas soluciones elegimos la mejor. Esto puede funcionar con problemas muy pequeños, pero el número de combinaciones posibles aumenta excesivamente con el tamaño de las variables y sus rangos de valores. Sin embargo, podemos plantear la exploración de todas las com- binaciones viables de las componentes enteras como una estructura de árbol.

Por ejemplo, si la componente x1 puede valer 1, 2, o 3, y las componentes

x2 y x3 son binarias (0 o 1) el árbol de combinaciones será el de la figura

4.2.

Figura 4.2: Ejemplo de estructura de árbol en un problema con variables enteras.

Los métodos de ramificar y acotar (Branch-and-Bound), se basan en construir las ramificaciones de este árbol haciendo que crezcan únicamente los nodos más prometedores en cada instante, y eliminando las ramas que vayan a dar resultados peores. Esto se asemeja a la poda en términos de jar- dinería, ya que descartamos permanentemente los nodos en los que podemos demostrar que su crecimiento no puede ser viable ni óptimo. También se ha- bla de brotes para referirse a nodos que pueden crecer con las combinaciones de las siguientes variables.

Para este método es importante utilizar una función de acotación que nos permita conocer el mejor valor de la función objetivo que se puede obtener a partir de un determinado brote.

Otra aproximación a los problemas MIP son los algoritmos de plano cortante (Cutting-Plane), que plantean una versión del problema inicial sus- tituyendo las componentes enteras por reales, y a partir de ahí refinan la solución añadiendo restricciones que reducen el conjunto viable hasta obte- ner una solución óptima entera.

1Mixed Integer Linear Program 2

4.5. PROBLEMAS CON VARIABLES ENTERAS 75 También veremos herramientas que resuelven estos problemas con al- goritmos de ramificar y cortar (Branch-and-Cut). Estos métodos son una combinación de los dos anteriores.

En [Esc10] y en las referencias que contiene podemos ampliar el co- nocimiento de este tipo de problemas y encontramos aplicaciones de los algoritmos de esta sección en el ámbito de las telecomunicaciones.

Parte II

Herramientas de

optimización convexa

Capítulo 5

Revisión de herramientas

disponibles de optimización

convexa

En este capítulo se hace una revisión de las herramientas más importantes de optimización convexa que podemos encontrar en el mercado. Se estudian las características de cada programa de forma que podamos conocer cuál es más adecuado para el problema que necesitemos resolver, en función de diferentes propiedades como su complejidad o facilidad de uso, condiciones comerciales de distribución, y la variedad de problemas y formatos de datos que admita.

Los principales apartados que encontraremos corresponden a los tipos de programas que existen, que pueden ser de modelado o de resolución. Veremos la diferencia entre ambos. También he reservado un espacio para herramientas de optimización global orientadas a problemas no necesaria- mente convexos.

Al final del capítulo se incluye un ejemplo de problema cuadrático que nos permite comparar el procedimiento de utilización de varias herramientas, y que también sirve para visualizar de forma intuitiva la estructura de los problemas que estamos tratando.

5.1

Motivación

En estos momentos es posible para un usuario adquirir una gran variedad de aplicaciones que resuelven problemas de optimización, pero estos pueden ser de una naturaleza muy diversa, por lo que cada herramienta se centra en la resolución de un tipo o de un grupo más o menos amplio de problemas. Por ejemplo, si buscamos herramientas de optimización lineal, la cantidad de programas que encontramos en el mercado es innumerable; incluso en las hojas de cálculo de los paquetes de ofimática más populares se pueden

resolver LPs.

Cuando los problemas son convexos, las técnicas disponibles de resolu- ción permiten una altísima eficiencia en cuanto a tiempo de convergencia, dimensiones de las variables, y cantidad de funciones de restricción que po- demos indicar. Por este motivo es importante explotar las posibilidades que se nos ofrecen en este tipo de problemas, y aquí es donde nos hemos centrado en este trabajo.

Podemos distinguir entre los programas específicos de resolución (sol- vers), que suelen estar especializados en algún tipo de problema (lineales, cuadráticos, cónicos, etc.); y por otro lado los sistemas de modelado, que se encargan de automatizar las transformaciones necesarias para convertir un problema en su formato estándar. Los primeros se ven en §5.2, y los sistemas de modelado en §5.3.

Los solvers corresponden a un nivel bajo de programación, en el sentido de que son más complicados para el usuario, y están enfocados a aplicar un determinado algoritmo para un tipo de problema en concreto. Normalmente forman parte del “núcleo” de los programas de modelado, que a su vez, pueden utilizar una gran cantidad de solvers para resolver en cada caso un conjunto variado de problemas.

Los sistemas de modelado proporcionan un nivel alto de programación más cercano al lenguaje utilizado en la teoría de optimización que hemos estudiado en la primera parte de este trabajo. No están especializados en un tipo de problema concreto, porque para eso cuentan con varios solvers una vez que han transformado el problema genérico para el que se utilizan.

Outline

Related documents