You are on page 1of 4

PROGRAMACION DE SITEMAS

ADAPTATIVOS
Ing. Laura del Bosque
N2

Disear redes complejas y autmatas


celulares
Sofia Elizabeth Martinez Pea
1628317

'''
Universidad Autnoma de Nuevo Len
Fac. de Ingeniera Mecnica y Elctrica
Administracin y Sistemas
Ingeniera en Tecnologas de Software
Programacin de Sistemas Adaptativos
Autmatas celulares
Autmata con celdas binarias, donde cada celda tiene dos vecinos
'''
import sys
# Imprimir resultado con el formato establecido: 0=blanco, 1=*.
# Entrada: cadena
def imprime_resultado(cadena):
resultado_formato='_'
for caracter in cadena:
if caracter=='1':
resultado_formato=resultado_formato + '*'
else:
resultado_formato=resultado_formato + ' '
print (resultado_formato + '_')
# Salida: 0 o 1, dependiendo de la regla utilizada
# Regla 0: Cualquier cosa = 0
#def procesa_ventana(ventana):
# return '0'
def procesa_ventana(ventana):
if ventana[0]==ventana[2]:
return '1'
else:
return '0'
# Generar una nueva cadena de acuerdo a una regla (0-255)
# Entrada: cadena actual (t=i)
# Salida: cadena nueva (t=i+1)
def recorre_cadena(cadena):
nueva_cadena=''
n=len(cadena)
for i in range(0,n-2):
ventana=cadena[i:i+3]
nueva_cadena=nueva_cadena+procesa_ventana(ventana)

ultima_ventana=cadena[n-2]+cadena[n-1]+cadena[0]
primera_ventana=cadena[n-1]+cadena[0]+cadena[1]
primera_celda=procesa_ventana(primera_ventana)

ultima_celda=procesa_ventana(ultima_ventana)
nueva_cadena=primera_celda+nueva_cadena+ultima_celda
return nueva_cadena
#Main (parte principal del programa)
# Cadenas de prueba
cadena2="000000000000000000000000000000000010000000000000000000
0000000000000000 "
#cadena2="0000100000"
cadena_actual=cadena2
iteraciones=30
# Por la cantidad fijada de iteraciones:
# Imprime la cadena actual
# Genera una nueva cadena de acuerdo a la regla
# Reemplaza la cadena actual por esta nueva cadena
for i in range(0,int(iteraciones)):
imprime_resultado(cadena_actual)
nueva_cadena=recorre_cadena(cadena_actual)
cadena_actual=nueva_cadena

You might also like