algoritmos. d efinicion : es un conjunto finito de instrucciones que especifican una secuencia de...

26
ALGORITMOS

Upload: roman-manrique

Post on 22-Dec-2015

222 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

ALGORITMOS

Page 2: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

DEFINICION:

Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema específico. En otras palabras, un algoritmo es un método para la solución de problemas.

2

Page 3: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

PROPIEDADES DE UN ALGORITMO

SecuencialidadAusencia de AmbigüedadesGeneralidadLimitaciones

3

Page 4: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

SECUENCIALIDAD Se debe especificar sin lugar a dudas

la secuencia a utilizar. Un algoritmo debe tener una

instrucción inicial única y un sucesor único en cada secuencia.

Las instrucciones son llevadas a cabo de arriba hacia abajo a menos que las mismas especifiquen lo contrario.

Las entradas son las partidas de datos presentadas al algoritmo.

Las salidas son partidas de datos procesados que son el resultado de la ejecución un programa basado en el algoritmo. 4

Page 5: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

AUSENCIA DE AMBIGÜEDAD En algoritmo debe ser defino, claro, preciso y

no ambiguo. La representación de cada paso de un algoritmo debe dar lugar a una sola interpretación posible.

Esta condición significa que cada vez que se presente para su ejecución u algoritmo con los mismos datos de entrada, se obtendrán los mismos resultados.

Las instrucciones de un algoritmo debe ordenar a la computadora que solo lleve a cabo tareas que sea capaz de hacer. Una computadora no puede efectuar una instrucción si tiene información insuficiente o si el comando no está definido.

5

Page 6: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

GENERALIDAD

Un algoritmo se puede realizar para varios problemas que se relacionan entre sí.

Un algoritmo se aplica a un problema o clase de problemas específicos; el rango de las entradas o dominios se tiene que definir previamente, ya que está determinado el alcance o la generalidad del algoritmo.

6

Page 7: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

LIMITACIÓN

Un algoritmo es finito en tamaño y tiempo. La ejecución de un algoritmo programado

debe finalizar después de que se haya llevado a cabo una cantidad finita de operaciones.

7

Page 8: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

DOMINIO DE UN ALGORITMO

La clase o el conjunto de datos y condiciones para las cuales un algoritmo trabaja concretamente se llama dominio.

Cuando se trata de resolver cualquier problema es necesario definir el dominio del algoritmo y después verificar que trabaja para todos los casos que se encuentran dentro del dominio.

Es necesario incluir en el dominio todas las situaciones similares, pero los casos remotos o poco probables se permiten omitir.

8

Page 9: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

ERRORES EN LA CONTRUCCIÓN DEL DOMINIO.

Errores del dominio: se presentan cuando se

no han especificado todas las situaciones que se pueden presentar en la práctica o se han descuidado la apreciación de su importancia.

A medida que se presenta el problema, se tiene que clasificar y hay tres opciones:

1. Ignorarlo porque es improbable y quizás nunca ocurra.

2. Restringir el dominio del algoritmo para excluirlo.

3. Corregir el algoritmo. 9

Page 10: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

ERRORES DE LÓGICA:

Son aquellos errores que se detectan, después que se ha definido en forma adecuada el dominio de un algoritmo, en la etapa de prueba o verificación.

se deben principalmente a las siguientes causas:

1. Etapas incorrectas.2. Secuencia incorrecta de etapas3. El criterio de elección de un algoritmo debe

hacerse en base a criterios tales como:a) Que el algoritmo sea simple, es decir, fácil

de entender y de escribir.b) Que el algoritmo sea eficiente.

10

Page 11: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

MÉTODO HEURÍSTICO

La heurística proporciona un esquema o plan para abordar los problemas poco conocidos, mejora la capacidad de crear soluciones y asegura que el método que se va a usar sea eficiente.

En la etapa de planificación es donde se tiene la oportunidad de comparar métodos y seleccionar el más adecuado.

11

Page 12: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

SURGE LA PREGUNTA:

¿ Cómo se pueden resolver los problemas para los que no hay un método establecido o para los cuales conocemos un algoritmo?.

12

Page 13: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

DISEÑO DE UN ALGORITMO

Un método heurística para diseñar algoritmo es el denominado DIVIDE AND CONQUER, el cual es una técnica TOP-DOWN.

Este método permite implementar la segmentación, descomposición de un problema largo y complejo en problemas independientes más pequeños y fáciles de resolver que el problema de partida.

La técnica consiste en varias etapas.13

Page 14: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

DESCOMPOSICIÓN DEL PROBLEMA DE PARTIDA EN SUBPROBLEMAS INDEPENDIENTES Y DETERMINACIÓN DE LAS

RELACIONES ENTRE ELLOS.

P

P1 P2 P3

14

Page 15: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

RESOLUCIÓN DE CADA SUBPROBLEMA

Si un sub-problema es grande, por descomposición y continuando hasta que resulten de la descomposición sub -problemas fácilmente resolubles.

P1

P1.1 P1.2 P1.3

15

Page 16: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

COMPOSICIÓN DE LAS SOLUCIONES DE LOS SUB-

PROBLEMAS PARA LOGRAR LA SOLUCIÓN FINAL

El diseño del algoritmo que resuelve un problema, realizado con esta técnica recibe el nombre de DISEÑO DESCENDENTE y resulta en algoritmo muy legibles, claros, fáciles de entender, seguir y corregir.

El diseño de un algoritmo no se hace de una sola vez, sino que se va resolviendo en una secuencia de pasos ( llamados PASOS DE REFINAMIENTO).

En cada paso el problema es refinado agregando detalles significativos, por lo que el método se conoce como:

MÉTODO DE LOS REFINAMIENTOS SUCESIVOS.

16

Page 17: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

UN INGENIERO ES CONVOCADO PARA CONSTRUIR UN EDIFICIO

CONSTRUCCIÓN DEL

EDIFICIO

CONFECCICÓNDE LOSPLANOS

CONTRATACIÓNDEL

PERSONAL

COMPRA DEMATERIALES

DIRECCIÓNDE LA OBRA

17

Page 18: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

UN SUB- PROBLEMA

CONFECCIÓNDE LOSPLANOS

DISEÑO DELANTEPROYECTO

APROBACIÓNDEL

ANTEPROYECTO

ELABORACIÓN DE LOS PLANOS

APROBACIÓNDE LOSPLANOS

18

Page 19: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

OTRO SUB- PROBLEMA

CONTRATACIÓNDEL

PERSONAL

PEDIDO DECURRICULUM

VITAE

ANÁLISISDE LOS

CURRÍCULUMVITAE

ENTREVISTAS PERSONALES

REDACCIÓN DE LOS

CONTRATOS

19

Page 20: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

OTRO SUB- PROBLEMA

COMPRA DE

MATERIALES

CÁLCULODE

MATERIALES

PEDIDO DE

PRECIOS

SELECCIÓNDE

PROVEEDORES

20

Page 21: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

Al utilizar el refinamiento por pasos el diseñador de un algoritmo debe saber donde detenerse, es decir, debe saber cuando un paso específico del algoritmo es lo suficientemente claro para no necesitar más refinamiento.

Se necesita CONOCER LAS CAPACIDADES DE UN PROCESADOR no sólo para terminar los refinamientos, sino para dirigir la forma en que el refinamiento avanza.

21

Page 22: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

Una computadora puede interpretar cualquier cosa expresadas de manera adecuada en un lenguaje de programación. Así el diseñador de un algoritmo de computadora puede orientar los pasos y la terminación del refinamiento hacia el tipo de lenguaje que se trate.

22

Page 23: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

PROGRAMACIÓN ESTRUCTURADA

Los principios metodológicos básicos de la programación estructurada son los de subdividir el problema inicial o de partida en partes manejables para su análisis y hacer de esta manera que se agilice el proceso de entender el problema y la solución.

23

Page 24: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

Básicamente, estas subdivisiones deseadas (llamadas módulos) deben satisfacer los siguientes requisitos:

1. Los módulos deben estas jerarquizados.2. Deben ser pequeños y sencillos.3. Se deberán utilizar tantos módulos de

menor jerarquía como sea necesario para cumplir con la restricción de ser pequeños y sencillos.

4. Se deberán usar las estructuras de control y datos adecuadas para cumplir con el requisito de pequeños y sencillos.

5. Los módulos deben ser legibles para cualquier persona aunque tenga solamente conocimientos elementales de progrmación.

24

Page 25: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

DIAGRAMA DE FLUJO

Un diagrama de flujo es otra técnica de diseño de algoritmos. Consiste en una serie de símbolos que denotan acciones, decisiones o procedimientos que se unen mediante flechas y conectores.

Esta representación nos ayudará a conocer la información que tenemos, donde la tenemos, que debemos hacer con ella y como presentarla.

Debe tener las cualidades de sencillez, claridad y normalización en su diseño.

25

Page 26: ALGORITMOS. D EFINICION : Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema

26