Uploaded by Gerard Alba

Algoritmos y Estructuras de Datos I - Sesión 1

advertisement
Algoritmos y Estructuras de Datos I
ODS 12, 13
Tema 1: Introducción
2
Introducción: Definiciones
Algoritmo
Estructura
de
Datos
“una secuencia de instrucciones,
bien definidas y ejecutables en un
tiempo y esfuerzo finitos, para
resolver un problema
computacional”
Para muchos problemas, la formulación
de un algoritmo eficiente requiere
almacenar los datos (inputs, outputs) de
una forma adecuada.
Existen diferentes estructuras de datos
para
organizar
la
información,
dependiendo de la operación a realizar:
arrays, listas, árboles, grafos etc
3
Introducción: Objetivos del curso
Aprenderemos los principales
conceptos para el diseño de
algoritmos
El uso principal de algoritmos en
computación (programas) consiste en
almacenar y recuperar una cantidad
importantes de información de
manera rápida, en general no se trata
de realizar cálculos sofisticados
Veremos la importancia de utilizar una
estructura de datos adecuada para
almacenar la información del
problema resuelto
Aunque nos centraremos en tareas
básicas: almacenar, ordenar, buscar
etc, las técnicas subyacentes se
pueden aplicar a problemas
computacionales en general
Una misma tarea se puede resolver
con distintos algoritmos y estructuras
de datos, siendo algunos más
eficientes que los otros.
En el buen diseño de un algoritmo son
importantes:
• Especificación precisa del problema que
soluciona el algoritmo
• Verificación del correcto funcionamiento del
algoritmo
• Eficiencia o rendimiento del algoritmo: recursos
necesarios (tiempo de ejecución, espacio de
memoria etc)
4
Introducción: Ejemplos en Ciencia y Medicina
Ejemplos prácticos: Proyecto Genoma Humano en Bioinformática
• Bases de datos con las secuencias del ADN que contienen las instrucciones genéticas de todos los organismos y muchos
virus
• Los algoritmos permiten descifrar el lenguaje del ADN. Ejemplo: ¿son dos especies próximas en su evolución?
5
Introducción: Ejemplos en Empresa
Ejemplos prácticos: Internet y los buscadores
• Un buscador como Google tiene que gestionar de manera
eficiente una cantidad de información de websites enorme
• Los algoritmos de Google, que incluyen almacenar
adecuadamente la información utilizando estructuras de datos
de grafos, con indexing, se basan en algoritmos de ordenación
y búsqueda
• La comprensión del funcionamiento de Google es clave para el
márketing y ventas de cualquier negocio online
https://www.google.com/intl/es_es/search/howsearchworks/cra
wling-indexing/
6
Introducción: Ejemplos en Operaciones
Ejemplos prácticos: Trayectoria de vuelo óptima
• La planificación de rutas de las aerolíneas se realiza con algoritmos que optimizan costes (distancias, emisión CO2, rotaciones
de aparatos y tripulaciones etc)
• Se utilizan estructuras de datos como los grafos y las colas con prioridad, junto con algoritmos de ordenación
• La red de ferrocarriles, una red de ordenadores, la red de carreteras para transporte, son problemas reales con soluciones
similares
7
Introducción: Herramientas para un Data scientist
Los algoritmos son tecnología, igual que el propio hardware
permiten implementar soluciones a problemas prácticos de manera eficiente
Complejidad
de un
Algoritmo
O(n)
Estructuras
de Datos
Árboles,
Hash, Grafos
Paradigmas
de
Algoritmos
Divide y
vencerás
Problemas
Intratables
NP
Sede Universitat Carlemany
Av. Verge de Canòlich, 47
AD600 Sant Julià de Lòria
Principat d’Andorra
+376 878 300
Linkedin
Facebook
Download