SlideShare una empresa de Scribd logo
1 de 26
   Un algoritmo (del griego y latín, dixit
    algorithmus y este a su vez del matemático
    persa Al-Juarismi[1] ) es un conjunto preescrito
    de instrucciones o reglas bien definidas,
    ordenadas y finitas que permite realizar una
    actividad mediante pasos sucesivos que no
    generen dudas a quien deba realizar dicha
    actividad.[2] Dados un estado inicial y una
    entrada, siguiendo los pasos sucesivos se llega
    a un estado final y se obtiene una solución. Los
    algoritmos son el objeto de estudio de la
    algoritmia.[1]
   Un algoritmo se puede concebir como
    una función que transforma los datos de
    un problema (entrada) en los datos de
    una solución (salida). Más aun, los datos
    se pueden representar a su vez como
    secuencias de bits, y en general, de
    símbolos cualesquiera.[1] [9] [11] Como
    cada secuencia de bits representa a un
    número natural (véase Sistema binario),
    entonces los algoritmos son en esencia
    funciones de los números naturales en
    los números naturales que sí se pueden
    calcular. Es decir que todo algoritmo
    calcula una función donde cada número
    natural es la codificación de un
    problema o de una solución.
   Como medida de la eficiencia de un algoritmo, se suelen estudiar
    los recursos (memoria y tiempo) que consume el algoritmo. El
    análisis de algoritmos se ha desarrollado para obtener valores que
    de alguna forma indiquen (o especifiquen) la evolución del gasto
    de tiempo y memoria en función del tamaño de los valores de
    entrada.

   El análisis y estudio de los algoritmos es una disciplina de las
    ciencias de la computación y, en la mayoría de los casos, su
    estudio es completamente abstracto sin usar ningún tipo de
    lenguaje de programación ni cualquier otra implementación; por
    eso, en ese sentido, comparte las características de las disciplinas
    matemáticas. Así, el análisis de los algoritmos se centra en los
    principios básicos del algoritmo, no en los de la implementación
    particular. Una forma de plasmar (o algunas veces "codificar") un
    algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy
    simple tal como Lexico, cuyos códigos pueden estar en el idioma
    del programador.
   Dado un conjunto finito de números, se tiene el problema de
    encontrar el número más grande. Sin pérdida de generalidad se
    puede asumir que dicho conjunto no es vacío y que sus
    elementos están numerados como .

   Es decir, dado un conjunto se pide encontrar tal que para todo
    elemento que pertenece al conjunto .

   Para encontrar el elemento máximo, se asume que el primer
    elemento () es el máximo; luego, se recorre el conjunto y se
    compara cada valor con el valor del máximo número
    encontrado hasta ese momento. En el caso que un elemento
    sea mayor que el máximo, se asigna su valor al máximo.
    Cuando se termina de recorrer la lista, el máximo número que
    se ha encontrado es el máximo de todo el conjunto.
Sobre la notación:

"←" representa una asignación: ←
significa que la variable toma el valor de ;
"devolver" termina el algoritmo y devuelve
el valor a su derecha (en este caso, el
máximo de ).
   Un algoritmo voraz (también conocido como
    ávido, devorador o goloso) es aquel que, para
    resolver un determinado problema, sigue una
    heurística consistente en elegir la opción
    óptima en cada paso local con la esperanza de
    llegar a una solución general óptima. Este
    esquema algorítmico es el que menos
    dificultades plantea a la hora de diseñar y
    comprobar su funcionamiento. Normalmente
    se aplica a los problemas de optimización.
 El conjunto C de candidatos, entradas del problema.
 Función solución. Comprueba, en cada paso, si el subconjunto
  actual de candidatos elegidos forma una solución (no importa
  si es óptima o no lo es).
 Función de selección. Informa de cuál es el elemento más
  prometedor para completar la solución. Éste no puede haber
  sido escogido con anterioridad. Cada elemento es considerado
  una sola vez. Luego, puede ser rechazado o aceptado y
  pertenecerá a .
 Función de factibilidad. Informa si a partir de un conjunto se
  puede llegar a una solución. Lo aplicaremos al conjunto de
  seleccionados unido con el elemento más prometedor C/S.
 Función objetivo. Es aquella que queremos maximizar o
  minimizar, el núcleo del problema.
   En las ciencias de la computación, un algoritmo paralelo,
    en oposición a los algoritmos clásicos o algoritmos
    secuenciales, es un algoritmo que puede ser ejecutado
    por partes en el mismo instante de tiempo por varias
    unidades de procesamiento, para finalmente unir todas
    las partes y obtener el resultado correcto.

   Algunos algoritmos son fácilmente divisibles en partes;
    como por ejemplo, un algoritmo que calcule todos los
    números primos entre 1 y 100, donde se podría dividir los
    números originales en subconjuntos y calcular los primos
    para cada uno de los subconjuntos de los números
    originales; al final, uniríamos todos los resultados y
    tendríamos la solución final del algoritmo. Otro ejemplo,
    puede ser el cálculo de Pi en paralelo.
   Un algoritmo probabilista (o probabilístico) es un algoritmo que basa
    su resultado en la toma de algunas decisiones al azar, de tal forma
    que, en promedio, obtiene una buena solución al problema planteado
    para cualquier distribución de los datos de entrada. Es decir, al
    contrario que un algoritmo determinista, a partir de unos mismos
    datos se pueden obtener distintas soluciones y, en algunos casos,
    soluciones erróneas.

   Existen varios tipos de algoritmos probabilísticos dependiendo de su
    funcionamiento, pudiéndose distinguir:

 Algoritmos numéricos, que proporcionan una solución aproximada del
  problema.
 Algoritmos de Montecarlo, que pueden dar la respuesta correcta o
  respuesta erróneas (con probabilidad baja).
 Algoritmos de Las Vegas, que nunca dan una respuesta incorrecta: o
  bien dan la respuesta correcta o informan del fallo.
   Se puede optar por la elección aleatoria si se tiene un problema cuya
    elección óptima es demasiado costosa frente a la decisión aleatoria.
    Un algoritmo probabilista puede comportarse de distinta forma
    aplicando la misma entrada.

   A un algoritmo determinista nunca se le permite que no termine:
    hacer una división por 0, entrar en un bucle infinito, etc.
   Si existe más de una solución para unos datos dados, un algoritmo
    determinista siempre encuentra la misma solución (a no ser que se
    programe para encontrar varias o todas).
   Un algoritmo probabilista puede encontrar soluciones diferentes
    ejecutándose varias veces con los mismos datos.
   A un algoritmo determinista no se le permite que calcule una solución
    incorrecta para ningún dato.
   Un algoritmo probabilista puede equivocarse siempre que esto ocurra
    con una probabilidad pequeña para cada dato de entrada.
   Algoritmo de Montecarlo:

   A veces da una solución incorrecta.
   Con una alta probabilidad encuentra una solución correcta sea cual sea la
    entrada.
   Definición: Sea p un número real tal que 0.5<p<1.Un algoritmo de Montecarlo
    es p–correcto si:

   Devuelve una solución correcta con probabilidad mayor o igual que p,
    cualesquiera que sean los datos de entrada.
   A veces, p dependerá del tamaño de la entrada, pero nunca de los datos de la
    entrada en sí.
   Un ejemplo de algoritmo de Montecarlo (el más conocido): decidir si un
    número impar es primo o compuesto.

   Ningún algoritmo determinista conocido puede responder en un tiempo
    “razonable” si el número tiene cientos de cifras.
   La utilización de primos de cientos de cifras es fundamental en criptografía
   Un algoritmo de Las Vegas nunca da una solución falsa.

 Toma decisiones al azar para encontrar una solución antes que un
  algoritmo determinista.
 Si no encuentra solución lo admite.
 Hay dos tipos de algoritmos de Las Vegas, según la posibilidad de no
  encontrar una solución:

 Los que siempre encuentran una solución correcta, aunque las
  decisiones al azar no sean afortunadas y la eficiencia disminuya.
 Los que a veces, debido a decisiones desafortunadas, no encuentran
  una solución.
 Tipo a: Algoritmos de Sherwood

   Existe una solución determinista que es mucho más rápida en media
    que en el peor caso.
   Saltar a: navegación, búsqueda En ciencias de la computación,
    un algoritmo determinista es un algoritmo que, en términos
    informales, es completamente predictivo si se conocen sus
    entradas. Dicho de otra forma, si se conocen las entradas del
    algoritmo siempre producirá la misma salida, y la máquina
    interna pasará por la misma secuencia de estados. Este tipo de
    algoritmos ha sido el más estudiado durante la historia y por lo
    tanto resulta ser el tipo más familiar de los algoritmos, así
    como el más práctico ya que puede ejecutarse en las máquinas
    eficientemente.

   Un modelo simple de algoritmo determinista es la función
    matemática, pues esta extrae siempre la misma salida para
    una entrada dada. No obstante un algoritmo describe
    explícitamente cómo la salida se obtiene de la entrada,
    mientras que las funciones definen implícitamente su salida.
   En Ciencias de la computación, un algoritmo no
    determinístico es un algoritmo que con la misma
    entrada ofrece muchos posibles resultados. No se
    puede saber de antemano cuál será el resultado de la
    ejecución de un algoritmo no determinístico. En la
    teoría estándar de la computación la definición de
    algoritmo deja en claro que de por sí un algoritmo es
    determinístico.

   Sin embargo, los algoritmos no determinísticos
    emplean modelos de computación tales como la
    Máquina de Turing probabilística, que no son
    determinísticos. Se considera entonces que los
    algoritmos no determinísticos son un caso especial.
 Los algoritmos pueden ser expresados de muchas maneras,
  incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y
  lenguajes de programación entre otros. Las descripciones en lenguaje
  natural tienden a ser ambiguas y extensas..
 La descripción de un algoritmo usualmente se hace en tres niveles:

 1.Descripción de alto nivel. Se establece el problema, se selecciona un
  modelo matemático y se explica el algoritmo de manera verbal,
  posiblemente con ilustraciones y omitiendo detalles.
 2.Descripción formal. Se usa pseudocódigo para describir la secuencia
  de pasos que encuentran la solución.
 3.Implementación. Se muestra el algoritmo expresado en un lenguaje
  de programación específico o algún objeto capaz de llevar a cabo
  instrucciones.
 También es posible incluir un teorema que demuestre que el algoritmo
  es correcto, un análisis de complejidad o ambos.
Los diagramas de flujo son descripciones gráficas de
algoritmos; usan símbolos conectados con flechas para
indicar la secuencia de instrucciones y están regidos por
ISO. Los diagramas de flujo son usados para
representar algoritmos pequeños, ya que abarcan
mucho espacio y su construcción es laboriosa. Por su
facilidad de lectura son usados como introducción a los
algoritmos, descripción de un lenguaje y descripción de
procesos a personas ajenas a la computación.
 Los algoritmos pueden ser expresados de muchas
maneras, incluyendo al lenguaje natural, pseudocódigo,
diagramas de flujo y lenguajes de programación entre
otros. Las descripciones en lenguaje natural tienden a
ser ambiguas y extensas.
   El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso)
    es una descripción de alto nivel de un algoritmo que emplea una
    mezcla de lenguaje natural con algunas convenciones
    sintácticas propias de lenguajes de programación, como
    asignaciones, ciclos y condicionales, aunque no está regido por
    ningún estándar. Es utilizado para describir algoritmos en libros
    y publicaciones científicas, y como producto intermedio durante
    el desarrollo de un algoritmo, como los |diagramas de flujo,
    aunque presentan una ventaja importante sobre estos, y es que
    los algoritmos descritos en pseudocódigo requieren menos
    espacio para representar instrucciones complejas.El
    pseudocódigo está pensado para facilitar a las personas el
    entendimiento de un algoritmo, y por lo tanto puede omitir
    detalles irrelevantes que son necesarios en una implementación.
   La teoría de autómatas y la teoría de funciones
    recursivas proveen modelos matemáticos que
    formalizan el concepto de algoritmo. Los
    modelos más comunes son la máquina de
    Turing, máquina de registro y funciones μ-
    recursivas. Estos modelos son tan precisos
    como un lenguaje máquina, careciendo de
    expresiones coloquiales o ambigüedad, sin
    embargo se mantienen independientes de
    cualquier computadora y de cualquier
    implementación.
   Muchos algoritmos son ideados para
    implementarse en un programa. Sin embargo,
    los algoritmos pueden ser implementados en
    otros medios, como una red neuronal, un
    circuito eléctrico o un aparato mecánico y
    eléctrico. Algunos algoritmos inclusive se
    diseñan especialmente para implementarse
    usando lápiz y papel. El algoritmo de
    multiplicación tradicional, el algoritmo de
    Euclides, la criba de Eratóstenes y muchas
    formas de resolver la raíz cuadrada son sólo
    algunos ejemplos
   Círculo: Procedimiento estandarizado.
   Cuadrado: Proceso de control.
   Línea ininterrumpida: Flujo de información vía formulario o documentación en soporte de
    papel escrito.
   Línea interrumpida: Flujo de información vía formulario digital.
   Rectángulo: Formulario o documentación. Se grafica con un doble de ancho que su altura.
   Rectángulo Pequeño: Valor o medio de pago (cheque, pagaré, etcétera).Se grafica con un
    cuádruple de ancho que su altura, siendo su ancho igual al de los formularios.
   Triángulo (base inferior): Archivo definitivo.
   Triángulo Invertido (base superior): Archivo Transitorio.
   Semi-óvalo: Demora.
   Rombo: División entre opciones.
   Trapezoide: Carga de datos al sistema.
   Elipsoide: Acceso por pantalla.
   Hexágono: Proceso no representado.
   Pentágono: Conector.
   Cruz de Diagonales: Destrucción de Formularios
Algoritmo
Algoritmo

Más contenido relacionado

La actualidad más candente

Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Raquel Nuñez
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm AnalysisMary Margarat
 
Entendiendo estructura de datos
Entendiendo estructura de datosEntendiendo estructura de datos
Entendiendo estructura de datosyacomas
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
memory allocation by Novodita
memory allocation by Novoditamemory allocation by Novodita
memory allocation by NovoditaSHRISTEERAI1
 
TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++Idalia Tristan
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlLic_Vera
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbujaOscar Mora
 
5.2 divide and conquer
5.2 divide and conquer5.2 divide and conquer
5.2 divide and conquerKrish_ver2
 
Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Sarai Gotopo
 

La actualidad más candente (20)

Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 
Introduction to data structure and algorithms
Introduction to data structure and algorithmsIntroduction to data structure and algorithms
Introduction to data structure and algorithms
 
Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm Analysis
 
Entendiendo estructura de datos
Entendiendo estructura de datosEntendiendo estructura de datos
Entendiendo estructura de datos
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Sorting Algorithms
Sorting AlgorithmsSorting Algorithms
Sorting Algorithms
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
memory allocation by Novodita
memory allocation by Novoditamemory allocation by Novodita
memory allocation by Novodita
 
TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++
 
Basic Input and Output
Basic Input and OutputBasic Input and Output
Basic Input and Output
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Colas
ColasColas
Colas
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
5.2 divide and conquer
5.2 divide and conquer5.2 divide and conquer
5.2 divide and conquer
 
Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)
 
Quick sort
Quick sortQuick sort
Quick sort
 
Por qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadoresPor qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadores
 

Destacado

Algoritmo Paralelo
Algoritmo ParaleloAlgoritmo Paralelo
Algoritmo Paralelojccapa99
 
Energía y trabajo
Energía y trabajoEnergía y trabajo
Energía y trabajoPilay1256
 
Algoritmos y sus características
Algoritmos y sus característicasAlgoritmos y sus características
Algoritmos y sus característicasbeyiima
 
Ejemplos de algoritmos
Ejemplos de algoritmosEjemplos de algoritmos
Ejemplos de algoritmosGabriel Diaz
 
Presentacion algoritmos
Presentacion algoritmosPresentacion algoritmos
Presentacion algoritmosaralylopez88
 
diagrama de flujo
diagrama de flujodiagrama de flujo
diagrama de flujosucredavid
 
La pirámide invertida
La pirámide invertidaLa pirámide invertida
La pirámide invertidaDaniela Vega
 
Ejercicios de algoritmos
Ejercicios de algoritmosEjercicios de algoritmos
Ejercicios de algoritmosjhonshebax
 
Características de un algoritmo
Características de un algoritmoCaracterísticas de un algoritmo
Características de un algoritmoroxanaparra28
 
Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.luismarlmg
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de AlgoritmosPepe Xdsasda
 

Destacado (14)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo Paralelo
Algoritmo ParaleloAlgoritmo Paralelo
Algoritmo Paralelo
 
Energía y trabajo
Energía y trabajoEnergía y trabajo
Energía y trabajo
 
Algoritmos y sus características
Algoritmos y sus característicasAlgoritmos y sus características
Algoritmos y sus características
 
Ejemplos de algoritmos
Ejemplos de algoritmosEjemplos de algoritmos
Ejemplos de algoritmos
 
Presentacion algoritmos
Presentacion algoritmosPresentacion algoritmos
Presentacion algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
diagrama de flujo
diagrama de flujodiagrama de flujo
diagrama de flujo
 
La pirámide invertida
La pirámide invertidaLa pirámide invertida
La pirámide invertida
 
Ejercicios de algoritmos
Ejercicios de algoritmosEjercicios de algoritmos
Ejercicios de algoritmos
 
Características de un algoritmo
Características de un algoritmoCaracterísticas de un algoritmo
Características de un algoritmo
 
Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de Algoritmos
 

Similar a Algoritmo

Similar a Algoritmo (20)

Jumbo cristobal
Jumbo cristobalJumbo cristobal
Jumbo cristobal
 
Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)
 
Algoritmica terminado
Algoritmica terminadoAlgoritmica terminado
Algoritmica terminado
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Resumen de algoritmo
Resumen de algoritmoResumen de algoritmo
Resumen de algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Analisis y diseño de algoritmo
Analisis y diseño de algoritmoAnalisis y diseño de algoritmo
Analisis y diseño de algoritmo
 
Yaritza columba
Yaritza columbaYaritza columba
Yaritza columba
 
algoritmos y fundamentos de programacion
algoritmos y fundamentos de programacionalgoritmos y fundamentos de programacion
algoritmos y fundamentos de programacion
 
Pasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmoPasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Revista Algoritmos
Revista AlgoritmosRevista Algoritmos
Revista Algoritmos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos
 
Analisis numerico axcel quintero
Analisis numerico axcel quinteroAnalisis numerico axcel quintero
Analisis numerico axcel quintero
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
 

Último

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 

Último (20)

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 

Algoritmo

  • 1.
  • 2. Un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi[1] ) es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.[2] Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.[1]
  • 3. Un algoritmo se puede concebir como una función que transforma los datos de un problema (entrada) en los datos de una solución (salida). Más aun, los datos se pueden representar a su vez como secuencias de bits, y en general, de símbolos cualesquiera.[1] [9] [11] Como cada secuencia de bits representa a un número natural (véase Sistema binario), entonces los algoritmos son en esencia funciones de los números naturales en los números naturales que sí se pueden calcular. Es decir que todo algoritmo calcula una función donde cada número natural es la codificación de un problema o de una solución.
  • 4. Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.  El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Lexico, cuyos códigos pueden estar en el idioma del programador.
  • 5. Dado un conjunto finito de números, se tiene el problema de encontrar el número más grande. Sin pérdida de generalidad se puede asumir que dicho conjunto no es vacío y que sus elementos están numerados como .  Es decir, dado un conjunto se pide encontrar tal que para todo elemento que pertenece al conjunto .  Para encontrar el elemento máximo, se asume que el primer elemento () es el máximo; luego, se recorre el conjunto y se compara cada valor con el valor del máximo número encontrado hasta ese momento. En el caso que un elemento sea mayor que el máximo, se asigna su valor al máximo. Cuando se termina de recorrer la lista, el máximo número que se ha encontrado es el máximo de todo el conjunto.
  • 6. Sobre la notación: "←" representa una asignación: ← significa que la variable toma el valor de ; "devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el máximo de ).
  • 7. Un algoritmo voraz (también conocido como ávido, devorador o goloso) es aquel que, para resolver un determinado problema, sigue una heurística consistente en elegir la opción óptima en cada paso local con la esperanza de llegar a una solución general óptima. Este esquema algorítmico es el que menos dificultades plantea a la hora de diseñar y comprobar su funcionamiento. Normalmente se aplica a los problemas de optimización.
  • 8.  El conjunto C de candidatos, entradas del problema.  Función solución. Comprueba, en cada paso, si el subconjunto actual de candidatos elegidos forma una solución (no importa si es óptima o no lo es).  Función de selección. Informa de cuál es el elemento más prometedor para completar la solución. Éste no puede haber sido escogido con anterioridad. Cada elemento es considerado una sola vez. Luego, puede ser rechazado o aceptado y pertenecerá a .  Función de factibilidad. Informa si a partir de un conjunto se puede llegar a una solución. Lo aplicaremos al conjunto de seleccionados unido con el elemento más prometedor C/S.  Función objetivo. Es aquella que queremos maximizar o minimizar, el núcleo del problema.
  • 9. En las ciencias de la computación, un algoritmo paralelo, en oposición a los algoritmos clásicos o algoritmos secuenciales, es un algoritmo que puede ser ejecutado por partes en el mismo instante de tiempo por varias unidades de procesamiento, para finalmente unir todas las partes y obtener el resultado correcto.  Algunos algoritmos son fácilmente divisibles en partes; como por ejemplo, un algoritmo que calcule todos los números primos entre 1 y 100, donde se podría dividir los números originales en subconjuntos y calcular los primos para cada uno de los subconjuntos de los números originales; al final, uniríamos todos los resultados y tendríamos la solución final del algoritmo. Otro ejemplo, puede ser el cálculo de Pi en paralelo.
  • 10. Un algoritmo probabilista (o probabilístico) es un algoritmo que basa su resultado en la toma de algunas decisiones al azar, de tal forma que, en promedio, obtiene una buena solución al problema planteado para cualquier distribución de los datos de entrada. Es decir, al contrario que un algoritmo determinista, a partir de unos mismos datos se pueden obtener distintas soluciones y, en algunos casos, soluciones erróneas.  Existen varios tipos de algoritmos probabilísticos dependiendo de su funcionamiento, pudiéndose distinguir:  Algoritmos numéricos, que proporcionan una solución aproximada del problema.  Algoritmos de Montecarlo, que pueden dar la respuesta correcta o respuesta erróneas (con probabilidad baja).  Algoritmos de Las Vegas, que nunca dan una respuesta incorrecta: o bien dan la respuesta correcta o informan del fallo.
  • 11. Se puede optar por la elección aleatoria si se tiene un problema cuya elección óptima es demasiado costosa frente a la decisión aleatoria. Un algoritmo probabilista puede comportarse de distinta forma aplicando la misma entrada.  A un algoritmo determinista nunca se le permite que no termine: hacer una división por 0, entrar en un bucle infinito, etc.  Si existe más de una solución para unos datos dados, un algoritmo determinista siempre encuentra la misma solución (a no ser que se programe para encontrar varias o todas).  Un algoritmo probabilista puede encontrar soluciones diferentes ejecutándose varias veces con los mismos datos.  A un algoritmo determinista no se le permite que calcule una solución incorrecta para ningún dato.  Un algoritmo probabilista puede equivocarse siempre que esto ocurra con una probabilidad pequeña para cada dato de entrada.
  • 12. Algoritmo de Montecarlo:  A veces da una solución incorrecta.  Con una alta probabilidad encuentra una solución correcta sea cual sea la entrada.  Definición: Sea p un número real tal que 0.5<p<1.Un algoritmo de Montecarlo es p–correcto si:  Devuelve una solución correcta con probabilidad mayor o igual que p, cualesquiera que sean los datos de entrada.  A veces, p dependerá del tamaño de la entrada, pero nunca de los datos de la entrada en sí.  Un ejemplo de algoritmo de Montecarlo (el más conocido): decidir si un número impar es primo o compuesto.  Ningún algoritmo determinista conocido puede responder en un tiempo “razonable” si el número tiene cientos de cifras.  La utilización de primos de cientos de cifras es fundamental en criptografía
  • 13. Un algoritmo de Las Vegas nunca da una solución falsa.  Toma decisiones al azar para encontrar una solución antes que un algoritmo determinista.  Si no encuentra solución lo admite.  Hay dos tipos de algoritmos de Las Vegas, según la posibilidad de no encontrar una solución:  Los que siempre encuentran una solución correcta, aunque las decisiones al azar no sean afortunadas y la eficiencia disminuya.  Los que a veces, debido a decisiones desafortunadas, no encuentran una solución.  Tipo a: Algoritmos de Sherwood  Existe una solución determinista que es mucho más rápida en media que en el peor caso.
  • 14. Saltar a: navegación, búsqueda En ciencias de la computación, un algoritmo determinista es un algoritmo que, en términos informales, es completamente predictivo si se conocen sus entradas. Dicho de otra forma, si se conocen las entradas del algoritmo siempre producirá la misma salida, y la máquina interna pasará por la misma secuencia de estados. Este tipo de algoritmos ha sido el más estudiado durante la historia y por lo tanto resulta ser el tipo más familiar de los algoritmos, así como el más práctico ya que puede ejecutarse en las máquinas eficientemente.  Un modelo simple de algoritmo determinista es la función matemática, pues esta extrae siempre la misma salida para una entrada dada. No obstante un algoritmo describe explícitamente cómo la salida se obtiene de la entrada, mientras que las funciones definen implícitamente su salida.
  • 15. En Ciencias de la computación, un algoritmo no determinístico es un algoritmo que con la misma entrada ofrece muchos posibles resultados. No se puede saber de antemano cuál será el resultado de la ejecución de un algoritmo no determinístico. En la teoría estándar de la computación la definición de algoritmo deja en claro que de por sí un algoritmo es determinístico.  Sin embargo, los algoritmos no determinísticos emplean modelos de computación tales como la Máquina de Turing probabilística, que no son determinísticos. Se considera entonces que los algoritmos no determinísticos son un caso especial.
  • 16.
  • 17.
  • 18.  Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas..  La descripción de un algoritmo usualmente se hace en tres niveles:  1.Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.  2.Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.  3.Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.  También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
  • 19. Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO. Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación. Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.
  • 20.
  • 21. El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los |diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación.
  • 22. La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μ- recursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación.
  • 23. Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos
  • 24. Círculo: Procedimiento estandarizado.  Cuadrado: Proceso de control.  Línea ininterrumpida: Flujo de información vía formulario o documentación en soporte de papel escrito.  Línea interrumpida: Flujo de información vía formulario digital.  Rectángulo: Formulario o documentación. Se grafica con un doble de ancho que su altura.  Rectángulo Pequeño: Valor o medio de pago (cheque, pagaré, etcétera).Se grafica con un cuádruple de ancho que su altura, siendo su ancho igual al de los formularios.  Triángulo (base inferior): Archivo definitivo.  Triángulo Invertido (base superior): Archivo Transitorio.  Semi-óvalo: Demora.  Rombo: División entre opciones.  Trapezoide: Carga de datos al sistema.  Elipsoide: Acceso por pantalla.  Hexágono: Proceso no representado.  Pentágono: Conector.  Cruz de Diagonales: Destrucción de Formularios