本文整理汇总了Python中population.Population.num_people方法的典型用法代码示例。如果您正苦于以下问题:Python Population.num_people方法的具体用法?Python Population.num_people怎么用?Python Population.num_people使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类population.Population
的用法示例。
在下文中一共展示了Population.num_people方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: drive
# 需要导入模块: from population import Population [as 别名]
# 或者: from population.Population import num_people [as 别名]
def drive(self,
max_iterations=500,
random_seed=0,
initial_pop=50):
"""
Args:
max_iterations: Integer. The maximum number of iterations the
simulation should run.
random_seed: Integer. Seed for the random number generator.
initial_pop: Integer. The initial population for the population.
Returns:
None.
"""
# Dictionary to keep track of results
self.results = defaultdict(list)
# Seed the random number generator.
random.seed(random_seed)
# Create a dictionary that will hold the number of newborns that will
# be added to the simulation.
people_born = { k: 0 for k in range(9) }
# Set the maximum number of iterations that the simulation will run.
max_sim_time = max_iterations
# Initialize a population.
population = Population()
# Initialize an air instance for modeling oxygen consumption.
air = Air(population)
# Initialize a power instance for modeling power consumption.
power = Power(population)
# Initial Iteration
cur_sim_time = 0
start = time.time()
# Add initial population
initial_ages = [10, 18, 20, 25, 28, 30, 32, 35, 40, 45, 50, 55]
for add_count in range (initial_pop):
init_age = cur_sim_time - initial_ages[add_count % len(initial_ages)]*12.0
population.add_person(Person(init_age, population.get_rand_death_time(cur_sim_time), random.random()))
print 'added', people_born.get(cur_sim_time % 9, 0), 'people in', time.time()-start
start = time.time()
total_kcal = population.kcal_requirements(cur_sim_time)
print 'completed total kcal in:', time.time() - start
# Create a facility for population
# Crop area of 25000 feeds about 30 people
facility = Facility(30000.0/30.0*(initial_pop+30), initial_pop+30)
# Food initialization
food = Food(facility, total_kcal)
# Create a disaster object for the population - this models uncertainty
# events that may adversely affect the population & food
disaster = Disaster(population, food)
# Write initial loop results
self._write_results(population=population.num_people(),
food=food.produced_food,
kcals=total_kcal,
facility_crop=facility.crop_area,
facility_personnel=facility.personnel_capacity,
air=air.oxygen_consumed(),
power=power.power_consumed())
# Main iteration loop
for cur_sim_time in range(1, max_sim_time):
print 'current sim time:', cur_sim_time
start = time.time()
# Diasters
if random.random() <= 0.01:
#ratio = random.random()/10.0
#disaster.create_disaster(ratio)
#print 'DISASTER killed', ratio, 'in:', time.time() - start
death_from_disaster = random.randint(1,20)
disaster.create_disaster(death_from_disaster)
print 'DISASTER killed', death_from_disaster, 'people and', (death_from_disaster+10)*2500.0, 'food in:', time.time() - start
start = time.time()
# If enough food, expand facility. Assume 3 month build time
if food.remaining_food > 2500*10 and (facility.personnel_capacity - population.num_people()) <= 10:
facility.start_pod_construction(cur_sim_time, 3)
facility.add_pod(cur_sim_time)
# Adding newborns
born_count = 0
for add_count in range (people_born.get(cur_sim_time % 9, 0)):
if population.num_people() < facility.personnel_capacity:
population.add_person(Person(cur_sim_time, population.get_rand_death_time(cur_sim_time), random.random()))
born_count += 1
print 'added', born_count, 'people in', time.time()-start
#.........这里部分代码省略.........