ALGORITMO

Page 1

UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA PARACENTRAL LICENCIATURA EN MATEMÁTICA PLAN ESPECIAL

ASIGNATURA: DIDÁCTICA DE LA ARITMÉTICA DOCENTE: LICDA. VERÓNICA ELIZABETH HERNÁNDEZ ORELLANA ESTUDIANTES: RAÚL ERNESTO ALVARADO DÍAZ

WILLIAMS JOSUÉ ÁVILA BORJA YANILL SARAÍ DEL CID VELÁSQUEZ JUNIO 2021


INTRODUCCIÓN Los algoritmos son parte fundamental en el desarrollo de problemas matemáticos dado que establecen una secuencia lógica que permita dar solución a problemas; así como en una receta de cocina se sigue una serie de pasos para su creación, los algoritmos son un conjunto ordenado y finito de pasos para determinar la solución a un problema. En el presente trabajo se muestra una investigación detalla correspondiente al tema de ALGORITMOS, partiendo de su definición, así como también se muestra su clasificación y tipos de lenguaje algorítmico; se analizan los algoritmos que mayor relevancia han tenido a lo largo de la historia y como estos han facilitado la solución a diversos problemas matemáticos a través de las técnicas de algoritmos.

2


OBJETIVOS Objetivo general: Investigar las características, clasificación y composición de los algoritmos que permitan dar solución a situaciones problemáticas.

Objetivos específicos: Analizar los algoritmos matemáticos mas importantes que se han desarrollado a lo largo de la historia.

Solucionar problemas haciendo uso de los conceptos y técnicas de algoritmo.

3


ALGORITMO DEFINICIÓN DE ALGORITMO Un algoritmo es un método paso a paso para resolver algunos problemas. Los enfoques de este tipo para resolver problemas no son novedad; de hecho, la palabra “algoritmo” se deriva del nombre del matemático persa del siglo IX, al-Khowārizmī. En la actualidad, “algoritmo” suele referirse a una solución ejecutable por una computadora. Los algoritmos nos permiten ejecutar una acción o resolver un problema mediante una serie de instrucciones definidas, ordenadas y finitas. Así, dado un estado inicial y una entrada, y siguiendo los sucesivos pasos indicados, se llega al estado final y se obtiene una solución.

CARACTERISTICAS DE LOS ALGORITMOS Por lo general, los algoritmos tienen las siguientes características: ➢ Entrada. El algoritmo recibe datos de entrada. ➢ Salida. El algoritmo produce una salida. ➢ Precisión. Los pasos se establecen con precisión. ➢ Determinismo. Los resultados intermedios de cada paso de ejecución son únicos y están determinados sólo por las entradas y los resultados de los pasos anteriores. ➢ Carácter finito. El algoritmo termina; es decir, se detiene después de ejecutar un número finito de instrucciones. ➢ Corrección. La salida producida por el algoritmo es correcta; es decir, el algoritmo resuelve el problema sin errores. ➢ Generalidad. El algoritmo se aplica a un conjunto de entradas.

4


CLASIFICACIÓN DE LOS ALGORITMOS ➢ Algoritmo determinista: en cada paso del algoritmo se determina de forma única el siguiente paso. ➢ Algoritmo no determinista: deben decidir en cada paso de la ejecución entre varias alternativas y agotarlas todas antes de encontrar la solución.

TIPOS DE ALGORITMOS SEGÚN SU SISTEMA DE SIGNOS. Alberga algoritmos verbales, matemáticos y computacionales. •

ALGORITMOS CUALITATIVOS. Son instrucciones paso a paso que se dan de forma oral o escrita, como las recetas de cocina.

ALGORITMOS CUANTITATIVOS. Al contrario del anterior, este se basa en instrucciones numéricas, especialmente para encontrar el resultado de algún cálculo o ecuación.

ALGORITMOS COMPUTACIONALES. Son algoritmos complejos, por ende, deben ser realizados a través de una computadora y dan como resultado un algoritmo cuantitativo optimizado.

ALGORITMOS NO COMPUTACIONALES. Son algoritmos manuales, que no necesitan la ayuda de una máquina.

SEGÚN SU FUNCIÓN. Son algoritmos que ayudan rentabilizar un sistema económico dentro de un comercio. •

ALGORITMO DE MARCAJE. Este algoritmo estudia al cliente, dependiendo de las actitudes que presenta y crea un sistema dinámico para establecer el precio de los productos. También

5


estudia las probabilidades de ganancia, cuando se decide lanzar una oferta o rebajas. •

PROGRAMACIÓN DINÁMICA. El algoritmo a base de una programación dinámica. Se ocupa de resolver problemas en colmena. Esto se refiere a la existencia de una dificultad grande que por dentro tiene diversas complicaciones. Lo que hace este sistema es desglosarlas e ir resolviéndolas por separado y así disminuir el inconveniente, hasta llegar a la solución completa.

ALGORITMOS DE VUELTA ATRÁS. Es usado para los estudios de impacto en los mercados, tráfico, competencias, sociedades, operaciones y precios. Básicamente usa como técnica la observación y el análisis.

ALGORITMOS DE ORDENAMIENTO. Son instrucciones que enumeran los elementos. Es un algoritmo estricto donde no se puede saltar de un número a otro, porque el resultado final puede ser diferente al esperado.

ALGORITMOS DE BÚSQUEDA. Se encarga de seleccionar desde una data, elementos específicos que cumplan con un perfil establecido.

ALGORITMOS DE ENCANTAMIENTO. Son pasos enlazados, para transmitir una información al público. Se basa en teorías comunicacionales adaptativas y estáticas, como la aguja hipodérmica. Así la audiencia recibe pasivamente el mensaje y se ajusta a la circunstancia, llegando al punto de volverse mecánico.

SEGÚN LA ESTRATEGIA. Son algoritmos técnicos, que antes de implementarse pasan por un estudio estratégico. •

ALGORITMOS PROBABILÍSTICOS. Son algoritmos aleatorios que dependen de una probabilidad o hipótesis. En algunos casos el uso 6


surge naturalmente, como las planificaciones a futuro. En este caso no se requiere de grandes conocimientos, ni operaciones matemáticas. Claro está que se usa solo para estimar una probabilidad cierta o incierta, lo cual significa que este algoritmo siempre presentará un porcentaje como margen de error. •

ALGORITMOS COTIDIANOS. Es el algoritmo más simple y también el más usado. Pues, se basa en la cotidianidad de las personas y en su rutina diaria. Empieza desde que se despiertan, cepillan, comen, trabajan y termina al acostarse.

ALGORITMOS HEURÍSTICOS. Son algoritmos aproximados, pero sin precisión. Es usado cuando no se encuentra alternativa por las vías normales y el algoritmo heurístico trata de dar rápidamente una solución.

ALGORITMO DE ESCALADA. Es un algoritmo descendiente, que inicia con soluciones insatisfactorias y a medida que los errores se corrigen, va escalando hasta llegar al resultado correcto.

ALGORITMO VORAZ. Se aplica en problemas de optimización, mediante soluciones voraces. Es usado a través de decisiones lógicas y analiza cada paso como único, para obtener un resultado global. En este algoritmo se debe tener sumo cuidado, porque luego de implementar un paso no se puede regresar o corregir. Es de esos que cambian el futuro sin poder devolver el tiempo.

ALGORITMO DETERMINISTA. Es predictivo y su frecuencia es lineal. Ayuda a determinar el máximo común divisor entre dos o más números.

TIPOS DE LENGUAJE ALGORÍTMICO Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. 7


La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera: Lenguaje Natural. Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utilizan términos especializados de una determinada ciencia, profesión o grupo. Lenguaje de Diagrama de Flujo. Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo, pero requiere de etapas posteriores para implementarse en un sistema de cómputo. Lenguaje Natural de Programación. Son aquellos que están orientados a la solución de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboración de fórmulas o métodos científicos. Lenguaje de Programación de Algoritmos. Es aquél que se utiliza para introducir en la computadora un algoritmo específico. Se les conoce también como Lenguaje de Programación. Lenguaje de Programación: Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema.

8


Los lenguajes de programación pueden clasificarse por diversos criterios, siendo el más común su nivel de semejanza con el lenguaje natural, y su capacidad de manejo de niveles internos de la máquina.

TÉCNICAS DE ALGORITMOS ❖ Algoritmos Voraces. Suelen utilizarse en problemas de optimización. 

Algoritmos que implementan una búsqueda miope. Toman decisiones de acuerdo a la información que tienen en el momento.

❖ Divide y Vencerás. Técnica que consiste en dividir un problema en subproblemas más pequeños, para combinar los resultados parciales para obtener el resultado final. 

Más sencillo de resolver casos más pequeños.

Para mayor eficiencia, se busca que los subproblemas generados tengan una dimensión similar.

Se debe verificar que la solución del problema original puede obtenerse a través de soluciones parciales.

❖ Programación Dinámica. Surge como respuesta para evitar la duplicidad de cálculos operaciones. 

Cuando se resuelve un problema a través de subproblemas, es probable que dichos subproblemas tengas operaciones comunes entre sí (no son independientes).

La programación dinámica consiste en identificar y guardar los resultados de los cálculos comunes para su uso posterior.

❖ Vuelta Atrás (Backtracking). Técnica ampliamente utilizada para resolver problemas a través de una búsqueda exhaustiva.

9


Proporciona un método sistemático de generar todas las posibles soluciones.

A partir de una solución parcial de tamaño “k”, se genera una nueva expansión de tamaño “k+1” (a partir de una expansión).

ALGORITMOS MATEMÁTICOS MÁS IMPORTANTES DE LA HISTORIA ALGORITMO DE DIJKSTRA. También llamado algoritmo de Caminos Mínimos, es un algoritmo que genera el camino más corto en un Grafo dirigido ponderado. Resuelve el problema en un tiempo menor, pero requiere que los pesos de las aristas no sean negativos. ALGORITMO DE EUCLIDES En Elementos, Euclides explica que el máximo común divisor de dos números se puede encontrar dividiendo el número mayor por el número menor. Si la división es exacta, el MCD es el número menor. Si la división no es exacta, entonces se toma el residuo, y se divide tantas veces como haga falta para llegar a una división sin residuo. El MCD es el último número por cuál se puede dividir. El algoritmo de Euclides para encontrar MCD (A, B) es como sigue: − Si 𝐴 = 0 entonces 𝑀𝐶𝐷 (𝐴, 𝐵) = 𝐵, ya que el 𝑀𝐶𝐷 (0, 𝐵) = 𝐵, y podemos detenernos. − Si 𝐵 = 0 entonces 𝑀𝐶𝐷 (𝐴, 𝐵) = 𝐴, ya que el 𝑀𝐶𝐷 (𝐴, 0) = 𝐴, y podemos detenernos. Si A y B son distintos de 0, entonces: − Se divide el número mayor entre el menor. − Si la división es exacta, el divisor es el MCD. − Si la división no es exacta, dividimos el divisor entre el resto obtenido y continuamos de esta forma hasta obtener una división exacta. El MCD es el último divisor.

10


ALGORITMO DE LA CRIBA DE ERATÓSTENES La criba de Eratóstenes es un algoritmo que permite hallar todos los números primos menores que un número natural dado. ✓ Partimos de una lista de números que van de 2 hasta un determinado número. ✓ Eliminamos de la lista los múltiplos de 2. ✓ Luego tomamos el primer número después del 2 que no fue eliminado (el 3) y eliminamos de la lista sus múltiplos, y así sucesivamente. ✓ El proceso termina cuando el cuadrado del mayor número confirmado como primo es menor que el número final de la lista. ✓ Los números que permanecen en la lista son los primos. ALGORITMO DE DIVISION POR TENTATIVA La división por tentativa es el algoritmo de factorización de enteros más sencillo y fácil de entender. Dado un entero compuesto n, la división por tentativa consiste en intentar dividir n entre todo número primo menor o igual a √n. Si se encuentra un número que es divisor de n, en división entera, ese número es un factor de n. ALGORITMO DE ELIMINACIÓN DE GAUSS-JORDAN Es un algoritmo del álgebra lineal para determinar las soluciones de un sistema de ecuaciones lineales, encontrar matrices e inversas. Un sistema de ecuaciones se resuelve por el método de Gauss cuando se obtienen sus soluciones mediante la reducción del sistema dado a otro equivalente en el que cada ecuación tiene una incógnita menos que la anterior. El método de Gauss transforma la matriz de coeficientes en una matriz triangular superior. El método de Gauss-Jordan continúa el proceso de transformación hasta obtener una matriz diagonal. ALGORITMO DE HORNER Es un algoritmo que permite calcular el resultado de un polinomio para un determinado valor de x. Aunque la solución de un polinomio para un valor específico de x es una tarea sencilla el algoritmo reduce la cantidad de

11


operaciones necesarias para llegar al resultado lo que la convierte en una técnica más eficiente y más deseable a la hora de programarla. ALGORITMO DE RISCH Es un algoritmo utilizado para el cálculo de integrales indefinidas (es decir, encontrarla función primitiva de una función dada). El algoritmo transforma el problema de integración en un problema de álgebra diferencial. Se basa en el tipo de función que se integra y en el uso de métodos para integrar funciones racionales, radicales, logaritmos, y funciones exponenciales. ALGORITMO DE KRUSKAL Partir de un subgrafo generador cuyo conjunto de aristas es vacío, y en cada paso agregar una arista de peso mínimo que no forme ciclos con las demás aristas del conjunto, hasta haber agregado n − 1 aristas.

EJERCICOS DE APLICACIÓN DE ALGORITMOS 

ALGORITMO DE EUCLIDES

Ejercicio 1: Determina el MCD de los números 148 y 96. Solución: 1° Se verifica que ambos números son distintos de 0. 𝑨 = 𝟏𝟒𝟖, 𝑩 = 𝟗𝟔 2° Se divide 148 ÷ 96 colocando el cociente y el residuo en el lugar correspondiente. 3° El residuo 52 pasa a ocupar el siguiente casillero central y ahora se divide 96 ÷ 52. El último divisor empleado, es decir 4, será el MCD.

𝟏𝟒𝟖 ÷ 𝟗𝟔

1

1

1

5

2

← Cocientes

148

96

52

44

8

4

← Divisores

52

44

8

4

0

← Restos

12


Por lo tanto, el MCD de 148 y 96 es 4. Ejercicio 2: Determina el MCD de los números 576 y 112. Solución: 1° Se verifica que ambos números son distintos de 0. 𝑨 = 𝟓𝟕𝟔, 𝑩 = 𝟏𝟏𝟐 2° Se divide 576 ÷ 112 colocando el cociente y el residuo en el lugar correspondiente. 3° El residuo 16 pasa a ocupar el siguiente casillero central y ahora se divide 112 ÷ 16.

𝟓𝟕𝟔 ÷ 𝟏𝟏𝟐

5

7

← Cocientes

576

112

16

← Divisores

16

0

← Restos

Por lo tanto, el MCD de 576 y 112 es el último divisor empleado, es decir, 16. 

ALGORITMO DE LA CRIBA DE ERATÓSTENES

Ejercicio 3: calcular los números primos menores que 60. Solución: 1° Escribimos los números partiendo desde 2 hasta 60 en este caso. 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21 31 41

22 32 42

23 33 43

24 34 44

25 35 45

26 36 46

27 37 47

28 38 48

28 39 49

30 40 50

51

52

53

54

55

56

57

58

59

60

2° Se inicia eliminando todos los múltiplos de 2. 2 11

3

5

7

9

13

15

17

19 13


21

23

25

27

28

31 41 51

33 43 53

35 45 55

37 47 57

39 49 59

3° En este paso se eleva el siguiente número al cuadrado, en este caso 3, como 32 < 60 se procese a eliminar los múltiplos de 3. 2 11

3

5

13 23

31 41

17 25 35

43 53

7 19 28 37 47

55

49 59

4° Continuamos con el siguiente número que es 5, 52 < 60 y eliminamos los múltiples de 5. 2 11

3

5

13

7 17

23 31 41

19 28

37 47

43 53

49 59

5° El siguiente numero es 7, 72 < 60 se eliminan los múltiplos de 7. 2 11

3 13

5

7 17

19

23 31 41

43 53

37 47 59

6° El número que continúa es 11, como 112 > 60 el algoritmo termina y los numero que quedan son primos.

14


2 11

3

5

7

13

17

19

23 31 41

37 47

43 53

59

Ejercicio 3: calcular los números primos menores que 100. Solución: Escribimos los números partiendo desde 2 hasta 100 en este caso. 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21 31 41 51 61 71 81

22 32 42 52 62 72 82

23 33 43 53 63 73 83

24 34 44 54 64 74 84

25 35 45 55 65 75 85

26 36 46 56 66 76 86

27 37 47 57 67 77 87

28 38 48 58 68 78 88

28 39 49 59 69 79 89

30 40 50 60 70 80 90

91

92

93

94

95

96

97

98

99

100

Eliminamos todos los números múltiplos de 2, 3, 5 y 7 que son los numero cuyo valor elevado al cuadrado es menor que 100: 2 11

3 13

5

7 17

19

23 31 41 61 71

37 43 53

47 59 67

73 83

79 89 97 15


ALGORITMO DE HORNER

Ejercicio 5: Obtener el resultado de dividir:

𝟔𝒙𝟓 +𝟓𝒙𝟒 −𝟖𝒙𝟑 −𝟒𝒙𝟐 −𝟔𝒙+𝟒 𝟐𝒙𝟑 +𝟑𝒙𝟐 −𝟏

Solución: Aplicando el algoritmo de Horner. 2 -3 0 1

6

3

5 -9 -4

-2

-8 0 6 -2 -1

-4 3 0 3 ↓ 2

-6

4

-2 0 ↓ -8

-1 ↓ -3

Por lo tanto, 𝑞(𝑥) = 3𝑥 2 − 2𝑥 − 1; 𝑅(𝑥) = 2𝑥 2 − 8𝑥 − 3

Ejercicio 6: Obtener el resultado de dividir:

𝟒𝒙𝟒 +𝟗𝒙𝟑 +𝟔𝒙𝟓 −𝟏 𝒙+𝟐𝒙𝟑 −𝟏

Solución: D(x)= 6𝑥 5 + 4𝑥 4 + 9𝑥 3 + 0𝑥 2 + 0𝑥 − 1 d(x)= 2𝑥 3 + 0𝑥 2 + 𝑥 − 1 Aplicando el algoritmo de Horner. 2 0 -1 1

6

3

4 0 4

2

9 -3 0 6 3

0 3 -2 0 ↓ 1

0

-1

2 -3 ↓ -1

3 ↓ 2

Por lo tanto, 𝑞(𝑥) = 3𝑥 2 + 2𝑥 + 3; 𝑅(𝑥) = 𝑥 2 − 𝑥 + 2

16


ALGORITMO DE NEWTON

Ejercicio 7: Desarrollar el siguiente binomio (𝒙 − 𝟑)𝟓 Solución: 5 5 5 5 (𝒙 − 𝟑)𝟓 = ( ) 𝑥 5−0 (−3)0 + ( ) 𝑥 5−1 (−3)1 + ( ) 𝑥 5−2 (−3)2 + ( ) 𝑥 5−3 (−3)3 0 1 2 3 5 5−5 5 5−4 4 5 + ( ) 𝑥 (−3) + ( ) 𝑥 (−3) 4 5 𝟓 5 4 (𝒙 − 𝟑) = (1)𝑥 (1) + (5)𝑥 (−3) + (10)𝑥 3 (9) + (10)𝑥 2 (−27) + (5)𝑥1 (81) + (1)(1)(−243) 𝟓 𝟓 (𝒙 − 𝟑) = 𝒙 − 𝟏𝟓𝒙𝟒 + 𝟗𝟎𝒙𝟑 − 𝟐𝟕𝟎𝒙𝟐 + 𝟒𝟎𝟓𝒙 − 𝟐𝟒𝟑 𝟏

Ejercicio 8: Desarrollar el siguiente binomio (𝒙𝟑 + 𝒙)𝟒 Solución: 𝟏 1 0 1 1 1 2 4 4 4 (𝒙𝟑 + )𝟒 = ( ) (𝑥 3 )4−0 ( ) + ( ) (𝑥 3 )4−1 ( ) + ( ) (𝑥 3 )4−2 ( ) 0 1 2 𝒙 𝑥 𝑥 𝑥 3 4 1 1 4 4 + ( ) (𝑥 3 )4−3 ( ) + ( ) (𝑥 3 )4−4 ( ) 3 4 𝑥 𝑥 𝟏 1 1 1 1 (𝒙𝟑 + )𝟒 = (1)(𝑥)12 (1) + (4)(𝑥)9 ( ) + (6)(𝑥)6 ( 2 ) + (4)(𝑥 3 ) ( 3 ) + 1(1) ( 4 ) 𝒙 𝑥 𝑥 𝑥 𝑥 𝟏 𝟏 (𝒙𝟑 + )𝟒 = 𝒙𝟏𝟐 + 𝟒𝒙𝟖 + 𝟔𝒙𝟒 + 4 + 𝟒 𝒙 𝒙

ALGORITMO DE KRUSKAL

Ejercicio 9: Encontrar el camino más corto para el siguiente grafo:

17


Solución: Se inicia por la arista de menor peso y luego se va seleccionando la que tiene el peso mas cercano al anterior hasta que todos los nodos estén conectados.

El peso menor total del grafo es: 1+1+2+3+4+5=16 Ejercicio 10: Encontrar el camino más corto para el siguiente grafo:

Solución: Se inicia por la arista de menor peso y luego se va seleccionando la que tiene el peso más cercano al anterior hasta que todos los nodos estén conectados.

18


El peso menor total del grafo es: 5+5+6+7+7+9=39 Para seleccionar cada una de las aristas debemos tener en cuenta que no formen un ciclo, tal es el caso de la arista DB de peso 9 que forma un ciclo con el nodo A, teniendo eso en cuenta se elige la arista EG que, aunque tienen el mismo peso es fundamental que no haya ciclo entre ellas.

19


CONCLUSIONES Los algoritmos son muy importantes en nuestro entorno, dado que los algoritmos son pasos que nos permiten llegar a respuestas de muchos problemas solo baste seguir esos pasos para obtener la solución dichos problemas. En matemática los algoritmos son muy importantes dado que nos ayudan a resolver un sinfín de problemas matemáticos, gracias a que grandes matemáticos dedicaron su tiempo en dar solución a problemas y a través de ello brindar esos pasos a seguir, logrando con ello hacer mucho más fácil el resolver problemas matemáticos. Esta parte de los algoritmos es de mucha importancia por que a menudo sirven para demostrar o afirmar muchos teoremas de las matemáticas, dado que la matemática todo lo que tenemos esta demostrado, muchas de las demostraciones se logran haciendo uso de los algoritmos. Por lo que es de vital importancia conocer algoritmos ya que nos serán de mucha ayuda en nuestro entorno para futuros problemas.

20


BIBLIOGRAFÍA https://concepto.de/algoritmo-en-informatica/#ixzz6yvTCEOtn https://es.scribd.com/document/396025962/Los-20-Algoritmos-MasFamosos https://es.slideshare.net/lyonc357/los-20-algoritmos-matematicos-masimportantes-de-la-historia Johnsinbaugh, R. (2005). Matemáticas Discretas, Sexta Edición, México.

21


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.