Xyasasas

Solo disponible en BuenasTareas
  • Páginas : 3 (657 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de marzo de 2011
Leer documento completo
Vista previa del texto
Programación Declarativa

Tema 1 (II): Lenguaje Prolog: Conceptos

Autómata Finito Determinista

Departamento de Electrónica, Sistemas Informáticos y Automática Universidad de Huelva

Pág. 1Curso 2004-2005

Programación Declarativa

Tema 1 (II): Lenguaje Prolog: Conceptos

Autómata Finito Determinista
• Descripción del sistema
• • • • • estado(q0). estado(q1). estado(q2).estado(q3). estado(q4).

• estadoinicial(q0). • estadofinal(q4). • • • • • • • • transicion(q0,a,q0). transicion(q0,b,q1). transicion(q1,c,q2). transicion(q1,d,q3). transicion(q2,d,q2).transicion(q2,f,q4). transicion(q3,e,q3). transicion(q3,f,q4).
Pág. 2
Curso 2004-2005

Departamento de Electrónica, Sistemas Informáticos y Automática Universidad de Huelva

Programación DeclarativaTema 1 (II): Lenguaje Prolog: Conceptos

Autómata Finito Determinista
– Reconocedor de cadenas de longitud 3
reconoce3(A,B,C):estadoinicial(X), transicion(X,A,X1), transicion(X1,B,X2),transicion(X2,C,X3), estadofinal(X3).

– Objetivo: Reconoce la cadena ‘bcf’
?- reconoce3(b,c,f). Yes

– Objetivo: Reconoce la cadena ‘bde’
?- reconoce3(b,d,e). No

– Objetivo: Reconoce la cadena ‘bhe’?- reconoce3(b,h,e). No
Departamento de Electrónica, Sistemas Informáticos y Automática Universidad de Huelva

Pág. 3

Curso 2004-2005

Programación Declarativa

Tema 1 (II): LenguajeProlog: Conceptos

Autómata Finito Determinista
– Objetivo: Dar todas las cadenas de longitud 3 que reconoce nuestro sistema
?- reconoce3(A,B,C). X=b Y=c Z=f; X=b Y=d Z=f; No

Departamento deElectrónica, Sistemas Informáticos y Automática Universidad de Huelva

Pág. 4

Curso 2004-2005

Programación Declarativa
reconoce3(A,B,C).

Tema 1 (II): Lenguaje Prolog: Conceptosestadoinicial(X), transicion(X,A,X1), transicion(X1,B,X2), transicion(X2,C,X3), estadofinal(X3). { X / q0 } transicion(q0,A,X1), transicion(X1,B,X2), transicion(X2,C,X3), estadofinal(X3). {A / a; X1 / q0; }...
tracking img