-
Notifications
You must be signed in to change notification settings - Fork 0
Sintaxis primer experimento
Propongo que un experimento sea un diccionario. Cada valor puede ser un número o una distribución. Nosotros nos crearemos nuestro paquete de distribuciones.
El objetivo es que al final, si uno dice: organism.speed = experiment_data['organisms']['category_a']'speed'
Entonces organism.speed toma un valor según la distribución adecuada.
Nota: ¿cómo se hacen indents en la wiki? ¿? No lo sé
He compartido una carpeta de Dropbox para dejar archivos que tengan que ver con el proyecto Ecosystems, pero que no dependan de la rama en la que estemos en ese momento, sino que sean independientes de la rama. Te he dejado un archivo comentando el siguiente código:
{'biotope': {}, 'organisms': {'category_a' : {'category': 'Plants', 'number_of_organisms': fixed(10), 'genes': { 'strength': gaussian(mean=10, variance=2), 'photosynthesis_capacity': gausian(mean=20, variance=10)}, 'status': { 'energy_reserve': 'float'} }, 'category_b' : {'category': 'Animals', 'number_of_organisms': fixed(10), 'genes': { 'strength': gaussian(mean=10, variance=2), 'speed': gaussian(mean=1, variance=1)}, 'status': { 'energy_reserve': 'float'} }
},
Los 'outlays' es la cantidad de energía que cualquier organismo gasta en cada una de las acciones de su vida
'outlays': {'hunting': linear_func{ 'terms': [{'parameter': 'strength', 'coefficient': 3.0}, {'parameter': 'speed', 'coefficient': 0.2}, {'parameter': None, 'coefficient': 5.0}]} 'moving': linear_func{ 'terms': [{'parameter': 'strength', 'coefficient': 1.0}, {'parameter': 'photosynthesis_capacity', 'coefficient': 25.0}, {'parameter': 'speed', 'coefficient': 5.0}, {'parameter': None, 'coefficient': 1.0}]} 'procreating': linear_func{ 'terms': [{'parameter': 'strength', 'coefficient': 3.0}, {'parameter': 'photosynthesis_capacity', 'coefficient': 3.0}, {'parameter': 'speed', 'coefficient': 3.0}, {'parameter': None, 'coefficient': 5.0}]}, 'living': linear_func{ # 'living' es la acción que consiste simplemente en mantenerse vivo 'terms': [{'parameter': 'strength', 'coefficient': 1.0}, {'parameter': 'photosynthesis_capacity', 'coefficient': -1.0}, {'parameter': 'speed', 'coefficient': 2.0}, # En las plantas, speed=0 {'parameter': None, 'coefficient': 5.0}]} }, 'constraints': { 'hunting': { 'comparison': { (aquí habría que expresar de alguna manera que la condición para que un bicho se pueda comer a otro es que la fuerza (strength) del primero sea mayor que la del segundo) } }
'mutability': { 'strength': { 'increments': gaussian(mean=0, variance=0.01) 'allowed_interval': [0, 'infinity'] }, 'photosynthesis_capacity': { 'increments': gaussian(mean=0, variance=0.01) }, 'speed': 'increments': gaussian(mean=0, variance=0.001) 'allowed_interval': [0, 'infinity']
}
}
}
}