BRPI0419214B1 - Sistema e método de correspondência de sequência - Google Patents

Sistema e método de correspondência de sequência Download PDF

Info

Publication number
BRPI0419214B1
BRPI0419214B1 BRPI0419214-1A BRPI0419214A BRPI0419214B1 BR PI0419214 B1 BRPI0419214 B1 BR PI0419214B1 BR PI0419214 A BRPI0419214 A BR PI0419214A BR PI0419214 B1 BRPI0419214 B1 BR PI0419214B1
Authority
BR
Brazil
Prior art keywords
state
transition
process flow
nfa
character
Prior art date
Application number
BRPI0419214-1A
Other languages
English (en)
Inventor
Mitsunori Kori
Original Assignee
Mitsubishi Denki Kabushiki Kaisha
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Denki Kabushiki Kaisha filed Critical Mitsubishi Denki Kabushiki Kaisha
Publication of BRPI0419214A publication Critical patent/BRPI0419214A/pt
Publication of BRPI0419214B1 publication Critical patent/BRPI0419214B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Document Processing Apparatus (AREA)

Abstract

sistema de correspondência de seqüência e programa relativo ao mesmo. um sistema de correspondência de seqüência que compreende um gerador de tabela de transição para gerar uma tabela de transição de estado com base em uma condição de correspondência descrita por uma expressão regular e um autômato para incluir um estado que faz uma transição de acordo com a tabela de transição de estado gerada pelo gerador de tabela de transição, se não existe, na tabela de transição de estado gerada na condição de correspondência, nenhum estado de destino da transição a seguir com relação a um estado corrente e tuple de caracteres de entrada, o autômato faz uma transição para o seu estado inicial sem proceder com a leitura do caractere de entrada. além disso, sistema de correspondência de seqüência que compreende um gerador de tabela de transição para gerar uma tabela de transição de estado com base em uma condição de correspondência descrita por uma expressão regular e um autômato que faz uma transição de acordo com a tabela de transição de estado gerada pelo gerador de tabela de transição, se não existe nenhum estado de destino da transição a seguir com relação a um estado corrente e tuple de caracteres de entrada na tabela de transição de estado gerada na condição de correspondência, então o gerador de tabela de transição de estado determina um caractere de exclusão com base no qual o autômato faz urna transição para um estado pré-determinado sem proceder com a leitura do caractere de entrada para gerar uma tabela de transição de estado.

Description

Campo Técnico
[001] A presente invenção diz respeito a tecnologias para correspondência de caracteres em uma frase com um padrão designado baseado em expressões regulares.
Técnica Anterior
[002] Nos últimos anos, a digitação de documento tem estado em progresso em uma variedade de áreas, conduzindo assim a pedidos para um método eficaz de pesquisa de documentos. Um método de busca inclui aquele em que a correspondência de caracteres em um documento com um padrão designado com base em expressões regulares. As expressões regulares, que são definidas em, por exemplo, documento 1, são notação que representa uma classe de línguas como referido como linguagem regular. É conhecido que na técnica uma técnica de correspondência de sequência, em que a expressões regulares são usadas como condições de pesquisa, é baseada em um DFA (autômato finito determinístico).
[003] A técnica de correspondência de sequência pelo DFA é baseada em um modelo de uma máquina de transição de estado (um autômato). A máquina de transição de estado incorpora um estado e uma função de transição de estado. A função de t transição de estado é uma função que determina o próximo estado com relação a um estado atual e caracteres de entrada. Na técnica de correspondência de sequência, usando o DFA, a máquina de transição de estado lê texto de entrada 5 em uma base caractere por caractere, e faz a transição para o próximo estado obtido pela aplicação da função de transição de estado e tuple caracteres de entrada e estado corrente. Este método permite que a correspondência seja realizada através da leitura do texto apenas uma vez, sem 10 voltar atrás, permitindo assim que alta velocidade de correspondência de sequência seja realizada. Quando a correspondência baseada em uma pluralidade de condições é realizada, um autômato finito (máquina de Moore), com saída também é empregada de tal forma que o DFA é expandido e a 15 saída é definida para cada estado, a fim de distinguir as condições sob as quais a correspondência foi realizada com sucesso.
Enquanto uma função de transição de estado DFA é determinada por uma expressão regular que deve ser uma 20 condição de correspondência, existe um procedimento que temporariamente converte uma expressão regular em um NFA (autômato não determinístico finito) e, em seguida, o NFA, por sua vez, no DFA, que é bem conhecido e estabelecido em, por exemplo, no documento 1. A técnica de correspondência de sequência pelo DFA tem um recurso que fornece alta velocidade de processamento, que, em contrapartida, tem levantado um inconveniente em que uma tabela de transição de estado para alcançar a função de transição de estado DFA tende a ser enorme.
A condição de correspondência mostrada na figura 52, que é divulgada no documento de patente 3, é tomada como um exemplo. Mostrado na figura 53 são, em um autômato finito com saída convencional, uma função falhada e uma tabela de transição de estado que são geradas a partir da condição de correspondência mostrada na figura 52. Desta forma, a tabela de transição de estado, que retém 90 tuples diferentes com relação ao número de estados de 18 e cinco tipos de caracter, tem de ser gerada.
Como um método para solucionar tais problemas, o documento de patente 1 e o documento de patente 2 ilustram um método de redução de capacidade de memória na tabela de transição de estado, através da eliminação, após a conversão para o DFA da tabela de transição de estado baseada na técnica AC (Aho-Corasick) , a partir da tabela de transição de estado, a transição opera para um estado inicial e seu próximo estado. A técnica de correspondência de sequências mostrada no documento de patente 1 e no documento de patente 2, no entanto, não permite uma expressão regular geral a ser um alvo de correspondência por causa do alvo de correspondência ser limitado a palavras chave de seqüência fixas.
Ao definir a função falhada no DFA, documento de patente 3 indica também um método de redução da tabela de transição de estado. O método apresentado no documento de patente 3 pode, em alguns casos, resultar em mais um fracasso da transição de um estado em que a transição foi feita uma vez pela função falhada - em outras palavras, a falha de transição em algumas situações reagir em cadeia. Nesse caso, o problema é que há uma necessidade de referências serem repetidamente feitas à função falhada, o que resulta na redução da velocidade de correspondência.
A condição de correspondência mostrada na figura 52, que é divulgada no documento de patente 3, é tomada como um exemplo. Mostrado na figura 54 são a função falhada e a tabela de transição de estado que são geradas a partir da condição de correspondência na figura 52, que é divulgada no documento de patente 3.
Um caso em que a condição de correspondência é mostrada na figura 52 e uma seqüência de entrada consiste em "aac", é tomado como um exemplo.
O método divulgado no documento de patente 3 primeiro inicia um estado para estado 1. Em seguida, um primeiro caractere "a" é lido, o estado faz uma transição para o estado 3, como indicado na coluna do caractere de entrada "a" na linha do estado 1 na tabela de transição de estado. Em seguida, um terceiro caractere "c" ê lido, de forma semelhante, o estado fazendo uma transição do estado 3 para o estado 6. Então, a leitura do terceiro caractere "c" resultada no estado fazer uma transição do estado 6 para o estado 10. Uma vez que, quando um quarto caractere "a" aparece a seguir, no entanto, não existe nenhum destino de transição correspondente ao caractere "a", o estado primeiro faz uma transição para o estado 5 que é o destino de transição quando o estado falha em sua transição para o estado 10. Além do mais, porque o estado 5 não tem destino de transição correspondente ao caractere "a", o estado faz uma transição para estado 2, que é o destino de transição quando o estado falha em sua transição para estado 5. Contudo, o fato de nenhum destino de transição correspondente ao caractere "a" existe no estado 2, faz com que o estado faça uma transição para o estado 1, que é o destino de transição quando o estado falha em sua transição para o estado 2. 0 fato de que no estado 1 existe o estado 3 do destino de transição correspondente ao caractere "a" leva à transição de estado para o estado 3. Como descrito acima, quatro vezes no total de referências para a tabela de transição de estado e suas transições de estado, são feitas em relação a uma quarta entrada de caractere, o que requer um total de sete vezes a transição de estado no que diz respeito a quatro caracteres de entradas. Desta forma, o método de acordo com o documento de patente 3 pode, em alguns casos, repetir falhas nas transições de estado e exigir fazer uma referência a um destino de transição para qualquer falha da transição. Um problema é que, por essa razão, a frequência das referências da tabela de transição de estado aumenta, o que resultada em degradação do desempenho de correspondência. Documento 1: E.J. Hopcroft, D.J. Ullman, "Formal Languages and Their Relation to Automata ", Addison Wesley (1969). Documento de patente 1 Publicação de pedido de patente japonês não examinado 2004-103035 Documento de patente 2 Publicação de pedido de patente japonês não examinado 2004-103034 Documento de patente 3 Publicação de pedido de patente japonês não examinado 2994926 Divulgação da Invenção
Problema que a invenção está a resolver
A presente invenção é dirigida a resolver o problema descrito acima e um objetivo é reduzir a capacidade de memória necessária para armazenar uma tabela de transição de estado com respeito a correspondência de sequência em que expressões regulares são usadas como as condições de correspondência.
Outro objetivo que uma contagem de referência da transição de estado devido a uma falha de transição seja limitada a dois ou menos, por caractere, e degradação de desempenho devido aos repetidas falhas de transição seja impedida, permitindo assim a execução de alta velocidade de correspondência de sequência.
Meios para resolver o problema
Um sistema de correspondência de seqüência associado com a presente invenção compreende um gerador de tabela de transição de estado, que gera uma tabela de transição de estado baseada em condições de correspondência descritas em expressões regulares, assim como um autômato faz uma transição de acordo com a tabela de transição de estado gerada pelo gerador de tabela de transição de estado; Se nenhum destino de transição seguinte em relação a um estado corrente e tulple de caracteres de entrada existem na tabela de transição de estado gerada com base nas condições Ho de correspondência, o autômato faz uma transição de volta ao seu estado inicial, sem proceder a leitura da entrada de caracteres.
Efeitos da Invenção
O sistema de correspondência de sequência associado com a presente invenção compreende uma gerador de tabela de transição de estado, que gera uma tabela de transição de estado baseada em condições de correspondência descritas em expressões regulares, assim como um autômato que faz a transição de acordo com a tabela de transição de estado gerada pelo gerador tabela de transição de estado; se nenhum próximo destino de transição em relação a um estado atual e tuple de caracteres de entrada existe na tabela de transição de estado gerada com base nas condições de correspondência, a capacidade memória necessária para armazenar a tabela de transição de estado pode ser reduzida, de tal forma que o autômato faz uma transição de volta ao seu estado inicial, sem proceder com a leitura dos caracteres de entrada.
Breve Descrição dos Desenhos
A figura 1 é um diagrama explicativo que ilustra a configuração de um sistema de correspondência de seqüência.
A figura 2 é um diagrama explicativo que ilustra a configuração das condições de correspondência 2. A figura 3 é uma vista exemplificativa que ilustra a configuração de uma equação de condição 17.
A figura 4 é um diagrama explicativo que ilustra a configuração de um gerador de tabela de transição de estado 3 . A figura 5 é um diagrama explicativo que ilustra a configuração de um armazenamento de tabela de transição de estado 4.
A figura 6 é um diagrama explicativo que ilustra a configuração de um armazenamento de tabela de saída 5. A figura 7 é um diagrama explicativo que ilustra a configuração de um resultado de correspondência 10.
A figura 8 é um fluxograma que ilustra o funcionamento do sistema de correspondência de seqüência. A figura 9 é um fluxograma que ilustra uma operação de compilação das condições de correspondência.
A figura 10 é um fluxograma que ilustra um procedimento para adicionar uma transição falhada para um estado inicial. A figura 11 é um fluxograma que ilustra um procedimento para adicionar transição falhada para o estado inicial (se não existe nenhum destino de transição do estado inicial baseado em Oquaiquer) .
A figura 12 é um fluxograma que ilustra um procedimento para adicionar transição falhada para o estado inicial (se existe um destino de transição do estado inicial com base em <JqUaiquer) . A figura 13 é um fluxograma que ilustra um procedimento de remoção de uma transição não determinística.
A figura 14 é um fluxograma que ilustra um procedimento para inicializar um estabelecimento de estado.A figura 15 é um fluxograma que ilustra um procedimento para remover a transição não determinística associada com ∑.
A figura 16 ê um fluxograma que ilustra um procedimento para a remoção da transição não determinística associada com σoutro-A figura 17 é um fluxograma que ilustra um processo para gerar um novo estado.
A figura 18 é um fluxograma que ilustra um procedimento para corrigir um transição de estado baseado em σoutro •
A figura 19 é um fluxograma que ilustra um procedimento de remoção de um estado não utilizado. A figura 20 é um fluxograma que ilustra um procedimento de remoção de um estado redundante.
A figura 21 é um fluxograma que ilustra um procedimento de remoção de uma transição de estado redundante. A figura 22 é um fluxograma que ilustra um procedimento para gerar uma tabela de transição de estado e uma tabela de saída.
A figura 23 é um fluxograma que ilustra um processo de correspondência de um documento de entrada. A figura 24 é um diagrama de estado para explicar a substituição de um metacaractere ".n .
A figura 25 é um diagrama de estado para explicar a substituição de um metacaracter "A". A figura 26 é um diagrama de estado para explicar um NFA incluindo ε transições para o estado inicial.
A figura 27 é um diagrama de estado para explicar omissão das ε transições. A figura 2 8 é um diagrama de estado para explicar um caso em que a transição falhada precisa ser acrescentada.
A figura 29 é um diagrama de estado para explicar a adição da transição falhada. A figura 30 é um diagrama de estado para explicar um caso em que existe uma transição do estado inicial baseada em Oquaiguer .
A figura 31 é um diagrama de estado para explicar a adição da transição falhada no caso em que existe a transição para o estado inicial baseada em oquaiquer ■
A figura 32 é um diagrama de estado para explicar a remoção de uma transição não determinista (antes da remoção). A figura 33 é um diagrama de estado para explicar a remoção da transição não determinista (após remoção).
A figura 34 é um diagrama de estado para explicar a remoção de uma outra transição não determinista (antes da remoção). A figura 35 é um diagrama de estado para explicar a remoção de outra transição não deterministica (após remoção).
A figura 36 é um diagrama de estado para explicar a remoção de ainda outra transição não determinística (antes da remoção). A figura 37 é um diagrama de estado para explicar a remoção de ainda outra transição não determinística (após remoção).
A figura 38 é um diagrama de estado para explicar a remoção de mais uma transição não determinística (antes da remoção). A figura 39 é um diagrama de estado para explicar a remoção de mais uma transição não determinística (após remoção).
A figura 40 é um diagrama de estado para explicar a remoção de ainda outra transição não determinística (antes da remoção). A figura 41 é um diagrama de estado para explicar a remoção de ainda outra transição não determinística (após remoção).
A figura 42 é um diagrama de estado para explicar a remoção de transição de estado redundante. A figura 43 é um diagrama de estado para explicar a fusão de estados redundantes.
A figura 44 é um diagrama explicativo que ilustra a configuração de uma condição de correspondência. A figura 45 é um diagrama explicativo que ilustra a configuração de uma tabela de transição de estado.
A figura 46 é um diagrama explicativo que ilustra uma tabela de saída. A figura 47 é um diagrama explicativo que ilustra um exemplo de operação.
A figura 48 é um diagrama explicativo que ilustra a configuração da condição de correspondência. A figura 49 é um diagrama explicativo que ilustra uma configuração da tabela de transição de estado.
A figura 50 é um diagrama explicativo que ilustra a configuração da tabela de saída. A figura 51 é um diagrama explicativo que ilustra um outro exemplo de operação.
A figura 52 mostra uma condição de correspondência como divulgado no documento de patente 3. A figura 53 é uma tabela de transição de estado convencional com saída de acordo com documento de patente 3.
A figura 54 é uma tabela de transição de estado convencional e tabela de saída de acordo com documento de patente 3. Referências Numéricas 1 - Sistema de correspondência de sequência 2 - Condições de correspondência 3 - gerador de tabela de transição de estado 4 - Armazenamento de tabela de transição de estado 5 - Armazenamento de tabela de saída 6 - Documento de entrada 7 - leitura de caractere de entrada 8 - Autômato SDFA 9 - Armazenamento de estado 10 - Resultado de correspondência 11 - Transições de estado 12 - Descrições de saída 13 - Estado atual 14 - Caracteres de entrada 15 - Próximo estado 16 - Número de condição 17 - Equação de condição 18 - Descrição de condição 21 - Controle de geração de tabela de transição de estado 22 - Conjunto de estado NFA 23 - Conjunto de transição de estado NFA 24 - Conjunto de descrição de estado NFA 25 - Conjunto de estado 26 - Conjunto de transição de estado 27 - Conjunto de descrição de saída 31 - Calculadora de valor hash 32 - Valor hash 33 - Ponteiro de hash de transição de estado 34 ~ Cadeia de hash de transição de estado 35 - Tabela de hash de transição de estado 36 - Comparador 41 - índice de número de condição 42 - Cadeia de número de condição Melhor Modo de Realização da Invenção Concretização 1.
A figura 1 é um diagrama explicativo que ilustra a configuração de um sistema de correspondência de seqüência.
Fazendo referência à figura 1, um sistema de correspondência de seqüência 1, que é um sistema na presente invenção para combinar uma seqüência contra uma expressão regular, entregar saída como um resultado de correspondência 10, quanto a se algumas condições de correspondência 2 satisfatórias estão contidas em um documento de entrada 6. As condições de correspondência 2 descrevem condições de correspondência de seqüência, sendo introduzidas no sistema de correspondência de seqüências 1. O gerador de transição de estado 3 gera a partir das condições de correspondência 2 transições de estado 11 e descrições de saída 12, entregando as mesmas a um armazenamento de tabela de transição de estado 4 e um armazenamento de tabela de saída 5, respectivamente. O armazenamento de transição de estado mantém um tuple de estado de transição 11. O armazenamento de tabela de saída 5 mantém as descrições de saída 12. O documento de entrada 6 é um meta documento que está para ser acompanhado. Um leitor de caractere de entrada 7 extrai caracteres, um a um, contidos no documento de entrada 6, envia os mesmos como caracteres de entrada 14, para um autômato SDFA 8. 0 autômato SDFA 8 armazena um estado atual 13 em uma memória de estado 9, recebendo caracteres de entrada 14 do leitor de caracteres de entrada 7. Ao fazer referências ao armazenamento de tabela de transição de estado 4 e ao armazenamento de tabela de saída 5, o autômato 8 renova o estado atual 13 armazenada na memória de estado 9 e libera o resultado de correspondência 10. A memória de estado 9 armazena um estado retido dentro do autômato SDFA 8. 0 número de referência 10 apresenta o resultado de correspondência. O número de referência 11 é a transição de estado, sendo um curso de estado - 13, caracteres de entradas - 14 e tuple de estado próximo - 15. A referência numérica 12, que é a descrição de saída, é um estado corrente 13 e o tuple de número de condição 16 tuple. 0 número de referência 13 é o estado atual. O número de referência 14, a entrada de caracteres. O número de referência 15, o próximo estado. O número de referêncialG, um número de condição.
A figura 2 é um diagrama explicativo que ilustra a configuração das condições de correspondência 2 da presente invenção. Referindo-se à figura, uma equação de condição 17 é uma condição individual que configura as condições de correspondência 2, em que uma ou uma pluralidade de tais equações de condição 17 está contida.
A figura 3 é um diagrama que ilustra a configuração da equação de condição 17 na presente invenção. A equação de condição 17 é configurada pelo número de condição 16, que é um número exclusivo para distinguir a equação de condição, e uma descrição de condição 18, que denota as condições de correspondência descritas na expressão regular.
A figura 4 é um diagrama que ilustra a configuração de uma condição de correspondência 3 na presente invenção. Referindo-se à figura, um controle de geração de tabela de transição de estado 21 controla um procedimento operacional de geração de uma tabela de transição de estado. Um conjunto de estado NFA 22, um conjunto de transição de estado NFA 23, um conjunto de descrição de saída NFA 24, um conjunto de estado 25, um conjunto de transição de saída 26, e um conjunto de descrição de estado 2 7 são dados aos quais o controle de geração de tabela de transição de estado 21 faz referência.
A figura 5 é um diagrama ilustra um exemplo de uma configuração do armazenamento da tabela de transição de estado 4 na presente invenção. Referindo-se à numeral de referência 31 representa uma calculadora de valor hash, que calcula um valor hash 32 do estado atual 13 e os caracteres de entrada 14. O valor hash 32 é um valor calculado usando a calculadora de valor hash 31. Um ponteiro hash de transição de estado 33 é uma tabela que armazena uma pluralidade de ponteiros de uma cadeia hash de transição de estado 34. A cadeia hash de transição de estado 34 é um ponteiro, estado atual 13, caracteres de entradas 14 e tuple de próximo estado 15 tuple para o mesmo. A tabela hash de transição de estado 35 é uma estrutura de dados que é constituída de ponteiro hash de transição de estado 33 e da cadeia hash de transição de estado 34. Um comparador 36 compara um tuple de um estado atual 13a e os caracteres de entrada 14 a introduzidos de fora, com aqueles de um estado atual 13b e caracteres de entrada 14b armazenados na tabela hash de transição de estado 35, para liberar o próximo estado.
A figura 6 é um diagrama que ilustra uma configuração do armazenamento de tabela de saída 5, na presente invenção. Um índice de número de condição 41 armazena uma pluralidade de ponteiros para umacadeia de número de condição. A cadeia de número de condição 42 é um ponteiro e o tuple de número de condição 16 conseqüentemente.
A figura 7 é um diagrama que ilustra um exemplo do resultado de correspondência 10 na presente invenção. O resultado de correspondência 10 inclui o número de condição 16, por meio do qual o documento de entrada 6 foi correspondido com sucesso.
Antes de explicações sobre o funcionamento do sistema do presente invenção, termos e símbolos que são empregados no seguinte explicação serão descritos a seguir.
Como está definido no documento 1 e semelhantes, um autômato determinístico finito bem conhecido com saída é dada por um tuple de
Figure img0001
, onde Q é um conjunto de estado; Z é um alfabeto de entrada, incluindo um caractere vazio ε; Δ é um alfabeto de saída, ô, uma função de transição
Figure img0002
, uma função de saída
Figure img0003
e qo é um estado inicial. O autômato SDFA 8 da presente invenção é dado por um tuple de
Figure img0004
. Aqui,. Qs é o conjunto de estado 25, correspondente ao conjunto de estado Q do autômato finito determinístico convencional com saída.
O símbolo Δs, que é um alfabeto de saída, é um conjunto de conjuntos de tais número de condição 16 da concretização.
O símbolo Ôs é uma função de transição de estado a ser implementada pelo armazenamento de tabela de transição de estado 4; quando o estado atual 13 é qs/ e os caracteres de entrada 14 são crs, o próximo estado 15 revela-se qd, que é representado como δs(qs, <ys) = qd aqui a seguir.
O símbolo q0 é o estado inicial, o que significa o mesmo que no autômato finito determinístico bem conhecido com saída.
O símbolo ∑s é um alfabeto de entrada estendido, em que um caractere arbitrário aquaiquer e um caractere de exclusão σoutro são adicionados ao alfabeto de entrada ∑ no autômato finito convencional com saída, ou seja, é representado que
Figure img0005
Além disso, quando δs(qs, crs) = qd, se as transições de estado 11 são atribuídas como t, em seguida, é representado que t = trans (qs, qd, <rs) .
Um conjunto de transições de estado 11 em que o próximo estado 15 existe com relação a um caractere de entrada 14 e tuple de estado atual 13, é referido como o conjunto de transição de estado 26, sendo representado como T. Além disso, para a transição de estado t = trans(qs, qd, as) ) , qs, qd, cs são referidos como o ponto de partida,o ponto final, e um caractere de transição, respectivamente. Além disso, a função para dar o ponto de partida da transição de estado t é referida como Source, o ponto final, Destination e o caractere de transição, Char. Cada um deles é representado como qs = Source(t) , qd Destination (t) , e os = Char(t) , e dado que, quando ^s (qs) -r, a descrição de saída é d, é representada como d = desc (qs, r) .
Um conjunto de tais descrições de saída 12, que em relação ao estado atual 13 um alfabeto de saída não está vazio, é referido como o conjunto de descrição de saída 27, sendo representado como D. Com relação à descrição de saída d - desc (qs/ r) , qs é referido como um estado de saída; r, um resultado de saída. Além disso, uma função que dá o estado da saída da descrição de saída d é referido como estado e uma função que permite obter o resultado da saída, como resultado, e cada um deles é representado como qs= State (d) e r = Result(d), respectivamente.
Um NFA, que é gerado no processo de gerar o autômato SDFA 8 na presente invenção, é representado por um tuple de
Figure img0006
Aqui, Q(WFA) representa o conjunto de estado NFA 22, o conjunto de estado 25 transforma-se em um conjunto de estados NFA, isto é, quando o conjunto de estado 25 é representado como Q, existe uma relação que mantém Q = 2 Q( NFA) • A fim de distinguir aqui a seguir um estado NFA de um estado, o estado DFA é representado como q(NFA) e o estado inicial de NFA, como q0(NFA)-
O símbolo
Figure img0007
que é uma função de estado transitório de NFA, é uma função de um conjunto em um caso em que, no tocante aos caracteres de entrada 14, o autômato faz uma transição para um próximo estado baseado em os quando o estado NFA atual 13 é q(NFA) •
O símbolo
Figure img0008
é uma função da saída de NFA, e quando o estado NFA atual 13 é q(NFA) > o fato de que o alfabeto de saída se transforma em r e Δs é representado COmO
Figure img0009
0 símbolo Δs é um conjunto de tais números de condições 16, e ∑s é o alfabeto de entrada estendido, ambos os quais significam o mesmo que aqueles no autômato SDFA da presente invenção.
No que se refere ao estado NFA, a sua transição é definida da seguinte forma: quando o estado NFA qd(NFA) tem uma relação de
Figure img0010
z a transição de estado NFA 32 é representada por
Figure img0011
. Um conjunto de transição de estado NFA é referido como um conjunto de transição de estado NFA, sendo representado como T(NFA) . Da mesma forma, no que diz respeito à transição de estado
Figure img0012
é referido como o ponto de partida; qd(NFA) , como o ponto final, e os, como o caractere de transição. Além disso, uma função que permite obter o ponto de partida da transição de estado T(NFA) é referida como Source; o ponto final, como Destination; e o caractere de transiçãoo, como Char. Cada um deles é representado como
Figure img0013
Figure img0014
Um estado NFA qs(NFA) e tuple r do alfabeto de saída é referido como descrição de saída NFA. Tendo em conta que, quando
Figure img0015
, a descrição de saída 34 é atribuída como d(NFA) = desc (qs(NFA), r) .
Um conjunto de descrições de saída em que um alfabeto de saída p não está vazio com relação ao estado NFA 13, é referido como o conjunto de descrição de saída NFA 24, sendo representado como D(NFA) . Para a descrição da saída d(NFA) = desc (q<NFA), r) , q(NFA) θ referido como um estado de saída; r, um resultado de saída. Além disso, uma função que permite obter o estado de saída da descrição de saída d é referida como State; e uma função que permite obter o resultado de saída, como Result; e cada um deles é representado por q{NFA) = State (d(NFA)) e r(NFA) Result (d(NFA)) • A descrição até agora completa explicações dos termos e símbolos. A seguir, a operação será descrita.
A figura 8 apresenta o funcionamento do sistema de correspondência de seqüência da presente.
O sistema de correspondência de seqüência 1 da presente invenção primeiro recebe a condições de correspondência 2, para executar o processo para gerar com o gerador de tabela de transição de estado 3 as transições de estado 11 e as descrições de saída 12 - ou seja, um processo de compilação da condição de correspondência (Etapa 51).
Posteriormente, o sistema de correspondência de seqüência 1 recebe o documento de entrada 6, e usando o leitor de caractere de entrada 7 e o autômato SDFA 8, executa seqüencialmente os procedimentos para a liberação do resultado de correspondência 10, enquanto faz referência às transições de estado 11 e às descrições de saída 12 (Etapa S52).
Deve ser notado que, embora nesta concretização um procedimento de documento de entrada correspondente deva ser realizado uma vez por procedimento de compilação das condições de correspondência, a correspondência do documento de entrada pode ser realizada com relação a uma pluralidade de documentos de entrada, usando as transições de estado 11, e as descrições de saída 12, geradas pelo procedimento único da compilação das condições de correspondência.
Em seguida, com referência à figura 9, o processo de compilação das condições de correspondência será descrito.
Para começar, com base em um procedimento de gerar NFA incluindo ε transições, o NFA incluindo ε transições é gerado a partir de uma expressão regular (Etapa S101) .
Posteriormente, através de um procedimento de remover ε transições, as ε transições contidas no NFA (transição de caractere vazio) são removidas (Etapa S102).
Além disso, posteriormente, através de um processo de transição para adicionar estado inicial, a transição é adicionada ao estado inicial durante falha de correspondência (Etapa S103).
Ainda mais tarde, através de um procedimento de remover transição não determinística, a transição não determinística é removida (Etapa S104).
Ainda mais tarde, através de um procedimento de remover estado não utilizado, estados que não foram necessários nos procedimentos descritos até agora são eliminados (Etapa S105).
Ainda mais tarde, através de um procedimento de reduzir número de estados, os estados redundantes e as transições de estado redundantes são suprimidos (Etapa S106).
Ainda mais tarde, através de um procedimento de gerar tabela de transição de estado e tabela de saída, a tabela de transição de estado e a tabela de saída são geradas a partir do conjunto de estado (Etapa S107).
Os procedimentos descritos acima permitem que o procedimento de compilação das condições de correspondência seja executado.
Para o procedimento de gerar NFA incluindo ε transições, descrito na Etapa S101, um procedimento bem conhecido indicado no documento 1, e semelhante, pode ser usado.
A esse respeito, no entanto, conforme ilustrado na figura 24, um metacaracter que representa um caráter arbitrário contido em uma expressão regular é substituído por
Figure img0016
. Aqui, nas figuras 24 a 31, um estado q(NFA) é representado simplesmente como q.
Além disso, um procedimento é adicionado, no qual, como ilustrado na figura 25, um metacaracter "^" que representa um caractere diferente de um determinado conjunto caracteres contidos na expressão regular, é substituído por
Figure img0017
, e, além disso, uma transição de estado de um estado aplicável ao estado inicial q0(NFA) é adicionada.
O procedimento de remover ε transições mostrado na Etapa SI 02 é também implementado, substituindo-se as ε transições (transições de caracteres vazios), por um conjunto de destino de transição - usando um procedimento bem conhecido indicado no documento 1 e semelhante.
Em seguida, referindo-se à figura 10, um processo de adição de transição ao estado inicial na Etapa SI03 será descrito.
Primeiro, se não existe nenhuma transição com base em
Figure img0018
, partir do estado inicial NFA qoCWFA) gerado pela Etapa S102, então, o fluxo de processo avança para a etapa S202. Nos casos diferentes daqueles descritos aqui, o fluxo de processo procede para a Etapa S203 (Etapa S201).
O processo de adição de transição falhada para estado inicial (se não existe nenhuma transição do estado inicial NFA com base em
Figure img0019
) é executado, o fluxo de processo terminando (Etapa S202).
Se, na etapa S201, existe a transição do estado inicial NFA baseado em
Figure img0020
e, em seguida, o procedimento de "adição de transição falhada ao estado inicial (caso exista a transição baseada em
Figure img0021
é executado, o fluxo de processo terminando (Etapa S202).
Deve ser notado que, embora, nesta concretização, o processo é determinada com base na existência ou não de uma transição do estado inicial NFA q0 (NFA) , com base em
Figure img0022
, o processo na Etapa S202 pode ser substituído por aquele na etapa 203. Quando o processo na Etapa S202 é comparado com o da Etapa S203, o intervalo aplicável anterior é limitado a um caso onde "existe a transição do estado inicial, com base em
Figure img0023
, no entanto, o processo anterior pode reduzir ainda mais o número de transições de estado. 0 fato de uma transição do estado inicial baseada em oquaiqUer existe sugere que o cabeçalho de uma expressão regular tornando-se as condições de correspondência é designado com o caráter arbitrário no entanto, na prática, existem poucos casos onde tal designação é feita. Por esta razão, o número de transições de estado na maioria dos casos pode ser reduzido, aplicando-se o processo da etapa S202.
Os procedimentos descritos acima permitem que o procedimento de "adicionar transição falhada ao estado inicia" seja executado.
A seguir, o procedimento de "adicionar transição falhada ao estado inicial (se não existe nenhum destino de transição do estado inicial baseada em
Figure img0024
)”, na etapa S202 será descrito.
Tipicamente, um NFA ou um DFA gue executa uma correspondência de sequência contínua pode implementar, através da adição ε transições de todos os estados para o estado inicial, a correspondência de seqüência de uma posição de caráter arbitrário. A figura 26 mostra um exemplo de acrescentar ε transições ao NFA correspondente a uma expressão regular (a \ b \ c (d / e) ) f. No autômato SDFA da presente invenção, quando uma transição falha em um determinado estado, o autômato retorna ao estado inicial qo sem proceder com a leitura de caracteres de entrada, bem como a transição de estado é feita novamente, o que permite, portanto, omissão das ε transições para o estado inicial qo. Ou seja, a configuração da NFA como mostrado na figura 27 será suficiente, o que pode reduzir bastante o número total de transições de estado. No entanto, quando o autômato pode fazer uma transição do estado inicial q0(KFAj para um estado qi(NFA) com base no caractere de transição o, se existe uma transição de um estado Ç^NFA) com base no caractere de transição o, ou se qualquer caractere de transição <5 cujo ponto de partida é o estado q(NFA) é Qualquer/ o autômato adicionalmente faz uma transição do estado q(NFA) para o estado qi(NFA) com base no caractere de transição o porque uma transição pode ser feita para qi(NFA) com base no caractere de transição o também quando uma transição baseada no caractere de transição o foi bem sucedida. A figura 28 mostra um exemplo de um caso de uma expressão regular (a \ b \ c(d/e)) f. Porque o exemplo na figura 28 mostra que o autômato pode fazer uma transição do estado inicial q0(NFA) para o estado qi(NpA), com base em um caractere de transição a, e uma vez que existe uma transição de um estado q3(NFA) com base no caractere de transição a, o autômato adicionalmente faz uma transição do estado inicial q3 (NFA) para o estado qi(NPA) com base no caractere de transição, como mostrado na figura 29. Embora a transição do estado q3 (NPA), com base no caractere de transição a mostre-se como uma transição de estado não determinística, a transição de estado não determinística é suprimida eventualmente através do processo posterior 9 de "remover transição não determinística". Os procedimentos de "adicionar transição falhada ao estado inicial (caso não exista nenhum destino de transição do estado inicial baseado em Cquaiguer)", e de " adicionar transição falhada para o estado inicial (se existe um destino de transição do estado inicial baseado em σqualquer) " objetivam a execução desse processo.
Com referência à figura 11, o processo de "adição de transição falhada ao estado inicial (se não existe nenhum destino de transição do estado inicial baseada em σqualquer) " / na etapa S202 será descrito.
Para começar, t0(NPA) é atribuído como uma primeira transição de estado cujo ponto de partida é o estado inicial q0 (NPA) da NFA gerado pela Etapa S102, com o fluxo de processo procedendo para a Etapa S302 (Etapa S301).
Após todas as transições de estado t0(NFA) cujos pontos de partida são o estado inicial NFA q0 (NFA) terem sido terminadas, o fluxo de processo termina os procedimentos. Nos casos diferentes daquele descrito aqui, fluxo de processo avança para a etapa 303 (Etapa S302).
O símbolo o é atribuído como Char (t0 (NFA) ) , com o fluxo de processo prosseguindo para a etapa S304 (Etapa S303).
O símbolo q(NFA) atribuído como o estado inicial NFA contido em um conjunto de estados NFA Q(NFA), com o fluxo de processo continuando para a etapa S305 (Etapa S304).
Após todos os estados NFA q(NFA) contidos no conjunto de estados NFA Q(NFA) serem processados, fluxo de processo avança para a etapa S313. Nos casos diferentes daqueles aqui descritos, o fluxo de processo avança para a etapa S306 (Etapa S305).
Se o estado NFA q(NFA) é o estado inicial QOÍNFA) , o fluxo de processo avança para a etapa S306. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S307 (Etapa S306).
O símbolo t (NFA) é atribuído como uma primeira transição de estado NFA cujo ponto de partida é q (NFA), com o fluxo de processo continuando para a etapa S308 (Etapa S307).
Após todas as transições de estado NFA t(NFA) cujos pontos de partida são qCNFA) serem terminadas, o fluxo de processo avança para a etapa S312. Em casos diferentes daqueles aqui descritos, o fluxo de processo avança para a etapa S3 0 9 (Etapa S308) .
Se qualquer uma das
Figure img0025
, e
Figure img0026
, em seguida, o fluxo de processo avança para a etapa S312. Se nenhuma das condições mantém, em seguida, o fluxo de processo avança para a Etapa S311 (Etapa S309) .
Uma transição de estado NFA trans (q(NFA) , Destination(t0(NFA)) , cr) , exceto se contida no conjunto de transição de estado NFA T(NFA) , ê adicionada a Tz com o fluxo de processo avançando para a etapa S311 (Etapa S310).
O símbolo t(NFA) é atribuído como a próxima transição de estado NFA cujo ponto de partida é o estado NFA q(WFA), com o fluxo de processo avançando para a etapa S3 05 (Etapa S311).
Se, na etapa S3 06, o estado NFA q(NFA) é o estado inicial NFA q0(NFA), ou se, na etapa S308, todas as transições de estado NFA t {NPA) cujos pontos de partida são q(WFA) são processadas e, em seguida, o estado NFA q(WFA1 é atribuído como o próximo estado NFA contido no conjunto de estados NFA Q(WFA) , com o fluxo de processo avançando para a etapa S305 (Etapa S312).
Se, na etapa S305, o processamento de todos os estados NFA q(NFA) está encerrado, então t0(NFA) é atribuído como próxima transição de estado NFA cujo ponto de partida é o estado inicial NFA q0 (NPA) , com o fluxo de processo avançando para a etapa S302 (Etapa 2S313).
Os procedimentos descritos acima permitem a execução dos procedimentos de "Adicionar transição falhada ao estado inicial (se não existe nenhum destino de transição do estado inicial σqualquer).”
Em seguida, um procedimento de "adição de transição falhada ao estado inicial na Etapa S2 03 (se existe um destino de transição do estado inicial baseado emoquaiquer) ” será descrito. O objetivo do processo é o mesmo que na etapa S202. Se, como a expressão regular (a I b I c (d I e)f) mostrada na figura 30, há saídas de destino de transição qx(NPA) do estado inicial com base em σqualquer/ uma transição para qi(NFA) também pode ser feita mesmo quando transições com respeito a todos os estados são realizadas,com sucesso. Conseqüentemente, como mostrado na figura 31, as transições para qi(NFA) são adicionadas a todos os estado NFA q(NFA) exceto o estado inicial NFA q0 (NFA) e todos os caracteres de transição o.
Com referência à figura 12, o procedimento de "adicionar transição falhada ao estado inicial (se existe um destino de transição do estado inicial baseado em , σqualquer) na etapa S2 03 será descrito.
Primeiro, t0(NFA) é atribuído como a primeira transição de estado NFA cujo ponto de partida é o estado inicial q0 (NFA) do NFA gerado pela Etapa S102, o fluxo de processo, em seguida, avança para a etapa S352 (Etapa S351).
Se todas as transições de estado t0 (NFA) cujos pontos de partida são o estado inicial NFA Ç[O(NFA) foram finalizadas, então, o fluxo de processo termina o procedimento. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a Etapa S353 (Etapa S352).
O símbolo α é atribuído como Char (t0 (NFA) ) / e o fluxo de processo avança para a etapa S354 (Etapa S353). O símbolo q{NFA) é atribuído como o estado inicial NFA contido no conjunto de estados NFA Q(NFA), e o fluxo de processo avança para a Etapa S355 (Etapa S354).
Se todos os estado iniciais NFA q<NFA) contidos no conjunto de estado NFA Q(NFA) foram processados, em seguida, o fluxo de processo avança para a Etapa S359. Em outros casos diferentes do aqui descrito, o fluxo de processo avança para a etapa S356 (Etapa S355).
Se o estado NFA q(WFA) é o estado inicial q0(NFA), entãoo fluxo de processo avança para a Etapa S356. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa 357 (Etapa S306).
A transição de estado NFA trans (q(NpA), Destination (t0 (NFA) z α) , exceto se contida no conjunto de transiçao de estado NFA T(NFA) / é acrescentada a T, o fluxo de processo, em seguida, procede para a Etapa S355 (Etapa S358) .
Se, na etapa S355, o processamento de todos os estados NFA q (NFA) foi completado, então, to(NFA) θ atribuído como a próxima transição de estado NFA cujo ponto de partida é o estado inicial q0 (NFA), com o fluxo de processo avançando para a Etapa 352 (Etapa S359).
O procedimento acima descrito permite a execução do procedimento de "adicionar transição falhada ao estado inicial (se não existe nenhum destino de transição do estado inicial baseada em σqualquer) . "
Em seguida, um procedimento de "remover transição não determinística" na etapa S104 será descrito. O procedimento elimina a transição não determinista contida no NFA, para gerar a transição determinística, um dos exemplos que é ilustrado na figura 32. Existem qj e q2 para os quais o autômato faz uma transição de um estado qSource com base no caractere de transição a. Nomeadamente, em virtude de serem não determinísticos, os estados de destino de transição são fundidos em um único estado; declarado em uma outra forma, como mostrado na figura 33, a transição de estado é feita para um conj unto soma qn =
Figure img0027
os conjuntos de estado NFA qi e q2 no destino de transição. Embora este procedimento é basicamente o mesmo que o procedimento de geração DFA mostrado no documento 1 e semelhante, na concretização mostrada na figura 34 com relação ao caso incluindo a transição de estado q2 do caractere arbitrário Qualquer e o ponto final da transição de estado qx no caractere de transição a, a transição para o estado ql com base no caractere de exclusão σoutro , bem como uma transição de estado
Figure img0028
associada ao caractere de transição não determinístico são ainda geradas (figura 35).
Com referência à figura 13, o procedimento de "remover transição não determinística" na etapa S104 será descrito. Este procedimento e um procedimento de "remover transição não determinística associada com σoutro" utiliza uma nova recuperação de variável. A nova recuperação de variável toma qualquer valor de VERDADEIRO ou FALSO.
Em primeiro lugar, um procedimento de "inicializar o conjunto de estado" é executado, com o fluxo de processo avançando para a etapa S402 (Etapa S401). Posteriormente, a nova recuperação de variável inicializada em FALSO, e fluxo de processo avança para a etapa S401 (Etapa S402).
Ainda posteriormente, um procedimento de "remover transição não determinística associada com ∑" é realizado, e o fluxo de processo avança para a Etapa S404 (Etapa S403) .
Ainda mais tarde, um procedimento de "remover transição não determinística associada com c>outro" é executado, o fluxo de processo, em seguida, proceder para a Etapa S405 (Etapa S404).
Se a variável TENTAR NOVAMENTE é VERDADEIRA, então 0 fluxo de processo avança para a etapa S403. Se é FALSA, então fluxo de processo termina (Etapa S405).
O procedimento descrito até agora permite que o procedimento "remover transição não determinística" seja executado. Em seguida, o procedimento de "inicializar conjunto de estados", na Etapa S104 será descrito. O procedimento é direcionado para inicializar um conjunto de estados necessários para gerar um estado DFA, e o seu objetivo é gerar um estado DFA {q<NFA>} e a sua transição de estado associada, em relação a todos os estados NFA Ç[(NFA) ’
Com referência à figura 14, o procedimento de "inicializar o conjunto de estados", na Etapa S104 será descrito. Primeiro, o conjunto de estados Q é inicializado com vazio, com o fluxo de processo avançando para a Etapa S502 (Etapa S501).
O símbolo q(NFA) é atribuído como o estado inicial NFA contido em um conjunto de estados NFA (Q(NFA))/ com o fluxo de processo avançando para a etapa S502 (Etapa S502) .
Se todos os estado iniciais NFA q<NFA) contidos no conjunto de estados NFA Q(NFA) são processadas, em seguida, fluxo de processo avança para a Etapa S506. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S504 (Etapa S503) .
O conjunto de estados NFA (ou seja, o estado DFA) {Q(NFA)} é adicionado ao conjunto de estados Q, e o fluxo de processo avança para a etapa S505 (Etapa S504). q<NFA) é atribuído como o próximo estado NFA contido no conjunto de estados NFA Q(NFA) F o fluxo de processo, em seguida, avança para a Etapa S503 (Etapa S505).
Se na etapa S503, todos os estados NFA Q(NFA) contidos no conj unto de estados NFA Q (NFA) são processados, em seguida fluxo de processo avança para a etapa S507 (Etapa S506).
Em seguida, t(NFA) é atribuído como um primeiro estado NFA contido no conjunto de estados NFA T(NFA), o fluxo de processo, em seguida, avança para a Etapa S508 (Etapa S507).
Se todas as transições de estado NFA t(NFA) contidas no conjunto de transição de estado NFA .T(NFA) são processadas, em seguida, o fluxo de processo avança para a etapa S511. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S509 (Etapa S508).
Após trans ({Source (t (NFA))}, {Destination (t{NFA))} e {Char (t(NFA)) } são adicionadas ao conjunto de transição de estado T, o fluxo de processo avança para a etapa S510 (Etapa S509).
O símbolo t(NFA) é atribuído como o próximo estado NFA contido no conjunto de estados NFA T(NFA), o fluxo de processo avança para a etapa S508 (Etapa S510).
Se, na etapa S5 08, todos os estados NFA t(NFA) contidos no T(NFA) são processados, em seguida, um conjunto de descrição da saída D é esvaziado, com o fluxo de processo avançando para a etapa S512 (Etapa S511) .
A seguir, d<NFA) é atribuído como um primeiro estado NFA contido no conjunto de descrição de saída NFA D (NFA) , e o fluxo de processo avança para a Etapa S508 (Etapa S512).
Se todas as descrições de saída NFA d(NFA> contidas no conjunto de descrição de saída NFA D<NFA) são processadas, então, o fluxo de processo termina. Em casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S509 (Etapa S513) .
Desc{State (d(NFA)) } β Result ( (d(NFA)) ) são adicionados ao 'conjunto de descrição de saída D, com o fluxo de processo avançando para a etapa S510 (Etapa S514).
O símbolo d(WFA) é atribuído como a próxima descrição de saída NFA contida no conjunto de descrição de saída NFA D(NFA) , e o fluxo de processo avança para a Etapa S508 (Etapa S515). Os procedimentos descritos até agora permitem que o procedimento de "inicializar o conjunto de estados" seja executado.
Em seguida, o procedimento de "remover transição não determinística associada com ∑” na etapa S403 será descrito. Como exemplos mostrados na figura 32 e na figura 34, se existe uma pluralidade de destinos de transição com respeito a uma caractere de transição o e ∑, um destino de transição baseado em cada caractere de transição o é exclusivamente determinado para substituir a pluralidade de destinos de transição com uma transição [destino] para um novo estado, que é um objeto desse procedimento.
Com referência à figura 15, o procedimento de "remover transição não determinística associada com ∑" na etapa S403 será descrito. Este procedimento utiliza uma variável Encontrado. A variável tentar Novamente tomar qualquer valor de VERDADEIRO ou FALSO.
Em primeiro lugar, Encontrado inicializada para FALSO, o fluxo de processo, em seguida, avança para Etapa S602 (Etapa S601). A seguir, q é atribuído como uma primeira transição de estado no conjunto de estados Q, e o fluxo de processo avança para a etapa S603 (Etapa S602).
Se todos os estados q nos o conjunto de estados Q são processados, em seguida, o fluxo de processo avança para a Etapa S616. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S604 (Etapa S603) .
O símbolo o atribuído como uma primeira letra entre o alfabeto de entrada ∑, com o fluxo de processo avançando para a etapa S605 (Etapa S604).
Se todas as letras o entre o alfabeto de entrada ∑ são processadas, em seguida, o fluxo de processo avança para a etapa S610. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S606 (Etapa S605).
Dado que um ponto inicial é atribuído como q, se existe uma pluralidade de tais transições de estado t cujo caractere de transição é o, ou se houver um estado de transição t cujo caractere de transição é σqualquer ÍStO e , se uma transição baseada em o é não determinística - então, o fluxo de processo avança para a etapa S607. Em casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa. S609 (Etapa 23606) .
Um parâmetro qSource é atribuído como q e um parâmetro cyt, como o, para executar um procedimento de "gerar novo estado", o fluxo de processo, em seguida, prossegue para a etapa 3608 (Etapa S607).
A variável Encontrado definida como VERDADEIRO, com o fluxo de processo avançando para a etapa S6 0 9 (Etapa 3608). O símbolo o é atribuído como uma próxima letra entre o alfabeto de entrada ∑, o fluxo de processo avança para a etapa S605 (Etapa 3609).
Se, na etapa S605, todas as letras o entre o alfabeto de entrada ∑ são processadas, t é atribuído como uma primeira transição de estado cujo ponto de partida é um estado q, e o fluxo de processo avança para a etapa S611 (Etapa S610).
Se todas as transições de estado t cujos pontos de partida são o estado q são processadas, em seguida, o fluxo de processo avança para a Etapa S615. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S612 (Etapa S611).
Se o caractere de transição Char(t), de t é Squaiquer, em seguida, o fluxo de processo avança para a Etapa S613. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a Etapa S614 (Etapa S612) .
Após o caractere de transição de t ser substituído por o0utro - ou seja, substituindo t por (Source (t) , Destination (t) , σoutro) / o fluxo de processo avança para a Etapa S614 (Etapa S61-3) .
O símbolo t é atribuído como a próxima transição de estado cujo ponto de partida é o estado q, com o fluxo de processo avançando para a etapa 611 (Etapa S614).
Se, na etapa S611, todas as transições de estado t cuj os pontos de partida são o estado q são processadas, em seguida, o estado q é atribuído como a próxima transição de estado no conjunto de estados Q, e o fluxo de processo avança para a etapa S 6 0 3 (Etapa S615).
Quando, na Etapa S6 03, todos os estados q no conjunto de estados Q são processados, se a variável Encontrado for VERDADEIRA, então 0 fluxo de processo avança para a etapa S601. Em casos diferentes do aqui descritos, o fluxo de processo termina (Etapa S405).
Os procedimentos descritos até agora permitem que o procedimento de "remover transição não determinística associada com ∑", seja executado.
Em seguida, o procedimento de "remover transição não determinística associada com croutro" na Etapa S404 será descrito. Neste processo, tal como mostrado na figura 36, no que diz respeito à transição baseada no caractere de transição σoutro gerado por "remover transição não determinística associada com ∑, " se existem transições de estado do estado qsource para uma pluralidade de estados qi e q2, então, como mostrado na figura 37, transições não determinísticas baseadas no caractere de transição σoutro são suprimidas, substituindo as transições de estado com transições de estados de seus conjuntos soma qn - qx u q2.
Com referência à figura 16, o procedimento de "remover transição não determinística associada com σoutro na Etapa S404 será descrito. Este procedimento utiliza a variável Encontrado. A variável Encontrado pode assumir qualquer valor de VERDADEIRO ou FALSO, e este procedimento utiliza uma variável contador. A variável contador pode tomar um valor inteiro de zero ou mais.
Primeiro, FALSO é atribuído como a variável encontrado, e o fluxo de processo avança para a etapa S702 (Etapa S701). O símbolo q é atribuído como um primeiro estado no conj unto de estados Q, o fluxo de processo, em seguida, avança para a Etapa S70 3 (Etapa S7 02) .
Se todos os estados q no conjunto de estados Q são processados e, em seguida, o fluxo de processo avança para a Etapa S714. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S701 (Etapa S703).
Zero é atribuído como a variável contador, e o fluxo de processo avança para a etapa S705 (Etapa S704). O símbolo t é atribuído como uma primeira transição de estado cujo ponto de partida é q, e o fluxo de processo avança para a etapa S706 (Etapa S705).
Se todas as transições de estado t cujos pontos de partida são q são processadas, em seguida, o fluxo de processo avança para a Etapa S710. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S707 (Etapa S706).
Se o caractere de transição Char (t) de t é σoutro, em seguida, o fluxo de processo avança para a Etapa S707. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S709 (Etapa S707).
Um deles é adicionado à variável contador, o fluxo de processo, em seguida, procede para a Etapa S709 (Etapa S708). O símbolo t é definido para a próxima transição de estado cujo ponto de partida é q, com o fluxo de processo avançando para a etapa S705 (Etapa S709).
Se todas as transições de estado t cujos pontos de partida q são processadas, em seguida, o fluxo de processo avança para a etapa S710. Nos casos diferentes daqueles aqui descritos, o fluxo de processo avança para a etapa S713 (Etapa S710).
O parâmetro qsource é definido para q, e at para σoutro e o processo "gerar novo estado" é chamado, o fluxo de processo, em seguida, procede para a Etapa S712 (Etapa S711).
A variável encontrado é definida para VERDADEIRO, e as variáveis TENTAR NOVAMENTE para VERDADEIRO; então o fluxo de processo avança para a etapa S713 (Etapa S712).
O símbolo q é atribuído como a próxima transição no conjunto de estados Q, com o fluxo de processo avançando para a etapa 703 (Etapa S713).
Quando, na Etapa S703, todos os estados q no conjunto de estados Q são processados, se a variável encontrado VERDADEIRO, então o fluxo de processo avança para a etapa S701. Em casos diferentes dos aqui descritos, o fluxo de processo termina (Etapa S714).
O procedimento descrito até agora permite que o procedimento de "remover transição não determinística associada com a0utro" seja executado.
Em seguida, o procedimento de "gerar novo estado", na Etapa S607 e na Etapa S711 será descrito. 0 processo pelo qual transições de estados individuais não determinísticas associadas com o caractere de transição crt são removidas do estado qsource •
Com referência à figura 17, os procedimentos de "gerar novo estado" na Etapa S607 e na Etapa S711 serão descritos. No procedimento de "gerar novo estado", qSOurce e Ot são atribuídos como parâmetros.
Primeiro, o estado qSOUrce θ atribuído como o ponto de partida, para determinar um conj unto de estados que podem fazer uma transição com base em at, e um conjunto soma com os seus estados NFA associados é, em seguida, determinado, o conjunto soma é atribuído como um estado qn. Se o estado qn está incluído no conjunto de transição de estado T, em seguida, o fluxo de processo avança para a Etapa S817. Nos casos diferentes dos aqui descritos, o fluxo de processo procede para a Etapa S802 (Etapa S801).
A seguir, o estado qn é adicionado ao conjunto de estado Q, e o fluxo de processo procede para a Etapa S803 (Etapa S802). O símbolo t é atribuído como a primeira transição de estado cuj o ponto de partida é o estado qsource, o fluxo de processo, em seguida, avança para a etapa 804 (Etapa S803).
Se todas as transições de estado t cujo ponto de partida é qSOurce são processada, em seguida, o fluxo de processo avança para a etapa S817. Nos casos diferentes do aqui descrito, o fluxo de processo avança para a etapa S805 (Etapa S804) .
Se Char (t) = ou Char(t) = Oquaiquer/ então o fluxo de processo avança para a etapa S806. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S816 (Etapa S805).
O símbolo ti é atribuído como a primeira transição de estado cujo ponto de partida é Destination(t) , fluxo de processo, em seguida, avança para a etapa 807 (Etapa S806).
Se todas as transições de estado ti cujos pontos de partida são Destination(t) são processadas, então, o fluxo de processo avança para a Etapa S812. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S808 (Etapa S807).
A não ser que a transição de estado trans (qn, Destiation(ti) , Char(ti) e T, então, a transição de estado trans(qn, Destiation (ti) , Char(ti) é adicionada a T, o processo de fluxo, em seguida, prossegue para a etapa S809 (Etapa S808) .
Se Char(tl) = <7outro, em seguida, o fluxo de processo avança para a Etapa S810. Em casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S811 (Etapa S809).
O procedimento "transição de estado correta com base em σoutro" é chamado, e o fluxo de processo avança para a etapa S811, quando (qSOurce/ qn> ti) são dados como parâmetros (Etapa S810).
O s ímbolo ti é atribuído como a próxima trans ição de estado cujo ponto de partida é Destination (t) , e o fluxo de processo avança para a etapa 807 (Etapa S811).
Se, na etapa S607, todas as transições de estado tx cujos pontos de partida são Destination (t) são processadas, então d é atribuído como a primeira descrição de saída cujo estado de saída é Destination (t) , e o fluxo de processo avança para a Etapa S813 (Etapa S812).
Se todas as descrições de saída d cujas descrições de saída sao Destination (t) são processados, em seguida, o fluxo de processo avança para a Etapa S816. Em Casos que não o descrito aqui, o fluxo de processo avança para a etapa S814 (Etapa S813) .
A menos que a descrição da saída desc (çfa, Result (d)) e D, então desc (qn, Result (d) ) é adicionado a D, com o fluxo de processo avançando para a etapa S815 (Etapa S814).
O símbolo d é atribuído como a próxima descrição de saída cujo estado de saída é Destination (t) , e o fluxo de processo avança para a etapa 813 (Etapa S816).
O símbolo t é atribuído como a próxima transição de estado cuj o ponto de partida é ^source, o fluxo de processo, em seguida, avança para a etapa 804 (Etapa S816).
A não ser que, na etapa S801, q, está contido no conjunto de transições de estado T, e se, na Etapa S804, todas as transições de estado t cujos pontos de partida são qsource são processadas, em seguida, t é atribuído como a primeira transição de estado cujo ponto inicial é qSOurce/ com o fluxo de processo avançando para a etapa S818 (Etapa S817) .
Se todas as transições de estado t cujos pontos de partida são qSource são processadas, em seguida, o fluxo de processo avança para a etapa S822. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S819 (Etapa S818).
Se Char (t) = q, em seguida, o fluxo de processo avança para a Etapa S820. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S821 (Etapa S819).
O transição de estado t é eliminada do conjunto de transição de estado T, com o fluxo de processo avançando para a etapa S821 (Etapa S820).
O símbolo t é atribuído como a próxima transição de estado cujo ponto de partida é Qsource/ e o fluxo de processo avança para a etapa 818 (Etapa S821).
Quando, na Etapa S818, todas as transições de estado cujos pontos de partida são qSOUrce são processadas, a não ser que a transição de estado trans (qsource, qn, σt) e T, então trans (qsource, qn, σt) e T é adicionado o T, o fluxo de processo terminando. (Etapa S822).
O procedimento descrito até agora permite que o procedimento "gerar novo estado" seja executado. Em seguida, um procedimento de "corrigir transição de estado com base em cWro" na Etapa S811 será descrito. O procedimento mostra um procedimento de fusão de estados que acabam por ser pontos finais de transições de estado cujos pontos de partida são os estados qi e q2 em um caso em que, conforme ilustrado na figura 38, as transições de estado com base no caractere de transição c>outro que está contido na transição de estado cujo ponto de partida é os estados ql e q2 que estão para ser fundidos em um único estado quando transições não determinísticas são apagadas. Fundir o estado qT com o estado q2 resultada em um estado mostrado na figura 39, e os pontos finais com base no estado
Figure img0029
e o caractere de transição b, acabam por ser q3 u q5. De forma semelhante, fundindo o estado q- com o estado qa, como mostra a figura 41 faz com que os pontos finais da transição de estado com base no caractere de transição b, c e σoutro revelem-se
Figure img0030
, respectivamente.
Referindo-se à figura 18, o procedimento de "corrigir transição de estado com base em σoutro" na etapa S811 será descrito. Este procedimento utiliza CharSet - um conjunto de alfabeto de entrada estendido o e ∑s.
Primeiro, CharSet é inicializado com vazio, com o fluxo de processo prosseguindo para a Etapa S902 (Etapa S901). Em seguida, t é atribuído como uma primeira transição de estado cujo ponto de partida é Source (toutro) , e o fluxo de processo avança para a etapa 903 (Etapa S902).
Se todas as transições de estado cujo ponto de partida é Source (toutro) são processadas, em seguida, o fluxo de processo avança para a Etapa S907. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S904 (Etapa S903) .
Se Char (t) está contido no alfabeto de entrada ∑ - ou seja, Char(t) αOutro θ Char(t) Qquaiquer, θm seguida, o fluxo de processo avança para a Etapa S906. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S905 (Etapa S904).
Char(t) é adicionado ao CharSet, com o fluxo de processo avançando para a etapa S906 (Etapa S905). O símbolo t é atribuído como a próxima transição de estado cujo ponto de partida é Source (toutro) , o fluxo de processo, em seguida, avança para a etapa 904 (Etapa S906).
Se, na etapa S903, todas as transições de estado cujos pontos de partida são Source (toutro) são processadas, em seguida, t é atribuído como a primeira transição de estado cujo ponto de partida é o estado q, com o fluxo de processo avançando para a etapa S908 (Etapa S907).
Se todas as transições de estado q cujos pontos de partida são o estado q são processadas, então o fluxo de processo termina. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S909 (Etapa S908).
Se Destination (t) Φ Source (toutro) , em seguida, o fluxo de processo avança para a etapa S910. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S916 (Etapa S909) .
O símbolo ti é atribuído como uma primeira transição de estado cujo ponto de partida ê Destination (t) , e o fluxo de processo avança para a etapa 911 (Etapa S910).
Se todas as transições de estado t∑ cujos pontos de partida são Destination (t) são processadas, em seguida, o fluxo de processo avança para a Etapa S916. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S912 (Etapa S911).
Se Char (t) está contido no alfabeto de entrada ∑ - ou seja, Char (ti) ≠ σquaiquer e Char(ti) cWro, em seguida, o fluxo de processo avança para a Etapa S913. Em casos diferentes do aqui descrito, o fluxo de processo avança para a etapa S915 (Etapa S912).
Se Char (ti) está contida no ChartSet, em seguida, o fluxo de processo avança para a Etapa S915. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S914 (Etapa S913).
A não ser que a transição de estado trans (q^, Destionation(toutro) / Char(ti)) e T, então, a transição de estado trans (qn, Destionation(toutro) , Char(tx)) é adicionada a T, com o fluxo de processo avançando para a etapa S915 (Etapa S914) .
O símbolo ti é atribuído como a primeira transição de estado cujo ponto de partida é Destination (t) e o fluxo de processo avança para a etapa 911 (Etapa S915).
A menos que, na etapa S909, Destination(t) Φ Source (toutro) / ou se, na etapa S911, todas as transições de estado cujos pontos de partida são Destination (t) são processada, então t é atribuído como a próxima transição de estado cujo ponto de partida é o estado q, com o fluxo de processo avançando para a etapa S908 (Etapa S916).
Os procedimentos descritos acima permitem que o procedimento "corrigir transição de estado com base em σoutro" seja executado.
Em seguida, o procedimento de "remover estado não usado" na etapa S105 será descrito. Esse procedimento elimina um estado que foi até agora gerado como um resultado do processo e não se revela um ponto final de uma transição de estado - ou seja, um estado em que qualquer entrada não tem nenhum destino para chegar.
Com referência à figura 19, o procedimento de "remover estado não utilizado" na etapa S105 será descrito. Este procedimento utiliza a variável encontrado. A variável encontrado pode tomar qualquer valor de VERDADEIRO ou FALSO.
Primeiro, a variável encontrado é atribuída como FALSO, e o fluxo de processo avança para a Etapa S1002 (Etapa S1OO1).
A seguir, q é atribuído como um primeiro estado contido no conjunto de estados Q, e o processo fluxo avança para a etapa S1003 (Etapa S1002).
Se todos os estados q contidos no conjunto de estados Q são processados, em seguida, o processo fluxo avança para a etapa S1017. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S1004 (Etapa S1003).
Se o estado q é o estado inicial qo, em seguida, o fluxo de processo avança para a etapa S1016. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a Etapa S1005 (Etapa S1004).
Se existe uma transição de estado cujo ponto final é q, então, o fluxo de processo avança para a Etapa S1016. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S1006 (Etapa.S1005).
A variável encontrado configurada para FALSO, e fluxo de processo avança para a etapa S1007 (Etapa S1006). O símbolo t é atribuído como uma primeira transição de estado cujo ponto de partida é q, e o fluxo de processo avança para a etapa 1008 (Etapa S1007).
Se todas as transições de estado cujos pontos de partida são q são processadas, então, o fluxo de processo avança para a etapa S1011. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S309 (Etapa S308).
Tais transições de estado t são suprimidas do conjunto de transição de estado T, com o fluxo de processo avançando para a etapa S1010 (Etapa S1009).
O símbolo t é atribuído como a próxima transição de estado cujo ponto de partida é q, e o fluxo de processo avança para a etapa 1008 (Etapa S1010).
Se, na etapa S1008, todas as transições de estado t cujos pontos de partida q são processadas, então d é atribuído como uma primeira descrição de saída cujo estado de saída é q, com o fluxo de processo avançando para a etapa S1012 (Etapa S1012).
Se, todas as descrições de saída d cujas descrições de saída são q são processada, em seguida, o fluxo de processo avança para a etapa SI015. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S1013 (Etapa S1012) .
Tal descrição da saída d é removida do conj unto de descrição de saída D, o fluxo de processo, em seguida, prossegue para a etapa S1014 (Etapa S1013).
O símbolo d é atribuído como a próxima descrição de saída cujo estado de saída é q, e o fluxo de processo avança para a etapa S1012 (Etapa S1014).
Se, na etapa S1012, todas as descrições de saída cujos estados de saída são q são processadas, em seguida, o estado q é retirado do conjunto de estados Q, com o fluxo de processo avançando para a etapa S1012 (Etapa S1015).
O símbolo q é atribuído como a próxima transição de estado contida no conjunto de estados Q, e o fluxo de processo avança para a etapa S1003 (Etapa S1016).
Se, na etapa S1003, todos os estados q contidos no conj unto de estados Q são processados e, se a variável encontrado é VERDADEIRA quando encontrado é verificada, em seguida, o fluxo de processo avança para a etapa S1002. Nos casos diferentes dos aqui descritos, o fluxo de processo termine (Etapa S1017).
Os procedimentos descritos até agora permitem a execução do procedimento de "remover estado não utilizado". Aqui, o procedimento "remover estado não utilizado", é direcionado para a redução da capacidade de memória necessária para armazenar uma tabela de transição de estado. Por conseguinte, independentemente de este procedimento ser omitido, o procedimento "corresponder documento de entrada" pode ser executado. Omitindo o procedimento permite a redução do tempo necessário para "compilar condições de correspondência".
Em seguida, com referência à figura 20, um procedimento de "remover estado redundante" na etapa S106 será descrito. 0 procedimento remove dois tipos de estados desnecessários. Um primeiro caso corresponde a uma transição de estado que tem o ponto final idêntico à transição de estado com base em σoutro, um exemplo é ilustrado na figura 42. Referindo-se ã figura 42, independentemente da transição de estado cujo ponto final é q3 com base no caractere de transição b, a operação do autômato SDFA mantém-se inalterada. A remoção desta transição de estado permite a redução do número total de transições de estado, pela qual a capacidade de memória necessária para armazenar a tabela de transição de estado pode ser reduzida. Um segundo caso refere-se à fusão de uma pluralidade de estados cujos pontos finais das transições de estado com relação a todos os caracteres de transição são iguais entre si, dos quais um exemplo é ilustrado na figura 43. Referindo-se à figura 43, porque os estados qi e q2 têm os mesmos pontos finais de suas transições de estado no que diz respeito a caracteres de transição, os estados qi e q2 podem ser substituído por qr: = q-;. u q2, em que os estados qT e q2 são fundidos. Porque um dos dois casos suprime um estado ou uma transição de estado, em que o outro pode, em determinadas situações, ser capaz de remover um estado ou uma transição de estado, os dois casos repetem-se até que nenhum estado adicional ou transmissão de estado seja suprimida.
Com referência à figura 20, o procedimento de "remover estados redundantes”, na Etapa S106 será descrita. 0 procedimento usa variáveis Estado Removido e Transição Removida. As variáveis Estado Removido e Transição Removida podem assumir qualquer valor de VERDADEIRO ou FALSO.
Em primeiro lugar, Estado Removiodo é definido para VERDADEIRO, com o fluxo de processo avançando para a etapa S1102 (Etapa S1101). Um procedimento de " remover transição de estado redundante" é chamado, e o fluxo de processo avança para a etapa S1103, durante o qual o procedimento Transição Removida é definido (Etapa S 1102).
Se Transição Removida = FALSO, e Estado Removido = VERDADEIRO, o fluxo de processo termina. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a Etapa S1104 (Etapa S1103).
O procedimento "fundir estados redundantes11 é chamado, o fluxo de processo avança para a etapa S1105 (Etapa S1104). Se Transição Removida = FALSO, e Estado Removido = VERDADEIRO, o fluxo de processo termina. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a Etapa S1102 (Etapa S1105).
O procedimento descrito até agora permite que o procedimento "remover estado redundante", seja executado. Aqui, o procedimento "remover estados redundantes", é direcionado para reduzir a capacidade de memória necessária para armazenar a tabela de transição de estado. Por conseguinte, independentemente de este procedimento ser omitido, o procedimento "corresponder documento de entrada" pode ser executado. A omissão do procedimento permite redução do tempo necessário para "compilar a condição de correspondência".
Em seguida, o procedimento de "remover transição de estado redundante" na etapa S1102 será descrita. O procedimento, que corresponde ao primeiro caso de "remover estados redundantes" remove uma transição de estado com o mesmo ponto final de estado em que esta transição de um estado baseado em σoutro, como mostra a figura 42.
Com referência à figura 21, o procedimento de "remover transição de estado redundante" na etapa S1102 será descrita.
A variável■Transição Removida é primeiro estabelecida como FALSO, com o fluxo de processo avançando para a etapa S1202 (Etapa S1201).
A seguir, t é atribuído como a primeira transição de estado contida no conjunto de transição de estado T, o fluxo de processo, em seguida, avançando para a Etapa S12 03 (Etapa S1202).
Se todas as transições de estado t contidas no conjunto de transição de estado T são processadas, então o fluxo de processo termina. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S1204 (Etapa S1203).
Se Char (t) é cr0utro/ em seguida, o fluxo de processo avança para a etapa 1205. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S1210 (Etapa S104).
Em seguida, ti é atribuído como a primeira transição de estado cujo ponto de partida é Source(t) , com o fluxo de processo avançando para a etapa 1206 (Etapa S1205).
Se todas as transições de estado ti cuj os pontos de partida são Source (t) são processadas, em seguida, o fluxo de processo avança para a etapa S1210. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S1207 (Etapa S1206) .
Se ti Φ t e Destination(t) Φ Destionation(tj , então o fluxo de processo avança para a etapa S1208. Nos casos diferentes dos aqui descritos, o fluxo de processo procede para a Etapa S1209 (Etapa S1207).
A transição de estado t é eliminada do conjunto transição de estado T, e o fluxo de processo avança para a etapa S1209 (Etapa S1208).
O símbolo tx é atribuído como a próxima transição de estado cujo ponto de partida é Source (t) , o fluxo de processo, em seguida, avança para a etapa 1206 (Etapa S1209).
A menos que, na Etapa S1204, Char (t) seja σoutro ou se, na Etapa S1206, todas as transições de estado ti cujos pontos de partida são Source (t) são processadas e, em seguida, t é atribuído como a próxima transição de estado contida no conjunto de transição de estados T, com o fluxo de processo avançando para a etapa S1203 (Etapa S1210).
O procedimento descrito até agora permite que o procedimento "remover transição de estado redundante" seja executado.
Em seguida, um processo de "fundir estados redundantes", na Etapa S1104 será descrito. No segundo caso, de "remover estados redundantes" - isto é, como ilustrado na figura 43 - este procedimento funde uma pluralidade de estados juntos em que os pontos finais das transições de estado para todos os caracteres de transição são iguais entre si.
O procedimento "fundir estados redundantes", na Etapa S1104 é executável através de procedimentos bem conhecidos definidos, por exemplo, no documento 1 e semelhantes. Quando este procedimento funde um ou mais estados juntos, a variável Estado Removido é atribuída como VERDADEIRA. Nos casos diferentes dos aqui descritos, a variável Estado Removido é atribuída como FALSA.
Em seguida, com referência à figura 22, um procedimento de "gerar tabela de transição de estado e tabela de saída", na Etapa S107 será descrito. O procedimento extrai as transições de estado 11 e as descrições de saídas 12 do conjunto de estados 25, do conjunto de transição de estado 26 e do conjunto de descrições de saídas 27, para armazenar as
transições 11 e as descrições 12 no armazenamento de tabela de transição de estado 4 e no armazenamento de tabela de saída 12, respectivamente.
Em primeiro lugar, quando o número total de estados contidos no conjunto de estados Q é atribuído como N, cada um dos estados é atribuído como um número de estado único Stateld(q) de zero até N-l (Etapa S1301).
Uma primeira transição de estado t é extraída do conjunto de transição de estado T (Etapa S1302). Se todas as transições de estado t contidas no conjunto de transição de estado T são processadas, em seguida, o fluxo de processo avança para a etapa S1307. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S1304 (Etapa S1303).
No que diz respeito ao tuple de estado atual Source(t) e caractere de entrada Char(t), a calculadora de valor hash 31 calcula o valor hash 32, com o fluxo de processo continuando para a etapa S1305 (Etapa S1304).
A cadeia hash de transição de estado 34 é constituída de um tuple estado atual Source(t), caractere de entrada Char(t) e próximo estado Destination(t), é acrescentado ao ponteiro hash de transição de estado 33 cujo deslocamento é o valor hash 32, e o fluxo de processo avança para a etapa S1306 (Etapa S1305).
T é atribuído como a próxima transição de estado contida no conjunto de transições de estado T, o fluxo de processo, em seguida, procede para a Etapa S1303 (Etapa S1306).
Se, na etapa S1303, todas as transições de estado contidas no conjunto de transições de estado são processadas, a primeira descrição de saída d é extraída a partir do conjunto de descrição de saída (Etapa S1307).
Se todas as descrições de saída d contidas no conjunto de descrição de saída D são processadas, o fluxo de processo termina. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S130 (Etapa S1308).
Result(d) é adicionado como a cadeia de número de condição 42 ao índice de número de condição 41 correspondente ao número de estados Stateld(State(d) de State(d), com o fluxo de processo avançando para a etapa S1310 (Etapa S1309).
O símbolo d é atribuído como a próxima descrição de saída contida na descrição de saída D, o fluxo de processo, em seguida, procede para a Etapa S1308 (Etapa S1310).
Os procedimentos descritos até agora permitem que o procedimento de "gerar tabela de transição de estado e tabela de saída", seja executado.
Posteriormente, com referência ã figura 23, o procedimento de "corresponder documento de entrada" será descrito. Primeiro, o estado inicial q0 está definido para o estado q, e o fluxo de processo avança para a Etapa S2002 (Etapa S2001).
O armazenamento de tabela de saída 5 é pesquisado para liberar um número de condição 16 associado com Q. Este procedimento é executado por busca sequencial de referências para ponteiros para a cadeia de número de condição 42 correspondendo ao número de estado Stateld(q) do estado atual 13 do índice do número de condição 41. Se todas as cadeias de número de condição 4 2 foram buscadas, em seguida, o fluxo de processo avança para a etapa S2003.
Após a conclusão de todas as entradas, o fluxo de processo termina. Em outros casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S2004 (Etapa S2003).
O próximo caractere de entrada 14 é recebido do leitor de caractere de entrada 7, e o caractere 14 é atribuído como o, com o fluxo de processo avançando para a etapa S2005 (Etapa S2004).
O armazenamento de tabela de transição de estado 4 é pesquisado para verificar se existe ou não um destino de transição qd do estado q com base no caractere de transição o - ou seja, se existe trans (q, qd, o) e T - e o fluxo de processo avança para a etapa S2006 (Etapa S2005).
Se existe o destino de transição qd, em seguida, o fluxo de processo avança para a etapa S2007. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a etapa S2008 (Etapa S2007).
O símbolo qd é atribuído como q, e o fluxo de processo avança para a etapa S2002 (Etapa S2007). Se não existir nenhum destino de transição qd na Etapa S2006, qd existindo ou não - ou sej a, se existe qd que é trans (q, qd,αoutro) e T - é verificado, o fluxo de processo, em seguida, avança para a Etapa S2009 (Etapa S2008).
Se o destino de transição qd existe, então, o fluxo de processo avança para a etapa S2 0 07. Nos casos diferentes dos aqui descritos, o fluxo de processo avança para a Etapa S2010 (Etapa S2009).
O estado q está definido para q0, com o fluxo de processo avançando para a etapa S2006. Os procedimentos descritos acima permitem que o procedimento "correspondência de documento de entrada" seja executado.
Por meio de casos exemplif icativos, as condições de correspondência 2 ilustradas na figura 44 e a seqüência de entrada mostrada na figura 54, o funcionamento do sistema de correspondência de seqüência desta concretização será descrito abaixo. A condição de correspondência mostrada na figura 44 é que através da mesma a notação da condição de correspondência na figura 52 indicada no documento de patente 3 é feita em conformidade com um formato desta concretização, sendo logicamente equivalente ao mostrado na figura 52.
Executando um procedimento de "compilar condição de correspondência", mostrado na Etapa S51, a tabela de transição de estado mostrada na figura 45, e a tabela de saída mostrada na figura 46 são geradas a partir da condição de correspondência na figura 44. Aqui, o número de estados do estado inicial é fixado em zero.
A tabela de transição de estado na figura 45 representa em uma tabela de estado atual 13 armazenada no armazenamento de tabela de transição de estado 4, bem como o próximo estado 15 para o caractere de entrada 14, por exemplo, indicando que o próximo estado será 10 quando o número de estado do estado atual é seis e o caractere de entrada, "d". Na figura, um símbolo indica que não existe próximo estado e o armazenamento de transição de estado 4 pode armazenar tal combinação sem utilizar muita memória. Conforme mostrado na figura 53, o autômato de estado finito convencional com saída requer 90 combinações, enquanto em um exemplo mostrado na figura 45, a informação em 46 transições de estado pode ser meramente armazenada, o que proporciona um efeito que reduz a lod memória necessária para armazenar a tabela de transição de estado.
A tabela de saída na figura 46 tabula o conjunto de número de condições 16 correspondente ao estado atual 13 armazenado no armazenamento da tabela de saída 5, que indica, por exemplo, que quando a situação atual é de quatro, uma condição de número zero é liberada.
Como exemplo, a figura 47 ilustra o funcionamento do sistema em um caso em que uma sequência de entrada "aaca" é introduzida. Primeiro, o estado q é definido como o estado inicial (estado nulo). Posteriormente, o primeiro caractere da sequência é lido, a transição sendo feita para o estado 2 - o destino de transição do caractere "a" no estado 0 (zero) . Uma vez que o destino de transição com base no caractere "a" é definido, não é necessário fazer referência a CToutro, que é representado como "desnecessário" na figura 47. Em seguida, o segundo caractere "a" é lido, e uma transição é feita para o estado 5 - o destino de transição do caractere "a" no estado 2. Em seguida, o terceiro caracter "c" é lido, e uma transição é feita ao estado 5 - o destino de transição do caractere ”c" no estado 9. A seguir, o quarto caractere "a" é lido, uma transição sendo feita para o estado 12 - o destino de transição do caráter "a" no estado 9. A entrada termina aqui.
A técnica convencional definida no documento de patente 3 requer sete vezes fazer referência à tabela de transição de estado com base nas mesmas condições, enquanto, nesta concretização, quatro vezes de referenciamento será suficiente. Desta forma, a presente invenção é direcionada para evitar a degradação de desempenho devido a repetidas falhas de transição, e para possibilitar alta velocidade de correspondência de seqüência, pela criação de duas vezes ou menos por caracteres a contagem de referência da tabela de transição de estado devido a falhas de transição.
Aqui, a condição de correspondência na figura 44, que é definida para efeitos de comparação com as técnicas definidas no documento de patente 3, tem uma determinada condição na qual transições do estado inicial baseada em todos os caracteres são permitidas. Um objetivo da condição de correspondência mostrado na figura 44 é identificar uma seqüência alvo de correspondência "abcd", mesmo se qualquer um dos caracteres da mesma varia. Sem quase variar o objeto e os significados da condição de correspondência, a condição de correspondência na figura 44 pode ser convertida naquela mostrado na figura 48. Este caso ainda reduz a memória necessária para a transição de estado, permitindo, assim, que uma vantagem da concretização seja aumentada.
Executando o procedimento "compilar condição de correspondência" mostrado na Etapa S51 gera a partir das condições de correspondência 2 na figura 48, a tabela de transição de estado mostrada na figura 49, e a tabela de saída mostrada na figura 50. Aqui, o estado número do estado inicial é fixado em zero.
A tabela de transição de estado na figura 49 significa o mesmo que aquela na figura 45, e o número de transições de estado necessárias para ser armazenada no armazenamento da tabela de transição de estado 4 é reduzido para 23, o que proporciona um benefício por reduzir ainda mais a memória necessária.
Além disso, nos termos das condições de correspondência 2 na figura 48, a figura 51 ilustra o funcionamento de uma seqüência de entrada "xabxd". Uma vez no estado 0, o destino de transição do primeiro caractere "x"da seqüência não está definido, é feita referência ao coutro. No entanto, o destino de transição tem ainda que ser definido. O próximo estado é, portanto, definido como o estado inicial, ou seja, o estado 0, quando é feita referência duas vezes à tabela de transição de estado. Aqui abaixo, transições são feitas ao estado 3 e ao estado 6 com base no segundo caractere "a" e o terceiro caractere "b”, respectivamente. Uma vez que no quarto caractere "x" da seqüência, o destino de transição do "x" não está definido, é feita referência ao (Wm, e o próximo estado 1 é obtido. Neste momento, é feita referência duas vezes à tabela de transição de estado. Além disso, a transição é feita ao estado 2 com base no quinto caractere "d". Uma vez que o estado 2 tem o número zero presente como o número de 16, tomando-se saída, este será liberado. Neste caso, a contagem de referência da tabela de transmissão de estado atinge sete.
Note que como estabelecido no Documento 1, com um DFA geral não tendo nenhuma saída pode ser considerado uma máquina especial Moore que libera dois tipos de informação de "aceitação" e "reijeição", como o alfabeto de saída. Determinando-se se existe ou não apenas um número de condição em um resultado de correspondência, esta concretização também pode configurar um sistema de correspondência de sequência que libera dois tipos de informações: "aceitar" e "rejeitar".
Note que a concretização descrita até agora presumiu que uma entrada alvo e um alvo de correspondência são "caracteres", que não estão limitados a sequências legíveis por humanos, mas aplicáveis a uma sequência de símbolos arbitrários e a uma sequência de dados. Os caracteres podem ser aplicados para identificar, por exemplo, uma sequência genética, dados medidos por um sensor e coisas do gênero.
Deve ser notado que, embora a concretização descrita acima empregue a tabela hash de transição de estado 35 para o lol armazenamento de tabela de transição de estado 4, qualquer estrutura de dados capaz de representar logicamente uma tabela de estrutura bidimensional, como uma seqüência ou estrutura de árvore estrutura, pode ser utilizada para implementar a tabela de armazenamento 4.
Deve ser notado também que, com relação aos estados frequentemente utilizados como o estado inicial, uma estrutura de dados, tais como uma matriz que proporciona uma elevada taxa de acesso pode ser utilizada, enquanto que em relação aos estados menos frequentemente usados, estruturas de dados, como uma tabela hash de alta eficiência em memória e estrutura de árvore, podem ser usadas em combinação.
Deve ser notado que, embora a concretização descrita até agora empregue a tabela hash de transição de estado 41 para o armazenamento da tabela de transição de estado 5, qualquer estrutura de dados logicamente capaz de representar uma tabela de estrutura tridimensional, como a estrutura da árvore e da tabela hash, podem ser utilizadas para implementar o armazenamento de tabela 5.
Aplicabilidade Industrial
A presente invenção é aplicável a um sistema de correspondência de seqüência.

Claims (4)

1. Sistema de correspondência de sequência, caracterizado pelo fato de que compreende: um gerador de tabela de transição que gera, quando da geração de uma tabela de transição de estado, tabela essa que armazena um conjunto de transições de estado em que um tuple de caractere de transição e entrada é associado a um estado de destino de transição com base em uma condição de correspondência descrita por uma expressão regular, se tanto uma transição a partir de um estado inicial q0 para um estado predeterminado q1 como uma transição a partir de um estado arbitrário q para o estado predeterminado q1 são possíveis com base em um caractere de transição predeterminado a, a tabela de transição de estado com adição do estado de transição a partir do estado arbitrário q para o estado predeterminado q1 com base no caractere de transição predeterminado a; e um autômato, em que se um tuple de um estado atual, estado esse que é um estado atual em transição, e um caractere de entrada, caractere esse que é sequencialmente procedido para ler caracteres respectivos a partir da sequência de caractere de entrada, corresponde ao tuple de caractere de transição e estado, do estado de transição armazenado na tabela de transição de estado, o autômato realiza uma transição para um próximo estado de destino de transição sendo associado ao dito tuple de caractere de transição e estado, e em que se nenhum estado de destino de próxima transição estiver associado ao estado atual e tuple de caractere de entrada existe na tabela de transição de estados gerada, o autômato realiza uma transição de volta ao seu estado inicial q0, sem prosseguir para a leitura do caractere de entrada.
2. Sistema de correspondência de sequência, de acordo com a reivindicação 1, caracterizado pelo fato de que quando uma pluralidade de condições de correspondência é inserida no gerador de tabela de transição de estados, o gerador de tabela de transição de estados gera descrições de saída, em que um número de estado, número de estado esse que identifica o estado da transição de estado, e um número de condição, número de condição esse que identifica uma condição de correspondência, unem uma pluralidade de próximos estados de destino de transição, que são associados com os mesmos tuples de caractere de transição e estado, e geram uma tabela de saída, na qual a descrição de saída é unida com base no dito próximo estado de destino de transição unido, o autômato emite, como um resultado de correspondência, o número de condição da condição de correspondência, em que a correspondência das sequências de caractere de entrada é bem-sucedida.
3. Sistema de correspondência de sequência, de acordo com a reivindicação 1, caracterizado pelo fato de que o gerador de tabela de transição de estados configura a tabela de transição de estados de acordo com uma tabela hash.
4. Método de correspondência de sequência, caracterizado pelo fato de que compreende: executar em um computador as seguintes etapas: gerar, quando da geração de uma tabela de transição de estado, tabela essa que armazena um conjunto de transições de estado em que um tuple de caractere de transição e entrada é associado a um estado de destino de transição com base em uma condição de correspondência descrita por uma expressão regular, se tanto uma transição a partir de um estado inicial q0 para um estado predeterminado q1 como uma transição a partir de um estado arbitrário q para o estado predeterminado q1 são possíveis com base em um caractere de transição predeterminado a, a tabela de transição de estado com adição do estado de transição a partir do estado arbitrário q para o estado predeterminado q1 com base no caractere de transição predeterminado a; e realizar, se um tuple de um estado atual, estado esse que é um estado atual em transição, e um caractere de entrada, caractere esse que é sequencialmente procedido para ler caracteres respectivos a partir da sequência de caractere de entrada, corresponde ao tuple de caractere de transição e estado, do estado de transição armazenado na tabela de transição de estado, uma transição para um próximo estado de destino de transição sendo associado ao dito tuple de caractere de transição e estado, e realizar, se nenhum estado de destino de próxima transição estiver associado ao estado atual e tuple de caractere de entrada existe na tabela de transição de estados gerada, uma transição de volta ao seu estado inicial q0, sem prosseguir para a leitura do caractere de entrada.
BRPI0419214-1A 2004-12-09 2004-12-09 Sistema e método de correspondência de sequência BRPI0419214B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/018348 WO2006061899A1 (ja) 2004-12-09 2004-12-09 文字列照合装置および文字列照合プログラム

Publications (2)

Publication Number Publication Date
BRPI0419214A BRPI0419214A (pt) 2008-04-15
BRPI0419214B1 true BRPI0419214B1 (pt) 2021-09-21

Family

ID=36577729

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0419214-1A BRPI0419214B1 (pt) 2004-12-09 2004-12-09 Sistema e método de correspondência de sequência

Country Status (5)

Country Link
US (1) US8032479B2 (pt)
JP (1) JP4535130B2 (pt)
CN (1) CN100524301C (pt)
BR (1) BRPI0419214B1 (pt)
WO (1) WO2006061899A1 (pt)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4810915B2 (ja) * 2005-07-28 2011-11-09 日本電気株式会社 データ検索装置及び方法、並びにコンピュータ・プログラム
US20070226362A1 (en) * 2006-03-21 2007-09-27 At&T Corp. Monitoring regular expressions on out-of-order streams
US8903840B2 (en) * 2006-08-31 2014-12-02 International Business Machines Corporation System and method for launching a specific program from a simple click on a string of characters
WO2008084594A1 (ja) * 2007-01-12 2008-07-17 Nec Corporation パターンマッチング装置及び方法
US7630982B2 (en) * 2007-02-24 2009-12-08 Trend Micro Incorporated Fast identification of complex strings in a data stream
US20090006316A1 (en) * 2007-06-29 2009-01-01 Wenfei Fan Methods and Apparatus for Rewriting Regular XPath Queries on XML Views
JP5224953B2 (ja) * 2008-07-17 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報処理方法およびプログラム
FR2939535B1 (fr) * 2008-12-10 2013-08-16 Canon Kk Procede et systeme de traitement pour la configuration d'un processseur exi
US8862603B1 (en) * 2010-11-03 2014-10-14 Netlogic Microsystems, Inc. Minimizing state lists for non-deterministic finite state automatons
US8990259B2 (en) 2011-06-24 2015-03-24 Cavium, Inc. Anchored patterns
US9858051B2 (en) * 2011-06-24 2018-01-02 Cavium, Inc. Regex compiler
US8954700B2 (en) 2011-08-02 2015-02-10 Cavium, Inc. Method and apparatus for managing processing thread migration between clusters within a processor
JP5554304B2 (ja) * 2011-09-16 2014-07-23 株式会社東芝 オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム
US8818783B2 (en) * 2011-09-27 2014-08-26 International Business Machines Corporation Representing state transitions
US9455996B2 (en) * 2011-10-03 2016-09-27 New York University Generating progressively a perfect hash data structure, such as a multi-dimensional perfect hash data structure, and using the generated data structure for high-speed string matching
CN102542038A (zh) * 2011-12-27 2012-07-04 浪潮通信信息系统有限公司 一种通用可配置的标准局数据入库方法
WO2013137864A1 (en) * 2012-03-13 2013-09-19 Hewlett-Packard Development Company, L.P. Submatch extraction
US9558299B2 (en) 2012-04-30 2017-01-31 Hewlett Packard Enterprise Development Lp Submatch extraction
US8725749B2 (en) * 2012-07-24 2014-05-13 Hewlett-Packard Development Company, L.P. Matching regular expressions including word boundary symbols
US8793251B2 (en) * 2012-07-31 2014-07-29 Hewlett-Packard Development Company, L.P. Input partitioning and minimization for automaton implementations of capturing group regular expressions
US8938454B2 (en) * 2012-10-10 2015-01-20 Polytechnic Institute Of New York University Using a tunable finite automaton for regular expression matching
US9268881B2 (en) 2012-10-19 2016-02-23 Intel Corporation Child state pre-fetch in NFAs
US9117170B2 (en) 2012-11-19 2015-08-25 Intel Corporation Complex NFA state matching method that matches input symbols against character classes (CCLs), and compares sequence CCLs in parallel
US9665664B2 (en) 2012-11-26 2017-05-30 Intel Corporation DFA-NFA hybrid
US9251440B2 (en) * 2012-12-18 2016-02-02 Intel Corporation Multiple step non-deterministic finite automaton matching
US9304768B2 (en) 2012-12-18 2016-04-05 Intel Corporation Cache prefetch for deterministic finite automaton instructions
US9268570B2 (en) 2013-01-23 2016-02-23 Intel Corporation DFA compression and execution
JP6178491B2 (ja) 2013-03-15 2017-08-09 スリーディー システムズ インコーポレーテッド レーザ焼結システムのための改善された粉体の分配
US9086688B2 (en) * 2013-07-09 2015-07-21 Fisher-Rosemount Systems, Inc. State machine function block with user-definable actions on a transition between states
WO2015084360A1 (en) * 2013-12-05 2015-06-11 Hewlett-Packard Development Company, L.P. Regular expression matching
US9544402B2 (en) 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9275336B2 (en) 2013-12-31 2016-03-01 Cavium, Inc. Method and system for skipping over group(s) of rules based on skip group rule
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US11782983B1 (en) * 2020-11-27 2023-10-10 Amazon Technologies, Inc. Expanded character encoding to enhance regular expression filter capabilities

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4764863A (en) * 1985-05-09 1988-08-16 The United States Of America As Represented By The Secretary Of Commerce Hardware interpreter for finite state automata
JP2702927B2 (ja) * 1987-06-15 1998-01-26 株式会社日立製作所 文字列検索装置
US5309358A (en) * 1992-02-18 1994-05-03 International Business Machines Corporation Method for interchange code conversion of multi-byte character string characters
JP2994926B2 (ja) 1993-10-29 1999-12-27 松下電器産業株式会社 有限状態機械作成方法とパターン照合機械作成方法とこれらを変形する方法および駆動方法
US5995963A (en) * 1996-06-27 1999-11-30 Fujitsu Limited Apparatus and method of multi-string matching based on sparse state transition list
JP4118363B2 (ja) * 1996-06-27 2008-07-16 富士通株式会社 スパースな状態遷移表に基づく複数記号列の照合装置および方法
JP4021832B2 (ja) 1996-06-27 2007-12-12 富士通株式会社 スパースな状態遷移表に基づく複数記号列の照合装置および方法
JP4056962B2 (ja) 1996-06-27 2008-03-05 富士通株式会社 スパースな状態遷移表に基づく複数記号列の照合装置および方法
JP3231673B2 (ja) 1996-11-21 2001-11-26 シャープ株式会社 文字,文字列検索方法及び該方法に用いる記録媒体
AU2002220130A1 (en) * 2001-09-12 2003-03-24 Raqia Networks, Inc. High speed data stream pattern recognition
US7240040B2 (en) * 2001-09-12 2007-07-03 Safenet, Inc. Method of generating of DFA state machine that groups transitions into classes in order to conserve memory
US7346511B2 (en) * 2002-12-13 2008-03-18 Xerox Corporation Method and apparatus for recognizing multiword expressions
US7552051B2 (en) * 2002-12-13 2009-06-23 Xerox Corporation Method and apparatus for mapping multiword expressions to identifiers using finite-state networks
WO2004072797A2 (en) * 2003-02-07 2004-08-26 Safenet, Inc. System and method for determining the start of a match of a regular expression
WO2004107404A2 (en) * 2003-05-23 2004-12-09 Sensory Networks, Inc. Apparatus and method for large hardware finite state machine with embedded equivalence classes
US20050273450A1 (en) * 2004-05-21 2005-12-08 Mcmillen Robert J Regular expression acceleration engine and processing model
US7539681B2 (en) * 2004-07-26 2009-05-26 Sourcefire, Inc. Methods and systems for multi-pattern searching
US7356663B2 (en) * 2004-11-08 2008-04-08 Intruguard Devices, Inc. Layered memory architecture for deterministic finite automaton based string matching useful in network intrusion detection and prevention systems and apparatuses

Also Published As

Publication number Publication date
US8032479B2 (en) 2011-10-04
BRPI0419214A (pt) 2008-04-15
JP4535130B2 (ja) 2010-09-01
CN100524301C (zh) 2009-08-05
WO2006061899A8 (ja) 2007-08-30
CN101076798A (zh) 2007-11-21
WO2006061899A1 (ja) 2006-06-15
US20080109431A1 (en) 2008-05-08
JPWO2006061899A1 (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
BRPI0419214B1 (pt) Sistema e método de correspondência de sequência
Cotterell et al. CoNLL-SIGMORPHON 2017 shared task: Universal morphological reinflection in 52 languages
JP5381710B2 (ja) ε遷移を含まない非決定性有限オートマトン生成システムと方法およびプログラム
Wagner Order-n correction for regular languages
US5610812A (en) Contextual tagger utilizing deterministic finite state transducer
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
WO2020007027A1 (zh) 线上问答方法、装置、计算机设备和存储介质
JP3781561B2 (ja) 自然言語解析装置、システム及び記録媒体
Yang et al. Comformer: Code comment generation via transformer and fusion method-based hybrid code representation
US20110295869A1 (en) Efficient string matching state machine
WO2019149076A1 (zh) 词向量生成方法、装置以及设备
Bambroo et al. Legaldb: Long distilbert for legal document classification
Banerji Phrase structure languages, finite machines, and channel capacity
US5905977A (en) Method for automatic demonstration
JP2010225156A (ja) 文字列照合装置および文字列照合プログラム
Шинкаренко et al. Constructive-synthesizing modeling of natural language texts
Idsardi Calculating metrical structure
CN108197107A (zh) 数据处理方法
Guillon et al. Two-Way Automata and One-Tape Machines: Read Only Versus Linear Time
Domingo Roig et al. Enhancing sequence-to-sequence modeling for RDF triples to natural text
KR102146625B1 (ko) 오토마타 기반 증분적 중위 확률 계산 장치 및 방법
Phan et al. BERT-TRIPLE: Using BERT for Extracting Triples from Vietnamese Sentences
Cohen-Sygal Computational implementation of non-concatenative morphology
CN113515959B (zh) 机器翻译模型的训练方法、机器翻译方法及相关设备
Hoenen From manuscripts to archetypes through iterative clustering

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE AS 6A E 7A ANUIDADES.

B08H Application fees: decision cancelled [chapter 8.8 patent gazette]

Free format text: REFERENTE AO DESPACHO PUBLICADO NA RPI 2158 DE 15/05/2012.

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B12B Appeal against refusal [chapter 12.2 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 09/12/2004, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.