Cítl1Itd ãCapítulo 1. Introdução e definições...

64
C ít l 1It d ã Capítulo 1. Introdão e definições básicas definições básicas 1.1. Linguagens 1.2. Gramáticas 1.3. Autómatos 1.3. Autómatos 1 4 Os três paradigmas da computação 1.4. Os três paradigmas da computação ©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC 1

Transcript of Cítl1Itd ãCapítulo 1. Introdução e definições...

Page 1: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

C ít l 1 I t d ãCapítulo 1. Introdução e definições básicasdefinições básicas

1.1. Linguagens

1.2. Gramáticas

1.3. Autómatos1.3. Autómatos

1 4 Os três paradigmas da computação1.4. Os três paradigmas da computação

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC1

Page 2: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

1 1 Linguagens1.1. Linguagens1. Alfabeto, 1. Alfabeto,

={símbolos} j t ã i d í b l (l t l i ) ={símbolos}, conjunto não vazio de símbolos (letras, algarismos, ...)

{ b} {a,b}, {0, 1, 2, ..., 9 }, conjunto dos algarismos árabes {0 1} alfabeto binário {0,1}, alfabeto binário { [, ( , ) ,]} , {# $ § &} {#,$,§,&} {a, b,c, ..., z}, o alfabeto romano { copos facas garfos pratos colheres tachos}

Qualquer objecto pode pertencer a um alfabeto

{ copos, facas, garfos, pratos, colheres, tachos}

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC2

Qualquer objecto pode pertencer a um alfabeto.

Page 3: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

2. Cadeia (string), w

w={sequência finita de símbolos do alfabeto; pode ser vazia}

={a,b},

w= a, w=ab, w= abbaba

b b b b

3. Concatenação de cadeias w, v

w= a1a2a3 ....an v= b1b2b3…bm

t ã d t ã dconcatenação de w e v concatenação de v e w, wv=a1a2a3…anb1b2b3…bm vw=b1b2b3…bma1a2a3…an

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC3

Page 4: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

4. Cadeia reversa , wR =an...a3a2a1

5. Comprimento de uma cadeia, |w| :

número de símbolos da cadeia

6. Cadeia vazia, cadeia sem qualquer símbolo, ||=0q q | |

w=w=w, para todo o w

77 . Palíndromos (Capicuas) (palindromes) em : cadeias tais que w = wRtais que w w

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC4

Page 5: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

8. Subcadeia de uma cadeia w

qualquer cadeia composta por caracteres sucessivos de wqualquer cadeia composta por caracteres sucessivos de w

w=uv u é o prefixo e v o sufixo de ww uv, u é o prefixo e v o sufixo de w

Exemplo: w=abbabSubcadeias de w : a, b, bb, bba, ...Prefixos de w: {, a, ab, abb, abba, abbab}Sufixos de w: {abbab, bbab, bab, ab, b, }

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC5

Page 6: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

9. Potências de uma cadeia w nd i btid l ( t ) t ã d d icadeia obtida pela (auto)concatenação n vezes da cadeia w

w 0=, para todo o w.

10. * : conjunto de todas as cadeias que se podem obter pela concatenação de zero ou mais símbolos de concatenação de zero ou mais símbolos de ..Contém sempre a cadeia nula .

11. + = *- { }, i.e., exclui a cadeia vazia

quer * quer + são sempre infinitas, mesmo quando é finito.finito.

12. Linguagem L: qualquer subconjunto de *©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC

6

g g q q j

Page 7: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

13 F ( t ) l d i li L13. Frase (sentença) : qualquer cadeia na linguagem L.

Exemplo 1:

={a,b}

* ={,a,b,aa,ab,ba,bb,aaa,aab,aba,abb,baa,bab,bba,bbb, ...}, todas as combinações possíveis dos símbolos do lf b i l i d d i ialfabeto, incluindo a cadeia vazia.

O j t L { b bb} é li O conjunto L={a, ab, abb} é uma linguagem em .

É li fi itÉ uma linguagem finita.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC7

Page 8: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Exemplo 2.

O conjunto L={a n b n : n 0} é uma linguagem em .

É uma linguagem infinita.

ab, aabb, aaabbb, ... pertencem a L

aba, abb, aaababbab, não pertencem a L.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC8

Page 9: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Uma linguagem é um conjunto !

Portanto aplicam-se-lhe todas as operações sobre conjuntos:Portanto aplicam se lhe todas as operações sobre conjuntos:

14. União: L1L2 = {w: w L1 ou w L2}

15. Intersecção: L1L2 = {w: w L1 e w L2}

{ }16. Diferença de duas linguagens: L1 - L2 = {w: w L1 e w L2}

17 C l t d li C l(L) * L17. Complemento de uma linguagem: Compl(L) = * - L

18 R d li LR { R L}18. Reversa de uma linguagem: LR = {wR : w L}

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC9

Page 10: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

19 C t ã d d li L L L L19. Concatenação de duas linguagens, L1• L2 , L1L2

L1• L2 = L1L2 = {uv : u L1, v L2}

L1 • (L2 L3) = L1 • L2 L1 • L3(distributividade da concatenação em ordem à união)(distributividade da concatenação em ordem à união)

L (L • L ) L L • L LL1 (L2 • L3) L1 L2 • L1 L3 em geral a união não é distributiva sobre a concatenação.

L • =

L • = L

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC10

Page 11: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

20 P tê i d li ã l ó i20. Potência de uma linguagem: concatenação com ela própria:

L0 {} L1 L L2 LL L3 LLLL0={}, L1 = L, L2 = LL , L3 = LLL , ...

21 Fecho estrela (star closure Kleene star Kleene closure) L* :21. Fecho-estrela (star-closure, Kleene star, Kleene closure) L* : todas as cadeias que se podem obter por concatenação da linguagem com ela própria incluindo sempre a cadeia vazia:linguagem com ela própria, incluindo sempre a cadeia vazia:

L* : L0 L1 L2 L3 L : L L L L .....

Fecho-positivo (positive closure) L+ : todas as cadeias que seFecho positivo (positive closure) L : todas as cadeias que se podem obter por concatenação da linguagem com ela própria; não contém a cadeia vazia se L não contém ,própria; não contém a cadeia vazia se L não contém ,

L+ : L1 L2 L3 ...... = L* - {} (se L)©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC

11

{ } ( )

Page 12: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Exemplo : L={a n b n, n 0}

L { b bb bbb bbbb } ( L )

p { , }

L={, ab, aabb, aaabbb, aaaabbbb, ....} (note-se que L )

L2 LL { b bb bbb bbbbL2= LL={ ,ab, aabb, aaabbb, aaaabbbb, ...abab, abaabb, abaaabbb, abaaaabbbb, ...aabbab aabbaabb aabbaaabbb }aabbab, aabbaabb, aabbaaabbb, ......}

= {a n b n a m b m n 0 m 0 } n e m são independentes= {a n b n a m b m, n 0, m 0 }, n e m são independentes.

Reversa de L: LR={b n a n n0 }Reversa de L: L {b a , n0 }Complemento de L : ??? Fecho estrela L*: ??? L+ : ???Fecho estrela L : ??? L : ???Será a notação de conjuntos adequada para especificar linguagens ?

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC12

Page 13: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

1.2. Gramáticas

Uma ferramenta para estudar matematicamente linguagens, muito p g g ,poderosa, que ultrapassa as limitações da notação de conjuntos anterior.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC13

Page 14: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Exemplo da gramática da língua portuguesa:R d d ã d f ( ã ) i l ãRegras de produção de uma frase (ou oração) simples, em versão simplificada e incompleta, para fins ilustrativos :

frase sintagma nominal sintagma verbalsintagma nominal determinante nome | vaziosintagma nominal determinante nome | vaziosintagma verbal verbo sintagma nominald t i t ti | d í ti | i determinante artigo | deícticos | vazioverbo estuda | ama | compra | dorme|choveartigo o | a |um | uma|<vazio>deícticos este | esse | aquele | meu | teu | seu |<vazio> | | q | | | |nome Luís | Antónia | Isabel | livro | gelado |

(

O Luís compra um livro : como derivar ? (parsing )

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC14

(ver tb Gramática da Língua Portuguesa, Mateus, M,, A. M.Brito, I. Duarte, I. H Faria, Caminho Série Linguística, 1989, p. 210

Page 15: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Verificar se as seguintes frases obedecem a essas regras de produção:

(i) O João vai ao cinema(ii) Chove (iii) Um por todos, todos por um !

Este exemplo mostra como uma frase (ou oração), conceito geral l d d fi id à t d l t i le complexo, pode ser definida à custa de elementos simples

(decomposição da complexidade).

Começa-se no conceito mais complexo (frase), e reduz-se sucessivamente até se obterem os elementos irredutíveis com quesucessivamente até se obterem os elementos irredutíveis com que se constrói a linguagem.

A generalização deste princípio leva-nos à definição de gramáticas formais

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC15

gramáticas formais.

Page 16: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Definição 1.1.ç

Uma gramática G é definida por um quadrupletoUma gramática G é definida por um quadrupleto

G = (V T S P)G (V, T, S, P)

V : variáveis, conjunto finito de objectos, não vazioT í b l T i i j t fi it d bj t ã iT : símbolos Terminais, conjunto finito de objectos, não vazio

S V, variável de inicialização (Semente, Start, Axioma)ç ( )

P : um conjunto finito de Produções

V e T são disjuntos

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC16

Page 17: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

A ãAs regras de produção

o cerne da gramática, pois é através delas que se forma uma cadeia q e que uma cadeia se transforma noutra cadeia

Por isso elas definem uma linguagem associada à átigramática .

Uma linguagem pode ser produzida por várias gramáticas, mas uma gramática produz uma e uma só linguagem.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC17

Page 18: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

T d d d ã ã d fTodas as regras de produção são da forma

x yx y

x (V T ) +, cadeia de variáveis e símbolos terminais excluindo a cadeia vaziacadeia de variáveis e símbolos terminais, excluindo a cadeia vazia

y (V T ) *y (V T ) ,cadeia de variáveis e símbolos terminais, podendo incluir a cadeia vaziavazia.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC18

Page 19: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Modo de produção:Modo de produção:

d d dada

dada

w=u x v

z = u y v

dada

por substituição de x por y em w obtém-se a cadeia z

x y

por substituição de x por y em w, obtém se a cadeia z

d é d id• w produz z , ou z é produzida por w.

w z

As regras de produção podem aplicar se por qualquer ordem

w z

As regras de produção podem aplicar-se por qualquer ordeme tantas vezes quantas as necessárias !!!

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC19

Page 20: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

SSe w1 w2 … wn

diz-se que w1 produz wn ; em escrita mais compacta

w1 wn1 n

em que * indica que para derivar wn de w1 são necessários umú ã ifi d d (i l i dnúmero não especificado de passos (incluindo zero passos,

como em w1 w1 ).

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC20

Page 21: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

As regras de produção podem ser aplicadas numa ordem qualquer e um número qualquer de vezes.

Por cada ordem e por cada número, produzem uma cadeia terminal.terminal.

O conjunto de todas as cadeias terminais que se podem obter pelaO conjunto de todas as cadeias terminais que se podem obter pela gramática, forma a linguagem gerada pela gramática, L(G)

G = ( V, T, S, P )

L(G) = { w T * : S w }

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC21

Page 22: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Se w L(G), então a sequência

S w 1 w2 ... wn w

é uma derivação da frase w.

Formas sentenciais da derivação de w são as cadeias

S, w1 , w2 , ..., wn

As formas sentenciais contêm variáveis e símbolos terminais ( l ó tê iá i )(nalguns casos só contêm variáveis).

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC22

Page 23: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

E l G ({S} { b} S P )Exemplo: G=({S},{a,b}, S, P )

Variáveis: SSímbolos terminais: a,b.

Produções: P1 : S a S b

Variável de inicialização: S P2 : S

S a S b a a S b b a a a S b b b ...

Em qualquer altura se pode aplicar a produção P2 Depois daEm qualquer altura se pode aplicar a produção P2. Depois da - 1ª produção obtém-se a b- 2ª produção obtém-se a a b b2 produção obtém se a a b b- n-èsima produção a a a....a b b b...b = a n b n

Se aplicarmos primeiro a produção P2 obtém-se a cadeia vazia©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC

23

p p p ç 2

Page 24: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

G=({S} {a b} S P) P1: S aSbG=({S},{a,b}, S, P) P1: S aSb

P2: S

L(G) = {a n b n, n 0 }

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC24

Page 25: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Exemplo: Encontrar uma gramática que gere a linguagemExemplo: Encontrar uma gramática que gere a linguagem

L = { a n+1b n n 0 }L = { a n 1b n, n 0 }

Relativamente ao exemplo anterior é necessário gerar um a adicional Pode-Relativamente ao exemplo anterior, é necessário gerar um a adicional. Pode-se gerá-lo em primeiro lugar, aplicando depois regras de produção como no caso anterior

P1: S a SP S S b

Antes P1: S a S bP2: S

P2: S a S bP3: S G = ({S}, {a,b}, S, P)

2

({ }, { , }, , )Aplicando P1, P1, P2, P3,

S a S a a S a a a S b a a a b

i 3b ã f t d li ( ê ?)©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC

25

i.e. a3b, que não faz parte da linguagem (porquê ?)

Page 26: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Para que isto não aconteça, P1 só se pode aplicar uma vez. Para isso introduz-se uma variável adicional, A, e definem-se

d õ d d S ó d ias produções de modo que S só possa produzir uma vez :

P1: S a AP A A b

P1: S a SP S S b P2: A a A b

P3: A P2: S a S bP3: S

G= ({A S} {a b} S P )

em que S é a variável de inicialização. Resulta a gramática G.

G ({A, S}, {a ,b}, S , P )

q ç g

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC26

Page 27: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Para demonstrar que uma dada linguagem L é gerada por uma certa gramática G, tem que se mostrar que:

(i) toda a cadeia w L pode ser derivada a partir de S usando as produções P da gramática G,

(ii) l d i d l i(ii) qualquer cadeia gerada pela gramática G pertence à linguagem L.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC27

Page 28: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Uma gramática de palíndromos ( PAL) sobre um alfabeto Uma gramática de palíndromos ( PAL) sobre um alfabeto

P d d fi i lí d l ê iPode-se definir um palíndromo pelas três regras seguintes:

1. PAL

2. Para todo o carácter a, aPAL

3. Para toda a wPAL , e todo o a, awa PAL

Uma w só pertence a PAL se puder ser gerada por estas 3 regras

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC28

Page 29: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Exemplo = { a b }Exemplo

1. , a, b PAL ;

{ a,b }

2. Para qualquer wPAL, awa e bwb PAL

Por exemplo:b PAL , pela regra 1p gaba PAL, pela regra 2babab PAL pela regra 2

i li

abababa PAL pela regra 2

Uma gramática para esta linguagem1. S ou a ou b (regra 1)2 S S bSb ( 2)2. S aSa ou bSb (regra 2)Por exemplo: S aSa abSba abba = abba

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC29

Page 30: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Temos assim as produções da Gramática dos palíndromosTemos assim as produções da Gramática dos palíndromos

S SS a | b | , S aSaS bSbou

S aSa | bSb S a S b S bS

em que ‘|’ significa “ou” e S é o símbolo inicial.

G=({S},{a,b}, S, P)({ } { } )

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC30

Page 31: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

N t b f áNotas sobre grafos e árvores

1. Grafos

Grafos são estruturas discretas compostas por

vértices, ou nós

arestas , ligando os nós

Ver Caps7 e 8 , Discrete Mathematics & Its Applications, Kenneth Rosen

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC31

Page 32: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

ViViseu

Aveiro

CoimbraCovilhã

Leiria

Por hipótese: rede de fibra óptica na região centro.

Os grafos definem uma relação binária (entre dois argumentos) e podem ser de muitos tipos.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC32

p p

Page 33: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Grafos com anéis (loops):Grafos com anéis (loops):

anel

3 computadores ligados por linhas telefónicas Cada um tem uma3 computadores ligados por linhas telefónicas. Cada um tem uma linha ligada a si mesmo, para diagnóstico, por exemplo.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC33

Page 34: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Grafos orientados:

as arestas têm um sentido indicado por uma seta

C1C2

C3C4

R d d d i ã idi i lRede de computadores com comunicação unidireccional

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC34

Page 35: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Multigrafos:

Grafos com várias arestas entre cada par de vértices. Podem pser ou não orientados.

CC1C2

C3C4

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC35

Page 36: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Terminologia básica de grafos:Terminologia básica de grafos:

G (V E) f V : conjunto não vazio de vérticesG = (V, E) : Grafo V : conjunto não vazio de vérticesE : conjunto de pares de elementos distintos de V, chamados vértices (ex. {v1, v2 } )

Vértices adjacentes (ou vizinhos): ligados por uma aresta. Os vértices u e v são adjacentes se existir {u v}Os vértices u e v são adjacentes se existir {u, v}.

A aresta {u v} diz-se incidente com os vértices u e v que sãoA aresta {u, v} diz-se incidente com os vértices u e v, que são os seus pontos terminais.

Se o grafo é orientado de u para v , u é adjacente a v, e v é adjacente a partir de u.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC36

adjacente a partir de u.

Page 37: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Grau de um vértice num grafo não orientado: número de garestas incidentes com ele

Vértice isolado: vértice de grau zero.

Vértice pendente: vértice de grau 1

Grafo completo : contém exactamente uma aresta entre cada par de vértices (grafo não orientado).

Ciclo (cycle) , consiste num conjunto de três ou mais vértices e arestas formando um caminho fechado (parte e chega aoe arestas formando um caminho fechado (parte e chega ao mesmo vértice)

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC37

Page 38: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

2. Árvores

Tipos especiais de grafos não orientados sem ciclos

Exemplos:Exemplos:

ÁÁrvore genealógica

Representação da estrutura de ficheiros de um computador (directórios, sub-directórios, etc.).p ( )

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC38

Page 39: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Representação orgânica da UniversidadeRepresentação orgânica da Universidade

UC

FCT

FD FL FM FE FPCE FCDFF

DCT DM DEEC DEI DEM DEQ DF DQ

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC39

Page 40: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Entre quaisquer dois vértices de um árvore existe um e um só i hcaminho.

S f d á é i t d á é i t dSe o grafo da árvore é orientado, a árvore é orientada.

Raiz da árvore: vértice especial de árvores orientadas. Dele t t i t d d i d á iparte uma aresta orientada, produzindo uma árvore com raiz.

N l t d h á i t iNormalmente desenha-se a árvore com a raiz no ponto mais alto.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC40

Page 41: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

PaiAntepassados

ilhilh

tepassados

Descendentes

FilhoFilho Irmãos

Antepassados ou antecedentes de um vértice: todos os que o antecedem até à raiz (incluindo esta).

Descendentes de um vértice: todos os que o têm como antepassado.

Folha da árvore: vértice sem filhos.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC41

Page 42: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Vértices internos: os que têm filhos

Sub-árvore de um vértice: a árvore que tem esse vértice como i té t d d d t t d traiz e contém todos os seus descendentes e todas as arestas

incidentes nesses descendentes.

Á á i d é i i ã ê i dÁrvore n – ária: todos os vértices internos não têm mais de n filhos. É n –ária completa se todos os vértices internos tiverem

t t filhexactamente n filhos.

Árvore binária: se n =2Árvore binária: se n =2

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC42

Page 43: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Árvore ordenada com raiz: os filhos de cada vértice interno ã d d d d di it S é bi á isão ordenados da esquerda para a direita. Se é binária,

chamam-se filho esquerdo e filho direito.

O filho da esquerda origina a sub-árvore esquerda e o da direita a sub árvore direitadireita a sub-árvore direita.

Nível de um vértice: número de vértices existentes no caminho desde a raiz até ao vérticecaminho desde a raiz até ao vértice.

Altura uma árvore: o maior nível de todos os seus vértices.Altura uma árvore: o maior nível de todos os seus vértices.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC43

Page 44: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

1 3 Autómatos1.3. Autómatos

Porta automática (só para entrar)

Sensor Sensor

Porta automática (só para entrar)

Sensor Frontal

Sensor Rectag.

Adaptado de Sipser, p.32

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC44

Page 45: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Estados do controlador: aberta (A), fechada (F)( ), ( )

Sinais de controlo: presença/ausência frontal (PF) 1 ou 0 p ç ( )presença/ausência rectaguarda (PR) 1 ou 0

Alfabeto do autómato Estados

PF PR Carácter0 0 00 a

Estado Símbolo0 0 00 a0 1 01 b1 0 10

Aberta A

Fechada F1 0 10 c1 1 11 d

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC45

Page 46: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Funcionamento

d11

c10

b01

a00

EntradaEstado

AAAFA

FAFFF

Diagrama de estados (grafo)

AAAFA

b,d,a b,c,d

Diagrama de estados (grafo)

c

AF

a

Autómato finito: um só bit de memória (F A)©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC

46

Autómato finito: um só bit de memória (F,A)

Page 47: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

AutómatosAutómatos modelo abstracto de um computador digital.p g

componentes:

• um ficheiro de entrada, cadeia num alfabeto• um mecanismo para leitura de entradas• um dispositivo de memória temporária. Pode ler e

alterar o conteúdo dos registos de memória.• uma unidade de controlo, que pode estar num entre

ú fi i d t d i tum certo número finito de estados internos• um ficheiro de saída

pode mudar de estado segundo alguma regra.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC47

Page 48: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Configuração geral de um autómato Cada tipo tem a sua configuração

Ficheiro de entrada S k

g ç g sua configuração própria

Ficheiro de entradaMe

S k

Unidade de Controlomóm k

qk

ria

y kFicheiro de saída

Função de transição de estado fqk+1 = f (qk, sk, mk)

Função de transição da saída gyk+1 = g (qk, sk)

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC48

qk+1 f (qk, k, k) yk+1 g (qk, k)

Page 49: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

ExemploExemplo

Alfabeto de entrada : {a, b, c, ..., z }

q0m

q1e

q2 q3t q4

aq0 q1 q2 q3 q4

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC49

Page 50: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Configuração do autómatog ç

conjunto composto por

- o estado interno da unidade de controloo es do e o d u d de de co o o- o ficheiro de entrada

o conteúdo da memória- o conteúdo da memória- o conteúdo da saída (em alguns tipos)

Chama-se um passo ou movida à transição do autómato de fi ã fi ã i tuma configuração para a configuração seguinte.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC50

Page 51: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Os tipos de autómatos distinguem-se por

A. Forma de produzir a saída

aceitadores : reconhecem ou não a cadeia de entrada -saída respectivamente sim ou não.saída respectivamente sim ou não.

transdutores : produzem cadeias de caracteres à saída.

B. Natureza da memória temporária (o factor mais importante)

autómatos finitos, sem memória temporária autómatos de pilha (pushdown automata) de memória autómatos de pilha (pushdown automata) de memória

em pilhamáquinas de Turing: de memória em fita infinitamáquinas de Turing: de memória em fita infinita

podendo ser lida e alterada em qualquer ordem.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC51

Page 52: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

C. Natureza da função de transição

determinísticos, dada uma configuração, existe um e um só comportamento futuro possível;

i í i d d fi não determinísticos : dada uma configuração, o próximo passo pode ter várias alternativas.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC52

Page 53: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

1 4 Os três paradigmas da computação1.4. Os três paradigmas da computação

1.4.1. Computação (do valor) de funções numéricasp ( )

f(n) = o n-ésimo número primo (função unária)

g(n,m) = nxm (produto, função binária)

h(a1,,…, an)=a1+…+an (somatório, função n-ária)

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC53

Page 54: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

1 4 2 Reconhecimento de linguagens ( ou classificação de1.4.2. Reconhecimento de linguagens ( ou classificação de cadeias de símbolos)

ababbaba é um palíndromo ?

ababbaba é um palíndromo ?

em 10011000111 o número de 0’s é igual ao número de 1’s ?

Qualquer problema de decisão se pode transformar num Q q p pproblema de reconhecimento de linguagens.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC54

Page 55: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Qualquer problema de decisão se pode transformar num problema de reconhecimento de linguagens.g g

E l

Exemplo:

O número natural n é primo ? (problema de decisão)

Linguagem L ={1n, n primo} 1n = 111…1 n vezes

L={11, 111, 11111, 1111111, …}

A cadeia 1n pertence à linguagem L ? (problema de reconhecimento de linguagens)

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC55

reconhecimento de linguagens)

Page 56: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

1.4.3. Transdução (transformação) de cadeias de símbolos

Entrada SaídaTransdutor

abab baba

Entrada Saída

abab baba

reverter(d l )atrasar (delay)

combinar símbolosidentificar símbolos

etc©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC

56

etc …

Page 57: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Não há um paradigma mais importante !!!Não há um paradigma mais importante !!!

P i í i d i t d tibilid d

qualquer instância de um dos três paradigmas pode ser

Princípio da inter-redutibilidade:

q q p g polhada como uma instância de um dos outros dois paradigmas .p g

Cálculo de funções f(n)funções f(n)

Reconhecimento Transdução de de Linguagens cadeias

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC57

Page 58: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Qualquer caso de computação de uma função pode ser reduzido a uma instância do reconhecimento de uma linguagem.

Exemplo:

f( ) é é i ú i f( )f(n) = m , m é o n-ésimo número primo

f(3) = ??

n f(n)1 2f(3) = ?? 2 33 53 54 7.. ..

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC58

Page 59: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Nota: números primos

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097 1103 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399 1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499 1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 1601 1607 16091481 1483 1487 1489 1493 1499 1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 1601 1607 1609 1613 1619 1621 1627 1637 1657 1663 1667 1669 1693 1697 1699 1709 1721 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789 1801 1811 1823 1831 1847 1861 1867 1871 1873 1877 1879 1889 1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999 2003 2011 2017 2027 2029 2039 2053 2063 2069 2081 2083 2087 2089 2099 2111 2113 2129 2131 2137 2141 2143 2153 2161 2179 2203 2207 2213 2221 2237 2239 2243 2251 2267 2269 2273 2281 2287 2293 2297 2309 2311 2333 2339 2341 2347 2351 2357 2371 2377 2381 2383 2389 2393 2399 2411 2417 2423 2437 2441 2447 2459 2467 2473 2477 2503 2521 2531 2539 2543 2549 2551 2557 2579 2591 2593 2609 2617 2621 2633 2647 2657 2659 2663 2671 2677 2683 2687 2689 2693 2699 2707 2711 2713 2719 2729 2731 2741 27492621 2633 2647 2657 2659 2663 2671 2677 2683 2687 2689 2693 2699 2707 2711 2713 2719 2729 2731 2741 2749 2753 2767 2777 2789 2791 2797 2801 2803 2819 2833 2837 2843 2851 2857 2861 2879 2887 2897 2903 2909… … …

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC59

Page 60: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Usando a representação binária de números naturais constroem-seUsando a representação binária de números naturais, constroem se as cadeias que resultam da concatenação de 11 (3) com os números naturais (1, 2, 3, 4, 5, 6, …), usando por exemplo # como separador:

11#1

naturais (1, 2, 3, 4, 5, 6, …), usando por exemplo # como separador:

11#111#1011#11

Define-se agora a linguagem L associada aos números primos

11#1111#10011#101 L ={ Binário(n)#Binário(m)}11#10111#110

L ={ Binário(n)#Binário(m)}

A t ã d l d f(3) é i l t à d t i ã dA computação do valor de f(3) é equivalente à determinação de qual a única cadeia daquele conjunto que pertence a L .

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC60

Page 61: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Como se pode reduzir uma classificação de cadeias a umaComo se pode reduzir uma classificação de cadeias a uma computação numérica de uma função ?

Tomemos o caso do reconhecimento de palíndromos:p

E i i l f difi ã d í b l d Em primeiro lugar faz-se uma codificação dos símbolos do alfabeto, de modo que cada símbolo fique associado a um e um só número natural Por exemplo se a = 01 e b = 10 então abasó número natural. Por exemplo se a = 01 e b = 10, então abaresulta no número natural 011001=25

Em segundo lugar constrói-se a linguagem dos palíndromos, L(P l) ódiL(Pal), e os seus códigos.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC61

Page 62: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

A função característica de L será

(n) = 1 se n é o código de um palíndromo(n) 1, se n é o código de um palíndromo = 0, se não o é.

Agora para se saber se 25 é o código de um palíndromo, basta calcular o valor da função característica (25)= 1 e assim secalcular o valor da função característica (25)= 1, e assim se conclui que aba é um palíndromo.

O princípio da inter-redutibilidade permite que se use o problemaO princípio da inter redutibilidade permite que se use o problema da identificação de linguagens em teoria da computação como

representativo dos três paradigmas.©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC

62

p p g

Page 63: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

Utilidade da teoria dos autómatos finitosUtilidade da teoria dos autómatos finitosModelos para...

Software de projecto e implementação de circuitos digitais (os transdutores)(os transdutores)

Analisador lexical em compiladores ( o componente do il d di id t t id d ló i t icompilador que divide o texto em unidades lógicas, tais como

identificadores, palavras-chave e pontuação)

Software para analisar grandes quantidades de texto (páginas web procurar ocorrências de palavras de frases etc )(páginas web, procurar ocorrências de palavras, de frases, etc.)

Software para a verificação de protocolos de comunicação, p ç p ç ,protocolos de segurança, ou qualquer tipo sistemas com um número finito de estados

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC63

Page 64: Cítl1Itd ãCapítulo 1. Introdução e definições ...cbarrico/Disciplinas/TeoriaComputacao/Downloads/1... · alf b i l i d d i ilfabeto, incluindo a cadeia vazia. OjtO conjuntoL={a,

BibliografiaAn Introduction to Formal Languages and Automata, Peter Linz, 3rd

Ed., Jones and Bartelett Computer Science, 2001 (livro mais seguido na cadeira )(livro mais seguido na cadeira )

Models of Computation and Formal Languages, R. Gregory Taylor, Oxford University Press, 1998.

Introduction to Automata Theory, Languages and Computation, 2nd Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman, Addison Wesley, 2001.

Elements for the Theory of Computation, Harry Lewis and Christos Papadimitriou, 2nd Ed., Prentice Hall, 1998.

Introduction to the Theory of Computation, Michael Sipser, PWS Publishing Co, 1997.

©ADC/TCI/Cap.1/2009-10/LEI/DEIFCTUC64