Na letra E), minuto 13:05, o 0 também é múltiplo de 3. Dessa forma, o estado inicial também deveria ser um possível estado final, não? Pois podemos ter um conjunto vázio, em que |{ }| = 0.
Рік тому+2
Perfeita observação Marcos Silva. 0 é múltiplo de qualquer número e eu acabei me esquecendo dele neste exemplo.
Professor, me tira uma duvida. No exercicio F, não fala que não pode ter {111}, mas fala que depois de um 0 deve vir pelo menos dois uns.Mas então aceitaria caso fosse {1} ou {11} ou {11...1} porém neste automato não aceitaria, ele ficaria apenas no começo. A partir daí, eu deveria criar um estado alternativo onde do q0 poderia pular direto para o estado final caso recebesse 1 após estar no estado final faria um loop para manter ali, e caso se viesse um ''0 eu voltava pro segundo estado ali do video e conferiria o restante para saber se seria aceita... É isso? sendo bem preciso no que pede a questão, eu entendi isso. Aguardo resposta
Рік тому+8
Ola Andres, sim você está correto, a linguagem exige que aceite 11111...1 e de fato a solução apresentada não está cobrindo este caso. A sua solução vai funcionar, porém tenho uma mais simples ainda. Basta colocar o estado inicial como final e tudo se ajeita. Obrigado pela observação.
Bom dia professor Rui. Acredito estar aprendendo muito com o seu curso. Com relação à construção do autômato que aceita a linguagem L = { w E {a,b}* | w tem tamanho múltiplo de 3} eu desenvolvi um autômato com somente 3 estados e 3 transições, em que o meu estado inicial também é o meu estado final, da seguinte forma: (q0)----a,b------>(q1)-------a,b------>(q2)-------a,b-------->(q0) Fiz os teste e deu certo. Está correta esta forma de pensar?
3 місяці тому
Ola Otávio, é sempre bom ouvir que os alunos estão aprendendo, me motiva ainda mais fazer conteúdos de qualidade. Qto ao autômato parece que está certo sim. Parabéns!
Excelente professor! Mas fiquei com essa dúvida: Na questão F, vi nos comentários que você disse que pra corrigir o problema encontrado dos 1111 teria que tornar o estado q0 final, mas ele também é inicial. Um estado inicial pode ser um estafo final simultaneamente?
Em alguns desses exercícios que foram feitos (como no exercício E, considerando que o zero é múltiplo de qualquer natural), não deveria ocorrer aceitação da palavra vazia também?
3 роки тому+2
Bom dia Andrei. Você está correto, para isso basta colocar o estado Q0 como final que a palavra vazia (que é múltiplo de 3) será aceita.
Professor, parabéns pela aula. Está me ajudando bastante!! Minha dúvida: em 25:16, se a palavra fosse 1111111, pela regra da gramática, ela deveria ser aceita? E se sim, o AFD estaria errado?
7 місяців тому
Obrigado @EdilbertoCantuaria. Quanto a sua dúvida, não consegui entender direito, pois a referencia 25:16 para o video é o final do video. Logo, se puder explicar melhor talvez eu consiga te orientar um pouco mais.
Professor, duas dúvidas: na questão C ( 8:50 ) não deveria existir uma seta no estado Q1 que volta para Q0 em caso de ler um "b" ? e no exercício F o estado Q2 tem que ter uma seta apontando de volta ao alerta Q1, em caso de receber "0".
7 місяців тому
Sobre a Letra C: Não, pq a ideia que o automato já "trave" logo de cara quando deparar com b sem ter garantido a existencia de aa. Ou seja, quando for pedido PREFIXO não dá pra abrir exceção alguma senao não cumprimos o que o exercício pede. Agora sobre a Letra F: você coberto de razão, faltou criar uma transição de q2 para q1 ao ler 0. Com isso fica mais completo que o meu.
Estava tentando fazer os exercícios e cheguei a uma resposta diferente na letra F. F) { w E {0, 1}* | cada 0 de w é imediatamente seguido de no mínimo dois 1's }. No seu autômato a seguinte palavra não seria aceita: 111 , porque ficaria sempre no estado q0. Mas pelo enunciado entendi que a palavra contendo somente 1's deveria ser aceita também. Portanto, cheguei na seguinte função de estados: 0 1 qo q1 q3 q1 q2 q2 q3 q3 q2 q3 no lugar do "loop" em q0 quando recebe 1 (q0, 1) -> q0 , eu coloquei (q0, 1) -> q3 , ou seja, se no estado inicial já receber 1, então vai para estado final e lá fica em "loop" caso seja 1 (q3, 1) -> q3
da pra transformar o q0 em estado final tb (permanecendo com o loop em q0), daí aceita as palavras que só têm 1's, além de aceitar também a palavra vazia, que aparentemente deve ser aceita por esse autômato.
Muito obrigado pela aula! Excelente. Nesse último exercício, ele cobre casos em que a palavra é, tipo, 1111? Pelo que entendi, o autômato que o senhor fez só é possível chegar ao estado final se tiver um 0 na palavra, mas se ela só tiver 1s, ela fica pra sempre no estado inicial. Como resolver isso? Eu pensei em tornar o estado inicial um possível final tbm, mas nao tenho certeza se pode fazer isso.
2 роки тому+3
Perfeito Jonas. Seu comentário está correto e acabou de me mostrar um erro no meu autômato. Sim, palavras do tipo 11111 pode ser aceitas sim. E portanto, a forma de resolver isso é colocar marcar o q0 como estado final. Obrigado pela observação Jonas e nos ajude a ter um alcance maior compartilhando nosso conteúdo.
@ Eu fiz que se no estado inicial recebesse um 1 ela já ia direto pro estado final.
Рік тому
@@leirtonfreitasmaia7347 ótimo também funciona normalmente. Como conversamos nos vídeos anteriores não existe apenas uma forma de fazer. Mais a frente vc verá que o automato mínimo é único (teorema da unicidade) aí lá não terá jeito de soluções diferentes para um mesmo problema. Cenas dos próximos capítulos.
Ola Gonçalo, o programa que utilizo nos videos é o JFLAP da universidade DUKE (www.jflap.org/) cujo site tem tudo sobre o JFLAP. Sempre sugiro aos alunos para a construção de qualquer autômato o bom e velho PAPEL e Lápis! O JFLAP é só para os videos mesmo.
Na questão f, caso iniciasse com "1" a palavra, não deveria ir direto para o estado final? Pois a palavra "1" por exemplo, não iria chegar no estado final do jeito que o Sr fez. Ou não pode fazer esse pulo?
Рік тому
Ola @barddz4646, sim de fato você tem razão. Em algum dos comentarios daqui um aluno levantou este erro. Para corrigir basta colocar o q0 como final e tudo se ajeita. Afinal as palavras do tipo 111111111 que não possuem nenhum 0 também deverão ser aceitas e agora, com esta alteração (colocar q0 como final) fica certinho.
nesse caso não, porque dai seria um fecho de kleene, teoricamente o tamanho ainda seria 3, visto que eu posso ou não ter, ao executar o automato, repetições desse lop, e o enunciado pede que o tamanho seja diferente de 3 e seja maior, se eu fizer um loop ali, pode ter algum automato que seja reconhecido com 3 letras
No 1ro exercicio ñ é determinístico, porque o q3 ñ tem saída para as letras a, b. Pelo que sería un Autômato Finito Ñ Determinístico
2 роки тому+1
Ola Jordann Mendez, a definição de não determinismo é ter duas ou mais saídas consumindo uma mesma letra. Por exemplo: d(q1, a) = q2 d(q1,a) = q3 Ou seja, estando no estado q1 e consumindo a letra 'a', podemos ir para o estado q2 ou q3. Portanto, estamos diante de um não determinismo.
Professor, suas aulas são muito boas, sua didática é excelente. Parabéns
Obrigado Leirton Freitas, nos ajude a crescer compartilhando e se inscrevendo em nosso canal. Tem muito material legal aí, aproveite.
Na letra E), minuto 13:05, o 0 também é múltiplo de 3. Dessa forma, o estado inicial também deveria ser um possível estado final, não? Pois podemos ter um conjunto vázio, em que |{ }| = 0.
Perfeita observação Marcos Silva. 0 é múltiplo de qualquer número e eu acabei me esquecendo dele neste exemplo.
OPA! Melhor video sobre o assunto.
Fala Ronildo! Muito obrigado, peço que nos ajude a compartilhar o conteúdo para alcançarmos mais estudantes!
Esse diagrama em 21:30, eu posso definir o caso inicial "q0" como caso final também? Porquê na linguagem não diz que é necessário utilizar o número 0.
Professor, me tira uma duvida. No exercicio F, não fala que não pode ter {111}, mas fala que depois de um 0 deve vir pelo menos dois uns.Mas então aceitaria caso fosse {1} ou {11} ou {11...1} porém neste automato não aceitaria, ele ficaria apenas no começo. A partir daí, eu deveria criar um estado alternativo onde do q0 poderia pular direto para o estado final caso recebesse 1 após estar no estado final faria um loop para manter ali, e caso se viesse um ''0 eu voltava pro segundo estado ali do video e conferiria o restante para saber se seria aceita... É isso? sendo bem preciso no que pede a questão, eu entendi isso. Aguardo resposta
Ola Andres, sim você está correto, a linguagem exige que aceite 11111...1 e de fato a solução apresentada não está cobrindo este caso. A sua solução vai funcionar, porém tenho uma mais simples ainda. Basta colocar o estado inicial como final e tudo se ajeita. Obrigado pela observação.
@Também fiz como ele. Há várias soluções possíveis. Obrigado pela aula, professor!
@ Professor, o estado inicial sendo final, eu não teria que aceitar também a cadeia vazia ?
Sim @@marcospiredda, sempre que o estado inicial também for final o autômato irá aceitar a palavra vazia.
@@marcospiredda, sim, sempre que o estado inicial também for final, a linguagem aceitará palavra vazia.
Bom dia professor Rui. Acredito estar aprendendo muito com o seu curso.
Com relação à construção do autômato que aceita a linguagem
L = { w E {a,b}* | w tem tamanho múltiplo de 3} eu desenvolvi um autômato
com somente 3 estados e 3 transições, em que o meu estado inicial
também é o meu estado final, da seguinte forma:
(q0)----a,b------>(q1)-------a,b------>(q2)-------a,b-------->(q0)
Fiz os teste e deu certo.
Está correta esta forma de pensar?
Ola Otávio, é sempre bom ouvir que os alunos estão aprendendo, me motiva ainda mais fazer conteúdos de qualidade.
Qto ao autômato parece que está certo sim. Parabéns!
Vídeo bem explicativo! Obrigado
Muito obrigado Gabriel, nos ajude a compartilhar e chegar nos mil inscritos.
Esse programa é uma mão na roda.
Jflap é muito bom mesmo
Excelente professor! Mas fiquei com essa dúvida:
Na questão F, vi nos comentários que você disse que pra corrigir o problema encontrado dos 1111 teria que tornar o estado q0 final, mas ele também é inicial. Um estado inicial pode ser um estafo final simultaneamente?
pode sim camile!
Em alguns desses exercícios que foram feitos (como no exercício E, considerando que o zero é múltiplo de qualquer natural), não deveria ocorrer aceitação da palavra vazia também?
Bom dia Andrei. Você está correto, para isso basta colocar o estado Q0 como final que a palavra vazia (que é múltiplo de 3) será aceita.
Professor, parabéns pela aula. Está me ajudando bastante!!
Minha dúvida: em 25:16, se a palavra fosse 1111111, pela regra da gramática, ela deveria ser aceita?
E se sim, o AFD estaria errado?
Obrigado @EdilbertoCantuaria. Quanto a sua dúvida, não consegui entender direito, pois a referencia 25:16 para o video é o final do video. Logo, se puder explicar melhor talvez eu consiga te orientar um pouco mais.
Otima aula!
Olá Camila, obrigado. Nos ajude compartilhando e curtindo nosso canal.
Acredito que a resolução da questão F está incorreta, pois não foi previsto o caso onde a palavra nao contem 0
Professor, duas dúvidas:
na questão C ( 8:50 ) não deveria existir uma seta no estado Q1 que volta para Q0 em caso de ler um "b" ?
e no exercício F o estado Q2 tem que ter uma seta apontando de volta ao alerta Q1, em caso de receber "0".
Sobre a Letra C: Não, pq a ideia que o automato já "trave" logo de cara quando deparar com b sem ter garantido a existencia de aa. Ou seja, quando for pedido PREFIXO não dá pra abrir exceção alguma senao não cumprimos o que o exercício pede.
Agora sobre a Letra F: você coberto de razão, faltou criar uma transição de q2 para q1 ao ler 0. Com isso fica mais completo que o meu.
Estava tentando fazer os exercícios e cheguei a uma resposta diferente na letra F.
F) { w E {0, 1}* | cada 0 de w é imediatamente seguido de no mínimo dois 1's }.
No seu autômato a seguinte palavra não seria aceita: 111 , porque ficaria sempre no estado q0.
Mas pelo enunciado entendi que a palavra contendo somente 1's deveria ser aceita também.
Portanto, cheguei na seguinte função de estados:
0 1
qo q1 q3
q1 q2
q2 q3
q3 q2 q3
no lugar do "loop" em q0 quando recebe 1 (q0, 1) -> q0 ,
eu coloquei (q0, 1) -> q3 ,
ou seja, se no estado inicial já receber 1, então vai para estado final e lá fica em "loop" caso seja 1 (q3, 1) -> q3
da pra transformar o q0 em estado final tb (permanecendo com o loop em q0), daí aceita as palavras que só têm 1's, além de aceitar também a palavra vazia, que aparentemente deve ser aceita por esse autômato.
No item F eu fiz com duas transições a mais, coloquei um loop de 0 no estado q1 e quando o q2 lê um 0 ele volta pro q1, está certo tbm?
Se eu entendi bem seu raciocínio, acredito que sim. Mas faz o seguinte, teste algumas palavras pra garantir.
Muito obrigado pela aula! Excelente. Nesse último exercício, ele cobre casos em que a palavra é, tipo, 1111? Pelo que entendi, o autômato que o senhor fez só é possível chegar ao estado final se tiver um 0 na palavra, mas se ela só tiver 1s, ela fica pra sempre no estado inicial. Como resolver isso? Eu pensei em tornar o estado inicial um possível final tbm, mas nao tenho certeza se pode fazer isso.
Perfeito Jonas. Seu comentário está correto e acabou de me mostrar um erro no meu autômato.
Sim, palavras do tipo 11111 pode ser aceitas sim. E portanto, a forma de resolver isso é colocar marcar o q0 como estado final.
Obrigado pela observação Jonas e nos ajude a ter um alcance maior compartilhando nosso conteúdo.
@ Eu fiz que se no estado inicial recebesse um 1 ela já ia direto pro estado final.
@@leirtonfreitasmaia7347 ótimo também funciona normalmente. Como conversamos nos vídeos anteriores não existe apenas uma forma de fazer.
Mais a frente vc verá que o automato mínimo é único (teorema da unicidade) aí lá não terá jeito de soluções diferentes para um mesmo problema. Cenas dos próximos capítulos.
Podia disponibilizar
o link do programa que usa ?
Ola Gonçalo, o programa que utilizo nos videos é o JFLAP da universidade DUKE (www.jflap.org/) cujo site tem tudo sobre o JFLAP. Sempre sugiro aos alunos para a construção de qualquer autômato o bom e velho PAPEL e Lápis! O JFLAP é só para os videos mesmo.
Na questão f, caso iniciasse com "1" a palavra, não deveria ir direto para o estado final? Pois a palavra "1" por exemplo, não iria chegar no estado final do jeito que o Sr fez. Ou não pode fazer esse pulo?
Ola @barddz4646, sim de fato você tem razão. Em algum dos comentarios daqui um aluno levantou este erro. Para corrigir basta colocar o q0 como final e tudo se ajeita. Afinal as palavras do tipo 111111111 que não possuem nenhum 0 também deverão ser aceitas e agora, com esta alteração (colocar q0 como final) fica certinho.
Qual o software que o Sr está utilizando para simulação dos autômatos?
É gratuito?
Att
É o JFLAP, da unversidade de DUKE no EUA. É totalmente gratuito. É escrito em java.
Obrigado!
Professor, na letra B o loop não poderia ter sido criado no estado q3 o mantendo como estado final, ao invés de criar o q4 para isso ?
nesse caso não, porque dai seria um fecho de kleene, teoricamente o tamanho ainda seria 3, visto que eu posso ou não ter, ao executar o automato, repetições desse lop, e o enunciado pede que o tamanho seja diferente de 3 e seja maior, se eu fizer um loop ali, pode ter algum automato que seja reconhecido com 3 letras
No 1ro exercicio ñ é determinístico, porque o q3 ñ tem saída para as letras a, b. Pelo que sería un Autômato Finito Ñ Determinístico
Ola Jordann Mendez, a definição de não determinismo é ter duas ou mais saídas consumindo uma mesma letra.
Por exemplo:
d(q1, a) = q2
d(q1,a) = q3
Ou seja, estando no estado q1 e consumindo a letra 'a', podemos ir para o estado q2 ou q3. Portanto, estamos diante de um não determinismo.