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