PDF de programación - Análisis y Diseño de Algoritmos - Introducción

Imágen de pdf Análisis y Diseño de Algoritmos - Introducción

Análisis y Diseño de Algoritmos - Introduccióngráfica de visualizaciones

Actualizado el 2 de Junio del 2018 (Publicado el 16 de Abril del 2017)
1.621 visualizaciones desde el 16 de Abril del 2017
1.008,7 KB
12 paginas
Creado hace 14a (28/09/2009)
Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos
Introducción
Introducción

Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos

Concepto de algoritmo
 Concepto de algoritmo
 Resolución de problemas
Resolución de problemas
Clasificación de problemas
 Clasificación de problemas
Algorítmica
 Algorítmica
 Análisis de la eficiencia de los algoritmos
 Análisis de la eficiencia de los algoritmos
Análisis de la eficiencia de los algoritmos
Análisis de la eficiencia de los algoritmos
 Técnicas de diseño de algoritmos
Técnicas de diseño de algoritmos

11

Concepto de algoritmo
Concepto de algoritmo

Definición de algoritmo
Definición de algoritmo

Secuencia ordenada de pasos exentos de ambigüedad
Secuencia ordenada de pasos exentos de ambigüedad
tal que, al llevarse a cabo con fidelidad, dará como
tal que, al llevarse a cabo con fidelidad, dará como
resultado que se realice la tarea para la que se ha
resultado que se realice la tarea para la que se ha
resultado que se realice la tarea para la que se ha
resultado que se realice la tarea para la que se ha
diseñado en un tiempo finito.
diseñado en un tiempo finito.

Un algoritmo nos permite obtener
Un algoritmo nos permite obtener

la solución del problema para el que esté diseñado.
la solución del problema para el que esté diseñado.

Concepto de algoritmo
Concepto de algoritmo

Propiedades de un algoritmo
Propiedades de un algoritmo

Finitud::
 Finitud
La ejecución de un algoritmo ha de terminar después
La ejecución de un algoritmo ha de terminar después
de un número finito de etapas.
de un número finito de etapas.
de un número finito de etapas.
de un número finito de etapas.

Precisión::
 Precisión
Cada etapa ha de estar especificado rigurosamente.
Cada etapa ha de estar especificado rigurosamente.
La ejecución de un algoritmo no ha de dejar espacio
La ejecución de un algoritmo no ha de dejar espacio
para la interpretación, la intuición o la creatividad.
para la interpretación, la intuición o la creatividad.

22

33

Concepto de algoritmo
Concepto de algoritmo

Características de un algoritmo
Características de un algoritmo

Entradas::
 Entradas
Un algoritmo tiene cero o más entradas
Un algoritmo tiene cero o más entradas
(cantidades que se le dan inicialmente antes de que comience su ejecución).
(cantidades que se le dan inicialmente antes de que comience su ejecución).

Salidas::
 Salidas
Un algoritmo tiene una o más salidas
Un algoritmo tiene una o más salidas
(cantidades que tienen una relación específica con las entradas).
(cantidades que tienen una relación específica con las entradas).

Resolución de problemas
Resolución de problemas

Resolución de problemas con ordenador:
Resolución de problemas con ordenador:

 Diseñar un algoritmo para el problema.
Diseñar un algoritmo para el problema.

 Expresar el algoritmo como un programa.
 Expresar el algoritmo como un programa.
Expresar el algoritmo como un programa.
Expresar el algoritmo como un programa.

 Ejecutar el programa.
Ejecutar el programa.

44

55

Resolución de problemas
Resolución de problemas

Clasificación de problemas
Clasificación de problemas

Años 30
 Años 30
Problemas computables y no computables.
Problemas computables y no computables.

 Años 50
 Años 50
Años 50
Años 50
Complejidad de los problemas computables
Complejidad de los problemas computables
(búsqueda de algoritmos más eficaces).
(búsqueda de algoritmos más eficaces).

 Años 70
Años 70
Clasificación de los problemas computables: P y NP.
Clasificación de los problemas computables: P y NP.

66

77

Clasificación de problemas
Clasificación de problemas

Clases P y NP
Clases P y NP

 Clase P
Clase P
Problemas resolubles en tiempo polinómico
Problemas resolubles en tiempo
polinómico
con una máquina de
con una máquina de Turing
con una máquina de
con una máquina de Turing
Turing determinística
Turing determinística
determinística
determinística
(esto es, el tiempo de ejecución del algoritmo en un
(esto es, el tiempo de ejecución del algoritmo en un
ordenador viene descrito por una fórmula
ordenador viene descrito por una fórmula polinómica

polinómica).).

 Clase NP

Clase NP [Non
[Non--Deterministic
Polynomial--time]
time]
polinómico
Problemas resolubles en tiempo
Problemas resolubles en tiempo polinómico
determinística..
Turing no no determinística
con una máquina de
con una máquina de Turing

Deterministic Polynomial

Clasificación de problemas
Clasificación de problemas

Clase P ⊆⊆⊆⊆⊆⊆⊆⊆ Clase NP
Clase P
Clase NP

88

99

Clasificación de problemas
Clasificación de problemas

Reducción de problemas y complejidad
Reducción de problemas y complejidad

 Si reducimos un problema (A) a otro (B), podemos
Si reducimos un problema (A) a otro (B), podemos
obtener una solución con un algoritmo para el
obtener una solución con un algoritmo para el
problema B y transformar esa solución para convertirla
problema B y transformar esa solución para convertirla
problema B y transformar esa solución para convertirla
problema B y transformar esa solución para convertirla
en una solución para el problema A.
en una solución para el problema A.

 ¿P=NP?

polinómico. .

Si encontráramos un algoritmo polinómico
polinómico

¿P=NP? Si encontráramos un algoritmo
para un problema NP
para un problema NP--completo, sabríamos que todos
completo, sabríamos que todos
los problemas de la clase NP se pueden resolver en
los problemas de la clase NP se pueden resolver en
tiempo
tiempo polinómico

Algorítmica
Algorítmica

La algorítmica, como disciplina de estudio de los
La algorítmica, como disciplina de estudio de los
algoritmos, ha de considerar:
algoritmos, ha de considerar:

 El diseño de algoritmos.
El diseño de algoritmos.
 El diseño de algoritmos.
El diseño de algoritmos.

 La validación de algoritmos.
La validación de algoritmos.

 El análisis de algoritmos.
El análisis de algoritmos.

1010

1111

Algorítmica
Algorítmica

Diseño de algoritmos
Diseño de algoritmos

 Creación de algoritmos (parte creativa).
Creación de algoritmos (parte creativa).

El diseño de algoritmos no se puede dominar si no se
 El diseño de algoritmos no se puede dominar si no se
 El diseño de algoritmos no se puede dominar si no se
El diseño de algoritmos no se puede dominar si no se
conocen las técnicas de diseño de algoritmos
conocen las técnicas de diseño de algoritmos
(métodos y heurísticas que han demostrado ser útiles
(métodos y heurísticas que han demostrado ser útiles
en la práctica).
en la práctica).

Algorítmica
Algorítmica

Validación de algoritmos
Validación de algoritmos

Demostración de que las respuestas dadas por el
 Demostración de que las respuestas dadas por el
algoritmo son correctas para todas las posibles
algoritmo son correctas para todas las posibles
entradas.
entradas.
entradas.
entradas.

 Único método válido: Demostración formal.
Único método válido: Demostración formal.

1212

1313

Algorítmica
Algorítmica

Análisis de algoritmos
Análisis de algoritmos

 Determinación de los recursos (espacio, tiempo) que
Determinación de los recursos (espacio, tiempo) que
consumen los algoritmos en la resolución de
consumen los algoritmos en la resolución de
problemas.
problemas.
problemas.
problemas.

El análisis de algoritmos permite comparar algoritmos
 El análisis de algoritmos permite comparar algoritmos
alternativos con criterios cuantitativos (y elegir el
alternativos con criterios cuantitativos (y elegir el
algoritmo más adecuado para resolver un problema).
algoritmo más adecuado para resolver un problema).

1414

Análisis de la eficiencia
Análisis de la eficiencia

 Problema

Problema: :
Determinar las características del algoritmo que sirvan
Determinar las características del algoritmo que sirvan
para evaluar su rendimiento.
para evaluar su rendimiento.

p.ej.
p.ej.

Tiempo requerido para la ejecución del
Tiempo requerido para la ejecución del
algoritmo en términos del número de veces
algoritmo en términos del número de veces
algoritmo en términos del número de veces
algoritmo en términos del número de veces
que se ejecuta cada etapa del algoritmo.
que se ejecuta cada etapa del algoritmo.

 Alternativas

Alternativas (complementarias):
(complementarias):
 Enfoque empírico
Enfoque empírico
 Enfoque teórico
Enfoque teórico
 Enfoque híbrido
Enfoque híbrido

1515

Técnicas de diseño
Técnicas de diseño

Ejemplo: Problema del viajante de comercio (TSP)
Ejemplo:
Problema del viajante de comercio (TSP)

532 ciudades

532! soluciones posibles

Solución óptima: 27.686 millas

Técnicas de diseño
Técnicas de diseño

Ejemplo: Problema del viajante de comercio (TSP)
Ejemplo:
Problema del viajante de comercio (TSP)

Si tenemos N ciudades e intentamos solucionar el
Si tenemos N ciudades e intentamos solucionar el
problema por fuerza bruta (comprobando todas las
problema por fuerza bruta (comprobando todas las
soluciones posibles), tendremos que comprobar N!
soluciones posibles), tendremos que comprobar N!
soluciones posibles), tendremos que comprobar N!
soluciones posibles), tendremos que comprobar N!
posibles soluciones.
posibles soluciones.

Se necesitan técnicas que nos permitan
Se necesitan técnicas que nos permitan

diseñar algoritmos eficientes.
diseñar algoritmos eficientes.

1616

1717

Técnicas de diseño
Técnicas de diseño

Ejemplo: Problema del viajante de comercio (TSP)
Ejemplo:
Problema del viajante de comercio (TSP)

17 ciudades

Solución óptima = 226.64

Soluciones posibles = 17! = 355 687 428 096 000

Técnicas de diseño
Técnicas de diseño

Solución aproximada con un algoritmo iterativo:
Solución aproximada con un algoritmo iterativo:

Iteración 0:
Iteración 0:
Mejor solución = 403.7
Mejor solución = 403.7

Iteración 25:
Iteración 25:
Mejor solución = 303.86
Mejor solución = 303.86

17 ciudades

Solución óptima = 226.64

Soluciones posibles = 17! = 355 687 428 096 000

1818

1919
  • Links de descarga
http://lwp-l.com/pdf3021

Comentarios de: Análisis y Diseño de Algoritmos - Introducción (1)

Imágen de perfil
7 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad