Complejidad Algoritmos - de La FUENTE ENZO MATÍAS
Complejidad Algoritmos - de La FUENTE ENZO MATÍAS
Complejidad Algoritmos - de La FUENTE ENZO MATÍAS
DE CHILECITO
INGENIERÍA EN SISTEMAS
TEORÍA DE LA
COMPUTACIÓN
COMPLEJIDAD Y EFICIENCIA DE
ALGORITMOS Y SU RELACIÓN CON
LA COMPUTACIÓN CUÁNTICA
ALUMNO:
ENZO MATÍAS DE LA FUENTE
TITULAR DE CÁTEDRA:
DR. JOSÉ TEXIER
CHILECITO – LA RIOJA
2019
2
Introducción
Un algoritmo es un procedimiento computacional que recibe uno o más valores como
entrada y produce uno o más valores como salida. Es una secuencia de pasos
computacionales que transforman entradas en salidas.
Si para cada entrada el algoritmo devuelve salidas correctas, podemos decir que este
algoritmo es eficaz y resuelve un problema computacional. Sin embargo, en la
actualidad, no basta con que este algoritmo sea eficaz debido a los grandes volúmenes
de datos que se generan, por lo que el algoritmo, además, debe ser eficiente. La
eficiencia implica que el algoritmo produzca una salida correcta en el menor tiempo
posible, es por ello que el diseño cumple un rol fundamental a la hora de mejorar el
desempeño. Este diseño viene acompañado de una serie de estudios, técnicas, análisis
de la complejidad y el uso eficiente de los recursos para reducir el tiempo de
ejecución.
A continuación, se profundizará sobre estos conceptos y se dará una breve reseña de la
computación cuántica y su relación con la complejidad y eficiencia de los algoritmos.
La notación O(f(n)) representa una de las medidas asintóticas más comunes para
analizar qué tan rápido crece el tiempo conforme crecen los datos de entrada,
independiente del lenguaje y el tipo de máquina en la que se ejecute.
Los principales órdenes de complejidad son:
Orden Nombre
O(1) constante
O(log n) logarítmica
O(n) lineal
O(n log n) casi lineal
O(n²) cuadrática
O(n³) cúbica
O(a^n) exponencial
La máquina de Turing permite lidiar con ambos tipos de complejidad siempre y cuando
exista una solución. Los problemas que pueden ser resueltos por una máquina de Turing
determinista son de tiempo polinomial, mientras que una máquina de Turing no
determinista puede resolver problemas de tiempo exponencial.
Computación cuántica
Los estudios de la Computación Cuántica se remontan a 1981, por parte de Paul
Benioff, cuando surge la computadora cuántica de Benioff que es una idea que expone
que la cinta de la máquina de Turing podría ser reemplazada por una serie de sistemas
cuánticos. Es decir, que en lugar de trabajar con voltajes eléctricos sea a nivel de cuánto.
Posteriormente en la década de los 90, y luego del aporte de especialistas como el físico
David Deutsh, surgieron los primeros algoritmos cuánticos, aplicaciones cuánticas y las
primeras máquinas capaces de realizar cálculos cuánticos.
Otra de las ventajas que aporta la computación cuántica son la aplicación masiva de
operaciones en paralelo y la capacidad de aportar nuevas soluciones a problemas que no
son abarcables por la computación cuántica debido a su elevado coste computacional.
Sin embargo, y a pesar de las ventajas expuestas anteriormente, un ordenador cuántico
solo será eficiente para un rango de tareas determinado. Esto implica que habrá ciertas
funciones en las que no será una ventaja utilizar la tecnología cuántica frente a la
computación clásica actual.
Los algoritmos clásicos conocidos no pueden hacer esto en tiempo O((log N)k) para
ningún k, así que llegan a ser rápidamente poco prácticos a medida que se aumenta N.
Por el contrario, el algoritmo de Shor puede romper RSA (Rivest, Shamir y Adleman,
algoritmo para encriptar firmas digitales) en tiempo polinómico. También se ha
ampliado para atacar muchas otras criptografías públicas.
Conclusión
La teoría de complejidad de algoritmos continúa avanzando y se desarrollan nuevos
conceptos que permiten mejorar la eficiencia y atacar de distintas maneras un problema
difícil de tratar. El tiempo y el espacio se volvieron elementos sensibles en un mundo en
el que la información se multiplica a cada segundo, el hardware potente es muy costoso
y la paciencia se desborda aun cuando el procesamiento trabaja en términos de
nanosegundos. Con la computación cuántica vendrán muchos cambios que seguramente
favorecerán todos los ámbitos informáticos. Por el momento, las técnicas de diseño de
algoritmos, los análisis de complejidad, el paralelismo, los sistemas distribuidos siguen
creciendo y nos ofrecen soluciones en muchos casos intelectuales y de muy bajo costo
para mejorar considerablemente el rendimiento.
Bibliografía
María del Carmen, Gómez Fuentes, Jorge Cervantes Ojeda. Introducción al análisis y
diseño de algoritmos. Universidad Autónoma Metropolitana. México. 2014.
Wikipedia
http://www.wikipedia.org
TextosCientíficos
http://www.textoscientificos.com
Giematic
http://www.giematic.eui.upm.es