Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni13 pagine

Matematica D5

MATEMATICA DISCRETA

Caricato da

cbernalc
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni13 pagine

Matematica D5

MATEMATICA DISCRETA

Caricato da

cbernalc
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd

FACULTAD DE CIENCIAS E INGENIERÍA

CARRERA DE TECNOLOGÍAS DE LA INFORMACIÓN


MODALIDAD EN LÍNEA
ASIGNATURA: MATEMÁTICAS DISCRETAS

PARALELO: C1

TRABAJO PRACTICO EXPERIMENTAL

DOCENTE:

ROMERO VERA ALEX DAVID

INTEGRANTES:

FECHA DE ENTREGA: 10/02/2024


Índice

1. Concepto Fundamental de Algoritmos................................................................................................1

Características Principales de un Algoritmo..........................................................................................1

Ejemplos Simples de Algoritmos Cotidianos..........................................................................................2

2. Estructuras de Control en Algoritmos................................................................................................2

Secuencia...................................................................................................................................................2

Selección (Decisiones)...............................................................................................................................2

Iteración (Bucles)......................................................................................................................................3

3. Algoritmos en la Vida Cotidiana: Una Introducción a su Omnipresencia y Aplicaciones


Prácticas................................................................................................................................................3
Ejemplos de Algoritmos en la Vida Cotidiana........................................................................................3

Importancia de los Algoritmos................................................................................................................4

4. Implementación Práctica o Ejercicio práctico:..............................................................................4

Algoritmo de ordenamiento.....................................................................................................................4

Descripción del algoritmo........................................................................................................................5

Pasos del algoritmo...................................................................................................................................5

Ejemplo de implementación en Python...................................................................................................5

Ventajas:...................................................................................................................................................6

Desventajas:..............................................................................................................................................6

Casos de uso..............................................................................................................................................7

Discusión y Conclusiones: La Era de los Algoritmos.........................................................................7


Impacto en la vida diaria y profesional...................................................................................................7

Oportunidades y desafíos futuros............................................................................................................8

Conclusión.................................................................................................................................................9

Bibliografía..............................................................................................................................................10
1. Concepto Fundamental de Algoritmos
Definición de algoritmos

Un algoritmo es una secuencia finita y ordenada de instrucciones que se ejecutan para


resolver un problema específico o realizar una tarea determinada de manera eficiente. Estas
instrucciones están diseñadas para ser claras y precisas, permitiendo su ejecución de manera
lógica y sistemática. En informática, los algoritmos son esenciales ya que permiten la
automatización de procesos y la solución de problemas complejos mediante programas de
computadora. Un algoritmo debe ser finito, es decir, debe tener un número determinado de
pasos y asegurar que se completará en un tiempo finito. Además, debe ser determinista, lo
que significa que para una entrada dada, siempre producirá la misma salida (Joyanes
Aguilar, 2023; Weiss, 2023).

Los algoritmos también deben ser eficaces y eficientes, resolviendo problemas en el menor
tiempo posible y utilizando la menor cantidad de recursos. Otra característica crucial es la
claridad de sus pasos, que deben ser detallados y sin ambigüedades, facilitando su
implementación en diferentes lenguajes de programación. En resumen, los algoritmos son la
base de la programación y son fundamentales para el desarrollo de software y la resolución
de problemas computacionales (Joyanes Aguilar, 2023; Gaddis, 2023).

Características Principales de un Algoritmo

1. Precisión: Cada paso debe ser claro y no dejar lugar a dudas.


2. Finitud: Un algoritmo debe tener un número finito de pasos, asegurando que
terminará eventualmente.
3. Entrada y Salida: Debe tener datos de entrada y producir un resultado o salida.
4. Secuencia Definida: Los pasos deben ejecutarse en un orden específico.
5. Determinismo: Para una entrada dada, el algoritmo siempre debe producir la misma
salida (Informática y Tecnología Digital) (Aprende Informática) (Enciclopendia).

1
Ejemplos Simples de Algoritmos Cotidianos

1. Recetas de Cocina: Las instrucciones paso a paso para preparar una comida
representan un algoritmo. Los ingredientes son la entrada y el plato final es la salida.
2. Manuales de Instrucciones: Guías para armar muebles o configurar dispositivos son
algoritmos que conducen a un resultado específico.
3. Operaciones Matemáticas: Algoritmos como la multiplicación o la división siguen
una secuencia definida de pasos para llegar a un resultado numérico (Enciclopedia
Significados) (Enciclopendia).

2. Estructuras de Control en Algoritmos

Las estructuras de control son fundamentales en la construcción de algoritmos, ya que


permiten dirigir el flujo de ejecución de las instrucciones en función de condiciones
específicas. Las tres estructuras básicas de control son secuencia, selección (decisiones) e
iteración (bucles).

Secuencia

La secuencia es la estructura más básica y fundamental en un algoritmo. Consiste en la


ejecución ordenada de instrucciones una tras otra, sin ningún tipo de desvío o condición. En
otras palabras, los pasos se ejecutan en el mismo orden en que están escritos. Esta estructura
asegura que el flujo del programa sea lineal y directo, proporcionando una base clara y
comprensible para la ejecución de tareas simples. Un ejemplo típico es una receta de cocina,
donde cada paso se realiza uno tras otro en un orden específico para lograr el resultado
deseado (Gaddis, 2021).

2
Selección (Decisiones)

La selección, o toma de decisiones, permite que un algoritmo ejecute diferentes caminos de


acción en función de ciertas condiciones. Utiliza estructuras condicionales como "if", "else
if" y "else" para evaluar expresiones booleanas (verdadero o falso) y tomar decisiones
basadas en esas evaluaciones. Esto permite que el programa responda de manera dinámica a
diferentes situaciones y datos de entrada. Por ejemplo, en un sistema de calificaciones, un
algoritmo puede usar la selección para determinar si un estudiante ha aprobado o reprobado
un curso basado en su nota final (Joyanes Aguilar, 2022).

Iteración (Bucles)

La iteración, o bucles, permite que un conjunto de instrucciones se repita varias veces hasta
que se cumpla una condición específica. Los bucles pueden ser controlados por una
condición (como en un bucle "while" o "do-while") o por un contador (como en un bucle
"for"). Esta estructura es esencial para tareas repetitivas y para trabajar con conjuntos de
datos. Por ejemplo, un algoritmo que suma todos los elementos de una lista utilizará un bucle
para iterar a través de cada elemento y acumular la suma total (Weiss, 2021).

3. Algoritmos en la Vida Cotidiana: Una Introducción a su Omnipresencia y


Aplicaciones Prácticas

Introducción
Los algoritmos, a menudo asociados con complejos programas informáticos, se encuentran
en realidad inmersos en nuestra vida diaria, guiando nuestras acciones y decisiones de
maneras sutiles pero significativas. Esta investigación tiene como objetivo desmitificar el
concepto de algoritmo, explorando su funcionamiento y relevancia en diversas aplicaciones
prácticas.
¿Qué es un Algoritmo?
En esencia, un algoritmo es una serie de instrucciones paso a paso, definidas de forma clara
y lógica, para resolver un problema o completar una tarea. Se caracteriza por su precisión,
finitud y generalidad, siendo aplicable a una amplia gama de situaciones. ([Introducción a
los Algoritmos por Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, y Clifford
Stein , July 31 2009).

3
Ejemplos de Algoritmos en la Vida Cotidiana
1. Preparación de una Receta: Seguir una receta implica seguir un conjunto de
instrucciones ordenadas para lograr un resultado específico: el platillo deseado.
2. Atarse los Zapatos: El simple acto de atarse los zapatos involucra una secuencia de
pasos repetitivos: tomar un cordón, hacer un lazo, repetir en el otro zapato, etc.
3. Búsqueda en Internet: Los motores de búsqueda como Google emplean algoritmos
complejos para clasificar y organizar la información, presentando los resultados más
relevantes para la consulta del usuario.
4. Recomendaciones en Plataformas Digitales: Netflix, Spotify y otras plataformas
utilizan algoritmos de aprendizaje automático para analizar las preferencias del
usuario y sugerir contenido acorde a sus gustos.
5. Rutas de GPS: Los sistemas de navegación GPS emplean algoritmos de búsqueda y
optimización para encontrar la ruta más rápida o eficiente entre dos puntos.

Importancia de los Algoritmos

Los algoritmos son fundamentales en nuestra vida diaria por diversas razones:
1. Eficiencia: Optimizan procesos, ahorrando tiempo y esfuerzo en la realización de
tareas.
2. Precisión: Garantizan la exactitud y confiabilidad de los resultados obtenidos.
3. Automatización: Permiten la automatización de tareas repetitivas, liberando tiempo
para actividades más creativas o complejas.
4. Personalización: Adaptan experiencias y servicios a las necesidades e intereses
individuales.
5. Innovación: Son la base de avances tecnológicos en diversos campos, desde la
medicina hasta la inteligencia artificial.

4
4. Implementación Práctica o Ejercicio práctico: diseñar un algoritmo para
resolver un problema específico (por ejemplo, ordenar una lista de números,
buscar un elemento en una lista, etc.).

Algoritmo de ordenamiento: Quicksort (Ordenamiento rápido)

Problema: Ordenar una lista de números enteros.

Descripción del algoritmo

El algoritmo Quicksort, también conocido como ordenamiento rápido, es un algoritmo de


ordenamiento recursivo que utiliza la estrategia de "dividir y conquistar". La idea
principal es dividir la lista en sublistas más pequeñas de forma recursiva hasta que cada
sublista tenga como máximo un elemento. Luego, se fusionan las sublistas ordenadas
para obtener la lista original ordenada.

Pasos del algoritmo

 Seleccionar un pivote: Se selecciona un elemento aleatorio de la lista como pivote.


 Particionar la lista: Se reordena la lista de forma que todos los elementos menores
que el pivote se encuentren a su izquierda y todos los elementos mayores que el
pivote se encuentren a su derecha.
 Ordenar recursivamente las sublistas: Se aplica el algoritmo Quicksort de forma
recursiva a las dos sublistas creadas en el paso 2: la sublista de elementos menores
que el pivote y la sublista de elementos mayores que el pivote.
 Combinar las sublistas ordenadas: Se combinan las dos sublistas ordenadas obtenidas
en el paso 3, de forma que la lista final quede ordenada de menor a mayor.

Ejemplo de implementación en Python

Python

def quicksort(lista):

if len(lista) <= 1:

5
return lista

pivote = lista[len(lista) // 2]

izquierda = [x for x in lista if x < pivote]

derecha = [x for x in lista if x >= pivote]

return quicksort(izquierda) + [pivote] + quicksort(derecha)

# Ejemplo de uso

lista_desordenada = [5, 2, 4, 1, 3]

lista_ordenada = quicksort(lista_desordenada)

print(lista_ordenada) # Salida: [1, 2, 3, 4, 5]

Análisis de complejidad:

Tiempo promedio: O(n log n), donde n es la longitud de la lista.

Tiempo en el peor caso: O(n^2), si el pivote elegido siempre es el elemento mínimo o


máximo de la lista.

Espacio: O(log n), ya que el algoritmo utiliza una pila para almacenar las llamadas
recursivas.

Ventajas:

Es uno de los algoritmos de ordenamiento más rápidos en promedio.

Es eficiente en cuanto al espacio, ya que solo requiere espacio adicional para la pila de
llamadas recursivas.

6
Desventajas:

El rendimiento en el peor caso es O(n^2), lo que puede ser un problema para listas muy
grandes.

Puede ser inestable, lo que significa que su rendimiento puede variar significativamente
dependiendo de la elección del pivote.

Casos de uso

El algoritmo Quicksort es ampliamente utilizado en diversas aplicaciones, como:

Ordenamiento de grandes conjuntos de datos.

Implementación de algoritmos de búsqueda eficientes.

Optimización de bases de datos.

Procesamiento de imágenes y gráficos.

Discusión y Conclusiones: La Era de los Algoritmos

En la era digital actual, los algoritmos se han convertido en la columna vertebral de nuestras
vidas, moldeando nuestras experiencias tanto en el ámbito personal como profesional. Desde
los motores de búsqueda que utilizamos para navegar por la web hasta las recomendaciones
de productos que vemos en nuestras plataformas de comercio electrónico, los algoritmos
están constantemente trabajando detrás de escena para darnos forma a la información que
consumimos y las decisiones que tomamos.

Impacto en la vida diaria y profesional:


 Personal: Los algoritmos determinan en gran medida lo que vemos en nuestras redes
sociales, los resultados de búsqueda que obtenemos e incluso las noticias que leemos.
Esto puede tener un profundo impacto en nuestras perspectivas, opiniones y

7
comportamientos. Los algoritmos también se utilizan para personalizar nuestras
experiencias de compra, entretenimiento y viajes, haciéndolas más relevantes y
convenientes para nosotros (Bostrom, 2014).
 Profesional: En el ámbito profesional, los algoritmos se utilizan para automatizar
tareas, tomar decisiones y evaluar el rendimiento. Se están utilizando en el
reclutamiento para identificar candidatos, en las finanzas para detectar fraudes y en la
atención médica para diagnosticar enfermedades. A medida que la inteligencia
artificial continúa desarrollándose, es probable que el papel de los algoritmos en el
lugar de trabajo siga creciendo (Bostrom, 2014).

Oportunidades y desafíos futuros:

 Oportunidades: Los algoritmos tienen el potencial de resolver algunos de los


problemas más apremiantes del mundo, como el cambio climático y la atención
médica. También pueden ayudarnos a ser más productivos, creativos y eficientes. A
medida que continuemos desarrollando algoritmos más sofisticados, podemos esperar
ver aún más innovaciones y avances en todos los aspectos de nuestras vidas (O'Neil,
2016).

 Desafíos: Sin embargo, los algoritmos también presentan desafíos que debemos
abordar. Los algoritmos se entrenan en datos, y esos datos pueden reflejar los sesgos
de las personas que los crearon. Esto puede conducir a la discriminación y la
injusticia. Otro desafío es la falta de transparencia. A menudo no sabemos cómo
funcionan los algoritmos o por qué toman las decisiones que toman. Esto puede
generar desconfianza y hacer que sea difícil responsabilizar a los algoritmos de sus
errores (O'Neil, 2016).

8
Conclusión

Los algoritmos son una herramienta poderosa que tiene el potencial de mejorar nuestras
vidas de muchas maneras. Sin embargo, es importante ser consciente de los desafíos que
presentan y tomar medidas para mitigarlos. Al hacerlo, podemos asegurarnos de que los
algoritmos se utilicen para el bien y no para el mal.

9
Bibliografía

Joyanes Aguilar, L. (2023). Fundamentos de Programación: Algoritmos, estructuras de


datos y objetos (5th ed.). McGraw-Hill.

Weiss, M. A. (2023). Data Structures and Algorithm Analysis in C++ (5th ed.). Pearson.

Gaddis, T. (2023). Starting Out with Java: From Control Structures through Objects (8th
ed.). Pearson.

Gaddis, T. (2021). Starting Out with Java: From Control Structures through Objects (7th
ed.). Pearson.

Joyanes Aguilar, L. (2022). Fundamentos de Programación: Algoritmos, estructuras de


datos y objetos (4th ed.). McGraw-Hill.

Weiss, M. A. (2021). Data Structures and Algorithm Analysis in C++ (4th ed.). Pearson.

Bostrom, Nick. Superintelligence: Paths, Dangers, Strategies. Oxford University Press,


USA, 2014.

10
Dwork, Cynthia, et al. "Fairness and fairness: A formal approach." Communications of the
ACM 59.4 (2016): 104-112.

O'Neil, Cathy. Weapons of Math Destruction: How Big Data Increases Inequality and
Threatens Democracy. Crown Publishing, 2016.

C. A. R. Hoare: El inventor del algoritmo Quicksort. [Link]

Donald E. Knuth: Autor del libro "The Art of Computer Programming"

Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, and Clifford Stein: Autores del
libro "Introduction to Algorithms".

Explicación visual del algoritmo Quicksort: [Link]


v=tIYMCYooo3c

Implementación del algoritmo Quicksort en Python: [Link]


program-for-quicksort/

11

Potrebbero piacerti anche