Академический Документы
Профессиональный Документы
Культура Документы
Grupo: 2CV6
Matemticas Discretas
Pgina 1
ndice
Grafos3
Arboles...4
Grafos dirigidos5
Lenguajes formales6
Gramticas y lenguajes.8
Tipos de datos11
Verificacin de programas...13
Computabilidad.14
Matemticas Discretas
Pgina 2
Grafo.
Un grafo es un conjunto, no vaco, de objetos llamados vrtices (o nodos) y una
seleccin de pares de vrtices, llamados aristas (edges en ingls) que pueden ser
orientados o no. Tpicamente, un grafo se representa mediante una serie de
puntos (los vrtices) conectados por lneas (las aristas).
, tal que
Pgina 3
Definicin:
Sea G= (V, A). G= (V, A) se dice subgrafo de G si:
1- V
2- A'
3- (V, A) es un grafo
Si G=(V,A) es subgrafo de G, para todo v
v)
G2 es un subgrafo de G.
Grafos simples.
Un grafo es simple si slo 1 arista QUE une dos vrtices cualesquiera. Esto es
equivalente a decir que una arista cualquiera es la nica que une dos vrtices
especficos.
Un grafo que no es simple se denomina Multigrfica o Grafo mltiple.
rboles.
Un grafo que no tiene ciclos y que conecta a todos los puntos, se llama un rbol.
En un grafo con n vrtices, los rboles tienen exactamente n - 1 (aristas), y hay nn2
rboles posibles. Su importancia radica en que los rboles son grafos que
Matemticas Discretas
Pgina 4
Dgrafo.
Matemticas Discretas
Pgina 5
a este vrtice
Grado saliente g (v): para un vrtice, es el nmero de arcos que salen de
este vrtice
Una fuente es un vrtice v tal que g + (v) = 0 (no se puede alcanzar desde
Lenguajes formales.
En matemticas, lgica, y las ciencias computacionales, un lenguaje formal es un
conjunto de palabras (cadenas de caracteres) de longitud finita formadas a partir
de un alfabeto (conjunto de caracteres) finito.
Informalmente, el trmino lenguaje formal se utiliza en muchos contextos (en las
ciencias, en derecho, etc.) para referirse a un modo de expresin ms cuidadoso
Matemticas Discretas
Pgina 6
mtodos
Pgina 7
Gramticas y Lenguajes.
Gramticas.
Una gramtica para estructura de expresiones G es una 4-ada (V, S, vo) donde V
es un conjunto finito, S es un subconjunto de V V S0, y a es una relacin finita
en * V. La idea es que S es, como ya se ha analizado, el conjunto de todas las
palabras permitidas en el lenguaje, y V consta de S adems de algunos otros
smbolos. El elemento 0 v de V es un punto de partida para las sustituciones, que
sern analizadas en breve. Por ltimo la relacin
Matemticas Discretas
Pgina 8
0 v =oracin, y supngase
Pgina 9
adverbio
Pgina 10
lenguaje.
Supngase, a manera de ejemplo, que S consta de todas las palabras del
espaol. La especificacin de una oracin con construccin adecuada implica
todas las reglas de la gramtica espaola; el significado de una oracin queda
determinado por esta construccin y por el significado de las palabras.
La oracin Iba a la tienda Juan Jorge a cantar
Es una cadena en S pero no una oracin con una construccin adecuada. La
disposicin de los sustantivos y los verbos no es vlida.
Tipos de datos.
En los lenguajes de programacin y en otros programas utilitarios tales como una
planilla de clculos, un tipo de dato es un atributo de una parte de los datos que
indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los
que se va a procesar. Esto incluye imponer restricciones en los datos, como qu
valores pueden tomar y qu operaciones se pueden realizar. Tipos de datos
comunes
son:
enteros,
nmeros
de coma
flotante (decimales),
cadenas
alfanumricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra.
Por ejemplo, en Java, el tipo "int" representa un conjunto de enteros de 32 bits
cuyo rango va desde el -2.147.483.648 al 2.147.483.647, as como las
operaciones que se pueden realizar con los enteros, como la suma, resta y
multiplicacin. Los colores, por otra parte, se representan como tres bytes
denotando la cantidad de rojo, verde y azul, y una cadena de caracteres
representando el nombre del color; las operaciones permitidas incluyen la adicin
Matemticas Discretas
Pgina 11
DATOS PRIMITIVOS:
CARACTER
NUMERICO
LOGICOS(BOOLEANOS)
Tipos Compuestos.
Pgina 12
Verificacin de programas.
Uno de los enfoques para determinar si un programa es correcto es establecer
una actividad de testing. Esta consiste en seleccionar un conjunto de datos de
entrada para determinar si los resultados producidos por el programa con esos
datos coinciden o no con los valores esperados. Para asegurar que el programa
es correcto se debera analizar el mismo con todos los valores posibles de los
datos de entrada. Pero esto es imposible cuando este conjunto es infinito. Por eso,
el testing slo puede mostrar la presencia de errores y no su ausencia. Otro
enfoque, la prueba formal de programas, es una tcnica que se basa en el clculo
de predicados. Primero, se debe describir el comportamiento de cada instruccin
del lenguaje formalmente. Es decir, se debe definir la semntica de un lenguaje de
programacin en trminos de frmulas lgicas. Para probar un programa, se debe
expresar su semntica en trminos de frmulas lgicas y luego probar que el
programa significa lo mismo que su especificacin. Una prueba formal de un
programa asegura que el programa es correcto con respecto a una especificacin
para todas las entradas. Hay dos problemas importantes con la prueba formal de
programas: 1) la manipulacin lgica puede ser tediosa y propensa a errores; 2) la
prueba solamente muestra que el programa implementa la especificacin
correctamente. No hay certeza de que la especificacin describe lo que el usuario
realmente desea. Definicin: Si un programa usa n variables (x1, x2,..., xn) el
estado s es una Tupla de valores (X1, X2,..., Xn) donde Xi es el valor de la variable
xi.
Ejemplo: Dado el estado s = (x, y) = (7, 8), el resultado de ejecutar la sentencia de
asignacin
X:= 2*y+1 es el estado s= (x, y) = (17, 8)
Matemticas Discretas
Pgina 13
Una variable se usa en un programa para describir una posicin de memoria que
puede contener valores diferentes en diferentes estados. Una manera de describir
un conjunto de estados es utilizando frmulas del clculo de predicados.
Definicin: Sea U el conjunto de todos los posibles estados del programa y sea S
U. Se define PS, el predicado caracterstico de S, tal que S = { s S / PS(s)}.
Es decir, es el predicado que solamente es satisfecho por los estados que
pertenecen al conjunto S. Por ejemplo, en vez de decir que la sentencia x:= 2*y+1
transforma el estado s = (x, y) en el estado s= (2*y+1, y), definiremos predicados
P(x, y) y P(x, y) tal que si P(x, y) es verdadero en el estado s entonces P(x, y)
ser verdadero despus de ejecutar la sentencia x := 2*y+1. Ejemplo: Se quiere
probar x 7 despus de ejecutar x:= 2*y+1. Esto es verdadero si 2*y+1 7 antes
de ejecutar la sentencia, es decir y 3.
{y 3} x:= 2*y+1 {x 7}
{y 3} y {x 7} se denominan aserciones.
Definicin: Una asercin es una frmula del clculo de predicados ubicada en un
programa, que es verdadera cada vez que el programa pasa por ese punto.
Definicin: {P} S {Q}, donde P y Q son aserciones llamadas pre-condicin y postcondicin respectivamente y S es un fragmento de programa, se interpreta como
sigue: si la ejecucin de S empieza en un estado caracterizado por P y S termina,
entonces terminar en un estado caracterizado por Q. S se dice parcialmente
correcto con respecto a P y Q. Si adems se garantiza que S termina, S es
totalmente correcto con respecto a P y Q.
{P} S {Q} se denomina especificacin formal de S.
Computabilidad.
La Teora de la Computabilidad es la parte de la computacin que estudia
los problemas
de
decisin que
Matemticas Discretas
pueden
ser
Pgina 14
resueltos
con
un algoritmo o
La humanidad conoce y utiliza una gran diversidad de algoritmos: se sabe que los
ordenadores pueden controlar el trfico areo, lneas de produccin y plantas
nucleares; existen tambin algoritmos para elaborar un postre de chocolate,
imprimir la factorial de un nmero entero o decidir cul es el mayor de dos
nmeros. Desde la niez, el mtodo de enseanza se basa en algoritmos: sumas,
restas, multiplicaciones y divisiones que no son ms que una secuencia de pasos
que hay que dar sobre unos datos de entrada. Sin embargo, existen determinados
problemas que no pueden ser resueltos por ningn algoritmo. Se trata de
problemas intrnsecamente tan difciles que, en principio, nunca podrn ser
resueltos. Dicho esto, parece obvio que las computadoras no los puedan
representar ni resolver de modo alguno. En realidad, el nmero de cosas que
pueden calcularse o computarse es infinitamente menor que las que efectivamente
pueden calcularse. Esto es, <<es ms lo que es computable que lo que no lo es>>
(Juan Miguel Len Rojas, 2002).
Un problema no computable: El Problema de la terminacin.
Para realizar un acercamiento ms prximo a la no computabilidad de ciertos
problemas se ilustra a continuacin el tratamiento de un ejemplo prctico. Es bien
sabido por los integrantes de la comunidad informtica, profesionales y
Matemticas Discretas
Pgina 15
Void Amparo () {
if (Tester (P))
else
while (1);
Matemticas Discretas
Pgina 16
Void Amparo () {
if (Tester (Amparo))
else
while (1);
Matemticas Discretas
Pgina 17
Matemticas Discretas
Pgina 18