Sunteți pe pagina 1din 16

UNIVERSIDAD FERMN TORO

VICERRECTORADO ACADEMICO
DECANATO DE INGENIERA
ESCUELA DE COMPUTACIN

DISEO DE UN ROBOT EVASOR DE OBSTACULOS BASADO EN


LA TEORIA DE AUTOMATAS FINITOS

CABUDARE AGOSTO DE 2016.

UNIVERSIDAD FERMN TORO


VICERRECTORADO ACADEMICO
DECANATO DE INGENIERA
ESCUELA DE COMPUTACIN

DISEO DE UN ROBOT EVASOR DE OBSTACULOS BASADO EN


LA TEORIA DE AUTOMATAS FINITOS

INTEGRANTES:
Ronald Arias
Rafael Bellina
Yanko Durn
Horacio Gonzlez
Moises Piate
Danilo Urdaneta

CI: 24.393.726
CI: 20.650.414
CI: 20.155.416
CI: 25.147.408
CI: 23.485.049
CI: 23.485.049
ASIGNATURA:

AUTOMATAS Y LENGUAJES FORMALES


Seccin N-317
Prof. Edecio Freitez
CABUDARE AGOSTO DE 2016

INTRODUCCIN

La teora de autmatas finitos consiste en modelos matemticos de sistemas con


entradas y salidas discretas. El sistema puede estar en cualquiera de un numero finito
de configuraciones o estados. El estado del sistema resume la informacin
concerniente a entradas anteriores y que es necesaria para determinar el
comportamiento del sistema y su respectiva accin al recibir datos por las respectivas
entradas nuevamente.

En las ciencias de la computacin, encontramos muchos ejemplos de sistemas de


estados finitos, y la teora de autmatas finitos es una herramienta muy til en lo que a
esta ciencia concierne. Un ejemplo es un circuito de interrupcin, encontrado en las
unidades de control de distintas computadoras y microcontroladores, el cual est
compuesto por un numero finito de compuertas lgicas (sistema combinacional), y
cada una de estas compuertas se puede encontrar en dos estados posibles, ceros y unos,
si tomamos el cero como un estado de desactivado y el uno como un estado activo
y generamos una secuencia de ceros y unos, nos daremos cuenta de que es posible
tener una secuencia de activacin y desactivacin del sistema; todo esto aunado a
conceptualizaciones como lo son el lenguaje de esa secuencia de datos y el alfabeto en
el cual se encuentran todos los smbolos que la maquina o sistema reconoce nos
permitirn obtener una lgica la cual nos proporcionar la capacidad de tomar
determinadas acciones de control.

En este contexto el presente trabajo est enfocado y dirigido a emplear la teora de


Autmatas Finitos para modelar las trayectorias posibles de un robot evasor de
obstculos (REO), as como los diferentes estados que responden a los cambios

presentes en las entradas del mismo provenientes de una ruta codificada por
computador.
BASES TEORICAS

Teora de autmatas.

La teora de autmatas es una rama de las ciencias de la computacin que estudia


las mquinas abstractas y los problemas que stas son capaces de resolver.

Autmata.

Un autmata es una maquina capaz de realizar movimientos propios, segn la Real


Academia de la Lengua Espaola se define al autmata como la mquina que imita la
figura y movimientos de un ser animado. Su equivalente en los tiempos actuales y a
nuestro nivel de tecnologa sern los robots.
Segn el estudio de la teora de autmatas se define a un autmata como un modelo
matemtico para una mquina de estado finito (FSM sus siglas en ingls). Una FSM es
una mquina que, dada una entrada de smbolos, "salta" a travs de una serie de
estados de acuerdo a una funcin de transicin (que puede ser expresada como una
tabla).
La entrada es leda smbolo por smbolo, hasta que es "consumida" completamente (piense
en sta como una cinta con una palabra escrita en ella, que es leda por una cabeza lectora del
autmata; la cabeza se mueve a lo largo de la cinta, leyendo un smbolo a la vez) una vez la
entrada se ha agotado, el autmata se detiene.

Dependiendo del estado en el que el autmata finaliza se dice que este ha aceptado o
rechazado la entrada. Si ste termina en el estado "acepta", el autmata acepta la palabra. Si lo
hace en el estado "rechaza", el autmata rechaz la palabra, el conjunto de todas las palabras
aceptadas por el autmata constituyen el lenguaje aceptado por el mismo.

Autmata Finito (AF)

Formalmente, un autmata finito (AF) puede ser descrito como una 5-tupla:
AF=(Q , , , s , F )

Donde cada uno de los elementos vara dependiendo del tipo de autmata que se
est analizando o implementando.
Dentro de la teora de Autmatas Finitos existen diversos modelos matemticos que
explican la manera en la cual las transiciones y los estados responden ante distintas
entradas, esos autmatas son los siguientes:

Autmata Finito Determinista (AFD)


Un AFD es un autmata finito que adems es un sistema determinista; es decir,
para cada estado en que se encuentre el autmata, y con cualquier smbolo del
alfabeto ledo, existe siempre a lo ms una transicin posible desde ese estado y
con ese smbolo.
Formalmente est definido por una quntupla donde:

AFD=(Q , , , s , F )
Q = Conjunto de estados del autmata
= Conjunto del alfabeto de entrada
= funcin de transicin Q x Q

s = Estado inicial
F = Estado Final o de aceptacin.
-

F Q

Autmata Finito No Determinista (AFND)


Un AFND es un autmata finito que, a diferencia de los autmatas finitos
deterministas (AFD), posee al menos un estado q Q, tal que para un smbolo
a del alfabeto, existe ms de una transicin (q, a) posible.
En un AFND puede darse cualquiera de estos dos casos:
1. Que existan transiciones del tipo (q, a) = q1 y (q,a) = q2, siendo q1 q2;
2. Que existan transiciones del tipo (q, ), siendo q un estado no-final, o bien
un estado final, pero con transiciones hacia otros estados.
Cuando se cumple el segundo caso, se dice que el autmata es un autmata
finito no determinista con transiciones vacas o transiciones (AFND-). Estas
transiciones permiten al autmata cambiar de estado sin procesar ningn
smbolo de entrada.
Un AFND formalmente se encuentra definido por la siguiente quntupla en
donde:

AFND=( Q, , , s , F)

Q = Conjunto de estados del autmata


= Conjunto del alfabeto de entrada
= Funcin de transicin donde:
: Q x P(Q). (Para el caso de un AFND comn)
: Q x { } P(Q). (Para el caso de un AFND-)
s = Estado inicial
F = El conjunto de estados finales o de aceptacin.
Conceptos generales de la teora de autmatas
-

F Q

Smbolo: Un dato arbitrario que tiene algn significado a o efecto en la


mquina. A estos smbolos tambin se les llama letras o tomos.

Palabra: Una cadena finita formada por la concatenacin de un nmero de


smbolos.

Alfabeto: Conjunto finito de smbolos. Un alfabeto se indica normalmente con


, que es el conjunto de letras que conforma al alfabeto, incluyendo la palabra
vaca ().

Lenguaje: Un conjunto de palabras, formado por smbolos en un alfabeto dado.


Puede ser infinito.

Clausura de Kleene: Un lenguaje se puede considerar como un subconjunto de


todas las posibles palabras. El conjunto de todas las palabras puede a su vez, ser
considerado como el conjunto de todas las posibles concatenaciones e cadenas.
Formalmente, ese conjunto se indica como

, donde el superndice (*) se le

llama estrella de kleene.

Arduino
Es una compaa de hardware libre, y comunidad tecnolgica, que disea y
manufactura placas de desarrollo de hardware y software compuesta respectivamente
por circuitos impresos que integran un microcontrolador, y un entorno de desarrollo
en donde se programa cada placa. Arduino se enfoca en acercar y facilitar el uso de la
electrnica y programacin de sistemas embebidos en proyectos multidisciplinarios.
El hardware consiste en una placa de circuito impreso con un microcontrolador,
usualmente Atmel AVR, puertos digitales y analgicos de entrada/salida, los cuales
pueden conectarse a placas de expansin (shields) que amplan las caractersticas de
funcionamiento de la placa arduino. Asimismo, posee un puerto de conexin USB

desde donde se puede alimentar la placa y establecer comunicacin serial con el


computador.
Por otro lado, el software consiste en un entorno de desarrollo basado en el entorno
de Processing y lenguaje de programacin basado en Wiring, as como en el cargador
de arranque (bootloader) que es ejecutado en la placa.4 El microcontrolador de la
placa se programa a travs de un computador, haciendo uso de comunicacin serial
mediante un convertidor de niveles RS-232 a TTL serial.

MODELO MATEMTICO

Explicacin
Segn la fundamentacin terica anteriormente descrita en este trabajo, el modelo

matemtico que describe las acciones que el REO representa es en concreto un


Autmata Finito Determinista.
Se dice que es un AFD por el motivo de que el REO siempre se encontrar con
solo transiciones nicas entre estados, esto quiere decir que por cada elemento de la
palabra introducida en el autmata existir solo una transicin por cada estado, es
decir:
existe : ( q a , a )=qb
Pero no puede ocurrir lo siguiente:
( qa , a ) =qb
( qa , a ) =qc

Esto se debe a que el R.E.O. solo se puede encontrar en un estado a la vez. Como
sabemos el solo puede realizar los movimientos de adelante, izquierda, derecha,
diagonal izquierda, diagonal derecha y estar detenido, pero no es posible que durante
algn instante de tiempo el R.E.O. se encuentre en dos estados al mismo tiempo.
Siempre el R.E.O. se encontrar nica y exclusivamente en un solo estado a la vez.

Si por ejemplo el REO se encuentra detenido, eso nos indica que est en su estado
inicial esperando la ruta, por ende, a ese estado lo llamaremos

q 0 . Si el R.E.O.

recibe la instruccin de avanzar (la cual codificaremos con el carcter a), el R.E.O.
comienza un desplazamiento hacia adelante (cambia a un estado en movimiento al
que llamaremos

q1 ), al cambiar de estado entre detenido y movimiento hubo una

transicin, producida por la instruccin a (avanzar).


Es decir, ocurri la transicin en el autmata:
( q0 , a )=q1

A su vez se puede deducir que el REO no puede estar en dos estados a la vez
debido a una instruccin ya que segn las mismas caractersticas fsicas del robot y al
modelo matemtico es imposible que tal situacin ocurra.

Modelo matemtico aplicado al R.E.O.


Tipo de autmata: Autmata finito determinista (AFD).
M ={ ,Q , , s , F }
={ a , b , c , d , e , f }
Q= { q0 , q1 , q2 , q3 , q4 , q 5 , q 6 }

s=q0 ;
F=q6 ;

Transiciones del autmata


(q0,a)=q1;

(q2,b)=q3;

(q3,d)=q2;

(q4,f)=q5;

(q1,a)=q1;

(q2,c)=q6;

(q3,e)=q4;

(q5,a)=q1;

(q1,b)=q3;

(q2,d)=q2;

(q3,f)=q5;

(q5,b)=q3;

(q1,c)=q6;

(q2,e)=q4;

(q4,a)=q1;

(q5,c)=q6;

(q1,d)=q2;

(q2,f)=q5;

(q4,b)=q3;

(q5,d)=q2;

(q1,e)=q4;

(q3,a)=q1;

(q4,c)=q6;

(q5,e)=q4;

(q1,f)=q5;

(q3,b)=q3;

(q4,d)=q2;

(q2,a)=q1;

(q3,c)=q6;

(q4,e)=q4;

(q5,f)=q5;

Smbolos del Alfabeto


Smbolo
Significado
a
Avanzar adelante
b
Avanzar izquierda
c
Detenerse
d
Avanzar Derecha
e
Diagonal Izquierda
f
Diagonal Derecha
Tabla 1, (Informacin obtenida mediante la codificacin en software)

Estado
q1
q3
q6
q2
q4
q5

Tabla de transicin de estados:

a
B
C
c
E
q0
q1

q1
q1
q3
q6
q2
q4
q2
q1
q3
q6
q2
q4
q3
q1
q3
q6
q2
q4
q4
q1
q3
q6
q2
q4
q5
q1
q3
q6
q2
q4
q6

Tabla 2, (Tabla resultante de las funciones de transicin del autmata)


Diagrama de Transicin de Estados (DTE)

q5
q5
q5
q5
q5

IMPLEMENTACION

Software

La implementacin del software se realiza por medio de un programa con


interfaz orientado a objetos que simule la situacin actual del REO y que determine el
recorrido ms ptimo desde el punto de salida hasta el punto de llegada del robot.
Esta aplicacin, la cual ser realizada con Python como lenguaje de programacin, es
la encargada de buscar el recorrido ms corto del robot a travs de un algoritmo de
bsqueda A* (A asterisco o estrella) por medio de un arreglo bidimensional que
represente la zona donde el robot se moviliza.
Python es un lenguaje de programacin interpretado cuya filosofa hace hincapi en
una sintaxis que favorezca un cdigo legible. Se trata de un lenguaje de programacin
multiparadigma, ya que soporta orientacin a objetos, programacin imperativa y, en
menor medida, programacin funcional. Es un lenguaje interpretado, usa tipeado
dinmico y es multiplataforma.
El algoritmo A* (conocido tambin como A estrella o asterisco) se define como un
algoritmo de bsqueda que encuentra la ruta de menor coste entre dos puntos siempre
y cuando se cumplan una serie de condiciones. Est clasificado dentro de los
algoritmos de bsqueda en grafos ya que tiene la necesidad de dar a los mecanismos
robticos, vehiculares o virtuales un sistema de navegacin autnomo.
Es ampliamente utilizado en las ciencias de la computacin para encontrar rutas y que
tan transitable es una grfica, es decir, se refiere al problema de visitar todos los
nodos en una grfica dada de forma particular esto no es ms que el proceso de
trazado de la ruta ms eficiente entre unos puntos llamados nodos. Este algoritmo
goza de una aceptable y continua implementacin gracias a su desempeo y
precisin. Fue descrito por primera vez en 1968 como una extensin del algoritmo de
Dijkstra (1959), por Peter Hart, Nils Nilsson y Bertran Raphael, que expusieron que
el A* lograba un mejor desempeo con respecto al tiempo usando heursticas.
El entorno se desarroll en una aplicacin de escritorio y para eso utilizamos kivy que
es un framework de cdigo abierto Python utilizado para el desarrollo de aplicaciones
mviles y otros softwares de aplicaciones multitouch con una interfaz de usuario
natural (NUI).

Hardware

Componentes utilizados:

1 Arduino uno.
Cables de arduino
Protoboard
4 ruedas de plstico
2 motores DC
Leds
Puente H

S-ar putea să vă placă și