Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra
Departamento de Informática e Matemática Aplicada Programa de Pós-Graduação em Sistemas e Computação
Linguagens Lineares Fuzzy
Valdigleis da Silva Costa
Dr. Benjamín René Callejas Bedregal
Natal, RN
Valdigleis da Silva Costa
Linguagens Lineares Fuzzy
Dissertação de Mestrado apresentada ao Pro-grama de Pós-Graduação em Sistemas e Com-putação do Departamento de Informática e Matemática Aplicada da Universidade Fede-ral do Rio Grande do Norte como parte dos requisitos para obtenção do título de Mestre em Ciências.
Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra
Departamento de Informática e Matemática Aplicada Programa de Pós-Graduação em Sistemas e Computação
Orientador: Dr. Benjamín René Callejas Bedregal
Natal, RN
05 de agosto de 2016.
Catalogação da Publicação na Fonte. UFRN / SISBI / Biblioteca Setorial Centro de Ciências Exatas e da Terra – CCET.
Costa, Valdigleis da Silva.
Linguagens lineares fuzzy / Valdigleis da Silva Costa. - Natal, 2016. 91 f. : il.
Orientador: Prof. Dr. Benjamín René Callejas Bedregal.
Dissertação (Mestrado) – Universidade Federal do Rio Grande do Norte. Centro de Ciências Exatas e da Terra. Programa de Pós-Graduação em Sistemas e
Computação.
1. Linguagens formais – Dissertação. 2. Linguagens lineares – Dissertação. 3. Autômatos lineares – Dissertação. 4. Linguagens fuzzy – Dissertação. 5. Autômatos fuzzy – Dissertação. I. Bedregal, Benjamín René Callejas. II. Título.
Este trabalho é dedicado às crianças adultas que, quando pequenas, sonharam em se tornar cientistas.
Agradecimentos
A Deus, por me fazer sempre humilde e paciente, e também por estar comigo durante todos os dias da jornada que foi realizar este trabalho.
Ao meu orientador Prof. Dr. Benjamín Rene Callejas Bedregal, por me acolher como seu aluno e por tanto me orientar e ajudar durante a caminhada deste trabalho, o qual só foi enriquecido através de suas críticas e sugestões e também agradeço por dividir comigo um pouco de seu vasto conhecimento.
Ao Prof. Dr. Regivan Hugo Nunes Santiago, por toda a paciência e por está sempre aberto a me ajudar na jornada que foi este trabalho e também por ter me apresentado um universo matemático inteiramente rico e maravilhoso ao qual eu não conhecia.
Ao Prof. Dr. Anderson Paiva Cruz, por ter sido o meu iniciador no caminho da computação formal e também por ter contribuído com este trabalho através de seus brilhantes comentários, críticas e sugestões.
Também agradeço à Prof.a Dr.a Renata Hax Sander Reiser que aceitou o
com-promisso de avaliar este trabalho com atenção, no intuito de me dirigir críticas sempre construtivas, que só ajudaram a melhorar a qualidade deste trabalho.
Aos colegas do LoLITA, Ranyer e sua esposa Liliane, Diego, Annaxsuel, Rui, André, Vânia, Cláudio e Ronildo por fazerem do LoLITA um grupo ótimo de se fazer parte e por contribuir de forma direta ou indireta para a realização deste trabalho. Agradecimentos mais que especiais também aos funcionários (seu Gaspar e Dona Rita) e aos demais professores que compõem o DIMAp.
Aos meus pais e a toda à minha família pelo apoio e compreensão de minha ausência durante esta caminhada.
“Eu Acredito, que ás vezes são as pessoas que ninguém espera nada, que fazem as coisas que ninguém consegue imaginar.” (Alan M. Turing)
Resumo
As linguagens formais definidas no final da década de 50, tem uma grande importância dentro da ciência da computação, em especial para aplicações em análise léxica e sintática dentro da construção dos compiladores e também em técnicas de inferência gramatical. A hierarquia estendida de Chomsky além de “organizar” as linguagens formais, nos possibilita traçar uma relação entre as classes de linguagens e os formalismos em termos de máquinas de estados (ou autômatos). Entre as classes de linguagens na hierarquia estão as linguagens lineares, para as linguagens desta classe existem no mínimo quatro tipos de “dispositivos”, que computam sobre elas. Entre eles estão os λ-autômatos lineares não-determinísticos propostos por Bedregal. Ao final da década de 60, Lee e Zadeh propuseram as linguagens
fuzzy, numa tentativa de diminuir a distância entre as linguagens formais e as linguagens
naturais. Por sua vez, Wee e Fu para capturar a noção de incerteza, durante o processo de reconhecimento de cadeias de uma linguagem, introduzem o conceito de autômatos fuzzy. Assim como na teoria clássica, podemos traçar uma relação entre as classes das linguagens
fuzzy e os autômatos fuzzy. No entanto, diferente da teoria clássica, até o presente momento
não existe nenhum autômato fuzzy concebido diretamente para computar sobre a classe das linguagens lineares fuzzy, isto é, que se relacione com as linguagens lineares fuzzy de forma direta. Portanto, este trabalho se propõe a realizar um estudo sobre a construção de autômatos fuzzy desenvolvidos para reconhecer as linguagens lineares fuzzy. Além disso, dado que dentro do estudo de linguagens formais, a investigação dos operadores de fecho sobre as classes de linguagens é um importante ponto, neste trabalho, iremos também investigar quais dos operadores (união, intersecção, etc) são fechados sobre as classes das linguagens lineares fuzzy.
Palavras-chaves: Linguagens Formais; Linguagens Lineares; Autômatos Lineares;
Abstract
Formal languages defined in the late 50’s play an important role in computer science, especially for applications in lexical and syntactic analysis in the construction of compilers and also in grammatical inference techniques. The extended Chomsky hierarchy in addition to “organize” formal languages, enables us to draw a relationship between the classes of languages and formalisms in terms of state machines (or automata). Among the languages classes in the hierarchy, one can find the linear languages. For such languages of this class, there are at least four types of “devices” performing computations on them. One can highlight the Nondeterministic Linear Automata, as proposed by Bedregal. In the end of the 60s, Lee and Zadeh proposed fuzzy languages in an attempt to decrease the distance between formal languages and natural languages. In turn, Wee and Fu capture the concept of uncertainty as they introduced the concept of fuzzy automata during the process of recognizing a language, similarly to the classical theory. Therefore, one can trace a relationship between the classes of fuzzy language and fuzzy automata. However, differently from the classical theory, up to now there is no designed fuzzy automata directly to compute on the class of fuzzy linear languages, i.e., relating to fuzzy linear languages directly. Therefore, this work aims to carry out a study on the construction of fuzzy automata developed to recognize the fuzzy linear languages. Furthermore, based on the study of formal languages, the investigation of the closure operators on languages classes is an important point; this work will also investigate which of the operators (union, intersection, etc.) are closed on the classes of fuzzy linear languages.
Key-words:Formal Languages; Linear Languages; Linear Automata; Fuzzy Languages;
Lista de ilustrações
Figura 1 – Hierarquia de Chomsky. . . 21
Figura 2 – Hierarquia estendida de Chomsky.. . . 36
Figura 3 – Autômato linear, adaptado de (BEDREGAL, 2011). . . 39
Figura 4 – Diagrama de transição para o autômato M do Exemplo 15. . . . 40
Figura 5 – Autômato que reconhece L = {anbn : n ≥ 1} ∪ {ancn: n ≥ 1}. . . . . . 42
Figura 6 – Hierarquia estendida, contendo LLin, LLinAD e LLinD. . . 42
Figura 7 – Autômato fuzzy que reconhece L = {(w, σ) : σ ∈ [0, 1], w = ambn com m ∈ N+, n ∈ N, m sendo par e se n > 0 então n é impar}. . . . 54
Figura 8 – Sistema de comunicação usuário/robô. . . 67
Lista de tabelas
Tabela 1 – Algumas das principais t-normas. . . 30
Tabela 2 – Algumas das principais t-conormas. . . 31
Tabela 3 – Tabela de relacionamentos adaptada de (PARIENTE, 2004). . . 32
Tabela 4 – Relação entre Linguagens, Gramáticas e Maquinas de computação Fuzzy. 55
Lista de símbolos
LRE (Classe das linguagens recursivamente enumeraveis)
LRE (Classe das linguagens sensível ao contexto)
LLC (Classe das linguagens livre do contexto)
LReg (Classe das linguagens regulares)
XA (Função característica do conjunto A)
U (Conjunto universo ou universo do discurso)
µA (Função de pertinência do conjunto A)
+0A (Conjunto suporte de um conjunto fuzzy A)
⊗ (t-norma ou norma triangular) ⊕ (t-conorma ou conorma triangular) Σ (Alfabeto)
λ (Palavra vazia)
Σn (Conjunto potência do alfabeto Σ)
Σ∗ (Conjunto estrela ou fecho de Kleene do alfabeto Σ) Σ+ (Conjunto ou fecho positivo do alfabeto Σ)
L (Linguagem sobre um alfabeto Σ) G (Assinatura de uma gramática)
V (É um conjunto finito de objetos, chamados variáveis da gramática G) T (É um conjunto finito de objetos, chamados terminais da gramática G) S (Variável especial, chamada símbolo inicial da gramática G)
P (Conjunto de regras de produção da gramática G) x → y (É ma regra de produção pertencente a P ) α ⇒ β (Derivação de α para β)
⇒+ (É o fecho transitivo de ⇒)
⇒+ (É o fecho transitivo e reflexivo de ⇒)
L(G) (É a linguagem gerada por uma gramática G)
M (Assinatura de um autômato linear)
Q1, Q2 (São conjuntos finitos disjuntos de estados de um autômato linear M )
I (é um conjunto finito de estados iniciais de um autômato linear M ) F (é um conjunto finito de estados finais de um autômato linear M ) δ (função de transição de um autômato linear M )
` (Um movimento válido de uma DI a outra DI em um autômato linear M ) `∗ (representa o fecho reflexivo e transitivo de `)
LLinD (Classe das linguagens lineares determinísticas, gerada por uma gramática linear
determinística)
LLinAD (Classe das linguagens lineares determinísticas, reconhecidas por λ-ALN’s
determi-nísticos)
LR (Linguagem reversa)
xr (Palavra reversa)
G (Assinatura de uma gramática fuzzy) ˆ
S (Conjunto fuzzy de variáveis iniciais da gramática fuzzy G)
ˆ
P (Conjunto fuzzy de regras de produções da gramática fuzzy G) d(α, β) (Grau de pertinência da derivação α ⇒ β)
ˆ
d(α1, αn) (Grau de pertinência da cadeia de derivação α para β) µG(w) (Pertinência de w ser gerada pela gramática fuzzy G)
L(G) (Linguagem gerada pela gramática fuzzy G)
M (Assinatura de um autômato fuzzy) ˆ
F (É um conjunto Fuzzy de estados finais de um autômato fuzzy M)
degM(w) (Pertinência de um autômato fuzzy M reconhecer a palavra de entrada w)
L(M) (Linguagem de um autômato fuzzy M)
LRE (Classe das linguagens recursivamente enumeráveis fuzzy) LSC (Classe das linguagens sensíveis ao contexto fuzzy)
LLC (Classe das linguagens livres do contexto fuzzy) LReg (Classe das linguagens regulares fuzzy)
ˆ
Sumário
1 INTRODUÇÃO . . . 21 1.1 Justificativa e Objetivos . . . 23 1.2 Organização do Texto . . . 24 2 PRELIMINARES . . . 27 2.1 Teoria Fuzzy . . . 272.2 Normas e Conormas Triangulares . . . 29
2.3 Linguagens Formais e Gramáticas . . . 32
2.4 Linguagens Lineares . . . 35
2.5 Autômatos Lineares . . . 37
2.6 Considerações Finais . . . 42
3 LINGUAGENS, GRAMÁTICAS E AUTÔMATOS FUZZY . . . 45
3.1 Linguagens Fuzzy . . . 45
3.2 Gramáticas Fuzzy . . . 47
3.3 Autômatos Fuzzy . . . 52
3.4 Considerações Finais . . . 55
4 NOVAS FORMAS NORMAIS E AUTÔMATOS LINEARES . . . 57
4.1 Formais Normais . . . 57
4.2 Autômatos Lineares Fuzzy . . . 61
4.3 Uma Aplicação para os Autômatos Lineares Fuzzy . . . 67
4.4 Considerações Finais . . . 69
5 FECHO DAS LINGUAGENS LINEARES FUZZY . . . 71
5.1 Propriedades de Fecho das Linguagens Lineares Fuzzy . . . 71
5.2 Considerações Finais . . . 75
6 CONCLUSÃO . . . 77
REFERÊNCIAS . . . 79
APÊNDICES
85
APÊNDICE A – RESOLUÇÃO USADA NO EXEMPLO 20 . . . 8721
1 Introdução
Em teoria da computação, as linguagens formais têm sido comumente agrupadas em classes (ou famílias), sendo estas: linguagens recursivamente enumeráveis (LRE), linguagens
sensíveis ao contexto (LSC), linguagens livres do contexto (LLC) e as linguagens regulares
(LReg), segundo o tipo da gramática que as gera. Esse agrupamento constitui a chamada
hierarquia de Chomsky (CHOMSKY, 1956) ilustrada no diagrama da Figura 1 a seguir.
LRE LSC
LLC LReg
Figura 1 – Hierarquia de Chomsky.
Como explicado em (PARIENTE,2004) cada uma das quatro classes de linguagens da hierarquia de Chomsky tem uma correspondência (ou relação direta) com um formalismo baseado em máquinas de estado (ou autômatos), no sentido de que a máquina é projetada especificamente para ter o poder máximo de computação para reconhecer uma determinada classe de linguagem. Sobre tal relação linguagens/máquinas respectivamente para as classes LRE, LSC, LLC e LReg temos os seguintes modelos de autômatos: máquinas de Turing,
máquinas de Turing linearmente limitada, autômatos de pilha e autômatos finitos. No entanto, como dito em (BEDREGAL; ACIÓLY; LYRA, 2010) outras classes de linguagens podem ser adicionadas na hierarquia Chomsky, entre estas classes encontra-se a clasencontra-se das Linguagens Lineares (LLin). Dada a relação entre as linguagens e os
dispositivos reconhecedores (máquinas de estados) podemos presumir que também deve existir uma máquina de estados capaz de reconhecer as linguagens lineares. De fato existem no mínimo quatro destes dispositivos, sendo eles: autômatos finitos de duas fitas (ROSENBERG, 1967;HARRISON, 1978), Tradutores Finitos (ROSENBERG,1967;
MÄKINEN,2003), autômatos com pilha que executam no máximo uma volta para qualquer entrada (HOPCROFT; MOTWANI; ULLMAN,2001;HARRISON,1978) e os λ-autômatos lineares não-determinísticos propostos por Bedregal (BEDREGAL, 2011; BEDREGAL,
2015).
Enquanto que nas linguagens formais há uma garantia de um alto nível de precisão, as linguagens naturais têm relacionadas a si um alto nível de imprecisão (MORDESON;
22 Capítulo 1. Introdução
MALIK, 2002) no sentido de informação codificada, isto é, enquanto que nas linguagens formais a informação que está codificada é exatamente a informação que se transmitir, nas linguagens naturais isso nem sempre é verdade. Por exemplo, pegue a sentença da língua da portuguesa, “João entrou no carro e saiu voando”, sabemos que carros não voam então a informação que está codificada pela sentença não é a informação que se quer realmente transmitir, que neste exemplo seria a informação de que João entrou no carro e saiu em alta velocidade.
Então na tentativa de diminuir a distância entre as linguagens formais e as lin-guagens naturais, Lee e Zadeh no trabalho (LEE; ZADEH, 1969) apresentaram uma extensão para as linguagens formais chamada de linguagens formais fuzzy, ou simplesmente linguagens fuzzy, atribuindo por meio desta extensão a noção de incerteza, nebulosidade ou imprecisão para a estrutura das linguagens formais. Por sua vez, nos trabalhos (JIN; LI; LI, 2013;ASVELD,2003) foram estudados os aspectos algébricos das operações sobre as linguagens formais fuzzy, contribuindo assim para o fortalecimento do campo.
Como pode ser visto em (MORDESON; MALIK, 2002) todas as classes de lingua-gens e por consequência as gramáticas formais pertencentes à hierarquia usual de Chomsky, possuem uma ou mais extensões fuzzy. Além delas, as classes pertencentes a hierarquia estendida de Chomsky, como por exemplo as Lineares, também possuem suas versões
fuzzy, como apresentado em (CHAUDHARI; KOMEJWAR, 2011).
Já em relação à ideia de autômatos Wee e Fu em (WEE; FU, 1969) estabeleceram pela primeira vez a noção de autômato fuzzy, ou seja, uma máquina de estado capaz de lidar com imprecisões durante seu processo de execução. Posteriormente outras máquinas de estados fuzzy foram propostas, tais como, máquinas de Mealy e Moore (WU; DAOWEN,
2010), autômatos de pilha (XING; DAOWEN; LIU, 2009; CHAUDHARI; KOMEJWAR,
2012; DAOWEN, 2007; K.; RAMASWAMY,2014) e máquinas de Turing (LI, 2009a; LI,
2009b; BEDREGAL; FIGUEIRA, 2008; FARIAS et al., 2016b).
Assim como na teoria clássica das linguagens formais e dos autômatos também é possível estabelecer um relacionamento na teoria das linguagens e autômatos fuzzy, entre os diferentes tipos de linguagens fuzzy e os diferentes formalismo de autômatos (ou máquinas de estado) fuzzy. Porém, diferente da teoria clássica onde ao se trabalhar com a classe das linguagens lineares existem no mínimo quatro diferentes modelos de autômatos que atuariam como reconhecedores para as linguagens lineares, na teoria das linguagens e autômatos fuzzy não existe até o presente momento qualquer formalismo em termos de autômatos que se apresente em uma relação direta com as linguagens lineares fuzzy, isto é, que atue como um reconhecedor para as linguagens lineares fuzzy.
Ora, dada que a classe das linguagens lineares fuzzy (LLin) se apresenta na relação
de ordem LLin ⊂ LLC ⊂ LSC ⊂ LRE, onde temos que LLC, LSC e LRE são
1.1. Justificativa e Objetivos 23
recursivamente enumerável fuzzy, então seguindo esta relação entre as linguagens fuzzy poderíamos pensar em adotar os formalismos de autômatos de pilha fuzzy ou de máqui-nas de Turing fuzzy (ou adaptações dos mesmos) para serem usados como dispositivos reconhecedores de linguagens lineares fuzzy.
Porém, dado que tais modelos apresentam um poder computacional muito maior do que aquele exigido pelas linguagens lineares fuzzy, visto que os mesmos tem poder computacional superiormente limitado por linguagens maiores que as linguagens lineares
fuzzy na ordem das linguagens, ao utilizarmos esses dispositivos como reconhecedores das
linguagens lineares fuzzy, nós estaríamos “desperdiçando” o poder computacional destas máquinas, além de que, não haveria uma garantia real de que a linguagem processada estaria realmente em LLin. Uma outra possibilidade seria então estender um dos quatro
modelos clássicos de autômatos reconhecedores de linguagens lineares para o domínio
fuzzy.
Entretanto, os modelos clássicos de autômatos finitos de duas fitas, tradutores finitos e autômatos com pilha que executam no máximo uma volta, são como ditos em (BEDREGAL, 2011) não naturais nem intrínsecos, pois consideram elementos externos ao modelo. Por exemplo, no tipo especial de autômato finito de duas fitas, a entrada é dividida nas duas fitas, de tal modo que a segunda fita contém o reverso do pedaço mais à direita da cadeia de entrada, e esse processo de divisão da palavra não é feito pelo modelo.
Por sua vez, os λ-autômatos lineares não-determinísticos são naturais e intrínsecos, isto é, não precisam considerar elementos externos ao modelo, assim eles são mais simples quando comparados aos demais. Uma outra vantagem dos λ-autômatos lineares não-determinísticos com respeito aos outros modelos é que, eles estendem os autômatos finitos não-determinísticos (AFND), por esses motivos consideramos tais autômatos como o modelo que melhor se apresenta para receber uma extensão fuzzy.
Além dessa questão de não haver um modelo de autômato fuzzy para as linguagens lineares fuzzy, uma outra questão a respeito dessas linguagens e que até o momento não foi efetuada uma investigação é, quais seriam as operações fechadas sobre a classe das linguagens lineares fuzzy, isto é, não foi feito um estudo para determinar os operadores de fecho da classe das linguagens lineares fuzzy. De fato os trabalhos (JIN; LI; LI, 2013;
ASVELD, 2003) não contemplaram tais linguagens, ficando assim a questão em aberto.
1.1
Justificativa e Objetivos
Partindo então da premissa de que na teoria das linguagens e autômatos fuzzy não existe até o presente momento qualquer formalismo em termos de autômatos que se apresente em uma relação direta com as linguagens lineares fuzzy e também que a questão de determinar quais são os operadores de fecho da classe das linguagens lineares
24 Capítulo 1. Introdução
fuzzy se encontra em aberto, este trabalho se propõe a realizar um estudo no campo das
linguagens e autômatos fuzzy com meta de cumprir os seguintes objetivos:
• Estender os conceitos de forma normal linear e linear forte para gramáticas fuzzy; • Desenvolver e descrever um modelo de autômato linear fuzzy;
• Estudar a relação entre as gramáticas lineares fuzzy e os autômato linear fuzzy. • Estudar a natureza dos operadores de fecho sobre as linguagens lineares fuzzy.
1.2
Organização do Texto
Para atingir os objetivos apresentados na seção anterior, este trabalho de Dissertação está organizada em seis capítulos da seguinte forma:
Capítulo 1. Esta Introdução.
Capítulo 2. Preliminares, apresentando as noções básicas e fundamentais para o desenvolvimento do trabalho, o mesmo sendo subdividido nas seguintes seções: Teoria fuzzy, Normas e Conormas Triangulares, Linguagens Formais e Gramáticas, Linguagens Lineares e por fim Autômatos Lineares.
Capítulo 3. Linguagens, Gramáticas e Autômatos fuzzy, onde é apresentado o estado
atual e as definições dos conceitos de Linguagens fuzzy, Gramáticas fuzzy e máquinas de estado fuzzy, ou simplesmente autômatos fuzzy. Por fim, é apresentado o rela-cionamento direto entre os três conceitos (linguagens, gramáticas e autômatos Fuzzy).
Capítulo 4. Novas Formas Normais e Autômatos Lineares Fuzzy, realizamos a
extensão da forma normal linear (FNL) e da forma normal linear forte (FNLF) para as gramáticas fuzzy e em seguida introduzimos a classe dos autômatos lineares fuzzy. Além disso, investigamos a relação entre as gramáticas lineares fuzzy e os autômatos lineares fuzzy. Por fim, apresentaremos uma aplicação prática para os autômatos lineares fuzzy.
Capítulo 5. Fecho das Linguagens Lineares Fuzzy, neste capítulo investigamos quais
dos operadores típicos (união, intersecção, e etc) são fechados sobre a classe das linguagens lineares fuzzy.
1.2. Organização do Texto 25
Capítulo 6. Conclusões, apresentamos as conclusões obtidas por este trabalho de
27
2 Preliminares
Neste Capítulo apresentaremos as noções básicas e fundamentais para o desen-volvimento deste trabalho, serão introduzidos os conceitos relacionados à Teoria fuzzy, Normas e Conormas triangulares e também aos formalismos das linguagens, gramáticas e autômatos lineares.
2.1
Teoria Fuzzy
A Teoria fuzzy é uma generalização introduzida por Zadeh em seu trabalho (ZADEH,
1965) da noção de conjuntos, proposta inicialmente em 1884 pelo matemático alemão Georg Cantor. Na teoria de Cantor ou como também é chamada teoria clássica de conjuntos temos que, um conjunto é uma coleção de objetos que compartilham características em comum. Por exemplo, o conjunto de todas as bolas vermelhas, em tal conjunto os elementos compartilham as características de serem bolas e também de serem vermelhas, deste modo uma bola amarela não faz parte do conjunto.
Assim na teoria de Cantor podemos descrever um conjunto pelas propriedades apresentadas pelos elementos do conjunto, tal que um objeto1 em um determinado universo
do discurso como dito por Maciel em (MACIEL, 2006) pertence (∈) ou não pertence ( /∈) ao conjunto, ou seja, se o elemento possui a propriedade que descreve os elementos do conjunto ou não. Portanto, o critério para um elemento do universo fazer parte ou não do conjunto é definida de forma rigorosa e sem ambiguidades.
Podemos então ao trabalhar com a teoria de Cantor definir uma função assinada como XA : U → {0, 1}, que mapeia cada elemento do universo U em um elemento do
conjunto {0, 1} em relação ao elemento fazer parte ou não de um conjunto A. Formalmente chamamos esta função como sendo a “função característica” do conjunto A e definimos esta como se segue.
Definição 1. Seja U um conjunto universo (ou universo do discurso) e seja A ⊆ U, temos
assim que a função característica do conjunto A é definida por:
XA(x) = 1, se x ∈ A 0, senão (2.1)
Exemplo 1. Considere o universo do discurso sendo o conjunto N e sendo A o conjunto
dos números pares, então a função característica do conjunto A é:
XA(x) = 1, se x é par 0, senão
28 Capítulo 2. Preliminares
No entanto, por diversas vezes não é possível definir sem ambiguidade a propriedade dos elementos que define o conjunto. Por exemplo, mantendo-se a definição do conjunto anterior de bolas vermelhas, os tons mais claros poderiam ser confundidos com rosa e os mais escuros com marrom. Qual o limiar para separar os tons de vermelho dos tons de rosa (ou marrom), isto é, qual a fronteira que separa as bolas vermelhas pertences ao conjunto das que não pertencem? Neste exemplo, vemos que nem sempre as propriedades que definem o conjunto são fáceis de delimitar.
Para superar este problema a teoria dos conjuntos fuzzy (ou teoria fuzzy) apresen-tada em (ZADEH, 1965), introduziu a ideia de que todos elementos de um universo U
pertencem a todos os subconjuntos de U com um certo grau de pertinência, chamamos esses conjuntos de subconjuntos fuzzy do universo, ou simplesmente, conjuntos fuzzy.
Na teoria fuzzy os graus de pertinência são valores contidos no intervalo [0,1] de tal forma que quanto mais próximos de 1 o valor da pertinência de um elemento em relação a um conjunto, maior é a certeza de que o elemento pertence ao conjunto, e analogamente, quando mais próximo do 0 mais seguros estamos de que o elemento não pertence ao conjunto, ou seja, menos satisfaz a propriedade que caracteriza o conjunto.
Formalmente podemos encarar o problema de um elemento pertencer ou não a um conjunto fuzzy através de sua função de pertinência, sendo uma função de pertinência descrita com se segue:
Definição 2. (ZADEH, 1965): Seja U um conjunto universo não vazio. Um conjunto fuzzy A no universo U é caracterizado pela função de pertinência µA : U → [0, 1], sendo
µA(x) o grau de pertinência do elemento x no conjunto fuzzy A, para todo x ∈ U.
Exemplo 2. Considere o universo U de todas as pessoas da terra e que o conjunto fuzzy
A é o conjunto de pessoas idosas, assim poderíamos definir a função de pertinência para A da seguinte forma: µA(x) =
1, se x tem 65 anos ou mais 0.5, se x tem entre 45 e 64 anos
0, se x tem menos de 45 anos
A representação dos conjuntos fuzzy como mostrado em (MACIEL, 2006) é dada da seguinte maneira: A = {(a1, p1), (a2, p2), · · · , (an, pn)}, onde A ⊆ U e o par ordenado
(ai, pi) é formado respectivamente por, ai sendo um elemento de U e pi é a pertinência
do elemento ai em relação ao conjunto fuzzy A, isto é, pi = µA(ai). Neste trabalho nós
omitiremos na escrita do conjunto fuzzy os elementos cuja pertinência é igual a 0, isto é, os elementos que forem da forma (a, 0) para algum a ∈ U.
Como uma generalização da teoria dos conjuntos, a teoria fuzzy também possui sua versão própria para as operações típicas como união, intersecção e complementação
2.2. Normas e Conormas Triangulares 29
(complemento), subconjunto, etc. Além destes conceitos, um importante ponto na teoria
fuzzy que desempenha um papel fundamental na conexão entre os conjuntos clássicos e os
conjuntos fuzzy, é a noção de conjunto suporte, sendo este definido a seguir.
Definição 3. O conjunto suporte de um conjunto fuzzy A é um subconjunto clássico de
um universo do discurso U dado por:
+0
A = {x ∈ U : µA(x) > 0},
Assim, o conjunto suporte de um conjunto fuzzy A, será o conjunto clássico que contém todos os elementos do universo U que possuem grau de pertinência diferente de zero em relação ao conjunto A. Para os interessados em se aprofundar na teoria fuzzy sugerimos a leitura do livro (BARROS; BASSANEZI, 2010), além dos trabalhos de Zadeh (ZADEH, 1965; ZADEH, 1973;ZADEH, 1996), Nguyen e Walker (NGUYEN; WALKER,
2000) e também os trabalhos de Lee (LEE, 1990a;LEE, 1990b).
2.2
Normas e Conormas Triangulares
A partir da teoria fuzzy foi possível trabalhar com a modelagem matemática da noção de incerteza em diversas aplicações (BOJADZIEV; BOJADZIEV,1995;WANG,1983;
CHEN; PHAM,2001). Entre as principais áreas de aplicações da teoria fuzzy na literatura
estão: o processamento digital de imagens (BUSTINCE; BARRENECHEA; PAGOLA,
2008; CHI; YAN; PHAM, 1996; FARIAS et al., 2016a), suporte a tomada de decisão (SILVA et al., 2012; KAHRAMAN,2008; PATERNAIN et al., 2012), o reconhecimento de padrões (ANGSTERNBERGER, 2001; CHI; YAN; PHAM, 1996) e o agrupamento de
dados (VARGAS; BEDREGAL, 2010; SATO; LAKHMI, 2006; ANGSTERNBERGER,
2001).
Muitas vezes ao trabalharmos com modelagem precisamos realizar a composição de diferentes resultados apresentados pelo modelo que construímos, esta composição é realizada utilizando operadores inerentes ao tipo de modelagem que estamos trabalhando, isto é, os operadores devem ter a mesma natureza (discreta/continua) do modelo.
Para a modelagem utilizando as ideias apresentadas na teoria fuzzy os operadores mais famosos são as Normas Triangulares, ou simplesmente t-normas, e as Conormas Triangulares, ou de forma abreviada t-conormas (KLEMENT; MESIAR; PAP, 2000). Estes operadores foram introduzidos no trabalho (MENGER, 1942), então no trabalho (SCHWEIZER; SKLAR, 1961) receberam uma axiomática. Já no trabalho (ALSINA; TRILLAS; VALVERDE, 1980) foi utilizado pela primeira vez a noção de t-normas para modelarem a ideia de conjunção no domínio fuzzy, e por sua vez, as t-conormas para modelarem a disjunção fuzzy.
30 Capítulo 2. Preliminares
Definição 4. A função ⊗ : [0, 1]2 → [0, 1] é uma t-norma (ou norma triangular) se
satisfaz os seguintes axiomas:
(P1) Comutatividade ⊗(x, y) = ⊗(y, x);
(P2) Associatividade ⊗(x, ⊗(y, z)) = ⊗(⊗(x, y), z);
(P3) Monotonicidade, se x ≤ x0 e y ≤ y0 então ⊗(x, y) ≤ ⊗(x0, y0) e
(P4) 1-Identidade (ou 1 como elemento neutro) ⊗(x, 1) = x.
Na Tabela 1 são apresentadas algumas das mais famosas t-normas da literatura:
t-norma Definição algébrica
Mínimo ⊗M(x, y) = min(x, y) Łukasiewicz ⊗L(x, y) = max(x + y − 1, 0) Produto ⊗P(x, y) = xy Produto drástico ⊗D(x, y) = ( 0, se (x, y) ∈ [0, 1[2
min(x, y), senão
Tabela 1 – Algumas das principais t-normas.
Exemplo 3. Consideremos a modelagem de um sistema qualquer que necessite da compo-sição das seguintes informações µP(x) = 0.4 e µQ(x) = 0.6, se adotarmos a t-norma do
mínimo teríamos:
⊗M(µP(x), µQ(x)) = min(µP(x), µQ(x))
= min(0.4, 0.6) = 0.4
E para a t-norma de Łukasiewicz teríamos respectivamente:
⊗L(µP(x), µQ(x)) = max(µP(x) + µQ(x) − 1, 0)
= max(0.4 + 0.6 − 1, 0) = 0
Definição 5. Uma função ⊕ : [0, 1]2 → [0, 1] é uma t-conorma (ou conorma triangular)
se satisfaz os axiomas (P1), (P2), (P3) das t-normas e para o axioma (P4) é trocado o 1 por 0.
2.2. Normas e Conormas Triangulares 31
t-conorma Definição algébrica
máximo ⊕M(x, y) = max(x, y) Łukasiewicz ⊕L(x, y) = min(x + y, 1) Soma probabilística ⊕P(x, y) = x + y − xy Soma drástica ⊕D(x, y) = ( 1, se (x, y) ∈]0, 1[2
max(x, y), senão
Tabela 2 – Algumas das principais t-conormas.
Exemplo 4. Dado as pertinência do Exemplo 3 para um determinado x, considere uma modelagem que necessite extrair a informação do nível de separação, isto é, o grau de disjunção das informações de x. Se modelarmos tal evento no sistemas adotado como operador a t-cornoma do máximo teriamos o seguinte resultado:
⊕M(µP(x), µQ(x)) = max(µP(x), µQ(x))
= max(0.4, 0.6) = 0.6
Por outro lado com a t-conorma de Łukasiewicz teríamos o seguinte resultado:
⊕L(µP(x), µQ(x)) = min(µP(x) + µQ(x), 1)
= min(0.4 + 0.6, 1) = 1
Como exposto até agora t-normas são operações binárias, no entanto, é interessante e conveniente estender esta noção para que estas possam receber uma n-tupla de argumentos de entrada, isto é, definir a operação da t-norma ⊗ com a seguinte assinatura ⊗ : [0, 1]n→
[0, 1] para algum inteiro positivo n, essa extensão da t-norma é feita como dito em (KLEMENT; MESIAR; PAP, 2000) da seguinte forma:
n O i=1 xi = ⊗ n−1 O i=1 xi, xn ! = ⊗(x1, x2, · · · , xn)
Esta igualdade se dá pelo fato das t-normas serem associativas, para maiores detalhes consultar (SILVA; BEDREGAL; BUSTINCE,2015). De forma dual como também descrito em (KLEMENT; MESIAR; PAP, 2000) temos que a t-conorma é estendida para:
n M i=1 xi = ⊕ n−1 M i=1 xi, xn ! = ⊕(x1, x2, · · · , xn)
32 Capítulo 2. Preliminares
Vale salientar que no caso particular de n = 1 temos que, ⊗(x1) = x1 e ⊕(x1) = x1
e também que as t-normas consideradas neste trabalho serão computáveis no sentido de (BEDREGAL; FIGUEIRA, 2008) e não possuem divisores de zero. Existem outros operadores além das t-normas e t-conormas para o domínio fuzzy, alguns são extensões dos conectivos da lógica clássica (negação, implicação e bi-implicação), para mais detalhes recomendamos a leitura de (VISINTIN,2012) e também (BACZYŃSKI, 2008) e para um maior aprofundamento sobre t-normas e t-conormas sugerimos a leitura de (KLEMENT; MESIAR; PAP, 2000).
2.3
Linguagens Formais e Gramáticas
As linguagens formais podem ser classificadas segundo a hierarquia de Chomsky (CHOMSKY,1956) em quatro classes (ou famílias) sendo estas: linguagens recursivamente enumeráveis (LRE), linguagens sensíveis ao contexto (LSC), linguagens livres do contexto
(LLC) e as linguagens regulares (LReg), a hierarquia de Chomsky foi ilustrada no diagrama
da Figura1.
Como explicado em (PARIENTE,2004), cada uma das quatro classes de linguagens da hierarquia de Chomsky tem uma correspondência com um formalismo baseado em máquina de estado, que servem como reconhecedor de linguagem. Além desta relação com máquinas de estado cada linguagem também está relacionada com o tipo da gramática que a gera, estas relações estão ilustradas na Tabela3.
Classes Exemplo Gramáticas geradoras Máquinas reconhecedoras
LRE LAck Tipo 0 máquina de Turing
LSC L = {anbncn: n ∈ N} Tipo 1 máquina de Turing linearmente limitada LLC L = {anbn: n ∈ N} Tipo 2 autômato de Pilha LReg L = {ambn: m, n ∈ N} Tipo 3 autômato Finito
Tabela 3 – Tabela de relacionamentos adaptada de (PARIENTE, 2004).
A linguagem LAck na Tabela 3corresponde a uma codificação do gráfico da função
de Ackermann (BEDREGAL; ACIÓLY; LYRA,2010). Para um maior aprofundamento
dos modelos de máquinas, tipos de gramática e classes de linguagens apresentadas na Tabela 3existe uma vasta literatura sobre o assunto, ver (BEDREGAL; ACIÓLY; LYRA,
2010;MENEZES,2000;HOPCROFT; MOTWANI; ULLMAN,2001;LINZ,2000;SIPSER,
2013).
Além das classes usuais, outras classes de linguagens podem ser adicionadas na hierarquia como dito em (BEDREGAL; ACIÓLY; LYRA, 2010), criando assim o conceito de hierarquia estendida de Chomsky, entre estas classes adicionais está a classe das linguagens lineares (LLin) que será um dos focos deste trabalho. Visto que toda linguagem
2.3. Linguagens Formais e Gramáticas 33
é gerada por uma gramática, para definir linguagem linear antes necessitamos definir o que seria uma gramática linear, para fazer isso precisamos introduzir alguns conceitos fundamentais da teoria das linguagens formais.
Definição 6. Um alfabeto Σ é um conjunto finito qualquer de símbolos.
Do trabalho de Rodrigues (RODRIGUES, 2007) temos os seguintes exemplos de alfabeto, Σ1 = {a, e, i, o, u} e Σ2 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Por sua vez, uma palavra
sobre um alfabeto é qualquer seqüência finita formada por símbolos do alfabeto, assim uma palavra “ai” é uma palavra válida sobre o alfabeto Σ1, e também “1988” é uma palavra
válida sobre o alfabeto Σ2, uma ressalva a se destacar é que, sobre qualquer alfabeto é
possível gerar a palavra vazia denotada por λ, tal palavra não possui nenhum símbolo do alfabeto. Alguns conjuntos notáveis são construídos a partir de qualquer alfabeto sendo eles os seguintes conjuntos.
Definição 7. O conjunto potência de um alfabeto Σ, denotado por Σn, é o conjunto de
todas as palavras de tamanho n formada pelos elementos de Σ, tal que n ∈ N.
Definição 8. O conjunto estrela (ou fecho de Kleene) de um alfabeto, denotado por Σ∗, é o conjunto de todas as palavras, e isso inclui a palavra vazia, que podem ser formada sobre um alfabeto qualquer Σ, matematicamente temos que, Σ∗ =
∞
[
i=0
Σi.
Exemplo 5. Seja Σ = {0, 1} temos então os seguintes conjuntos:
Σ0 = {λ}
Σ1 = {0, 1}
Σ2 = {00, 01, 10, 11}
Σ∗ = {λ, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, . . .}
Definição 9. O conjunto Σ+, é o conjunto de todas as palavras não vazias que podem ser
formada sobre um alfabeto qualquer Σ, matematicamente temos que, Σ+ = Σ∗− {λ}.
Definição 10. Uma linguagem L é um conjunto de palavras válidas sobre algum alfabeto
Σ, ou seja, L ⊆ Σ∗.
Exemplo 6. Seja Σ = {0, 1} então os seguintes conjuntos são linguagens:
L1 = {λ}
L2 = {0, 1}
34 Capítulo 2. Preliminares
L4 = {w ∈ Σ∗ : w = 10n1, n ≥ 0}
Como já mencionado toda linguagem é gerada a partir de uma gramática, uma gramática é então a entidade responsável pela descrição de como são construídas as palavras que pertence à linguagem, de forma mais formal uma gramática é:
Definição 11. (BEDREGAL; ACIÓLY; LYRA, 2010) Uma Gramática G, é definida como uma quadrupla G = hV, T, S, P i, onde
V é um conjunto finito de objetos, chamados variáveis,
T é um conjunto finito de objetos, disjuntos de V , chamados símbolos terminais, S ∈ V é um símbolo especial, chamados variável de início, e
P é um conjunto finito produções.
Uma regra de produção pertencente P é formalizada matematicamente como sendo
x → y, onde x ∈ (V ∪ T )+ e y ∈ (V ∪ T )∗, tal regra descreve que para a gramática G as
cadeia à esquerda de → podem ser reescritas como sendo as cadeias que estão à direita de →, isto é, as produções dizem quais as substituições de cadeias são permitidas dentro da gramática. Por sua vez, se aplicarmos uma produção há uma palavra α ∈ (V ∪ T )∗ iremos gerar uma outra palavra β ∈ (V ∪ T )∗, para tal ação damos o nome de derivação
e denotamos isto como sendo α ⇒ β. O exemplo a seguir ilustra bem isto.
Exemplo 7. Seja G uma gramática definida como G = h{S, A}, {0, 1}, S, P i, e com P
formado pelas derivações S → 1A1, A → 0A e A → λ. Então dada uma palavra α = 1A1, nossa gramática gera a partir da aplicação da produção A → 0A sobre a palavra α uma
palavra β = 10A1.
Assim temos que ⇒+ denota o fecho transitivo de ⇒, que representa que serão
necessárias uma ou mais derivações para derivar uma palavra para outra. E por sua vez ⇒∗ é fecho transitivo e reflexivo de ⇒ que representa a necessidade de nenhuma ou mais
derivações para derivar uma palavra a partir de outra.
Como exposto na Tabela3 as gramáticas são classificadas em quatro tipos, como
dito por Hopcroft em (HOPCROFT; MOTWANI; ULLMAN, 2001), uma gramática é
caracterizada pela forma de suas produções.
Nas gramáticas tipo 0, qualquer combinação de símbolos, sejam eles terminais ou variáveis, é permitida em qualquer um dos lados da produção. Em tais gramáticas as produções são da seguinte forma:
2.4. Linguagens Lineares 35
Uma gramática do tipo 1 é uma gramática tipo 0 tal que para toda produção
α → β satisfaz a restrição que |α| ≤ |β|.
Exemplo 8. Uma gramática tipo 0 da forma G = h{S, A, B, C, D, E, F }, {a}, S, P i com
P sendo o conjunto {S → ACaF, S → a, S → λ, Ca → aaC, AD → AC, CF → DF, CF → E, aD → Da, aE → Ea, AE → λ}. Tal gramática é capaz de gerar a linguagem
L = {a2i : i ∈ N}.
Exemplo 9. A gramática tipo 1 da forma G = h{S, A, B}, {a, b}, S, P i com P sendo o
conjunto {S → Aba, A → aAbB, A → a, Bb → bB, Ba → aa}. Gera a linguagem sensível ao contexto L = {anbnan: n ≥ 1}.
Por sua vez, as gramáticas tipo 2 apresentam do lado esquerdo das produções sempre um único símbolo e este pertence ao conjunto das variáveis, já o lado direito pode conter qualquer combinação de símbolos pertencente a (V ∪ T )∗, formalmente temos que:
α → β, sendo α ∈ V e β ∈ (V ∪ T )∗
Exemplo 10. Uma gramática tipo 2 que gere a linguagem livre do contexto L = {ab(bbaa)n
bba(ba)n: n ≥ 0} pode ser da seguinte forma G = h{S, A, B}, {a, b}, S, P i com P sendo o
conjunto {S → abB, A → aaBb, A → λ, B → bbAa}.
Já as gramáticas do tipo 3 são gramáticas tipo 2 em que toda produção é da forma
α → wβ ou α → βw para α ∈ V, β ∈ V ∪ {λ} e w ∈ T ∪ {λ}.
Exemplo 11. Uma gramática tipo 3 da forma G = h{S}, {a, b}, S, P i com P sendo o
conjunto {S → bS, S → a}. Tal gramática gera a linguagem regular L = {bna : n ≥ 0}.
Definição 12. A linguagem gerada por uma gramática G, denotada por L(G), é o conjunto composto por todas as palavras de símbolos terminais que possam ser derivados a partir do símbolo inicial S, formalmente temos:
L(G) = {w ∈ T∗ : S ⇒+w} (2.2)
Exemplo 12. Sendo G a gramática do Exemplo 7, então L(G) é exatamente a linguagem
L4 do Exemplo 6, ou seja, L4 = L(G).
2.4
Linguagens Lineares
Agora que fomos introduzidos aos conceitos de gramáticas e de linguagens geradas, podemos apresentar a classe (ou família) das linguagens lineares LLin. As linguagens
36 Capítulo 2. Preliminares
lineares foram introduzidas por Amar e Putzolu em seu trabalho (AMAR; PUTZOLU,
1964). Dentro da hierarquia estendida de Chomsky a classe LLin, isto é, a classe das
linguagens lineares pode ser vista como sendo, a classe entre a classe linguagens regulares e a classe das linguagens livres do contexto, como pode ser visto na Figura2.
LRE LSC LLC
LLin LReg
Figura 2 – Hierarquia estendida de Chomsky.
Como exposto anteriormente na Tabela3 cada família de linguagem na hierarquia de Chomsky está ligada com um tipo de gramática, este fato também é observado na classe das linguagens lineares, que estão relacionadas diretamente com as gramática lineares, de fato gramática lineares são geradoras de linguagens lineares, assim podemos definir.
Definição 13. Uma linguagem L é linear se ela for gerada por uma gramática linear G.
Antes de introduzimos de forma precisa o que é uma gramática linear temos que ter em mente o que não é uma gramática linear. Uma gramática do tipo 2 que não é
linear é aquela onde existem produções onde o lado direito possui mais de um simbolo
não terminal. Assim em gramáticas que não são lineares temos uma escolha na ordem em que as variáveis são derivadas, em tais gramáticas distinguimos as derivações pela ordem com que as variáveis são derivadas no processo, o Exemplo 13 a seguir ilustra esta descrição de gramáticas não linear.
Exemplo 13. Consideremos a seguinte gramática G = h{S, A, B}, {0, 1}, S, P i com P
sendo o conjunto de produções definido como P = {S → AB, A → 00A, A → λ, B → B1, B → λ}, tal gramática não é linear pois a variável S possui uma derivação da forma S → AB, isto é, com mais de um simbolo não terminal do lado direito.
Dado o conhecimento do que seria uma gramática tipo 2 não linear, podemos formalmente definir o conceito de gramática linear como segue.
Definição 14. (BEDREGAL, 2011) Uma gramática G = hV, T, S, P i é linear, se cada x → y ∈ P é tal que x = A e y = uBv para algum A ∈ V, B ∈ V ∪ {λ} e u, v ∈ T∗.
2.5. Autômatos Lineares 37
Assim uma gramática linear é uma forma mais rigorosa de gramática tipo 2, onde cada produção em P tem no seu lado esquerdo um único elemento x ∈ V e no lado direito um elemento w ∈ (V ∪ T )∗, sendo que entre os elementos que formam w pode haver no máximo uma variável, ou seja, um único elemento do conjunto V , sem no entanto haver qualquer restrição da posição deste elemento em w.
Uma variável A ∈ V em uma gramática linear é dita linear à esquerda se para toda produção de A → y ∈ P , temos que ou y ∈ T∗ ou y = Bz, para algum z ∈ T+
e B ∈ V . Analogamente, uma variável A ∈ V será chamada linear à direita se cada
A → y ∈ P , vale que ou y ∈ T∗ ou y = zB para algum z ∈ T+ e B ∈ V . Uma gramática linear G estará na Forma Normal Linear (FNL), se cada A ∈ V ou é linear à esquerda ou é linear à direita.
Exemplo 14. A gramática G = h{S, A, B}, {0, 1}, S, P i com P sendo o conjunto formado
pelas produções:
S → 0A, A → 0B, B → A11 e A → λ
É uma gramática linear, estando esta na FNL com as variáveis S e A sendo lineares à direita e a variável B sendo linear à esquerda.
Lema 1. (BEDREGAL, 2011) Seja G uma gramática linear. Então existe uma gramática linear ˆG na FNL tal que L(G) = L( ˆG).
O Lema1 como demostrado anteriormente em (BEDREGAL, 2011), garante que sempre podemos ter uma gramática ˆG na FNL equivalente à gramática linear G. Além da FNL uma gramática linear pode estar também na Forma Normal Linear Forte(FNLF) introduzida em (BEDREGAL, 2011), que é aquela onde os lados direitos das produções são da forma aA ou Aa para algum a ∈ T ∪ {λ} e A ∈ V ∪ {λ}, ou seja, o lado direito das produções tem uma quantidade n de caracteres, tal que n ≤ 2.
Proposição 1. (BEDREGAL, 2011) Seja G uma gramática linear. Existe uma gramática linear ˆG na FNLF tal que L(G) = L( ˆG).
Uma gramática linear G = hV, S, T, P i como dito em (BEDREGAL,2015) é linear
determinística, se todas as produções em P são da forma A → aBu ou A → λ, e se
A → aBu e A → aCv ∈ P , então B = C e u = v. Se G é linear determinística, então L(G) ∈ LLinD, onde LLinD é classe das linguagens lineares determinísticas.
2.5
Autômatos Lineares
Como já mencionando anteriormente Bedregal introduziu respectivamente em (BEDREGAL, 2011; BEDREGAL, 2015) os conceitos de λ-autômatos lineares não-determinísticos e de λ-autômatos lineares não-determinísticos. Tais autômatos são naturais e
38 Capítulo 2. Preliminares
intrínsecos pois, os autômatos introduzidos em (BEDREGAL,2011;BEDREGAL, 2015) não consideram elementos externos ao modelo. Para simplificar a escrita/leitura chama-remos a partir de agora os autômatos definidos por Bedregal em (BEDREGAL, 2011;
BEDREGAL, 2015) apenas de autômatos lineares.
Inicialmente daremos uma definição mais “frouxa” dos autômatos lineares no sentido de que não apresentaremos de início o formalismo algébrico de tais dispositivos. Assim um autômato linear pode ser apresentado como sendo um autômato finito2 (ou máquina de
estados) em que sua arquitetura apresenta o seguinte conjunto de partes constituintes:
A. Uma memória ou fita dividida em células, cada uma das quais capaz de comportar um único símbolo.
B. Dois cabeçotes de leitura, um inicialmente localizado na célula onde se encontra o caractere mais à esquerda da palavra de entrada e o outro cabeçote inicialmente localizado na célula onde se encontra o caractere mais à direita da palavra de entrada. C. Uma unidade de controle que administra o estado atual da máquina e envia os sinais
de ativação para os cabeçotes.
Sobre os cabeçotes de leitura temos que cada um é capaz de ler um único simbolo da fita por vez, após esta leitura o cabeçote muda sua posição atual em direção ao outro cabeçote. O processo de computação em um autômato linear segue a sequência de passos:
1. A unidade de controle, em função do conjunto à qual pertence o estado corrente, envia um sinal para o par cabeçote/fita afim de usar o cabeçote de leitura esquerda ou direita para ler um símbolo da fita;
2. Se o estado atual pertencer ao tipo de estado que ativa o cabeçote esquerdo, então o cabeçote esquerdo lê o símbolo da célula apontada por ele e então em seguida se move uma célula para a direita, agora se o estado atual pertencer ao tipo de estado que ativa o cabeçote direito, então o cabeçote direito lê o símbolo da célula apontada por ele e então em seguida se move uma célula para a esquerda;
3. A unidade de controle então muda o estado corrente, seguindo uma escolha não-determinística, para um estado de um conjunto de possíveis estados.
Temos que o processo computação em um autômato linear pára quando um cabeçote atinge ou se posiciona na célula em que o outro cabeçote está, caso o estado atual da
2 Autômatos Finitos são os dispositivos mais simples de computação, para mais detalhes recomendamos
a leitura de um das seguintes obras (BEDREGAL; ACIÓLY; LYRA,2010;HOPCROFT; MOTWANI;
2.5. Autômatos Lineares 39
autômato linear após esse movimento seja um estado previamente classificado como estado final ou de aceitação dizemos então que a máquina pára e reconhece/aceita a entrada. Visualmente a Figura3 representa a “arquitetura” de um autômato linear.
y1 . . . yi . . . yn Fita q0 p0 q1 p1 q2 p2 q3 p3 · · · ... qn pn Unidade de Controle q → ← p Cabeçotes de Leitura
Sinal de ativação para os cabeçotes.
Figura 3 – Autômato linear, adaptado de (BEDREGAL, 2011).
Agora que fomos apresentados aos autômatos lineares, suas partes constituintes e ao modo de funcionamento do mesmo, podemos então defini-los formalmente.
Definição 15. (BEDREGAL,2011) Um Autômato Linear é uma sêxtupla M = hQ1, Q2, Σ,
I, F, δi, onde:
• Q1 e Q2 são conjuntos finitos disjuntos de estados;
• Σ é um conjunto finito de símbolos de entrada, chamado alfabeto; • I ⊆ (Q1∪ Q2) é um conjunto finito de estados iniciais;
• F ⊆ (Q1∪ Q2) é um conjunto finito de estados finais e
• δ : (Q1∪ Q2) × (Σ ∪ {λ}) → P(Q1∪ Q2) é uma função de transição.
Sobre os conjuntos de estados tem-se que, o conjunto Q1 é aquele cujos estados
ativam o cabeçote de leitura esquerdo, já os estados do conjunto Q2 são aqueles que ativam
o cabeçote de leitura direito. Uma descrição instantânea (DI) de um autômato linear como descrito em (BEDREGAL, 2011) deve registrar: o estado corrente, o que resta ler na fita de entrada e qual cabeçote está ativo. Assim, uma DI é um par (q, w) ∈ (Q1∪ Q2) × Σ∗,
significando que resta ainda ler w na fita e que o estado atual é q. O cabeçote é deduzido a partir do estado atual.
Usamos o símbolo ` para denotar um movimento válido de uma DI a outra DI. Assim, para cada q ∈ Q1, q0 ∈ Q1 ∪ Q2, p ∈ Q2, w ∈ Σ∗ e a ∈ Σ ∪ {λ} temos que
40 Capítulo 2. Preliminares
(q, aw) ` (q0, w) é possível se, e somente se, q0 ∈ δ(q, a), de forma análoga (p, wa) ` (q0, w)
é possível se, e somente se, q0 ∈ δ(p, a). Assim `∗ representa o fecho reflexivo e transitivo
de `, ou seja, `∗ representa uma quantidade arbitrária de movimentos válidos.
Exemplo 15. Seja M = h{q0, q1, q2, q3}, {p0, p1, p2}, {a, r}, {q0}, {q2}, δi um autômato
linear com as seguintes transições:
δ(q0, a) = {p0}, δ(q0, λ) = q3, δ(q0, r) = q3 δ(p0, a) = {q1}, δ(p0, r) = q3, δ(p0, λ) = q3 δ(q1, r) = {p1}, δ(q1, a) = q3, δ(q1, λ) = q3 δ(p1, r) = {q2}, δ(p1, a) = q3, δ(p1, λ) = q3 δ(q2, a) = {q2}, δ(q2, r) = q3, δ(q2, λ) = q3 δ(q3, a) = {q3}, δ(q3, r) = q3, δ(q3, λ) = q3
E seja w = “arara” a palavra de entrada contida na fita, podemos visualizar o comporta-mento da máquina durante a computação com a seguinte sequência de DI’s: (q0, arara) `
(p0, rara) ` (q1, rar) ` (p1, ar) ` (q2, a) ` (q2, λ), como q2 ∈ F , isto é, q2 é um estado
final, dizemos que M reconhece (ou aceita) w.
Note que um autômato linear por ser um tipo de autômato não-determinístico3 permite que uma determinada DI de origem tenha duas ou mais DI’s de destino. Além disto, um autômato linear também permite que existam λ-movimentos, ou seja, a mudança de uma DI para outra sem que haja mudança no componente w da DI, isto é, nenhum dos cabeçote é movimentado neste caso. Porém, a existência de λ-movimentos como demostrado em (BEDREGAL, 2011) não atribui mais poder computacional ao autômato.
q0 start p0 q1 q3 p1 q2 a a r r r, λ a, λ r, λ a, λ r, λ a, r, λ a
Figura 4 – Diagrama de transição para o autômato M do Exemplo15.
A Figura 4 representa o diagrama de transição para um autômato linear. Note que diferentemente dos diagramas de transição para os autômatos finitos convencionais, nos diagramas de transição para autômatos lineares os estados são desenhados de duas formas distintas. Os estados pertencentes a Q1 são desenhados como círculos e os estados
pertencentes a Q2 como quadrados.
3 Um autômato não-determinismo é aquele em que, para um determinado estado x ∈ Q e um símbolo
2.5. Autômatos Lineares 41
A linguagem aceita/reconhecida por um autômato linear é o conjunto de todas as palavras w que partindo de um estado inicial atingem um estado final e a computação pará. Denotamos tal conjunto por L(M ), formalmente temos que:
L(M ) = {w ∈ Σ∗ : (q, w) `∗ (q0, λ) para algum q ∈ I, q0 ∈ F } (2.3) A relação entre um autômato linear e uma gramática é sustentada pelo Teorema
1 a seguir, tal teorema demostrado em (BEDREGAL, 2011), nós garante que a partir de qualquer autômato linear sempre podemos construir uma gramática linear que gera a mesma linguagem que é aceita pelo autômato.
Teorema 1. (BEDREGAL, 2011) Seja M = hQ1, Q2, Σ, I, F, δi um autômato linear.
Então existe uma gramática linear G tal que L(M ) = L(G).
Esta relação entre os autômatos lineares e as gramáticas lineares torna-se ainda mais forte com a “volta” estabelecida no Teorema 2.
Teorema 2. (BEDREGAL, 2011) Seja G = hV, T, S, P i uma gramática linear. Então existe um autômato linear M = hQ1, Q2, Σ, I, F, δi tal que L(G) = L(M ).
Imediatamente como consequência Teoremas 1e 2 podemos enunciar o corolário a seguir.
Corolário 1. A linguagem L é linear, se e somente se existe um automato linear M tal
que L(M ) = L
Assim como para os demais tipos de autômatos, um autômato linear é dito determi-nístico se para todo a ∈ Σ e q ∈ Q1∪ Q2 tem-se que |δ(q, a)| ≤ 1, a linguagem aceita por
um autômato linear determinístico M é exatamente uma linguagem linear determinística (BEDREGAL,2015).
Teorema 3. (BEDREGAL, 2015) Se L ∈ LLinD. Então existe um autômato linear
determinístico M tal que L(M ) = L.
Por outro lado, com dito em (BEDREGAL, 2015), a linguagem L = {anbn: n ≥
1} ∪ {ancn : n ≥ 1} /∈ LLinD, isto é, não existe uma gramática linear determinística capaz
de gerar L. No entanto, o autômato linear da Figura5a seguir é claramente determinístico e reconhece L, evidenciando que a classe LLinD, isto é a classe das linguagens geradas
por gramática lineares determinística é conjunto próprio da classe das linguagens lineares reconhecidas por autômatos lineares determinísticos LLinAD. Assim podemos redesenhar
o diagrama da hierarquia estendida de Chomsky como exposta na Figura 6, levando em consideração as classes LLinD eLLinAD.
42 Capítulo 2. Preliminares q0 start p0 q1 q2 p1 p2 a b a b c a c
Figura 5 – Autômato que reconhece L = {anbn: n ≥ 1} ∪ {ancn : n ≥ 1}.
LRE LSC LLC LLin LLinAD LLinD LReg
Figura 6 – Hierarquia estendida, contendo LLin, LLinAD e LLinD.
2.6
Considerações Finais
Neste capítulo nós introduzimos ao leitor todo o conhecimento básico necessário para se prosseguir neste trabalho, começamos por apresentar os conceitos fundamentais da teoria fuzzy (LEE; ZADEH,1969) em seguida, apresentamos as t-normas e as t-conormas. Dado que este trabalho é um trabalho dentro da computação teórica mais especificamente no domínio da teoria das linguagens formais e autômatos, fizemos as devidas introdução (linguagens, gramáticas e autômatos) para situarmos o leitor dentro deste universo.
Neste capítulo com relação a teoria das linguagens formais e autômatos nós demos um enfoque particular para as linguagens lineares (AMAR; PUTZOLU,1964), em especial destacamos as formas normais lineares apresentadas em (BEDREGAL, 2011) e aos λ-autômatos lineares não-determinísticos (BEDREGAL,2011;BEDREGAL,2015) que serão de grande importância neste trabalho.
2.6. Considerações Finais 43
De posse desses conhecimentos o leitor pode seguir então ao próximo capítulo onde nós detalharemos o estado atual das linguagens e gramática fuzzy, em especial a classe das linguagens linear fuzzy e gramática lineares fuzzy (CHAUDHARI; KOMEJWAR, 2011). Em seguida, apresentaremos ao leitor os autômatos fuzzy.
45
3 Linguagens,
Gramáticas
e
Autômatos
Fuzzy
Neste Capítulo será apresentado o estado atual e as definições do conceito de linguagens fuzzy além disso, também serão expostos alguns estudos teóricos e aplicados deste assunto. Na Seção3.2 discutiremos o estado atual da arte em relação aos estudos das gramáticas fuzzy apresentado algumas referências de estudos das mesmas e apresentaremos ao leitor a classe das gramáticas lineares fuzzy, já na Seção 3.3 serão apresentadas as definições a respeito das máquinas de estado fuzzy, ou simplesmente autômatos fuzzy. Por fim iremos traçar o paralelo entre os três conceitos: as linguagens, gramáticas e autômatos
fuzzy.
3.1
Linguagens Fuzzy
Enquanto que nas linguagens formais há uma garantia de um alto nível de precisão, nas linguagens naturais há alto nível de imprecisão (MORDESON; MALIK, 2002), então na tentativa de diminuir a distância entre as linguagens formais e as linguagens naturais, duas extensões das linguagens formais foram propostas.
A primeira extensão corresponde à classe da linguagens estocásticas (FU; HUANG,
1972; FU; LI, 1969; TURAKAINEN, 1968), ou como também são chamadas linguagens probabilísticas. Esta extensão introduziu a noção de aleatoriedade na estrutura das linguagens formais. A segunda proposta de extensão foi apresentada por Lee e Zadeh no trabalho (LEE; ZADEH,1969), neste trabalho eles introduzem a ideia de linguagens fuzzy, em tal extensão é acrescentada a noção de incerteza, nebulosidade ou imprecisão.
Estamos neste trabalho concentrados no estudo das linguagens e gramáticas fuzzy, assim para um leitor interessado em linguagens estocásticas ficam as referências já citadas e também (PAZ,1971) como forma de introdução no assunto. Dito isto continuamos este trabalho definindo formalmente o conceito de linguagem fuzzy com se segue.
Definição 16. (LEE; ZADEH, 1969) Linguagem Fuzzy L, é um conjunto fuzzy sobre Σ∗. Assim L é o conjunto dos pares ordenados.
L = {(α, µL(α)) : α ∈ Σ ∗}
Em seu trabalho Lee e Zadeh também apresentaram pela primeira vez as operações básicas, isto é, a união, intersecção, concatenação e fecho de Kleene sobre as linguagens
46 Capítulo 3. Linguagens, Gramáticas e Autômatos Fuzzy
fuzzy. Estas operações são definidas como se segue.
Definição 17. Sejam L1, L2 linguagens fuzzy quaisquer sobre os alfabetos Σ1 e Σ2, então
definimos as operações de união, intersecção e concatenação, denotadas respectivamente por L1∪ L2, L1∩ L2 e L1L2, como os seguintes conjuntos fuzzy.
L1∪ L2 = {(α, φ(α)) : α ∈ Σ∗1∪ Σ ∗ 2} (3.1) L1∩ L2 = {(α, π(α)) : α ∈ Σ∗1∪ Σ ∗ 2} (3.2) L1L2 = {(α, τ (α)) : α = uv, u ∈ Σ∗1, v ∈ Σ ∗ 2} (3.3) Onde: φ(α) = max(µL1(α), µL2(α)) π(α) = min(µL1(α), µL2(α)) τ (α) = _ u
{min(µL1(u), µL2(v)) : α = uv}
Já para a operação do fecho de Kleene (ou fecho estrela) temos que este é definido com se segue.
Definição 18. Seja L uma linguagem fuzzy sobre o alfabeto Σ, então o fecho de Kleene
sobre L, denotado por L∗ e dado por:
L∗ = Lλ∪ L ∪ LL ∪ LLL ∪ LLLL ∪ · · · (3.4)
Onde Lλ é linguagem a vazia, isto é, Lλ = {(w, σ) : w = λ} (LEE; ZADEH, 1969) .
Outra operação comum nos estudados de linguagens formais é a operação de linguagem reversa, no entanto, Lee e Zadeh não trataram desta operação em (LEE; ZADEH, 1969), assim é necessário definir está operação, fazemos isto a seguir.
Definição 19. Seja L uma linguagem fuzzy. Então a linguagem reversa fuzzy de L
denotado por LR, é o conjunto fuzzy definido como:
LR= {(xr, σ) : (x, σ) ∈ L} (3.5)
Onde xr é a reversa da palavra x, como definido em (BEDREGAL; ACIÓLY; LYRA,
2010).
Por sua vez, nos trabalhos (JIN; LI; LI, 2013; ASVELD, 2003) foram estudados os aspectos algébricos das operações sobre as linguagens fuzzy. Além dos estudos teóricos as linguagens fuzzy despertam interesses em varias áreas de aplicação. Exemplo disso são os
3.2. Gramáticas Fuzzy 47
trabalhos como (AVDAGIC; BOSKOVIC; DELIC, 2008) em que é estudado a aplicação das linguagens fuzzy na teoria dos códigos, já em (MALAVIYA; PETERS,2000; SURESH; ARUMUGAM,2007) é estudado aplicações em reconhecimento de escrita e em (BLANCO; DELGADO; PEGALAJAR, 1998) é visto aplicações em técnicas de inferência gramatical. Como mostrado na Seção 2.3 toda linguagem formal contida na hierarquia de Chomsky está relacionada diretamente com uma gramática que a gera e com um formalismo em forma de máquina de estados (ou autômato) que é capaz de realizar computação sobre tal linguagem, o mesmo ocorre para as linguagens fuzzy como veremos mais adiante.
3.2
Gramáticas Fuzzy
Assim como as linguagens fuzzy já mencionadas na Seção anterior, as gramáticas
fuzzy foram introduzidas no trabalho (LEE; ZADEH, 1969). Como dito em (MORDESON; MALIK,2002), uma gramática fuzzy é um conjunto de regras capazes de gerar os elementos de um conjunto fuzzy.
As gramáticas fuzzy tem no mínimo duas vertentes bem conhecidas na literatura, aquela apresentada por Lee e Zadeh (LEE; ZADEH,1969) e a definição exposta no trabalho (CHAUDHARI; KOMEJWAR, 2011). A diferença fundamental entre tais definições é que,
enquanto para Lee e Zadeh o conjunto de símbolos iniciais da gramática é unitário para Chaudhari e Komejwar o conjunto de símbolos iniciais da gramática é um conjunto fuzzy. Neste trabalho adotamos a visão de Chaudhari e Komejwar definimos gramatica fuzzy como se segue.
Definição 20. Uma gramática fuzzy é uma quadrupla G = hV, T, ˆS, ˆP i onde:
• V e T são conjuntos disjuntos não vazios, onde V é o conjunto de variáveis e T é o
conjunto de símbolos terminais;
• ˆS : V → [0, 1] é um conjunto fuzzy de variáveis iniciais da gramática e
• ˆP : (V ∪ T )+× (V ∪ T )∗ → [0, 1] é um conjunto fuzzy de regras de produções.
Assim como no trabalho (CHAUDHARI; KOMEJWAR, 2011) para simplificar a escrita nos denotamos P (α, β) = σ, como sendo α −→ β, para algum σ ∈ [0, 1] eσ
α, β ∈ (V ∪ T )∗.
Exemplo 16. A gramática G = h{A, B, X}, {a, b}, {(X, 0.9)}, ˆP i é uma Gramática Fuzzy com o seguinte conjunto fuzzy P de produções: