def createRandomInstance(self, nBuildings, nRooms, nCourses): # create random buildings for building in range(nBuildings): tmp = Building() tmp.xCoord = self.random.nextDouble() * self.MAX_X_COORD tmp.yCoord = self.random.nextDouble() * self.MAX_Y_COORD print("x: {} y: {}".format(tmp.xCoord, tmp.yCoord)) self.buildings.append(tmp) # create random rooms for room in range(nRooms): tmp = Room() bld = int(self.random.nextDouble() * nBuildings) print("bld: {}".format(bld)) tmp.b = self.buildings[int(self.random.nextDouble() * nBuildings)] tmp.capacity = (int(self.random.nextDouble() * 70)) + 30 self.rooms.append(tmp) # create random courses print(nCourses) for course in range(nCourses): tmp = Course() tmp.enrolledStudents = (int(self.random.nextDouble() * 70)) + 30 tmp.preferredLocation = self.buildings[int( self.random.nextDouble() * nBuildings)] tmp.value = self.random.nextDouble() * 100 tmp.timeSlotValues = [0] * self.NUM_TIME_SLOTS # debug # print("Num time slots: {}".format(self.NUM_TIME_SLOTS)) # print(tmp.timeSlotValues) for j in range(self.NUM_TIME_SLOTS): if (self.random.nextDouble() < float(0.3)): tmp.timeSlotValues[j] = 0 else: tmp.timeSlotValues[j] = int(self.random.nextDouble() * 10) self.courses.append(tmp) print("Courses timeslotvalues and real value:") for idx, course in enumerate(self.courses): print("idx {}: {} -> {}".format(idx, course.timeSlotValues, course.value))