SlideShare uma empresa 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

Mais conteúdo relacionado

Mais procurados

Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Guia de ejercicios_java_resueltos
Guia de ejercicios_java_resueltosGuia de ejercicios_java_resueltos
Guia de ejercicios_java_resueltosDamian Morocho
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Mapa conceptual poo
Mapa conceptual pooMapa conceptual poo
Mapa conceptual poosaulalex2017
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOFredy Olaya
 
Algoritmos y pseudocodigo
Algoritmos y pseudocodigoAlgoritmos y pseudocodigo
Algoritmos y pseudocodigomatteo_ibarguen
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Funciones
FuncionesFunciones
Funcionesadark
 

Mais procurados (20)

Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Guia de ejercicios_java_resueltos
Guia de ejercicios_java_resueltosGuia de ejercicios_java_resueltos
Guia de ejercicios_java_resueltos
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Mapa conceptual poo
Mapa conceptual pooMapa conceptual poo
Mapa conceptual poo
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
 
Algoritmos y pseudocodigo
Algoritmos y pseudocodigoAlgoritmos y pseudocodigo
Algoritmos y pseudocodigo
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Funciones
FuncionesFunciones
Funciones
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 

Destaque

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
 

Destaque (13)

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
 

Semelhante a Algoritmo

Semelhante 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
 
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

MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 

Último (20)

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
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 

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