Sunteți pe pagina 1din 151

Li

nguagensFor
mai
se
Aut
mat
os
Paul
oBl
aut
hMenez
es

Linguagens Formais e Autmatos


P. Blauth Menezes
1
2
3
4
5
6
7
8
9

Introduo e Conceitos Bsicos


Linguagens e Gramticas
Linguagens Regulares
Propriedades das Linguagens Regulares
Autmato Finito com Sada
Linguagens Livres do Contexto
Propriedades e Reconhecimento das Linguagens
Livres do Contexto
Linguagens Recursivamente Enumerveis e
Sensveis ao Contexto
Hierarquia de Classes de Linguagens e Concluses

Linguagens Formais e Autmatos

3 Linguagens Regulares
3.1 Sistema de estados finitos
3.2 Composio sequencial, concorrente e no
determinista
3.3 Autmato finito
3.4 Autmato finito no determinstico
3.5 Autmato finito com movimentos vazios
3.6 Expresso regular
3.7 Gramtica regular

Linguagens Formais e Autmatos

3 Linguagens Regulares
Linguagens Formais e Autmatos

3 Linguagens Regulares
Linguagens regulares ou tipo 3 formalismos
Autmato finito
formalismo operacional ou reconhecedor
basicamente, um sistema de estados finitos
Expresso regular
formalismo denotacional ou gerador
conjuntos (linguagens) bsicos + concatenao e unio
Gramtica regular
formalismo axiomtico ou gerador
gramtica com restries da forma das regras de produo
Linguagens Formais e Autmatos

Hierarquia de Chomsky
classe de linguagens mais simples
algoritmos de reconhecimento, gerao ou converso entre
formalismos
pouca complexidade
grande eficincia
fcil implementao

Fortes limitaes de expressividade


exemplo: duplo balanceamento no regular
linguagens de programao em geral: no regulares

Linguagens Formais e Autmatos

Complexidade de algoritmos autmatos finitos


classe de algoritmos mais eficientes (tempo de processamento)
supondo determinada condio
qualquer autmato finito igualmente eficiente
qualquer soluo tima
a menos de eventual redundncia de estados
redundncia de estados
(no influi no tempo)
pode ser facilmente eliminada: autmato finito mnimo

Linguagens Formais e Autmatos

Importantes propriedades podem ser usadas para


construir novas linguagens regulares
a partir de linguagens regulares conhecidas
definindo uma lgebra
provar propriedades
construir algoritmos

Se um problema tiver uma soluo regular


considerar preferencialmente a qualquer outra no regular
propriedades da classe
eficincia e simplicidade dos algoritmos

Linguagens Formais e Autmatos

Universo de aplicaes das linguagens regulares


muito grande
constantemente ampliado

Exemplo tpico e simples


anlise lxica

Exemplos mais recentes


sistemas de animao
hipertextos
hipermdias

Linguagens Formais e Autmatos

Captulos subsequentes
minimizao de autmatos finitos
propriedades da classe
algumas importantes aplicaes

Linguagens Formais e Autmatos

10

3 Linguagens Regulares
3.1 Sistema de estados finitos
3.2 Composio sequencial, concorrente e no
determinista
3.3 Autmato finito
3.4 Autmato finito no determinstico
3.5 Autmato finito com movimentos vazios
3.6 Expresso regular
3.7 Gramtica regular

Linguagens Formais e Autmatos

11

3.1 Sistema de Estados Finitos


Sistema de estados finitos
modelo matemtico de sistema com entradas e sadas discretas
nmero finito e predefinido de estados
podem ser explicitados antes de iniciar o processamento

Estado
somente informaes do passado
necessrias para determinar as aes para a prxima entrada

Linguagens Formais e Autmatos

12

Motivacional
associados a diversos tipos de sistemas naturais e construdos

Exp: Elevador
No memoriza as requisies anteriores
Estado: sumaria "andar corrente" e "direo de movimento"
Entrada: requisies pendentes

Exp: Analisador lxico, processador de texto


Estado: memoriza a estrutura do prefixo da palavra em anlise
Entrada: texto

Linguagens Formais e Autmatos

13

Restrio
nem todos os sistemas de estados finitos so adequados para ser
estudados por esta abordagem

Exp: Crebro humano


Neurnio: nmero finito de bits
Crebro: cerca de 235 clulas
abordagem pouco eficiente
exploso de estados

Linguagens Formais e Autmatos

14

Exp: Computador
estados dos processadores e memrias
sistema de estados finitos
entretanto, podem existir memrias adicionais
discos, fitas, memrias auxiliares, etc.
assim, o nmero de estados no necessariamente predefinido
no satisfaz aos princpios dos autmatos finitos

Linguagens Formais e Autmatos

15

de fato, o estudo da computabilidade


exige uma memria sem limite predefinido
Mquina de Turing
mais adequado ao estudo da computabilidade
computabilidade e solucionabilidade de problemas
apenas introduzidos
questes tratadas na teoria da computao

Linguagens Formais e Autmatos

16

3 Linguagens Regulares
3.1 Sistema de estados finitos
3.2 Composio sequencial, concorrente e no
determinista
3.3 Autmato finito
3.4 Autmato finito no determinstico
3.5 Autmato finito com movimentos vazios
3.6 Expresso regular
3.7 Gramtica regular

Linguagens Formais e Autmatos

17

3.2 Composio Sequencial,


Concorrente e No Determinista
Construo composicional de sistema
construdo a partir de sistemas conhecidos
e assim sucessivamente at chegar ao nvel mais elementar
(como uma ao atmica)

Composio
Sequencial
Concorrente
No determinista

Linguagens Formais e Autmatos

18

Sequencial
execuo da prxima componente
depende da terminao da componente anterior

Concorrente
componentes independentes
ordem em que so executadas no importante
portanto, podem ser processadas ao mesmo tempo

Linguagens Formais e Autmatos

19

No determinista
prxima componente: escolha entre diversas alternativas
em oposio determinista
para as mesmas condies
prxima componente sempre a mesma
no determinismo pode ser
interno: sistema escolhe aleatoriamente
externo: escolha externa ao sistema

Sistemas reais
as trs formas de composio so comuns

Linguagens Formais e Autmatos

20

Exp: Banco
Sequencial
fila: prximo cliente depende do atendimento do anterior
pagamento de uma conta depende do fornecimento de um valor
Concorrente
diversos caixas atendem independentemente diversos clientes
clientes nos caixas: aes independentemente dos clientes na fila
No determinista
dois ou mais caixas disponveis ao mesmo tempo
prximo cliente pode escolher o caixa
caminhar de um indivduo: perna esquerda ou direita

Linguagens Formais e Autmatos

21

Linguagens formais
sequencial e no determinismo: especialmente importantes

Semntica do no determinismo adotada


a usual para linguagens formais, teoria da computao...
no determinismo interno
objetivo: determinar a capacidade de reconhecer linguagens e de
solucionar problemas
se pelo menos um caminho alternativo reconhece/soluciona
a mquina como um todo considerada capaz de
reconhecer/solucionar

Linguagens Formais e Autmatos

22

Semntica do no determinismo adotada


difere da adotada no estudo dos modelos para concorrncia
exemplo: sistemas operacionais
no confundir com a semntica da concorrncia

Linguagens Formais e Autmatos

23

3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

Linguagens Formais e Autmatos

24

3.3 Autmato Finito


Autmato finito: sistema de estados finitos
nmero finito e predefinido de estados
modelo computacional comum em diversos estudos terico-formais
Linguagens formais
Compiladores
Semntica formal
Modelos para concorrncia

Linguagens Formais e Autmatos

25

Formalismo operacional/reconhecedor pode ser


determinstico
para o estado corrente e o smbolo lido da entrada
assume um nico estado
no determinstico
para o estado corrente e o smbolo lido da entrada
assume um estado pertencente a um conjunto de estados
alternativos

Linguagens Formais e Autmatos

26

com movimentos vazios


para o estado corrente e, independentemente de ler um smbolo
ou no da entrada,
assume um estado pertencente a um conjunto de estados
alternativos
portanto no determinstico
dito movimento vazio se muda de estado sem uma leitura de
smbolo

Movimento vazio
pode ser visto como transies encapsuladas
excetuando-se por uma eventual mudana de estado
nada mais pode ser observado
anlogo encapsulao das linguagens orientadas a objetos
Linguagens Formais e Autmatos

27

Trs tipos de autmatos: equivalentes


em termos de poder computacional

Linguagens Formais e Autmatos

28

Autmato finito (determinstico): mquina constituda por


Fita: dispositivo de entrada
contm informao a ser processada
Unidade de controle: reflete o estado corrente da mquina
possui unidade de leitura (cabea da fita)
acessa uma clula da fita de cada vez
movimenta-se exclusivamente para a direita
Programa, funo programa ou funo de transio
comanda as leituras
define o estado da mquina

Linguagens Formais e Autmatos

29

Fita finita
dividida em clulas
cada clula armazena um smbolo
smbolos pertencem a um alfabeto de entrada
no possvel gravar sobre a fita (no existe memria auxiliar)
palavra a ser processada ocupa toda a fita

Linguagens Formais e Autmatos

30

Unidade de controle
nmero finito e predefinido de estados
origem do termo controle finito
leitura
l um smbolo da fita de cada vez
move a cabea da fita uma clula para a direita
posio inicial da cabea clula mais esquerda da fita

controle

Linguagens Formais e Autmatos

31

Programa: funo parcial


dependendo do estado corrente e do smbolo lido
determina o novo estado do autmato

Linguagens Formais e Autmatos

32

Def: Autmato finito (determinstico) ou AFD


M = (, Q, , q0, F)
um alfabeto (de smbolos) de entrada
Q um conjunto de estados possveis do autmato (finito)
uma (funo) programa ou funo de transio (funo parcial)
: Q Q
transio do autmato: (p, a) = q

q0 um elemento distinguido de Q: estado inicial


F um subconjunto de Q: conjunto de estados finais

Linguagens Formais e Autmatos

33

Autmato finito como um diagrama: (p, a) = q

estado anterior
smbolo lido
novo estado
Linguagens Formais e Autmatos

34

Estados iniciais e finais

q0

qf

Transies paralelas: (q, a) = p e (q, b) = p


a
p

a,b

Linguagens Formais e Autmatos

35

Funo programa como uma tabela de dupla entrada

(p, a) = q

Linguagens Formais e Autmatos

36

Computao de um autmato finito


sucessiva aplicao da funo programa
para cada smbolo da entrada (da esquerda para a direita)
at ocorrer uma condio de parada

Lembre-se de que um autmato finito


no possui memria de trabalho
para armazenar as informaes passadas
deve-se usar o conceito de estado

Linguagens Formais e Autmatos

37

Exp: Autmato finito: aa ou bb como subpalavra


L1 = { w w possui aa ou bb como subpalavra }
Autmato finito
M1 = ({ a, b }, { q0, q1, q2, qf }, 1, q0, { qf })
1

q0 q1 q2
q1

Linguagens Formais e Autmatos

qf

q2

q2 q1

qf

qf

qf

qf

38

q0

q1

q2
a

qf

a,b

q1: "smbolo anterior a"


q2: "smbolo anterior b"
qual a informao memorizada por q0 e qf
aps identificar aa ou bb
qf (final): varre o sufixo da entrada - terminar o processamento

Linguagens Formais e Autmatos

39

q0

q1

q2
a

qf

a,b

q0
q1
q2
qf
qf
Linguagens Formais e Autmatos

40

Obs: Autmato finito sempre para


Como
qualquer palavra finita
novo smbolo lido a cada aplicao da funo programa
no existe a possibilidade de ciclo (loop) infinito

Parada do processamento
Aceita a entrada
aps processar o ltimo smbolo, assume um estado final
Rejeita a entrada. Duas possibilidades
aps processar o ltimo smbolo, assume um estado no final
programa indefinido para argumento (estado e smbolo)

Linguagens Formais e Autmatos

41

Obs: Autmato finito grafo finito direto


Qual a diferena entre um autmato finito e um grafo finito direto?
Qualquer autmato finito pode ser visto como um grafo finito direto onde
podem existir arcos paralelos (mesmos nodos origem e destino)
dois ou mais arcos podem ser identificados com a mesma etiqueta
(smbolo do alfabeto)
existe um nodo distinguido: estado inicial
existe um conjunto de nodos distinguidos: estados finais
Usual considerar um autmato finito como grafo finito direto especial
herda resultados da teoria dos grafos

Linguagens Formais e Autmatos

42

Definio formal do comportamento de um autmato


finito
dar semntica sintaxe
necessrio estender a funo programa
argumento: estado e palavra

Linguagens Formais e Autmatos

43

Def: Funo programa estendida, computao


M = (, Q, , q0, F) autmato finito determinstico
*: Q * Q
: Q Q estendida para palavras - indutivamente definida
*(q, ) = q
*(q, aw) = *((q, a), w)

Observe
sucessiva aplicao da funo programa
para cada smbolo da palavra
a partir de um dado estado
se a entrada for vazia, fica parado
aceita/rejeita: funo programa estendida a partir do estado inicial
Linguagens Formais e Autmatos

44

Exp: Funo programa estendida


a

b
0

a
a

a,b

*(q0, abaa) =
funo estendida sobre abaa
*((q0, a), baa) =
processa abaa
*(q1, baa) =
funo estendida sobre baa
*((q1, b), aa) =
processa baa
*(q2, aa) =
funo estendida sobre aa
*((q2, a), a) =
processa aa
*(q1, a) =
funo estendida sobre a
*((q1, a), ) =
processa a
funo estendida sobre : fim da induo; ACEITA
*(qf, ) = qf

Linguagens Formais e Autmatos

45

Def: Linguagem aceita, linguagem rejeitada


M = (, Q, , q0, F) autmato finito determinstico.
Linguagem aceita ou linguagem reconhecida por M
L(M) = ACEITA(M) = { w *(q0, w) F }
Linguagem rejeitada por M:
REJEITA(M) = { w *(q0, w) F ou *(q0, w) indefinida }

Supondo que * o conjunto universo

ACEITA(M) REJEITA(M) =
ACEITA(M) REJEITA(M) = *
~ACEITA(M) = REJEITA(M)
~REJEITA(M) = ACEITA(M)

Linguagens Formais e Autmatos

46

Cada autmato finito M sobre


induz uma partio de * em duas classes de equivalncia
e se um dos dois conjuntos for vazio?

*
ACEITA(M)

Linguagens Formais e Autmatos

REJEITA(M)

47

Diferentes autmatos finitos podem aceitar uma mesma


linguagem
Def: Autmatos finitos equivalentes
M1 e M2 so autmatos finitos equivalentes se, e somente se,
ACEITA(M1) = ACEITA(M2)

Def: Linguagem regular, linguagem tipo 3


L uma linguagem regular ou linguagem tipo 3
existe pelo menos um autmato finito determinstico que aceita L

Linguagens Formais e Autmatos

48

Exp: Autmato finito: vazia, todas as palavras


Linguagens sobre o alfabeto { a, b }
L2 =

M2

L3 = *

M3

q0
a,b

Linguagens Formais e Autmatos

q0
a,b

49

Exp: Autmato finito: vazia, todas as palavras


L2 =

L3 = *

2 a b

3 a b

q0 q0 q0

q0 q0 q0

diferena entre 2 e 3?
o que, exatamente, diferencia M2 de M3?

Linguagens Formais e Autmatos

50

Exp: Autmato finito: nmero par de cada smbolo


L4 = { w w possui um nmero par de a e um nmero par de b }
b
q0

q1
b

b
q2

q3
b

Como seria para aceitar um nmero mpar de cada smbolo?

Linguagens Formais e Autmatos

51

Obs: Funo programa funo programa estendida


Objetivando simplificar a notao
e a sua correspondente extenso *
podem ser ambas denotadas por

Linguagens Formais e Autmatos

52

Obs: Computaes caminhos de um grafo


Existe uma forte relao entre as computaes de um autmato finito e
os caminhos do correspondente grafo finito direto
Dado um autmato, o enriquecimento do correspondente grafo com todos
os caminhos (incluindo os de tamanho zero)
conjunto de todos arcos (caminhos): computaes possveis
linguagem aceita: subconjunto de arcos
com origem no estado inicial, destino em algum estado final
linguagem rejeitada: subconjunto de arcos
com origem no estado inicial, destino em algum estado no final

Linguagens Formais e Autmatos

53

Obs: Computaes caminhos de um grafo

c a m in h o s M

M
a

1
d

1
d

a
5

Computaes(M)
=
{ , a, b, c, d,
ab, bc, abc}

ab

abc
bc

c
4

Linguagens Formais e Autmatos

c
4

ACEITA (M)
=
{ , d, abc}

54

3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

Linguagens Formais e Autmatos

55

3.4

Autmato Finito No Determinstico

Linguagens Formais e Autmatos

56

No determinismo
importante generalizao dos modelos de mquinas
fundamental no estudo
Modelos para concorrncia
Teoria da computao
Linguagens formais

Semntica de no determinismo adotada


usual no estudo das linguagens formais
objetiva determinar a capacidade de
reconhecer linguagens
solucionar problemas
no confundir com a semntica da concorrncia

Linguagens Formais e Autmatos

57

Nem sempre no determinismo aumenta o poder


reconhecimento de linguagens de uma classe de autmatos
qualquer autmato finito no determinstico pode ser simulado por
um autmato finito determinstico

No determinismo no programa uma funo parcial


para o estado corrente e o smbolo lido da entrada,
determina aleatoriamente um estado de um conjunto de estados
alternativos.

Linguagens Formais e Autmatos

58

Assim, a cada transio no determinista


novos caminhos alternativos so possveis
definindo uma rvore de opes

Entrada aceita
se pelo menos um dos caminhos alternativos aceita a entrada
mesmo que os demais no aceitem

Linguagens Formais e Autmatos

59

Semntica adotada para o no determinismo


assume um conjunto de estados alternativos
como uma multiplicao da unidade de controle
uma para cada alternativa
processando independentemente
sem compartilhar recursos com as demais
como se todos os caminhos alternativos fossem investigados
simultaneamente
o processamento de um caminho
no influi no estado, smbolo lido e posio da cabea
dos demais caminhos alternativos

Linguagens Formais e Autmatos

60

Def: Autmato finito no determinstico (AFN)


M = (, Q, , q0, F)
alfabeto (de smbolos) de entrada
Q conjunto de estados possveis (finito)
(funo total) programa ou funo de transio (funo total)
: Q 2Q
transio: (p, a) = { q1, q2, , qn }

q0 um elemento distinguido de Q: estado inicial


F um subconjunto de Q: conjunto de estados finais

Linguagens Formais e Autmatos

61

Se (p, a) =
transio indefinida para o par (p, a)
o autmato para, rejeitando a entrada

Autmato como diagrama

(p, a) = { q1, q2, , qn }

estado anterior
p
a

q1

Linguagens Formais e Autmatos

q2

qn

smbolo lido
conjunto de
novos estados
62

Computao de um autmato finito no determinstico


sucessiva aplicao da funo programa
para cada smbolo da entrada (da esquerda para a direita)
at ocorrer uma condio de parada

Argumentos: computao/funo programa estendida


conjunto finito de estados e uma palavra

Linguagens Formais e Autmatos

63

Def: Funo programa estendida, computao


M = (, Q, , q0, F) autmato finito no determinstico
*: 2Q * 2Q
indutivamente definida
*(P, ) = P
*(P, aw) = *(qP (q, a), w)

Transio estendida (a um conjunto de estados)


*({ q1, q2,, qn }, a) = (q1, a) (q2, a) (qn, a)

Linguagens Formais e Autmatos

64

Parada do processamento
Aceita a entrada
aps processar o ltimo smbolo da fita, existe pelo menos um
estado final pertencente ao conjunto de estados alternativos
atingidos
Rejeita a entrada. Duas possibilidades
aps processar o ltimo smbolo da fita, todos os estados
alternativos atingidos so no finais
conjunto de estados alternativos atingido vazio: o autmato para
por indefinio

Linguagens Formais e Autmatos

65

Def: Linguagem aceita, linguagem rejeitada


Seja M = (, Q, , q0, F) um autmato finito no determinstico

Linguagem aceita ou linguagem reconhecida por M


L(M) = ACEITA(M) = { w *({ q0 }, w) F }

Linguagem rejeitada por M


REJEITA(M) = { w *({ q0 }, w) F = ou *({ q0 }, w) indefinida }

Linguagens Formais e Autmatos

66

Exp: Autmato finito no determinstico: aa ou bb como


subpalavra
L5 = { w w possui aa ou bb como subpalavra }
Autmato finito no determinstico:
M5 = ({ a, b }, { q0, q1, q2, qf }, 5, q0, { qf })
q0

a,b

q1

q2
a

qf

Linguagens Formais e Autmatos

a,b

67

q0

a,b

q1

q2
a

qf

Linguagens Formais e Autmatos

a,b

68

q0

a,b

q1

q2
a

qf

a,b

o ciclo em q0 realiza uma varredura em toda a entrada


o caminho q0/q1/qf garante a ocorrncia de aa
o caminho q0/q2/qf garante a ocorrncia de bb
Linguagens Formais e Autmatos

69

q0

a,b

q1

q2
a

qf

Linguagens Formais e Autmatos

a,b

70

q0 { q0,q1
}

{ q0,q2
}

q1

{ qf }

q2

{ qf }

qf

{ qf }

{ qf }

*({ q0 }, abaa) =
*((q0, a), baa) =
*({ q0, q1 }, baa) =
*((q0, b) (q1, b), aa) =
*({ q0, q2 } , aa) =
*({ q0, q2 }, aa) =

Linguagens Formais e Autmatos

funo estendida sobre abaa


processa abaa
funo estendida sobre baa
processa baa
funo estendida sobre aa
71

*((q0, a) (q2, a), a) =


*({ q0, q1 } , a) =
*({ q0, q1 }, a) =
*((q0, a) (q1, a), ) =
*({ q0, q1 } { qf }, ) =
*({ q0, q1, qf }, ) = { q0, q1, qf }
induo

processa aa
funo estendida sobre a
processa a
funo estendida sobre : fim da

e, portanto, a palavra aceita, pois { q0, q1, qf } F = { qf }

Exp: AFN: aaa como sufixo


L6 = { w w possui aaa como sufixo }
Autmato finito no determinstico:
M6 = ({ a, b }, { q0, q1, q2, qf }, 6, q0, { qf })

Linguagens Formais e Autmatos

72

q0

q1

q2

qf

a,b

Linguagens Formais e Autmatos

73

*({ q0 }, baa) =
*((q0, b), aa) =
*({ q0 }, aa) =
*((q0, a), a) =
*({ q0, q1 }, a) =
*((q0, a) (q1, a), ) =
*({ q0, q1 } { q2 }, ) =
*({ q0, q1, q2 }, ) = { q0, q1, q2 }
induo

funo estendida sobre baa


processa baa
funo estendida sobre aa
processa aa
funo estendida sobre a
processa a
funo estendida sobre : fim da

e, portanto, a palavra rejeitada, pois { q0, q1, q2 } F =

Linguagens Formais e Autmatos

74

No determinismo
aparentemente, um significativo acrscimo ao poder computacional
autmato finito
na realidade, no aumenta seu poder computacional

Teorema: equivalncia entre AFD e AFN


Classe dos autmatos finitos determinsticos equivalente
Classe dos autmatos finitos no determinsticos

Linguagens Formais e Autmatos

75

Prova: (por induo)


Mostrar que
a partir de um AFN M qualquer
construir um AFD MD que realize as mesmas computaes
MD simula M
AFN AFD
estados de MD simulam combinaes de estados alternativos de M
prova da simulao: por induo
AFD AFN
no necessita ser mostrado: decorre trivialmente das definies

Linguagens Formais e Autmatos

76

M = (, Q, , q0, F) um AFN qualquer. AFD construdo


MD = (, QD, D, q0, FD)
QD todas as combinaes, sem repeties, de estados de Q
notao q1q2qn
ordem no distingue combinaes: quqv = qvqu
imagem de todos os estados alternativos de M
D: QD QD
D(q1qn, a) = p1pm sse *({ q1, , qn }, a) = { p1, , pm }
em particular:
D(q1qn, a) indefinida

sse

*({ q1, , qn }, a) =

q0 estado inicial
Linguagens Formais e Autmatos

77

FD - conjunto de estados q1q2qn pertencentes a QD


alguma componente qi pertence a F, para i em { 1, 2, , n }
AFD MD simula as computaes do AFN M ???
induo no tamanho da palavra
mostrar que
D*(q0, w) = q1qu

sse

*({ q0 }, w) = { q1, , qu }

Base de induo. w = 0. Portanto, w = :


D*(q0, ) = q0

se, e somente se,

*({ q0 }, ) = { q0 }

verdadeiro, por definio de computao

Linguagens Formais e Autmatos

78

Hiptese de induo. w = n e n 1. Suponha que:


D*(q0, w) = q1qu

sse

*({ q0 }, w) = { q1, , qu }

Passo de Induo. wa = n + 1 e n 1
D*(q0, wa) = p1pv

sse

*({ q0 }, wa) = { p1, , pv }

equivale (hiptese de induo)


D(q1qu, a) = p1pv

sse

*({ q1, , qu }, a) = { p1, , pv }

verdadeiro, por definio de D


Logo, MD simula M para qualquer entrada w pertencente a *

Linguagens Formais e Autmatos

79

Portanto, linguagem aceita por AFN


linguagem regular ou Tipo 3

Obs: Determinismo no determinismo


Muitas vezes mais fcil desenvolver um AFN do que um AFD
exemplo
{ w o quinto smbolo da direita para a esquerda de w a }
soluo determinista: no trivial; nmero grande de estados
soluo no determinista: bem simples; poucos estados
Alternativa para construir um AFD
desenvolver inicialmente AFN
aplicar o algoritmo apresentado na prova do teorema

Linguagens Formais e Autmatos

80

Exp: AFN AFD


M6 = ({ a, b }, { q0, q1, q2, qf }, 6, q0, { qf })

q0

q1

q2

qf

a,b
M6D = ({ a, b }, QD, 6D, q0, FD)
QD = { q0, q1, q2, qf, q0q1, q0q2, , q0q1q2qf }
FD = { qf, q0qf, q1qf, , q0q1q2qf }

Linguagens Formais e Autmatos

81

AFN
a

q0

q1

q2

qf

a,b

AFD

Linguagens Formais e Autmatos

6D

q0

q0q1

q0q1

q0q1q2

q0

q0q1q2

q0q1q2qf

q0

q0q1q2qf

q0q1q2qf

q0

b
q0

82

Linguagens Formais e Autmatos

6D

p0 = q0

q0q1

q0

p1 = q0q1

q0q1q2

q0

p2 = q0q1q2

q0q1q2qf

q0

pf = q0q1q2qf

q0q1q2qf

q0

83

b
a

p0

p1

p2

b
a

pf

Linguagens Formais e Autmatos

84

3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

Linguagens Formais e Autmatos

85

3.5 Autmato Finito com Movimentos


Vazios
Movimentos vazios
generalizam os movimentos no determinsticos

Movimento vazio
transio sem leitura de smbolo algum da fita
interpretado como um no determinismo interno ao autmato
transio encapsulada
excetuando-se por uma eventual mudana de estados
nada mais pode ser observado

Linguagens Formais e Autmatos

86

Algumas vantagens
facilita algumas construes e demonstraes

Poder computacional para autmatos finitos


no aumenta o poder de reconhecimento de linguagens
qualquer AFN pode ser simulado por um AFD

Linguagens Formais e Autmatos

87

Def: Autmato finito com movimentos vazios AFN


M = (, Q, , q0, F)
alfabeto (de smbolos) de entrada
Q conjunto de estados possveis
(funo total) programa ou funo de transio
: Q ( { }) 2Q
movimento vazio ou transio vazia

(p, ) = { q1, q2, , qn }


q0 - elemento distinguido de Q: estado inicial
F - subconjunto de Q: conjunto de estados finais

Linguagens Formais e Autmatos

88

Autmato como diagrama

(q, ) = { p0 }

(q, a1) = { p1 }

(q, an) = { pn }

p0

Linguagens Formais e Autmatos

an

a1

p1

pn

89

Computao de um AFN
anloga de um AFN

Processamento de uma transio vazia


no determinstico
assume simultaneamente os estados destino e origem
origem de um movimento vazio: caminho alternativo

Linguagens Formais e Autmatos

90

Exp: AFN: as antecedem bs


M7 = ({ a, b }, { q0, qf }, 7, q0, { qf })
7

q0 { q0
}
qf

{ qf }

{ qf }

q0
a

Linguagens Formais e Autmatos

qf
b

91

Antes de definir computao


computao de transies vazias a partir de
um estado
um conjunto finito de estados

Linguagens Formais e Autmatos

92

Def: Computao vazia


M = (, Q, , q0, F)
Computao vazia ou funo fecho vazio (um estado)
: Q 2Q
indutivamente definida
(q) = { q }, se (q, ) indefinida

(q) = { q } (q, ) (p(q,) (p)), caso contrrio

Computao vazia ou funo fecho vazio (conjunto de estados)


*: 2Q 2Q
tal que
*(P) = qP (q)

Linguagens Formais e Autmatos

93

Por simplicidade, e *
ambas denotadas por

Exp: Computao vazia

q0
a

qf
b

(q0) = { q0, qf }
(qf) = { qf }
({ q0, qf }) = { q0, qf }

Linguagens Formais e Autmatos

94

Computao de um AFN para uma entrada w


sucessiva aplicao da funo programa
para cada smbolo de w (da esquerda para a direita)
cada passo de aplicao intercalado com computaes vazias
at ocorrer uma condio de parada

Assim, antes de processar a prxima transio


determinar
todos os demais estados atingveis
exclusivamente por movimentos vazios

Linguagens Formais e Autmatos

95

Def: Funo programa estendida, computao


M = (, Q, , q0, F) AFN
*: 2Q * 2Q
indutivamente definida
*(P, ) = (P)
*(P, wa) = (R) onde R = { r r (s, a) e s *(P, w) }

Parada do processamento, ling. aceita/rejeitada


anloga do autmato finito no determinstico

Linguagens Formais e Autmatos

96

Exp: Computao vazia, computao


L8 = { w w possui como sufixo a ou bb ou ccc }
M8 = ({ a, b, c }, { q0, q1, q2, q3, q4, q5, q6, qf }, 8, q0, { qf })
q1

q0

q2

q3

qf

c
a,b,c
q4

Linguagens Formais e Autmatos

q5

q6

97

q1

q0

q2

q3

qf

c
a,b,c
q4

q5

q6

*({ q0 }, abb) = ({ r r (s, b) e s *({ q0 }, ab) })


*({ q0 }, ab) = ({ r r (s, b) e s *({ q0 }, a) })
*({ q0 }, a) = ({ r r (s, a) e s *({ q0 }, ) })

(1)
(2)
(3)

Como:
*({ q0 }, ) } = ({ q0 }) = { q0, q1, q2, q4 }
*({ q0 }, a) = { q0, q1, q2, q4, qf }
*({ q0 }, ab) = { q0, q1, q2, q3, q4 }

considerado em (3)
considerado em (2)
considerado em (1)

Resulta na computao: *({ q0 }, abb) = { q0, q1, q2, q3, q4, qf }


Linguagens Formais e Autmatos

98

Teorema: equivalncia entre AFN e AFN


Classe dos autmatos finitos com movimentos vazios equivalente
Classe dos autmatos finitos no determinsticos

Prova: (por induo)


Mostrar que
a partir de um AFN M qualquer
construir um AFN MN que realize as mesmas computaes
MN simula M
AFN AFN
construo de uma funo programa sem movimentos vazios
conjunto de estados-destino de cada transio no vazia
ampliado com os demais estados possveis de serem atingidos
exclusivamente por transies vazias
Linguagens Formais e Autmatos

99

M = (, Q, , q0, F) um AFN qualquer. AFN construdo


MN = (, Q, N, q0, FN)
N: Q 2Q tal que
N(q, a) = *({ q }, a)
FN o conjunto de todos os estados q pertencentes a Q
(q) F
estados que atingem estados finais via computaes vazias

Demonstrao que, de fato, o AFN MN simula o AFN M


induo no tamanho da palavra
exerccio

Linguagens Formais e Autmatos

100

Portanto, linguagem aceita por AFN


linguagem regular ou tipo 3

Linguagens Formais e Autmatos

101

Exp: Construo de um AFN a partir de um AFN


AFN - M9 = ({ a, b }, { q0, q1, q2 }, 9, q0, { q2 })
9

q0 { q0
}
q1

q2 { q2 }

Linguagens Formais e Autmatos

{ q1
}

{ q1
}

{ q2
}

102

q0
a

q2

q0

q1

q1
b

q2
a

M9N = ({ a, b }, { q0, q1, q2 }, 9N q0, FN)

Linguagens Formais e Autmatos

103

a,b

a,b

q0

q1

q2

q0

a,b

q1
b

q2
a

FN = { q0, q1, q2 }
(q0) = { q0, q1, q2 }
Linguagens Formais e Autmatos

104

(q1) = { q1, q2 }
(q2) = { q2 }

Linguagens Formais e Autmatos

105

q0
a

q1
b

q2
a

Na construo de 9N
9*({ q0 }, ) = { q0, q1, q2 }
9*({ q1 }, ) = { q1, q2 }
9*({ q2 }, ) = { q2 }

Linguagens Formais e Autmatos

106

q0
a

q1
b

q2
a

Assim, 9N tal que


9N(q0, a) = 9*({ q0 }, a) =

({ r r (s, a) e s *({ q0 }, ) }) = { q0, q1, q2 }

9N(q0, b) = 9*({ q0 }, b) =

({ r r (s, b) e s *({ q0 }, ) }) = { q1, q2 }

9N(q1, a) = 9*({ q1 }, a) =

({ r r (s, a) e s *({ q1 }, ) }) = { q2 }
Linguagens Formais e Autmatos

107

q0
a

q1
b

q2
a

9N(q1, b) = 9*({ q1 }, b) = ({ r r (s, b) e


s *({ q1 }, ) }) = { q1, q2 }
9N(q2, a) = 9*({ q2 }, a) = ({ r r (s, a) e s *({ q2 }, ) }) = { q2 }
9N(q2, b) = 9*({ q2 }, b) = ({ r r (s, b) e s *({ q2 }, ) })
indefinida

Linguagens Formais e Autmatos

108

3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

Linguagens Formais e Autmatos

109

3.6 Expresso Regular


Toda linguagem regular pode ser descrita por uma
Expresso Regular

Formalismo denotacional (gerador)


Definida a partir de
conjuntos (linguagens) bsicos
concatenao e unio

Adequadas para a comunicao


humano humano
humano mquina
Linguagens Formais e Autmatos

110

Def: Expresso regular (ER)


Base de induo
ER
denota a linguagem vazia:
ER
denota a linguagem { }
x ER (para qualquer x )
denota a linguagem { x }

Linguagens Formais e Autmatos

111

Def: Expresso regular (ER)


Passo de induo: se r e s so ER e denotam as ling. R e S, ento
Unio. (r + s) ER
denota a linguagem R S
Concatenao. (rs) ER
denota a linguagem R S = { uv u R e v S }
Concatenao Sucessiva. (r*) ER
denota a linguagem R*

Linguagens Formais e Autmatos

112

Def: Linguagem gerada por uma ER


Se r ER, a correspondente linguagem denotada dita
Linguagem gerada por r
L(r)

ou

GERA(r)

Omisso de parnteses em uma ER usual


concatenao sucessiva: precedncia sobre concatenao e unio
concatenao: precedncia sobre unio

Linguagens Formais e Autmatos

113

Exp: Expresso regular


ER

Linguagem gerada
???

aa
ba*
(a + b)*
(a + b)*aa(a + b)*
a*ba*ba*
(a + b)*(aa + bb)
(a + )(b + ba)*

Linguagens Formais e Autmatos

114

Exp: Expresso regular


ER

Linguagem gerada

aa

somente a palavra aa

ba*

todas as palavras que iniciam por b, seguido por zero


ou mais a

(a + b)*

todas as palavras sobre { a, b }

(a + b)*aa(a + b)* todas as palavras contendo aa como subpalavra


a*ba*ba*

todas as palavras contendo exatamente dois b

(a + b)*(aa + bb) todas as palavras que terminam com aa ou bb


(a + )(b + ba)*

Linguagens Formais e Autmatos

todas as palavras que no possuem dois a


consecutivos

115

Exp: Expresso regular


Linguagem gerada pela ER (a + b)*(aa + bb)

a e b denotam { a } e { b }, respectivamente
a + b denota { a } { b } = { a, b }
(a + b)* denota { a, b }*
aa e bb denotam { a } { a } = { aa } e { b } { b } = { bb }, respectivamente
(aa + bb) denota { aa } { bb } = { aa, bb }
(a + b)*(aa + bb) denota { a, b }* { aa, bb }

Portanto, GERA( (a + b)*(aa + bb) )


{ aa, bb, aaa, abb, baa, bbb,
aaaa, aabb, abaa, abbb, baaa, babb, bbaa, bbbb, }

Linguagens Formais e Autmatos

116

Teorema: expresso regular linguagem regular


Se r ER, ento GERA(r) linguagem regular

Prova: (por induo)


Uma linguagem regular se for possvel construir um
AFD, AFN ou AFN que reconhea a linguagem
necessrio mostrar que
dada uma ER r qualquer
possvel construir um autmato finito M tal que
ACEITA(M) = GERA(r)
Demonstrao: induo no nmero de operadores
Base de induo. r ER com zero operadores
Linguagens Formais e Autmatos

117

r=
Autmato???
r=
Autmato???
r = x (x )
Autmato???

Linguagens Formais e Autmatos

118

Base de induo. r ER com zero operadores


r = . Autmato: M1 = (, { q0 }, 1, q0, )
q0

r = . Autmato: M2 = (, { qf }, 2, qf, { qf })
qf

r = x (x ). Autmato: M3 = ({ x }, { q0, qf }, 3, q0, { qf })


q0

Linguagens Formais e Autmatos

qf

119

Hiptese de induo. r ER com at n 0 operadores


suponha que possvel definir um AF que aceita GERA(r)
Passo de induo. r ER com n + 1 operadores
r pode ser representada por (r1 e r2 possuem conjuntamente no
mximo n operadores)
r = r1 + r2
r = r1r2
r = r1*
por hiptese de induo, existem
M1 = (1, Q1, 1, q01, { qf1 })

M2 = (2, Q2, 2, q02, { qf2 })

ACEITA(M1) = GERA(r1)

ACEITA(M2) = GERA(r2)

Linguagens Formais e Autmatos

120

r = r1 + r2
Autmato???
r = r1r2
Autmato???
r = r1*
Autmato???

Linguagens Formais e Autmatos

121

sem perda de generalidade:


M1 e M2 possuem exatamente um estado final (exerccios)
estados dos autmatos: conjuntos disjuntos (se no forem?)
r = r1 + r2. Autmato M = (1 2, Q1 Q2 { q0, qf }, , q0, { qf })

q01

M1

qf1

q0

qf

Linguagens Formais e Autmatos

q02

M2

qf2

122

r = r1r2. Autmato M = (1 2, Q1 Q2, , q01, { qf2 })

q01

M1

qf1

q02

M2

qf2

r = r1*. Autmato (suponha q0 Q1, qf Q1)


M = (1, Q1 { q0, qf }, , q0, { qf })

q0

q01

M1

qf1

qf

Linguagens Formais e Autmatos

123

Exerccio: no caso r = r1 + r2
no introduzir os estados q0 e qf
identificar ("unificar") os estados iniciais/finais de M1/M2 ???

q01

M1

qf1

q0

qf

Linguagens Formais e Autmatos

q02

M2

qf2

124

Exerccio: no caso r = r1*


no introduzir o estado qf
manter qf1 como o estado final
transio vazia de q0 para qf1 ???

q0

q01

M1

qf1

qf

Linguagens Formais e Autmatos

125

Exp: AFN a partir de a*(aa + bb)


ER

AFN

a*

aa

Linguagens Formais e Autmatos

126

ER

AFN

bb

(aa + bb)

Linguagens Formais e Autmatos

127

Autmato resultante: a*(aa + bb)


a

Linguagens Formais e Autmatos

128

Teorema: linguagem regular expresso regular


Se L linguagem regular, ento existe uma ER r tal que
GERA(r) = L
O teorema no ser provado

Linguagens Formais e Autmatos

129

3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

Linguagens Formais e Autmatos

130

3.7 Gramtica Regular


Formalismo gramticas
permite definir tanto linguagens regulares como no regulares

Gramtica regular
restries nas regras de produo
existe mais de uma forma de restringir as regras de produo
gramticas lineares

Linguagens Formais e Autmatos

131

Def: Gramticas lineares


G = (V, T, P, S)
Gramtica linear direita (GLD)
A wB

ou

Aw

Gramtica linear esquerda (GLE)


A Bw

ou

Aw

Gramtica linear unitria direita (GLUD)


como na gramtica linear direita. Adicionalmente

w1

Gramtica linear unitria esquerda (GLUE)


como na gramtica linear esquerda. Adicionalmente

w1

Linguagens Formais e Autmatos

132

Lado esquerdo de uma produo


exatamente uma varivel

Lado direito de uma produo


no mximo uma varivel
sempre antecede (linear esquerda)
ou sucede (linear direita)
qualquer subpalavra (eventualmente vazia) de terminais

Exerccio
gramtica simultaneamente nas quatro formas lineares?

Linguagens Formais e Autmatos

133

Teorema: equivalncia das gramticas lineares


Seja L uma linguagem. Ento:

L gerada por uma GLD sse


L gerada por uma GLE sse
L gerada por uma GLUD sse
L gerada por uma GLUE

Diversas formas das gramticas lineares


formalismos equivalentes
demonstrao do teorema: exerccio

Def: Gramtica regular (GR)


G uma gramtica linear

Linguagens Formais e Autmatos

134

Def: Linguagem gerada


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

ou

GERA(G)

tal que
L(G) = { w T* S + w }

Exp: Gramtica regular: a(ba)*


???

Linguagens Formais e Autmatos

135

Exp: Gramtica regular: a(ba)*


Linear direita. G = ({ S, A }, { a, b }, P, S)
S aA
A baA
Linear esquerda. G = ({ S }, { a, b }, P, S)
S Sba a
Linear unitria direita. G = ({ S, A, B }, { a, b }, P, S)
S aA
A bB
B aA
Linear unitria esquerda. G = ({ S, A }, { a, b }, P, S)
S Aa a
A Sb
Linguagens Formais e Autmatos

136

Exp: Gramtica regular: (a + b)*(aa + bb)


Linear direita. G = ({ S, A }, { a, b }, P, S), e P tal que
S aS bS A
A aa bb
Linear esquerda. G = ({ S, A }, { a, b }, P, S), e P tal que
S Aaa Abb
A Aa Ab

Linguagens Formais e Autmatos

137

Obs: Gramtica linear esquerda e linear direita


Suponha w 1
Produes simultaneamente do tipo
A wB (direita) e
A Bw (esquerda)
correspondente linguagem gerada
poder no ser regular
no uma gramtica regular
possvel desenvolver uma gramtica, com produes lineares direita
e esquerda, que gera (exerccio)
{ anbn n N }
Linguagens Formais e Autmatos

138

Teorema: gramtica regular linguagem regular


Se L gerada por uma gramtica regular,
ento L linguagem regular

Prova: (por induo)


Mostrar que
dado uma GLUD G qualquer
possvel construir um AFN M tq
ACEITA(M) = GERA(G)
M simula as derivaes de G
demonstrao de que ACEITA(M) = GERA(r)
induo no nmero de derivaes

Linguagens Formais e Autmatos

139

Suponha G = (V, T, P, S) uma GLUD. Seja o AFN


M = (, Q, , q0, F)

=T
Q = V { qf }
F = { qf }
q0 = S

Linguagens Formais e Autmatos

(suponha qf V)

Tipo da
produo

Transio
gerada

(A, ) = qf

Aa

(A, a) = qf

AB

(A, ) = B

A aB

(A, a) = B
140

M simula as derivaes de G
ACEITA(M) = GERA(G)
Base de induo. S 1 . Quatro casos
=
existe S
=a
existe S a
=A
existe S A
= aA
existe S aA

Logo, (S, ) = qf
Logo, (S, a) = qf
Logo, (S, ) = A
Logo, (S, a) = A

Hiptese de induo. S n , n 1. Dois casos


=w
ento *(S, w) = qf
= wA
ento *(S, w) = A

(1)
(2)

Passo de Induo. S n+1 . Ento (2) a nica hiptese que importa


S n wA 1
Linguagens Formais e Autmatos

141

Quatro casos:
= w = w. Existe A . Logo
*(S, w) = (*(S, w), ) = (A, ) = qf

= wb. Existe A b. Logo


*(S, wb) = (*(S, w), b) = (A, b) = qf

= wB. Existe A B. Logo


*(S, w) = (*(S, w), ) = (A, ) = B

= wbB. Existe A bB. Logo


*(S, wb) = (*(S, w), b) = (A, b) = B

Linguagens Formais e Autmatos

142

Exp: Construo de um AFN a partir de uma GR


G = ({ S, A, B }, { a, b }, P, S)
S aA
A bB
B aA
M = ({ a, b }, { S, A, B, qf }, , S, { qf })
S

qf

b
a
B

Linguagens Formais e Autmatos

143

Produo

Transio

S aA

(S, a) = A

A bB

(A, b) = B

(A, ) = qf

B aA

(B, a) = A

qf

b
a
B

Linguagens Formais e Autmatos

144

Teorema: linguagem regular gramtica regular


Se L linguagem regular, ento existe G, gramtica regular que gera L

Prova: (por induo)


L linguagem regular
existe um AFD M = (, Q, , q0, F) tal que ACEITA(M) = L
Construo de uma GLUD G
GERA(G) = ACEITA(M)
derivao simula a funo programa estendida

Linguagens Formais e Autmatos

145

Suponha um AFD M = (, Q, , q0, F) tal que ACEITA(M) = L


Seja a gramtica regular
G = (V, T, P, S)
V=Q{S}
T=
suponha qi, qk Q, qf F e a

Linguagens Formais e Autmatos

(suponha S Q)

Transio

Produo

S q0

qf

(qi, a) = qk

qi aqk
146

GERA(G) = ACEITA(M)? Induo no tamanho da palavra (w *)


Base de induo. w = 0
por definio, S q0 produo
se ACEITA(M), ento
q0 estado final
q0 produo
S q0
Hiptese de induo. w = n (n 1) e *(q0, w) = q. Dois casos
q no final. Suponha S n wq
q final. Suponha S n wq w

Linguagens Formais e Autmatos

(nica hiptese que importa)

147

Passo de induo. wa = n + 1 e *(q0, wa) = p. Ento


(*(q0, w), a) = (q, a) = p
p no final
S n wq 1 wap
p final
S n wq 1 wap 1 wa

Linguagens Formais e Autmatos

148

Exp: Construo de uma GR a partir de um AFD


M = ({ a, b, c }, { q0, q1, q2 }, , q0, { q0, q1, q2 })

q0

q1

q2

G = ({ q0, q1, q2, S }, { a, b, c }, P, S)

Linguagens Formais e Autmatos

149

Transio

Produo

(q0, a) = q0
(q0, b) = q1
(q1, b) = q1
(q1, c) = q2
(q2, c) = q2

S q0
q0
q1
q2
q0 aq0
q0 bq1
q1 bq1
q1 cq2
q2 cq2

q0

Linguagens Formais e Autmatos

q1

q2

150

Linguagens Formais e Autmatos


P. Blauth Menezes
1
2
3
4
5
6
7
8
9

Introduo e Conceitos Bsicos


Linguagens e Gramticas
Linguagens Regulares
Propriedades das Linguagens Regulares
Autmato Finito com Sada
Linguagens Livres do Contexto
Propriedades e Reconhecimento das Linguagens
Livres do Contexto
Linguagens Recursivamente Enumerveis e
Sensveis ao Contexto
Hierarquia de Classes de Linguagens e Concluses

Linguagens Formais e Autmatos

151

S-ar putea să vă placă și