def __init__(self, data): self.averageFitness = 0 #Giá trị fitness hiện tại self.pastAverageFitness = 0 #Giá trị fitness trước đó dùng để so sánh với giá trị fitness vừa được tính self.running = True #Trạng thái chạy của chương trình self.chromosomes = [] #Khởi tạo nhiễm sắc thể self.data = { #Khởi tạo data gồm: Phòng học, Giảng viên, Sections, Sharing, Môn học 'rooms': [], 'instructors': [], 'sections': [], 'sharings': [], 'subjects': [] } self.stayInRoomAssignments = {} self.tournamentSize = .04 self.elitePercent = .05 self.mutationRate = .10 #Tỷ lệ đột biến self.lowVariety = 55 self.highestFitness = 0 #Khởi tạo max self.lowestFitness = 100 #Khởi tạo min self.elites = [] self.matingPool = [] self.offsprings = [] self.tempChromosome = None #Khởi tạo biến tạm cho nhiễm sắc thể self.tempSections = None #Khởi tạo biến tạm cho Sections self.data = data self.settings = Settings.getSettings() #Lấy các giá trị thiết lập ban đầu từ file settings.json self.stopWhenMaxFitnessAt = self.settings['maximum_fitness'] #Biến giữ giá trị trạng thái dừng của chương trình khi đạt giá trị fitness phù hợp super().__init__()
def __init__(self, table, data=False): self.table = table header = [[ 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi' ]] with open('timeslots.json') as json_file: timeslots = json.load(json_file)['timeslots'] settings = Settings.getSettings() header.append( timeslots[settings['starting_time']:settings['ending_time'] + 1]) self.data = data if not data: self.data = [] for i in range(settings['ending_time'] + 1 - settings['starting_time']): self.data.append([ 'Disponible', 'Disponible', 'Disponible', 'Disponible', 'Disponible', 'Disponible' ]) self.model = TimetableModel(header, self.data) table.setModel(self.model) table.horizontalHeader().setSectionResizeMode( QtWidgets.QHeaderView.Fixed) table.verticalHeader().setSectionResizeMode( QtWidgets.QHeaderView.Fixed) table.clicked.connect(self.toggleCells) table.horizontalHeader().sectionClicked.connect(self.toggleCells) table.verticalHeader().sectionClicked.connect(self.toggleCells) table.findChild(QtWidgets.QAbstractButton).clicked.connect( self.toggleCells)
def __init__(self, data): self.averageFitness = 0 self.pastAverageFitness = 0 self.running = True self.chromosomes = [] self.data = { 'rooms': [], 'instructors': [], 'sections': [], 'subjects': [] } self.stayInRoomAssignments = {} self.tournamentSize = .04 self.elitePercent = .05 self.mutationRate = .10 self.lowVariety = 55 self.highestFitness = 0 self.lowestFitness = 100 self.elites = [] self.matingPool = [] self.offsprings = [] self.tempChromosome = None self.tempSections = None self.data = data self.settings = Settings.getSettings() self.stopWhenMaxFitnessAt = self.settings['maximum_fitness'] super().__init__()
def __init__(self, table, data=False): self.table = table header = [[ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ]] with open('timeslots.json') as json_file: timeslots = json.load(json_file)['timeslots'] settings = Settings.getSettings() header.append( timeslots[settings['starting_time']:settings['ending_time'] + 1]) self.data = data if not data: self.data = [] for i in range(settings['ending_time'] + 1 - settings['starting_time']): self.data.append([ 'Available', 'Available', 'Available', 'Available', 'Available', 'Available' ]) self.model = TimetableModel(header, self.data) table.setModel(self.model) table.clicked.connect(self.toggleCells) table.findChild(QtWidgets.QAbstractButton).clicked.connect( self.toggleCells)
def generateRawTable(): settings = Settings.getSettings() data = [] for i in range(settings['ending_time'] + 1 - settings['starting_time']): data.append([ 'Disponible', 'Disponible', 'Disponible', 'Disponible', 'Disponible', 'Disponible' ]) return data
def __init__(self, parent): super().__init__() self.parent = parent self.setupUi(parent) self.connectButtons() self.settings = Settings.getSettings() self.loadSettings() self.handleSettings() self.drawTrees() self.tabWidget.currentChanged.connect(self.tabListener) self.tabWidget.setCurrentIndex(0)
def __init__(self, data): self.fitness = 0 self.fitnessDetails = [] self.data = { 'sections': {}, 'instructors': {}, 'rooms': {}, 'unplaced': { 'sections': {} } } self.rawData = data self.settings = Settings.getSettings() self.buildChromosome()
def __init__(self): self.dialog = dialog = QtWidgets.QDialog() # Initialize custom dialog self.parent = parent = Parent.Ui_Dialog() # Add parent to custom dialog parent.setupUi(dialog) self.table = self.parent.tableResult self.run = True self.settings = Settings.getSettings() self.result = { 'data': [] } self.getLastResult() if self.run: self.parseResultDetails() self.connectWidgets() self.updateTable(0) dialog.exec_()
def __init__(self, scenario, table, data): self.scenario = scenario self.table = table self.settings = settings = Settings.getSettings() self.build_model() MultiIndexHeaderView(Qt.Horizontal, table) MultiIndexHeaderView(Qt.Vertical, table) table.horizontalHeader().setSectionsMovable( True) # reorder DataFrame columns manually # Set data table.setModel(self.model) table.resizeColumnsToContents() table.resizeRowsToContents() table.setFocusPolicy(QtCore.Qt.NoFocus) table.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection) self.parseData(data)
def __init__(self, table, data): self.table = table header = [[ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ]] with open('timeslots.json') as json_file: self.timeslots = timeslots = json.load(json_file)['timeslots'] self.settings = settings = Settings.getSettings() header.append( timeslots[settings['starting_time']:settings['ending_time'] + 1]) temporaryData = [] for i in range(settings['ending_time'] + 1 - settings['starting_time']): temporaryData.append(['', '', '', '', '', '']) self.model = ScheduleParserModel(header, temporaryData) table.setModel(self.model) table.setFocusPolicy(QtCore.Qt.NoFocus) table.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection) # table.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Fixed) table.verticalHeader().setSectionResizeMode( QtWidgets.QHeaderView.Fixed) self.parseData(data)
def __init__(self, scenario): self.averageFitness = 0 self.pastAverageFitness = 0 self.running = True self.data = { 'rooms': [], 'instructors': [], 'sections': [], 'subjects': [] } self.tournamentSize = .04 self.elitePercent = .05 self.mutationRate = .10 self.lowVariety = 55 self.highestFitness = 0 self.lowestFitness = 100 self.scenario = scenario self.IND_INIT_SIZE = 100 self.settings = Settings.getSettings() self.stopWhenMaxFitnessAt = self.settings['maximum_fitness'] self.toolbox = base.Toolbox() super().__init__()
def updateSettings(self, key, value, secondKey=False): Settings.setSettings(key, value, secondKey) self.settings = Settings.getSettings()
def __init__(self, scenario): self.scenario = scenario self.settings = Settings.getSettings() self.init_empty_data() self.genrate_random_timetable()