Está en la página 1de 23

UNIVERSIDAD NACIONAL AGRARIA LA MOLINA

Facultad de Economía y Planificación


Departamento de Estadística e Informática

ALGORITMIA
Introducción

Profesora: Frida Coaquira Nina

2022-I
Motivación
¿Se puede planificar óptimamente una solución a
un problema con información almacenada de
distintas fuentes de datos?
Contenido
• Introducción a los algoritmos
• Razonamiento Lógico
• Pasos para resolver un problema
• Características y condiciones del algoritmo
• Representación de los algoritmos
Introducción a los Algoritmos
Un algoritmo es una secuencia de pasos a seguir para resolver un problema
usando un computador u ordenador.

Consiste en aplicar adecuadamente una serie de pasos detallados que aseguran


una solución correcta.

La algoritmia o ciencia de los algoritmos, es uno de los pilares de la informática.

Cada algoritmo es específico de un dominio del conocimiento.


Requerimientos
Dividir en submetas para alcanzar el objetivo.

Realizar operaciones durante el estado inicial y las submetas,


actividades u operaciones que alteren la naturaleza de tales estados
EJEMPLO
El ejemplo de cambiar una bombilla (foco) fundida es uno de los más
utilizados por su sencillez para mostrar los pasos de un Algoritmo:
1. Ubicar una escalera debajo de la bombilla fundida
2. Tomar una bombilla nueva
3. Subir por la escalera
4. Girar la bombilla fundida hacia la izquierda hasta soltarla
5. Enroscar la bombilla nueva en el plafón hasta apretarla
6. Bajar de la escalera
7. Fin
Posibilidades para la solución
Razonamiento analógico : Se apoya en el establecimiento de una analogía entre una
situación que resulte familiar y la situación problema. Requiere conocimientos suficientes
de ambas situaciones.
• Lluvia de ideas : Consiste en formular soluciones viables a un problema.
Definir el problema; generar muchas soluciones (sin evaluarlas); decidir los criterios para
estimar las soluciones generadas; y emplear esos criterios para seleccionar la mejor
solución.
Se requiere que no se emitan juicios con respecto a las posibles soluciones hasta
que terminen de formularlas.
• Sistemas de producción : Se basa en la aplicación de una red de secuencias de condición
y acción.
• Pensamiento lateral : Se apoya en el pensamiento creativo, el cual difiere
completamente del pensamiento lineal (lógico). El pensamiento lateral requiere que se
exploren y consideren la mayor cantidad posible de alternativas para solucionar un
problema.
Pasos para resolver un problema
1. COMPRENDER EL PROBLEMA.
• Leer el problema varias veces
• Establecer los datos del problema
• Aclarar lo que se va a resolver (¿Cuál es la pregunta?)
• Precisar el resultado que se desea lograr
• Determinar la incógnita del problema
• Organizar la información
• Agrupar los datos en categorías
• Trazar una figura o diagrama.
Pasos para resolver un problema
2. HACER EL PLAN.
• Escoger y decidir las operaciones a efectuar.
• Eliminar los datos inútiles.
• Descomponer el problema en otros más pequeños.
3. EJECUTAR EL PLAN (Resolver).
• Ejecutar en detalle cada operación.
• Simplificar antes de calcular.
• Realizar un dibujo o diagrama
4. ANALIZAR LA SOLUCIÓN (Revisar).
• Dar una respuesta completa
• Hallar el mismo resultado de otra manera.
• Verificar por apreciación que la respuesta es adecuada.
Fases de la programación
Etapas en el análisis
Características de un algoritmo:

• Preciso (no ambiguo): la instrucción a ejecutar en cada paso queda


determinada perfectamente.
• Determinista: debe comportarse del mismo modo ante las mismas
condiciones. Si se sigue dos veces en el mismo entorno, el resultado obtenido
es el mismo.
• Finito: Tiene fin tras un número determinado de pasos.
Condiciones de un algoritmo
En términos generales, un Algoritmo debe ser:
• Realizable: El proceso algorítmico debe terminar después de una cantidad finita de pasos. Se dice
que un algoritmo es inaplicable cuando se ejecuta con un conjunto de datos iniciales y el proceso
resulta infinito o durante la ejecución se encuentra con un obstáculo insuperable sin arrojar un
resultado.
• Comprensible: Debe ser claro lo que hace, de forma que quien ejecute los pasos (ser humano o
máquina) sepa qué, cómo y cuándo hacerlo. Debe existir un procedimiento que determine el
proceso de ejecución.
• Preciso: El orden de ejecución de las instrucciones debe estar perfectamente indicado. Cuando se
ejecuta varias veces, con los mismos datos iniciales, el resultado debe ser el mismo siempre. La
precisión implica determinismo.
Representación algorítmica
Pseudocódigo:
Usa un lenguaje similar al natural, pero al que se añaden reglas para conseguir
una definición precisa del algoritmo

• Algunas reglas:
• Empieza por la palabra “Inicio” y termina con la palabra “Fin”
• Se escribe una acción por línea
• Se subrayan las palabras clave

14
Representación algorítmica
Diagrama de Flujo (DF):
• Representación gráfica del flujo de control de un algoritmo
• Elementos:

Entrada/
Terminal Proceso
Salida

no Conectores
Decisión Subprograma

si
15
Representación algorítmica
Diagrama de flujo
Pseudocódigo
Inicio

SUMA <- 2
Entorno NUM <- 4
suma, num
SUMA <- SUMA +
Inicio NUM
// Iniciar variables
suma<- 2 SI NUM <- NUM + 2
num <- 4
// Suma de los números
NUM <= 100
repetir
suma <- suma + num NO
num <- num +2 escribir
mientras (num <= 100) SUMA
// Escribir resultado
escribir (suma) Fin
Fin
16
Ejemplo de Problema de ordenamiento
Ejemplo de Recursividad
Calcular: n!

Considera el calculo del factorial recursivamente:

int Fact(int n)
{ if (n < 1) return 1;
Label1: else return n*Fact(n-1);
}
Complejidad de un algoritmo
En el análisis de algoritmos siempre se escogerá un tipo de operación particular que ocurra en el
algoritmo, y se realizará un análisis matemático a fi n de determinar el número de operaciones
necesarias para completar el algoritmo.

Por ejemplo, en todos los algoritmos de ordenamiento debe hacerse la comparación de datos, por lo que
el
número de comparaciones suele emplearse para medir la complejidad temporal de algoritmos de
ordenamiento.

Para medir la complejidad temporal de un algoritmo, es tentador escribir un programa para este
algoritmo y ver qué tan rápido corre.
Esto no es lo apropiado porque hay muchos factores no relacionados con el algoritmo que afectan
el desempeño del programa.
Por ejemplo, la habilidad del programador, el lenguaje usado, el sistema operativo e incluso el
compilador del lenguaje particular, todos estos factores afectan el tiempo necesario para ejecutar el
programa.
Complejidad
• A un conjunto de funciones que comparten un mismo
comportamiento asintótico le denominaremos un orden de
complejidad.
• Habitualmente estos conjuntos se denominan O, existiendo una
infinidad de ellos.
• Para cada uno de estos conjuntos se suele identificar un miembro f(n)
que se utiliza como representante de la clase.
Ejemplos
Conclusiones
• Los algoritmos permiten organizar paso a paso la solución de un
problema.
• Los algoritmos tienen aspectos particulares de acuerdo a la
problemática.
• Los algoritmos se representan a través de gráficos.
Referencias bibliografícas
• Cormen Y. H., Leiserson C. E., Rivest R. L. y Stein C. Introduction to
Algorithms, Third Edition, MIT-Mc Graw Hill, 2009

• Brassard G. y Bratley P. Algorithms, Prentice Hall Internacional. 1988

También podría gustarte