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

¿Cómo ejecutar un programa en C++?
¿Cómo ejecutar un programa en C++?¿Cómo ejecutar un programa en C++?
¿Cómo ejecutar un programa en C++?
Typolis-ejecutando
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
rezzaca
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
Pablo Guerra
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
Nestor Traña
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
neyvajms
 
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
jairofr97
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
Ricardo Quintero
 

La actualidad más candente (20)

Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
Programación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objetoProgramación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objeto
 
Recursividad
RecursividadRecursividad
Recursividad
 
¿Cómo ejecutar un programa en C++?
¿Cómo ejecutar un programa en C++?¿Cómo ejecutar un programa en C++?
¿Cómo ejecutar un programa en C++?
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Cuadro comparativo hilos
Cuadro comparativo hilosCuadro comparativo hilos
Cuadro comparativo hilos
 
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...
 
Omega Up
Omega UpOmega Up
Omega Up
 
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
 
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
FUNDAMENTOS DEL LENGUAJE ENSAMBLADORFUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discos
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Algoritmo , MATEMÁTICA
Algoritmo ,  MATEMÁTICAAlgoritmo ,  MATEMÁTICA
Algoritmo , MATEMÁTICA
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 

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

Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)
luzenith_g
 
algoritmos y fundamentos de programacion
algoritmos y fundamentos de programacionalgoritmos y fundamentos de programacion
algoritmos y fundamentos de programacion
MIKE_INK_RM
 
Analisis numerico axcel quintero
Analisis numerico axcel quinteroAnalisis numerico axcel quintero
Analisis numerico axcel quintero
tareasuft
 
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
Boris Salleg
 

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
 
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
 
Vivi Reinoso
Vivi ReinosoVivi Reinoso
Vivi Reinoso
 

Último

Filo Descartes para selectividad de andalucía
Filo Descartes para selectividad de andalucíaFilo Descartes para selectividad de andalucía
Filo Descartes para selectividad de andalucía
JoaquinMaisanaba
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Demetrio Ccesa Rayme
 
Diseño Universal de Aprendizaje en Nuevos Escenarios JS2 Ccesa007.pdf
Diseño Universal de Aprendizaje en Nuevos Escenarios  JS2  Ccesa007.pdfDiseño Universal de Aprendizaje en Nuevos Escenarios  JS2  Ccesa007.pdf
Diseño Universal de Aprendizaje en Nuevos Escenarios JS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfinforme-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
AndreaTurell
 

Último (20)

Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
 
Presentación de la propuesta de clase.pdf
Presentación de la propuesta de clase.pdfPresentación de la propuesta de clase.pdf
Presentación de la propuesta de clase.pdf
 
sesion de aprendizaje 1 SEC. 13- 17 MAYO 2024 comunicación.pdf
sesion de aprendizaje 1 SEC. 13- 17  MAYO  2024 comunicación.pdfsesion de aprendizaje 1 SEC. 13- 17  MAYO  2024 comunicación.pdf
sesion de aprendizaje 1 SEC. 13- 17 MAYO 2024 comunicación.pdf
 
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLAACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
 
animalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdfanimalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdf
 
PLAN ANUAL DE TUTORIA PARA SEGUNDO AÑO DE SECUNDARIA
PLAN ANUAL DE TUTORIA PARA  SEGUNDO AÑO DE SECUNDARIAPLAN ANUAL DE TUTORIA PARA  SEGUNDO AÑO DE SECUNDARIA
PLAN ANUAL DE TUTORIA PARA SEGUNDO AÑO DE SECUNDARIA
 
ciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemasciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemas
 
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraSanta Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
 
Filo Descartes para selectividad de andalucía
Filo Descartes para selectividad de andalucíaFilo Descartes para selectividad de andalucía
Filo Descartes para selectividad de andalucía
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertitzacióRealitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
 
Planeacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxPlaneacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docx
 
Biografía de Charles Darwin presentación.pptx
Biografía de Charles Darwin presentación.pptxBiografía de Charles Darwin presentación.pptx
Biografía de Charles Darwin presentación.pptx
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
 
Diseño Universal de Aprendizaje en Nuevos Escenarios JS2 Ccesa007.pdf
Diseño Universal de Aprendizaje en Nuevos Escenarios  JS2  Ccesa007.pdfDiseño Universal de Aprendizaje en Nuevos Escenarios  JS2  Ccesa007.pdf
Diseño Universal de Aprendizaje en Nuevos Escenarios JS2 Ccesa007.pdf
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteDiapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
 
Libros del Ministerio de Educación (2023-2024).pdf
Libros del Ministerio de Educación (2023-2024).pdfLibros del Ministerio de Educación (2023-2024).pdf
Libros del Ministerio de Educación (2023-2024).pdf
 
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfinforme-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
 

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