domingo, 1 de diciembre de 2013

Lectura: Teoría de la Complejidad (25/Noviembre/2013)

Teoría de la Complejidad

En la actualidad la mayoría de las comunicaciones que se realizan electrónicamente cuentan con métodos de seguridad que brindan a la información del usuario cierto nivel de protección, lo cual le asegura la confidencialidad, disponibilidad e integridad de esta o no, esto es en función de que tan efectivo sea el método de seguridad, para poder calcular estos niveles de seguridad es necesario recurrir a las ciencias exactas. Dentro de las matemáticas se han desarrollado teorías completas que permiten realizar teles cálculos, en este caso tenemos la teoría de la complejidad, la cual se relaciona directamente con la teoría de la información que habíamos analizado previamente.
Podemos definir la teoría de la complejidad como la parte de la teoría de la computación que estudia los recursos requeridos durante el cálculo para resolver un problema. Es así que podemos llamar cálculo complejo a un cálculo que es difícil de realizarse, es decir, requiere un mayor número de recursos para su solución. Dentro de los recursos a los cuales nos referimos en el entorno computacional tenemos el tiempo, en el cual contabilizamos el número de pasos de ejecución usados por un algoritmo para poder resolver un problema, el espacio que es la cantidad de memoria utilizada para resolver el problema y el número de procesadores necesarios para resolver un problema si este fuese en paralelo. Como resultado del análisis de estos recursos tenemos más ideas conceptualizadas que nos ayudan a comprender de una mejor manera la teoría, por ejemplo podemos decir que un algoritmo que resuelve un problema pero que tarda mucho en hacerlo, difícilmente será de utilidad de igual manera uno que requiera un gigabyte de memoria, también podemos comprender que si un cálculo requiere más tiempo que otro decimos que es más complejo, llamando a este tipo de complejidad, complejidad temporal, igual tenemos un tipo de complejidad para el que requiere más espacio de almacenamiento en memoria, llamándola complejidad espacial.
Es importante tomar en cuenta la clasificación de los algoritmos o problemas a resolver, estos se dividen en dos grandes clases, los problemas que tienen una solución, los cuales requieren una gran cantidad de recursos como tiempo y espacio de almacenamiento, comúnmente son del orden de complejidad lineal, es decir son los problemas que se resuelven en un tiempo que se relación linealmente con su tamaño, estos problemas se encuentran agrupados en una clase llamada P, la cual hace referencia a los algoritmos que pueden ser resueltos por maquinas que tienen como máximo una complejidad o costo computacional polinomio, por otro lado tenemos los problemas que no tienen solución, los cuales son agrupados en la clase NP de problemas con costo no polinomial o sin solución algorítmica, es decir los que una maquina no puede resolver en tiempo razonable.

El análisis de la teoría de la complejidad nos permite entender de una mejor manera como es que se le puede catalogar a un método criptográfico que hace uso de algoritmos mejor que otro, lo cual nos permite tomar una mejor decisión sobre qué solución implementar cuando desarrollamos un sistema con seguridad, tomando en cuenta los recursos con los que se cuenta en el entorno, siempre con la finalidad de brindar a la información del usuario el mayor nivel de seguridad posible. 

No hay comentarios:

Publicar un comentario