TEORIA DE LA COMPUTACION P I

Anuncio
INSTITUTO TECNOLÓGICOSUPERIOR DE
SAN MARTÍN TEXMELUCAN
EQUIPO:
LILIANA MENDEZ PEREZ
LUIS RUEBN SANCHEZ BARBOSA
ASIGNATURA:
TEORIA DE LA COMPUTACIÒN
PROFESOR:
YESENIA
GRADO:
4° SEMESTRE
GRUPO:
“A”
PRACTICA 2
PORTAFOLIO DE EVIDENCIAS
San Martín Texmelucan, Puebla 23 de marzo del 2011
TEORIA DE LA COMPUTACION
PLAN ISIC-2004-296
INGENIERÍA EN SISTEMAS COMPUTACIONALES
Metodos Numericos
Práctica
2
OBJETIVO:
Representará lenguajes a través de autómatas, expresiones regulares y su aplicación.
Desarrollar ejercicios para la representación de lenguajes por medio de AFD, AFN, AFN-e y expresiones
regulares. A si como también utilizar un lenguaje de programación de alto nivel para representar expresiones
regulares.
MARCO TEÓRICO
Un Autómata Finito Determinístico (DFA) no es más que una máquina que consta de un
conjunto finito de estados, de ahí el nombre de Máquina de Estados. Uno de estos estados debe
ser la entrada de la máquina. En todo DFA debe existir uno o varios estados finales o de
aceptación.
Un DFA debe constar de un lenguaje (o símbolos de entrada) el cual es el conjunto de caracteres
que aceptara dicha máquina.
Todo DFA contiene un conjunto de transiciones. Cada estado debe tener una transición por cada símbolo que
exista en el lenguaje. Estas transiciones deberán comunican un estado con otro (o se mantiene recursivos en el
mismo estado). Una transición puede ser transitada si, y solo si, el símbolo de entrada que se está procesando
es uno de los símbolos1 que permite el paso a través de la transición.
Una cadena (o palabra) es una sucesión de símbolos que están contenidos dentro del lenguaje
del autómata. Se dice que una cadena es aceptada cuando al haber consumido todos los
símbolos contenidos en esta (por medio de las transiciones), se llega a un estado final o de
aceptación.
4.- PROCEDIMIENTO
1.-Programar un autómata finito determinista
2.- utilice un lenguaje de alto nivel
3.-mostrar los resultados en pantalla
Fecha de Actualización 22/03/2011
Página 2
Metodos Numericos
5.- APARATOS E INSTRUMENTOS
 Una PC
 Un Lenguaje de alto nivel
 Sistema Operativo Windows o Linux
6.- PRACTICA A REALIZAR
AUTOMATA FINITO DETERMINISTICO
5-tuplas
∑={a,b}
M={Q, ∑,S,A,S }
Q={𝒒𝟎, 𝒒𝟏 𝒒𝟐, 𝒒𝟑, }
A={𝒒𝟎, 𝒒𝟏 𝒒𝟐, }
S={𝒒𝟎, }
Tablas de estados
S
𝒒𝟎,
𝒒𝟏,
𝒒𝟐
𝒒𝟑,
a
𝑞0,
𝑞0,
𝑞0,
𝑞3,
b
𝑞1,
𝑞2
𝑞3,
𝑞3
Fecha de Actualización 22/03/2011
Página 3
Metodos Numericos
Automata creado
Alguna de las cadenas de aceptación mostradas en el lenguaje regular
L(r)={a,b,aa,bb,ab,aabb,aaabb,aaaabb…..}
Codigo del programa automata
import javax.swing.JOptionPane;
class practicas{
public static void main (String args [])
{
int c=0;
String cadena;
JOptionPane.showMessageDialog(null,"AFD(!Automata finito detreministico!)");
JOptionPane.showMessageDialog(null,"EQUIPO:\n**luis\n**ruben\n**sanchez\n**ba
rbosa\n**liliana\n**mendez");
JOptionPane.showMessageDialog(null,"algunas de las cadenas de
aceptacion.\nL(r)={a,b,aba,aa,bb,aaa,aabb,aaabb,aaaabb,abaabbaabb...}");
JOptionPane.showMessageDialog(null,"ESTE LENGUAJE NO ACEPTA CADENAS
DONDE CONTENGAN TRES b REPETIDAS\n YA QUE NOS MARCARIA CADENA
NO ACEPTADA");
cadena=JOptionPane.showInputDialog("Escribe una cadena: ");
int tam=cadena.length();
char arr[]=new char [tam];
arr=cadena.toCharArray();
for (int i=1; i<tam; i++)
if (arr [i]=='b')
c++;
if ((arr[0]=='a') && (c==tam-1))
JOptionPane.showMessageDialog(null, "Cadena aceptada");
else
Fecha de Actualización 22/03/2011
Página 4
JOptionPane.showMessageDialog(null, "Cadena no aceptada");
Metodos Numericos
}
}
Fecha de Actualización 22/03/2011
Página 5
Descargar