turtles tortugas simulacion listas language ejemplos create comandos breed random patch netlogo elevation

random - simulacion - tortugas netlogo



cómo seleccionar aleatoriamente un parche vecino que tenga una mayor elevación en netlogo (2)

¿Cómo seleccionar al azar entre todos los parches vecinos que son más altos en lugar del parche más alto vecino? Estaba pensando en eliminar (si elevación> = [elevación] de max-one-of neighbors [elevation] [stop]) y colocar "[stop]" en [move-to-one-of neighbors [stop]]

to move ; a turtle procedure if elevation >= [elevation] of max-one-of neighbors [elevation] [stop] ifelse random-float 1 < q [uphill elevation] [move-to one-of neighbors] end


one-of selecciona aleatoriamente un agente del conjunto de agentes y crea un conjunto de agentes de aquellos agentes que satisfacen la condición. También necesitarás probar que haya al menos un lugar al que ir. La selección se vería así (con la condición de umbral por determinar):

to move-up ; a turtle procedure let candidates neighbors with [elevation >= <thresholdhold condition> ] if any? candidates [ move-to one-of candidates] end

Si, por el contrario, quiere elegir entre los vecinos más altos, independientemente de si son más altos que algún umbral, quiere max-n-of . Parece que para elegir uno de los 3 más altos:

to move-up move-to one-of max-n-of 3 neighbors [elevation] end


; The butterfly move procedure in turtle context to move ; a turtle procedure if elevation >= [elevation] of max-one-of neighbors [elevation] [stop] ; Decide whether to move uphill deterministically with probability q ifelse random-float 1 < q [ uphill elevation ] ; move uphill [ move-to one-of neighbors ] ; otherwise move randomly set patches-visited patches-visited + 1 end