Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Concepto de algoritmo
Definicin de algoritmo Secuencia ordenada de pasos exentos de ambigedad tal que, al llevarse a cabo con fidelidad, dar como resultado que se realice la tarea para la que se ha diseado en un tiempo finito. Un algoritmo nos permite obtener la solucin del problema para el que est diseado.
Concepto de algoritmo
Propiedades de un algoritmo Finitud: La ejecucin de un algoritmo ha de terminar despus de un nmero finito de etapas. Precisin: Cada etapa ha de estar especificado rigurosamente. La ejecucin de un algoritmo no ha de dejar espacio para la interpretacin, la intuicin o la creatividad.
Concepto de algoritmo
Caractersticas de un algoritmo Entradas: Un algoritmo tiene cero o ms entradas
(cantidades que se le dan inicialmente antes de que comience su ejecucin).
Resolucin de problemas
Resolucin de problemas con ordenador: Disear un algoritmo para el problema. Expresar el algoritmo como un programa. Ejecutar el programa.
Resolucin de problemas
Clasificacin de problemas
Aos 30 Problemas computables y no computables. Aos 50 Complejidad de los problemas computables (bsqueda de algoritmos ms eficaces). Aos 70 Clasificacin de los problemas computables: P y NP.
Clasificacin de problemas
Clases P y NP Clase P Problemas resolubles en tiempo polinmico con una mquina de Turing determinstica (esto es, el tiempo de ejecucin del algoritmo en un ordenador viene descrito por una frmula polinmica). polinmica). Clase NP [Non[Non-Deterministic PolynomialPolynomial-time] Problemas resolubles en tiempo polinmico con una mquina de Turing no determinstica.
8
Clasificacin de problemas
Clase P Clase NP
Clasificacin de problemas
Reduccin de problemas y complejidad Si reducimos un problema (A) a otro (B), podemos obtener una solucin con un algoritmo para el problema B y transformar esa solucin para convertirla en una solucin para el problema A. P=NP? Si encontrramos un algoritmo polinmico para un problema NPNP-completo, sabramos que todos los problemas de la clase NP se pueden resolver en tiempo polinmico. polinmico.
10
Algortmica
La algortmica, como disciplina de estudio de los algoritmos, ha de considerar: El diseo de algoritmos. La validacin de algoritmos. El anlisis de algoritmos.
11
Algortmica
Diseo de algoritmos Creacin de algoritmos (parte creativa). El diseo de algoritmos no se puede dominar si no se conocen las tcnicas de diseo de algoritmos (mtodos y heursticas que han demostrado ser tiles en la prctica).
12
Algortmica
Validacin de algoritmos Demostracin de que las respuestas dadas por el algoritmo son correctas para todas las posibles entradas. nico mtodo vlido: Demostracin formal.
13
Algortmica
Anlisis de algoritmos Determinacin de los recursos (espacio, tiempo) que consumen los algoritmos en la resolucin de problemas. El anlisis de algoritmos permite comparar algoritmos alternativos con criterios cuantitativos (y elegir el algoritmo ms adecuado para resolver un problema).
14
Anlisis de la eficiencia
Problema: Determinar las caractersticas del algoritmo que sirvan para evaluar su rendimiento. p.ej. Tiempo requerido para la ejecucin del algoritmo en trminos del nmero de veces que se ejecuta cada etapa del algoritmo.
Tcnicas de diseo
Ejemplo: Problema del viajante de comercio (TSP)
532 ciudades 532! soluciones posibles Solucin ptima: 27.686 millas
16
Tcnicas de diseo
Ejemplo: Problema del viajante de comercio (TSP) Si tenemos N ciudades e intentamos solucionar el problema por fuerza bruta (comprobando todas las soluciones posibles), tendremos que comprobar N! posibles soluciones. Se necesitan tcnicas que nos permitan disear algoritmos eficientes.
Tcnicas de diseo
Ejemplo: Problema del viajante de comercio (TSP)
17 ciudades Solucin ptima = 226.64 Soluciones posibles = 17! = 355 687 428 096 000
11
Tcnicas de diseo
Solucin aproximada con un algoritmo iterativo:
17 ciudades Solucin ptima = 226.64 Soluciones posibles = 17! = 355 687 428 096 000
19
Tcnicas de diseo
Solucin aproximada con un algoritmo iterativo:
17 ciudades Solucin ptima = 226.64 Soluciones posibles = 17! = 355 687 428 096 000
20
Tcnicas de diseo
Solucin aproximada con un algoritmo iterativo:
17 ciudades Solucin ptima = 226.64 Soluciones posibles = 17! = 355 687 428 096 000
21
Tcnicas de diseo
Tcnicas de diseo de algoritmos Divide y vencers Algoritmos greedy Programacin dinmica Exploracin de grafos Branch & Bound (ramificacin y poda) Backtracking (vuelta atrs) Algoritmos probabilsticos Metaheursticas
22