cícapíttul1lo 1. intd ãtrodução e definições

59
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

Upload: others

Post on 27-Jun-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CíCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

1 1 Linguagens1.1. Linguagens

1. 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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

9. Potências de uma cadeia w n

d i btid l ( t ) t ã d d icadeia obtida pela (auto)concatenação n vezes da cadeia ww 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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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|chove

artigo 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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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 vazio

T í 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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

Multigrafos:

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

CC1

C2

C3

C4

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

Page 36: CíCapíttul1lo 1. Intd ãtrodução e definições

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értices

E : 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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

PaiAntepassados

ilhilh

tepassados

Descendentes

FilhoFilhoIrmã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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

Á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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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ácter

0 0 00 aEstado Símbolo

0 0 00 a

0 1 01 b

1 0 10

Aberta A

Fechada F1 0 10 c

1 1 11 d

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

Page 46: CíCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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 entrada

Me

S k

Unidade de Controlo

móm k

qk

ria

y kFicheiro de saída

Função de transição de estado f

qk+1 = f (qk, sk, mk)

Função de transição da saída g

yk+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íCapíttul1lo 1. Intd ãtrodução e definições

ExemploExemplo

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

q0

mq1

eq2 q3

tq4

aq0 q1 q2 q3 q4

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

Page 50: CíCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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 pilha máquinas de Turing: de memória em fita infinita má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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

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íCapíttul1lo 1. Intd ãtrodução e definições

Utilidade da teoria dos autómatos finitosUtilidade da teoria dos autómatos finitos

Modelos 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/DEIFCTUC

63

Page 59: CíCapíttul1lo 1. Intd ãtrodução e definições

Bibliografia

An 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/DEIFCTUC

64