jueves, 2 de febrero de 2012

Sistemas deterministas: Un carro


¿Qué es un sistema determinista?


Es cuando conoces la salida de un sistema teniendo sus variables de entrada. En ellos se conoce de antemano, con certeza, el resultado. En estos sistemas el azar no esta involucrado en los estados futuros del sistema.

Entonces conociendo el estado actual del sistema, las variables de ambiente y la forma de comportarse del sistema, entonces se puede saber sin riesgo a equivocarse el estado siguiente del sistema.

Es decir, si se conoce el estado actual del sistema, las variables de ambiente y el comportamiento del sistema ante los cambios en el ambiente, entonces se puede predecir sin ningún riesgo de error el estado siguiente del sistema.
A lo contrario de un sistema no determinista en donde intervienen sistemas aleatorios dificles de controlar o predecir.



Ejemplo: Un carro


Elegí un carro para explicar lo qué es un sistema determinista ya que encuentro mucha relación en el sentido de que los sistemas deterministas podemos predecir el estado siguiente del sistema, el carro es determinista en el sentido que podemos hacer que entren comandos al auto por medio de la manejera, frenos, pedal del acelerador, cambios, luces, limpia parabrisas, claxón, freno de mano, manejar vidrios, alarmas, seguros automáticos, etc.


En un automóvil nosotros elegimos lo que queremos que haga el automóvil en un momento siguiente cercano, como por ejemplo vez una curva, entonces sabes que moviendo la manejera al lado adecuado vas a mover el carro, o cuando vez que el semáforo se puso en rojo sabes que debes de frenar entonces pisas el freno y sabes que el carro va a detenerse, cuando empieza a llover sabes que el carro limpiará el vidrio cuando actives el limpia parabrisas, entre muchas otras cosas.



Un carro es un sistema determinista en el aspecto de hacen lo que nosotros queremos que hagan, y nosotros sabemos como es que el carro reacciona a ciertos movimientos que hacemos para cumplir nuestra finalidad.

Pseudocódigo


El pseudocódigo que cree para esto es:
#variables
lucesTraceras = False
lucesDelanteras = False
encendido = False
velocidad = 0
#funciones
def encender():
if(llaveCorrecta):
encendido = True
else:
encendido = False
return encendio
def apagar():
encendido = False
apagarLuces()
return encendido
def acelerar():
velocidad = velocidad + 10
def frenar():
velocidad = 0
def prenderLuces():
if botonTraseras:
lucesTraceras = True
if boronDelanteras:
lucesDelanteras = True
def apagarLuces():
if botonTraseras:
lucesTraceras = False
if boronDelanteras:
lucesDelanteras = False
def vueltaIzq()
def vueltaDer()
def manejarAuto():
#para encender el auto y empezar a manejarlo mandamos llamar a la funcion:
encender()
encenderLuces()
#para el ejemplo uso acelerar para hechar a andar el auto, en vez de directa
acelerar()
#queremos sacar el auto del estacionamiento entonces tenemos que mover las llantas, de una manera random para el ejemplo
vueltaIzq()
vueltaDer()
acelerar()
#llegamos a casa
frenar()
apagar()
#la funcion apagar manda a llamar a la funcion apagar luces
view raw gistfile1.py hosted with ❤ by GitHub


Ahí explico las principales funciones y variables, claro de una manera muy general y simplificada del sistema de un carro.


Diagrama


En este diagrama muestro las entradas al sistema y las salidas.



Una manera de ver que un carro no es determinista es viendo en cuestión de que no sabemos cuando va a tener tráfico, o cuando se va a ponchar una llanta, ya que eso más bien depende del ambiente y no en si del manejo del automóvil.

2 comentarios: