cartilla etc v1.2

Upload: jholguinmed

Post on 04-Feb-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Cartilla ETC v1.2

    1/110

    Cartilla Elementos de Teora en la Computacion

    Monica Mara Lozano Romero

    Politecnico Grancolombiano

    2010

  • 7/21/2019 Cartilla ETC v1.2

    2/110

    Cartilla Elementos de Teora en la Computacion

    Este libro esta sujeto a derechos de autor. Todos estos derechos son reservados para el autor del libroen su reproduccion parcial o completa, en especial los derechos de traduccion, distribucion, uso de lasilustraciones y copia. Cualquier infraccion a estos derechos esta legislada por la ley colombiana de derechosde autor.

    i

  • 7/21/2019 Cartilla ETC v1.2

    3/110

    Cartilla Elementos de Teora en la Computacion

    ii

  • 7/21/2019 Cartilla ETC v1.2

    4/110

    Indice general

    1. Conteo 11.1. Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Principios de Conteo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.2.1. Regla de la suma y el producto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2. Permutaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.3. Combinaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.4. Principio de las casillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2.5. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    1.3. Teorema del binomio y sus aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3.1. Triangulo de pascal y el teorema del binomio . . . . . . . . . . . . . . . . . . . . . . . 10

    1.4. Conteo y conjuntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    2. Induccion 172.1. Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2. Induccion sobre los naturales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.2.1. Induccion con inicio en enteros distintos de cero . . . . . . . . . . . . . . . . . . . . . . 212.3. Principio del buen orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    2.3.1. Induccion y el principio del buen orden . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.4. Definiciones inductivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.4.1. Induccion sobre definiciones inductivas . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.4.2. Arboles binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    2.5. Induccion y el analisis de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    3. Especificacion y correcion de algoritmos 333.1. Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.2. Especificacion de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.3. Correcion de asignacion y condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    3.3.1. Correcion de asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.3.2. Correccion de condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    3.4. Correccion de ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    4. Ecuaciones de recurrencia 534.1. Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.2. Definiciones basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    4.2.1. Tipos de ecuaciones de recurrencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.3. Ecuaciones de recurrencia lineales y homogeneas . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    4.3.1. Ecuaciones de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.3.2. Ecuaciones de segundo orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    4.4. Ecuaciones de recurrencia lineales no Homogeneas . . . . . . . . . . . . . . . . . . . . . . . . . 604.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    iii

  • 7/21/2019 Cartilla ETC v1.2

    5/110

    Cartilla Elementos de Teora en la Computacion

    5. Teora de numeros 65.1. Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65.2. Numeros Naturales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    5.2.1. Desigualdades y la propiedad de la cancelacion . . . . . . . . . . . . . . . . . . . . . . 65.2.2. Cero y resta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    5.3. Numeros enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75.4. Dominios Integrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75.5. Divisibilidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    5.5.1. Numeros Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75.5.2. Maximo comun divisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75.5.3. Teorema fundamental de la aritmetica. . . . . . . . . . . . . . . . . . . . . . . . . . . . 75.5.4. Congruencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    5.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    6. Relaciones y Funciones 86.1. Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    6.2. Relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86.2.1. Tuplas y producto cruz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86.2.2. Operaciones y relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86.2.3. Tipos de relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96.2.4. Relaciones de equivalencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    6.3. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96.3.1. Inversa de una funcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    6.4. Aplicaciones en el analisis de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    iv

  • 7/21/2019 Cartilla ETC v1.2

    6/110

    Captulo 1: Conteo

    En este captulo se introducen lo principios del conteo o analisis combinatorio, que incluye las reglasde la suma y el producto, permutaciones y combinaciones (en ambos casos con y sin repeticion). Adicio-nalmente se muestra el teorema del binomio y el princpio de las casillas cuyas aplicaciones son las m as

    conocidas de esta area de las matematicas.

    El estudiante al final del captulo estara en la capacidad de contar y encontrar el conjunto de posibli-dades de un problema de analisis combinatorio planteado usando las tecnicas de conteo explicadas.

    La mayora del contenido de este captulo se baso en [4]y [2].

    Seccion 1.1: Introduccion

    El analisis combinatorio es una rama de las matematicas que tiene muchas aplicaciones en otras areasdel conocimiento. En particular en la ciencias de la computacion es un elemento fundamental para el anali-sis de algoritmos, dado que ofrece herramientas que permiten determinar la complejidad de estos con elfin de mejorarlos y hacerlos mas eficientes.

    Seccion 1.2: Principios de Conteo

    El conteo, tal como su nombre lo dice, es la ciencia de aprender a contar. Que contamos?, contamos el

    numero de posibilidades de combinaciones de un conjunto de elementos, estas posibilidades pueden tenerrestricciones o no. Por ejemplo, nos gustara saber cuantos grupos de tres personas con mnimo una mujerincluida se pueden hacer de un grupo de cinco personas donde hay tres hombres y dos mujeres.

    Saber contar no es una cosa trivial, eso depende de la cantidad de elementos involucrados, que tanrelacionados estan, que restricciones hay, entre otras. Para saber contar se necesita un poco de pr actica,intuicion y de conocer la teora, aunque uno puede contar sin saberse formulas. De hecho las formulas oecuaciones existentes son solo herramientas que nos ayudan a encontrar la respuesta, porque muchas delas veces que se cuenta la formula no existe, toca encontrarla basandonos en el problema planteado.

    Por esa razon es basico entender la diferencia entre los terminos y estrategias aqu explicadas, dadoque teniendo claro cuando se usan, para que sirven y porque las formulas mostradas son as y no de otramanera, contar sera tan natural como respirar.

    1.2.1: Regla de la suma y el producto

    Las reglas de la suma y del producto nos permiten contar elementos entre varios conjuntos. Un ejemplode uso de estas reglas es como contar el total de maneras posibles de realizar una tarea si en cada uno delos pasos que se necesitan para realizarse hay un numero distinto de formas de hacerlo.

    1

  • 7/21/2019 Cartilla ETC v1.2

    7/110

    Cartilla Elementos de Teora en la Computacion Principios de Conte

    En el caso de la suma, nos permite contar elementos entre conjuntos que de a parejas no tienen nada ecomun y se quiere saber cuantos elementos tengo disponibles entre todos los conjuntos (sin contarlos doveces, por eso se piden que sean disyuntos o distintos de a parejas). Por ejemplo, si tenemos tres camisauna blanca, una roja y una verde, y ademas tenemos dos pantalones: uno negro y otro cafe, el numetotal posibilidades de prendas de vestir que hay son cinco dado que es el resultado de sumar tres y doNote que para poder vestirse puede ponerse una camisa o un pantalon, aqu no se esta contando poneruna camisa (de las posibles que hay) y un pantalon (de los posibles que hay), solo la posibilidad de utilizuna de esas prendas de vestir.

    La regla del producto es aun mas sencilla, dado que cuenta las maneras de combinar elementos dvarios conjuntos. Siguiendo con el ejemplo de la regla de la suma (las camisas y los pantalones) el n umede pintas que puedo hacer con esas camisas yesos pantalones son seis, dado que cada camisa la puedcombinar con un pantalon, es decir, la roja se puede combinar con el pantalon negro y ademas con pantalon cafe (aunque no se vea bien!), la blanca y la verde tambien se pueden combinar con los dpantalones que hay. Si sumamos todas las posibilidades de combinar las camisas con los pantalones est

    nos da un total de seis pintas distintas, en pocas palabras, la regla del producto nos dice: multiplique lotamanos de los conjuntos involucrados (en el ejemplo 6 =3 2). Las dos reglas las podemos resumir de siguiente manera:

    Regla 1.1 (Regla de la suma)Si un evento A puede suceder dea maneras distintas y un evento B puede suceder de b maneras distintapero no pueden suceder al mismo tiempo, entonces el hecho que suceda el evento A o el evento B a + b.

    Regla 1.2 (Regla del producto)

    Si un evento A puede suceder dea maneras distintas y un evento B puede suceder de b maneras distintoel numero total de maneras de que sucedan ambos eventos es a.b.

    1.2.2: Permutacione

    Algunas veces queremos saber todas las maneras de combinar un conjunto de elementos en el cual hayun orden definido, como es el caso averiguar cuantas formas hay para ordenar un conjunto de personas euna fila india (note que todas las personas pueden estar en cualquier lugar de la fila). Una permutaciondun conjunto de elementos es una reordenacion lineal de estos.

    Siguiendo con el ejemplo de las personas en la fila, suponga que cada persona tiene un numero asignadas que podemos modelar la fila como una cadena que consiste de los numeros 1234. Ahora, la preguntes de cuantas maneras distintas puedo reordenar los numeros de la cadena?, una posibilidad es 1243, otrposibilidad es 1324 y as sucesivamente. Note que si se deja el uno fijo en la cadena y tratamos de permutcada uno de los demas numeros, de esa subcadena (234) para saber todas las maneras distintas de reordnarla es contar las cadenas que se generaran al ir moviendo el dos y dejando fijo el tres y el cuatro, y parcada posible posicion del dos se deben intercambiar de posicion el tres y el cuatro. De esa manera parcalcular el numero de permutaciones las posibilidades de acomodar cada uno de los elementos se reduce da uno cuando ya se ha permutado alguno de ellos. Continuando con el ejemplo, el n umero uno tiene cuatr

    2

  • 7/21/2019 Cartilla ETC v1.2

    8/110

    Cartilla Elementos de Teora en la Computacion Principios de Conteo

    posiciones distintas en la cadena, cuando este esta en una posicion cualquier otro numero que quiera permu-tar solo tiene tres posibilidades, el siguente tendra dos y el ultimo tendra uno, por la regla del producto eltotal de posibilidades de reordenar la cadena es 43 21 (porque deben suceder todos los eventos al tiempo).

    En general si se quieren permutar n elementos el numero de permutaciones se calcula como n.(n1

    ).

    (n 2

    ).

    (n 3

    ). . . 1, es decir n! , mas conocido como el factorial de un numero .

    Definicion 1.1 (Permutacion de n elementos)Una permutacion de nelementos se representa como P(n) y se define como:

    P(n) = n!

    Ahora, nos tenemos que preguntar como cuento el numero de maneras de reordenar un subconjun-to del conjunto dado, dicho de otra manera, si tenemos un conjunto n de elementos y queremos saber

    cuantas maneras distintas se pueden reordenar r elementos de ellos con r n (esto se conoce como unar-permutacion). Siguiendo la misma estructura de pensamiento de reodenar todos los n elementos, para elprimer elemento hay n posibilidades, para el segundo hay n 1, pero como queremos reordenar r de ellos,el ultimo tendra(n r + 1)posibilidades (por que el ultimo tiene n r + 1 posibilidades??), as que el totalde combinaciones distintas de reordenarlos es : n.(n 1).(n 2).(n 3) . . . (n r + 1). Con algunas mani-pulaciones matematicas se define una permutacion de r elementos de n de la siguiente manera (esta comoejercicio demostrar de manera algebraica la igualdad entre el producto mencionado y la siguiente formula):

    Definicion 1.2 (r-permutacion)

    Una permutacion de r elementos de nelementos (r n) se representa como P(n, r) y se define como:P(n, r) = n!(nr)!

    Para ilustrar un caso de este tipo de permutacion, calculemos cuantas posibles maneras hay de reordenardos personas de las cuatro en la fila india antes mencionada, esta es una una 2-permutacion del problemade la cadena 1234, eso quiere decir que solo podemos permutar dos numeros de la cadena, como ejemplosde una 2-permutacion se tienen 23 o 42. Usando la formula definida en1.2, se tiene queP(4, 2) = 4!(42)! =12,en otras palabras, se pueden reordenar dos elementos de la cadena de 12 maneras distintas.

    Permutacion con repeticion

    Existe tambien la posibilidad de contarr-permutaciones con repeticiones, es decir, donde se repiten loselementos. En el caso del ejemplo que hemos trabajado una 3-permutacion con repeticion sera 112 o 244.Este tipo de permutaciones tienen una manera especial de contarse, dado que ahora cada posicion de lacadena puede ser cualquiera de los elementos del conjunto (no van disminuyendo de a uno las posibilidadescomo veniamos haciendo).

    3

  • 7/21/2019 Cartilla ETC v1.2

    9/110

    Cartilla Elementos de Teora en la Computacion Principios de Conte

    Si nos imaginamos las tres posiciones de la cadena como tres canastas y a las cuatro personas comcuatro frutas distintas, entonces en la primera canasta puedo ingresar cualquiera de las cuatro frutas (hacuatro posibilidades de llenarla), en cambio para la segunda canasta el numero de posibildades es el mimo, como tambien en la tercera, luego por cada canasta hay cuatro posibilidades as que por la regla dproducto el numero total de posibilidades de llenar las cuatro canastas con las cuatro frutas (o cuatrpersonas en una fila india) es 4 4 4.

    Siguiendo con la misma estructura mental se puede decir que una para calcular una r-permutaciocon repeticion de n elementos, para cada posicion de la permutacion hay n posibilidades y como sonposiciones entonces el total de posibilidades es nr. Resumiendo tenemos el siguiente resultado:

    Teorema 1.1Una r-permutacion con repeticion de nelementos es nr

    1.2.3: Combinacione

    Una combinacion derelementos de un conjunto de nelementos, es la manera de obtener un subconjuntde r objetos de ese conjunto, sin importar el orden, este tipo de combinaciones se les conoce como combinaciones. Para aclarar el concepto mencionado considere la 2-permutacion sin repeticion de la cadende numeros 1234:

    12,13,14,21,23,24,31,32,34,41,42,43

    Basados en lo dicho anteriormente una 2-combinacion del mismo conjunto sera:

    12,13,14,23,24,34

    Note que las 2-permutaciones 12, 21 son la misma 2-combinacion, dado que el conjunto {1,2} es igual conjunto {2,1}(es decir, no nos importa el orden).

    Ahora tratemos de derivar la formula matematica para obtener todas las r-combinaciones de un cojunto de n elementos. Para esto, primero se obtienen todas lasr-permutaciones que se puedan obtener dconjunto dado, pero se deben eliminar todas las posibles permutaciones de cada uno de los subconjuntode r elementos encontrados ya que todas representan la misma r-combinacion involucrada. Al igual qucomo cuenta un pastor ovejas a partir del total de patas que ve desde el piso, el total de permutacionese debe dividir por r! (si un pastor ve 16 patas el total de ovejas sera 4, pues cada cuatro patas hay unoveja). De esa manera podemos definir como el total de r-combinaciones de un conjunto de n element

    de la siguiente manera:

    Definicion 1.3 (r-combinacion)Una r-combinacion se representa como C(n, r) y se define como:

    nr = C(n, r) = n!

    r!(n r)!

    4

  • 7/21/2019 Cartilla ETC v1.2

    10/110

    Cartilla Elementos de Teora en la Computacion Principios de Conteo

    La formula definida tambien es comunmente conocida como el Coeficiente binomialnr, este termino

    sera mas claro en la seccion 1.3. Adicionalmente de la anterior definicion se puede concluir la siguienterelacion entre el total de r-permutaciones y el total r-combinaciones mencionadas:

    P(n, r) = r!.C(n, r)El siguiente ejemplo ilustra el uso de las combinaciones en el analisis combinatorio.

    Ejemplo 1.1Suponga que a un estudiante le dan la posibilidad de escoger en un examen 6 preguntas de 9 preguntaspropuestas. El numero de maneras distintas de que el estudiante pueda escoger 6 preguntas de las 9 es:

    96 = 9!

    6!3! =

    123456789

    (123456)(123) = 789

    123 =84

    Combinaciones con repeticion

    Al igual que con las permutaciones existen combinaciones con repeticion, esto implica que en cada po-sible subconjunto der elementos de un conjunto de n elementos puede tener elementos repetidos. Sabemospor lo visto en cursos anteriores que un conjunto de elementos no puede tener elementos repetidos, peroexiste unos tipos especiales de conjuntos que son conocidos como bolsas(que propiedades tendran este tipode conjuntos?), en donde se permiten tener elementos repetidos.

    Para hacer mas claro el concepto de bolsa y una r-combinacion con repeticion, considere la 2-combinacionde la cadea 1234:

    12,13,14,23,24,34

    La 2-combinacion de esa cadena con repeticion adicionara los conjuntos 11, 22, 33 y 44, as la 2-combinacionse convertira en:

    11,12,13,14,22,23,24,33,34

    Al igual que encontramos una formula para encontrar las r-combinaciones de un conjunto de n elementos,tratemos de encontrar una formula para que nos permita encontrar todas las r-combinaciones con repeticionde un conjunto de n elementos. Para esto, considere un conjunto S, cuyos elementos son s1, s2, s3 . . . sn.Note que cualquier combinacion con repeticion se puede representar como una permutacion donde todoslos s1 estan de primeras, luego siguen los s2, y as sucesivamente:

    s1, s1 . . . , s1, s2, . . . , s2, . . . , sn, . . . , sn

    Ahora, si distinguimos las divisiones entre los grupos de elementos repetidos por la barra, entonces nonecesitariamos de los sis, dado que podemos reemplazarlos por otro smbolo, por ejemplo por x. Parailustrar lo antes mencionado considere una permutacion de tres s1, un s2, ningun s3 y cuatro s4 y en laparte inferior mostramos la representacion usando x para cada si y como separador de los grupos deelementos repetidos:

    s1 s1 s1 s2 s4 s4 s4 s4x x x x x x x x

    5

  • 7/21/2019 Cartilla ETC v1.2

    11/110

    Cartilla Elementos de Teora en la Computacion Principios de Conte

    Cabe resaltar que ahora tenemos un problema equivalente a contar el numero de permutaciones de deequises y n 1 barras, pero hay que tener cuidado con la contada de las permutaciones, porque todas laequises y barras son iguales, as que debemos dividir el numero de permutaciones por todas las posiblepermutaciones iguales (por ejemplo intercambiar la primera xpor la segunda, eso sigue dandoxx, lo mismocurre en el caso de las barras). En el caso de las equises hay r! combinaciones que debemos eliminarpara el caso de las barras hay que eliminar

    (n 1

    )! permutaciones para esto se debe dividir el tot

    de permutaciones que hay en las repeticiones de las equises y de las barras. De esa manera el total dpermutaciones nos da (y por la Definicion1.3 se tiene la igualdad mostrada):

    (nr+1)!r!.(n1)! =n+r1r Para resumir tenemos el siguiente teorema:

    Teorema 1.2El numero de r-combinaciones con repeticion de un conjunto de nelementos esn+r1

    r

    Para finalizar, ilustremos el teorema anterior con el siguiente ejemplo. Suponga que 7 amigos se detienencomer a McDonalds, donde cada uno puede pedir una hamburguesa, un McFlurry o una porci on de papacuantas ordenes distintas pueden haber?. La respuesta es el numero de 7-combinaciones con repeticiode un conjunto de 3 objetos (hamburguesa, McFlurry o porci on de papas), entonces el numero total dordenes distintas es3+71

    7 = 36.

    1.2.4: Principio de las casilla

    En esta seccion se introduce un principio de vital importancia en la teora del conteo. El siguienteorema enuncia en que consiste el principio de las casillas:

    Teorema 1.3 (Principio de las casillas)Si se asignann objetos enm casillas ym < nentonces por lo menos una casilla contiene dos o mas objeto

    Este principio es bastante intuitivo porque si enumeramos los n objetos como 1, 2, . . . , n y a su vez enmeramos las m casillas como 1, 2, . . . , m, y para cada casilla de manera ordenada le asignamos un objetde la lista de objetos que tenemos, entonces faltaran por asignar m nobjetos, dado que m < n, entonchabra al menos una casilla que se le asignara uno de los objetos restantes.

    Por ejemplo, tome 8 personas aleatorimente de un conjunto, entonces por el principio de las casilla

    enunciado, entonces al menos dos de ellas habran nacido el mismo dia de la semana, dado que las personlas podemos modelar como objetos y los das de la semana como casillas.

    Cabe resaltar que el principio de las casilla nos garantiza la existencia de una casilla que contiene amenos dos objetos, en ningun momento nos menciona cual de esos objetos est an en la misma casillatampoco en que casilla hay al menos dos de ellos. Para poder encontrar la respuesta de que casilla tiene menos dos objetos (y cuales objetos son los que contiene) se debe construir o dar el caso concreto en el quesa condicion se cumple (pueden haber muchas respuestas o solo una, eso depende del problema planteado

    6

  • 7/21/2019 Cartilla ETC v1.2

    12/110

    Cartilla Elementos de Teora en la Computacion Principios de Conteo

    Aunque el enunciado de este principio es sencillo su uso es muy poderoso, pero algunas veces no estan obvio encontrar el conjunto de objetos y de casillas en un problema a solucionar, el siguiente ejemploilustra uno de esos casos:

    Ejemplo 1.2

    Para demostrar que si se esocogen 5 numeros del 1 al 8 , dos de ellos deben sumar 9 se usa el princpiode las casillas. Primero debemos identificar que parejas de numeros del 1 al 8 dan 9, entonces tenemosA1 ={1, 8}, A2 ={2, 7}, A3 ={3, 6} y A4 ={4, 5}, note que solo hay cuatro parejas de numeros del 1 al8 que suman 9. Si asignamos los cinco numeros escogidos aleatoriamente deben haber dos de ellos quedeben caer en alguno de los conjuntos, dado que en este caso las casillas son los conjuntos y los objetos losnumeros escogidos y por el principio de las casillas de haber una casilla que tiene al menos dos objetos.

    1.2.5: Ejemplos

    En esta seccion se muestran varios ejemplos que muestran el uso la teora hasta ahora abarcada, la

    intencion de esta seccion es mostrarle al estudiante los casos de uso de las distintas estrategias de conteoque se utilizan en el analisis combinatorio.

    Ejemplo 1.3En el curso de estadstica hay 55 hombres y 56 mujeres, cual es el total de numero de estudiantes que hayen el curso y cuantas posibles pareja hombre-mujer se pueden hacer?.

    El total de estudiantes en el curso (un estudiante puede ser mujer u hombre) por la regla de la sumason en total 111. El numero total de parejas que se pueden hacer (cada pareja es una mujer y un hombre)se calcula con la regla del producto, es decir, 55 56 = 3080.

    Ejemplo 1.4Suponga que para poder graduarse de la universidad tiene que cumplir un requirimiento de idioma. Parapoder cumplir este requerimiento tiene dos opciones:

    1. Hablar frances, aleman o japones.

    2. Tomar dos semestres de frances, aleman, japones o italiano, y ver dos semestres de koreano o hindi.

    De cuantas maneras se puede cumplir el requerimiento de idiomas?.

    Note que cada una de las dos opciones son disyuntas o no tienen nada en comun, de esa manera la reglade suma aplica, se deben sumar las posibilidades de cumplir la primera o la segunda condicion para pasarel requerimiento de idiomas. De la primera opcion tenemos tres posibilidades (frances, aleman o japones),de la segunda debemos contar el total de posiblidades de combinar las primeras cuatro opciones dadas(frances, aleman, japones o italiano) y las ultimas dos (koreano o hindi), aqu aplica la regla del productoporque se quiere que ocurran dos condiciones al tiempo (por ejemplo una posibilidad es ver dos semestresde frances y dos semestres de koreano) de esa manera el numero total de posibilidades para cumplir lasegunda condicion del requerimiento de idiomas es 4 2 = 8. Luego el total de posiblidades nos da 8 +3 = 11.

    7

  • 7/21/2019 Cartilla ETC v1.2

    13/110

    Cartilla Elementos de Teora en la Computacion Principios de Conte

    Ejemplo 1.5Tres parejas se quieren sentar en una fila del cine, pero las mujeres quieren sentarse juntas y los hombretambien. De cuantas maneras distintas pueden sentarse?

    Note que hay dos grupos en el problema, los 3 hombres y las 3 mujeres, el numero total de maneras dsentar esos dos grupos es 2!, pero dentro de cada grupo se pueden ordenar tres personas, es decir se puedordenar de 3! formas diferentes. Entonces, tenemos 2! maneras de sentar a las 3 mujeres juntas y a los hombres juntos, y ademas esas tres mujeres se pueden sentar de 3! formas distintas (note que el orden importa!), de igual manera ocurre con los hombres. Para contar todas las opciones posibles aplicamos regla del producto, de esa manera nos da 2! 3! 3! = 2 6 6 = 72 posibles formas distintas de sentar a latres parejas tal como ellas quieren.

    Ejemplo 1.6Cuantas permutaciones de las letras de la palabra ALGORITMO tienen la A y la L juntas (en cualquieorden)? Cuantas con la A y la L separadas por al menos una letra?.

    Como necesitamos que la A y la L esten juntas entonces contamos a (AL) como una letra, entonc(AL)GORITMO solo tiene 8 letras, de esa manera el numero de permutaciones es 8!. Ahora, toca contalas permutaciones de la letra (AL), este solo tiene 2! posibilidades, entonces el total de permutaciones dla primera pregunta es 8! 2!.Para la segunda pregunta debemos contar el numero total de permutacionde todas la letras de la palabra, el cual es 9! y le eliminamos las permutaciones que dejan a las letras AL pegadas (la respuesta de la primera pregunta), de esa manera nos da 9! (8! 2!). Ejemplo 1.7En una facultad de 5 hombres y 7 mujeres, un comite de juegos y espectaculos debe ser creado, pero e

    este comite debe haber al menos una mujer, cuantas posiblidades hay de hacerlo?

    Como primera solucion uno podra pensar en todas las posibilidades de escoger una mujer de lasdisponibles, esto es la 1-combinacion de un conjunto de 7 elementos:7

    1, y ahora escoger de los que queda

    los otros tres integrantes, es decir, la 3-combinacion de 11 elementos:113. De esa manera por la regla d

    producto el numero total de posibilidades (dado que deben pasar ambos casos contemplados) es71 11

    3

    El razonamiento anterior tiene un error, dado que se estan contando posiblidades dos veces, por ejempsuponga que se escogio a Mara en la primera combinacion y que en la segunda combinacion se escogieroa Pedro, Felipe y a Toya, pero tambien es posible que en la primera combinacion hubiera salido escogidToya y en la segunda combinacion salieron escogidos Mara, Pedro y Felipe y ambos son el mismo comitas que debemos contar con algo mas de cuidado, de tal manera que se eliminen las posiblidades de que no

    de el mismo comite , es decir, que en la mujer que salio en la primera combinacion no se pueda escoger dla segunda en alguna otra posibilidad contada. Entonces se debe contar de la siguiente manera: se escoguna mujer de las 7 y los tres restantes son hombres, o escoger dos mujeres de las 7 y los otros dos restanteson hombres, o escoger tres mujeres de las 7 y el restante un hombre, o escoger cuatro mujeres de las 7ningun hombre (Recuerde que debe haber al menos una mujer!). La formula que cuenta cada una de laposibilidades mencionadas es la siguiente (aplicando las formulas der-combinaciones, la regla del producty la regla de la suma):

    715

    3 + 7

    25

    2 + 7

    35

    1 + 7

    45

    0

    8

  • 7/21/2019 Cartilla ETC v1.2

    14/110

    Cartilla Elementos de Teora en la Computacion Teorema del binomio y sus aplicaciones

    Esta respuesta da muchas menos posibilidades que la primera planteada (puede hacer los c alculos paracomprobarlo).

    Ejemplo 1.8Una moneda se lanza 5 veces, cayendo en cara (C) o sello (S) cada vez. Un posible resultado de los cinco

    lanzamientos puede ser CCSSS, cuantos posibles resultados puede salir del experimento? cuantos tieneuna C? cuantos a lo mas una H?

    Por la regla del producto, hay 25 posibles resultados, un resultado con una C, es la permutacion de unabolsa(Ver pg. 5) de una Cy cuatro Ss, es decir, nos toca contar todas las permutaciones posibles peroeliminar las que tenga repetidas. Por ejemplo la permutacionC SS1S2Ses la misma que C SS2S1S porqueambas son el resultado CSSSS, de esa manera el total de resultados con una cara es 5!

    1!4! =5. Siguiendo

    la misma estructura de pesamiento se tiene que para la segunda pregunta el total de resultados donde nosale ninguna cara (todas son sello) es 5!

    0!5! =1 y por la regla de la suma y usando el resultado de la primera

    pregunta que se tienen en total 1 + 5 = 6 resultados con a lo mas una cara.

    Seccion 1.3: Teorema del binomio y sus aplicaciones

    El teorema el binomio es el resultado que permite encontrar el polinomio que representa la ecuaci onbinomial (llamado as por ser un polinomio de dos variables, x y y)(x+ y)n con n N. La manera deencontrar dicho polinomio esta muy relacionado con los coeficientes binomiales (razon por la cual llevanese nombre) mencionados con anterioridad (ver Definicion1.3).

    Note que: (x + y)n =(x + y)(x + y)(x + y) . . . (x + y)n factores

    De esa manera (con algunas operaciones algebraicas) se puede expandir como:

    (x + y)n =c0x0yn + c1x1yn1 + . . . + cnxny0El problema de fondo es encontrar el valor de los coeficientes ci, y para esto se utiliza analisis combinatorio.Adicionalmente la expansion anterior y sus coeficientes tienen relacion con el triangulo de Pascal.

    Primero vamos a explicar con argumentos combinatorios que valores toma cada uno de los coeficien-tes de expansion del polinomio binomial. El coeficiente ci es el numero de maneras en el que se puedenescogeriequises de los n factores disponibles (escogiendo i equises automaticamente se escogen n i ys).El numero de maneras de escoger i elementos de n es el numero de i-combinaciones, es decir, ci =ni(para esto trate de desarrollar el binomio(x + y)3 y trate encontrar el valor de los coeficientes, utilizandola tecnica explicada, del polinomio resultante al manipularlo algebraicamente). De esa manera se tiene que:

    (x + y)n = nk=0

    nkxkynk

    9

  • 7/21/2019 Cartilla ETC v1.2

    15/110

    Cartilla Elementos de Teora en la Computacion Teorema del binomio y sus aplicacione

    Pero comonk = n

    nk (por que?) entonces tambien se tiene que:

    (x + y)n = nk=0

    nn k

    xkynkAntes de explicar en que consiste el triangulo de Pascal y algunas de sus propiedades vamos a d

    algunos ejemplos del teorema del binomio:

    Ejemplo 1.9Cual es el coeficiente de x5y2 del binomio(x + y)7.

    Como n = 7 y el exponene de xes 5, entonces el coeficiente esnk =7

    5 =7

    2 = 21

    El ejemplo a continuacion muestra el uso del teorema del binomio para demostrar propiedades de lacombinatorias:

    Ejemplo 1.10Demostrar que nk=0 nk = 2n.

    Note que 2n =(1 + 1)n que por el teorema del binomio se tiene que(1 + 1)n = nk=0 nnk1k1nk, percomo 1m =1 entonces se tiene que 2n =nk=0 nk.

    1.3.1: Triangulo de pascal y el teorema del binomio

    Una manera interesante de listar los coeficientes binomialesnr es usando el triangulo de pasca

    llamado as por su descubridorBlaise Pascal. Dado que La fila n del triangulo contiene los n + 1 valorn0,n1, . . . ,nn. Para construir el triangulo se sigue el siguiente algoritmo:1. Se inicia colocando un uno en la parte superior del triangulo

    2. Cada fila nueva inicia con uno y los numeros intermedios son el resultado se sumar los dos numerconsecutivos de la fila inmediatamente anterior.

    El siguiente diagrama ilustra el triangulo de pascal de cuatro filas:

    n = 0: 1

    n = 1: 1 1

    n = 2: 1 2 1

    n = 3: 1 3 3 1

    n = 4: 1 4 6 4 1

    De esa manera si se quiere saber los coeficientes del binomio(x + y)3 tome la fila 3 del triangulc0 =1, c1 =3, c2 =3 y c3 =1, por lo que la expansion del binomio es : x3 + 3x2y + 3xy2 + y3.

    10

  • 7/21/2019 Cartilla ETC v1.2

    16/110

    Cartilla Elementos de Teora en la Computacion Conteo y conjuntos

    El triangulo Pascal tiene varias propiedades sorprendentes (varios se pueden encontrar consultando laWEB). Por ejemplo, en el hexagono de los valores 4,5,15,20,10,5 que encierra el tercer elemento (10) dela fila cinco cuando se multiplican los numeros alternados de dicho hexagono se obtiene que en todas lasposibilidades da el mismo resultado. Esto se cumple para todos los hexagonos que se encuentran dentrodel triangulo.

    Seccion 1.4: Conteo y conjuntos

    Existe una relacion muy cercana de la teora de conjuntos y el analisis combinatorio. Por ejemplo,se podra hacer un conteo donde se le restan a todas las posibilidades (sin las restricciones asociadas alproblema planteado) los casos que no cumplen con todas las restricciones impuestas en el problema in-volucrado, como si estuvieramos quitandole al universo el complemento del conjunto de los casos que senecesitan contar para obtener el conjunto deseado y as contar solo los elementos que lo conforman. Deesa manera uno puede utilizar propiedades de los conjuntos para poder contar, pero esto depende de la

    intuicion y solucion que se le de al problema.

    Uno por ejemplo puede escribir la regla de la suma en terminos de conjuntos, para esto considere losconjuntosAy B que estan contenidos en un universo U, note que si queremos calcular cuando elementostieneA B, se debe tener cuidado porque si A y B tienen elementos en comun se podran contar elementosdos veces.

    Antes de proponer la formula para contar todos los elementos de una union de dos conjuntos defina-mos que es la cardinalidad de un conjunto. La cardinalidad de un conjunto es el total de elementos quetiene ese conjunto y se denota por

    , es decir, si tenemos un conjunto A su cardinalidad sera

    A

    y si

    A ={1, 2, 3, 4, 5} entoncesA = 5, porque tiene 5 elementos.Continuando con la relacion entre la regla de la suma y conjuntos, calculemos que nos daraA B

    sera que se tiene queA B =A+ B? o sera queA B =A+ B A B?. Note que en el primer casoque se propone se suman dos veces elementos si A B (por que?), en cambio en la segunda se eliminanesas repeticiones, de esa manera la formula correcta es la segunda. Recuerde que cuando se defina la reglade la suma se peda que los conjuntos fueran disyuntos de a parejas y de esa forma se sumaba el tamanode ambos conjuntos, bueno acabamos de definir una regla de la suma mas general.

    Teorema 1.4Dados dos conjuntos Ay B, entonces siempre se tiene que:

    A B =A + B A B

    11

  • 7/21/2019 Cartilla ETC v1.2

    17/110

    Cartilla Elementos de Teora en la Computacion Ejercicio

    Seccion 1.5: Ejercicios

    1. Demuestre que nk=0 (1)nnk = 0.2. Demostrar algebraicamente que(

    n r +1)!

    = n!

    (nr)!3. Si se tiene una bolsa que contiene n elementos con k elementos distintos, y para cada uno de eso

    elementos distintos hay ni repeticiones, es decir, n = n1 + n2 + . . . + nk = n, fomule la ecuacion qupermite contar el total de permutaciones que se pueden realizar (de una justificacion combinatoria

    4. Calcular el numero de permutaciones de las palabras:

    a) Permutacion.

    b) Dedo.

    c) Releer.

    d) Combinacione) Comer.

    5. Demuestre con argumentos combinatorios que sin = 2 k entonces n!2k

    es un entero.

    6. Si se sientan seis personas, denominadas A,B,C,. . .,F, alrededor de una mesa redonda, cuantas diposiciones circulares distintas se pueden realizar si estas se consideran iguales cuando una se puedobtener de otra rotacion?.

    7. Los motos honda se producen en cuatro modelos, 12 colores, 3 potencias de motor y 2 tipos dtransmision.

    a) Cuantas motos distintas pueden fabricarse?.

    b) Si uno de los colores es rojo, cuantas motos distintas de color rojo se pueden fabricar?.

    c) Si una potencia de motor es V-8, cuantas motos de color rojo tienen motor V-8?.

    8. De cuantas maneras pueden ordenarse los smbolos a,b,c,d,e,e,e,e,e de forma que ninguna e seadyacente a otra.

    9. Determinese el numero de enteros de seis dgitos (que no comiencen con cero) de forma que:

    a) No se repita ningun dgito.

    b) Se puedan repetir los dgitosc) El numero sea palndrome.

    d) Solo tenga exactamente un dgito igual a tres.

    e) No se repita ningun dgito pero que el numero sea par. Cuantos de esos son divisible por cuatro

    10. En McDonalds una hamburguesa puede tener todos los ingredientes siguientes o ninguno de ellosalsa de tomate, mostaza, mayonesa, lechuga, tomate, cebolla, pepinillos, queso o setas. Cuanthamburguesas distintas pueden venderse en McDonalds?.

    12

  • 7/21/2019 Cartilla ETC v1.2

    18/110

    Cartilla Elementos de Teora en la Computacion Ejercicios

    11. En el sistema de comunicacion militar se usa un alfabeto secreto de 40 smbolos para transmitirmensajes.

    a) Cuantos mensajes diferentes de 25 smbolos puede generar el transmisor si se pueden repetir lossmbolos?.

    b) Cuantos mensajes diferentes de 25 smbolos se pueden generar si 10 de los 40 smbolos solopueden aparecer como el primero o el ultimo smbolo del mensaje y los 30 restantes puedenaparecer en cualquier lugar y se permiten repiticiones de todos los smbolos?.

    12. Hasbro en la produccion de un juguete tiene definido cuatro fases, para la primera fase hay seis lneasde montaje, mientras que para la segunda fase hay cuatro, cinco para la tercer y cinco para la cuarta.De cuantas maneras distintas Hasbro puede producir un juguete?.

    13. De cuantas maneras se pueden ordenar las letras de la palabra trabajan?

    14. De cuantas maneras se pueden ordenar las disposiciones del punto anterior si se exige que las tres A

    queden juntas?.

    15. Una sucesion de letras de la forma abcab, donde la expresion no se altera al invertir el orden, es unejemplo depalndromo (de cinco letras).

    a) Si una letra puede aparecer mas de dos veces. Cuantos palindromos de cinco letras hay? y deseis letras?.

    b) Repitase el literal anterior con la condicion que ninguna letra aparezca mas de dos veces.

    16. Para el siguiente algoritmo responda las pregutas:

    Algoritmo 1.1Ciclos anidadosfori = 1 to 12 do

    for j =1 to 10 doimprimir (i j)

    end forend for

    a) Cuantas veces se ejecuta la funcion imprimir?.

    b) Que principio de conteo se usa aqu?.

    17. a) De cuantas formas puede un estudiante responder un estudiante un cuestionario de diez preguntatipo falso o verdadero basandose solo en la conjetura?.

    b) De cuantas maneras puede responder el estudiante el cuestionario del literal anterior si se puededejar una pregunta sin responder para evitar una penalizacion por dar una respuesta equivoca-da?.

    c) Respondase a los literales anteriores para un cuestionario de preguntas de opcion multiple, enel que cada pregunta tiene cuatro opciones.

    13

  • 7/21/2019 Cartilla ETC v1.2

    19/110

    Cartilla Elementos de Teora en la Computacion Ejercicio

    18. Cuantos caminos distintos hay de (0,0) a (7,7) en el planoxy si un camino avanza un paso cada vebien un espacio hacia la derecha o hacia arriba?, cuantos hay de (2,7) a (9,14)?, se puede formuluna proposicion general que incorpore los dos resultados anteriores?.

    19. Proporcione una argumento combinatorio para mostrar que si n y k son enteros positivos conn = 3entonces n!

    (3!

    )k es un entero.

    20. a) Cuantas permutaciones hay de todas las letras de la palabra socialogicas.

    b) En cuantas permutaciones son adyacentes la A y la G?.

    c) En cuantas permutaciones del literal a), son adyacentes todas la vocales?.

    d) Cuantas permutaciones del literal anterior tienen las vocales en orden alfabetico?, cuantas dlitreal a)?.

    21. a) De cuantas maneras se puden sentar ocho personas, denominadas A,B,C,D,. . .,H, alrededor duna mesa cuadrada eliminando las combinaciones que se puede obtener de la rotacion de otras

    b) Si dos de las ocho personas , por ejemplo A y B, no se llevan bien. Cuantas maneras distintde acomodarlos sin que A y B se sienten juntos?.

    c) Dadas las posiciones del literal anterio, de cuantas maneras se evita que A y B se sienten unfrente al otro.

    22. Se va a seleccionar un comite de 12 personas de un grupo de 10 hombres y 10 mujeres. De cuantmaneras se puede realizar la seleccion: a) no hay restricciones, b) si se exige que deben quedar sehombres y seis mujeres?, c) si debe haber un numero par de mujeres, d) si debe haber mas mujerque hombres, e) si debe haber ocho hombres como minmo?.

    23. De cuantas formas puede sacar un jugador cinco naipes de una baraja de p oquer y obtener: a) u

    repoquer (cinnaipes del mismo palo), b) cuatro ases, c)cuatro cartas de un mismo palo, d) tres asey un dos, e) un full (tres de un mismo numero y una pareja), f) tres de un mismo numero, g) dobpareja?.

    24. Demuestrese que sin es un entero con n 1 entonces:

    2nn + 2n

    n 1 = 1

    22n + 2

    n + 1

    25. Un estudiante tiene que responder siete preguntas de un cuestionario de 10. De cuantas formas puedhacer su seleccon si: a) no hay restricciones, b) debe responder las dos primeras preguntas, c) deb

    responder a tres preguntas como mnimo de las cinco primeras?.

    26. Al pedir la especialida del da para comer, un cliente puede elegir entre tres primeros platos y puedseleccionar dos de las seis verduras disponibles:

    a) Cuantas comidas diferentes puede seleccionar: 1) si debe elegir dos verduras distintas, 2) si le permite tomar dos porciones de la misma verdura.

    b) Respondase los literales 1) y 2) de a) si el cliente tambien puede elegir como aperitivo zumo dtomate, zumo de naranja o sopa.

    14

  • 7/21/2019 Cartilla ETC v1.2

    20/110

    Cartilla Elementos de Teora en la Computacion Ejercicios

    27. Dado un entero positivo n, calculese la suma:

    n0 + 2n

    1 + 22n

    2 + . . . + 2kn

    k + 2nn

    n.

    28. Dado un numero real x y un entero positivo n, muestre que:

    a) 1 =(1 + x)n n1x1(1 + x)n1 + n

    2x2(1 + x)n2 . . . + (1)nnnxn.

    b) 1 =(2 + x)n n1(x + 1)(2 + x)n1 + n

    2(x + 1)2(2 + x)n2 . . . + (1)nn

    n(x + 1)n.

    c) 2n =(2 + x)n n1x1(2 + x)n1 + n

    2x2(2 + x)n2 . . . + (1)nn

    nxn.

    29. Determinese los coeficientes de x9y3 en: a)(x + y)12, b)(x + 2y)12, c)(2x + 3y)12.30. Determinese los coeficientes de:

    a) xyz2 en(x + y + z)4.b) w3x2yz2 en(2w x + 3y 2z)8.

    31. Una pastelera ofrece 20 tipos distintos de pasteles, si se supone que hay al menos una docena decada tipo , de cuantas maneras diferentes se puede seleccionar una docena de pasteles?.

    32. La presidenta Elena tiene cuatro secreatarias: 1) Beatriz,2) Carmen, 3) Maria Luisa y 4) Marta, ydesea repartir entre ellas 100 dolares en billetes de diez como regalo de navidad, de cuantas manerasse puede repartir ese dinero entre las cuatro secretarias :

    a) Suponiendo la posibilidad que una o mas secretarias no reciban nada.

    b) Si cada secretaria obtiene como mnimo diez dolares.

    c) Si cada secretaria debe recibir al menos diez dolares y Marta como secretaria principal 50 dolarescomo mnimo.

    33. De cuantas formas se pueden distribuir siete manzanas y seis naranjas entre cuatro ninos, de modoque cada nino reciba al menos na manzana?.

    34. Determinese todas las soluciones enteras de la ecuacion:

    x1 + x2 + x3 + x4 =7

    Con xi 1 para 1 i 4.

    35. Por un canal de comunicacion, se va a transmitir un mensaje de 12 smbolos diferentes. Ademas delos 12 smbolos, el transmisor tambien enviara un toal de 45 espacios en blanco entre los smbolos, contres espacios como mnimo entre cada par de smbolos consectivos. De cuantas maneras el transmisorpuede enviar el mensaje?.

    36. De cuantas formas se pueden distribuir diez monedas (identicas) entre cinco ninos: a) no hay restric-ciones, b) si cada nino recibe una moneda como minmo, c) si el nino mayor obtiene al menos dosmonedas.

    15

  • 7/21/2019 Cartilla ETC v1.2

    21/110

    Cartilla Elementos de Teora en la Computacion Ejercicio

    37. De cuantas formas se pueden distribuir 15 caramelos (identicos) entre cinco ninos de modo que menor obtenga solo uno o dos?.

    38. a) De cuantas maneras pueden seleccionarse cinco monedas de una coleccion de 10 conformada pouna moneda de uno, una de cinco, una de diez, una de veinticinco, una de cincuenta, y cinc(identicas) de cien?.

    b) De cuantas formas se pueden seleccionarn objetos de una coleccion de tamano 2nformada pnobjetos distintos y n identicos?.

    39. Para el siguiente algoritmo responda las pregutas:

    Algoritmo 1.2Ciclos anidadosfor i = 1 to 20 do

    for j =1 to i dofork =1 to j do

    imprimir (i j + k)

    end forend forend for

    a) Cuantas veces se ejecuta la funcion imprimir?.

    b) Que principio de conteo se usa aqu?.

    16

  • 7/21/2019 Cartilla ETC v1.2

    22/110

    Captulo 2: Induccion

    En este captulo se introduce los conceptos basicos de induccion y como este se relaciona con la co-rrecion de programas, calculo de predicados y los distintos metodos de demostracion conocidos hasta elmomento. Al final de este captulo el estudiante estara en la capacidad de identificar los problemas induc-tivos cuya demostracion involucra los conceptos explicados a lo largo del captulo.

    La mayora del contenido de este captulo se baso en [4],[2] y [1].

    Seccion 2.1: Introduccion

    Generalmente cuando hay una propiedad valida sobre los numeros naturales, esta debe ser verdaderasin importar que numero natural este involucrado. Es decir, si se toma cualquier numero natural estecumplira dicha propiedad. Para demostrar propiedades sobre los numeros naturales existe una tecnica

    denominada principio de induccion, que tal como su nombre lo indica permite probar una propiedad demanera inductiva sobre los naturales.

    El principio de induccion se puede comparar con un conjunto de fichas ennumeradas de domino puestasuna detras de otra de manera vertical, dado que este se basa en comprobar una propiedad de maneraincremental. Cuando un ficha de domino se cae hacia atras esta caera sobre la ficha inmediatamentesiguiente haciendo que esta tambien caiga, de esa manera iran cayendo todas las fichas hasta que se caigala ultima. En terminos matematicos si la k-esima ficha cae entonces caera la ficha k+1-esima, a partirde esto se puede intuir que pasa si la ficha numero 1 cae. De esta misma manera funciona el principiode induccion, dado que para probar que una propiedad o predicado P(n) vale en N (todos los numerospositivos), P

    (1

    )debe valer y si vale P

    (n

    ) entonces debe valer P

    (n + 1

    ), dado que desde n = 1 se puede

    llegar a cualquiera de los demas naturales siguientes.

    Seccion 2.2: Induccion sobre los naturales

    Consideremos el siguiente predicado:

    P(n)=( i1 i n 2i 1) = n2 (2.1)Por ejemplo, para nigual a 2 y 3 respectivamente, 2.1 establece que 1 + 3 =22 y 1 + 3 + 5 = 32, lo cual

    indica queP(2) y P(3)son validos. La pregunta es si P(n) es cierto siempre, es decir si la cuantificacion( n N 0 n P(n))es cierta.Una forma de probar que P(n) es cierta para todo numero natural es demostrar que P(0) es cierta

    y si P(k) es cierta para todos los naturales menores o iguales a un natural n dado, entonces tambien escierta P(n + 1).

    Esta ultima afirmacion puede escribirse como:

    ( n Nn > 0 P(0) P(1) . . . P(n 1) P(n)) (2.2)17

  • 7/21/2019 Cartilla ETC v1.2

    23/110

    Cartilla Elementos de Teora en la Computacion Induccion sobre los naturale

    Ahora, si ambas cosas son ciertas, podemos ver como construir una demostracion de P(n) para unumeroN dado:

    La demostracion de P(0) es cierta por rango vaco.De la veracidad de P(0) y P(0) P(1) (que no es mas que (2.2) en la instancia n =1), y usandModus Ponens conclu

    `Imos que P(1) es verdadera.De la veracidad de P(0) P(1) y P(0) P(1) P(2) (que no es mas que (2.2) en la instanc

    n=2), y usando Modus Ponens concluImos que P(2) es verdadera.. . .

    De la veracidad de P(0) . . . P(N 1)y P(0) . . . P(N 1) P.N(que no es mas que (2.2) ela instancia n=N), y usando Modus Ponens concluImos que P(N) es verdadera.

    Por supuesto, no necesitamos hacer todo esto para demostrar que P(N) es verdadera, es suficiensaber que en principio, podemos hacer esto para probarlo.

    El principio de induccion matematica, permite inferir a partir de las pruebas de P(0) y que P(n) verdadera para cualquier natural n. A continuacion formalizamos este concepto:Axioma 2.1Induccion Matematica sobre N:

    (n N ( i 0 i < n P(i)) P.n) ( n N P.n).

    Claramente de el consecuente del axioma anterior implica el antecedente, dado que si suponemos que P

    (n

    vale para cualquiern entonces se tiene que en particular todos los naturales menores que el cumplen P(ncabe resaltar que P(n) es un predicado sobre lo naturales, es decir se puede decir si es falso o verdaderde acuerdo al n dado, el objetivo final de la induccion es demostrar que para cualquier n que se ingreese predicado siempre sea cierto.

    Con las observaciones anteriores podemos entonces enunciar el siguiente axioma:

    Axioma 2.2Induccion Matematica sobre N:

    (n

    N ( i 0

    i Hipotesis de induccion P(n)2 (2 n + 1)

    = Aritmetica2 (n + 1) + 1 + 2 n 1

    > Aritmetica 2 n 1 > 0, ya que 3 n2 (n + 1) + 1

    Aqu, para probar el paso inductivo, transformamos el lado derecho de la definicion de P(n + 1) en lado izquierdo. Aunque se podra haber transformado el lado izquierdo en el derecho o simplemente partde P(n + 1) y llegar a true(note que las heuristicas de demostracion explicadas funcionan igual que comse vio en el curso de herramientas de logica computacional).

    Ejemplo 2.4Se quiere probar que(n N (h, k 0 h 0 k n 2 n 3 2h + 5k = n)). Primero definamoP(n) (h, k0 h 0 k n 2 2h + 5k =n):Caso base: P

    (2

    ) (h, k0 h 0 k n 2 n 3 2h + 5k =2) 2 = 2(1) + 5(0), tome como testigos a h = 1 y k =0

    2 = 2(1) + 5(0)Caso inductivo: En este caso vamos a demostrarlo por induccion fuerte, es decir que vamos a mostra

    que P(0) P(1) . . . P(n) P(n + 1) dado que en la demostracion vamos a necesitar que el predicadvalga para todos los anteriores y no solo para el inmediatamente anterior. De esa manera supongamos quP(0) P(1) . . . P(n) vale y demostremos que P(n + 1) vale, es decir que(h, k0 h 0 k n 222

  • 7/21/2019 Cartilla ETC v1.2

    28/110

    Cartilla Elementos de Teora en la Computacion Principio del buen orden

    2h + 5k =n + 1).(h, k0 h 0 k n 2 n 3 2h + 5k =n + 1)

    = n + 1 =(n 4) + 5(h, k0 h 0 k n 2 n 3 2h + 5k =(n 4) + 5)

    P(n 4) por hipotesis, existen h

    y k

    tal que n 4 = 2h

    + 5k

    2h + 5k + 5 =(n 4) + 5= Aritmetica

    2h + 5(k + 1) = n + 1

    Seccion 2.3: Principio del buen orden

    En los numeros naturales hay otra propiedad que esta relacionada con el principio de induccion y esel principio del buen orden. Cabe resaltar que la induccion esta definida sobre los naturales y la relacionde orden 2 (el concepto de rela-cion lo profundizaremos en el captulo cinco de la cartilla). Lo importante de resaltar en esta seccion esque los naturales son un conjunto que tiene definido un orden lineal parcial 1, al decir lineal nos referi-mos a que si tenemosa, b N solo se puede tener o bien quea < bo bien que a > b, pero no ambos al tiempo.

    El principio del buen orden lo que nos permite es que con un conjunto y un orden lineal parcial

    bien definido siempre podemos obtener subconjuntos (pueden ser igual al conjunto original) que tienenun mnimo, es decir es un pozo con fondo. Note por ejemplo que los numeros enteros no cumplenel principio del buen orden, porque si tomamos a todos los enteros y escogemos uno de ellos, siemprepodemos encontrar otro entero menor que el. Supongamos que ese numero es 4, claramente hay infinitosnumeros que son menores que 4, por ejemplo 120, 6, 0, 1, 2, 3, en este caso los enteros es un pozo sinfondo. La siguiente definicion resume lo que acabamos de decir:

    Definicion 2.1Sea(A,

  • 7/21/2019 Cartilla ETC v1.2

    29/110

    Cartilla Elementos de Teora en la Computacion Principio del buen orde

    Ejemplo 2.5Demostremos que que para todo n N, 0 + 1 + . . . + n = n(n + 1)2.

    Primero para n N, definamos P(n)la propiedad 0+1+. . .+n = n(n+1)2. P(n)es una afirmacion que eprincipio puede ser verdadera o falsa, dependiendo del valor de n. Por ejemplo, como 0+1+2+3 = 6 = 3(4)entonces P(3)es una afirmacion verdadera. Ahora definamos un conjunto que contenga todos los naturalque hacen a P

    (n

    ) verdadera:

    A ={n N P(n)}Como 0 = 0(1)2, concluimos que P(0) es verdadera, esto es, 0 A.

    Lo que realemte queremos ver es que se tiene(n n N 0 + + n = n(n + 1)2), o en otras palabraque A = N. Para esto razonemos por contradiccion: si A N, entonces Ac = N A es un subconjunto nvaco de N, luego debe tener un mnimo elemento m Ac (por que los naturales son bien ordenados). Percomo ya vimos, 0 A, as que m 0 y entonces m = n + 1 para algun natural n. Ya que n < m y m mnimo, concluimos que n A, es decir, 0 + + n = n(n + 1)2. Sumandon + 1 a ambos lados de la ecuacioobtenemos:

    0 + 1 + + n + (n + 1) = n(n+1)2

    + (n + 1)=

    n2+n+2n+22

    = (n+1)(n+2)

    2

    = (n+1)((n+1)+1)

    2

    = m(m+1)

    2

    Entonces 0 + + (n + 1) =0 + + m = m(m + 1)2, lo cual significa que p(m) es verdadera, esto em A, contradiciendo que m Ac.De esa manera concluimos por contradiccion que A = N, como queramos.

    2.3.1: Induccion y el principio del buen orden

    Las relaciones entre el principio del buen orden y el principio de induccion no nos son indiferentepues ambos principios tiene como fin demostrar propiedades sobre los numeros naturales. En realida

    el siguiente teorema nos permite decir que ambos principios son equivalentes, as que al demostrar unpropiedad sobre los naturales se puden usar indistintamente cada uno de estos principios.

    Teorema 2.3Las siguientes proposiciones son equivalentes:

    (a)(N, ) es un buen orden.(b) Principio de induccion.

    24

  • 7/21/2019 Cartilla ETC v1.2

    30/110

    Cartilla Elementos de Teora en la Computacion Definiciones inductivas

    La demostracion del teorema se ha planteado como ejercicio en la secci on de ejercicios del captulo.

    Seccion 2.4: Definiciones inductivas

    En computacion es muy usual hacer definiciones inductivas para modelar los problemas. Una definicioninductiva es una definicion en terminos de los elementos anteriores, de tal manera que es constructiva. Lapotenciacion (bn =(i 1 i n i)) es el ejemplo mas comun para una definicion inductiva, pues esta sepuede definir de la siguiente manera:

    b0 =1bn+1 =b bn para(n 0)

    Como se puede notar del ejemplo anterior, es que una definicion inductiva contiene dos partes, tiene

    al menos un caso base y tiene al menos uncaso inductivoque define una funcion para los demas casos demanera recursiva, este tipo de definiciones son tambien comunmente conocidas comodefiniciones recursivas.

    Existen varios ejemplos de definiciones recursivas, por ejemplo los numeros de Fibonacci y el factorialde un numero. En el caso del factorial se puede definir de la siguiente manera:

    0! = 1n! = n(n 1)! para(n > 0)

    De esta definicion podemos deducir que n! =(i 1 i n i) para todo natural, esto se puede demos-trar por induccion sobre los naturales. Sea P

    (n

    ) n! =

    (i

    1 i n i

    ).

    Caso base: n=00! =(i 1 i 0 i) =(i falso i) = 1

    Caso inductivo:Tenemos que mostrar que(n +1)! =(i 1 i n +1 i) suponiendo que n! =(i 1 i n i), paraesto utilizaremos la definicion inductiva del factorial del numero, pues nos permite escribir lo que debemosmostrar en terminos de la hipotesis inductiva.

    (n + 1)!=

    Definicion inductiva de (n+1)!

    (n + 1)n!= Hipotesis inductiva:n! =(i 1 i n i)

    (n + 1)(i 1 i n i)= Particion del rango del producto

    (i 1 i n + 1i)En la seccion de ejercicios se plantean distintos tipos de problemas de induccion que permitiran practicar

    el caso inductivo de las demostraciones y repasar propiedades de la aritmetica.

    25

  • 7/21/2019 Cartilla ETC v1.2

    31/110

    Cartilla Elementos de Teora en la Computacion Definiciones inductiva

    2.4.1: Induccion sobre definiciones inductiva

    De las definiciones inductivas uno puede probar propiedades en el contexto formal en el que se encuentren. Para demostrar la veracidad de esas propiedades se debe mostrar para el caso base y el pasinductivo, ambos casos son explicitos en la definicion inductiva. Un ejemplo claro de esto son los arbol

    binarios que explicamos a continuacion.

    2.4.2: Arboles binario

    Un arbol binario se puede escribir de manera inductiva:

    Definicion 2.2Un arbol binario puede ser vaco o contener elementos, por lo que se define de la siguiente manera:

    1. es un arbol binario llamadoarbol vaco.

    2.(d,l,r)es un arbol binario cond Z yly rarboles binarios, el izquierdo y el derecho respectivament

    En este caso solo contemplamos arboles binarios finitos, es decir, que son arboles que podemos representcon un conjunto finito de smbolos. De la definicion anterior se tiene que un arbolo binariot =(d,l,r), tienuna raz t.d y dos subarboles: el izquierdo t.l y el derecho t.r. Note que los subarboles tienen tambien unraz d, que realmente representa todos los nodosdel arbol binario representado, estos nodos se clasificaen dos tipos:nodos internosy nodos hojas, la diferencia radical es que en el ultimo tipo de nodos estos ntienen subarboles y en el primero hay al menos uno.

    Para ilustrar la definicion inductiva de arboles binarios tenemos el siguiente ejemplo:

    Ejemplo 2.6El arbol(3, , )es el arbol que solo contiene un nodo (que es el mismo que el nodo raz), mientras que arbol(3, (4, , ), (7, , ))es el mismo arbol anterior solo que tiene dos subarboles que tienen por raz4 y a 7 respectivamente, pero estos no tienen subarboles, por lo tanto son nodos hojas. Ahora note que arbol(3, (4, (5, , ), (6, , )), (7, , )), le agrega al arbol anterior al subarbol izquierda los subarbol(5, , )y(6, , ), conviertiendo al 4 en un nodo interno. De un arbol binario nos gustara saber que propiedades tiene, por ejemplo nos gustara saber cuantos nodtiene un arbol, esto es bastante sencillo de contar pues por cada arbol/subarbol se cuenta el nodo razel total de nodos de cada uno de sus subarboles. Dicho en otras palabras definimos # t como el total dnodos del arbolt y lo definimos de la siguiente manera:

    # = 0#(d,l,r) = 1 + #l + #t

    26

  • 7/21/2019 Cartilla ETC v1.2

    32/110

    Cartilla Elementos de Teora en la Computacion Induccion y el analisis de algoritmos

    Note que la definicion de # contempla contar el numero de nodos del caso base y el caso inductivo de ladefinicion inductiva de un arbol binario. De esa misma manera uno podra definir la altura2 o profundidadde un arbol. A continuacion enunciamos un teorema sobre arboles binarios que nos permitira ilustrar elprincipio de induccion en definiciones inductivas:

    Teorema 2.4El maximo numero de nodos de un arbol de altura nes 2n 1.

    Demostracion:Caso Base:Cuando el arbol es vaco: Como el arbol vaco no tiene nodos y su altura es cero entonces setiene que 20 1 = 0.

    Caso inductivo:Supongamos que para un arbol de altura n se tiene que el numero maximo de nodos2n 1, a esto le llamamos la hipotesis inductiva. Demostremos que si se tiene un arbol de altura n + 1 setiene que el numero maximo de nodos es 2n+1 1.

    Sea t =(d,l,r) un arbol de altura n +1, por lo que los subarboles l y r tienen que ser de altura n(entonces para ellos aplica la hipotesis inductiva), pues si no lo son la altura de t no podra sern + 1. Ahoracaculemos el numero de nodos que tendra t usando la definicion de #:

    #t

    = Definicion de #1 + #l + #r

    = Hipotesis inductiva en #l y #r1 + 2n 1 + 2n 1

    = Aritmetica2 2n 1

    = Aritmetica2n+1 1

    Seccion 2.5: Induccion y el analisis de algoritmos

    En esta seccion se ilustra con un ejemplo de que sirve conocer algunas ecuaciones probadas con induc-cion en el analisis de complejidades en algoritmos.

    En los algoritmos anteriores se ejemplifica como la complejidad del primero se puede reducir. Note queen el primer algoritmo se debe ejecutar el ciclo n veces, haciendo n sumas, para poder calcular la suma delos numeros hastan. Mientras que en el segundo la suma simplemente es una operaci on matematica que

    2La altura de un arbol es el nivel mas alto de un nodo en el arbol, donde los niveles inician desde la raz hasta los nodoshojas.

    27

  • 7/21/2019 Cartilla ETC v1.2

    33/110

    Cartilla Elementos de Teora en la Computacion Ejercicio

    Algoritmo 2.1Suma de los nprimeros numeros naturales de manera algoritmicasum=0for i = 1 to ndo

    sum=sum + i

    end for

    Algoritmo 2.2Suma de los nprimeros numeros naturales usando resultados de induccion

    sum= n(n+1)

    2

    no requiere de un ciclo, y solo tiene una suma, un producto y una division.

    La mayora de las veces que se quiere programar o desarrollar un algoritmo, conocer algunos resultady propiedades matematicas ayuda a encontrarlo mas rapido y hacerlo mas eficiente sin comprometer rendimiento del computador.

    Seccion 2.6: Ejercicios

    1. Demuestre los Teoremas2.1 y 2.3.

    2. Demuestre las siguientes afirmaciones utilizando el principio de induccion:

    a)(h, k0 h 0 k n 14 3 h + 8 k =n)b)(i0 i < n 2 i + 1) = n2c)(i0 i < n 2

    i

    ) = 2n

    1d)(i0 i < n 3i) = 3n1

    2

    e)(i0 i < n i2) = n(n+1)(2n+1)6

    f)(i0 i < n 2i i) =(n 1)2n+1 + 2g)(i0 i n ri) = rn+11

    r1 con r Ry r 1.

    h)(i1 i n (i)(i!)) =(n + 1)! 13. Demuestre las siguientes afirmaciones utilizando el principio de induccion:

    a) 2 n + 1 < 2n para todo n 3.

    b) n2

  • 7/21/2019 Cartilla ETC v1.2

    34/110

    Cartilla Elementos de Teora en la Computacion Ejercicios

    4. Demuestre que la siguiente definicion inductiva cumple el predicado P(n) n! =(i1 i n i):0! = 1n! = n (n 1)!

    5. Utilice la siguiente definicion inductiva para demostrar que 2 = + 1 y que 2 =

    +1. Donde

    = 1+52

    y

    = 15

    2 .

    F0 =0F1 =1Fn =Fn1 + Fn2.

    Esta definicion inductiva se conoce como la serie de fibonacci.

    6. Utilizando la definicion inductiva de los numeros de fibonnaci del punto anterior demuestre lassiguientes afirmaciones:

    a) Fn

  • 7/21/2019 Cartilla ETC v1.2

    35/110

    Cartilla Elementos de Teora en la Computacion Ejercicio

    16. Probar por induccion que la siguiente definicion inductiva cumple el predicado P(n) mn =2n paran 0.

    m0 =0.mn+1 =2 mn + 1.

    17. Demuestre por induccion la siguiente afirmacion en teora de conjuntos:

    A( ni=1

    Bi) = ni=1

    (ABi)18. Para n Z+ sea P(n) = el numero (aproximado) de bacterias en un cultivo despues de n horas.

    P(1) = 1000 y P(2) = 2000 y P(n) = P(n 1) + P(n 2) para todo n > 2, demuestrese que:P

    (n

    )=

    1000

    5

    1 +

    5

    2

    n+1

    1

    5

    2

    n+1

    19. Sean Ay B dos conjuntos, dondeA =m yB = n con ny m son enteros positivos y los elementode cada uno de los conjuntos estan en orden ascendente. Se puede probar que los elementos de A y pueden juntarse en orden ascendente sin hacer mas dem+n1 comparaciones. Utilcese este resultadpara probar que para n 0 y un conjunto CconC = 2n, el total de comparaciones necesarias parcolocar a los elementos de Cen orden ascendente esta acotado por n 2n.

    20. a) Sea n Z+, n 1, 3. Pruebese que es posible expresar ncomo una suma de doses y/o cincos.

    b) Para cualquier n Z+, demuestrese que si n 14 entonces n se puede escribir como una sumde treses y/o ochos.

    21. Considere las siguientes cuatro ecuaciones:

    1 = 12 + 3 + 4 = 1 + 8

    5 + 6 + 7 + 8 + 9 = 8 + 2710 + 11 + 12 + 13 + 14 + 15 + 16 = 27 + 64

    Conjeture una formula general basado en estas ecuaciones y preubela.

    22. Determine el numero positivo npara el cual:

    2n

    i=1

    i =n

    i=1

    i2

    23. Una sucesion de numeros esta definida por:

    a1 =1a2 =2an =an1 + an2n 3

    a) Determine los valoresa3, a4, a5, a6 y a7

    30

  • 7/21/2019 Cartilla ETC v1.2

    36/110

    Cartilla Elementos de Teora en la Computacion Ejercicios

    b) Demuestre que para todo n 1,an

  • 7/21/2019 Cartilla ETC v1.2

    37/110

    Cartilla Elementos de Teora en la Computacion Ejercicio

    d) Utilizando los literales anteriores demuestre que

    n + 13 + n + 2

    3 = n(n + 1)(2n + 1)

    6

    .

    e) Demuestre que parak Z+

    vale que k3

    =k

    3 + 4k+1

    3 + k+2

    3.f) Demuestre quen

    k=1

    k3 =n + 14 + 4n + 2

    4 + n + 3

    4 = n2(n + 1)2

    4.

    32

  • 7/21/2019 Cartilla ETC v1.2

    38/110

    Captulo 3: Especificacion y correcion de algoritmos

    En este captulo se introduce los conceptos basicos de la especificacion y correccion de algoritmos, cuyabase primordial es el calculo de predicados, visto en el curso previo a este, y las propiedades de induccionde los naturales explicadas en el captulo anterior.

    Se introducen dos conceptos primordiales como lo es la precondicion y poscondicion de un programa,ya que permite definir las condiciones iniciales y finales que se deben satisfacer para que dicho algorimoinicie y termine de manera correcta (haga lo que tiene que hacer a partir del punto de donde debe iniciar), de tal manera que oriente su diseno e implementacion. Adicionalmente, se introduce la manera correctade plantear y construir tres elementos basicos en programacion: las asignaciones, los condicionales y losciclos. Dado que estos son las bases para la elaboracion de programas correctos que solucionan problemasde la vida real.

    El estudiante al final del captulo podra utilizar su contenido y el conocimiento en metodos de demos-tracion adquirido en el curso anterior para disenar, demostrar y especificar algoritmos correctos de acuerdoal problema de programacion planteado utilizando los resultados mas relevantes expuestos en este captulo.

    El contenido de este captulo se baso en [4].

    Seccion 3.1: Introduccion

    Cuando se esta disenando un algoritmo siempre se deben tener en cuenta tres cosas: primero quecondiciones se necesitan para que inicie el algoritmo de manera correcta, segundo que esas condicionesse mantengan mientras el algoritmo se esta ejecutando, y por ultimo el algoritmo tiene un fin para elcual fue disenado, de esa manera cuando el algoritmo haya terminado hay que verificar que realmente lascondiciones de aceptacion de su ejecucion se cumplen.

    Un algoritmo es simplemente un conjunto de pasos que al ejecutarse cambia un conjunto de estadosiniciales a un conjunto de estados finales. Ese algoritmo tiene asignaciones, condiciones y ciclos, que debenejecutarse uno tras otro de manera correcta. Por esa razon en la especificacion y correccion de algoritmosno solo nos preocupamos por entender bien el problema (precondicion, poscondicion y todos su posiblesestados cuando esta en ejecucion) sino en disenarlo de manera correcta, es decir que las asignaciones, condi-ciones y ciclos que all aparezcan esten correctos en terminos del mismo problema que se este solucionando,es decir, que haga lo que se pretendio que tena que hacer.

    En este captulo vamos a ir introduciendo de manera progresiva como especificar un programa o

    algoritmo, como hacer la correcion de asignaciones, condicionales y ciclos. De tal manera que cuando setenga un algoritmo completo se pueda verificar su correccion con respecto a su especificacion.

    Seccion 3.2: Especificacion de algoritmos

    Cuando nos plantean un problema de programacion para el cual hay que proponer una solucion, loprimero que se tiene que hacer es entender que requiere el problema. Dicho de otra manera, se tiene que

    33

  • 7/21/2019 Cartilla ETC v1.2

    39/110

    Cartilla Elementos de Teora en la Computacion Especificacion de algoritmo

    especificar el programa que nos estan solicitando solucionar, para poder especificar o entender un problemse deben tener en cuenta dos elementos:

    a) Precondicion:Las condiciones iniciales que se deben cumplir antes de iniciar su ejecuci on.

    b) Poscondicion:Las condiciones finales que debe cumplir el el programa, de tal manera que coincida

    con lo que el programa tiene hacer.

    Entre la precondicion y la poscondicion esta elalgoritmo o programaque soluciona el problema. Con estotres elementos se especifica un programa, esta especificacion se representa como una Tripla de Hoare:

    {Q}S{R}Esa tripla Hoare lo que realmente significa es que Sse ejecuta siempre queQ se cumpla (o sea verdadera)Stermina haciendo queR sea verdadera, o dicho de otra maneraQes la precondicion,R es la poscondicioy Sel programa. Cabe resaltar que tanto la precondicion como la poscondicion se escriben en el lenguade calculo de predicados.

    El siguiente ejemplo ilustra como se debe especificar un algoritmo, de tal manera que s olo se puedinterpretar de una manera, es decir, que no de pie a ningun tipo de ambiguedad:

    Ejemplo 3.1Suponga que se quiere especificar el programa que dado un arreglo b[n] encontrar el ndice i (con i en rango del tamano del arreglob) donde se encuentra un valorxdado, la siguiente tripla de Hoare especificarel programa de manera precisa:

    {x b[0 . . . n 1]}i =?{0 i < n x = b[i]}Note que como precondicion se tiene que el valor x esta en el arreglo, como queremos averiguar en quposicionidel arreglo estax, entonces en la especificacion de Saparece como interrogante que valor sera(pero aun no sabemos como obtenerlo, solo se menciona que se necesita encontrar ese i, porque solo estamos especificando!) y la poscondicion es que realmente i es un ndice del arreglo y que en esa posiciosi este el valor xque se esta buscando.

    A diferencia del ejemplo anterior, el siguiente ejemplo incluye que el ndice a encontrar sea el primero dtodos los ndices del arreglo donde pueda aparecer:

    Ejemplo 3.2Suponga que se quiere especificar el programa que dado un arreglo b[n] encontrar el primer ndice(con i en el rango del tamano del arreglo b) donde se encuentra un valor x, la siguiente tripla de Hoaespecificara el programa de manera precisa:

    {x b[0 . . . n 1]}i =?{0 i < n x = b[i] (j0 j i)}Note que como precondicion se tiene que el valor x esta en el arreglo (pero eso no quiere decir que soeste una vez), como queremos averiguar la primera posicion posicion i del arreglo esta x, entonces en especificacion de Saparece como interrogante que valor serai (pero aun no sabemos como obtenerlo, so

    34

  • 7/21/2019 Cartilla ETC v1.2

    40/110

    Cartilla Elementos de Teora en la Computacion Especificacion de algoritmos

    se menciona que se necesita encontrar ese i, porque solo lo estamos especificando!) y la poscondicion esque realmente i es un ndice del arreglo y que en esa posicion si este el valor xque se esta buscando, perohay una condicion extra y es que si llegan a aparecer otros ndices en el arreglo distintos dei, entonces esosndices tienen que ser mayores que i, porque tenemos que asegurar que i es el primero en el que aparece x.

    Los siguientes dos ejemplos ilustran algunas estrategias para especificar un algoritmo:

    Ejemplo 3.3Suponga que se quiere especificar un programa que ordene los elementos de un arreglo b[0..n 1] en or-den ascendente (de menor a mayor). Primero debemos precisar un predicado que nos permita mencionarel orden de los elementos de un arreglo en otro arreglo (donde vamos a guardar el arreglo original peroordenado de manera ascendente), para esto defina P(b,c,n): El arreglob[0..n 1]es una permutacion delarregloc[0..n 1](es decir los dos arreglos tienen los mismos elementos pero posiblemente en otro orden).

    Nuestro objetivo final es guardar los elementos de b[0..n 1] en un arreglo C[0..n 1] que tenga losmismos elementos deb, pero ordenados de manera ascendente. Por tanto, una poscondici on adecuada sera:P(b,C,n) (i 0 < i n 1 C[i 1] C[i]), es decir, Ces una permutacion de b, (pero por la segundacondicion) se pide que los elementos de Cestan ordenados de manera ascendente. Ahora, la precondiciondebe asegurar que el tamano de ambos arreglos es de mas de un elemento y que Cse inicializa con b (pa-ra modificar aCy no danar el arreglo original), entonces la precondicion sera:(0 n)(C[0..n] = b[0..n]).

    De esa manera la tripla de Hoare quedara:

    {(0 n

    )

    (C

    [0..n

    ]= b

    [0..n

    ])}C =?

    {P

    (b,C,n

    )

    (i

    0 < i n 1C

    [i 1

    ] C

    [i

    ])} Ejemplo 3.4Suponga que se quiere calcular la suma de los elementos que componene un arreglo b[0..n]. Para estodebemos solo asegurar que el arreglo si tiene elementos, mas aun hay que asegurar que sus elementossean numeros (para el ejemplo vamos a hacerlo solo con numeros enteros, para los otros tipos numeroses similar), de esa manera nuestra precondicion solo sera: n 1(i 0 i < n b[i] Z). Como de-bemos calcular la suma de sus elementos, debemos tener una variable donde almacenemos dicha suma(llamela x), es decir, que nuestra poscondicion sera que en esa variable esta la suma de los elementos de

    b: x =(i0 i < n b[i]).Entonces nuestra tripla de Hoare es:

    {n 1 (i0 i < n b[i] Z)}x =?{x =(i0 i < n b[i])}

    35

  • 7/21/2019 Cartilla ETC v1.2

    41/110

    Cartilla Elementos de Teora en la Computacion Correcion de asignacion y condicionale

    Seccion 3.3: Correcion de asignacion y condicionales

    3.3.1: Correcion de asignacione

    Ahora nos preguntamos como probamos una tripla de Hoare cuando S es una asignacion, dado qucasi siempre cuando se disena un algoritmo hay una parte donde se inicializan variables o se intercambiavalores entre variables. Al decir probar la especificacion nos estamos refiriendo a que siQes cierta entonctoca mostrar que R al evaluarse en la asignacion debe ser cierta, para que valga la poscondicion despude ejecutarse dicha asignacion. Esto se puede resumir en la siguiente proposicion:

    Teorema 3.1Para mostrar que x=Ees una implementacion de{Q}x =?{R}se debe probar que :

    Q R[x=E].

    El siguiente ejemplo ilustra el resultado anterior:

    Ejemplo 3.5Considere la siguiente tripla de Hoare:

    {x > 0}x =?{x > 1}Una posible implementacion es tomar S como x = x + 1, de esa manera para probar que realmente esasignacion es un programa correcto se debe mostrar que la precondicion implique la poscondicion, es dec

    x > 0 (x >1)[x=x + 1]Utilizando el metodo de demostracion de asumir el antecedente entonces tomaremos x > 0 como verdaddemostraremos que(x > 1)[x=x + 1] vale:

    (x > 1)[x=x + 1]= Sustitucion textual

    x + 1 > 1=

    Aritmeticax > 0= Hipotesis

    true

    Del teorema anterior podemos calcular una precondicion Q a partir de una poscondicion R, como?, bastante sencillo, dado que la precondicion mas debilque cumple el teorema es la misma consecuencia dteorema. Es decir, para una asignacion x = E la precondicion mas debil para llegar a la poscondicion

    36

  • 7/21/2019 Cartilla ETC v1.2

    42/110

    Cartilla Elementos de Teora en la Computacion Correcion de asignacion y condicionales

    esR[x=E], dado que R[x=E] R[x=E]se cumple trivialmente. Este resultado nos permite resolverlas especificaciones de programas que tienen la siguiente tripla de Hoare:

    {?}x =E{R}Los ejemplos a continuacion muestran como obtener la precondicion mas debil basados en una asignacion

    y una poscondicion:

    Ejemplo 3.6Hallar la precondicion mas debil Qque hace valida la siguiente tripla de Hoare:

    {?}q, r =q+ 1, r y{q y + r =x}Para solucionarlo tenemos que hallar R[x = E] (dado que esta es la precondicion mas debil de una

    asignacion), de esa manera se tiene la siguiente demostracion:

    (q y + r =x) [q, r =q+ 1, r y]=

    Sustitucion textual(q+ 1) y + (r y) = x= Aritmetica(q y + y + r y) = x= Aritmetica

    q y + r =x

    De esa manera Q (q y + r =x). Ejemplo 3.7Hallar la precondicion mas debil Qque hace valida la siguiente tripla de Hoare:

    {?}y =5 + y{x = y}Para solucionarlo tenemos que hallar R[x = E] (dado que esta es la precondicion mas debil de una

    asignacion), de esa manera se tiene la siguiente demostracion:

    (x = y) [y =5 + y]= Sustitucion textual

    x = y + 5

    De esa manera Q (x = y + 5). Tambien sabemos que en un programa pueden haber asignaciones de manera consecutiva:

    {Q}x1 =E1, x2 =E2 . . . , xn =En{R}De esa manera el Teorema3.1 se puede generalizar de la siguiente forma:

    Teorema 3.2Para mostrar que x1 =E1, x2 =E2 . . . xn =En es una implementacion de{Q}x1 =?, x2 =?, . . . xn =?{R}se debe probar que:

    37

  • 7/21/2019 Cartilla ETC v1.2

    43/110

    Cartilla Elementos de Teora en la Computacion Correcion de asignacion y condicionale

    Q R[xn =En][xn1 =En1] . . . [x1 =E1]

    La demostracion de este teorema es bastante sencilla dado que la ejecucion de cada asignacion es linealse debe asegurar que en cada una de las asignaciones se obtenga la precondicion mas debil para la siguienasignacion, razon por la cual el teorema dice que toca demostrar la poscondicion pero con las asignacional contrario a como se ejecutan (trate de escribir una demostracion formal del teorema).

    En los siguientes ejemplos se ilustra como demostrar asignaciones mutiples utilizando el teorema aterior:

    Ejemplo 3.8Demostrar que la siguiente tripla de Hoare es correcta:

    {0 = y}x =x + 1 ; y =x + y{x = y}Utilizando el teorema anterior, tenemos que mostrar que y =0 (x = y)[y =x +y][x=x +1]. Entonc

    utilizando por metodo directo supongamos que y =0 y mostremos que(x = y)[y =x + y][x=x + 1]:(x = y)[y =x + y][x=x + 1]

    = Sustitucion textual(x = y + x)[x=x + 1]= Sustitucion textual

    x+

    1=

    y+

    x+

    1= Aritmeticay =0

    = HipotesisTrue

    Ejemplo 3.9Demostrar que la siguiente tripla de Hoare es correcta:

    {x = A y =B

    }x =x y; y =x + y; x=y x

    {x = B y =A

    }Utilizando el teorema anterior, tenemos que mostrar que:

    x = A y =B (x = B y =A)[x=y x][y =x + y][x = x y]Entonces utilizando por metodo directo supongamos que x = Ay = B y mostremos que(x = B yA)[x=y x][y =x + y][x = x y]:

    38

  • 7/21/2019 Cartilla ETC v1.2

    44/110

    Cartilla Elementos de Teora en la Computacion Correcion de asignacion y condicionales

    (x = B y =A)[x=y x][y =x + y][x=x y]= Sustitucion textual(y x = B y =A)[y =x + y][x=x y]= Sustitucion textual y aritmetica(y =B x + y =A)[x=x y]=

    Sustitucion textual

    y =B (x y) + y =A)= Aritmetica

    y =B x = A

    = HipotesisTrue

    Para terminar con esta seccion de correccion de asignaciones, el siguiente ejemplo ilustra como utilizar losteoremas mencionados con anterioridad para deducir el valor de una asignacion:

    Ejemplo 3.10Se quiere determinar Ede manera que la siguiente tripla sea valida:

    {i = j}i, j =i + 1, E{i = j}Intuitivamente, E sera j + 1, pues el razonamiento del programa sera: Partimos de i = j, entonces al

    sumar uno a ambos lados tenemos que i + 1 = j + 1, es decir que los nuevos valores de i, j siguen siendoiguales, pero vamos a justificarlo con nuestros teoremas. Sabemos que el hecho que la tripla sea validasignifica que Q (i = j)[i, j =i + 1, E].

    Podemos manipular dicha implicacion (por lo general lo haremos de esta manera), asumiendo la premisa

    cierta (en este caso la premisa es i = j), de modo que la conclusion sera cierta:

    True

    = Suposicion hecha que conclusion es cierta(i = j)[i, j =i + 1, E]

    = Sustitucion textual(i + 1 = E)

    = Sustitucion textual por premisa i = j(j + 1 = E)

    LuegoE =j + 1 hace cierta la implicacion, como queramos verificar.

    3.3.2: Correccion de condicionales

    Recordemos que en todos los algoritmos que solucionen un problema de programacion hacen uso decondiciones para ejecutar o validar un conjunto de acciones. De esa manera tambien existen herramientaspara demostrar la correccion de estos, para esto primero definamos formalmente que es un condicional.

    39

  • 7/21/2019 Cartilla ETC v1.2

    45/110

    Cartilla Elementos de Teora en la Computacion Correcion de asignacion y condicionale

    La instruccion condicional se llama y se representa como IFy tiene la siguiente forma en mucholenguajes de programacion:

    IF ifBthenS1elseS2

    DondeB es una expresion booleana, y S1y S2 son dos programas que se ejecutan segun el valor deBsi B es cierta entonces se ejecutara S1 de lo contrario se ejecutara S2.

    Ahora, supongamos que se quiere la ejecucion de un condicional inicie en un estado que satisface precondicion Q para llegar a una poscondicion R, es decir{Q}I F{R}, nos preguntamos entonces comse hace para garantizar que{Q}I F{R} sea valida. Note primero que cuando B es cierta entonces S1 ejecutara, de esa manera S1 tiene que hacer verdad a R; por otro lado si B es falsa (o lo que es lo mismBes verdad), se ejecutaraS2, as queS2debe hacer verdad aR. En pocas palabras se cumple la siguienespecificacion:

    {Q}ifBthen{Q B}S1{R}else

    {Q B

    }S2

    {R

    }{R}De esa manera podemos enunciar el siguiente teorema para la verificacion de la correccion de cond

    cionales:

    Teorema 3.3Para probar que{Q}I F{R}, es suficiente con probar:

    a){Q B}S1{R}.b){Q B}S2{R}.

    En los siguientes ejemplos se ilustra el uso del teorema anterior:

    Ejemplo 3.11Considere el siguiente algoritmo:

    {true}ifx ythenskipelsex, y =y, x

    {x y}Usando el Teorema3.3tocara proba