Semana #1

Propaganda
Linguagens Formais e Autómatos
Semana #1
September, 12 2011, 19:51
Slides : LFA-PL/intro11.pdf
Apresentação da disciplina :
• Objectivos e motivação
• Conteudo
• Organização das aulas
• Bibliografia
• Avaliação
Nesta aula :
• Notações matemáticas e definições : Cadeias e Linguagens.
• Prova por construção
• Prova por contradição
• Prova por indução
1. Prova por construção
As provas por construção são uteis para demostrar que algum objecto (matemático) existe. Para realizar
a prova mostra-se uma maneira de contruir o objecto. Por exemplo o teorema seguinte pode ser provado
por construção.
Definição: Um grafo é dito k-regular se todos os nós são de grau k.
Teorema: Para todos os valores pares n > 2 existe um grafo 3-regular com n nós.
Prova: Um grafo G = (V, F) pode ser construído a do conjunto de nós V = {0, 1, ..., n − 1} e o conjunto de
ligações :
E = {{i, i + 1} | 0 ≤ i ≤ n − 2} ∪ {n − 1, 0} ∪ {{i, i + n/2} | 0 ≤ i ≤ n/2 − 1}
(1)
O grafo resultante é 3-regular.
2. Prova por contradição
A prova por contradição consiste a mostrar que se se assumir
√ que o teorema é falso, chega-se a uma
situação obviamente absurda. Por exemplo para provar que 2 é um irracional, vamos mostrar que se
não for√o caso chegamos a uma situação impossível.
Se 2 for um racional, existe dois números inteiros n e m tais que
√
2=
n
m
(2)
onde n/m é uma fracção reduzida (logo n e m não podem ser ambos pares). Podemos elevar ao quadrado
e multiplicar por m2 ambos os lados da equação :
2m2 = n2
(3)
Podemos concluir logo que n2 é par e que n é também par. Se n for par, podemos o subtituir por 2k :
2m2 = 4k2 ⇔ m2 = 2k2
o que implica que m2 e m são pares. Isto é contraditório com as nossas hipoteses inicias.
1
(4)
3. Prova por indução
A prova por indução é usada para mostrar que uma propriedade P applica-se a um conjunto infinito
de elementos ordenados. Primeiro mostra-se que a propriedade é verificada para o primeiro elemento
do conjunto (é o caso básico) : Provar que P(1) é verdadeiro. A seguir mostra-se que assumindo que a
proriedade é verdadeira para P(k) então é também verdadeira para P(k + 1).
A prova por indução é muitas vezes usada para provar que um programa (função) produz efectivamente
o resultado esperado. Por exemplo, para cacular as mensalidades de um emprestimo. Seja D o valor da
dívida, e T a taxa anual do emprestimo e m o valor da mensalidade. Para simplificar usamos a variável
k que corresponde ao factor multiplicativo mensal (k = T/12 + 1). Seja Dt o valor da dívida no mês t. Em
cada mês, o valor da dívida varia :
• Dt aumenta devido aos juros
• Dt diminua devido as mensalidades pagas.
O valor de Dt é dado por : D0 = D, D1 = kD0 − m, D2 = kD1 − m etc ... De modo geral temos :
Dt = Dkt − m
kt − 1
k−1
(5)
Para provar que esta formula é correcta vamos numa primeira fase verificar que é correcta para t = 0 :
D0 = Dk0 − m
k0 − 1
=D
k−1
(6)
que é correcto. Este é o primeiro passo da prova, o caso básico.
Temos que mostrar agora o passo de indução. Assumindo que a formula é correcta para t = z, é
correcta para t = z + 1. Sabemos que
Dt+1 = Dt k − m
(7)
logo :
Dz+1 =
Dkz − m
kz − 1
k−1
k − m = Dkz+1 − m
kz+1 − k
k−1
kz+1 − 1
−m
= Dkz+1 − m
k−1
k−1
k−1
(8)
o passo de indução fica provado, a formula é portanto correcta.
4. Exercícios
4.1. Comprimento de cadeias
O comprimento de uma palavra x é |x|, definido recursivamente da seguinte forma :
• Para x = λ temos |x| = 0
• Para x = au|u ∈ Σ∗ e a ∈ Σ temos |x| = 1 + |u|.
Mostre que ∀x, y ∈ Σ∗ |xy| = |x| + |y|.
4.2. Cadeia e prefixo
Escrevemos p(x, y) se x é prefixo de y isto é se ∃z ∈ Σ∗ tal que y = xz. Mostre que para quaisquer x, y, z ∈ Σ,
se tem :
1. p(x, y) ⇒ |x| ≤ |y|.
2. p(x, x)
3. p(x, y) ∧ p(y, z) ⇒ p(x, z)
4. p(x, y) ∧ p(y, x) ⇒ x = y.
2
4.3. Palavra inversa
A inversa de uma palavra x é uma palavra i(x) definida recursivamente da seguinte forma :
• x = λ ⇒ i(λ) = λ.
• x = au | u ∈ Σ∗ , a ∈ Σ ⇒ i(au) = i(u)a.
Mostre que para quaisquer x, w ∈ Σ∗ , se tem :
1. i(wx) = i(x)i(w),
2. i(i(w)) = w, w ∈ Σ∗
3. i(wn ) = (i(w))n
4.
3
Download