3. Introducción: Definiciones
3
“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
Algoritm
o
Estructu
ra
de
Datos
4. Introducción: Objetivos del curso
4
Aprenderemos los principales
conceptos para el diseño de
algoritmos
Veremos la importancia de utilizar una
estructura de datos adecuada para
almacenar la información del
problema resuelto
Una misma tarea se puede resolver
con distintos algoritmos y estructuras
de datos, siendo algunos más
eficientes que los otros.
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
Aunque nos centraremos en tareas
básicas: almacenar, ordenar, buscar
etc, las técnicas subyacentes se
pueden aplicar a problemas
computacionales en general
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)
5. Introducción: Ejemplos en Ciencia y Medicina
5
• 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?
Ejemplos prácticos: Proyecto Genoma Humano en Bioinformática
6. Introducción: Ejemplos en Empresa
6
• 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/
crawling-indexing/
Ejemplos prácticos: Internet y los buscadores
7. Introducción: Ejemplos en Operaciones
7
• 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
Ejemplos prácticos: Trayectoria de vuelo óptima
8. Introducción: Herramientas para un Data scientist
Estructuras
de Datos
Árboles,
Hash,
Grafos
Complejida
d de un
Algoritmo
O(n)
Paradigma
s de
Algoritmos
Divide y
vencerás
Problemas
Intratables
NP
Los algoritmos son tecnología, igual que el propio hardware
permiten implementar soluciones a problemas prácticos de manera
eficiente
9. Sede Universitat Carlemany
Av. Verge de Canòlich, 47
AD600 Sant Julià de Lòria
Principat d’Andorra
Linked
in
Facebook
+376 878 300