Ficheiro:Lattice of automata accepting 1, 10, and 100.gif

Imagem numa resolução maior(1 166 × 836 píxeis, tamanho: 31 kB, tipo MIME: image/gif)

Descrição do ficheiro

Descrição
English: Shows the partially ordered set of automata accepting the strings 1, 10, and 100 (positive examples). Each automaton is obtained by factoring the trivial undergeneralization (bottom node; there also sketched as automaton) with respect to the equivalence shown on light red background, and is denoted as an equivalent regular expression (on light green background). For each of the negative examples 11, 1001, 101, and 0, the upper set of automata accepting it is shown.

For the leftmost branch, automaton images are available at File:Quotient automaton a,b,c,d.gif (1+10+100), File:Quotient automaton a=b,c,d.gif (1*(ε+0+00)), File:Quotient automaton a=b,c=d.gif (1*0*), and File:Quotient automaton a=b=c=d.gif ((0+1)*).

According to Dupont et al., 1994 the automata form a lattice. This is true when two automata are considered equal iff they are obtained as quotient by the same equivalence, the lattice being trivially isomorphic to that of all state set partitions (see e.g. File:Lattice of partitions of an order 4 set.svg).

However, it is false when two automata are considered equal iff they accept the same language, as the current picture shows: the a=b and the b=c=d automaton have two upper bounds, viz. the a=b,c=d and the a=b=d automaton, but no least one. For those automata pairs that do have a join or meet, these operations needn't coincide with language union or intersection, respectively. For example, the string 1101 is neither accepted by the a=b=d nor by the a=c=d automaton, while their join, a=b=c=d accepts it. Dually, the empty string is accepted by both the a=b and the a=d automaton, but not by their meet a,b,c,d.

Data
Origem Obra do próprio
Autor Jochen Burghardt
Esta imagem de computer science (ou todas as imagens neste artigo ou categoria) deveriam ser recriadas usando gráficos vectoriais, como ficheiros SVG. Isto tem várias vantagens; veja as Commons:Media for cleanup|imagens para rever para mais informações. Se já criou um ficheiro SVG desta imagem, por favor, carregue-o. Depois do novo ficheiro SVG ter sido carregado, substitua aqui esta predefinição pela predefinição {{vector version available|nome da nova imagem.svg}}.
Shell script to check language memberships of counter-examples
#!/bin/sh
# For each of the 11 regular expressions obtained from factoring the
# automaton for "1|10|100" in all possible ways, check which of the
# counter-example strings it accepts.
# An accepted string is replaced by the automaton name in the output.
# (Automata are named by the factoring equivalence relation on
# the state set {a,b,c,d}).

for  a in                                                       \
        's/+ \(1\|10\|100\) +/+ a,b,c,d +/'                     \
        's/+ \(1*\|1*0\|1*00\) +/+ a=b +/'                      \
        's/+ \(1*0*\) +/+ a=b,c=d +/'                           \   
        's/+ \(\(0\|1\)*\) +/+ a=b=c=d +/'                      \
        's/+ \(\(100\)*\|\(100\)*1\|\(100\)*10\) +/+ a=d +/'    \
        's/+ \(\(1\|00\)*\|\(1\|00\)*0\) +/+ a=b=d +/'          \
        's/+ \(\(10*0\)*\|\(10*0\)*1\) +/+ a=d,b=c +/'          \
        's/+ \(10*\) +/+ b=c=d +/'                              \
        's/+ \(\(0\|10\)*\|\(0\|10\)*1\) +/+ a=c=d +/'          \   
        's/+ \(\(10\)*\|\(10\)*1\|\(10\)*0\) +/+ a=c +/'        \   
        's/+ \(\(00\|10\)*\|\(00\|10\)*\(0\|1\)\) +/+ a=c,b=d +/'
do

    # optical separator:
    echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

    # somewhat beautified regular expression, and automaton name:
    echo "$a" | sed '
                s,\\,,g
                s,\*,",g
                s,s/+ (,,
                s,) +/+ ,\t\t,
                s,+/$,,
                '

    # result of applying the reg.exp. to the counter-example strings:
    sed -e "$a" <<EOF
                + 11 + 11 +
                + 1001 + 1001 +
                + 101 + 101 +
                + 0 + 0 +
EOF

done

Licenciamento

Eu, titular dos direitos de autor desta obra, publico-a com a seguinte licença:
w:pt:Creative Commons
atribuição partilha nos termos da mesma licença
A utilização deste ficheiro é regulada nos termos da licença Creative Commons - Atribuição-CompartilhaIgual 3.0 Não Adaptada.
Pode:
  • partilhar – copiar, distribuir e transmitir a obra
  • recombinar – criar obras derivadas
De acordo com as seguintes condições:
  • atribuição – Tem de fazer a devida atribuição da autoria, fornecer uma hiperligação para a licença e indicar se foram feitas alterações. Pode fazê-lo de qualquer forma razoável, mas não de forma a sugerir que o licenciador o apoia ou subscreve o seu uso da obra.
  • partilha nos termos da mesma licença – Se remisturar, transformar ou ampliar o conteúdo, tem de distribuir as suas contribuições com a mesma licença ou uma licença compatível com a original.

Legendas

Adicione uma explicação de uma linha do que este ficheiro representa

Elementos retratados neste ficheiro

retrata

Histórico do ficheiro

Clique uma data e hora para ver o ficheiro tal como ele se encontrava nessa altura.

Data e horaMiniaturaDimensõesUtilizadorComentário
atual11h19min de 28 de agosto de 2019Miniatura da versão das 11h19min de 28 de agosto de 20191 166 × 836 (31 kB)Jochen Burghardtgraph drawn with xgraph; negative-example regions drawn with gimp splines; regular expressions factorized
19h07min de 3 de fevereiro de 2016Miniatura da versão das 19h07min de 3 de fevereiro de 20161 478 × 754 (27 kB)Jochen Burghardtfixed remaining counterexamples, after checking them with an sed script: even more automata recognize "0"
13h06min de 2 de fevereiro de 2016Miniatura da versão das 13h06min de 2 de fevereiro de 20161 478 × 754 (27 kB)Jochen Burghardtfixed counterexample: (''a''=''c'') also accepts "0", since the 3rd summand of its reg.exp., (10)*0, does
12h43min de 2 de fevereiro de 2016Miniatura da versão das 12h43min de 2 de fevereiro de 20161 478 × 754 (26 kB)Jochen Burghardtfixed incorrect order relations, e.g. 10<sup>*</sup> ⊆ 1<sup>*</sup>0<sup>*</sup>, corresponding to (''c''=''d'') ← (''a''=''b'',''c''=''d''), was missing
15h08min de 27 de novembro de 2013Miniatura da versão das 15h08min de 27 de novembro de 20131 616 × 765 (29 kB)Jochen BurghardtUser created page with UploadWizard

A seguinte página usa este ficheiro:

Utilização global do ficheiro

As seguintes wikis usam este ficheiro: