Bien sûr, je vais vous proposer un exemple de code Python pour simuler un processus

Bien sûr, je vais vous proposer un exemple de code Python pour simuler un processus dans le domaine des systèmes autonomes, en utilisant un ton professionnel et en faisant référence à la théorie de Charles Darwin. Pour cet exemple, nous allons simuler une population d’agents autonomes qui évoluent selon des principes de sélection naturelle.

« `python
import random
import matplotlib.pyplot as plt

class AgenteAutonomo:
def __init__(self, fitness):
self.fitness = fitness

def crear_poblacion(tamano, promedio_fitness, desviacion_fitness):
poblacion = []
for _ in range(tamano):
poblacion.append(AgenteAutonomo(random.gauss(promedio_fitness, desviacion_fitness)))
return poblacion

def seleccion_natural(poblacion):
nueva_poblacion = []
max_fitness = max(poblacion, key=lambda x: x.fitness).fitness
for agente in poblacion:
if agente.fitness >= max_fitness * 0.5: # Solo los agentes con fitness superior al 50% del máximo sobreviven
nueva_poblacion.append(agente)
return nueva_poblacion

def reproduccion(poblacion):
nueva_poblacion = []
while len(nueva_poblacion) < len(poblacion): padre = random.choice(poblacion) hijo = AgenteAutonomo(random.gauss(padre.fitness, 0.1)) # Pequeña variación en el fitness nueva_poblacion.append(hijo) return nueva_poblacion def main(): tamano_poblacion = 100 promedio_fitness_inicial = 5 desviacion_fitness_inicial = 1 generaciones = 50 # Crear la población inicial poblacion = crear_poblacion(tamano_poblacion, promedio_fitness_inicial, desviacion_fitness_inicial) # Lista para guardar el fitness promedio de cada generación fitness_promedio_por_generacion = [] for generacion in range(generaciones): # Selección natural poblacion = seleccion_natural(poblacion) # Reproducción poblacion = reproduccion(poblacion) # Calcular el fitness promedio de la población actual fitness_promedio = sum(agente.fitness for agente in poblacion) / len(poblacion) fitness_promedio_por_generacion.append(fitness_promedio) print(f"Generación {generacion+1}: Fitness promedio = {fitness_promedio:.2f}") # Gráfico del fitness promedio por generación plt.plot(fitness_promedio_por_generacion, label='Fitness promedio') plt.xlabel('Generación') plt.ylabel('Fitness promedio') plt.title('Evolución del Fitness Promedio a lo Largo de las Generaciones') plt.legend() plt.show() if __name__ == "__main__": main() ``` ### Explicación del Código 1. **Clase `AgenteAutonomo`**: Representa un agente autónomo con un atributo `fitness`. 2. **Función `crear_poblacion`**: Crea una población inicial de agentes con fitness generados aleatoriamente siguiendo una distribución normal. 3. **Función `seleccion_natural`**: Aplica la selección natural, permitiendo que solo los agentes con un fitness superior al 50% del máximo sobrevivan. 4. **Función `reproduccion`**: Realiza la reproducción de la población, creando nuevos agentes con un pequeño margen de variación en el fitness. 5. **Función `main`**: Gestiona el flujo del programa, crea la población inicial, ejecuta las generaciones y gráfica el fitness promedio por generación. Este código simula la evolución de una población de agentes autónomos según principios de selección natural, inspirados en las ideas de Charles Darwin.

Retour en haut