Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Invariante de un algoritmo
CONTENIDO
Profesores MA265 1
UPC – Departamento de Ciencias – MATEMATICA DISCRETA (MA265)
Análisis de algoritmos
Introducción
Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea
específica, como la solución de un problema. Los algoritmos son independientes tanto del
lenguaje de programación en que se expresan como de la computadora que los ejecuta.
Invariante de un algoritmo iterativo
En informática se conoce como invariante a una condición que se sigue cumpliendo después
de la ejecución de determinadas instrucciones. Se cumple tanto antes como después de estas
instrucciones, permaneciendo sin variación, por ello se denomina invariante. Las invariantes
se pueden utilizar para demostrar el buen funcionamiento de algoritmos y cumplen con un
papel importante en el diseño.
Ejemplo 1
Para el siguiente algoritmo:
𝑆𝑈𝐵𝑅𝑈𝑇𝐼𝑁𝐴 𝑆𝑈𝑀𝐴 (𝑋, 𝑌; 𝑍)
1. 𝑍 ← 𝑋/𝑌
2. 𝑊 ← 𝑌
𝑊𝐻𝐼𝐿𝐸 (𝑊 > 0)
𝑎. 𝑍 ← 𝑍 + 𝑋
𝑏. 𝑊 ← 𝑊 − 1
3. 𝑅𝐸𝑇𝑈𝑅𝑁
𝐹𝐼𝑁 𝐷𝐸 𝐿𝐴 𝑆𝑈𝐵𝑅𝑈𝑇𝐼𝑁𝐴 𝑆𝑈𝑀𝐴
a) Determine el invariante.
b) Pruebe la validez de la invariante mediante inducción matemática.
Resolución
Cálculo de la invariante
Antes del ciclo
𝑍0 = 𝑋/𝑌 𝑊0 = 𝑌
En el ciclo
𝑋
𝑍1 = 𝑍0 + 𝑋 = 𝑌 + 𝑋 𝑊1 = 𝑊0 − 1 = 𝑌 − 1
𝑋
𝑍2 = 𝑍1 + 𝑋 = 𝑌 + 2𝑋 𝑊2 = 𝑊1 − 1 = 𝑌 − 2
𝑋
𝑍3 = 𝑍2 + 𝑋 = 𝑌 + 3𝑋 𝑊3 = 𝑊2 − 1 = 𝑌 − 3
………… …………
Profesores MA265 2
UPC – Departamento de Ciencias – MATEMATICA DISCRETA (MA265)
………… …………
𝑋
𝑍𝑛 = + 𝑛𝑋 𝑊𝑛 = 𝑌 − 𝑛
𝑌
Despejando, 𝑛 = 𝑌 − 𝑊𝑛 , reemplazamos en 𝑍𝑛
𝑋
𝑍𝑛 = + (𝑌 − 𝑊𝑛 )𝑋
𝑌
𝑋
𝑍𝑛 = + 𝑌𝑋 − 𝑊𝑛 𝑋
𝑌
𝑿
Invariante: 𝒁𝒏 + 𝑾𝒏 𝑿 = 𝒀 + 𝒀𝑿
Se observa que la invariante es una expresión independiente de 𝑛
Profesores MA265 3
UPC – Departamento de Ciencias – MATEMATICA DISCRETA (MA265)
a) Determine el invariante.
b) Pruebe la validez de la invariante mediante inducción matemática.
Resolución
Cálculo de la invariante
Antes del ciclo
𝑍0 = 𝑋 𝑊0 = 𝑌
En el ciclo
𝑍1 = 𝑌𝑍0 + 𝑋 = 𝑌𝑋 + 𝑋 𝑊1 = 𝑊0 − 1 = 𝑌 − 1
𝑍2 = 𝑌𝑍1 + 𝑋 = 𝑌 2 𝑋 + 𝑌𝑋 + 𝑋 𝑊2 = 𝑊1 − 1 = 𝑌 − 2
𝑍3 = 𝑌𝑍2 + 𝑋 = 𝑌 3 𝑋 + 𝑌 2 𝑋 + 𝑌𝑋 + 𝑋 𝑊3 = 𝑊2 − 1 = 𝑌 − 3
………… …………
𝑍𝑛 = 𝑌 𝑛 𝑋 + 𝑌 𝑛−1 𝑋 + ⋯ + 𝑌𝑋 + 𝑋 𝑊𝑛 = 𝑌 − 𝑛
𝑌 𝑛+1 −1
𝑍𝑛 = 𝑋 ( ) 𝑊𝑛 = 𝑌 − 𝑛
𝑌−1
Despejando, 𝑛 = 𝑌 − 𝑊𝑛 , reemplazamos en 𝑍𝑛
𝑌−𝑊𝑛 +1
𝑍𝑛 (𝑌 − 1) = 𝑋𝑌 −𝑋
𝑌+1
𝑋𝑌
𝑍𝑛 (𝑌 − 1) = 𝑊 − 𝑋
𝑌 𝑛
𝑋𝑌 𝑌+1
𝑍𝑛 (𝑌 − 1) + 𝑋 = 𝑊
𝑌 𝑛
(𝑍𝑛 (𝑌 − 1) + 𝑋)𝑌 𝑛 = 𝑋𝑌 𝑌+1
𝑊
Profesores MA265 4
UPC – Departamento de Ciencias – MATEMATICA DISCRETA (MA265)
EJERCICIOS PROPUESTOS
1. Para el siguiente algoritmo:
𝑆𝑈𝐵𝑅𝑈𝑇𝐼𝑁𝐴 𝑅𝐸𝑆𝑇𝐴 (𝑋, 𝑌; 𝑍)
1. 𝑍 ← 𝑋
2. 𝑊 ← 𝑌 ∗ 𝑌
𝑊𝐻𝐼𝐿𝐸 (𝑊 > 0)
𝑎. 𝑍 ← 𝑍 − 𝑌
𝑏. 𝑊 ← 𝑊 − 1
3. 𝑅𝐸𝑇𝑈𝑅𝑁
𝐹𝐼𝑁 𝐷𝐸 𝐿𝐴 𝑅𝑈𝑇𝐼𝑁𝐴 𝑅𝐸𝑆𝑇𝐴
a. Determine el invariante.
b. Pruebe la validez de la invariante mediante inducción matemática.
Profesores MA265 5
UPC – Departamento de Ciencias – MATEMATICA DISCRETA (MA265)
BIBLIOGRAFÍA
EPP, S. (2012). Matemática discreta con aplicaciones. México DF, México: Cengage Learning.
(https://n9.cl/uqq6) Revisar páginas desde 244 hasta 267.
Profesores MA265 6