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

Post on 27-Jun-2022

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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.

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

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

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

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

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

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

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

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

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

{ } ( )

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

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

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

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.

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

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

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

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

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

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

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

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

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

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ê ?)

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

Á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

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

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

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)

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

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)

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

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

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

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

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

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

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)

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 …

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

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

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

top related