reservations = load_reservations(reservations_file) h = load_hall(seats_file) # make initial state with ff s0 = firstfit(h, reservations) s = s0; e = E(s) # Initial state, energy. sb = deepcopy(s); eb = e # Initial "best" solution k = 0 # Energy evaluation count. kmax = 16000 #kmax = len(reservations) * 10 emax = 0-calc_emax(num_guests(reservations), h) i = 0 while k < kmax and e > emax: # While time remains & not good enough: i+=1 sn = neighbour(s) # Pick some neighbour. en = E(sn) # Compute its energy. if en < eb: # Is this a new best? sb = deepcopy(sn); eb = en # Yes, save it. if P(e, en, temp(k/kmax)) > rand(): # Should we move to it? s = deepcopy(sn); e = en # Yes, change state. k = k + 1 # One more evaluation done log("""Status: en: %s, eb: %s, e: %s""" % (en, eb, e), HINT)