3.4.1 Concepto de Complejidad Computacional.
A primera vista se podría pensar que la dificultad (o imposibilidad práctica) para resolver el problema no proviene de su complejidad, sino de la incapacidad de los algoritmos o los medios materiales. Para resolver este interrogante, la ciencia de la computación se ha dotado del instrumento que se describe a continuación.
La teoría de la complejidad computacional (como parte de la teoría de la computación) describe la "escalabilidad" de los algoritmos. Esta teoría responde a las preguntas: "Cuando el tamaño de la entrada de datos a un algoritmo crece ¿De qué modo crecen los requerimientos de tiempo de ejecución y espacio de almacenamiento?" y "¿Cuáles son las implicaciones y ramificaciones de dicho cambio?" Desde otro punto de vista, establece la diferencia entre la capacidad de un algoritmo concreto, o un determinado instrumento de computación, para resolver un problema, y la dificultad intrínseca de dicho problema (figura 3.19).
Figura 3.19 Garey & Jonson (1979)
Por otro lado, como su mecanismo de clasificación se basa en la posibilidad de convertir el nuevo tipo de problema a evaluar en otro de resolución y dificultad ya conocidas se puede utilizar en última instancia como método de aplicación de algoritmos conocidos a problemas nuevos, aunque no sea éste su propósito original.
Un diagrama de conversión entre determinados tipos de problemas puede verse en la figura 3.20.
Figura 3.20 Garey & Jonson (1979)
Un problema de decisión es aquel al que se puede responder con un sí o un no. La clase de complejidad P (Polinomial) es aquella a la que pertenecen los problemas de decisión que pueden ser resueltos de modo determinista (usando una "máquina determinista de Turing19") en tiempo polinomial (usando una cantidad polinomial de tiempo de computación). Por ejemplo, si n es el tamaño de los datos de un problema su resolución en n5+3n operaciones lo incluiría en esta clase.
En general, se considera que los problemas pertenecientes a la clase P "se pueden resolver
eficientemente" o son "tratables".
Un problema de optimización es el de encontrar, de entre todas las soluciones factibles, la mejor. Desde el artículo de Karmarkar (1984) se considera que los Programas Lineales (LP) pertenecen a la
clase de problemas de optimización P, es decir, que son tratables.
La clase NP (No-determinista Polinomial) es el conjunto de problemas de decisión resolubles en
tiempo polinomial por una "máquina de Turing no determinista". Equivalentemente, es el conjunto de problemas cuya solución puede "verificarse" en tiempo polinomial por una máquina de Turing determinista.
Finalmente, los problemas NP-completos son los problemas más difíciles dentro de la clase NP. Esto
quiere decir que cualquier tipo de problema en la clase NP puede reducirse en tiempo polinomial a
uno NP-completo, que es igual o más difícil.
El problema de decisión de un LCP genérico, simplemente contestar con un sí o un no a la pregunta
¿Tiene el LCP solución?, es NP-completo y por tanto intratable. Si esto no fuera así, un simple
procedimiento de bisección iterativa del espacio de búsqueda, contestando cada vez a la pregunta
19 La "maquina determinista de Turing" es un dispositivo hipotético que representa una máquina de computación, que realiza operaciones secuencialmente de una en una.
¿Tiene el nuevo problema solución?, permitiría acotar la solución al LCP en un intervalo tan pequeño como se desee y, por tanto, resolver numéricamente el problema20.
La formulación del problema mecánico en estudio es un LCP genérico, por tanto, en el caso general la obtención por medios deterministas de una solución de inicio de colapso es de dificultad NP-completa y por ello "intratable". Igualmente "intratable" es verificar que el problema no tiene solución. Sin embargo, la verificación de una posible solución obtenida de modo no determinista es de complejidad
P y, por tanto, "se puede resolver eficientemente".
Si se quiere tener la seguridad de que, en caso de existir una solución ésta se va a encontrar, o, en caso de que no exista solución se obtendrá un certificado de no existencia, los únicos métodos disponibles son los que de un modo u otro hacen una búsqueda exhaustiva.
Como se ha dicho, estos métodos son impracticables excepto para problemas de pequeño tamaño. Por ejemplo, el método "ingenuo", que se puso de ejemplo al principio, en el que se comprueban todas las posibles combinaciones de variables nulas en la restricción de complementariedad, empleando un árbol de búsqueda binario, requiere comprobar 2n posibles combinaciones, siendo n el número de pares de variables complementarias21.Un algoritmo de este tipo se dice que es exponencial en el número de operaciones.
3.4.2 Complejidad computacional del problema de contacto unilateral en el caso
general.
La complejidad computacional del problema de decisión de un LCP genérico, y por ello de un problema genérico de contacto unilateral, es "No determinista Polinomial completa"22 (NP-completa) y por tanto intratable,Chung (1989)
3.4.3 Clases de matrices
La dificultad de resolución de un LCP depende de las propiedades de la matriz que lo define. Al ser el
LCP un tema central de la programación matemática, ha sido objeto de un estudio exhaustivo de las
propiedades de las matrices, agrupándolas en clases, cada una de las cuales tiene una dificultad de resolución, y en cada una de las cuales funcionan, o no, determinados algoritmos. Una revisión de algunas de estas clases de matrices se puede consultar en el capitulo 3 de Murty (1997).
20 Y no sólo el de hallar una solución al problema sino también el de hallar la solución óptima al problema. 21
Como es fácil comprobar, con sólo 20 pares de variables se obtienen más de un millón de combinaciones, y ello sin tener en cuenta las posibles combinaciones en que los dos elementos de un par sean nulos.
22 Esto quiere decir que no existe un método determinista (de complejidad P) que nos permita decidir si un LCP genérico tiene solución o no. Si tal método existiera un simple proceso de bisección iterativa del espacio de búsqueda llevaría a una aproximación tan precisa como se quiera a la solución de nuestro problema
En este trabajo sólo se van a tener en cuenta, además de las matrices genéricas cuya clase se desconoce, tres clases de matrices especiales. Éstas son, según la definición que hace de Klerk, (2010): Una matriz M∈ℝn n× pertenece a la clase de matrices Positivo Definidas, PD, si x Mxt >0para todo
n
≠ ∈
0 x ℝ .
Una matriz M∈ℝn n× pertenece a la clase de matrices Positivo Semi Definidas, PSD, si x Mxt ≥0para todo x∈ n
ℝ .
Igualmente, una matriz M∈ n n×
ℝ pertenece a la clase de matrices Antisimétricas, SS, (Skew- Symmetric) si x Mxt =0para todo x∈ℝn.
Por tanto, la clase de matrices antisimétricas está incluida en la clase de matrices positivas semidefinidas. Toda matriz SS es PSD (figura 3.21)
Figura 3.21