LA DEMOSTRACIÓN EN MATEMÁTICA

132
ISAE UNIVERSIDAD LICENCIATURA EN INFORMÁTICA ESPECIALIZACIÓN EN AUDITORÍA DE SISTEMAS MÓDULO DE APRENDIZAJE MATEMÁTICA DISCRETA PARA LA COMPUTADORA PROFESOR HERNÁN ESPINOSA PRESENTADO POR YESENIA GONZALEZ Presentado por YESENIA GONZALEZ céd 4-239-906

Transcript of LA DEMOSTRACIÓN EN MATEMÁTICA

Page 1: LA DEMOSTRACIÓN EN MATEMÁTICA

ISAE UNIVERSIDAD

LICENCIATURA EN INFORMÁTICA

ESPECIALIZACIÓN EN AUDITORÍA DE

SISTEMAS

MÓDULO DE APRENDIZAJE

MATEMÁTICA DISCRETA PARA LA

COMPUTADORA

PROFESOR

HERNÁN ESPINOSA

PRESENTADO POR

YESENIA GONZALEZ

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 2: LA DEMOSTRACIÓN EN MATEMÁTICA

INTRODUCCIÓN

La Matemática discreta es la parte de la matemática encargada del

estudio de los conjuntos discretos: finitos o infinitos numerables. En

oposición a la matemática continua, que se encarga del estudio de

conceptos como la continuidad y el cambio continuo, la matemática discreta

estudia estructuras cuyos elementos pueden contarse uno por uno

separadamente. Es decir, los procesos en matemática discreta son

contables, como por ejemplo, los números enteros, grafos y sentencias de

lógica.

Mientras que el cálculo infinitesimal es primordial en el estudio de procesos

analógicos, la matemática discreta es la base de todo lo relacionado con los

procesos digitales, y por tanto, se constituye en parte fundamental de la

ciencia de la computación, una de las ramas de estudio impartidas en los

estudios de Ingeniería Informática.

La clave en matemáticas discretas es que no es posible manejar las ideas de

proximidad o límite y suavidad en las curvas, como se puede en el cálculo.

Por ejemplo, en matemáticas discretas una incógnita puede ser 2 o 3, pero

nunca se aproximará a 3 por la izquierda con 2.9, 2.99, 2.999, etc. Las

gráficas en matemáticas discretas vienen dadas por un conjunto finito de

puntos que puedes contar por separado, es decir sus variables son discretas

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 3: LA DEMOSTRACIÓN EN MATEMÁTICA

o digitales, mientras que las gráficas en cálculo son trazos continuos de

rectas o curvas, es decir sus variables son continuas o analógicas.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 4: LA DEMOSTRACIÓN EN MATEMÁTICA

LA DEMOSTRACIÓN EN MATEMÁTICA

LA INDUCCIÓN MATEMÁTICA

La demostración matemática es una sucesión coherente de pasos que,

tomando como verdadero un conjunto de premisas llamado hipótesis,

permite asegurar la veracidad de una tesis. Estos pasos deben estar

fundamentados en la aplicación de reglas de deducción (fundadas ya sea en

axiomas o en teoremas anteriormente demostrados o en reglas básicas de

deducción del sistema en cuestión). El hecho de no conocer ninguna

demostración de un teorema no implica su no veracidad; sólo la

demostración de la negación de este resultado implica que es falso.

La inducción matemática es un razonamiento que permite demostrar una

infinidad de proposiciones, o una proposición que depende de un parámetro

n que toma una infinidad de valores enteros. En términos simples, la

inducción matemática consiste en el siguiente razonamiento:

Premisa mayor: El número entero a tiene la propiedad P.

Premisa menor: El hecho de que cualquier número entero n tenga la

propiedad P implica que n + 1 también la tiene.

Conclusión: Todos los números enteros a partir de a tienen la propiedad P.

TECNICAS DE DEMOSTRACIÓN EN MATEMÁTICAS

En general no existe un procedimiento único de demostración de teoremas,

sí existen diferentes tipos de demostraciones que son utilizados

comúnmente en matemáticas:

1. Demostración por contraposición (formalizado y utilizado, en los

silogismos, por Aristóteles).

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 5: LA DEMOSTRACIÓN EN MATEMÁTICA

Con este método se intenta demostrar directamente la validez de B ⇒ A, lo

cual, según la contrapositiva, equivale a demostrar que A ⇒ B es válido.

¿(∀x∈Z) (x múltiplo de 10 ⇒ múltiplo de 5?; en realidad, si queremos usar la

contrapositiva, la pregunta es equivalente a ¿(∀x∈Z) (x no es múltiplo de 10

⇒ no múltiplo de 5?. Con A y B definidos anteriormente;

¬B ≡ (∀n∈Z) (x≠n•5), un entero (n=k•2), (∀k∈Z) (x≠k•2•5)≡(∀k∈Z) (x≠k•10)≡¬A

2. Demostración por reducción al absurdo (formalizado y utilizado

por Aristóteles), y como caso particular, descenso infinito.

Este método consiste en demostrar la validez de (A ^ B) ⇒ 0, lo cual, según

la tautología "reducción al absurdo", implica la validez de A ⇒ B.

¿Si un número real sumado consigo mismo es él mismo, entoces tal número

es el cero?

sea x∈R, A∧¬B ≡ (x+x=x)∧(x≠0)

Al ser x≠0, podemos dividir 2x=x entre x, lo cual conduce a la contradicción

2=1

PRINCIPIO DE INDUCCIÓN MATEMATICA (FUERTE Y DEBIL)

El principio de Inducción Matemática es un método que se utiliza para

demostrar propiedades, formulas, validarlas y probar que son verdaderas.

Es un método simple que consta de tres pasos fundamentales en los cuales

se debe demostrar la propiedad reemplazando su incógnita por 1, luego por

k y finalmente por k+1.

INDUCCIÓN FUERTE

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 6: LA DEMOSTRACIÓN EN MATEMÁTICA

La inducción fuerte o inducción completa es un método de demostración

matemático similar a la inducción matemática común, pero difiere en el

razonamiento de lo que queremos demostrar. Se toma un número fijo y se

toma como hipótesis que es cierto para otro número fijo mayor que éste y

para todos los que están entre ellos. Así, la afirmación es cierta sólo si

también se cumple para el sucesor de este último número.

Llamamos paso básico a A, paso inductivo fuerte a B y hipótesis inductiva

fuerte a (∀ r≤k) (P(r) verdadero).

A ≡ P(n1) verdadero B ≡(∀k≥n1) (((∀r≤k)(P(k) verdadero)⇒ P(s(k)) verdadero) A∧B ⇒ (∀n∈S) (P(n) verdadero)

INDUCCIÓN DEBIL

El método de inducción débil o inducción desplazada, que usa un

razonamiento en cierto modo inverso a este, ya que toma como base la

hipótesis de que es cierta para el antecesor del que se quiere demostrar.

El procedimiento es válido considerando que los elementos de lo que

queremos demostrar pertenecen a un conjunto inductivo. Es decir, el

conjunto de todas las afirmaciones es un conjunto inductivo.

Llamamos paso básico a A, paso inductivo débil a B y hipótesis inductiva

débil a P(k).

A ≡ P(n1) verdadero B ≡(∀k≥n1) (P(k) verdadero)⇒ P(s(k)) verdadero)

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 7: LA DEMOSTRACIÓN EN MATEMÁTICA

A∧B ⇒ (∀n∈S) (P(n) verdadero)

INDUCCIÓN ESTRUCTURAL

La inducción estructurada es un método de demostración utilizado en Lógica

matemática, teoría de los grafos, Computación y en otras áreas. Se trata de

una generalización de la inducción matemática.

Dado un conjunto C con un orden parcial bien fundamentado < sobre sus

elementos, la prueba de una propiedad P(x) para todo elemento x de C se

realiza por inducción estructural basándose en la siguiente regla de

inferencia:

La prueba por inducción estructural consiste en demostrar que una

proposición se cumple para todos los elementos mínimos del tipo, y que si la

propiedad se cumple para todas las subestructuras de una cierta estructura

S, entonces se debe cumplir también para S. Por ejemplo, si la estructura es

una lista, normalmente se introduce el orden parcial '<' tal que L < M

siempre que exista x tal que x::L=M Bajo este orden, la lista vacía [] es el

único elemento mínimo. Así, una prueba por inducción estructural de una

proposición P(l) consta de dos partes: Una prueba de P([]) y una prueba de

P(L) implica P(x::L).

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 8: LA DEMOSTRACIÓN EN MATEMÁTICA

RELACIONES DE RECURRENCIA

Una relación de recurrencia para una sucesión es una

fórmula que expresa cada término a partir de cierto , en función

de uno o más de los términos que le preceden. Los valores de los términos

necesarios para empezar a calcular se llaman condiciones iniciales. Se dice

que una sucesión es una solución de la relación de recurrencia si su término

general verifica dicha relación.

Ejemplo: Los conejos y la secuencia de Fibonacci

Una joven pareja de conejos es colocada en una isla. Un par de conejos no se

reproduce hasta que tiene 2 meses de edad. Después que estos tienen los 2

meses de edad, cada par produce un nuevo par. Encuentre una relación de

recurrencia para el número de pares de conejos en la isla al cabo de n

meses, asumiendo que ningún conejo muere.

R// Denotaremos por fn el numero de conejos después de n meses.

Notemos que al finalizar el primer mes el numero de pares es f1=1

Igualmente al finalizar el segundo mes el numero de pares es f2=1

Para encontrar el número de pares después de n meses adicione al número

de parejas en el mes previo fn-1 el número pares recién nacidos el cual es

equivalente a fn-2, puesto que cada par recién nacido viene de un par de al

menos 3 meses de edad. Consecuentemente {fn} satisface la relación de

recurrencia:

fn = fn-1 + fn-2 para n≥3. (Secuencia de Fibonacci)

Las relaciones de recurrencia pueden ser usadas para contar cadenas de bits

de una longitud especificada que tiene cierta propiedad

METODO DE ITERACIÓN

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 9: LA DEMOSTRACIÓN EN MATEMÁTICA

Un método iterativo trata de resolver un problema (como una ecuación o un

sistema de ecuaciones) mediante aproximaciones sucesivas a la solución,

empezando desde una estimación inicial. Esta aproximación contrasta con

los métodos directos, que tratan de resolver el problema de una sola vez

(como resolver un sistema de ecuaciones Ax=b encontrando la inversa de la

matriz A). Los métodos iterativos son útiles para resolver problemas que

involucran un número grande de variables (a veces del orden de millones),

donde los métodos directos tendrían un coste prohibitivo incluso con la

potencia del mejor computador disponible.

Método Newton – Raphson

Este método, el cual es un método iterativo, es uno de los más usados y

efectivos. A diferencia de los métodos anteriores, el método de Newton-

Raphson no trabaja sobre un intervalo sino que basa su fórmula en un

proceso iterativo.

Supongamos que tenemos la aproximación    a la raíz    de  ,

Trazamos la recta tangente a la curva en el punto  ; ésta cruza al

eje    en un punto   que será nuestra siguiente aproximación a la raíz 

.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 10: LA DEMOSTRACIÓN EN MATEMÁTICA

Para calcular el punto  , calculamos primero la ecuación de la recta

tangente. Sabemos que tiene pendiente

 

Y por lo tanto la ecuación de la recta tangente es:

 

Hacemos  :

 

Y despejamos :

 

Que es la fómula iterativa de Newton-Raphson  para calcular la siguiente

aproximación:

  ,   si

Note que el método de Newton-Raphson  no trabaja con intervalos donde

nos asegure que encontraremos la raíz, y de hecho no tenemos ninguna

garantía de que nos aproximaremos a dicha raíz. Desde luego, existen

ejemplos donde este método no converge a la raíz, en cuyo caso se dice que

el método diverge. Sin embargo, en los casos donde si converge a la raíz lo

hace con una rapidez impresionante, por lo cual es uno de los métodos

preferidos por excelencia.

Método Gauss Seidel

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 11: LA DEMOSTRACIÓN EN MATEMÁTICA

Es un método iterativo, es decir que debe aplicarse recursivamente hasta

encontrar una solución adecuada o con un error considerablemente

pequeño.

En cada iteración obtenemos una solución posible del sistema con un error

determinado, a medida que aplicamos nuevamente el método, la solución

puede ser más precisa, entonces se dice que el sistema converge, pero si al

aplicar el método reiteradas veces la solución tiene un error (ya

explicaremos como se calcula este error) cada vez mayor se dice que el

sistema no converge y no se puede resolver el sistema de ecuaciones por

este método.

Teniendo el siguiente sistema de ecuaciones:

  

Despejamos x1 de la ecuación 1, x2 de la ecuación 2, … , xn de la ecuación

n, quedando:

 Desde la formula anterior resultan las fórmulas que se deberán ir aplicando

en las diferentes iteraciones. Para comenzar a aplicar el método debemos

asignar un valor arbitrario a las variables x2,…xn con el fin de obtener x1. Lo

mas conveniente en este caso es que los valores comiencen en cero, lo cual

nos facilitaría el trabajo ya que se reduce el cálculo de las primeras

soluciones, entonces de esto resulta que:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 12: LA DEMOSTRACIÓN EN MATEMÁTICA

  

Ahora despejamos x2 de la ecuación 2 y reemplazamos a x1 por el valor

obtenido en la ecuación anterior. De esto nos queda:

  

Una vez que tenemos x2, despejamos x3 de la ecuación 3 y así

sucesivamente con las n ecuaciones, cada vez asignando el valor de las x1,

x2, … xn-1 obtenido en el paso anterior.

Cuando hemos despejado las xn, tenemos lo que se conoce como primera

solución o solución de la primera iteración:

  

Con los nuevos valores de x1, x2,…,xn aplicamos los mismos pasos

anteriores pero con los nuevos valores de las xn, de esta manera

conseguimos una segunda solución:

 

Al tener esta segunda solución estamos en condiciones de calcular el error

que se calcula como sigue:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 13: LA DEMOSTRACIÓN EN MATEMÁTICA

Así, repetimos el método tantas veces hasta que el error sea muy pequeño o

los suficientemente aceptable.

Ahora solo queda mencionar que para que un sistema sea convergente se

debe cumplir que la matriz de coeficientes sea diagonalmente dominante, y

para ello se debe verificar la siguiente expresión:

 

Si no se cumple esa condición, se puede permutar las filas de la matriz, con

el fin de poder convertirla en una diagonalmente dominante.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 14: LA DEMOSTRACIÓN EN MATEMÁTICA

ECUACIONES EN DIFERENCIA

Una ecuación en diferencias es una expresión que relaciona distintas

sucesiones, siendo una de ellas una sucesión desconocida.

Son similares a las ecuaciones diferenciales, sustituyendo las funciones por

sucesiones.

La Ecuación en Diferencia

Es una ecuación que muestra la relación entra valores consecutivos de una

secuencia y la diferencia entre ellos. Usualmente se escribe en una ecuación

recurrente para que la salida del sistema se pueda calcular de las entradas

de la señal y sus valores anteriores.

y[n] +7y[n−1] +2y[n−2] =x[n] −4x[n−1]

ECUACION EN DIFERENCIA

Una ecuación ordinaria en diferencias es una ecuación que contiene una o

más diferencias de una función desconocida cuyo argumento es el tiempo:

f(Yt, Yt, 2Yt,3Yt,nYt)

Donde representa el operador retardo. Si el argumento no es únicamente

el tiempo la ecuación pierde el calificativo de ordinaria y pasa a denominarse

ecuación en diferencias finitas parciales.

En el contexto del análisis de series temporales, una ecuación de yt en

diferencias es aquella en la que yt dependerá de sus valores retardados,

del tiempo y de otras variables. Lo fundamental, en nuestro caso, será la

aparición de los propios valores retardados de la variable yt. Un paseo

aleatorio sin deriva del tipo:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 15: LA DEMOSTRACIÓN EN MATEMÁTICA

Yt +1 = Yt + Et +1

Es una ecuación en diferencias con un componente estocástico (t).

En el contexto del análisis de series temporales, interesa principalmente lo

que se denomina Ecuación en diferencias lineal de orden “n” con

coeficientes constantes. La expresión genérica de esta ecuación es:

Donde los coeficientes ai se suponen constantes (parámetros) y los “n”

términos yt-i son de orden uno (ecuación lineal). El término xt se denomina

“proceso de fuerza3” y puede explicitarse de formas muy diversas:

función del tiempo, valores actuales y/o retardados de otras variables y/o

perturbaciones aleatorias. Por ejemplo, para ao=0, a1=1 y xt=et tenemos la

formulación tradicional del paseo aleatorio anterior.

Forma estructural y reducida de una ecuación en diferencias

Una ecuación en la forma estructural expresa la variable endógena en

función de valores actuales de otra endógena. La forma reducida, por el

contrario, puede incluir valores retardados de la propia endógena o de otras

endógenas pero nunca valores contemporáneos. En el contexto de un

modelo multiecuacional de series temporales una ecuación en su forma

reducida puede ser expresada en su forma estructural. Una ecuación

univariante en su forma reducida es aquella en la que la endógena es

expresada exclusivamente en función de retardos de ella misma.

SOLUCIÓN DE ECUACIONES EN DIFERENCIAS: Conceptos previos

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 16: LA DEMOSTRACIÓN EN MATEMÁTICA

Igual que el resto de ecuaciones matemáticas, las llamadas ecuaciones en

diferencias admiten una solución para la variable incógnita, en nuestro caso

yt. La solución de una ecuación en diferencias será generalmente otra

función, no un único valor.

La función solución expresará Yt en función de “t” y de los elementos del

proceso de fuerza (e incluso excepcionalmente de algunos valores iniciales

de Yt denominados condiciones iniciales). Esta solución, lo será si

transforma la ecuación en diferencias en una identidad para cualquier valor

del proceso de fuerza Xt y cualquier valor de t. Por ejemplo, para la ecuación

simple en diferencias:

la función y t c t = 2 + , donde “c” es un término constante cualquiera, es

una solución: sustituyendo yt e yt-1 se comprueba enseguida la igualdad:

No se deben confundir soluciones de una ecuación con formas reducidas de

la misma. La solución de una ecuación en diferencias no puede incluir

retardos de la propia incógnita salvo en el caso antes comentado de que sea

necesario considerar condiciones iniciales de partida para Yt.

Es interesante advertir el significado de la solución de una ecuación.

Partiendo de una ecuación en la que postulamos que yt puede expresarse en

función de valores pasados propios Yt -1, Yt -2...etc., la solución de esta

ecuación en diferencias nos informa de cómo se forman los valores de Yt por

el “paso del tiempo”, es decir de la variable “t” y del resto de términos de la

ecuación en diferencias (por ejemplo, en el paseo aleatorio, por el

componente t).

Ejemplo:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 17: LA DEMOSTRACIÓN EN MATEMÁTICA

Partiendo de la ecuación en diferencias

Su solución permite observar el patrón de formación temporal de los valores de yt.

Efectivamente, sin entrar por ahora en su cálculo, la solución a esta ecuación

podría ser:

Esta solución permite observar el patrón de formación temporal de los valores de yt en el siguiente gráfico:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 18: LA DEMOSTRACIÓN EN MATEMÁTICA

ALGEBRAS DE BOOLE

Las álgebras booleanas constituyen un área de las matemáticas que ha

pasado a ocupar un lugar prominente con el advenimiento de la

computadora digital. Son usadas ampliamente en el diseño de circuitos de

distribución y computadoras, y sus aplicaciones van en aumento en muchas

otras áreas. En el nivel de lógica digital de una computadora, lo que

comúnmente se llama hardware, y que está formado por los componentes

electrónicos de la máquina, se trabaja con diferencias de tensión, las cuales

generan funciones que son calculadas por los circuitos que forman el nivel.

Estas funciones, en la etapa de diseño del hardware, son interpretadas como

funciones de Boole.

El álgebra de Boole (también llamada Retículas booleanas) en informática y

matemática, es una estructura algebraica que rigorizan las operaciones

lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y

complemento.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 19: LA DEMOSTRACIÓN EN MATEMÁTICA

Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de

diciembre de 1864), matemático inglés que fue el primero en definirla como

parte de un sistema lógico a mediados del siglo XIX. El álgebra de Boole fue

un intento de utilizar las técnicas algebraicas para tratar expresiones de la

lógica preposicional. En la actualidad, el álgebra de Boole se aplica de forma

generalizada en el ámbito del diseño electrónico. Claude Shannon fue el

primero en aplicarla en el diseño de circuitos de conmutación eléctrica

biestables, en 1948.

Teoremas Fundamentales

A continuación se presentan los teoremas principales del álgebra de Boole,

los cuales son la base del trabajo subsecuente. Es posible demostrar dichos

teoremas por cualquiera de los siguientes métodos:

1. Algebraicamente (empleando postulados y teoremas ya demostrados).

2. Gráficamente (por medio de los diagramas de Venn).

3. Por inducción perfecta (empleando tablas de verdad).

    Aquí se empleará el método algebraico pues se considera la mejor manera

de iniciarse en esta álgebra, además de que sólo se demostrarán los

teoremas primales, pero aplicando las reglas de dualidad.

T.1. Teoremas sobre la UNICIDAD.1.a. El elemento 0 es único. 1.b. El elemento 1 es único. Demostración de 1.a. Por contradicción, supóngase que 0 y 01 son neutros aditivos, por lo que deben satisfacer al postulado P.3.a, es decir: A + 0 = A   y   A1 + 01 = A1 Si A1 = 0 y A = 01 y como 0 es neutro, por suposición, entonces: 01 + 0 = 0                (1) Además como 01 es neutro, por suposición, entonces: 0 + 01 = 0                     (2) De (1) y (2) se tiene: 01 = 0 con lo que se demuestra el teorema.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 20: LA DEMOSTRACIÓN EN MATEMÁTICA

T.2. Teoremas sobre la EQUIPOTENCIA. 2.a. A + A = A 2.b. A . A = A

Demostración de 2.a.A + A = (A + A) . 1               (P.3.b.)A + A = (A + A) . (A + A')        (P.6.a.)A + A = A + (A . A')              (P.5.a)A + A = A + 0                    (P.6.b.)A + A = A                                (P.3.a.)

T.3. TEOREMA 3.a. A + 1 = 1 3.b. A . 0 = 0

Demostración de 3.a.A + 1 = 1 . (A + 1)                (P.3.b.)A + 1 = (A + A') . (A + 1)    (P.6.a)A + 1 = A + (A' . 1)            (P.5.a)A + 1 = A + A'                    (P.3.b.)A + 1 = 1                             (P.6.a.)

T.4. Teoremas de ABSORCIÓN.4.a. A + (A . B) = A4.b. A . (A + B) = A

Demostración de 4.a.A + (A . B) = (A . 1) + (A . B)         (P.3.b.)A + (A . B) = A . (1 + B)                (P.5.b.)A + (A . B) = A . 1                        (T.3.a.)A + (A . B) = A                             (P.3.b.)

T.5. El elemento A' es único.

DemostraciónPor contradicción, supóngase que existen dos elementos distintos A'1 y A'2, tales que satisfacen los postulados P.6.a. y P.6.b., es decir:A + A'1 = 1   y   A + A'2 = 1A . A'1 = 0   y   A . A'2   = 0

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 21: LA DEMOSTRACIÓN EN MATEMÁTICA

Entonces:A'2 = 1 . A'2                                 (P.3.b)A'2 = (A + A'1) . A'2                     (por suposición)A'2 = (A . A'2 ) + (A'1 . A'2)         (P.5.b.)A'2 = 0 + (A'1 . A'2)                    (por suposición)A'2 = (A . A'1) + (A'1 . A'2)         (por suposición)A'2 = (A + A'2) . A'1                     (P.5.b)A'2 = 1 . A'1                                 (por suposición)A'2 = A'1                                     (P.3.b.)

T.6. TEOREMA Para toda A en M, A = A''DemostraciónSea A'' = X, por tanto:A' + X = 1   y   A' , X = 0             (P.6.)Pero:A' + A = 1   y   A' . A = 0                 (P.6.)Así que tanto X como A' satisfacen el postulado P.6. como el complemento de A, por tanto:X = A, es decir, A'' = A

T.7. Teoremas de ABSORCIÓN7.a. A . [(A + B) + C] = [(A + B) + C] . A = A7.b. A + [(A . B) . C] = [(A . B) . C] = A

Demostración de 7.a.A . [(A + B) + C] = A . (A + B) + (A . C)                     (P.5.b.)A . [(A + B) + C] = (A . A) + (A . B) + (A . C)             (P.5.b.)A . [(A + B) + C] = A + (A . B) + (A . C)                     (T.2.)A . [(A + B) + C] = A . (1 + B + C)                            (P.5.b.)A . [(A + B) + C] = A . 1                                               (T.3.)A . [(A + B) + C] = A                                                    (P.3.b.)

T.8. Teoremas sobre la ASOCIACIÓN.8.a. A + (B + C) = (A + B) + C8.b. A . (B . C) = (A . B) . CDemostración de 8.a.Sea:Z = [(A + B) + C] . [A + (B + C)]Z = {A . [(A + B) + C]} + {(B + C) . [(A + B) + C]}             (P.5.b.)Z = A + {(B + C) . [(A + B) + C]}                                        (T.7.)Z = A + {B . [(A + B) + C] + C . [(A + B) + C]}                  (P.5.b.)Z = A + {B + C . [(A + B) + C]}                                          (T.7.)Z = A + (B + C)                                                                     (T.7.)            (1)Como:Z = [(A + B) + C] . [A + (B + C)]Z = {(A + B) . [A + (B + C)]} + {C . [A + (B + C)]}           (P.5.b.)

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 22: LA DEMOSTRACIÓN EN MATEMÁTICA

Z = {(A + B) . [A + (B + C)]} + C                                        (T.7.)Z = {A . [A + (B + C)] + B . [A + (B + C)]} + C                 (P.5.b.)Z = {A . [A + (B + C)] + B} + C                                         (T.7.)Z = (A + B) + C                                                                  (T.7.)             (2)Por consiguiente, de (1) y (2) y por transitividad:Z = A + (B + C) = (A + B) + C = A + B + C

T.9. Teoremas sobre la COMPLEMENTACIÓN.9.a. A + (A' . B) = A + B9.b. A . (A' + B) = A . B

Demostración de 9.a.A + (A' . B) = (A + A') . (A + B)             (P.5.a.)A + (A' . B) = 1 . (A + B)                         (P.6.a.)A + (A' . B) = A + B                               (P.3.b.)

T.10. Teoremas de DeMORGAN.10. a. (A + B)'' = A' . B'10.b. (A . B)' = A' + B'

Demostración de 10.a.Primera parte:(A + B) + (A' . B') = [(A + B) + A'] . [(A + B) + B']             (P.5.a.)(A + B) + (A' . B') = [A' + (A + B)] . [(A + B) + B']             (P.4.a.)(A + B) + (A' . B') = [(A' + A) + B] . [A + (B + B')]           (T.8.)(A + B) + (A' . B') = (1 + B) . (A + 1)                                 (P.6.a.)(A + B) + (A' . B') = 1 . 1                                                    (T.3.a.)(A + B) + (A' . B') = 1                                                         (T.2.b.)                (1)Segunda parte:(A + B) . (A' . B') = (A' . B') . (A + B)                              (P.4.b.)(A + B) . (A' . B') = (A' . B' . A) + (A' . B' . B)                (P.5.b.)(A + B) . (A' . B') = 0 + 0                                                 (P.6.b.)(A + B) . (A' . B') = 0                                                         (T.2.a.)                (2)Por tanto, de (1) y (2) se concluye que:(A + B)' = A' . B'

T.11. TEOREMA11.a. (A . B) + (A' . C) + (B . C) = (A . B) + (A' . C)11.b. (A + B) . (A' + C) . (B + C) = (A + B) . (A' + C)Demostración de 11.a.(A . B) + (A' . C) + (B . C) = (A . B . 1) + (A' . 1 . C) + (1 . B . C) = (P.3.b.)= [A . B . (C + C')] + [A' . (B + B') . C] + [(A + A') . B . C ] =           (P.6.b.)= (A B C) + (A B C') + ( A' B C) + (A' B' C) + (A B C) + (A' B C) =    (P.5.b.)= (A B C) + (A B C') + ( A' B C) + (A' B' C) =                                   (T.2.)= [A . B . (C + C')] + [A' . C . (B + B')] =                             (P.5.a.)

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 23: LA DEMOSTRACIÓN EN MATEMÁTICA

= (A . B . 1) + (A' . C . 1)                                                     (P.6.a.)(A . B) + (A' . C) + (B . C) = (A . B) + (A' . C)                        (P.3.b.)

T.12. TEOREMA12.a. (A . B) + (A . B' . C) = (A . B) + (A . C)12.b. (A + B) . (A + B' + C) = (A + B) . (A + C)

Demostración de 12.a.(A . B) + (A . B' . C) = A . [B + (B' . C)]                                   (P.5.b.)(A . B) + (A . B' . C) = A . [(B + B') . (B + C)] = A . (B + C)     (T.9.a.)(A . B) + (A . B' . C) = (A . B) + (A . C)                                  (P.5.b.)

T.13. TEOREMA13.a. (A . B) + (A . B') = A13.b. (A + B) . (A + B') = A

Demostración de 13.a.(A . B) + (A . B') = A . (B + B')              (P.5.b.)(A . B) + (A . B') = A . 1                         (P.6.b.)(A . B) + (A . B') = A

Para fácil referencia, los teoremas se resumen en la siguiente tabla:

TEOREMA PRIMAL TEOREMA DUAL

T.1.a. 0 es únicoT.2.a A + A = AT.3.a. A + 1 = AT.4.a. A + (A . B) = AT.5. A' es únicoT.6. A = A''T.7.a. A . [(A + B) + C] = [(A + B) + C] . A = AT.8.a. A + (B + C) = (A + B) + CT.9.a. A + (A' . B) = A + BT.10.a. (A + B)' = A' . B'T.11.a. (A . B) + (A' . C) + (B . C) = (A . B) + (A' .C )T.12.a. (A . B) + (A . B' . C) = (A . B) + (A . C)T.13.a. (A . B) + (A . B') = A

T.1.b. 1 es únicoT.2.b. A . A = AT.3.b. A . 0 = 0T.4.b. A . (A + B) = ANo tieneNo tieneT.7.b. A + [(A . B) . C] = [(A . B) . C] + A = AT.8.b. A . (B . C) = (A . B) . CT.9.b. A . (A' + B) = A . BT.10.b. (A . B)' = A' + B'T.11.b. (A + B)(A' + C)(B + C) = (A + B)(A' + C)T.12.b. (A + B)(A + B' + C) = (A + B) (A + C)T.13.b. (A + B) . (A + B') = A

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 24: LA DEMOSTRACIÓN EN MATEMÁTICA

Forma normal de funciones booleanas

Otra manera importante de expresar expresiones booleanas es la forma

normal. Tiene la misma estructura básica suma de productos o producto de

sumas, pero no se requiere que los términos sean mintérminos o

maxtérminos.

Por ejemplo:

La siguiente es una forma normal suma de productos:

La siguiente es una forma normal producto de sumas:

El Algebra de Boole es un sistema matemático que utiliza variables y

operadores lógicos. Las variables pueden valer 0 o 1. Y las operaciones

básicas son OR (+) y AND (·).

Luego se definen las expresiones de conmutación como un número finito de

variables y constantes, relacionadas mediante los operadores (AND y OR).

En la ausencia de paréntesis, se utilizan las mismas reglas de precedencia,

que tienen los operadores suma (OR) y multiplicación (AND) en el algebra

normal.

Compuertas Lógicas

Existen dispositivos electrónicos que son capaces de representar funciones

de conmutación. Estos dispositivos denominan Compuertas Lógicas y están

construidos a base de silicio.

Las compuertas lógicas son altamente usadas en el campo de la electrónica

digital, debido al bajo costo que se logra con la alta densidad de integración.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 25: LA DEMOSTRACIÓN EN MATEMÁTICA

Las compuertas corresponden a bloques fundamentales para la construcción

de circuitos lógicos y sistemas digitales.

Una red de compuertas lógicas constituye un circuito combinacional.

Las compuertas pueden tener más de una o dos entradas. Por ejemplo la

ecuación de conmutación F(A, B, C) = A · B · C

Puede ser representada por:

O bien por:RAE

Las compuertas lógicas se pueden encontrar en dispositivos pequeños de

uso general, llamadas pastillas lógicas TTL. Su numeración corresponde a

74LSXXX.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 26: LA DEMOSTRACIÓN EN MATEMÁTICA

También existen dispositivos con alta densidad de integración como PLA,

CPLD y FPGA.

Las pastillas lógicas internamente están diseñadas con varias compuertas,

dependiendo de la pastilla. Por ejemplo un 74LS32 internamente es de la

siguiente forma:

Compuerta OR-EX o XOR

Es OR EXclusiva en este caso con dos entradas (puede

tener más) y lo que hará con ellas será una suma

lógica entre a por b invertida y a invertida por b.*Al ser O Exclusiva su

salida será 1 si una y sólo unade sus entradas es 1*

Compuertas Lógicas Combinadas

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 27: LA DEMOSTRACIÓN EN MATEMÁTICA

Al agregar una compuerta NOT a cada una de las compuertas anteriores los

resultados de sus respectivas tablas de verdad se invierten, y dan origen a

tres nuevas compuertas llamadas NAND, NOR y NOR-EX. Veamos ahora

como son y cuál es el símbolo que las representa...

Compuerta NAND

Responde a la inversión del producto lógico de sus entradas, en su

representación simbólica se reemplaza la compuerta NOT por un círculo a la

salida de la compuerta AND.

Compuerta NOR

El resultado que se obtiene a la salida de esta compuerta resulta de la

inversión de la operación lógica o inclusiva es como un no a y/o b . Igual

que antes, solo agregas un círculo a la compuerta OR y ya tienes una NOR.

Compuerta NOR-EX

Es simplemente la inversión de la compuerta OR-EX, los resultados se

pueden apreciar en la tabla de verdad, que bien podrías compararla con la

anterior y notar la diferencia, el símbolo que la representa lo tienes en el

siguiente gráfico.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 28: LA DEMOSTRACIÓN EN MATEMÁTICA

Buffer's

En realidad no realiza ninguna operación lógica, su finalidad es amplificar un

poco la señal (o refrescarla si se puede decir). Como puedes ver en el

siguiente gráfico la señal de salida es la misma que de entrada.

Circuitos Lógicos

Todos los circuitos lógicos digitales, desde el más simple contador hasta el

más sofisticado micro-procesador, son hechos interconectando

combinaciones de simples "bloques de construcción", llamados compuertas

lógicas (Logic gates).

Hay cuatro compuertas básicas, y ellas son diseñadas de acuerdo a su

función como SI, NO, Y, O, o sea, las cuatro expresiones sencillas mínimas

con las cuales se puede responder a situaciones de la vida real.

Cada una de estas compuertas básicas tiene una o más entradas, una sola

salida, y una pareja de terminales para conexión a la fuente de poder (pilas,

baterías, adaptador de corriente, etc.). En las compuertas bipolares, hechas

con la misma tecnología de los transistores corrientes PNP o NPN, conocidas

como compuertas TLL, el voltaje de la fuente de alimentación debe estar

entre 4.75 y 5.25 voltios, por lo que popularmente se trabaja con el punto

medio de este rango, o sea 5 voltios Vcc. Las compuertas hechas con

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 29: LA DEMOSTRACIÓN EN MATEMÁTICA

tecnología CMOS son más susceptibles a dañarse por la electricidad estática

debido al manipuleo mientras se instalan en el circuito a ensamblar, pero

luego permiten un rango bastante amplio en el voltaje de alimentación:

funcionan desde 3 Vcc hasta 15 Vcc.

Varias combinaciones de los BITS binarios 0 y 1 pueden ser aplicadas a las

entradas de una compuerta, asumiendo que un cierto voltaje bajo

representa al !cero! y un cierto voltaje alto equivale al bit "uno", esto es

llamado lógica positiva; en la lógica negativa se invierten las definiciones.

BIT: Es una sigla formada con las palabras "dígito binario", y se refiere a los

dos símbolos 0 y 1 utilizados en el sistema binario para calcular y medir. Por

simple conveniencia, para facilitar el paso de un sistema al otro, se adoptó el

bit "cero" como igual al número decimal "0", y el bit "uno" como igual al

número decimal "1"(se conservaron igual estos dos símbolos), pero las

combinaciones se leen diferentes. Veamos un ejemplo: La expresión

numérica 110 tiene en decimal 3 cifras y se lee "ciento diez"; tiene en

binario tres bits y se lee "uno-uno-cero".

En electrónica digital, más concretamente en el sistema numérico binario, no

se habla de números de "tantas cifras", como en el sistema decimal, sino

que se dice que es un WORD de "tantos bits". WORD significa "palabra" en

ingles, pero en este caso se emplea más bien como sinónimo de número, o

combinación de varios símbolos para expresar una cierta cantidad.

Aunque un word puede tener cualquier cantidad de bits, se ha popularizado

entre los especialistas de computadoras en uso de words con ocho bits;

estos son llamados sencillamente BYTES. Un word que tenga cuatro bits es

denominado NIBLE. Veamos un ejemplo:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 30: LA DEMOSTRACIÓN EN MATEMÁTICA

0001011100101001 Es un word con dieciséis bits; es un word con dos bytes,

o sencillamente es un word con cuatro nibles.

00010111 00101001 Es un word igual al anterior, pero separados los bytes

para una mejor visualización. Igual que en el sistema decimal, los bits "cero"

al comienzo de un word (lado izquierdo) no representan ninguna cantidad,

pero se acostumbra colocarlos para facilitar el manejo en los circuitos

electrónicos de cómputo.

La compuerta que simula la condición "SI", tiene solamente un a entrada y

una salida. Transmite a la salida el mismo estado lógico "alto" o "bajo" que

haya en la entrada (bit 1 o bit 0), por lo cual es generalmente usada para

interconexión (INTERFACE) de circuitos lógicos no compatibles

electrónicamente entre sí (diferentes impedancias, otros voltajes o

corrientes, etc.). Se les conoce a estas compuertas con el nombre de

BUFFER, por su acción reforzadora, pero es bueno aclarar que dicho término

se aplica también a otras compuertas muy diferentes, para indicar que

tienen salida apta para INTERFACE. La compañía National semiconductor

vende un encapsulado con seis buffer "SI", referencia 7407, para ser

alimentado con los 5 Vcc típicos ara TLL, pero una salida de cada buffer

puede mover una carga que esté conectada a una fuente no mayor de 30

voltios y no consuma más de 40 miliamperios (la referencia 7417 tiene salida

hasta un máximo de 15 voltios, y los mismos 40 miliamperios de capacidad

de carga).

La compuerta que simula la condición lógica "NO", tiene la propiedad de

invertir a la salida la señal o nivel presente en la entrada. Se le utiliza

también para servir de interfase (interconexión) entre dos circuitos que

estén alimentados por fuentes de voltaje distinto.

Entrega un estado bajo en su terminal de salida cuando a su única entrada

llega una señal con voltaje dentro del rango establecido como "alto". La

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 31: LA DEMOSTRACIÓN EN MATEMÁTICA

anterior condición lo convierte en un BUFFER NEGADOR o simplemente

compuerta !NO" (NOT).

La compuerta "NO" invierte o complementa el estado lógico de su única

entrada, por lo que se le conoce también como INVERSOR. La función "NO"

es generalmente indicada por una barra o vínculo sobre el símbolo, para

indicar que una entrada o una salida ha sido invertida. Así, si A es 0 y B es 1,

tendremos que A = B(con línea arriba de la b, y algunas veces escrita como

"no B").

La National Semiconductor tiene también en forma integrada, en un solo

encapsulado dual in line, seis buffer inversores, referencia 7406 o referencia

7416. Las salidas de los inversores 7406 soportan cargas conectadas a una

fuente de hasta 30 voltios y proporcionan 40 miliamperios en su estado bajo.

La referencia 7416 es solamente para un máximo de 15 voltios. En ambos

casos el voltaje Vcc, o sea su propia fuente de alimentación, no debe ser

menor de 4.75 ni mayor de 5.25.

la compuerta que simula la condición "Y" (AND) es un circuito con capacidad

para "decidir", con dos o más entradas. La única salida de la compuerta AND

es nivel lógico 0, a menos que todas sus entradas tengan nivel lógico 1.

Solamente cuando las entradas A y B y C... estén en "uno", la salida será

también "uno". La compuerta que simula la condición "0" (OR) es también un

circuito que hace decisiones, con dos o más entradas. Su salida es lógica 1

cuando cualquiera o todas sus entradas tienen un nivel lógico 1. Basta con

que las entradas A o B o C estén en 1, para que la salida pase a 1.

Simplificación de Circuitos Lógicos

Una vez que se obtiene la expresión booleana para un circuito lógico,

podemos reducirla a una forma más simple que contenga menos términos, la

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 32: LA DEMOSTRACIÓN EN MATEMÁTICA

nueva expresión puede utilizarse para implantar un circuito que sea

equivalente al original pero que contenga menos compuertas y conexiones.

El álgebra booleana (Algebra de los circuitos lógicos tiene muchas leyes o

teoremas muy útiles tales como:

1. Ley de Morgan: o 1. A + B = A·B

2. A·B = A + B

2. Ley Distributiva: o 3. A+(B·C) = (A+B)·(A+C)

4. A·(B+C) = A·B+A·C

Además de las leyes formales para las funciones AND y OR :

5. A·0 = 0 ; A+0 = A

6. A·1 = A; A+1 = 1 7. A·A = A; A+A = A 8. A·A = 0; A+A = 1

Y la Ley de la Involución:

9. A(negada) = A

Considerar la expresión booleana A·B + A·B + A·B = Y, un diagrama lógico

de ésta expresión aparece en la Figura 1. Observar que deben utilizarse seis

puertas para implementar este circuito lógico, que realiza la lógica detallada

en la tabla de verdad (Tabla 1)

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 33: LA DEMOSTRACIÓN EN MATEMÁTICA

Figura 1: Circuito lógico no simplificado

ENTRADAS SALIDA  

B A Y

0 0 0

0 1 1

1 0 1

1 1 1

Tabla 1: Tabla de verdad de la función OR

Figura 2: Circuito lógico simplificado

Aplicando el álgebra booleana:

A·B + A·B + A·B = Y

RAZONES

= A·B + (A·B + A·B) , Propiedad asociativa

= A·B + B·(A+A) , 4. [A·(B + C) = A·B + A·C]

= A·B + B·1, 8. [A + A = 1]

= A·B + B, 6. [B·1 = B]

= B + A·B, Propiedad conmutativa

= (B + A)·(B + B) , 3. [A + (B·C) = (A + B)·(A + C)]

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 34: LA DEMOSTRACIÓN EN MATEMÁTICA

= (B + A)·1 , 8. [A + A = 1]

= B + A , 6. [A * 1 = A]

Concluimos entonces que una sola puerta OR de dos entradas realiza la

misma función (¡De hecho la tabla 1 corresponde a la función OR!).

RELACIONES DE EQUIVALENCIA Y RELACIONES DE ORDEN

Sea K un conjunto dado no vacío y R una relación binaria definida sobre K. Se dice que R es una relación de equivalencia si cumple las siguientes propiedades:

Reflexividad: Todo elemento de K está relacionado consigo mismo. Es decir,

. Simetría: Si un elemento de K está relacionado con otro, entonces ese

otro elemento también se relaciona con el primero. Es decir,

Transitividad: Si un elemento de K está relacionado con otro, y ese otro a su vez se relaciona con un tercero, entonces el primero estará relacionado también con este último. Es decir,

Una relación de equivalencia R sobre un conjunto K puede denotarse con el

par ordenado .

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 35: LA DEMOSTRACIÓN EN MATEMÁTICA

Clases de Equivalencia

La relación de equivalencia define subconjuntos disjuntos en K llamados

clases de equivalencia de la siguiente manera: Dado un elemento , al

conjunto dado por todos los elementos relacionados con a

se le llama la clase de equivalencia asociada al elemento a. Al elemento a se

le llama representante de la clase.

Se llama orden al número de clases que genera una relación de

equivalencia; si éste es finito, se dice que la relación es de orden finito.

El concepto de clase de equivalencia tiene importancia en ciencia, dado un

conjunto de objetos o entidades abstractas (potencialmente infinitas),

pueden establecerse relaciones de equivalencia en base a algún criterio, las

clases resultantes son los "tipos" en los que se puede clasificar toda la gama

de objetos.

Una relación R en A, es una relación de equivalencia, si R es reflexiva,

simétrica y transitiva (RST).

Se define clase de equivalencia del elemento a, como:

[a] = {x Î A / x R a}

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 36: LA DEMOSTRACIÓN EN MATEMÁTICA

[a] = {Los vértices desde donde se llega a a, en un solo paso}

El conjunto de todas las clases de equivalencia de A, es el conjunto

A/R, denominado el conjunto cociente:

A/R = {[a] / a ÎA }

Ejm.: A={0,1,2,3,4,5,6}

R={(x,y) Î A*A / (x-y) es divisible por 3}

R= {(0,0), (0,3), (0,6), (1,1), (1,4), (2,2), (2,5), (3,0), (3,3), (3,6),

(4,1),(4,4), (5,2), (5,5), (6,0), (6,3), (6,6)}

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 37: LA DEMOSTRACIÓN EN MATEMÁTICA

R={(x,y) Î A*A / (x-y) es divisible por 3} El gráfico de R será:

Teorema: Sea R una relación de equivalencia en A, con a, b Î A, entonces:

[a] = [b] ↔ a R b [a] ≠ [b] ↔ [a]Ç[b] = Ø

Partición: Una partición de un conjunto no vacío A, es una colecciónP= {A1, A2, ..An}, de subconjuntos no vacíos de A, tales que:

AiÇAj = Ø , si i ≠ j A1ÈA2 È…ÈAn = A

Los subconjuntos Ai, son llamados bloques de partición. Teorema: Concordancia entre Relaciones de equivalencia y Particiones

Dada una relación de equivalencia R en A, entonces, el conjunto cociente A/R es una partición de A. Dada una partición P de A, entonces se puede formar una relación de equivalencia R, definida por: x R y ↔ ›Ai ÎP, tal que: xÎAi Ù yÎAi

Particiones

Presentado por YESENIA GONZALEZ céd 4-239-906

2 5

0

6

3

1 4

[0]={x Î A / (x-0) es divisible por 3}={0,3,6} [1]={x Î A / (x-1) es divisible por 3}={1,4} [2]={x Î A / (x-2) es divisible por 3}={2,5} [3]={x Î A / (x-3) es divisible por 3}={0,3,6}=[0] [4]={1,4} = [1] [5]={2,5} = [2] [6]= [3] = [0] A/R = {[0], [1], [2]} = {{0,3,6},{1,4},{2,5}}= CONJUNTO COCIENTE

Observar los 3 grupos que se forman, en cada uno de ellos, los elementos están totalmente relacionados.Estos grupos se denominan “bloques de partición”, aquí hay 3 bloques de partición:{0,3,6},{1,4} y {2,5}

Page 38: LA DEMOSTRACIÓN EN MATEMÁTICA

En el área de computación muchos algoritmos de búsqueda se basan en una

técnica que “particiona” de manera sucesiva un conjunto A en subconjuntos

cada vez más pequeños, haciendo que el procedimiento de búsqueda sea

más eficiente.

Definición de Partición de un conjunto. Una partición de un conjunto A

es una colección de subconjuntos de A, los cuales son no vacíos y disyuntos

entre sí cuya unión es A. Formalmente, una partición de un conjunto A es

una familia de subconjuntos no vacíos de A, con las siguientes

propiedades:

Cada conjunto se llama celda o bloque de la partición.

Ejemplo:

Sea . Cada una de las siguientes colecciones son particiones de A.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 39: LA DEMOSTRACIÓN EN MATEMÁTICA

Ejemplo:

Cada una de los siguientes conjuntos son particiones de .

= el conjunto de números pares, = el conjunto de números impares.

La siguiente definición de clase de equivalencia, nos servirá para mostrar

como las relaciones de equivalencia y las particiones son descripciones del

mismo concepto.

Definición Clase de equivalencia. Sean A un conjunto y R una relación de

equivalencia en A. Para cada , la clase de equivalencia de x con respecto

a R es el conjunto definido como sigue:

.

En otras palabras, es el conjunto de todos los elementos de A que están

relacionados con x.

Cuando solamente una relación de equivalencia R se esté considerando,

escribiremos en vez de .

Ejemplo:

Sea y consideremos la siguiente relación de equivalencia en A:

Entonces

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 40: LA DEMOSTRACIÓN EN MATEMÁTICA

Ejemplo:

Consideremos las siguientes relaciones de equivalencia en .

Dado , tenemos que:

.

.

Ejemplo:

Consideremos la relación de equivalencia congruencia módulo 5.

Dado , tenemos que:

Es decir, la clase de equivalencia del entero a es el conjunto de números y

para los cuales la diferencia es un múltiplo de 5. Así, por ejemplo,

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 41: LA DEMOSTRACIÓN EN MATEMÁTICA

Como se observa en este ejemplo,

Conjunto de números con residuo 0 cuando se dividen por 5.

Conjunto de números con residuo 1cuando se dividen por 5.

Conjunto de números con residuo 2 cuando se dividen por 5.

Conjunto de números con residuo 3 cuando se dividen por 5.

Conjunto de números con residuo 4 cuando se dividen por 5.

Además, se tiene que .

En general para todo para algún . Es decir cada entero

pertenece a exactamente uno de estos cinco conjuntos.

De manera más en general para la relación de equivalencia congruencia

módulo

n: , denotamos la clase de equivalencia que contiene

a como . Esto es,

Generalizando el caso n = 5 podemos concluir que dado un entero positivo

n,

=conjunto de números con residuo r cuando

se dividen por n.

Además s tiene que:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 42: LA DEMOSTRACIÓN EN MATEMÁTICA

para todo .

Es decir cada entero pertenece a exactamente uno de estos n conjuntos. Por

lo tanto la colección de las clases de equivalencia de la relación congruencia

módulo n es una partición de con n elementos.

El resultado anterior se cumple en general para cualquier relación de

equivalencia: la colección de las clases de equivalencia de una relación de

equivalencia en un conjunto A forman una partición de A. Para demostrar

este resultado utilizaremos el siguiente teorema.

Teorema Supongamos que R una relación de equivalencia en un conjunto

. Entonces

Demostración:

Como es reflexiva entonces . Luego por definición de clase

de equivalencia, .

Hay que demostrar las dos implicaciones:

( i ) Supongamos que . Hay que probar que:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 43: LA DEMOSTRACIÓN EN MATEMÁTICA

.

( ii )supongamos que .

por la parte . Por lo tanto . Entonces .

Demostraremos que:

De esta forma concluimos que

La parte (c) del teorema anterior afirma que las clases de equivalencias solo

se pueden relacionar de dos maneras: son idénticas o disyuntas.

Mostraremos en el siguiente teorema como una relación de equivalencia

particiona un conjunto.

Conjunto Cociente

Sea una relación de equivalencia definida en el conjunto K, llamaremos a

K/ el conjunto cociente de K por a la partición de K formada por todas

las clases de equivalencia determinadas en K por ~. Es decir, el conjunto

cociente es el conjunto de todas las clases de equivalencia que se puedan

formar con los elementos de K, mediante

El conjunto de todas las clases de equivalencia se denomina conjunto

cociente y se lo suele denotar como:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 44: LA DEMOSTRACIÓN EN MATEMÁTICA

Tal como muestra la definición anterior el conjunto cociente es un

subconjunto del conjunto de partes de K.

Relaciones de Orden

Sea R una relación binaria en un conjunto A. Si R satisface las propiedades

reflexiva, antisimétrica y transitiva se dice que R es una relación de orden.

En este caso si a y b son elementos de A tales que aRb, lo denotaremos por

a · b.

Si · verifica la propiedad de que dados a y b en A, entonces a · b o b · a,

entonces la relación · se denomina de orden total.

Sean A y B dos conjuntos tales que B µ A y · una relación de orden en A.

Podemos entonces definir varios elementos notables de A:

a) Elemento minimal de A es todo aquel elemento a 2 A tal que si b · a

entonces a = b.

b) Elemento maximal de A es todo aquel elemento a 2 A tal que si a · b

entonces a = b.

c) Mínimo de A es el elemento a de A tal que a · b para todo b 2 A.

d) Máximo de A es el elemento a de A tal que b · a para todo b 2 A.

e) Cota inferior de B es cualquier elemento a 2 A tal que a·b para todo b 2 B.

f) Cota superior de B es cualquier elemento a 2 A tal que b·a para todo b2 B.

g) Ínfimo de B, es el máximo de las cotas inferiores de B.

h) Supremo de A, es el mínimo de las cotas superiores de B.

Relación de orden total

Sea A un conjunto dado, es una relación de orden total si y solo si todos

los elementos de A se relacionan entre sí, es decir,

.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 45: LA DEMOSTRACIÓN EN MATEMÁTICA

Ejemplo es totalmente ordenado. En efecto, es:

o Reflexivo: entonces (porque por definición, )

o Antisimétrico: si y entonces

o Transitivo: si y entonces

Relación de orden parcial

Sea A un conjunto dado, es una relación de orden parcial si y solo si al

menos un par de elementos de A se relacionan entre sí, es decir,

tal que .

Ejemplo. Sea el conjunto X = {1,2,3} y el conjunto potencia de X,

definido por:

Entonces es parcialmente ordenado, pues sean

Pero

Nótese que las relaciones de orden total son un caso particular de las

relaciones de orden parcial.

Relación de orden densa

Véase también: Conjunto denso

Una relación de orden parcial ≤ sobre un conjunto X se dice densa (o

densa-en -sí-misma) si, para todo x e y en X tales que x < y (x ≤ y y x ≠

y), existe otro z en X tal que x < z < y.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 46: LA DEMOSTRACIÓN EN MATEMÁTICA

Ejemplo 1: Los números racionales con la ordenación habitual son un

conjunto densamente ordenado, al igual que los números reales. Si q1

< q2 entonces tenemos que q3 := (q1+q2)/2 satisface que: q1 < q3 < q2.

Ejemplo 2: Los números enteros por otro lado con la ordenación

habitual no son un conjunto densamente ordenado ya que entre un

número entero y su siguiente no existe un número intermedio.

GRUPOS Y TEORIAS ALGEBRAICAS DE LA CODIFICACION

Métrica de Hamming

En informática, el código de Hamming es un código detector y corrector de

errores que lleva el nombre de su inventor, Richard Hamming. En los datos

codificados en Hamming se pueden detectar errores en un bit y corregirlos,

sin embargo no se distingue entre errores de dos bits y de un bit (para lo que

se usa Hamming extendido). Esto representa una mejora respecto a los

códigos con bit de paridad, que pueden detectar errores en sólo un bit, pero

no pueden corregirlo.

Paridad

La paridad consiste en añadir un bit, denominado bit de paridad, que indique

si el número de los bits de valor 1 en los datos precedentes es par o impar.

Si un solo bit cambiara por error en la transmisión, el mensaje cambiará de

paridad y el error se puede detectar (nótese que el bit donde se produzca el

error puede ser el mismo bit de paridad). La convención más común es que

un valor de paridad de 1 indica que hay un número impar de unos en los

datos, y un valor de paridad de 0 indica que hay un número par de unos en

los datos.

La comprobación de paridad no es muy robusta, dado que si cambia de

forma uniforme más de un solo bit, el bit de paridad será válido y el error no

será detectado. Por otro lado, la paridad, aunque puede detectar que hay

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 47: LA DEMOSTRACIÓN EN MATEMÁTICA

error, no indica en qué bit se cometió. Los datos se deben desechar por

entero y volverse a transmitir. En un medio ruidoso, una transmisión

correcta podría tardar mucho tiempo o incluso, en el peor de los casos, no

darse nunca. El chequeo de paridad, aunque no es muy bueno, usa un único

bit, por lo que produce muy poca sobrecarga, y además permite la

corrección de ese bit si es conocida su posición.

Códigos de Hamming

Si se añaden junto al mensaje más bits detectores-correctores de error y si

esos bits se pueden ordenar de modo que diferentes bits de error producen

diferentes resultados, entonces los bits erróneos podrían ser identificados.

En un conjunto de siete bits, hay sólo siete posibles errores de bit, por lo que

con tres bits de control de error se podría especificar, además de que ocurrió

un error, en qué bit fue.

Hamming estudió los esquemas de codificación existentes, incluido el de dos

entre cinco, y generalizó sus conclusiones. Para empezar, desarrolló una

nomenclatura para describir el sistema, incluyendo el número de los bits de

datos y el de los bits detectores-correctores de error en un bloque. Por

ejemplo, la paridad incluye un solo bit para cualquier palabra de datos, así

que las palabras del Código ASCII que son de siete bits, Hamming las

describía como un código (8.7), esto es, un total de 8 bits de los cuales 7 son

datos. En el ejemplo anterior de la repetición, sería un código (3.1),

siguiendo la misma lógica. La relación de la información es el segundo

número dividido por el primero, por nuestro ejemplo de la repetición, 1/3.

Hamming también estudió los problemas que surgían al cambiar dos o más

bits a la vez y describió esto como "distancia" (ahora llamada distancia de

Hamming en su honor). La paridad tiene una distancia de 2, dado que

cualquier error en dos bits no será detectado. La repetición (3.1)tiene una

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 48: LA DEMOSTRACIÓN EN MATEMÁTICA

distancia de 3, pues son necesarios el cambio simultáneo de tres bits para

obtener otra palabra de código. La repetición (4.1) (cada bit se repite cuatro

veces) tiene una distancia de 4, así que el cambio de dos bits en el mismo

grupo quedará sin definir.

Hamming estaba interesado en solucionar simultáneamente dos problemas:

aumentar la distancia tanto como sea posible, a la vez que se aumentan al

máximo los bits de información. Durante los años 40 desarrolló varios

esquemas de codificación que mejoraban notablemente los códigos

existentes. La clave de todos sus sistemas era intercalar entre los bits de

datos los de paridad.

El algoritmo de Hamming (7.4) puede corregir cualquier error de un solo bit,

pero cuando hay errores en más de un bit, la palabra transmitida se

confunde con otra con error en un sólo bit, siendo corregida, pero de forma

incorrecta, es decir que la palabra que se corrige es otra distinta a la

original, y el mensaje final será incorrecto sin saberlo. Para poder detectar

(aunque sin corregirlos) errores de dos bits, se debe añadir un bit más, y el

código se llama Hamming extendido. El procedimiento para esto se

explica al final.

El algoritmo es el siguiente:

1. Todos los bits cuya posición es potencia de dos se utilizan como bits

de paridad (posiciones 1, 2, 4, 8, 16, 32, 64, etc.).

2. Los bits del resto de posiciones son utilizados como bits de datos

(posiciones 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.).

3. Cada bit de paridad se obtiene calculando la paridad de alguno de

los bits de datos. La posición del bit de paridad determina la secuencia

de los bits que alternativamente comprueba y salta, a partir de éste,

tal y como se explica a continuación.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 49: LA DEMOSTRACIÓN EN MATEMÁTICA

Posición 1: salta 0, comprueba 1, salta 1, comprueba 1, etc.

Posición 2: salta 1, comprueba 2, salta 2, comprueba 2, etc.

Posición 4: salta 3, comprueba 4, salta 4, comprueba 4, etc.

Posición 8: salta 7, comprueba 8, salta 8, comprueba 8, etc.

Posición 16: salta 15, comprueba 16, salta 16, comprueba 16,

etc.

Regla general para la posición n es: salta n-1 bits, comprueba

n bits, salta n bits, comprueba n bits...

Y así sucesivamente.

En otras palabras, el bit de paridad de la posición 2k comprueba los bits en

las posiciones que tengan al bit k en su representación binaria. Dicho a la

inversa, el bit 13, por ejemplo, es chequeado por los bits 8, 4 y 1, al ser estos

los de su representación binaria: 13=1101(2); 8=1000(2); 4=0100(2);

1=0001(2).

Así, por ejemplo, para los primeros términos se tiene:

En la Posición 1 (2^0 = 1), comprobaríamos los bits: 3, 5, 7, 9,

11, 13...

En la Posición 2 (2^1 = 2), los bits: 3, 6, 7, 10, 11, 14, 15...

En la Posición 4 (2^2 = 4), los bits: 5, 6, 7, 12, 13, 14, 15, 20, 21,

22, 23...

En la Posición 8 (2^3 = 8) tendríamos: 9, 10, 11, 12, 13, 14, 15,

24-31...

Siguiendo el algoritmo hasta completar la nueva cadena.

Para cualquier entero positivo m>=3, existe un código Hamming con los siguientes parámetros:

Longitud del Código:</TD n=2m-1

Número de símbolos de información:</TD k=2m-m-1

Número de símbolos de comprobación de paridad:</TD n-k=m

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 50: LA DEMOSTRACIÓN EN MATEMÁTICA

Capacidad de corrección de errores:</TD t=1(dmin=3)

La matriz de comprobación de paridad H de este código consta de todas las

m-tuplas no nulas como columnas. En forma sistemática, las columnas de H

están ordenadas de la siguiente forma: H=[ImQ], donde Im es una matriz

identidad m x m y la sub matriz Q consta de 2m-m-1 columnas, las cuales son las m-tuplas

de peso 2 o más. Estas columnas pueden ser colocadas en cualquier orden sin afectar a la

propiedad de distancia y distribución de peso del código. En forma sistemática, la matriz

generadora del código es G=[QT I2m-m-1] , donde QT es la traspuesta de Q y I2m-m-1 es una

matriz identidad de orden 2m-m-1. Como las columnas de H son no nulas y distintas, dos

columnas no pueden sumar cero. Se sigue que la mínima distancia de un código Hamming es al

menos 3. Como H consta de todas las m-tuplas no nulas como columnas, el vector suma de dos

columnas cualesquiera, hi y hj, debe ser también una columna de H, hl. Así hi+ hj+ hl= 0. De

aquí se sigue que la mínima distancia de un código Hamming es exactamente 3. Así, el código es

capaz de corregir todos los patrones de error con un error simple o de detectar todos los patrones

de error de dos errores o menos. Si formamos una matriz típica para el código Hamming de

longitud 2m-1, se pueden usar todas las (2m-1)-tuplas de peso 1 como líderes de coconjunto. El

número de (2m-1)-tuplas de peso 1 es 2m-1. Como n-k=m, el código tiene 2m coconjuntos. Así,

el vector 0 y las (2m-1)-tuplas de peso 1 forman todos los líderes de los coconjuntos de la matriz

típica. Esto nos dice que un código Hamming corrige solamente los patrones de error simple y

ningún otro. Esta es una construcción muy interesante. Un código corrector de errores de peso t

se llama código perfecto si su matriz típica tiene todos los patrones de error de peso t o menor y

ningún otro como líderes de coconjunto. Así, los códigos Hamming forman una clase de códigos

perfectos de corrección de errores simples. Podemos borrar cualesquiera l comunas de la matriz

de comprobación de paridad H de un código Hamming. Esto da como resultado una matriz H' de

orden m x (2m-l-1). Usando H' como matriz de comprobación de paridad, obtenemos un código

Hamming recortado con los siguientes parámetros:

Longitud del Código:</TD n=2m-1

Número de símbolos de información:</TD k=2m-m-1

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 51: LA DEMOSTRACIÓN EN MATEMÁTICA

Número de símbolos de comprobación de paridad:</TD n-k=m

Distancia mínima:</TD dmin=3

Si borramos las columnas apropiadas de H, obtenemos un código Hamming

recortado de distancia mínima 4. Por ejemplo, si borramos de la sub matriz Q

todas las columnas de peso impar, obtenemos una matriz de peso m x 2m-1:

H'=[Im Q'] ,donde Q' consta de 2m-1-m columnas de peso par. Como todas

las columnas de H' tiene peso par, no hay tres columnas que sumen cero. No

obstante, para una columna hi de peso 3 en Q', existen tres columnas hj, hl,

hs en Im tal que hi + hl + hj + hs = 0. Así, el código Hamming recortado con

H' como matriz de comprobación de paridad tiene distancia mínima

exactamente 4.

El código Hamming recortado de distancia 4 puede ser usado para corregir

todos los patrones de error simple y simultáneamente detectar todos los

patrones de error doble. Cuando un error simple ocurre durante la

transmisión de un vector código, el síndrome resultante es distinto de cero y

contiene un número par de unos. No obstante, cuando ocurre un error doble,

el síndrome es también distinto de cero, pero consta de un número impar de

unos. Basándonos en estos hechos, la decodificación puede ser realizada de

la siguiente manera:

Si el síndrome s es cero, asumimos que el error no existió. Si s es distinto de

cero y consta de un número par de unos, asumimos que el error ocurrido fue

un error simple. El patrón de error del error simple que corresponde a s se

suma al vector recibido para la corrección de errores. Si s es distinto de cero

y contiene un número impar de unos, se ha detectado un patrón de error no

corregible.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 52: LA DEMOSTRACIÓN EN MATEMÁTICA

Matriz generadora

Un código lineal (n,k) esta completamente definido por las k filas de la matriz

generadora G.

Ejemplo

El código lineal (7,4) dado en la tabla 1 tiene la siguiente matriz como matriz

generadora:

 Sea u = (1 1 0 1) el mensaje que hay que codificar, su palabra código

correspondiente será:

 v = u*G = (0 0 0 1 1 0 1)

Forma sistemática.

Una propiedad deseable en un código lineal es una estructura sistemática de

las palabras código como la mostrada en la siguiente figura, donde una

palabra código se divide en dos partes: la parte del mensaje y la parte de

redundancia. La parte del mensaje consiste de k bits de información

inalterada ( o mensaje) y la parte de redundancia consiste de de n - k bits de

comprobación de paridad, los cuales son una suma lineal de los bits de

información. A un código lineal de bloque con esta estructura se le

llama código lineal sistemático de bloque.

El código (7,4) dado en la tabla 1 es un código sistemático, los cuatro bits

que están más a la derecha de cada palabra código son idénticos a los bits

correspondientes de información.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 53: LA DEMOSTRACIÓN EN MATEMÁTICA

 Forma sistemática de una palabra código:

 

Un código lineal (n,k) sistemático queda completamente definido por una

matriz G k x n de la siguiente forma:

Esto nos muestra que los k primeros dígitos por la derecha de una palabra

código v son idénticos a los dígitos de información u0, u1,..., uk-1 que hay

que codificar, y que los n - k dígitos de redundancia que están a la derecha,

son sumas lineales de los de información.

Ejemplo

Sea u = ( 1 0 1 1 ), el mensaje que hay que codificar, y G la matriz de abajo.

Entonces podemos obtener v de la siguiente forma:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 54: LA DEMOSTRACIÓN EN MATEMÁTICA

 

v = ( 1 0 0 1 0 1 1 )

Además, podemos comprobar:

v6 = u3

v5 = u2

v4 = u1

v3 = u0

v2 = u1 + u2 + u3

v1 = u0 + u1 + u2

v0 = u0 + u2 + u3

Matriz H: Esta matriz H es la matriz de comprobación de paridad del

código. 

Si la matriz generadora de un código lineal (n,k) está en la forma

sistemática, la matriz de comprobación de paridad tiene la siguiente forma:

  H = [ In-k PT ] = 

  Donde PT es la traspuesta de la matriz P.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 55: LA DEMOSTRACIÓN EN MATEMÁTICA

  Esto implica que G HT = 0. Por lo tanto, la matriz H es una matriz de

comprobación de paridad del código lineal generado por la matriz G. 

Códigos de grupo

Un grupo de código es una agrupación lógica de código que tiene una

condición concreta para la pertenencia. Todo código que cumpla la condición

de pertenencia se incluye en el grupo. Los grupos de código tienen conjuntos

de permisos asociados que se evalúan durante la concesión de la directiva.

Los administradores configuran la directiva de seguridad administrando los

grupos de código y sus conjuntos de permisos asociados.

ELEMENTOS DE INFORMÁTICA TEORICA. GRAMÁTICA, LENGUAJES Y

MÁQUINAS.

Máquinas de Estados Finitos

Se denomina máquina de estados a un modelo de comportamiento de un

sistema con entradas y salidas, en donde las salidas dependen no sólo de las

señales de entradas actuales sino también de las anteriores. Las máquinas

de estados se definen como un conjunto de estados que sirve de

intermediario en esta relación de entradas y salidas, haciendo que el

historial de señales de entrada determine, para cada instante, un estado

para la máquina, de forma tal que la salida depende únicamente del estado

y las entradas actuales.

Una máquina de estados se denomina máquina de estados finitos (FSM

por finite state machine) si el conjunto de estados de la máquina es finito,

este es el único tipo de máquinas de estados que podemos modelar en un

computador en la actualidad; debido a esto se suelen utilizar los términos

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 56: LA DEMOSTRACIÓN EN MATEMÁTICA

máquina de estados y máquina de estados finitos de forma intercambiable.

Sin embargo un ejemplo de una máquina de estados infinitos seria un

computador cuántico esto es debido a que los Qubit que utilizaría este tipo

de computadores toma valores continuos, en contraposición los bits toman

valores discretos (0 ó 1). Otro buen ejemplo de una máquina de estados

infinitos es una Máquina universal de Turing la cual se puede definir

teóricamente con una "cinta" o memoria infinita.

La representación de una máquina de estados se realiza mediante un

Diagrama de estados, sin embargo también es posible utilizar un Diagrama

de flujo.

Es posible clasificar las máquinas de estados en aceptoras o transductoras:

Aceptoras (también llamadas reconocedoras o discriminadoras):

Son aquellas en donde la salida es binaria (si/no), depende únicamente

del estado y existe un estado inicial. Puede decirse, entonces, que

cuando la máquina produce una salida "positiva" (es decir, un "si"), es

porque ha "reconocido" o "aceptado" la secuencia de entrada. En las

máquinas de estados aceptoras, los estados con salida "positiva" se

denominan estados finales.

Transductoras: Son las más generales, que convierten una secuencia

de señales de entrada en una secuencia de salida, pudiendo ésta ser

binaria o más compleja, depender de la entrada actual (no sólo del

estado) y pudiendo también prescindirse de un estado inicial.

La bibliografía a veces llama autómata finito a las aceptoras, mientras que

en otros casos se

emplea autómata como

sinónimo de máquina

de estados sin importar

su tipo.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 57: LA DEMOSTRACIÓN EN MATEMÁTICA

Siempre que hagamos  el diseño de un circuito con autómatas secuenciales

finitos podremos diferenciar en él los siguientes elementos:

Una memoria que permite almacenar el estado actual del autómata.

Dos circuitos combinacionales, uno para calcular el estado siguiente

del autómata y el otro para  hallar la salida.

Un diagrama de bloques del circuito sería el siguiente:

Básicamente existen dos tipos de autómatas finitos: el autómata de Mealy

y el autómata de Moore.

Autómatas de Mealy

En un Autómata de Mealy, tanto la salida del autómata como su estado

siguiente, en un instante determinado, depende tanto del estado en el que

se encuentra el autómata en ese instante como de la entrada ó entradas

binarias introducidas.

Esto implica que un autómata de Mealy, estando en un determinado estado,

puede evolucionar hacia estados siguientes distintos y producir salidas

distintas si se introduce una ó varias entradas binarias distintas.

Un ejemplo en el que podemos ver los diferentes elementos que componen

un diagrama de Transición de Estados de un Autómata de Mealy sería el

siguiente:

 

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 58: LA DEMOSTRACIÓN EN MATEMÁTICA

En el podemos distinguir los siguientes elementos:

Estados: que se pueden definir como las posibles situaciones a las

que puede llegar el autómata.

Transiciones: son los eventos producidos por las entradas y que

producirán el cambio de un estado a otro, en el sentido indicado por

las flechas.

Un ejemplo de cómo debe leerse  el diagrama para su comprensión sería el

siguiente: desde el estado Q0, con entradas 11, se pasa al estado Q1 y

produce salida 0; desde el estado Q1, con entradas 00 se pasa al estado Q0,

y la salida será igual a "1", y así para todas las posibles transiciones.

Para que el autómata sea determinista de cada estado deben de salir 2

elevado a n transiciones donde n es el número de entradas.

Como vemos en el DTE (Diagrama de Transición de Estados), la salida

depende del estado en que nos encontremos y del valor de las entradas.

 

Autómatas de Moore

Son aquellos en los cuales el estado siguiente, en un instante determinado,

depende tanto del estado en el que se encuentra el autómata como de la

entrada o entradas binarias introducidas, pero la salida en ese mismo

instante sólo depende del estado en el que se encuentra el autómata.

Esto implica que un autómata de Moore, estando en un determinado estado,

produce siempre la misma salida, independientemente de cuál sea la

entrada ó entradas de datos en ese estado.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 59: LA DEMOSTRACIÓN EN MATEMÁTICA

Un ejemplo de un Diagrama de Estados de un Autómata de Moore sería el

siguiente:

Como vemos en el DTE la salida depende del estado en que nos

encontremos pero no del valor de la entrada ó entradas de ese estado.

El diagrama  debe de interpretarse de la siguiente forma: desde el estado 00

(en el cual siempre se da salida 0) y con entrada E0=1 se pasa al estado 01

(en el que siempre tenemos salida 0), una vez que el sistema a evolucionado

a este nuevo estado y con entrada E0=1 se pasa al estado 10 con salida 0),

y así para todas las posibles transiciones.

Al igual que el autómata de Mealy de cada estado debe salir 2 elevado a n

transiciones donde n es el número de entradas.

Algunos puntos prácticos que diferencian a ambos autómatas son los

siguientes:

En Mealy la salida es obtenida antes que en Moore.

Mealy es más ágil y nervioso que Moore, que es más ordenado y

tranquilo.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 60: LA DEMOSTRACIÓN EN MATEMÁTICA

Los diseñadores tienen a Mealy por peligroso, ya que tiene cierto

carácter asíncrono.

Los estados en Mealy suelen o pueden ser más abstractos que en

Moore.

Mealy suele o puede tener menos estados que Moore, por tanto su

implementación resulta  más económica.

Suele ser más cómodo obtener el DTE de Moore que el de Mealy, pero

como he dicho antes suele ser una cuestión de gustos. En el ejemplo

práctico que vamos hacer utilizaremos a Moore.

Una vez obtenida las funciones de salida simplificadas, se construye el

circuito y se simula. Lo podemos hacer con Proteus, pero existe otro IDE que

es perfecto por su sencillez para este tipo de circuitos. Se trata logisim, que

además se puede descargar de forma gratuita desde la página del autor, el

circuito terminado sería el siguiente:

 

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 61: LA DEMOSTRACIÓN EN MATEMÁTICA

Máquinas de Equivalencia e indistinguibilidad

Sea una máquina, ya sea de Mealy o de Moore.

Extendemos la función de transición a una función

, haciendo, para cada estado :

Así pues, para cada palabra , es el estado al que se llega cuando,

a partir del estado q, se va aplicando, uno a uno, cada uno de los símbolos

de , de izquierda a derecha. De manera similar se puede extender la

función de respuesta a todo el diccionario . Si M es una máquina de

Mealy, definimos , haciendo, para cada estado y

para cada palabra , donde,

en otras palabras, se tiene

Si M es una máquina de Moore, la función de respuesta

depende únicamente del estado visitado: para cada estado

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 62: LA DEMOSTRACIÓN EN MATEMÁTICA

En cualquier caso, sea en máquinas de Mealy o de Moore, la función

, donde q0 es el estado inicial, es la función de traducción

que realiza la máquina. Por las semánticas procedimentales introducidas, se

tiene que :

Dos máquinas M y N se dicen ser equivalentes, , si . En

otras palabras, dos máquinas son equivalentes si ambas traducen de

idéntica manera a cualquier palabra de entrada. Ya que las máquinas de

Moore son casos particulares de las máquinas de Mealy, se tiene que toda

máquina de Moore es equivalente a una de Mealy. Veamos que el recíproco

también se cumple:

Proposición 1.1   Toda máquina de Mealy es equivalente a una de Moore:

Para cada máquina de Mealy existe una

máquina de Moore tal que .

En efecto, dada una máquina de Mealy ,

realicemos la siguiente construcción:

estados:

sea . Se ``desdobla'' cada estado ''viejo''

en estados ``nuevos'' de la forma (q,t),

transición:

sea , donde tran y res son las

funciones de transición y de respuesta ``viejas'';

respuesta:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 63: LA DEMOSTRACIÓN EN MATEMÁTICA

sea ; y

estado inicial:

sea .

Se ve directamente que la máquina de Moore construida es equivalente a la

de Mealy dada.

Ejemplo Consideremos la máquina de Mealy del ejemplo 2. anterior que

``reconoce a repeticiones finales de un mismo símbolo en ''. Ahí, la

máquina tiene transición y respuesta,

La máquina de Moore equivalente consiste de 7=1+6 estados

y sus correspondientes transición y respuesta son

Observamos aquí que los estados no aparecen en la imagen de la función de transición nueva. Por tanto, los restantes cuatro estados, junto con el inicial, definen una máquina de Moore de 5 estados equivalente a la máquina de Mealy dada.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 64: LA DEMOSTRACIÓN EN MATEMÁTICA

En lo que resta de esta sección, consideraremos únicamente máquinas de

Moore. Sea una máquina de Moore. Se dice que

es una máquina-(n,m,k) si es el número de estados,

es el número de símbolos de entrada y es el

número de símbolos de salida, que son efectivamente asumidos bajo la

función de respuesta res. Sea la función que, para un

estado q y una palabra , da el último símbolo de respuesta cuando se

aplica a partir de q. Diremos que dos estados q1, q2 son indistinguibles,

, si para cualquier palabra se tiene .

Intuitivamente, dos estados son indistinguibles si no se los puede distinguir

mediante una sucesión de estímulos, pues ambos estados ofrecen mismas

respuestas ante mismas entradas. Los estados son distinguibles si para

alguna palabra se tiene , y en tal caso, se dice que los

distingue.

Proposición 1.2   Cualesquiera dos estados distinguibles en una máquina-

(n,m,k) lo son mediante una palabra de longitud a lo sumo n-k.

En efecto, para cada sea Ii el conjunto de parejas de estados que no

pueden ser distinguidos por palabras de longitud i,

Ii es una relación de equivalencia. Sea el índice de la relación Ii. Ya que la

sucesión de relaciones es decreciente, o sea,

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 65: LA DEMOSTRACIÓN EN MATEMÁTICA

se tiene que la correspondiente sucesión de índices es creciente,

  (5)

Naturalmente, donde es el índice de la

relación `` ''. Por tanto, necesariamente, , y, de hecho,

. De aquí puede verse que las desigualdades intermedias en

la serie de relaciones 3.1 son estrictas, es decir

y, en particular, .

Por tanto, el número de relaciones distintas de la forma Ii está mayorizado

por la desigualdad , quod erat demonstratum.

La proposición anterior proporciona un algoritmo elemental para calcular, de

manera exhaustiva, al cociente :

1.

Sean , y las cardinalidades de

los conjuntos de símbolos de entrada, estados y símbolos de salida

asumidos.

2.

Sea el número de palabras de longitud a lo más

. 3.

Fórmese la matriz tal que . 4. Dos estados son indistinguibles entre sí si los correspondientes vectores

columnas en F coinciden.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 66: LA DEMOSTRACIÓN EN MATEMÁTICA

Ejemplo. Residuos módulo 4: Una máquina que reconoce números

binarios congruentes con 2 o con 4, módulo 4, se muestra en la figura (3.4).

   Figure 3.4: Reconocedor de números binarios congruentes con 2 o 4 módulo 4.

Se tiene , y , luego k=24-

2+1-1=7. La tabla para reconocer estados indistinguibles queda:

Por tanto, las parejas y constan de estados

indistinguibles entre sí.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 67: LA DEMOSTRACIÓN EN MATEMÁTICA

Se ve directamente que la relación `` '' es de equivalencia en el

conjunto de estados Q. Por tanto, el cociente es una partición de Q.

Más aún, si dos estados son indistinguibles, lo son también los estados a los

que transitan bajo cualquier estímulo,

en otras palabras, la noción de indistinguibilidad es congruente con las

transiciones de la máquina .

Observación 1.1   El espacio cociente puede ser dotado de una

estructura de máquina de Moore.

En efecto, la construcción es la siguiente:

Estados:

clases de equivalencia , con ,

Transición:

, o sea, la clase de indistinguibilidad de q

transita, bajo e a la clase del estado al que transita q. Esta definición

tiene sentido pues la indistinguibilidad es congruente con las

transiciones,

Respuesta:

, la cual función también está bien definida, y

Estado inicial:

, es decir, el nuevo estado inicial es la clase de equivalencia

del estado inicial original. En esta clase están incluidos todos los

estados indistinguibles respecto a q0.

Así por ejemplo, la máquina cociente del último ejemplo es la siguiente:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 68: LA DEMOSTRACIÓN EN MATEMÁTICA

Observación 1.2   La máquina cociente tiene un número de estados que no

excede al de la máquina dada. De hecho, si hubiera una pareja de estados

indistinguibles entonces el número de estados de la máquina cociente es

estrictamente menor. Además, la máquina cociente es equivalente a la

máquina dada.

En efecto, veamos que para todo , . Para se

tiene

Ahora, para y , al suponer que , se tiene

Redes de Petri

Una Red de Petri es una representación matemática de un sistema

distribuido discreto. Las redes de Petri fueron definidas en los años 1960 por

Carl Adam Petri. Son una generalización de la teoría de autómatas que

permite expresar eventos concurrentes.

Una red de Petri está formada por lugares, transiciones y arcos dirigidos, así

como por fichas que ocupan posiciones. Los arcos conectan un lugar a una

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 69: LA DEMOSTRACIÓN EN MATEMÁTICA

transición o una transición a un lugar. No puede haber arcos entre lugares ni

entre transiciones. Los lugares contienen un número cualquiera de fichas.

Las transiciones se disparan, es decir consumen fichas de una posición de

inicio y producen fichas en una posición de llegada. Una transición está

habilitada si tiene fichas en todas sus posiciones de entrada.

En su forma más básica, las fichas que circulan en una red de Petri son todas

idénticas. Se puede definir una variante de las redes de Petri en las cuales

las fichas pueden tener un color (una información que las distingue), un

tiempo de activación y una jerarquía en la red.

La mayoría de los problemas sobre redes de Petri son decidibles, tales como

el carácter acotado y la cobertura. Para resolverlos se utiliza un árbol de

Karp-Miller. Se sabe que el problema de alcance es decidible, al menos en un

tiempo exponencial.

Mediante una red de Petri puede modelizarse un sistema de evolución en

paralelo compuesto de varios procesos que cooperan para la realización de

un objetivo común.

La presencia de marcas en una ficha se interpreta habitualmente como

presencia de recursos. El franqueo de una transición (la acción a ejecutar) se

realiza cuando se cumplen unas determinadas precondiciones, indicadas por

las marcas en las fichas (hay una cantidad suficiente de recursos), y la

transición (ejecución de la acción) genera unas postcondiciones que

modifican las marcas de otras fichas (se liberan los recursos) y así se

permite el franqueo de transiciones posteriores.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 70: LA DEMOSTRACIÓN EN MATEMÁTICA

Definición: Una red de Petri es un conjunto formado por R = {P,T,Pre,Post},

dónde P es un conjunto de fichas de cardinal n, T un conjunto de transiciones

de cardinal m, Pre la aplicación de incidencia previa que viene definida como

y Post la aplicación de incidencia posterior que viene definida como

Definición: Una red marcada es el conjunto formado por {R,M} donde R es

una Red de Petri como la definida, M es una aplicación denominada marcado y

.

Se asocia a cada ficha un número natural, denominado marca. Las marcas

para una ficha se reúnen en columnas.

Estructura de una red de Petri.

Las PN se componen de cuatro partes:

Un conjunto de nodos.

Un conjunto de transiciones.

Una función de entrada y

Una función de salida.

Las funciones de entrada y salida relacionan a los nodos y a las transiciones.

La función de entrada es un mapeo de una transición tj a una colección de

nodos conocidos como los nodos de entrada de una transición. La estructura

de una PN es definida por los nodos, las transiciones, la función de entrada y

la función de salida.

Definición: La estructura de la PN P=(P,T,I,O) donde:} P={p1,p2,…,pn} es un

conjunto finito de nodos, con n³ 0. T={t1,t2,…,tm} es un conjunto finito de

transiciones con m³ 0. PÇ T= Æ I,O: T ® P

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 71: LA DEMOSTRACIÓN EN MATEMÁTICA

Un nodo pi es un nodo de entrada de la transición tj sí pi Î I(tj); pi es un nodo

de salida sí pi Î O(tj). Las entradas y salidas de una transición son conjuntos

que tienen elementos repetidos o múltiples ocurrencias de nodos (bags). La

multiplicidad de un nodo de entrada pi para una transición tj es el número de

ocurrencias del nodo en el bag de entrada de la transición. Escribimos esto

como: #(pi,I(tj)). De igual forma para la salida lo cual escribimos: #(pi,O(tj)).

Ejemplo:

P=(P,T,I,O)

P={p1,p2,p3, p4, p5} T={t1,t2,t3, t4, t5}

I(t1) ={p1} O(t1)={p2, p3, p5}

I(t2) ={p2, p3, p5} O(t2)={p5}

I(t3) ={p3} O(t3)={p4}

I(t4) ={} O(t4)={p2, p3}

I(t5) ={p4} O(t5)={p2, p3}

Donde:

#(p3,I(t2))=1 #(p5,O(t1))=1

Una marcaU es una característica de la PN, marca U es una asignación de

tokens a la PN. Un token es un concepto primitivo de una PN, un número de

ellos reside en los nodos y se mueve entre ellos; los tokens son la parte

dinámica de la PN, su número puede variar entre nodos y son los que

determinan la situación de la red en un momento determinado.

Definición: Una marca U de una PN P=(P,T,I,O) es una función U: P ® N.

Es decir el nodo pi tiene U(pi) tokens. La PN puede ser considerada también

como un modelo de flujo de información, en donde el comportamiento

dinámico de los tokens representan el flujo. Dicho de otra manera la

información depende de lo que la PN esta modelando.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 72: LA DEMOSTRACIÓN EN MATEMÁTICA

Representación gráfica de una red de Petri.

La representación gráfica de una PN es importante porque al observar el

modelo del sistema en forma gráfica y observar como cambia de un estado a

otro puede mantener la atención y dar una perspectiva más clara a quién

esté analizando el problema.

Definición: Una gráfica G de una PN P=(P,T,I,O) es una gráfica múltiple

bipartita dirigida G=(V,A) donde V={ v1, v2, …, vn} es un conjunto de

vértices y A={ a1, a2, …, an} es un conjunto de arcos dirigidos ai=(vj,vk)

con vj, vk Î V, V=PÈ T para cada ai Î A se cumple aj=(vj,vk) Þ vj Î P, vk Î T, ó vj

Î T, vk Î P.

Un circulo O representa un nodo; una barra | representa una transición. Los

arcos o curvas conectan los nodos y las transiciones, si un arco va de un

nodo a una transición, el nodo será una entrada y si el arco va de una

transición a un nodo, el nodo será una salida de esa transición. Los tokens

son representados por pequeños puntos.

Ahora consideremos la PN vista anteriormente:

P=(P,T,I,O)

P={p1,p2,p3, p4, p5} T={t1,t2,t3, t4, t5}

I(t1) ={p1} O(t1)={p2, p3, p5}

I(t2) ={p2, p3, p5} O(t2)={p5}

I(t3) ={p3} O(t3)={p4}

I(t4) ={} O(t4)={p2, p3}

I(t5) ={p4} O(t5)={p2, p3}

Donde:

#(p3,I(t2))=1 #(p5,O(t1))=1

Reglas de disparo para una PN.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 73: LA DEMOSTRACIÓN EN MATEMÁTICA

La ejecución en una PN es controlada por el número y distribución de los

tokens que tiene. Los tokens presentes en los nodos controlan la ejecución

de las transiciones de la red. Una PN se activa disparando transiciones. Una

transición es disparada removiendo tokens de los nodos de entrada y

creando tokens de salida. De aquí podemos obtener la primera condición de

disparo en una transición: todos los nodos de entrada de la transición, deben

tener al menos el mismo número de tokens, que de arcos que van hacia la

transición, para que ésta sea disparada, cuando la transición cumpla esta

condición se dice que es una transición ENABLED.

Definición: Una transición tj Î T en una PN P=(P,T,I,O) con una marca U es

ENABLED si para todo pj Î P, U(pj)>=#( pj,I(tj)).

Por ejemplo una transición t3 con I(t3)={p3} y O(t3)={p4} es ENABLED sólo

cuando p3 tiene al menos un token. Cuando t3 es disparada sólo un token es

quitado a p3 y un token es depositado en p4 (sí tuviera más nodos de salida,

depositaria un token en cada uno de ellos). Es decir por cada arco de salida

es liberado un token.

Consideremos la siguiente PN:

Sólo 3 transiciones están en un estado ENABLED t1, t3, t4. La transición t2

no puede ser disparada porque no hay tokens en el nodo p2, el cual es

entrada de ella. Dado que t1, t3 y t4 son ENABLED cualquiera de ellas puede

ser disparada. Podemos asociar de manera natural un vector u enlistando los

valores de U. Así para la PN mostrada tenemos u=(1,0,2,1,0). Sí la transición

t4 es disparada, remueve tokens de cada entrada y los deposita en cada

salida, entonces remueve un token de p4 y deposita un token en p2 e

incrementa el número de tokens en p3 de dos a tres; el vector u sería

(1,1,3,0,0) y el estado de la red se mueve a como se muestra en la siguiente

figura.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 74: LA DEMOSTRACIÓN EN MATEMÁTICA

Las transiciones pueden seguir disparándose indefinidamente hasta llegar a

un estado deseado o hasta que ninguna pueda ser disparada.

De lo anterior surgen dos preguntas:

¿Cómo decidimos que transición debe dispararse?

¿Porqué no podemos disparar dos transiciones al mismo tiempo?

Decidir que transición debe dispararse depende de nuestro modelo y sí

podemos disparar más de una transición en un mismo instante entonces

estamos hablando de paralelismo.

Pensemos en un ejemplo concreto: queremos sumar cuatro números

cualesquiera por medio de una PN. Dependiendo de cada número se ponen

tantos tokens en los nodos correspondientes p1, p2, p3 y p4. Los primeros

resultados parciales se almacenan en p5, y los últimos en p6, una transición

para cada nodo es la que se encarga de quitar unidades en los sumandos y

poner unidades en el resultado, cuando se efectúan las dos sumas, se realiza

una tercera suma, la realizan t5 y t6, su resultado se pone en p7. El orden en

el que se realizan las operaciones no es un orden secuencial ya que la primer

suma puede ocurrir indistintamente de las sumas anteriores.

Redes de Petri Coloreadas

Las redes de Petri coloreadas (CPN) pertenecen a la familia de las PN, la

diferencia viene marcada por las consideraciones en CPN de colores y de

funciones lineales asociadas a sus arcos. Los tokens de color pueden

representar un atributo o distintivo, si es necesario definir dos atributos

entonces surge la idea de colores compuestos. Una transición en CPN está

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 75: LA DEMOSTRACIÓN EN MATEMÁTICA

en estado ENABLED si todos sus nodos de entrada contienen un número de

colores igual o mayor que los definidos por fi<c> donde fi es una función

lineal asociada al nodo pi con la transición tj. Entonces además del concepto

de color, estas redes manejan una función asociada para los elementos de

las funciones I,O de la PN.

Es fácil ver en una Red las transiciones que están ENABLED y observar que a

veces son más de dos transiciones las que se pueden disparar, en la

siguiente figura notamos que t1 y t2 pueden dispararse, pero si t1 es

disparada, t2 dejará de ser ENABLED y si disparamos t2, no podremos

disparar t1. Esto es conocido como un conflicto y nos ayuda a modelar

problemas de sincronización.

Extensiones al Modelo de Redes de Petri

Un arco inhibidor es otro componente de una PN, éste va de un nodo a una

transición y es representado con un pequeño circulo al final del arco. La

transición que tiene arcos inhibidores no puede dispararse si el nodo de

entrada contiene por lo menos tantos tokens como la multiplicidad del arco

inhibidor. Así por ejemplo la siguiente figura disparará cuando p1 tenga un

token, y p2 no tenga tokens.

En general las extensiones a la teoría de PN dependen del modelo o la

aplicación donde se estén usando.

Redes de Petri Temporales.

Este tipo de redes son las que consideran el tiempo en el modelo. Es una

consideración importante ya que los sistemas reales casi siempre es

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 76: LA DEMOSTRACIÓN EN MATEMÁTICA

indispensable considerarlo en la sincronización de los procesos.

El modelo más simple es el que asigna duración a:

1. Los nodos, en el sentido de que una condición es verdadera para una

cierta cantidad de tiempo.

2. La transición, en el sentido de que un evento toma una cierta cantidad

de tiempo en ocurrir.

Cuando la duración de los eventos no son fijos, o no pueden ser expresados

con valores nominales, simplemente se estiman límites dentro de los cuales

el evento puede ocurrir.

Alfabetos y lenguajes. Gramáticas formales

Alfabetos, cadenas y lenguajes

Definición 1   Un alfabeto es un conjunto finito no vacío de símbolos y se

denota como .

La pertenencia de un símbolo a un alfabeto se denota como     .

Ejemplo: Podemos representar el alfabeto de las letras minúsculas que utiliza

el idioma español, el cual contiene los 27 símbolos siguientes:

y sabemos que la letra pertenece a este alfabeto, lo cual denotaremos

como .

Ya sabemos que los alfabetos son conjuntos, por lo que, todas las

operaciones de conjuntos se pueden aplicar a los alfabetos también. Sean

alfabetos, y ya que los alfabetos son conjuntos finitos, no

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 77: LA DEMOSTRACIÓN EN MATEMÁTICA

vacíos, la unión de un número finito de ellos resulta en un conjunto no

vacío y finito, esto es, si y

La unión de un número arbitrario finito de alfabetos resultará en un conjunto

finito y no vacío, es más, si y , son conjuntos no vacíos, entonces

son conjuntos finitos, no vacíos, y por lo tanto serán

considerados alfabetos válidos.

Definición 2

Una cadena o palabra es una secuencia finita de símbolos que pertenecen a

un alfabeto y comúnmente se denota con la letra . La cadena vacía se

denota como y es una secuencia vacía de símbolos tomados de cualquier

alfabeto .

Sí el alfabeto es el español, algunas cadenas pueden ser , y

. Dada la definición anterior, cualquier palabra que contenga los

símbolos del alfabeto es una cadena válida, sin importar si esta tiene o no

significado alguno.

Si es cualquier cadena, su longitud se denota como , la longitud de una

cadena es el número de símbolos que contiene, por ejemplo, si tenemos la

cadena sobre el alfabeto español, . La cadena vacía no

tiene símbolos, por lo que

Definición 3  

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 78: LA DEMOSTRACIÓN EN MATEMÁTICA

Un lenguaje es un conjunto de cadenas sobre un alfabeto definido, éstas

pueden ser cualquier cadena , que cumpla con lo siguiente, esta formada

por los símbolos donde .

El lenguaje vacío es aquel que no contiene cadenas y no es lo mismo que el

lenguaje formado por la cadena vacía , éste lenguaje se denota de la

misma manera que el conjunto vacío,

Sí se tiene una cadena sobre un alfabeto y es el lenguaje compuesto

por algunas de las cadenas sobre el alfabeto y , entonces diremos

que es un miembro de .

Definición 4   Un lenguaje universal sobre algún alfabeto , o cerradura de

, es el lenguaje que contiene todas las cadenas que es posible formar con

los símbolos de y se denota como .

Ejemplo: Sea , entonces

Podemos observar que para cualquier alfabeto , es infinito, ya que los

alfabetos son conjuntos no vacíos.

Jerarquía de Chomsky

En lingüística la jerarquía de Chomsky es una

clasificación jerárquica de distintos tipos de

gramáticas formales que generan lenguajes

formales. Esta jerarquía fue descrita por Noam

Chomsky en 1956.

La Jerarquía de Chomsky consta de cuatro

niveles:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 79: LA DEMOSTRACIÓN EN MATEMÁTICA

Gramáticas de tipo 0 (sin restricciones), que incluye a todas las

gramáticas formales. Estas gramáticas generan todos los lenguajes

capaces de ser reconocidos por una máquina de Turing. Los lenguajes

son conocidos como lenguajes recursivamente enumerables. Nótese

que esta categoría es diferente de la de los lenguajes recursivos, cuya

decisión puede ser realizada por una máquina de Turing que se

detenga.

Gramáticas de tipo 1 (gramáticas sensibles al contexto) generan los

lenguajes sensibles al contexto. Estas gramáticas tienen reglas de la

forma con A un no terminal y α, β y γ cadenas de

terminales y no terminales. Las cadenas α y β pueden ser vacías, pero

γ no puede serlo. La regla está permitida si S no aparece en la

parte derecha de ninguna regla. Los lenguajes descritos por estas

gramáticas son exactamente todos aquellos lenguajes reconocidos por

una máquina de Turing determinista cuya cinta de memoria está

acotada por un cierto número entero de veces sobre la longitud de

entrada, también conocidas como autómatas linealmente acotados.

Gramáticas de tipo 2 (gramáticas libres del contexto) generan los

lenguajes independientes del contexto. Las reglas son de la forma

con A un no terminal y γ una cadena de terminales y no

terminales. Estos lenguajes son aquellos que pueden ser reconocidos

por un autómata con pila.

Gramáticas de tipo 3 (gramáticas regulares) generan los lenguajes

regulares. Estas gramáticas se restringen a aquellas reglas que tienen

en la parte izquierda un no terminal, y en la parte derecha un solo

terminal, posiblemente seguido de un no terminal. La regla

también está permitida si S no aparece en la parte derecha de ninguna

regla. Estos lenguajes son aquellos que pueden ser aceptados por un

autómata finito. También esta familia de lenguajes pueden ser

obtenidas por medio de expresiones regulares.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 80: LA DEMOSTRACIÓN EN MATEMÁTICA

Nótese que el conjunto de gramáticas correspondiente a los lenguajes

recursivos no es un miembro de la jerarquía.

Cada lenguaje regular es a su vez libre del contexto, asimismo un lenguaje libre del contexto es

también dependiente del contexto, éste es recursivo y a su vez, recursivamente enumerable. Las

inclusiones son, sin embargo, propias, es decir, existen en cada nivel lenguajes que no están en

niveles anteriores.

Tipo Lenguaje AutómataNormas de producción de gramáticas

0recursivamente enumerable (LRE)

Máquina de Turing (MT) Sin restricciones

1 dependiente del contexto (LSC)Autómata linealmente acotado

αAβ → αγβ

2independiente del contexto (LLC)

Autómata con pila A → γ

3 regular (RL) Autómata finitoA → aB

A → a

El Concepto de Lenguaje Regular

Un lenguaje regular es un tipo de lenguaje formal que satisface las

siguientes propiedades:

Puede ser reconocido por:

un autómata finito determinista un autómata finito no determinista un autómata finito alterno una máquina de Turing de solo lectura

Es generado por:

una gramática regular una gramática de prefijos

Es descrito por:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 81: LA DEMOSTRACIÓN EN MATEMÁTICA

una expresión regular

Lenguajes regulares sobre un alfabeto

Un lenguaje regular sobre un alfabeto Σ dado se define recursivamente

como:

El lenguaje vacío es un lenguaje regular

El lenguaje cadena vacía {ε} es un lenguaje regular

Para todo símbolo a ∈ Σ {a} es un lenguaje regular

Si A y B son lenguajes regulares entonces A ∪ B (unión), A•B

(concatenación) y A* (clausura o estrella de Kleene) son lenguajes

regulares

Si A es un lenguaje regular entonces (A) es el mismo lenguaje regular

No existen más lenguajes regulares sobre Σ

Todo lenguaje formal finito constituye un lenguaje regular. Otros ejemplos

típicos son todas las cadenas sobre el alfabeto {a, b} que contienen un

número par de aes o el lenguaje que consiste en varias aes seguidas de

varias bes.

Si un lenguaje no es regular requiere una máquina con al menos una

complejidad de Ω(log log n) (donde n es el tamaño de la entrada). En la

práctica la mayoría de los problemas no regulares son resueltos con una

complejidad logarítmica.

Un lenguaje formal infinito puede ser regular o no regular. El lenguaje L =

{an, n > 0} es regular porque puede ser representado, por ejemplo,

mediante la expresión regular a+. El lenguaje L= {an bn, n > 0} es un

lenguaje no regular dado que no es reconocido por ninguna de las formas

de representación anteriormente enumeradas.

Propiedades de cierre

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 82: LA DEMOSTRACIÓN EN MATEMÁTICA

Los lenguajes regulares son cerrados con las siguientes operaciones, de

modo que si L y P son lenguajes regulares los siguientes lenguajes

también serán regulares:

El complemento de L

La clausura o estrella de Kleene L* de L

El homomorfismo φ(L) de L

La concatenación L'P de L y P

La unión L ∪ P de L y P

La intersección L ∩ P de L y P

La diferencia L \ P de L y P

El reverso LR de L

Decidir cuándo un lenguaje es regular

Para situar los lenguajes regulares en la jerarquía de Chomsky hay que

notar que todo lenguaje regular es también un lenguaje libre de contexto,

aunque la afirmación contraria no es cierta, por ejemplo: el lenguaje que

contiene el mismo número de aes y de bes es libre de contexto pero no

regular. Para probar que un lenguaje de este tipo no es regular se usa el

teorema de Myhill-Nerode, o el lema de bombeo por ejemplo.

Hay dos aproximaciones puramente algebraicas para definir lenguajes

regulares. Si Σ es un alfabeto finito y Σ* es un monoide libre consistente

en todas las cadenas sobre Σ, f: Σ* → M es un monoide simétrico donde M

es un monoide finito y S es un subconjunto de M entonces el conjunto f-

1(S) es regular. Todo lenguaje regular se presenta de esta manera.

Si L es un subconjunto de Σ*, se define la relación equivalente ~ en Σ* de

la siguiente manera: u ~ v significa

uw ∈ L si y solo si vw ∈ L para todo w ∈ Σ*

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 83: LA DEMOSTRACIÓN EN MATEMÁTICA

El lenguaje L es regular si y solo si el número de clases de equivalencia de

~ es finito; si este es el caso, este número es igual al número de estados

del autómata determinista mínimo que reconocerá L.

Lenguajes finitos

Un subconjunto especial de los lenguajes regulares es el de los lenguajes

finitos, aquellos que solo contienen un número finito de palabras. Estos

son lenguajes obviamente regulares y uno podría crear expresiones

regulares que serían la unión de todas las palabras del lenguaje que

definirían dicho lenguaje.

Lenguajes y Expresiones Regulares

En aritmética, usamos las operaciones + y × para construir expresiones

tales como (4 + 1) × 5

De manera similar, usamos operaciones regulares para construir

expresiones que describen lenguajes, las cuales se denominan

expresiones regulares. Un ejemplo es: (0 ∪ 1)0∗

El valor de la expresión aritmética es 25. El valor de una expresión regular

es un lenguaje. En este caso el lenguaje consiste en todas las palabras

que empiezan con 1 o 0 seguido por cualquier número (finito) de 0 s. Otro

ejemplo de una expresión regular es (0 ∪ 1)∗

Empieza con el lenguaje (0 ∪ 1) y se aplica la operación *. El valor de esta

expresión son todas las palabras posibles de 0 s y 1s.

Lenguajes Regulares

Para un alfabeto § dado, los lenguajes regulares constituyen el menor

conjunto de lenguajes sobre § que es cerrado respecto a las operaciones

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 84: LA DEMOSTRACIÓN EN MATEMÁTICA

de concatenación, la cerradura de Kleene y la unión de lenguajes y

además contiene el lenguaje ? y los lenguajes unitarios {a} para a ∈ §.

Definición 4 Sea § un alfabeto. El conjunto de lenguajes regulares sobre §

se define recursivamente como sigue:

1. ? y {"} son lenguajes regulares

2. Para toda a ∈ §, {a} es un lenguaje regular.

3. Si L y M son lenguajes regulares, entonces L ∪M, LM, L∗ son lenguajes

regulares.

4. Ningún otro lenguaje sobre § es regular.

Ejemplo 4 Dado § = {a, b}, las siguientes afirmaciones son verdaderas:

? y {"} son lenguajes regulares.

{a} y {b} son lenguajes regulares.

{a, b} es un lenguaje regular.

{ab} es regular.

{ai|i ≥ 0} es regular.

Podemos simplificar la representación de un lenguaje regular por medio

de una abreviatura llamada expresión regular. Convenimos en escribir a

en lugar del lenguaje unitario {a}. Por tanto

a ∪ b denota {a, b} = {a} ∪ {b}

ab denota {ab}

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 85: LA DEMOSTRACIÓN EN MATEMÁTICA

a∗ denota {a}∗

a+ denota {a}+

Además se establece un orden en los operadores, primero la clausura de

Kleene

(*), luego la concatenación y por último la unión. En algunos casos esto

simplifica la expresión. Por ejemplo, una expresión {a} ∪ ({b}∗{c}), se

reduce a la expresión regular a ∪ b∗c. De este modo, si se realiza la

unión previa a la concatenación, se deben usar paréntesis; así (a ∪ b)c

indica que se realiza la unión de {a} y {b} y el resultado se concatena

con {c} a la derecha. Si escribimos a ∪ bc debe ser leído: se concatena

{b} y {c} en ese orden y el resultado se une con {a}.

Definición Formal de una Expresión Regular

Definición 5 Definimos las expresiones regulares de manera recursiva:

1. ? y " son expresiones regulares.

2. a es una expresión regular para toda a ∈ §.

3. Si r y s son expresiones regulares, entonces r ∪ s, rs, r∗ son

expresiones regulares.

Ninguna otra secuencia de símbolos es una expresión regular.

Comparando las definiciones de lenguajes regulares y expresiones regulares

se deduce que toda expresión regular sobre § denota un lenguaje regular

sobre §.

Por ejemplo el lenguaje de todas las palabras sobre {a, b, c} que no tienen

ninguna subcadena ac se denota mediante la expresión regular c∗(a ∪

bc∗)∗.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 86: LA DEMOSTRACIÓN EN MATEMÁTICA

Cuando sea necesario distinguir entre una expresión regular r y el lenguaje

denotado por la misma, usaremos L(r) para identificar dicho lenguaje. Así, si

se afirma w ∈ r, esto significa que w ∈ L(r). Si r y s son expresiones sobre el

mismo alfabeto y si L(r) = L(s), entonces se dice que r y s son equivalentes.

En el caso que r y s sean equivalentes se puede escribir r = s. también se

puede usar r ⊆ s en el caso que L(r) ⊆ L(s). En la definición de la cerradura

estrella se obtiene que ?∗ = {"}, y en términos de expresiones regulares se

tiene que ?∗ = ".

Obsérvese que hay muchas expresiones regulares que denotan el mismo

lenguaje.

Por ejemplo (a∗b)∗ y "∪(a∪b)∗b denotan el mismo lenguaje: el lenguaje de

todas las palabras con 0 o más a s y b s, que son la palabra vacía o las que

tienen una b al final. De este modo (a∗b)∗ = " ∪ (a ∪ b)∗b. Se pueden

simplificar expresiones regulares reemplazándolas por otras equivalentes

pero menos complejas.

ELEMENTOS DE COMPLEJIDAD ALGORITMICA. SESIONES

La complejidad algorítmica representa la cantidad de recursos (temporales)

que necesita un algoritmo para resolver un problema y por tanto permite

determinar la eficiencia de dicho algoritmo.

Los criterios que se van a emplear para evaluar la complejidad algorítmica

no proporcionan medidas absolutas sino medidas relativas al tamaño del

problema.

En la ciencia de la computación los algoritmos son más importantes que los

LP o que las computadoras; la solución de un problema haciendo uso de las

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 87: LA DEMOSTRACIÓN EN MATEMÁTICA

computadoras requiere por una parte un algoritmo o método de resolución y

por otra un programa o codificación del algoritmo en un LP. Ambos

componentes tienen importancia; pero la del algoritmo es absolutamente

indispensable; sabemos que un algoritmo es una secuencia de pasos para

resolver un problema, sus características son:

1. Independiente: Del LP y de la máquina.

2. Definido: De pasos claros y concretos.

3. Finito: En el número de pasos que usará.

4. Preciso: Cada paso arroja un cálculo correcto.

5. Recibe datos: Debe poseer datos de entrada.

Debemos saber que una solución es un conjunto único, pero no es el único

conjunto de pasos que entregan la solución, existen muchas alternativas de

solución y estas alternativas pueden diferir por:

o Número de pasos

o Estructuras

Ahora que sabemos que existen muchas alternativas de solución para un

problema, debemos seleccionar el algoritmo más eficiente, el mejor conjunto

de pasos, el que tarde menos en ejecutarse, que tenga menos líneas de

código.

Esta selección puede ser ejecutada a simple vista con sólo observar la

cantidad de líneas del programa, pero cuando el programa crece se requiere

una medición más exacta y apropiada, para esto se realizan ciertas

operaciones matemáticas que establecen la eficiencia teórica del programa,

al estudio de estos casos se denomina Complejidad Algorítmica.

COMPLEJIDAD ALGORÍTMICA

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 88: LA DEMOSTRACIÓN EN MATEMÁTICA

o Un algoritmo será mas eficiente comparado con otro, siempre

que consuma menos recursos, como el tiempoy espacio de memoria

necesarios para ejecutarlo.

o La eficiencia de un algoritmo puede ser cuantificada con las

siguientes medidas de complejidad:

1. Complejidad Temporal o Tiempo de ejecución: Tiempo de

cómputo necesario para ejecutar algún programa.

2. Complejidad Espacial: Memoria que utiliza un programa para su

ejecución, La eficiencia en memoria de un algoritmo indica la cantidad

de espacio requerido para ejecutar el algoritmo; es decir, el espacio en

memoria que ocupan todas las variables propias al algoritmo. Para

calcular la memoria estática de un algoritmo se suma la memoria que

ocupan las variables declaradas en el algoritmo. Para el caso de la

memoria dinámica, el cálculo no es tan simple ya que, este depende de

cada ejecución del algoritmo.

o Este análisis se basa en las Complejidades Temporales, con este

fin, para cada problema determinaremos una medida N, que

llamaremos tamaño de la entrada o número de datos a procesar por

el programa, intentaremos hallar respuestas en función de dicha N.

o l concepto exacto que cuantifica N dependerá de la naturaleza

del problema, si hablamos de un array se puede ver a N como el

rango del array, para una matriz, el número de elementos que la

componen; para un grafo, podría ser el número de nodos o arcos que

lo arman, no se puede establecer una regla para N, pues cada

problema acarrea su propia lógica y complejidad.

Tiempo de Ejecución

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 89: LA DEMOSTRACIÓN EN MATEMÁTICA

o El tiempo de Ejecución de un programa se mide en función de N,

lo que designaremos como T(N).

o Esta función se puede calcular físicamente ejecutando el

programa acompañados de un reloj, o calcularse directamente sobre

el código, contando las instrucciones a ser ejecutadas y multiplicando

por el tiempo requerido por cada instrucción. Así, un trozo sencillo de

código como:

S1;

for(x = 0; x < N; x++)

S2;

Demanda: T(N) = t1 + t2 * N

Donde t1 es el tiempo que lleva ejecutar la serie S1 de sentencias, y t2

es el que lleva la serie S2.

o Habitualmente todos los algoritmos contienen alguna sentencia

condicional o selectiva, haciendo que las sentencias ejecutadas

dependan de la condición lógica, esto hace que aparezca más de un

valor para T(N), es por ello que debemos hablar de un rango de

valores:

Tmin(N) ≤ T(N) ≤ Tmax(N)

o

o Estos extremos son llamados "el peor caso" y "el mejor caso" y

entre ambos se puede hallar "el caso promedio" o el más frecuente,

siendo este el más difícil de estudiar; nos centraremos en el " el peor

caso" por ser de fácil cálculo y se acerca a "el caso promedio",

brindándonos una medida pesimista pero fiable.

o

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 90: LA DEMOSTRACIÓN EN MATEMÁTICA

o Toda función T(N) encierra referencias al parámetro N, y a una

serie de constantes Ti dependientes de factores externos al algoritmo.

Se tratará de analizar los algoritmos dándoles autonomía frente a

estos factores externos, buscando estimaciones generales

ampliamente válidas, a pesar de ser demostraciones teóricas.

Asintotas

o El análisis de la eficiencia algorítmica nos lleva a estudiar el

comportamiento de los algoritmos frente a condiciones extremas.

Matemáticamente hablando, cuando Ntiende al infinito ¥ , es un

comportamiento asintótico.

o Sean g(n) diferentes funciones que determinan el uso de

recursos, pudiendo existir infinidad de funciones g.

o Estas funciones g serán congregadas en familias, usando como

criterio de agrupación su comportamiento asintótico, este

comportamiento asintótico es similar cuando los argumentos toman

valores muy grandes.

o Una familia de funciones que comparten un mismo

comportamiento asintótico será llamada un Orden de Complejidad.

Estas familias se designan con O( ).

o Para cada uno de estos conjuntos se suele identificar un

miembro f(n) que se utiliza como representante de la familia,

hablándose del conjunto de funciones g que son del orden de f(n),

denotándose como:

g É O(f(n)), g esta incluído en f(n)

o Frecuentemente no es necesario conocer el comportamiento

exacto, basta conocer una cota superior, es decir, alguna función que

se comporte ‘aún peor’.

o El conjunto O(f(n)) es el de las funciones de orden de f(n), que se

define como:

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 91: LA DEMOSTRACIÓN EN MATEMÁTICA

O(f(n)n0,n )= { g | $ k Î Â +, $ n0 Î À tales que, g(n) £ kf(n) }

O(f(n)) esta formado por aquellas funciones g(n) que crecen a un ritmo

menor o igual que el de f(n).

De las funciones g que forman este conjunto O(f(n)) se dice que están

dominadas asintóticamente por f, en el sentido de que para N

suficientemente grande, y salvo una constante multiplicativa k, f(n) es

una cota superior de g(n).

Ejemplo: Se puede comprobar que la función g(n) = 3n3 + 2n2, es de

O(n3)

Aplicando la definición dada anteriormente:

g(n)= 3 n3 + 2n2

f(n)= n3

n0= 0

k = 5

Se tiene: 3n3 + 2n2 £ 5n3, n 0

n g( ) kf( )

0 0 0

1 5 5

2 32 40

3 99 135

o El tiempo de ejecución es proporcional, se multiplica por una

constante a alguno de los tiempos de ejecución anteriormente

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 92: LA DEMOSTRACIÓN EN MATEMÁTICA

propuestos, además de la suma de algunos términos más pequeños.

Así, un algoritmo cuyo tiempo de ejecución sea T = 3n2 + 6n se

puede considerar proporcional a n2. En este caso se puede asegurar

que el algoritmo es del orden de n2, y se escribe O(n2)

o La notación O( ) ignora los factores constantes, desconoce si se

hace una mejor o peor implementación del algoritmo, además de ser

independiente de los datos de entrada del algoritmo. Es decir, la

utilidad de aplicar esta notación a un algoritmo es encontrar el límite

superior de su tiempo de ejecución ‘el peor caso’.

Órdenes de Complejidad

o La familia O(f(n)) define un Orden de Complejidad. Elegiremos

como representante de este Orden de Complejidad a la función f(n)

más sencilla perteneciente a esta familia.

o Las funciones de complejidad algorítmica más habituales en las

cuales el único factor del que dependen es el tamaño de la muestra

de entrada n, ordenadas de mayor a menor eficiencia son:

O(1) Orden constante

O(log n) Orden logarítmico

O(n) Orden lineal

O(n log n) Orden cuasi-lineal

O(n2) Orden cuadrático

O(n3) Orden cúbico

O(na) Orden polinómico

O(2n) Orden exponencial

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 93: LA DEMOSTRACIÓN EN MATEMÁTICA

O(n!) Orden factorial

o Se identifica una Jerarquía de Ordenes de Complejidad que

coincide con el orden de la tabla mostrada; jerarquía en el sentido de

que cada orden de complejidad inferior tiene a las superiores como

subconjuntos.

O(1): Complejidad constante. Cuando las instrucciones se

ejecutan una vez.

O(log n): Complejidad logarítmica. Esta suele aparecer en

determinados algoritmos con iteración o recursión no estructural,

ejemplo la búsqueda binaria.

O(n): Complejidad lineal. Es una complejidad buena y

también muy usual. Aparece en la evaluación de bucles simples

siempre que la complejidad de las instrucciones interiores sea

constante.

O(n log n): Complejidad cuasi-lineal. Se encuentra en

algoritmos de tipo divide y vencerás como por ejemplo en el

método de ordenación quicksort y se considera una buena

complejidad. Si n se duplica, el tiempo de ejecución es ligeramente

mayor del doble.

O(n2): Complejidad cuadrática. Aparece en bucles o ciclos

doblemente anidados. Si n se duplica, el tiempo de ejecución

aumenta cuatro veces.

O(n3): Complejidad cúbica. Suele darse en bucles con

triple anidación. Si nse duplica, el tiempo de ejecución se multiplica

por ocho. Para un valor grande de n empieza a crecer

dramáticamente.

O(na): Complejidad polinómica (a> 3). Si a crece, la

complejidad del programa es bastante mala.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 94: LA DEMOSTRACIÓN EN MATEMÁTICA

O(2n): Complejidad exponencial. No suelen ser muy útiles

en la práctica por el elevadísimo tiempo de ejecución. Se dan en

subprogramas recursivos que contengan dos o más llamadas

internas. N

Algoritmos Polinomiales: Aquellos que son proporcionales a na. Son

en general factibles o aplicables, los problemas basados en estos

algoritmos son solucionables.

Algoritmos Exponenciales: Aquellos que son proporcionales a kn, k

En general no son factibles salvo un tamaño de entrada n

exageradamente pequeño, pero generalmente pertenecen a un universo

de problemas de los cuales el cómputo se hace imposible. N

Reglas de la Notación Asintótica

Si T1(n) y T2(n) son las funciones que expresan los tiempos de

ejecución de dos fragmentos de un programa, y se acotan de forma

que se tiene:

T1(n) = O(f1(n)) y T2(n) = O(f2(n))

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 95: LA DEMOSTRACIÓN EN MATEMÁTICA

Se puede decir que:

T1(n) + T2(n) = O(max(f1(n), f2(n)))

Regla de la suma

Regla del producto

Si T1(n) y T2(n) son las funciones que expresan los tiempos de ejecución

de dos fragmentos de un programa, y se acotan de forma que se tiene:

T1(n) = O(f1(n)) y T2(n)=O(f2(n))

Se puede decir que:

T1(n) T2(n) = O(f1(n) f2(n))

IMPORTANCIA DE LA EFICIENCIA

o ¿Que utilidad tiene diseñar algoritmos eficientes si las

computadoras procesan la información cada vez más rápido?

Bien; para demostrar la importancia de la elaboración de algoritmos

eficientes, se plantea el siguiente problema:

o Contamos con una computadora capaz de procesar datos en 10-

4 seg. En esta computadora se ejecuta un algoritmo que lee registros

de una base de datos, dicho algoritmo tiene una complejidad

exponencial 2n, ¿Cuánto tiempo se tardará en procesar una entrada n

de datos?

 n TIEMPO

10 » 1 décima de segundo

20 » 2 minutos

30 > 1 día

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 96: LA DEMOSTRACIÓN EN MATEMÁTICA

40 > 3 años

50 = 3 570 años

100 = 4,019,693,684,133,150

milenios

o Ahora se tiene la misma computadora capaz de procesar datos

en 10-4 seg. Pero se ejecuta un algoritmo que hace el mismo trabajo

antes citado, pero este algoritmo tiene una complejidad cúbica n3,

¿Cuánto tiempo se tardará en procesar una entrada n de datos?

n TIEMPO

10 = 1 décima de segundo

20 = 8 décimas de segundo

100 = 1.7 minutos

200 = 13.3 minutos

1000 » 1 día

o Se puede concluir, que solo un algoritmo eficiente, con un orden

de complejidad bajo, puede tratar grandes volumen de datos, se

razona que un algoritmo es:

o Muy eficiente si su complejidad es de orden log n

o Eficiente si su complejidad es de orden na

o Ineficiente si su complejidad es de orden 2n

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 97: LA DEMOSTRACIÓN EN MATEMÁTICA

o Se considera que un problema es tratable si existe un algoritmo

que lo resuelve con complejidad menor que 2n, y que es intratable o

desprovisto de solución en caso contrario.

ESTIMACIÓN DE LA COMPLEJIDAD EN ALGORITMOS NO

RECURSIVOS

Asignaciones y expresiones simples (=)

El tiempo de ejecución de toda instrucción de asignación simple, de la

evaluación de una expresión formada por términos simples o de toda

constante es O(1).

Secuencias de instrucciones (;)

El tiempo de ejecución de una secuencia de instrucciones es igual a la

suma de sus tiempos de ejecución individuales. Para una secuencia de

dos instrucciones S1 y S2 el tiempo de ejecución esta dado por la suma

de los tiempos de ejecución de S1 y S2:

T(S1 ; S2) = T(S1) + T(S2)

Aplicando la regla de la suma:

O(T(S1 ; S2)) = max(O( T(S1), T(S2) ))

Instrucciones condicionales (IF, SWITCH-CASE)

El tiempo de ejecución para una instrucción condicional IF-THEN es el

tiempo necesario para evaluar la condición, más el requerido para el

conjunto de instrucciones que se ejecutan cuando se cumple la

condición lógica.

T(IF-THEN) = T(condición) + T(rama THEN)

Aplicando la regla de la suma:

O(T(IF-THEN)) = max(O( T(condición), T(rama THEN) ))

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 98: LA DEMOSTRACIÓN EN MATEMÁTICA

El tiempo de ejecución para una instrucción condicional de tipo IF-THEN-

ELSE resulta de evaluar la condición, más el máximo valor del conjunto

de instrucciones de las ramas THEN y ELSE.

T(IF-THEN-ELSE) = T(condición) + max(T(rama THEN), T(rama ELSE))

Aplicando la regla de la suma, su orden esta dada por la siguiente

expresión:

O(T(IF-THEN-ELSE)) = O( T(condición)) + max(O(T(rama THEN)),

O(T(rama ELSE)) )

Aplicando la regla de la suma:

O(T(IF-THEN-ELSE)) = max(O( T(condición)), max(O(T(rama THEN)),

O(T(rama ELSE)) ))

El tiempo de ejecución de un condicional múltiple (SWITCH-CASE) es el

tiempo necesario para evaluar la condición, más el mayor de los tiempos

de las secuencias a ejecutar en cada valor condicional.

Instrucciones de iteración (FOR, WHILE-DO, DO-WHILE)

El tiempo de ejecución de un bucle FOR es el producto del número de

iteraciones por la complejidad de las instrucciones del cuerpo del mismo

bucle.

Para los ciclos del tipo WHILE-DO y DO-WHILEse sigue la regla anterior,

pero se considera la evaluación del número de iteraciones para el peor

caso posible. Si existen ciclos anidados, se realiza el análisis de adentro

hacia fuera, considerando el tiempo de ejecución de un ciclo interior y la

suma del resto de proposiciones como el tiempo de ejecución de una

iteración del ciclo exterior.

Llamadas a procedimientos

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 99: LA DEMOSTRACIÓN EN MATEMÁTICA

El tiempo de ejecución esta dado por, el tiempo requerido para ejecutar

el cuerpo del procedimiento llamado. Si un procedimiento hace llamadas

a otros procedimientos "no recursivos", es posible calcular el tiempo de

ejecución de cada procedimiento llamado, uno a la vez, partiendo de

aquellos que no llaman a ninguno.

o Ejemplo: función no recursiva que halla el factorial de un número

n cualquiera

int factorial(int n) O(1)

{

int fact = 1; O(1)

for(int i = n; i > 0; i--) O(n)

fact = fact * i; O(1)

return fact; O(1)

}

Su complejidad es lineal O(n), debido a que se tiene un bucle FOR cuyo

número de iteraciones es n.

o Ejemplo: Si el bucle se repite un número fijo de veces, liberado

de n, entonces el bucle introduce una constante que puede ser

absorbida.

int y, z, k = 10; O(1)

for(int i = 0; i < k; i++) k * O(1)

{

y = y + i; O(1)

z = z + k; O(1)

}

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 100: LA DEMOSTRACIÓN EN MATEMÁTICA

Su complejidad es constante; es decir, O(1), debido a que se tiene un

bucle for independiente de n.

o Ejemplo: Dos bucles anidados dependientes de n.

for(int i = 0; i < n; i++) O(n)

{

for(int z = 0; z < n; z++) O(n)

{

if(vector[z] > vector[z + 1]) O(1)

{

aux = vector[z]; O(1)

vector[z] = vector[z + 1]; O(1)

vector[z + 1] = aux; O(1)

}

}

}

Tenemos O(n) * O(n) * O(1) = O(n2), complejidad cuadrática.

o Ejemplo: Dos bucles anidados, uno dependiente n y otro dependiente del bucle superior.

for(int i = 0; i < n; i++) O(n)

{

for(int z = n; z < i; z--) O(n)

{

if(vector[z] < vector[z - 1]) O(1)

{

aux = vector[z]; O(1)

vector[z] = vector[z - 1]; O(1)

vector[z - 1] = aux; O(1)

}

}

}

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 101: LA DEMOSTRACIÓN EN MATEMÁTICA

Tenemos que el bucle exterior se ejecuta n veces Þ O(n), el bucle interno

se ejecuta n + … + 3 + 2 + 1 veces respectivamente, o sea (n *

(n+1))/2 Þ O(n).

O(n) * O(n) * O(1) = O(n2), complejidad cuadrática.

o Ejemplo: Bucles donde la evolución de la variable de control es

ascendente no lineal.

int c = 1; O(1)

while(c < n) O(log n)

{

if(vector[c] < vector[n]) O(1)

{

aux = vector[n]; O(1)

vector[n] = vector[c]; O(1)

vector[c] = aux; O(1)

}

c = c * 2;

}

Para este ejemplo al principio el valor de c es 1, al cabo de x iteraciones

será 2x Þ el número de iteraciones es tal que n £ 2x donde x es el entero

inmediato superior de n; x = log2 n iteraciones, Þ para este caso es:

O(1) * O(log n) * O(1) = O(log n), complejidad logarítmica.

o

o Ejemplo: Bucles donde la evolución de la variable de control es

descendente no lineal.

int c = n; O(1)

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 102: LA DEMOSTRACIÓN EN MATEMÁTICA

while(c > 1) O(log n)

{

vector[c] = c; O(1)

c = c / 2; O(1)

}

Para este ejemplo al principio el valor de c es igual a n, al cabo de x

iteraciones será n*2-x Þ el número de iteraciones es tal que n*2-x £ n;

un razonamiento análogo nos lleva a log2 n iteraciones, Þ para este caso

es:

O(1) * O(log n) * O(1) = O(log n), complejidad logarítmica.

o Ejemplo: Bucles donde la evolución de la variable de control no

es lineal, junto a bucles con evolución de variable lineal.

int c, x; O(1)

for(int i= 0; i < n; i++) O(n)

{

c = i; O(1)

while(c > 0) O(log n)

{

x = x % c; O(1)

c = c / 2; O(1)

}

x = x + 2; O(1)

}

Tenemos un bucle interno de orden O(log n) que se ejecuta O(log n)

veces, luego el conjunto de ordenes es de orden:

O(1) * O(n) * O(log n) = O(n log n), complejidad cuasi-lineal.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 103: LA DEMOSTRACIÓN EN MATEMÁTICA

Clases P, NP y NP-completos

Cuando nos enfrentamos a un problema concreto, habrá una serie de

algoritmos aplicables. Se suele decir que el orden de complejidad de un

problema es el del mejor algoritmo que se conozca para resolverlo. Así se

clasifican los problemas, y los estudios sobre algoritmos se aplican a la

realidad.

Estos estudios han llevado a la constatación de que existen problemas muy

difíciles, problemas que desafían la utilización de los ordenadores para

resolverlos. En lo que sigue esbozaremos las clases de problemas que hoy

por hoy se escapan a un tratamiento informático.

Clase P.-

Los algoritmos de complejidad polinómica se dice que son tratables en el

sentido de que suelen ser abordables en la práctica. Los problemas para los

que se conocen algoritmos con esta complejidad se dice que forman la clase

P. Aquellos problemas para los que la mejor solución que se conoce es de

complejidad superior a la polinómica, se dice que son problemas intratables.

Seria muy interesante encontrar alguna solución polinómica (o mejor) que

permitiera abordarlos.

Clase NP.-

Algunos de estos problemas intratables pueden caracterizarse por el curioso

hecho de que puede aplicarse un algoritmo polinómico para comprobar si

una posible solución es válida o no. Esta característica lleva a un método de

resolución no determinista consistente en aplicar heurísticos para obtener

soluciones hipotéticas que se van desestimando (o aceptando) a ritmo

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 104: LA DEMOSTRACIÓN EN MATEMÁTICA

polinómico. Los problemas de esta clase se denominan NP (la N de no-

deterministas y la P de polinómicos).

Clase NP-completos.-

Se conoce una amplia variedad de problemas de tipo NP, de los cuales

destacan algunos de ellos de extrema complejidad. Gráficamente podemos

decir que algunos problemas se hayan en la "frontera externa" de la clase

NP. Son problemas NP, y son los peores problemas posibles de clase NP.

Estos problemas se caracterizan por ser todos "iguales" en el sentido de que

si se descubriera una solución P para alguno de ellos, esta solución sería

fácilmente aplicable a todos ellos. Actualmente hay un premio de prestigio

equivalente al Nobel reservado para el que descubra semejante solución ...

¡y se duda seriamente de que alguien lo consiga!

Es más, si se descubriera una solución para los problemas NP-completos,

esta sería aplicable a todos los problemas NP y, por tanto, la clase NP

desaparecería del mundo científico al carecerse de problemas de ese tipo.

Realmente, tras años de búsqueda exhaustiva de dicha solución, es hecho

ampliamente aceptado que no debe existir, aunque nadie ha demostrado,

todavía, la imposibilidad de su existencia.

Antes de realizar un programa conviene elegir un buen algoritmo, donde por

bueno entendemos que utilice pocos recursos, siendo usualmente los más

importantes el tiempo que lleve ejecutarse y la cantidad de espacio en

memoria que requiera. Es engañoso pensar que todos los algoritmos son

"más o menos iguales" y confiar en nuestra habilidad como programadores

para convertir un mal algoritmo en un producto eficaz. Es asimismo

engañoso confiar en la creciente potencia de las máquinas y el

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 105: LA DEMOSTRACIÓN EN MATEMÁTICA

abaratamiento de las mismas como remedio de todos los problemas que

puedan aparecer.

En el análisis de algoritmos se considera usualmente el caso peor, si bien a

veces conviene analizar igualmente el caso mejor y hacer alguna estimación

sobre un caso promedio. Para independizarse de factores coyunturales tales

como el lenguaje de programación, la habilidad del codificador, la máquina

soporte, etc. se suele trabajar con un cálculo asintótico que indica como se

comporta el algoritmo para datos muy grandes y salvo algun coeficiente

multiplicativo. Para problemas pequeños es cierto que casi todos los

algoritmos son "más o menos iguales", primando otros aspectos como

esfuerzo de codificación, legibilidad, etc. Los órdenes de complejidad sólo

son importantes para grandes problemas.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 106: LA DEMOSTRACIÓN EN MATEMÁTICA

CONCLUSIONES

Luego de la realización de nuestra investigación para concretizar el presente

trabajo concluimos que los diferentes temas tratados referentes a la

matemática discreta, son de total relevancia en la ejecución de todo lo

concerniente a las tecnologías de la información.

Hemos podido constatar el hecho de que el funcionamiento interno de cada

circuito integrado trabaja a base de la lógica digital la cual funda sus bases

en ésta matemática.

Presentado por YESENIA GONZALEZ céd 4-239-906

Page 107: LA DEMOSTRACIÓN EN MATEMÁTICA

BIBLIOGRAFÍA

http://www.mastersierra.com/inf134/

relacionesdeequivalenciaydeorden_archivos/frame.htm

http://pisuerga.inf.ubu.es/cgosorio/ALeF/UD4/otros-af.pdf

http://www.alumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_3.pdf

http://www.lab.dit.upm.es/~lprg/material/apuntes/o/index.html

http://www.aquihayapuntes.com/automatas-secuenciales-finitos.html

http://www.monografias.com/trabajos4/matematica/matematica.shtml

Presentado por YESENIA GONZALEZ céd 4-239-906