def main(): # algorithm arguments init density = 3000 dist = 0.02 step = 0.005 # evaluator arguments init total_capacity = 3000 window_size = 3 tmp_num = 2 tmp_max_list = [90] * tmp_num method = "DP" # huff arguments init alpha = 1 beta = 1 ignore_prob = 0.01 reachable_dist = 0.02 huff = Huff(alpha, beta, reachable_dist, ignore_prob) # file name patient_filename = sys.argv[1] hospital_filename = sys.argv[2] # record variables result_pos = [] start_time = time.time() hospital_list = HospitalList() hospital_list.read_file(hospital_filename) pat_list = PatientList() pat_list.read_file(patient_filename) pos_list = get_init_pos_list((pat_list.xmin, pat_list.xmax), (pat_list.ymin, pat_list.ymax), step) pos_list.set_range(pat_list.xmin, pat_list.xmax, pat_list.ymin, pat_list.ymax) pos_list = density_filter(pos_list, pat_list, density, dist) print("Num of Selectable Position: ", len(pos_list)) for i in range(tmp_num): tmp_max = tmp_max_list[i] e = Evaluater(hospital_list, pat_list, total_capacity, window_size, [tmp_max], huff, method) pos, v = search_best_place(pos_list, e) pos_list.sort(key=lambda p: p.val, reverse=True) result_pos.append(pos) new_h = Hospital("Tmp-" + str(i), pos.x, pos.y, tmp_max) hospital_list.append(new_h) del e print "\nResult:" print v[0] print "\nPosition:" for i in range(len(result_pos)): print "%f, %f" % (result_pos[i].x, result_pos[i].y)
def editarHospitalesGenerativo(individuo): # gerar um aleatório entre 0 e 3 para saber quantos hospitais serão criados randomGenerative = rand.randint(1, 3) city = individuo[0].city #gera os datos aleatorios de os novos hospitais for i in range(randomGenerative): x1 = rand.randint(0, city.width - 1) y1 = rand.randint(0, city.height - 1) range1 = rand.randint(0, 3) individuo.append(Hospital(x1, y1, range1, city)) return individuo
def __init__(self, h_list, p_list, t_cap, w_size, t_max_list, huff, allocate_method): self.h_list = h_list self.p_list = p_list self.t_cap = t_cap self.w_size = w_size self.huff = huff self.allocate_method = allocate_method self.t_list = [ Hospital("Tmp-" + str(i), -1, -1, t_max_list[i]) for i in range(len(t_max_list)) ] self.a_list = self.h_list + self.t_list self.a_mapping = {a: i for i, a in enumerate(self.a_list)} self.counter = 0 pass
def __init__(self, comm_row, comm_column, populations, initial_infections, comm_size=500): # constants self.FPS = 60 self.CONTAGIOUS_RADIUS = 15 self.CONTAGIOUS_RATE = 1 self.LEAST_INFECTED_TIME = 3 self.CURE_RATE = 0.07 self.CURE_RATE_PER_FRAME = 1 - pow(1 - self.CURE_RATE, 1/self.FPS) self.DEAD_RATE = 0.03 self.DEAD_RATE_PER_FRAME = 1 - pow(1 - self.DEAD_RATE, 1/self.FPS) self.SCAN_PER_FRAME = 3 # objects self.comm_row = comm_row self.comm_column = comm_column self.communities = [Community(self, size=comm_size, population=populations[i], initial_infection=initial_infections[i]) for i in range(comm_row*comm_column)] self.hospital = Hospital() # people variable self.people = [] self.data = []
doctor3 = Doctor('Dr.', 'Greta Koopmann', ['general', 'orthopedist'], '+49 169 05251 2222', calendar.afternoon) doctor4 = Doctor('Dr.', 'Christian Gösling', ['general', 'neurologist'], '+49 169 05251 3333', calendar.morning) doctor5 = Doctor('Dr.', 'Viktor Kratchnisky', ['general', 'emergency_doc'], '+49 169 05251 4444', calendar.morning + calendar.afternoon) return [doctor1, doctor2, doctor3, doctor4, doctor5] #Data for hospital 2 name = 'St_Johannes_Hospital' free_rooms = 75 id = 'mel_hosp2' coordinates = [51.51,7.45] # Dortmund doctors = create_doctors() hospital = Hospital(name, free_rooms, id, coordinates, doctors) hospital.loop()
ORIGINAL_NUM = 50 #初始感染数量 BROAD_RATE = 0.7 #传播率 SHADOW_TIME = 24 #潜伏时间 最新数据潜伏期可长达24天 HOSPITAL_RECEIVE_TIME = 3 #医院收治响应时间 CURE_TIME = 14 #治疗时间 BED_NUM = 1000 #医院床位 SAFETY_DIST = 15 #安全距离 u = np.exp(-0.99) #流动意向平均值 几乎不动 PERSON_NUM = 5000 #城市内人数 city = City(0, 0) # def __init__(self,city,u,people_num,BROAD_RATE,SHADOW_TIME,HOSPITAL_RECEIVE_TIME,CURE_TIME,SAFETY_DIST): pool = PeoplePool(city, u, PERSON_NUM, BROAD_RATE, SHADOW_TIME, HOSPITAL_RECEIVE_TIME, CURE_TIME, SAFETY_DIST) hospital = Hospital(BED_NUM) # 随机选择初始感染者 for i in range(ORIGINAL_NUM): idx = np.random.randint(0, PERSON_NUM) pool.people[idx].status = 1 pool.people[idx].infected_time = 0 color_person = ['white', 'yellow', 'red', 'black'] # 正常, 潜伏, 确诊感染, 住院 color_bed = ['red', 'black'] # 0 感染者入住 , 1空床位 fig = plt.figure(figsize=(20, 10)) plt.style.use('dark_background') fig.patch.set_facecolor('black')
from mathdojo import MathDojo from hospital import Patient from hospital import Hospital from car import Car from callcenter import Call from callcenter import CallCenter from bike import Bike from animals import Animal from animals import Dog from animals import Dragon md = MathDojo(0) print md hosp = Hospital("Great Hospital", 6) print hosp patient = Patient(1, "Bob") print patient car = Car(5000, "75mph", "Full", "25mpg") print car call = Call(1, "Stephen", "770-789-7038", 8.30, "For Fun") print call call_center = CallCenter() print call_center bike = Bike(150, "15mph") print bike fox = Animal("Fox") print fox pitbull = Dog("Pitbull") print pitbull trogdor = Dragon("Trogdor the Burninator") print trogdor
#from hospital import Hopistal, Medico import tkinter from hospital import Hospital from medico import Medico from tkinter import * hosp = Hospital(nome='', tipo='', especialidade='', avaliacao='') app = Tk(screenName='principal') app.geometry('200x100+200+100') bt_inserir = Button(app, text='Inserir', command=hosp.inserir) bt_inserir.pack(side='right') bt_mostrar = Button(app, text='Mostrar', command=hosp.mostrar) bt_mostrar.pack(side='left') app.mainloop()